vuetify 3.8.6 → 3.8.8

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 (360) hide show
  1. package/dist/json/attributes.json +3281 -3257
  2. package/dist/json/importMap-labs.json +28 -28
  3. package/dist/json/importMap.json +162 -162
  4. package/dist/json/tags.json +6 -0
  5. package/dist/json/web-types.json +5914 -5860
  6. package/dist/vuetify-labs.cjs +1059 -881
  7. package/dist/vuetify-labs.css +3481 -3475
  8. package/dist/vuetify-labs.d.ts +94 -60
  9. package/dist/vuetify-labs.esm.js +1060 -882
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +1059 -881
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +946 -764
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3916 -3910
  16. package/dist/vuetify.d.ts +84 -60
  17. package/dist/vuetify.esm.js +947 -765
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +946 -764
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +1180 -1159
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAlert/VAlert.js +11 -11
  25. package/lib/components/VAlert/VAlert.js.map +1 -1
  26. package/lib/components/VApp/VApp.js +5 -5
  27. package/lib/components/VApp/VApp.js.map +1 -1
  28. package/lib/components/VAutocomplete/VAutocomplete.css +6 -6
  29. package/lib/components/VAutocomplete/VAutocomplete.js +9 -9
  30. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  31. package/lib/components/VAutocomplete/VAutocomplete.sass +3 -9
  32. package/lib/components/VAvatar/VAvatar.js +4 -4
  33. package/lib/components/VAvatar/VAvatar.js.map +1 -1
  34. package/lib/components/VBadge/VBadge.js +3 -3
  35. package/lib/components/VBadge/VBadge.js.map +1 -1
  36. package/lib/components/VBanner/VBanner.js +6 -6
  37. package/lib/components/VBanner/VBanner.js.map +1 -1
  38. package/lib/components/VBanner/VBannerActions.js +4 -4
  39. package/lib/components/VBanner/VBannerActions.js.map +1 -1
  40. package/lib/components/VBottomNavigation/VBottomNavigation.js +6 -6
  41. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  42. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +5 -5
  43. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  44. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js +4 -4
  45. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js.map +1 -1
  46. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +5 -5
  47. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  48. package/lib/components/VBtn/VBtn.js +7 -7
  49. package/lib/components/VBtn/VBtn.js.map +1 -1
  50. package/lib/components/VBtnGroup/VBtnGroup.js +4 -4
  51. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  52. package/lib/components/VCard/VCard.js +5 -5
  53. package/lib/components/VCard/VCard.js.map +1 -1
  54. package/lib/components/VCard/VCardActions.js +4 -4
  55. package/lib/components/VCard/VCardActions.js.map +1 -1
  56. package/lib/components/VCard/VCardItem.js +9 -9
  57. package/lib/components/VCard/VCardItem.js.map +1 -1
  58. package/lib/components/VCard/VCardSubtitle.js +4 -4
  59. package/lib/components/VCard/VCardSubtitle.js.map +1 -1
  60. package/lib/components/VCard/VCardText.js +4 -4
  61. package/lib/components/VCard/VCardText.js.map +1 -1
  62. package/lib/components/VCarousel/VCarousel.js +2 -2
  63. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  64. package/lib/components/VChip/VChip.js +12 -11
  65. package/lib/components/VChip/VChip.js.map +1 -1
  66. package/lib/components/VColorPicker/VColorPicker.js +3 -3
  67. package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
  68. package/lib/components/VColorPicker/VColorPickerCanvas.js +9 -9
  69. package/lib/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  70. package/lib/components/VColorPicker/VColorPickerEdit.js +6 -6
  71. package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  72. package/lib/components/VColorPicker/VColorPickerPreview.js +9 -9
  73. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  74. package/lib/components/VColorPicker/VColorPickerSwatches.js +8 -8
  75. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  76. package/lib/components/VCombobox/VCombobox.css +6 -6
  77. package/lib/components/VCombobox/VCombobox.js +9 -9
  78. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  79. package/lib/components/VCombobox/VCombobox.sass +3 -9
  80. package/lib/components/VConfirmEdit/VConfirmEdit.js +3 -3
  81. package/lib/components/VConfirmEdit/VConfirmEdit.js.map +1 -1
  82. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js +3 -3
  83. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js.map +1 -1
  84. package/lib/components/VCounter/VCounter.js +5 -5
  85. package/lib/components/VCounter/VCounter.js.map +1 -1
  86. package/lib/components/VDataIterator/VDataIterator.js +5 -5
  87. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  88. package/lib/components/VDataTable/VDataTable.js +4 -4
  89. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  90. package/lib/components/VDataTable/VDataTableColumn.js +3 -3
  91. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  92. package/lib/components/VDataTable/VDataTableFooter.js +6 -6
  93. package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
  94. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +5 -5
  95. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
  96. package/lib/components/VDataTable/VDataTableHeaders.js +11 -11
  97. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  98. package/lib/components/VDataTable/VDataTableRow.js +6 -6
  99. package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
  100. package/lib/components/VDataTable/VDataTableRows.js +7 -7
  101. package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
  102. package/lib/components/VDataTable/VDataTableServer.js +4 -4
  103. package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
  104. package/lib/components/VDataTable/VDataTableVirtual.js +8 -8
  105. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  106. package/lib/components/VDatePicker/VDatePicker.d.ts +20 -0
  107. package/lib/components/VDatePicker/VDatePicker.js +42 -5
  108. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  109. package/lib/components/VDatePicker/VDatePickerControls.js +4 -4
  110. package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
  111. package/lib/components/VDatePicker/VDatePickerHeader.js +8 -8
  112. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  113. package/lib/components/VDatePicker/VDatePickerMonth.js +13 -20
  114. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  115. package/lib/components/VDatePicker/VDatePickerMonths.d.ts +10 -0
  116. package/lib/components/VDatePicker/VDatePickerMonths.js +15 -5
  117. package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
  118. package/lib/components/VDatePicker/VDatePickerYears.d.ts +10 -0
  119. package/lib/components/VDatePicker/VDatePickerYears.js +17 -5
  120. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  121. package/lib/components/VDialog/__test__/VDialog.spec.browser.js +5 -5
  122. package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
  123. package/lib/components/VDivider/VDivider.js +10 -10
  124. package/lib/components/VDivider/VDivider.js.map +1 -1
  125. package/lib/components/VEmptyState/VEmptyState.js +12 -12
  126. package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
  127. package/lib/components/VExpansionPanel/VExpansionPanel.js +6 -6
  128. package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
  129. package/lib/components/VExpansionPanel/VExpansionPanelText.js +5 -5
  130. package/lib/components/VExpansionPanel/VExpansionPanelText.js.map +1 -1
  131. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js +10 -10
  132. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js.map +1 -1
  133. package/lib/components/VExpansionPanel/VExpansionPanels.js +4 -4
  134. package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
  135. package/lib/components/VFab/VFab.js +7 -7
  136. package/lib/components/VFab/VFab.js.map +1 -1
  137. package/lib/components/VField/VField.js +20 -18
  138. package/lib/components/VField/VField.js.map +1 -1
  139. package/lib/components/VField/VFieldLabel.js +4 -4
  140. package/lib/components/VField/VFieldLabel.js.map +1 -1
  141. package/lib/components/VFileInput/VFileInput.js +5 -5
  142. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  143. package/lib/components/VFooter/VFooter.js +4 -4
  144. package/lib/components/VFooter/VFooter.js.map +1 -1
  145. package/lib/components/VForm/VForm.js +4 -4
  146. package/lib/components/VForm/VForm.js.map +1 -1
  147. package/lib/components/VGrid/VContainer.js +4 -4
  148. package/lib/components/VGrid/VContainer.js.map +1 -1
  149. package/lib/components/VIcon/VIcon.js +5 -5
  150. package/lib/components/VIcon/VIcon.js.map +1 -1
  151. package/lib/components/VImg/VImg.js +13 -13
  152. package/lib/components/VImg/VImg.js.map +1 -1
  153. package/lib/components/VInfiniteScroll/VInfiniteScroll.js +8 -8
  154. package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
  155. package/lib/components/VInput/InputIcon.d.ts +1 -1
  156. package/lib/components/VInput/InputIcon.js +5 -4
  157. package/lib/components/VInput/InputIcon.js.map +1 -1
  158. package/lib/components/VInput/VInput.js +9 -9
  159. package/lib/components/VInput/VInput.js.map +1 -1
  160. package/lib/components/VItemGroup/VItemGroup.js +3 -3
  161. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  162. package/lib/components/VLabel/VLabel.js +5 -5
  163. package/lib/components/VLabel/VLabel.js.map +1 -1
  164. package/lib/components/VLayout/VLayout.js +4 -4
  165. package/lib/components/VLayout/VLayout.js.map +1 -1
  166. package/lib/components/VLayout/VLayoutItem.js +4 -4
  167. package/lib/components/VLayout/VLayoutItem.js.map +1 -1
  168. package/lib/components/VLazy/VLazy.js +6 -6
  169. package/lib/components/VLazy/VLazy.js.map +1 -1
  170. package/lib/components/VList/VList.js +4 -4
  171. package/lib/components/VList/VList.js.map +1 -1
  172. package/lib/components/VList/VListGroup.js +5 -5
  173. package/lib/components/VList/VListGroup.js.map +1 -1
  174. package/lib/components/VList/VListItem.js +11 -11
  175. package/lib/components/VList/VListItem.js.map +1 -1
  176. package/lib/components/VList/VListItemAction.js +4 -4
  177. package/lib/components/VList/VListItemAction.js.map +1 -1
  178. package/lib/components/VList/VListItemMedia.js +4 -4
  179. package/lib/components/VList/VListItemMedia.js.map +1 -1
  180. package/lib/components/VList/VListItemSubtitle.js +4 -4
  181. package/lib/components/VList/VListItemSubtitle.js.map +1 -1
  182. package/lib/components/VList/VListSubheader.js +6 -6
  183. package/lib/components/VList/VListSubheader.js.map +1 -1
  184. package/lib/components/VLocaleProvider/VLocaleProvider.js +4 -4
  185. package/lib/components/VLocaleProvider/VLocaleProvider.js.map +1 -1
  186. package/lib/components/VMain/VMain.js +5 -5
  187. package/lib/components/VMain/VMain.js.map +1 -1
  188. package/lib/components/VMessages/VMessages.js +4 -4
  189. package/lib/components/VMessages/VMessages.js.map +1 -1
  190. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +7 -7
  191. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  192. package/lib/components/VNavigationDrawer/touch.js +2 -4
  193. package/lib/components/VNavigationDrawer/touch.js.map +1 -1
  194. package/lib/components/VNumberInput/VNumberInput.js +41 -24
  195. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  196. package/lib/components/VOtpInput/VOtpInput.js +8 -8
  197. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  198. package/lib/components/VOverlay/VOverlay.js +8 -8
  199. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  200. package/lib/components/VOverlay/locationStrategies.js +16 -8
  201. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  202. package/lib/components/VPagination/VPagination.js +11 -11
  203. package/lib/components/VPagination/VPagination.js.map +1 -1
  204. package/lib/components/VParallax/VParallax.js +4 -4
  205. package/lib/components/VParallax/VParallax.js.map +1 -1
  206. package/lib/components/VProgressCircular/VProgressCircular.js +12 -12
  207. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  208. package/lib/components/VProgressLinear/VProgressLinear.js +24 -24
  209. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  210. package/lib/components/VRadioGroup/VRadioGroup.js +2 -2
  211. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  212. package/lib/components/VRangeSlider/VRangeSlider.js +5 -5
  213. package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
  214. package/lib/components/VRating/VRating.js +14 -14
  215. package/lib/components/VRating/VRating.js.map +1 -1
  216. package/lib/components/VResponsive/VResponsive.js +9 -9
  217. package/lib/components/VResponsive/VResponsive.js.map +1 -1
  218. package/lib/components/VSelect/VSelect.css +6 -0
  219. package/lib/components/VSelect/VSelect.js +43 -14
  220. package/lib/components/VSelect/VSelect.js.map +1 -1
  221. package/lib/components/VSelect/VSelect.sass +3 -0
  222. package/lib/components/VSelect/_mixins.scss +14 -0
  223. package/lib/components/VSelectionControl/VSelectionControl.js +12 -12
  224. package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
  225. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js +5 -5
  226. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js.map +1 -1
  227. package/lib/components/VSheet/VSheet.js +3 -3
  228. package/lib/components/VSheet/VSheet.js.map +1 -1
  229. package/lib/components/VSkeletonLoader/VSkeletonLoader.js +4 -4
  230. package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  231. package/lib/components/VSlideGroup/VSlideGroup.js +12 -12
  232. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  233. package/lib/components/VSlider/VSlider.js +4 -4
  234. package/lib/components/VSlider/VSlider.js.map +1 -1
  235. package/lib/components/VSlider/VSliderThumb.js +30 -24
  236. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  237. package/lib/components/VSlider/VSliderTrack.js +17 -17
  238. package/lib/components/VSlider/VSliderTrack.js.map +1 -1
  239. package/lib/components/VSlider/slider.js +5 -2
  240. package/lib/components/VSlider/slider.js.map +1 -1
  241. package/lib/components/VSnackbar/VSnackbar.js +4 -4
  242. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  243. package/lib/components/VSnackbarQueue/VSnackbarQueue.js +3 -3
  244. package/lib/components/VSnackbarQueue/VSnackbarQueue.js.map +1 -1
  245. package/lib/components/VSparkline/VBarline.js +12 -12
  246. package/lib/components/VSparkline/VBarline.js.map +1 -1
  247. package/lib/components/VSparkline/VTrendline.js +8 -8
  248. package/lib/components/VSparkline/VTrendline.js.map +1 -1
  249. package/lib/components/VStepper/VStepper.js +2 -2
  250. package/lib/components/VStepper/VStepper.js.map +1 -1
  251. package/lib/components/VStepper/VStepperActions.js +2 -2
  252. package/lib/components/VStepper/VStepperActions.js.map +1 -1
  253. package/lib/components/VStepper/VStepperItem.js +10 -10
  254. package/lib/components/VStepper/VStepperItem.js.map +1 -1
  255. package/lib/components/VSwitch/VSwitch.js +10 -10
  256. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  257. package/lib/components/VSystemBar/VSystemBar.js +4 -4
  258. package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
  259. package/lib/components/VTable/VTable.js +6 -6
  260. package/lib/components/VTable/VTable.js.map +1 -1
  261. package/lib/components/VTabs/VTab.js +4 -4
  262. package/lib/components/VTabs/VTab.js.map +1 -1
  263. package/lib/components/VTabs/VTabs.js +2 -2
  264. package/lib/components/VTabs/VTabs.js.map +1 -1
  265. package/lib/components/VTextField/VTextField.js +12 -12
  266. package/lib/components/VTextField/VTextField.js.map +1 -1
  267. package/lib/components/VTextarea/VTextarea.js +10 -10
  268. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  269. package/lib/components/VThemeProvider/VThemeProvider.js +3 -3
  270. package/lib/components/VThemeProvider/VThemeProvider.js.map +1 -1
  271. package/lib/components/VTimeline/VTimeline.js +5 -5
  272. package/lib/components/VTimeline/VTimeline.js.map +1 -1
  273. package/lib/components/VTimeline/VTimelineDivider.js +17 -17
  274. package/lib/components/VTimeline/VTimelineDivider.js.map +1 -1
  275. package/lib/components/VTimeline/VTimelineItem.js +9 -9
  276. package/lib/components/VTimeline/VTimelineItem.js.map +1 -1
  277. package/lib/components/VToolbar/VToolbar.js +9 -9
  278. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  279. package/lib/components/VToolbar/VToolbarItems.js +4 -4
  280. package/lib/components/VToolbar/VToolbarItems.js.map +1 -1
  281. package/lib/components/VToolbar/VToolbarTitle.js +4 -4
  282. package/lib/components/VToolbar/VToolbarTitle.js.map +1 -1
  283. package/lib/components/VVirtualScroll/VVirtualScroll.js +7 -7
  284. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  285. package/lib/components/VVirtualScroll/VVirtualScrollItem.js +3 -3
  286. package/lib/components/VVirtualScroll/VVirtualScrollItem.js.map +1 -1
  287. package/lib/components/VWindow/VWindow.js +11 -11
  288. package/lib/components/VWindow/VWindow.js.map +1 -1
  289. package/lib/components/VWindow/VWindowItem.js +6 -6
  290. package/lib/components/VWindow/VWindowItem.js.map +1 -1
  291. package/lib/composables/date/date.d.ts +4 -0
  292. package/lib/composables/date/date.js +14 -1
  293. package/lib/composables/date/date.js.map +1 -1
  294. package/lib/composables/filter.js +8 -8
  295. package/lib/composables/filter.js.map +1 -1
  296. package/lib/composables/goto.js +1 -1
  297. package/lib/composables/goto.js.map +1 -1
  298. package/lib/composables/icons.js +6 -6
  299. package/lib/composables/icons.js.map +1 -1
  300. package/lib/composables/list-items.js +2 -2
  301. package/lib/composables/list-items.js.map +1 -1
  302. package/lib/composables/loader.js +3 -3
  303. package/lib/composables/loader.js.map +1 -1
  304. package/lib/composables/variant.js +5 -5
  305. package/lib/composables/variant.js.map +1 -1
  306. package/lib/entry-bundler.d.ts +3 -0
  307. package/lib/entry-bundler.js +1 -1
  308. package/lib/framework.d.ts +64 -60
  309. package/lib/framework.js +1 -1
  310. package/lib/labs/VCalendar/VCalendar.js +15 -15
  311. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  312. package/lib/labs/VCalendar/VCalendarDay.js +4 -4
  313. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  314. package/lib/labs/VCalendar/VCalendarHeader.js +4 -4
  315. package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
  316. package/lib/labs/VCalendar/VCalendarInterval.js +10 -10
  317. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  318. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +2 -2
  319. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  320. package/lib/labs/VCalendar/VCalendarMonthDay.js +6 -6
  321. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  322. package/lib/labs/VColorInput/VColorInput.js +3 -3
  323. package/lib/labs/VColorInput/VColorInput.js.map +1 -1
  324. package/lib/labs/VDateInput/VDateInput.d.ts +20 -0
  325. package/lib/labs/VDateInput/VDateInput.js +5 -9
  326. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  327. package/lib/labs/VFileUpload/VFileUpload.js +9 -9
  328. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  329. package/lib/labs/VFileUpload/VFileUploadItem.js +3 -3
  330. package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
  331. package/lib/labs/VIconBtn/VIconBtn.js +7 -7
  332. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  333. package/lib/labs/VPicker/VPicker.js +7 -7
  334. package/lib/labs/VPicker/VPicker.js.map +1 -1
  335. package/lib/labs/VPullToRefresh/VPullToRefresh.js +11 -11
  336. package/lib/labs/VPullToRefresh/VPullToRefresh.js.map +1 -1
  337. package/lib/labs/VStepperVertical/VStepperVertical.js +2 -2
  338. package/lib/labs/VStepperVertical/VStepperVertical.js.map +1 -1
  339. package/lib/labs/VStepperVertical/VStepperVerticalItem.js +5 -5
  340. package/lib/labs/VStepperVertical/VStepperVerticalItem.js.map +1 -1
  341. package/lib/labs/VTimePicker/VTimePicker.js +2 -2
  342. package/lib/labs/VTimePicker/VTimePicker.js.map +1 -1
  343. package/lib/labs/VTimePicker/VTimePickerClock.js +15 -15
  344. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  345. package/lib/labs/VTimePicker/VTimePickerControls.js +24 -24
  346. package/lib/labs/VTimePicker/VTimePickerControls.js.map +1 -1
  347. package/lib/labs/VTreeview/VTreeviewChildren.js +2 -2
  348. package/lib/labs/VTreeview/VTreeviewChildren.js.map +1 -1
  349. package/lib/labs/VTreeview/VTreeviewGroup.js +2 -2
  350. package/lib/labs/VTreeview/VTreeviewGroup.js.map +1 -1
  351. package/lib/labs/VTreeview/VTreeviewItem.js +3 -3
  352. package/lib/labs/VTreeview/VTreeviewItem.js.map +1 -1
  353. package/lib/labs/entry-bundler.d.ts +3 -0
  354. package/lib/util/box.d.ts +1 -0
  355. package/lib/util/box.js +27 -0
  356. package/lib/util/box.js.map +1 -1
  357. package/lib/util/helpers.d.ts +2 -0
  358. package/lib/util/helpers.js +24 -1
  359. package/lib/util/helpers.js.map +1 -1
  360. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"VMain.js","names":["makeComponentProps","makeDimensionProps","useDimension","useLayout","useSsrBoot","makeTagProps","genericComponent","propsFactory","useRender","makeVMainProps","scrollable","Boolean","tag","VMain","name","props","setup","_ref","slots","dimensionStyles","mainStyles","ssrBootStyles","_createVNode","class","value","style","default"],"sources":["../../../src/components/VMain/VMain.tsx"],"sourcesContent":["// Styles\nimport './VMain.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useLayout } from '@/composables/layout'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVMainProps = propsFactory({\n scrollable: Boolean,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps({ tag: 'main' }),\n}, 'VMain')\n\nexport const VMain = genericComponent()({\n name: 'VMain',\n\n props: makeVMainProps(),\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n const { mainStyles } = useLayout()\n const { ssrBootStyles } = useSsrBoot()\n\n useRender(() => (\n <props.tag\n class={[\n 'v-main',\n { 'v-main--scrollable': props.scrollable },\n props.class,\n ]}\n style={[\n mainStyles.value,\n ssrBootStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n >\n { props.scrollable\n ? (\n <div class=\"v-main__scroller\">\n { slots.default?.() }\n </div>\n )\n : slots.default?.()\n }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VMain = InstanceType<typeof VMain>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,SAAS;AAAA,SACTC,UAAU;AAAA,SACVC,YAAY,oCAErB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,cAAc,GAAGF,YAAY,CAAC;EACzCG,UAAU,EAAEC,OAAO;EAEnB,GAAGX,kBAAkB,CAAC,CAAC;EACvB,GAAGC,kBAAkB,CAAC,CAAC;EACvB,GAAGI,YAAY,CAAC;IAAEO,GAAG,EAAE;EAAO,CAAC;AACjC,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,MAAMC,KAAK,GAAGP,gBAAgB,CAAC,CAAC,CAAC;EACtCQ,IAAI,EAAE,OAAO;EAEbC,KAAK,EAAEN,cAAc,CAAC,CAAC;EAEvBO,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAgB,CAAC,GAAGjB,YAAY,CAACa,KAAK,CAAC;IAC/C,MAAM;MAAEK;IAAW,CAAC,GAAGjB,SAAS,CAAC,CAAC;IAClC,MAAM;MAAEkB;IAAc,CAAC,GAAGjB,UAAU,CAAC,CAAC;IAEtCI,SAAS,CAAC,MAAAc,YAAA,CAAAP,KAAA,CAAAH,GAAA;MAAA,SAEC,CACL,QAAQ,EACR;QAAE,oBAAoB,EAAEG,KAAK,CAACL;MAAW,CAAC,EAC1CK,KAAK,CAACQ,KAAK,CACZ;MAAA,SACM,CACLH,UAAU,CAACI,KAAK,EAChBH,aAAa,CAACG,KAAK,EACnBL,eAAe,CAACK,KAAK,EACrBT,KAAK,CAACU,KAAK;IACZ;MAAAC,OAAA,EAAAA,CAAA,MAECX,KAAK,CAACL,UAAU,GAAAY,YAAA;QAAA;MAAA,IAGVJ,KAAK,CAACQ,OAAO,GAAG,CAAC,KAGrBR,KAAK,CAACQ,OAAO,GAAG,CAAC;IAAA,EAGxB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VMain.js","names":["makeComponentProps","makeDimensionProps","useDimension","useLayout","useSsrBoot","makeTagProps","genericComponent","propsFactory","useRender","makeVMainProps","scrollable","Boolean","tag","VMain","name","props","setup","_ref","slots","dimensionStyles","mainStyles","ssrBootStyles","_createVNode","_normalizeClass","class","_normalizeStyle","value","style","default","_createElementVNode"],"sources":["../../../src/components/VMain/VMain.tsx"],"sourcesContent":["// Styles\nimport './VMain.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useLayout } from '@/composables/layout'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVMainProps = propsFactory({\n scrollable: Boolean,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps({ tag: 'main' }),\n}, 'VMain')\n\nexport const VMain = genericComponent()({\n name: 'VMain',\n\n props: makeVMainProps(),\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n const { mainStyles } = useLayout()\n const { ssrBootStyles } = useSsrBoot()\n\n useRender(() => (\n <props.tag\n class={[\n 'v-main',\n { 'v-main--scrollable': props.scrollable },\n props.class,\n ]}\n style={[\n mainStyles.value,\n ssrBootStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n >\n { props.scrollable\n ? (\n <div class=\"v-main__scroller\">\n { slots.default?.() }\n </div>\n )\n : slots.default?.()\n }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VMain = InstanceType<typeof VMain>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,SAAS;AAAA,SACTC,UAAU;AAAA,SACVC,YAAY,oCAErB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,cAAc,GAAGF,YAAY,CAAC;EACzCG,UAAU,EAAEC,OAAO;EAEnB,GAAGX,kBAAkB,CAAC,CAAC;EACvB,GAAGC,kBAAkB,CAAC,CAAC;EACvB,GAAGI,YAAY,CAAC;IAAEO,GAAG,EAAE;EAAO,CAAC;AACjC,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,MAAMC,KAAK,GAAGP,gBAAgB,CAAC,CAAC,CAAC;EACtCQ,IAAI,EAAE,OAAO;EAEbC,KAAK,EAAEN,cAAc,CAAC,CAAC;EAEvBO,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAgB,CAAC,GAAGjB,YAAY,CAACa,KAAK,CAAC;IAC/C,MAAM;MAAEK;IAAW,CAAC,GAAGjB,SAAS,CAAC,CAAC;IAClC,MAAM;MAAEkB;IAAc,CAAC,GAAGjB,UAAU,CAAC,CAAC;IAEtCI,SAAS,CAAC,MAAAc,YAAA,CAAAP,KAAA,CAAAH,GAAA;MAAA,SAAAW,eAAA,CAEC,CACL,QAAQ,EACR;QAAE,oBAAoB,EAAER,KAAK,CAACL;MAAW,CAAC,EAC1CK,KAAK,CAACS,KAAK,CACZ;MAAA,SAAAC,eAAA,CACM,CACLL,UAAU,CAACM,KAAK,EAChBL,aAAa,CAACK,KAAK,EACnBP,eAAe,CAACO,KAAK,EACrBX,KAAK,CAACY,KAAK,CACZ;IAAA;MAAAC,OAAA,EAAAA,CAAA,MAECb,KAAK,CAACL,UAAU,GAAAmB,mBAAA;QAAA;MAAA,IAGVX,KAAK,CAACU,OAAO,GAAG,CAAC,KAGrBV,KAAK,CAACU,OAAO,GAAG,CAAC;IAAA,EAGxB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode } from "vue";
1
+ import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VMessages.css";
4
4
 
@@ -40,10 +40,10 @@ export const VMessages = genericComponent()({
40
40
  useRender(() => _createVNode(MaybeTransition, {
41
41
  "transition": props.transition,
42
42
  "tag": "div",
43
- "class": ['v-messages', textColorClasses.value, props.class],
44
- "style": [textColorStyles.value, props.style]
43
+ "class": _normalizeClass(['v-messages', textColorClasses.value, props.class]),
44
+ "style": _normalizeStyle([textColorStyles.value, props.style])
45
45
  }, {
46
- default: () => [props.active && messages.value.map((message, i) => _createVNode("div", {
46
+ default: () => [props.active && messages.value.map((message, i) => _createElementVNode("div", {
47
47
  "class": "v-messages__message",
48
48
  "key": `${i}-${messages.value}`
49
49
  }, [slots.message ? slots.message({
@@ -1 +1 @@
1
- {"version":3,"file":"VMessages.js","names":["VSlideYTransition","useTextColor","makeComponentProps","makeTransitionProps","MaybeTransition","computed","genericComponent","propsFactory","useRender","wrapInArray","makeVMessagesProps","active","Boolean","color","String","messages","type","Array","default","transition","component","leaveAbsolute","group","VMessages","name","props","setup","_ref","slots","textColorClasses","textColorStyles","_createVNode","value","class","style","map","message","i"],"sources":["../../../src/components/VMessages/VMessages.tsx"],"sourcesContent":["// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { Component, PropType } from 'vue'\n\nexport type VMessageSlot = {\n message: string\n}\n\nexport type VMessagesSlots = {\n message: VMessageSlot\n}\n\nexport const makeVMessagesProps = propsFactory({\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String] as PropType<string | readonly string[]>,\n default: () => ([]),\n },\n\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition as Component,\n leaveAbsolute: true,\n group: true,\n },\n }),\n}, 'VMessages')\n\nexport const VMessages = genericComponent<VMessagesSlots>()({\n name: 'VMessages',\n\n props: makeVMessagesProps(),\n\n setup (props, { slots }) {\n const messages = computed(() => wrapInArray(props.messages))\n const { textColorClasses, textColorStyles } = useTextColor(() => props.color)\n\n useRender(() => (\n <MaybeTransition\n transition={ props.transition }\n tag=\"div\"\n class={[\n 'v-messages',\n textColorClasses.value,\n props.class,\n ]}\n style={[\n textColorStyles.value,\n props.style,\n ]}\n >\n { props.active && (\n messages.value.map((message, i) => (\n <div\n class=\"v-messages__message\"\n key={ `${i}-${messages.value}` }\n >\n { slots.message ? slots.message({ message }) : message }\n </div>\n ))\n )}\n </MaybeTransition>\n ))\n\n return {}\n },\n})\n\nexport type VMessages = InstanceType<typeof VMessages>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB,mCAE1B;AAAA,SACSC,YAAY;AAAA,SACZC,kBAAkB;AAAA,SAClBC,mBAAmB,EAAEC,eAAe,2CAE7C;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,EAAEC,WAAW,+BAE/D;AAWA,OAAO,MAAMC,kBAAkB,GAAGH,YAAY,CAAC;EAC7CI,MAAM,EAAEC,OAAO;EACfC,KAAK,EAAEC,MAAM;EACbC,QAAQ,EAAE;IACRC,IAAI,EAAE,CAACC,KAAK,EAAEH,MAAM,CAAyC;IAC7DI,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EAED,GAAGhB,kBAAkB,CAAC,CAAC;EACvB,GAAGC,mBAAmB,CAAC;IACrBgB,UAAU,EAAE;MACVC,SAAS,EAAEpB,iBAA8B;MACzCqB,aAAa,EAAE,IAAI;MACnBC,KAAK,EAAE;IACT;EACF,CAAC;AACH,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMC,SAAS,GAAGjB,gBAAgB,CAAiB,CAAC,CAAC;EAC1DkB,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEf,kBAAkB,CAAC,CAAC;EAE3BgB,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAMZ,QAAQ,GAAGV,QAAQ,CAAC,MAAMI,WAAW,CAACgB,KAAK,CAACV,QAAQ,CAAC,CAAC;IAC5D,MAAM;MAAEc,gBAAgB;MAAEC;IAAgB,CAAC,GAAG7B,YAAY,CAAC,MAAMwB,KAAK,CAACZ,KAAK,CAAC;IAE7EL,SAAS,CAAC,MAAAuB,YAAA,CAAA3B,eAAA;MAAA,cAEOqB,KAAK,CAACN,UAAU;MAAA;MAAA,SAEtB,CACL,YAAY,EACZU,gBAAgB,CAACG,KAAK,EACtBP,KAAK,CAACQ,KAAK,CACZ;MAAA,SACM,CACLH,eAAe,CAACE,KAAK,EACrBP,KAAK,CAACS,KAAK;IACZ;MAAAhB,OAAA,EAAAA,CAAA,MAECO,KAAK,CAACd,MAAM,IACZI,QAAQ,CAACiB,KAAK,CAACG,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC,KAAAN,YAAA;QAAA;QAAA,OAGpB,GAAGM,CAAC,IAAItB,QAAQ,CAACiB,KAAK;MAAE,IAE5BJ,KAAK,CAACQ,OAAO,GAAGR,KAAK,CAACQ,OAAO,CAAC;QAAEA;MAAQ,CAAC,CAAC,GAAGA,OAAO,EAEzD,CACF;IAAA,EAEJ,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VMessages.js","names":["VSlideYTransition","useTextColor","makeComponentProps","makeTransitionProps","MaybeTransition","computed","genericComponent","propsFactory","useRender","wrapInArray","makeVMessagesProps","active","Boolean","color","String","messages","type","Array","default","transition","component","leaveAbsolute","group","VMessages","name","props","setup","_ref","slots","textColorClasses","textColorStyles","_createVNode","_normalizeClass","value","class","_normalizeStyle","style","map","message","i","_createElementVNode"],"sources":["../../../src/components/VMessages/VMessages.tsx"],"sourcesContent":["// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { Component, PropType } from 'vue'\n\nexport type VMessageSlot = {\n message: string\n}\n\nexport type VMessagesSlots = {\n message: VMessageSlot\n}\n\nexport const makeVMessagesProps = propsFactory({\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String] as PropType<string | readonly string[]>,\n default: () => ([]),\n },\n\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition as Component,\n leaveAbsolute: true,\n group: true,\n },\n }),\n}, 'VMessages')\n\nexport const VMessages = genericComponent<VMessagesSlots>()({\n name: 'VMessages',\n\n props: makeVMessagesProps(),\n\n setup (props, { slots }) {\n const messages = computed(() => wrapInArray(props.messages))\n const { textColorClasses, textColorStyles } = useTextColor(() => props.color)\n\n useRender(() => (\n <MaybeTransition\n transition={ props.transition }\n tag=\"div\"\n class={[\n 'v-messages',\n textColorClasses.value,\n props.class,\n ]}\n style={[\n textColorStyles.value,\n props.style,\n ]}\n >\n { props.active && (\n messages.value.map((message, i) => (\n <div\n class=\"v-messages__message\"\n key={ `${i}-${messages.value}` }\n >\n { slots.message ? slots.message({ message }) : message }\n </div>\n ))\n )}\n </MaybeTransition>\n ))\n\n return {}\n },\n})\n\nexport type VMessages = InstanceType<typeof VMessages>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB,mCAE1B;AAAA,SACSC,YAAY;AAAA,SACZC,kBAAkB;AAAA,SAClBC,mBAAmB,EAAEC,eAAe,2CAE7C;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,EAAEC,WAAW,+BAE/D;AAWA,OAAO,MAAMC,kBAAkB,GAAGH,YAAY,CAAC;EAC7CI,MAAM,EAAEC,OAAO;EACfC,KAAK,EAAEC,MAAM;EACbC,QAAQ,EAAE;IACRC,IAAI,EAAE,CAACC,KAAK,EAAEH,MAAM,CAAyC;IAC7DI,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EAED,GAAGhB,kBAAkB,CAAC,CAAC;EACvB,GAAGC,mBAAmB,CAAC;IACrBgB,UAAU,EAAE;MACVC,SAAS,EAAEpB,iBAA8B;MACzCqB,aAAa,EAAE,IAAI;MACnBC,KAAK,EAAE;IACT;EACF,CAAC;AACH,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMC,SAAS,GAAGjB,gBAAgB,CAAiB,CAAC,CAAC;EAC1DkB,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEf,kBAAkB,CAAC,CAAC;EAE3BgB,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAMZ,QAAQ,GAAGV,QAAQ,CAAC,MAAMI,WAAW,CAACgB,KAAK,CAACV,QAAQ,CAAC,CAAC;IAC5D,MAAM;MAAEc,gBAAgB;MAAEC;IAAgB,CAAC,GAAG7B,YAAY,CAAC,MAAMwB,KAAK,CAACZ,KAAK,CAAC;IAE7EL,SAAS,CAAC,MAAAuB,YAAA,CAAA3B,eAAA;MAAA,cAEOqB,KAAK,CAACN,UAAU;MAAA;MAAA,SAAAa,eAAA,CAEtB,CACL,YAAY,EACZH,gBAAgB,CAACI,KAAK,EACtBR,KAAK,CAACS,KAAK,CACZ;MAAA,SAAAC,eAAA,CACM,CACLL,eAAe,CAACG,KAAK,EACrBR,KAAK,CAACW,KAAK,CACZ;IAAA;MAAAlB,OAAA,EAAAA,CAAA,MAECO,KAAK,CAACd,MAAM,IACZI,QAAQ,CAACkB,KAAK,CAACI,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC,KAAAC,mBAAA;QAAA;QAAA,OAGpB,GAAGD,CAAC,IAAIxB,QAAQ,CAACkB,KAAK;MAAE,IAE5BL,KAAK,CAACU,OAAO,GAAGV,KAAK,CAACU,OAAO,CAAC;QAAEA;MAAQ,CAAC,CAAC,GAAGA,OAAO,EAEzD,CACF;IAAA,EAEJ,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
1
+ import { Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from "vue";
2
2
  // Styles
3
3
  import "./VNavigationDrawer.css";
4
4
 
@@ -209,7 +209,7 @@ export const VNavigationDrawer = genericComponent()({
209
209
  });
210
210
  useRender(() => {
211
211
  const hasImage = slots.image || props.image;
212
- return _createVNode(_Fragment, null, [_createVNode(props.tag, _mergeProps({
212
+ return _createElementVNode(_Fragment, null, [_createVNode(props.tag, _mergeProps({
213
213
  "ref": rootEl,
214
214
  "onMouseenter": runOpenDelay,
215
215
  "onMouseleave": runCloseDelay,
@@ -225,7 +225,7 @@ export const VNavigationDrawer = genericComponent()({
225
225
  }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
226
226
  "style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
227
227
  }, scopeId, attrs), {
228
- default: () => [hasImage && _createVNode("div", {
228
+ default: () => [hasImage && _createElementVNode("div", {
229
229
  "key": "image",
230
230
  "class": "v-navigation-drawer__img"
231
231
  }, [!slots.image ? _createVNode(VImg, {
@@ -245,17 +245,17 @@ export const VNavigationDrawer = genericComponent()({
245
245
  src: props.image
246
246
  }
247
247
  }
248
- }, slots.image)]), slots.prepend && _createVNode("div", {
248
+ }, slots.image)]), slots.prepend && _createElementVNode("div", {
249
249
  "class": "v-navigation-drawer__prepend"
250
- }, [slots.prepend?.()]), _createVNode("div", {
250
+ }, [slots.prepend?.()]), _createElementVNode("div", {
251
251
  "class": "v-navigation-drawer__content"
252
- }, [slots.default?.()]), slots.append && _createVNode("div", {
252
+ }, [slots.default?.()]), slots.append && _createElementVNode("div", {
253
253
  "class": "v-navigation-drawer__append"
254
254
  }, [slots.append?.()])]
255
255
  }), _createVNode(Transition, {
256
256
  "name": "fade-transition"
257
257
  }, {
258
- default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && _createVNode("div", _mergeProps({
258
+ default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && _createElementVNode("div", _mergeProps({
259
259
  "class": ['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value],
260
260
  "style": [scrimStyles.value, scrimColor.backgroundColorStyles.value],
261
261
  "onClick": () => {
@@ -1 +1 @@
1
- {"version":3,"file":"VNavigationDrawer.js","names":["VDefaultsProvider","VImg","useSticky","useTouch","useRtl","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDelayProps","useDelay","makeDisplayProps","useDisplay","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","useProxiedModel","makeRoundedProps","useRounded","useRouter","useScopeId","useSsrBoot","makeTagProps","makeThemeProps","provideTheme","useToggleScope","computed","nextTick","readonly","ref","shallowRef","toRef","Transition","watch","genericComponent","propsFactory","toPhysical","useRender","locations","makeVNavigationDrawerProps","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","scrim","image","temporary","persistent","touchless","width","location","validator","value","includes","sticky","mobile","tag","VNavigationDrawer","name","props","emits","val","setup","_ref","attrs","emit","slots","isRtl","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","displayClasses","roundedClasses","router","isActive","v","ssrBootStyles","scopeId","rootEl","isHovering","runOpenDelay","runCloseDelay","isPersistent","isTemporary","isSticky","currentRoute","isDragging","dragProgress","el","position","layoutSize","size","layoutItemStyles","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","VList","bgColor","hasImage","_createVNode","_Fragment","_mergeProps","class","style","alt","cover","height","src","prepend","append","onClick"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\nimport { useRtl } from '@/composables'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, readonly, ref, shallowRef, toRef, Transition, watch } from 'vue'\nimport { genericComponent, propsFactory, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VNavigationDrawerImageSlot = {\n image: string | undefined\n}\n\nexport type VNavigationDrawerSlots = {\n default: never\n prepend: never\n append: never\n image: VNavigationDrawerImageSlot\n}\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVNavigationDrawerProps = propsFactory({\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n image: String,\n temporary: Boolean,\n persistent: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDelayProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n}, 'VNavigationDrawer')\n\nexport const VNavigationDrawer = genericComponent<VNavigationDrawerSlots>()({\n name: 'VNavigationDrawer',\n\n props: makeVNavigationDrawerProps(),\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n 'update:rail': (val: boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n const { elevationClasses } = useElevation(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n const { scopeId } = useScopeId()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = shallowRef(false)\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n isHovering.value = value\n })\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isPersistent = toRef(() => props.persistent)\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n useToggleScope(() => props.expandOnHover && props.rail != null, () => {\n watch(isHovering, val => emit('update:rail', !val))\n })\n\n useToggleScope(() => !props.disableResizeWatcher, () => {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n })\n\n useToggleScope(() => !props.disableRouteWatcher && !!router, () => {\n watch(router!.currentRoute, () => isTemporary.value && (isActive.value = false))\n })\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n if (props.modelValue == null && !isTemporary.value) {\n isActive.value = props.permanent || !mobile.value\n }\n\n const { isDragging, dragProgress } = useTouch({\n el: rootEl,\n isActive,\n isTemporary,\n width,\n touchless: toRef(() => props.touchless),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n const { layoutItemStyles, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: readonly(isActive),\n disableTransitions: toRef(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n })\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ runOpenDelay }\n onMouseleave={ runCloseDelay }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--persistent': isPersistent.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n displayClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n props.style,\n ]}\n { ...scopeId }\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { !slots.image ? (\n <VImg\n key=\"image-img\"\n alt=\"\"\n cover\n height=\"inherit\"\n src={ props.image }\n />\n ) : (\n <VDefaultsProvider\n key=\"image-defaults\"\n disabled={ !props.image }\n defaults={{\n VImg: {\n alt: '',\n cover: true,\n height: 'inherit',\n src: props.image,\n },\n }}\n v-slots:default={ slots.image }\n />\n )}\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => {\n if (isPersistent.value) return\n isActive.value = false\n }}\n { ...scopeId }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VNavigationDrawer.js","names":["VDefaultsProvider","VImg","useSticky","useTouch","useRtl","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDelayProps","useDelay","makeDisplayProps","useDisplay","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","useProxiedModel","makeRoundedProps","useRounded","useRouter","useScopeId","useSsrBoot","makeTagProps","makeThemeProps","provideTheme","useToggleScope","computed","nextTick","readonly","ref","shallowRef","toRef","Transition","watch","genericComponent","propsFactory","toPhysical","useRender","locations","makeVNavigationDrawerProps","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","scrim","image","temporary","persistent","touchless","width","location","validator","value","includes","sticky","mobile","tag","VNavigationDrawer","name","props","emits","val","setup","_ref","attrs","emit","slots","isRtl","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","displayClasses","roundedClasses","router","isActive","v","ssrBootStyles","scopeId","rootEl","isHovering","runOpenDelay","runCloseDelay","isPersistent","isTemporary","isSticky","currentRoute","isDragging","dragProgress","el","position","layoutSize","size","layoutItemStyles","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","VList","bgColor","hasImage","_createElementVNode","_Fragment","_createVNode","_mergeProps","class","style","alt","cover","height","src","prepend","append","onClick"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\nimport { useRtl } from '@/composables'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, readonly, ref, shallowRef, toRef, Transition, watch } from 'vue'\nimport { genericComponent, propsFactory, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VNavigationDrawerImageSlot = {\n image: string | undefined\n}\n\nexport type VNavigationDrawerSlots = {\n default: never\n prepend: never\n append: never\n image: VNavigationDrawerImageSlot\n}\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVNavigationDrawerProps = propsFactory({\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n image: String,\n temporary: Boolean,\n persistent: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDelayProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n}, 'VNavigationDrawer')\n\nexport const VNavigationDrawer = genericComponent<VNavigationDrawerSlots>()({\n name: 'VNavigationDrawer',\n\n props: makeVNavigationDrawerProps(),\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n 'update:rail': (val: boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n const { elevationClasses } = useElevation(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n const { scopeId } = useScopeId()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = shallowRef(false)\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n isHovering.value = value\n })\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isPersistent = toRef(() => props.persistent)\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n useToggleScope(() => props.expandOnHover && props.rail != null, () => {\n watch(isHovering, val => emit('update:rail', !val))\n })\n\n useToggleScope(() => !props.disableResizeWatcher, () => {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n })\n\n useToggleScope(() => !props.disableRouteWatcher && !!router, () => {\n watch(router!.currentRoute, () => isTemporary.value && (isActive.value = false))\n })\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n if (props.modelValue == null && !isTemporary.value) {\n isActive.value = props.permanent || !mobile.value\n }\n\n const { isDragging, dragProgress } = useTouch({\n el: rootEl,\n isActive,\n isTemporary,\n width,\n touchless: toRef(() => props.touchless),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n const { layoutItemStyles, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: readonly(isActive),\n disableTransitions: toRef(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n })\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ runOpenDelay }\n onMouseleave={ runCloseDelay }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--persistent': isPersistent.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n displayClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n props.style,\n ]}\n { ...scopeId }\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { !slots.image ? (\n <VImg\n key=\"image-img\"\n alt=\"\"\n cover\n height=\"inherit\"\n src={ props.image }\n />\n ) : (\n <VDefaultsProvider\n key=\"image-defaults\"\n disabled={ !props.image }\n defaults={{\n VImg: {\n alt: '',\n cover: true,\n height: 'inherit',\n src: props.image,\n },\n }}\n v-slots:default={ slots.image }\n />\n )}\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => {\n if (isPersistent.value) return\n isActive.value = false\n }}\n { ...scopeId }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":"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","ignoreList":[]}
@@ -2,9 +2,7 @@
2
2
  import { useToggleScope } from "../../composables/toggleScope.js";
3
3
  import { useVelocity } from "../../composables/touch.js"; // Utilities
4
4
  import { computed, onBeforeUnmount, onMounted, onScopeDispose, shallowRef, watchEffect } from 'vue';
5
-
6
- // Types
7
-
5
+ import { clamp } from "../../util/index.js"; // Types
8
6
  export function useTouch(_ref) {
9
7
  let {
10
8
  el,
@@ -47,7 +45,7 @@ export function useTouch(_ref) {
47
45
  function getProgress(pos) {
48
46
  let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
49
47
  const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'top' ? (pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();
50
- return limit ? Math.max(0, Math.min(1, progress)) : progress;
48
+ return limit ? clamp(progress) : progress;
51
49
  }
52
50
  function onTouchstart(e) {
53
51
  if (touchless.value) return;
@@ -1 +1 @@
1
- {"version":3,"file":"touch.js","names":["useToggleScope","useVelocity","computed","onBeforeUnmount","onMounted","onScopeDispose","shallowRef","watchEffect","useTouch","_ref","el","isActive","isTemporary","width","touchless","position","window","addEventListener","onTouchstart","passive","onTouchmove","onTouchend","removeEventListener","isHorizontal","includes","value","addMovement","endTouch","getVelocity","maybeDragging","isDragging","dragProgress","offset","start","getOffset","pos","active","document","documentElement","clientWidth","clientHeight","oops","getProgress","limit","arguments","length","undefined","progress","Math","max","min","e","touchX","changedTouches","clientX","touchY","clientY","touchZone","inTouchZone","inElement","cancelable","dx","abs","dy","thresholdMet","preventDefault","velocity","identifier","vx","x","vy","y","direction","left","right","top","bottom","dragStyles","transform","transition","style","setProperty","Error"],"sources":["../../../src/components/VNavigationDrawer/touch.ts"],"sourcesContent":["// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { useVelocity } from '@/composables/touch'\n\n// Utilities\nimport { computed, onBeforeUnmount, onMounted, onScopeDispose, shallowRef, watchEffect } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTouch ({\n el,\n isActive,\n isTemporary,\n width,\n touchless,\n position,\n}: {\n el: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n isTemporary: Ref<boolean>\n width: Ref<number>\n touchless: Ref<boolean>\n position: Ref<'left' | 'right' | 'top' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => ['left', 'right'].includes(position.value))\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = shallowRef(false)\n const dragProgress = shallowRef(0)\n const offset = shallowRef(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'top' ? pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'top' ? (pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? Math.max(0, Math.min(1, progress)) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'top' ? touchY < touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'top' ? touchY < width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n maybeDragging = offset.value > -20 && offset.value < 80\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n useToggleScope(isDragging, () => {\n const transform = el.value?.style.transform ?? null\n const transition = el.value?.style.transition ?? null\n\n watchEffect(() => {\n el.value?.style.setProperty('transform', dragStyles.value?.transform || 'none')\n el.value?.style.setProperty('transition', dragStyles.value?.transition || null)\n })\n\n onScopeDispose(() => {\n el.value?.style.setProperty('transform', transform)\n el.value?.style.setProperty('transition', transition)\n })\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n"],"mappings":"AAAA;AAAA,SACSA,cAAc;AAAA,SACdC,WAAW,sCAEpB;AACA,SAASC,QAAQ,EAAEC,eAAe,EAAEC,SAAS,EAAEC,cAAc,EAAEC,UAAU,EAAEC,WAAW,QAAQ,KAAK;;AAEnG;;AAGA,OAAO,SAASC,QAAQA,CAAAC,IAAA,EAcrB;EAAA,IAduB;IACxBC,EAAE;IACFC,QAAQ;IACRC,WAAW;IACXC,KAAK;IACLC,SAAS;IACTC;EAQF,CAAC,GAAAN,IAAA;EACCL,SAAS,CAAC,MAAM;IACdY,MAAM,CAACC,gBAAgB,CAAC,YAAY,EAAEC,YAAY,EAAE;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;IACtEH,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEG,WAAW,EAAE;MAAED,OAAO,EAAE;IAAM,CAAC,CAAC;IACrEH,MAAM,CAACC,gBAAgB,CAAC,UAAU,EAAEI,UAAU,EAAE;MAAEF,OAAO,EAAE;IAAK,CAAC,CAAC;EACpE,CAAC,CAAC;EAEFhB,eAAe,CAAC,MAAM;IACpBa,MAAM,CAACM,mBAAmB,CAAC,YAAY,EAAEJ,YAAY,CAAC;IACtDF,MAAM,CAACM,mBAAmB,CAAC,WAAW,EAAEF,WAAW,CAAC;IACpDJ,MAAM,CAACM,mBAAmB,CAAC,UAAU,EAAED,UAAU,CAAC;EACpD,CAAC,CAAC;EAEF,MAAME,YAAY,GAAGrB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAACsB,QAAQ,CAACT,QAAQ,CAACU,KAAK,CAAC,CAAC;EAE/E,MAAM;IAAEC,WAAW;IAAEC,QAAQ;IAAEC;EAAY,CAAC,GAAG3B,WAAW,CAAC,CAAC;EAC5D,IAAI4B,aAAa,GAAG,KAAK;EACzB,MAAMC,UAAU,GAAGxB,UAAU,CAAC,KAAK,CAAC;EACpC,MAAMyB,YAAY,GAAGzB,UAAU,CAAC,CAAC,CAAC;EAClC,MAAM0B,MAAM,GAAG1B,UAAU,CAAC,CAAC,CAAC;EAC5B,IAAI2B,KAAmC;EAEvC,SAASC,SAASA,CAAEC,GAAW,EAAEC,MAAe,EAAU;IACxD,OAAO,CACLrB,QAAQ,CAACU,KAAK,KAAK,MAAM,GAAGU,GAAG,GAC7BpB,QAAQ,CAACU,KAAK,KAAK,OAAO,GAAGY,QAAQ,CAACC,eAAe,CAACC,WAAW,GAAGJ,GAAG,GACvEpB,QAAQ,CAACU,KAAK,KAAK,KAAK,GAAGU,GAAG,GAC9BpB,QAAQ,CAACU,KAAK,KAAK,QAAQ,GAAGY,QAAQ,CAACC,eAAe,CAACE,YAAY,GAAGL,GAAG,GACzEM,IAAI,CAAC,CAAC,KACLL,MAAM,GAAGvB,KAAK,CAACY,KAAK,GAAG,CAAC,CAAC;EAChC;EAEA,SAASiB,WAAWA,CAAEP,GAAW,EAAwB;IAAA,IAAtBQ,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAC7C,MAAMG,QAAQ,GACZhC,QAAQ,CAACU,KAAK,KAAK,MAAM,GAAG,CAACU,GAAG,GAAGH,MAAM,CAACP,KAAK,IAAIZ,KAAK,CAACY,KAAK,GAC5DV,QAAQ,CAACU,KAAK,KAAK,OAAO,GAAG,CAACY,QAAQ,CAACC,eAAe,CAACC,WAAW,GAAGJ,GAAG,GAAGH,MAAM,CAACP,KAAK,IAAIZ,KAAK,CAACY,KAAK,GACtGV,QAAQ,CAACU,KAAK,KAAK,KAAK,GAAG,CAACU,GAAG,GAAGH,MAAM,CAACP,KAAK,IAAIZ,KAAK,CAACY,KAAK,GAC7DV,QAAQ,CAACU,KAAK,KAAK,QAAQ,GAAG,CAACY,QAAQ,CAACC,eAAe,CAACE,YAAY,GAAGL,GAAG,GAAGH,MAAM,CAACP,KAAK,IAAIZ,KAAK,CAACY,KAAK,GACxGgB,IAAI,CAAC,CACR;IACD,OAAOE,KAAK,GAAGK,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEH,QAAQ,CAAC,CAAC,GAAGA,QAAQ;EAC9D;EAEA,SAAS7B,YAAYA,CAAEiC,CAAa,EAAE;IACpC,IAAIrC,SAAS,CAACW,KAAK,EAAE;IAErB,MAAM2B,MAAM,GAAGD,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC,CAACC,OAAO;IAC1C,MAAMC,MAAM,GAAGJ,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC,CAACG,OAAO;IAE1C,MAAMC,SAAS,GAAG,EAAE;IACpB,MAAMC,WAAoB,GACxB3C,QAAQ,CAACU,KAAK,KAAK,MAAM,GAAG2B,MAAM,GAAGK,SAAS,GAC5C1C,QAAQ,CAACU,KAAK,KAAK,OAAO,GAAG2B,MAAM,GAAGf,QAAQ,CAACC,eAAe,CAACC,WAAW,GAAGkB,SAAS,GACtF1C,QAAQ,CAACU,KAAK,KAAK,KAAK,GAAG8B,MAAM,GAAGE,SAAS,GAC7C1C,QAAQ,CAACU,KAAK,KAAK,QAAQ,GAAG8B,MAAM,GAAGlB,QAAQ,CAACC,eAAe,CAACE,YAAY,GAAGiB,SAAS,GACxFhB,IAAI,CAAC,CAAC;IAEV,MAAMkB,SAAkB,GAAGhD,QAAQ,CAACc,KAAK,KACvCV,QAAQ,CAACU,KAAK,KAAK,MAAM,GAAG2B,MAAM,GAAGvC,KAAK,CAACY,KAAK,GAC9CV,QAAQ,CAACU,KAAK,KAAK,OAAO,GAAG2B,MAAM,GAAGf,QAAQ,CAACC,eAAe,CAACC,WAAW,GAAG1B,KAAK,CAACY,KAAK,GACxFV,QAAQ,CAACU,KAAK,KAAK,KAAK,GAAG8B,MAAM,GAAG1C,KAAK,CAACY,KAAK,GAC/CV,QAAQ,CAACU,KAAK,KAAK,QAAQ,GAAG8B,MAAM,GAAGlB,QAAQ,CAACC,eAAe,CAACE,YAAY,GAAG3B,KAAK,CAACY,KAAK,GAC1FgB,IAAI,CAAC,CAAC,CACT;IAED,IACEiB,WAAW,IACXC,SAAS,IACRhD,QAAQ,CAACc,KAAK,IAAIb,WAAW,CAACa,KAAM,EACrC;MACAQ,KAAK,GAAG,CAACmB,MAAM,EAAEG,MAAM,CAAC;MAExBvB,MAAM,CAACP,KAAK,GAAGS,SAAS,CAACX,YAAY,CAACE,KAAK,GAAG2B,MAAM,GAAGG,MAAM,EAAE5C,QAAQ,CAACc,KAAK,CAAC;MAC9EM,YAAY,CAACN,KAAK,GAAGiB,WAAW,CAACnB,YAAY,CAACE,KAAK,GAAG2B,MAAM,GAAGG,MAAM,CAAC;MAEtE1B,aAAa,GAAGG,MAAM,CAACP,KAAK,GAAG,CAAC,EAAE,IAAIO,MAAM,CAACP,KAAK,GAAG,EAAE;MACvDE,QAAQ,CAACwB,CAAC,CAAC;MACXzB,WAAW,CAACyB,CAAC,CAAC;IAChB;EACF;EAEA,SAAS/B,WAAWA,CAAE+B,CAAa,EAAE;IACnC,MAAMC,MAAM,GAAGD,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC,CAACC,OAAO;IAC1C,MAAMC,MAAM,GAAGJ,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC,CAACG,OAAO;IAE1C,IAAI3B,aAAa,EAAE;MACjB,IAAI,CAACsB,CAAC,CAACS,UAAU,EAAE;QACjB/B,aAAa,GAAG,KAAK;QACrB;MACF;MAEA,MAAMgC,EAAE,GAAGb,IAAI,CAACc,GAAG,CAACV,MAAM,GAAGnB,KAAK,CAAE,CAAC,CAAC,CAAC;MACvC,MAAM8B,EAAE,GAAGf,IAAI,CAACc,GAAG,CAACP,MAAM,GAAGtB,KAAK,CAAE,CAAC,CAAC,CAAC;MAEvC,MAAM+B,YAAY,GAAGzC,YAAY,CAACE,KAAK,GACnCoC,EAAE,GAAGE,EAAE,IAAIF,EAAE,GAAG,CAAC,GACjBE,EAAE,GAAGF,EAAE,IAAIE,EAAE,GAAG,CAAC;MAErB,IAAIC,YAAY,EAAE;QAChBlC,UAAU,CAACL,KAAK,GAAG,IAAI;QACvBI,aAAa,GAAG,KAAK;MACvB,CAAC,MAAM,IAAI,CAACN,YAAY,CAACE,KAAK,GAAGsC,EAAE,GAAGF,EAAE,IAAI,CAAC,EAAE;QAC7ChC,aAAa,GAAG,KAAK;MACvB;IACF;IAEA,IAAI,CAACC,UAAU,CAACL,KAAK,EAAE;IAEvB0B,CAAC,CAACc,cAAc,CAAC,CAAC;IAClBvC,WAAW,CAACyB,CAAC,CAAC;IAEd,MAAMJ,QAAQ,GAAGL,WAAW,CAACnB,YAAY,CAACE,KAAK,GAAG2B,MAAM,GAAGG,MAAM,EAAE,KAAK,CAAC;IACzExB,YAAY,CAACN,KAAK,GAAGuB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEH,QAAQ,CAAC,CAAC;IAEvD,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAChBf,MAAM,CAACP,KAAK,GAAGS,SAAS,CAACX,YAAY,CAACE,KAAK,GAAG2B,MAAM,GAAGG,MAAM,EAAE,IAAI,CAAC;IACtE,CAAC,MAAM,IAAIR,QAAQ,GAAG,CAAC,EAAE;MACvBf,MAAM,CAACP,KAAK,GAAGS,SAAS,CAACX,YAAY,CAACE,KAAK,GAAG2B,MAAM,GAAGG,MAAM,EAAE,KAAK,CAAC;IACvE;EACF;EAEA,SAASlC,UAAUA,CAAE8B,CAAa,EAAE;IAClCtB,aAAa,GAAG,KAAK;IAErB,IAAI,CAACC,UAAU,CAACL,KAAK,EAAE;IAEvBC,WAAW,CAACyB,CAAC,CAAC;IAEdrB,UAAU,CAACL,KAAK,GAAG,KAAK;IAExB,MAAMyC,QAAQ,GAAGtC,WAAW,CAACuB,CAAC,CAACE,cAAc,CAAC,CAAC,CAAC,CAACc,UAAU,CAAC;IAC5D,MAAMC,EAAE,GAAGpB,IAAI,CAACc,GAAG,CAACI,QAAQ,CAACG,CAAC,CAAC;IAC/B,MAAMC,EAAE,GAAGtB,IAAI,CAACc,GAAG,CAACI,QAAQ,CAACK,CAAC,CAAC;IAC/B,MAAMP,YAAY,GAAGzC,YAAY,CAACE,KAAK,GACnC2C,EAAE,GAAGE,EAAE,IAAIF,EAAE,GAAG,GAAG,GACnBE,EAAE,GAAGF,EAAE,IAAIE,EAAE,GAAG,CAAC;IAErB,IAAIN,YAAY,EAAE;MAChBrD,QAAQ,CAACc,KAAK,GAAGyC,QAAQ,CAACM,SAAS,MAAM;QACvCC,IAAI,EAAE,OAAO;QACbC,KAAK,EAAE,MAAM;QACbC,GAAG,EAAE,MAAM;QACXC,MAAM,EAAE;MACV,CAAC,CAAC7D,QAAQ,CAACU,KAAK,CAAC,IAAIgB,IAAI,CAAC,CAAC,CAAC;IAC9B,CAAC,MAAM;MACL9B,QAAQ,CAACc,KAAK,GAAGM,YAAY,CAACN,KAAK,GAAG,GAAG;IAC3C;EACF;EAEA,MAAMoD,UAAU,GAAG3E,QAAQ,CAAC,MAAM;IAChC,OAAO4B,UAAU,CAACL,KAAK,GAAG;MACxBqD,SAAS,EACP/D,QAAQ,CAACU,KAAK,KAAK,MAAM,GAAG,2BAA2BM,YAAY,CAACN,KAAK,GAAGZ,KAAK,CAACY,KAAK,MAAM,GAC3FV,QAAQ,CAACU,KAAK,KAAK,OAAO,GAAG,0BAA0BM,YAAY,CAACN,KAAK,GAAGZ,KAAK,CAACY,KAAK,MAAM,GAC7FV,QAAQ,CAACU,KAAK,KAAK,KAAK,GAAG,2BAA2BM,YAAY,CAACN,KAAK,GAAGZ,KAAK,CAACY,KAAK,MAAM,GAC5FV,QAAQ,CAACU,KAAK,KAAK,QAAQ,GAAG,0BAA0BM,YAAY,CAACN,KAAK,GAAGZ,KAAK,CAACY,KAAK,MAAM,GAC9FgB,IAAI,CAAC,CAAC;MACVsC,UAAU,EAAE;IACd,CAAC,GAAGjC,SAAS;EACf,CAAC,CAAC;EAEF9C,cAAc,CAAC8B,UAAU,EAAE,MAAM;IAC/B,MAAMgD,SAAS,GAAGpE,EAAE,CAACe,KAAK,EAAEuD,KAAK,CAACF,SAAS,IAAI,IAAI;IACnD,MAAMC,UAAU,GAAGrE,EAAE,CAACe,KAAK,EAAEuD,KAAK,CAACD,UAAU,IAAI,IAAI;IAErDxE,WAAW,CAAC,MAAM;MAChBG,EAAE,CAACe,KAAK,EAAEuD,KAAK,CAACC,WAAW,CAAC,WAAW,EAAEJ,UAAU,CAACpD,KAAK,EAAEqD,SAAS,IAAI,MAAM,CAAC;MAC/EpE,EAAE,CAACe,KAAK,EAAEuD,KAAK,CAACC,WAAW,CAAC,YAAY,EAAEJ,UAAU,CAACpD,KAAK,EAAEsD,UAAU,IAAI,IAAI,CAAC;IACjF,CAAC,CAAC;IAEF1E,cAAc,CAAC,MAAM;MACnBK,EAAE,CAACe,KAAK,EAAEuD,KAAK,CAACC,WAAW,CAAC,WAAW,EAAEH,SAAS,CAAC;MACnDpE,EAAE,CAACe,KAAK,EAAEuD,KAAK,CAACC,WAAW,CAAC,YAAY,EAAEF,UAAU,CAAC;IACvD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAO;IACLjD,UAAU;IACVC,YAAY;IACZ8C;EACF,CAAC;AACH;AAEA,SAASpC,IAAIA,CAAA,EAAW;EACtB,MAAM,IAAIyC,KAAK,CAAC,CAAC;AACnB","ignoreList":[]}
1
+ {"version":3,"file":"touch.js","names":["useToggleScope","useVelocity","computed","onBeforeUnmount","onMounted","onScopeDispose","shallowRef","watchEffect","clamp","useTouch","_ref","el","isActive","isTemporary","width","touchless","position","window","addEventListener","onTouchstart","passive","onTouchmove","onTouchend","removeEventListener","isHorizontal","includes","value","addMovement","endTouch","getVelocity","maybeDragging","isDragging","dragProgress","offset","start","getOffset","pos","active","document","documentElement","clientWidth","clientHeight","oops","getProgress","limit","arguments","length","undefined","progress","e","touchX","changedTouches","clientX","touchY","clientY","touchZone","inTouchZone","inElement","cancelable","dx","Math","abs","dy","thresholdMet","preventDefault","max","min","velocity","identifier","vx","x","vy","y","direction","left","right","top","bottom","dragStyles","transform","transition","style","setProperty","Error"],"sources":["../../../src/components/VNavigationDrawer/touch.ts"],"sourcesContent":["// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { useVelocity } from '@/composables/touch'\n\n// Utilities\nimport { computed, onBeforeUnmount, onMounted, onScopeDispose, shallowRef, watchEffect } from 'vue'\nimport { clamp } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTouch ({\n el,\n isActive,\n isTemporary,\n width,\n touchless,\n position,\n}: {\n el: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n isTemporary: Ref<boolean>\n width: Ref<number>\n touchless: Ref<boolean>\n position: Ref<'left' | 'right' | 'top' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => ['left', 'right'].includes(position.value))\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = shallowRef(false)\n const dragProgress = shallowRef(0)\n const offset = shallowRef(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'top' ? pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'top' ? (pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? clamp(progress) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'top' ? touchY < touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'top' ? touchY < width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n maybeDragging = offset.value > -20 && offset.value < 80\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n useToggleScope(isDragging, () => {\n const transform = el.value?.style.transform ?? null\n const transition = el.value?.style.transition ?? null\n\n watchEffect(() => {\n el.value?.style.setProperty('transform', dragStyles.value?.transform || 'none')\n el.value?.style.setProperty('transition', dragStyles.value?.transition || null)\n })\n\n onScopeDispose(() => {\n el.value?.style.setProperty('transform', transform)\n el.value?.style.setProperty('transition', transition)\n })\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps } from "vue";
1
+ import { createVNode as _createVNode, createElementVNode as _createElementVNode, Fragment as _Fragment, mergeProps as _mergeProps } from "vue";
2
2
  // Styles
3
3
  import "./VNumberInput.css";
4
4
 
@@ -13,7 +13,7 @@ import { useForm } from "../../composables/form.js";
13
13
  import { forwardRefs } from "../../composables/forwardRefs.js";
14
14
  import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
15
15
  import { computed, nextTick, onMounted, ref, shallowRef, toRef, watch, watchEffect } from 'vue';
16
- import { clamp, genericComponent, omit, propsFactory, useRender } from "../../util/index.js"; // Types
16
+ import { clamp, extractNumber, genericComponent, omit, propsFactory, useRender } from "../../util/index.js"; // Types
17
17
  const makeVNumberInputProps = propsFactory({
18
18
  controlVariant: {
19
19
  type: String,
@@ -117,14 +117,16 @@ export const VNumberInput = genericComponent()({
117
117
  props: {
118
118
  onClick: onControlClick,
119
119
  onPointerup: onControlMouseup,
120
- onPointerdown: onUpControlMousedown
120
+ onPointerdown: onUpControlMousedown,
121
+ onPointercancel: onControlPointerCancel
121
122
  }
122
123
  };
123
124
  const decrementSlotProps = {
124
125
  props: {
125
126
  onClick: onControlClick,
126
127
  onPointerup: onControlMouseup,
127
- onPointerdown: onDownControlMousedown
128
+ onPointerdown: onDownControlMousedown,
129
+ onPointercancel: onControlPointerCancel
128
130
  }
129
131
  };
130
132
  watch(() => props.precision, () => formatInputValue());
@@ -154,25 +156,33 @@ export const VNumberInput = genericComponent()({
154
156
  }
155
157
  function onBeforeinput(e) {
156
158
  if (!e.data) return;
157
- const existingTxt = e.target?.value;
158
- const selectionStart = e.target?.selectionStart;
159
- const selectionEnd = e.target?.selectionEnd;
159
+ const inputElement = e.target;
160
+ const {
161
+ value: existingTxt,
162
+ selectionStart,
163
+ selectionEnd
164
+ } = inputElement ?? {};
160
165
  const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
166
+ const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision);
167
+
161
168
  // Only numbers, "-", "." are allowed
162
169
  // AND "-", "." are allowed only once
163
170
  // AND "-" is only allowed at the start
164
171
  if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
165
172
  e.preventDefault();
173
+ inputElement.value = potentialNewNumber;
166
174
  }
167
175
  if (props.precision == null) return;
168
176
 
169
177
  // Ignore decimal digits above precision limit
170
178
  if (potentialNewInputVal.split('.')[1]?.length > props.precision) {
171
179
  e.preventDefault();
180
+ inputElement.value = potentialNewNumber;
172
181
  }
173
182
  // Ignore decimal separator when precision = 0
174
183
  if (props.precision === 0 && potentialNewInputVal.includes('.')) {
175
184
  e.preventDefault();
185
+ inputElement.value = potentialNewNumber;
176
186
  }
177
187
  }
178
188
  async function onKeydown(e) {
@@ -213,6 +223,11 @@ export const VNumberInput = genericComponent()({
213
223
  e.stopPropagation();
214
224
  holdStart('down');
215
225
  }
226
+ function onControlPointerCancel(e) {
227
+ const el = e.currentTarget;
228
+ el?.releasePointerCapture(e.pointerId);
229
+ holdStop();
230
+ }
216
231
  function clampModel() {
217
232
  if (controlsDisabled.value) return;
218
233
  if (!vTextFieldRef.value) return;
@@ -254,16 +269,17 @@ export const VNumberInput = genericComponent()({
254
269
  } = VTextField.filterProps(props);
255
270
  function incrementControlNode() {
256
271
  return !slots.increment ? _createVNode(VBtn, {
272
+ "aria-hidden": "true",
273
+ "data-testid": "increment",
257
274
  "disabled": !canIncrease.value,
258
275
  "flat": true,
259
- "key": "increment-btn",
260
276
  "height": controlNodeDefaultHeight.value,
261
- "data-testid": "increment",
262
- "aria-hidden": "true",
263
277
  "icon": incrementIcon.value,
278
+ "key": "increment-btn",
264
279
  "onClick": onControlClick,
265
- "onPointerup": onControlMouseup,
266
280
  "onPointerdown": onUpControlMousedown,
281
+ "onPointerup": onControlMouseup,
282
+ "onPointercancel": onControlPointerCancel,
267
283
  "size": controlNodeSize.value,
268
284
  "tabindex": "-1"
269
285
  }, null) : _createVNode(VDefaultsProvider, {
@@ -283,18 +299,19 @@ export const VNumberInput = genericComponent()({
283
299
  }
284
300
  function decrementControlNode() {
285
301
  return !slots.decrement ? _createVNode(VBtn, {
302
+ "aria-hidden": "true",
303
+ "data-testid": "decrement",
286
304
  "disabled": !canDecrease.value,
287
305
  "flat": true,
288
- "key": "decrement-btn",
289
306
  "height": controlNodeDefaultHeight.value,
290
- "data-testid": "decrement",
291
- "aria-hidden": "true",
292
307
  "icon": decrementIcon.value,
293
- "size": controlNodeSize.value,
294
- "tabindex": "-1",
308
+ "key": "decrement-btn",
295
309
  "onClick": onControlClick,
310
+ "onPointerdown": onDownControlMousedown,
296
311
  "onPointerup": onControlMouseup,
297
- "onPointerdown": onDownControlMousedown
312
+ "onPointercancel": onControlPointerCancel,
313
+ "size": controlNodeSize.value,
314
+ "tabindex": "-1"
298
315
  }, null) : _createVNode(VDefaultsProvider, {
299
316
  "key": "decrement-defaults",
300
317
  "defaults": {
@@ -311,7 +328,7 @@ export const VNumberInput = genericComponent()({
311
328
  });
312
329
  }
313
330
  function controlNode() {
314
- return _createVNode("div", {
331
+ return _createElementVNode("div", {
315
332
  "class": "v-number-input__control"
316
333
  }, [decrementControlNode(), _createVNode(VDivider, {
317
334
  "vertical": controlVariant.value !== 'stacked'
@@ -322,17 +339,17 @@ export const VNumberInput = genericComponent()({
322
339
  "vertical": true
323
340
  }, null) : undefined;
324
341
  }
325
- const appendInnerControl = controlVariant.value === 'split' ? _createVNode("div", {
342
+ const appendInnerControl = controlVariant.value === 'split' ? _createElementVNode("div", {
326
343
  "class": "v-number-input__control"
327
344
  }, [_createVNode(VDivider, {
328
345
  "vertical": true
329
- }, null), incrementControlNode()]) : props.reverse || controlVariant.value === 'hidden' ? undefined : _createVNode(_Fragment, null, [dividerNode(), controlNode()]);
346
+ }, null), incrementControlNode()]) : props.reverse || controlVariant.value === 'hidden' ? undefined : _createElementVNode(_Fragment, null, [dividerNode(), controlNode()]);
330
347
  const hasAppendInner = slots['append-inner'] || appendInnerControl;
331
- const prependInnerControl = controlVariant.value === 'split' ? _createVNode("div", {
348
+ const prependInnerControl = controlVariant.value === 'split' ? _createElementVNode("div", {
332
349
  "class": "v-number-input__control"
333
350
  }, [decrementControlNode(), _createVNode(VDivider, {
334
351
  "vertical": true
335
- }, null)]) : props.reverse && controlVariant.value !== 'hidden' ? _createVNode(_Fragment, null, [controlNode(), dividerNode()]) : undefined;
352
+ }, null)]) : props.reverse && controlVariant.value !== 'hidden' ? _createElementVNode(_Fragment, null, [controlNode(), dividerNode()]) : undefined;
336
353
  const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
337
354
  return _createVNode(VTextField, _mergeProps({
338
355
  "ref": vTextFieldRef,
@@ -360,13 +377,13 @@ export const VNumberInput = genericComponent()({
360
377
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
361
378
  args[_key] = arguments[_key];
362
379
  }
363
- return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), appendInnerControl]);
380
+ return _createElementVNode(_Fragment, null, [slots['append-inner']?.(...args), appendInnerControl]);
364
381
  } : undefined,
365
382
  'prepend-inner': hasPrependInner ? function () {
366
383
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
367
384
  args[_key2] = arguments[_key2];
368
385
  }
369
- return _createVNode(_Fragment, null, [prependInnerControl, slots['prepend-inner']?.(...args)]);
386
+ return _createElementVNode(_Fragment, null, [prependInnerControl, slots['prepend-inner']?.(...args)]);
370
387
  } : undefined
371
388
  });
372
389
  });