vuetify 3.1.12 → 3.1.13

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 (455) hide show
  1. package/dist/_component-variables-labs.sass +2 -1
  2. package/dist/json/attributes.json +4130 -3910
  3. package/dist/json/importMap-labs.json +8 -4
  4. package/dist/json/importMap.json +150 -150
  5. package/dist/json/tags.json +603 -543
  6. package/dist/json/web-types.json +14479 -13894
  7. package/dist/vuetify-labs.css +450 -226
  8. package/dist/vuetify-labs.d.ts +1808 -927
  9. package/dist/vuetify-labs.esm.js +653 -484
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +653 -486
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +164 -160
  14. package/dist/vuetify.d.ts +1345 -707
  15. package/dist/vuetify.esm.js +511 -476
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +511 -478
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +164 -158
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  23. package/lib/components/VApp/VApp.mjs.map +1 -1
  24. package/lib/components/VApp/index.d.ts +2 -2
  25. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  26. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  27. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs +2 -3
  29. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  30. package/lib/components/VAutocomplete/index.d.ts +39 -39
  31. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  32. package/lib/components/VBadge/VBadge.mjs +1 -1
  33. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  34. package/lib/components/VBadge/index.d.ts +13 -13
  35. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  36. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  37. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  38. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
  39. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  40. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  41. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  42. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  43. package/lib/components/VBtn/index.d.ts +4 -4
  44. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  45. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  46. package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
  47. package/lib/components/VCalendar/VCalendarCategory.mjs.map +1 -1
  48. package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
  49. package/lib/components/VCalendar/VCalendarMonthly.mjs.map +1 -1
  50. package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
  51. package/lib/components/VCalendar/mixins/calendar-base.mjs.map +1 -1
  52. package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
  53. package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +1 -1
  54. package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
  55. package/lib/components/VCalendar/mixins/times.mjs.map +1 -1
  56. package/lib/components/VCalendar/modes/column.mjs.map +1 -1
  57. package/lib/components/VCalendar/modes/common.mjs.map +1 -1
  58. package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
  59. package/lib/components/VCalendar/util/events.mjs.map +1 -1
  60. package/lib/components/VCalendar/util/parser.mjs.map +1 -1
  61. package/lib/components/VCalendar/util/props.mjs.map +1 -1
  62. package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
  63. package/lib/components/VCard/VCard.mjs.map +1 -1
  64. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  65. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  66. package/lib/components/VCard/index.d.ts +1 -13
  67. package/lib/components/VCarousel/VCarousel.mjs +10 -10
  68. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  69. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  70. package/lib/components/VCarousel/index.d.ts +197 -19
  71. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  72. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  73. package/lib/components/VChip/VChip.mjs.map +1 -1
  74. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  75. package/lib/components/VColorPicker/VColorPicker.mjs +58 -61
  76. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  77. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  78. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  79. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  80. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  81. package/lib/components/VColorPicker/index.d.ts +113 -50
  82. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  83. package/lib/components/VCombobox/VCombobox.mjs +2 -3
  84. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  85. package/lib/components/VCombobox/index.d.ts +39 -39
  86. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  87. package/lib/components/VCounter/index.d.ts +123 -24
  88. package/lib/components/VData/VData.mjs.map +1 -1
  89. package/lib/components/VDataIterator/VDataFooter.mjs.map +1 -1
  90. package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
  91. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  92. package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
  93. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  94. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +1 -1
  95. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +1 -1
  96. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  97. package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
  98. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
  99. package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
  100. package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +1 -1
  101. package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
  102. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  103. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  104. package/lib/components/VDialog/index.d.ts +43 -43
  105. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  106. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  107. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  108. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  109. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  110. package/lib/components/VField/VField.mjs.map +1 -1
  111. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  112. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  113. package/lib/components/VFileInput/index.d.ts +9 -9
  114. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  115. package/lib/components/VForm/VForm.mjs.map +1 -1
  116. package/lib/components/VGrid/VCol.mjs.map +1 -1
  117. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  118. package/lib/components/VGrid/VRow.mjs.map +1 -1
  119. package/lib/components/VHover/VHover.mjs.map +1 -1
  120. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  121. package/lib/components/VImg/VImg.mjs.map +1 -1
  122. package/lib/components/VImg/index.d.ts +9 -9
  123. package/lib/components/VInput/InputIcon.mjs.map +1 -1
  124. package/lib/components/VInput/VInput.mjs.map +1 -1
  125. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  126. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  127. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  128. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  129. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  130. package/lib/components/VLayout/index.d.ts +2 -2
  131. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  132. package/lib/components/VLazy/index.d.ts +13 -13
  133. package/lib/components/VList/VList.mjs.map +1 -1
  134. package/lib/components/VList/VListChildren.mjs.map +1 -1
  135. package/lib/components/VList/VListGroup.mjs +24 -13
  136. package/lib/components/VList/VListGroup.mjs.map +1 -1
  137. package/lib/components/VList/VListItem.mjs.map +1 -1
  138. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  139. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  140. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  141. package/lib/components/VList/list.mjs.map +1 -1
  142. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  143. package/lib/components/VMain/VMain.mjs.map +1 -1
  144. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  145. package/lib/components/VMenu/index.d.ts +43 -43
  146. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  147. package/lib/components/VMessages/index.d.ts +123 -24
  148. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +8 -2
  149. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  150. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  151. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  152. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  153. package/lib/components/VNoSsr/index.d.ts +1 -13
  154. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  155. package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
  156. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  157. package/lib/components/VOverlay/index.d.ts +15 -15
  158. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  159. package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -1
  160. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  161. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  162. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  163. package/lib/components/VPagination/VPagination.mjs +2 -2
  164. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  165. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  166. package/lib/components/VPicker/VPicker.mjs.map +1 -1
  167. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  168. package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
  169. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  170. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  171. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  172. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  173. package/lib/components/VRating/VRating.mjs.map +1 -1
  174. package/lib/components/VRating/index.d.ts +2 -2
  175. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  176. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  177. package/lib/components/VSelect/index.d.ts +39 -39
  178. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  179. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  180. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  181. package/lib/components/VSlideGroup/VSlideGroup.mjs +29 -28
  182. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  183. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  184. package/lib/components/VSlideGroup/helpers.mjs.map +1 -1
  185. package/lib/components/VSlideGroup/index.d.ts +17 -17
  186. package/lib/components/VSlider/VSlider.mjs +1 -1
  187. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  188. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  189. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  190. package/lib/components/VSlider/slider.mjs +1 -1
  191. package/lib/components/VSlider/slider.mjs.map +1 -1
  192. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  193. package/lib/components/VSnackbar/index.d.ts +43 -43
  194. package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
  195. package/lib/components/VSparkline/helpers/core.mjs.map +1 -1
  196. package/lib/components/VSparkline/helpers/math.mjs.map +1 -1
  197. package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
  198. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  199. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  200. package/lib/components/VStepper/VStepperContent.mjs.map +1 -1
  201. package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
  202. package/lib/components/VSwitch/VSwitch.css +4 -0
  203. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  204. package/lib/components/VSwitch/VSwitch.sass +4 -0
  205. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  206. package/lib/components/VTable/VTable.css +1 -1
  207. package/lib/components/VTable/VTable.mjs.map +1 -1
  208. package/lib/components/VTable/VTable.sass +1 -1
  209. package/lib/components/VTabs/VTab.mjs.map +1 -1
  210. package/lib/components/VTabs/VTabs.mjs +25 -30
  211. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  212. package/lib/components/VTabs/index.d.ts +165 -28
  213. package/lib/components/VTextField/VTextField.mjs +1 -4
  214. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  215. package/lib/components/VTextarea/VTextarea.mjs +1 -1
  216. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  217. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  218. package/lib/components/VTimePicker/SelectingTimes.mjs +3 -3
  219. package/lib/components/VTimePicker/SelectingTimes.mjs.map +1 -1
  220. package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
  221. package/lib/components/VTimePicker/VTimePickerClock.mjs.map +1 -1
  222. package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +1 -1
  223. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  224. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  225. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  226. package/lib/components/VTimeline/index.d.ts +8 -8
  227. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  228. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  229. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  230. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  231. package/lib/components/VTooltip/index.d.ts +43 -43
  232. package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
  233. package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
  234. package/lib/components/VTreeview/util/filterTreeItems.mjs.map +1 -1
  235. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  236. package/lib/components/VWindow/VWindow.mjs +38 -37
  237. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  238. package/lib/components/VWindow/VWindowItem.mjs +2 -1
  239. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  240. package/lib/components/index.d.ts +1229 -591
  241. package/lib/components/transitions/createTransition.mjs +59 -50
  242. package/lib/components/transitions/createTransition.mjs.map +1 -1
  243. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  244. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  245. package/lib/components/transitions/index.d.ts +150 -15
  246. package/lib/composables/border.mjs.map +1 -1
  247. package/lib/composables/color.mjs.map +1 -1
  248. package/lib/composables/defaults.mjs +1 -1
  249. package/lib/composables/defaults.mjs.map +1 -1
  250. package/lib/composables/delay.mjs.map +1 -1
  251. package/lib/composables/density.mjs.map +1 -1
  252. package/lib/composables/dimensions.mjs.map +1 -1
  253. package/lib/composables/display.mjs.map +1 -1
  254. package/lib/composables/elevation.mjs.map +1 -1
  255. package/lib/composables/filter.mjs.map +1 -1
  256. package/lib/composables/focus.mjs.map +1 -1
  257. package/lib/composables/form.mjs.map +1 -1
  258. package/lib/composables/forwardRefs.mjs +17 -0
  259. package/lib/composables/forwardRefs.mjs.map +1 -1
  260. package/lib/composables/group.mjs.map +1 -1
  261. package/lib/composables/hydration.mjs.map +1 -1
  262. package/lib/composables/icons.mjs.map +1 -1
  263. package/lib/composables/intersectionObserver.mjs.map +1 -1
  264. package/lib/composables/items.mjs.map +1 -1
  265. package/lib/composables/layout.mjs.map +1 -1
  266. package/lib/composables/lazy.mjs.map +1 -1
  267. package/lib/composables/loader.mjs.map +1 -1
  268. package/lib/composables/locale.mjs.map +1 -1
  269. package/lib/composables/location.mjs.map +1 -1
  270. package/lib/composables/mutationObserver.mjs.map +1 -1
  271. package/lib/composables/nested/nested.mjs.map +1 -1
  272. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  273. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  274. package/lib/composables/position.mjs.map +1 -1
  275. package/lib/composables/proxiedModel.mjs.map +1 -1
  276. package/lib/composables/refs.mjs.map +1 -1
  277. package/lib/composables/resizeObserver.mjs.map +1 -1
  278. package/lib/composables/rounded.mjs.map +1 -1
  279. package/lib/composables/router.mjs.map +1 -1
  280. package/lib/composables/scopeId.mjs.map +1 -1
  281. package/lib/composables/scroll.mjs.map +1 -1
  282. package/lib/composables/selectLink.mjs.map +1 -1
  283. package/lib/composables/size.mjs.map +1 -1
  284. package/lib/composables/ssrBoot.mjs.map +1 -1
  285. package/lib/composables/stack.mjs.map +1 -1
  286. package/lib/composables/teleport.mjs.map +1 -1
  287. package/lib/composables/theme.mjs.map +1 -1
  288. package/lib/composables/toggleScope.mjs.map +1 -1
  289. package/lib/composables/touch.mjs.map +1 -1
  290. package/lib/composables/transition.mjs.map +1 -1
  291. package/lib/composables/validation.mjs +1 -1
  292. package/lib/composables/validation.mjs.map +1 -1
  293. package/lib/composables/variant.mjs.map +1 -1
  294. package/lib/directives/click-outside/index.mjs.map +1 -1
  295. package/lib/directives/color/index.mjs.map +1 -1
  296. package/lib/directives/intersect/index.mjs.map +1 -1
  297. package/lib/directives/mutate/index.mjs.map +1 -1
  298. package/lib/directives/resize/index.mjs.map +1 -1
  299. package/lib/directives/ripple/index.mjs.map +1 -1
  300. package/lib/directives/scroll/index.mjs.map +1 -1
  301. package/lib/directives/touch/index.mjs.map +1 -1
  302. package/lib/entry-bundler.mjs +1 -1
  303. package/lib/entry-bundler.mjs.map +1 -1
  304. package/lib/framework.mjs +1 -1
  305. package/lib/framework.mjs.map +1 -1
  306. package/lib/index.d.ts +38 -38
  307. package/lib/labs/VDataTable/VDataTable.mjs +3 -1
  308. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  309. package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -1
  310. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  311. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  312. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  313. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  314. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  315. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  316. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  317. package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
  318. package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
  319. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
  320. package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
  321. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  322. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  323. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  324. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  325. package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
  326. package/lib/labs/VDataTable/index.d.ts +271 -244
  327. package/lib/labs/VSkeletonLoader/VSkeletonLoader.css +221 -0
  328. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +141 -0
  329. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -0
  330. package/lib/labs/VSkeletonLoader/VSkeletonLoader.sass +225 -0
  331. package/lib/labs/VSkeletonLoader/_variables.scss +44 -0
  332. package/lib/labs/VSkeletonLoader/index.d.ts +222 -0
  333. package/lib/labs/VSkeletonLoader/index.mjs +2 -0
  334. package/lib/labs/VSkeletonLoader/index.mjs.map +1 -0
  335. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  336. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  337. package/lib/labs/components.d.ts +486 -245
  338. package/lib/labs/components.mjs +1 -0
  339. package/lib/labs/components.mjs.map +1 -1
  340. package/lib/labs/entry-bundler.mjs.map +1 -1
  341. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  342. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  343. package/lib/locale/af.mjs +2 -1
  344. package/lib/locale/af.mjs.map +1 -1
  345. package/lib/locale/ar.mjs +2 -1
  346. package/lib/locale/ar.mjs.map +1 -1
  347. package/lib/locale/az.mjs +2 -1
  348. package/lib/locale/az.mjs.map +1 -1
  349. package/lib/locale/bg.mjs +2 -1
  350. package/lib/locale/bg.mjs.map +1 -1
  351. package/lib/locale/ca.mjs +2 -1
  352. package/lib/locale/ca.mjs.map +1 -1
  353. package/lib/locale/ckb.mjs +2 -1
  354. package/lib/locale/ckb.mjs.map +1 -1
  355. package/lib/locale/cs.mjs +2 -1
  356. package/lib/locale/cs.mjs.map +1 -1
  357. package/lib/locale/da.mjs +2 -1
  358. package/lib/locale/da.mjs.map +1 -1
  359. package/lib/locale/de.mjs +2 -1
  360. package/lib/locale/de.mjs.map +1 -1
  361. package/lib/locale/el.mjs +2 -1
  362. package/lib/locale/el.mjs.map +1 -1
  363. package/lib/locale/en.mjs +2 -1
  364. package/lib/locale/en.mjs.map +1 -1
  365. package/lib/locale/es.mjs +2 -1
  366. package/lib/locale/es.mjs.map +1 -1
  367. package/lib/locale/et.mjs +2 -1
  368. package/lib/locale/et.mjs.map +1 -1
  369. package/lib/locale/fa.mjs +2 -1
  370. package/lib/locale/fa.mjs.map +1 -1
  371. package/lib/locale/fi.mjs +2 -1
  372. package/lib/locale/fi.mjs.map +1 -1
  373. package/lib/locale/fr.mjs +2 -1
  374. package/lib/locale/fr.mjs.map +1 -1
  375. package/lib/locale/he.mjs +2 -1
  376. package/lib/locale/he.mjs.map +1 -1
  377. package/lib/locale/hr.mjs +2 -1
  378. package/lib/locale/hr.mjs.map +1 -1
  379. package/lib/locale/hu.mjs +2 -1
  380. package/lib/locale/hu.mjs.map +1 -1
  381. package/lib/locale/id.mjs +2 -1
  382. package/lib/locale/id.mjs.map +1 -1
  383. package/lib/locale/index.d.ts +42 -0
  384. package/lib/locale/it.mjs +2 -1
  385. package/lib/locale/it.mjs.map +1 -1
  386. package/lib/locale/ja.mjs +2 -1
  387. package/lib/locale/ja.mjs.map +1 -1
  388. package/lib/locale/ko.mjs +2 -1
  389. package/lib/locale/ko.mjs.map +1 -1
  390. package/lib/locale/lt.mjs +2 -1
  391. package/lib/locale/lt.mjs.map +1 -1
  392. package/lib/locale/lv.mjs +2 -1
  393. package/lib/locale/lv.mjs.map +1 -1
  394. package/lib/locale/nl.mjs +2 -1
  395. package/lib/locale/nl.mjs.map +1 -1
  396. package/lib/locale/no.mjs +2 -1
  397. package/lib/locale/no.mjs.map +1 -1
  398. package/lib/locale/pl.mjs +2 -1
  399. package/lib/locale/pl.mjs.map +1 -1
  400. package/lib/locale/pt.mjs +2 -1
  401. package/lib/locale/pt.mjs.map +1 -1
  402. package/lib/locale/ro.mjs +2 -1
  403. package/lib/locale/ro.mjs.map +1 -1
  404. package/lib/locale/ru.mjs +2 -1
  405. package/lib/locale/ru.mjs.map +1 -1
  406. package/lib/locale/sk.mjs +2 -1
  407. package/lib/locale/sk.mjs.map +1 -1
  408. package/lib/locale/sl.mjs +2 -1
  409. package/lib/locale/sl.mjs.map +1 -1
  410. package/lib/locale/sr-Cyrl.mjs +2 -1
  411. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  412. package/lib/locale/sr-Latn.mjs +2 -1
  413. package/lib/locale/sr-Latn.mjs.map +1 -1
  414. package/lib/locale/sv.mjs +2 -1
  415. package/lib/locale/sv.mjs.map +1 -1
  416. package/lib/locale/th.mjs +2 -1
  417. package/lib/locale/th.mjs.map +1 -1
  418. package/lib/locale/tr.mjs +2 -1
  419. package/lib/locale/tr.mjs.map +1 -1
  420. package/lib/locale/uk.mjs +2 -1
  421. package/lib/locale/uk.mjs.map +1 -1
  422. package/lib/locale/vi.mjs +2 -1
  423. package/lib/locale/vi.mjs.map +1 -1
  424. package/lib/locale/zh-Hans.mjs +2 -1
  425. package/lib/locale/zh-Hans.mjs.map +1 -1
  426. package/lib/locale/zh-Hant.mjs +2 -1
  427. package/lib/locale/zh-Hant.mjs.map +1 -1
  428. package/lib/services/goto/index.mjs.map +1 -1
  429. package/lib/services/goto/util.mjs.map +1 -1
  430. package/lib/util/anchor.mjs.map +1 -1
  431. package/lib/util/animation.mjs.map +1 -1
  432. package/lib/util/box.mjs.map +1 -1
  433. package/lib/util/color/APCA.mjs.map +1 -1
  434. package/lib/util/color/transformCIELAB.mjs.map +1 -1
  435. package/lib/util/color/transformSRGB.mjs.map +1 -1
  436. package/lib/util/colorUtils.mjs.map +1 -1
  437. package/lib/util/console.mjs.map +1 -1
  438. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  439. package/lib/util/dateTimeUtils.mjs.map +1 -1
  440. package/lib/util/defineComponent.mjs.map +1 -1
  441. package/lib/util/dom.mjs.map +1 -1
  442. package/lib/util/getCurrentInstance.mjs.map +1 -1
  443. package/lib/util/getScrollParent.mjs.map +1 -1
  444. package/lib/util/helpers.mjs.map +1 -1
  445. package/lib/util/injectSelf.mjs.map +1 -1
  446. package/lib/util/isFixedPosition.mjs.map +1 -1
  447. package/lib/util/propsFactory.mjs.map +1 -1
  448. package/lib/util/useRender.mjs.map +1 -1
  449. package/package.json +25 -25
  450. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +0 -179
  451. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +0 -1
  452. package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +0 -377
  453. package/lib/components/VSkeletonLoader/_variables.scss +0 -54
  454. package/lib/components/VSkeletonLoader/index.mjs +0 -4
  455. package/lib/components/VSkeletonLoader/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VSheet.mjs","names":["makeBorderProps","useBorder","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useBackgroundColor","genericComponent","propsFactory","useRender","toRef","makeVSheetProps","color","String","VSheet","name","props","setup","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","value"],"sources":["../../../src/components/VSheet/VSheet.tsx"],"sourcesContent":["// Styles\nimport './VSheet.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\nimport { toRef } from 'vue'\n\nexport const makeVSheetProps = propsFactory({\n color: String,\n\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'v-sheet')\n\nexport const VSheet = genericComponent()({\n name: 'VSheet',\n\n props: {\n ...makeVSheetProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-sheet',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VSheet = InstanceType<typeof VSheet>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,eAAe,EAAEC,SAAS;AAAA,SAC1BC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,kBAAkB,uCAE3B;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAClD,SAASC,KAAK,QAAQ,KAAK;AAE3B,OAAO,MAAMC,eAAe,GAAGH,YAAY,CAAC;EAC1CI,KAAK,EAAEC,MAAM;EAEb,GAAGtB,eAAe,EAAE;EACpB,GAAGE,kBAAkB,EAAE;EACvB,GAAGE,kBAAkB,EAAE;EACvB,GAAGE,iBAAiB,EAAE;EACtB,GAAGE,iBAAiB,EAAE;EACtB,GAAGE,gBAAgB,EAAE;EACrB,GAAGE,YAAY,EAAE;EACjB,GAAGC,cAAc;AACnB,CAAC,EAAE,SAAS,CAAC;AAEb,OAAO,MAAMU,MAAM,GAAGP,gBAAgB,EAAE,CAAC;EACvCQ,IAAI,EAAE,QAAQ;EAEdC,KAAK,EAAE;IACL,GAAGL,eAAe;EACpB,CAAC;EAEDM,KAAK,CAAED,KAAK,QAAa;IAAA,IAAX;MAAEE;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAa,CAAC,GAAGd,YAAY,CAACW,KAAK,CAAC;IAC5C,MAAM;MAAEI,sBAAsB;MAAEC;IAAsB,CAAC,GAAGf,kBAAkB,CAACI,KAAK,CAACM,KAAK,EAAE,OAAO,CAAC,CAAC;IACnG,MAAM;MAAEM;IAAc,CAAC,GAAG9B,SAAS,CAACwB,KAAK,CAAC;IAC1C,MAAM;MAAEO;IAAgB,CAAC,GAAG7B,YAAY,CAACsB,KAAK,CAAC;IAC/C,MAAM;MAAEQ;IAAiB,CAAC,GAAG5B,YAAY,CAACoB,KAAK,CAAC;IAChD,MAAM;MAAES;IAAe,CAAC,GAAG3B,WAAW,CAACkB,KAAK,CAAC;IAC7C,MAAM;MAAEU;IAAgB,CAAC,GAAG1B,WAAW,CAACgB,KAAK,CAAC;IAC9C,MAAM;MAAEW;IAAe,CAAC,GAAGzB,UAAU,CAACc,KAAK,CAAC;IAE5CP,SAAS,CAAC;MAAA,SAEC,CACL,SAAS,EACTU,YAAY,CAACS,KAAK,EAClBR,sBAAsB,CAACQ,KAAK,EAC5BN,aAAa,CAACM,KAAK,EACnBJ,gBAAgB,CAACI,KAAK,EACtBF,eAAe,CAACE,KAAK,EACrBD,cAAc,CAACC,KAAK,CACrB;MAAA,SACM,CACLP,qBAAqB,CAACO,KAAK,EAC3BL,eAAe,CAACK,KAAK,EACrBH,cAAc,CAACG,KAAK;IACrB,GACSV,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VSheet.mjs","names":["makeBorderProps","useBorder","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useBackgroundColor","genericComponent","propsFactory","useRender","toRef","makeVSheetProps","color","String","VSheet","name","props","setup","_ref","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","_createVNode","tag","value"],"sources":["../../../src/components/VSheet/VSheet.tsx"],"sourcesContent":["// Styles\nimport './VSheet.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\nimport { toRef } from 'vue'\n\nexport const makeVSheetProps = propsFactory({\n color: String,\n\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'v-sheet')\n\nexport const VSheet = genericComponent()({\n name: 'VSheet',\n\n props: {\n ...makeVSheetProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-sheet',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VSheet = InstanceType<typeof VSheet>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,eAAe,EAAEC,SAAS;AAAA,SAC1BC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,kBAAkB,uCAE3B;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAClD,SAASC,KAAK,QAAQ,KAAK;AAE3B,OAAO,MAAMC,eAAe,GAAGH,YAAY,CAAC;EAC1CI,KAAK,EAAEC,MAAM;EAEb,GAAGtB,eAAe,EAAE;EACpB,GAAGE,kBAAkB,EAAE;EACvB,GAAGE,kBAAkB,EAAE;EACvB,GAAGE,iBAAiB,EAAE;EACtB,GAAGE,iBAAiB,EAAE;EACtB,GAAGE,gBAAgB,EAAE;EACrB,GAAGE,YAAY,EAAE;EACjB,GAAGC,cAAc;AACnB,CAAC,EAAE,SAAS,CAAC;AAEb,OAAO,MAAMU,MAAM,GAAGP,gBAAgB,EAAE,CAAC;EACvCQ,IAAI,EAAE,QAAQ;EAEdC,KAAK,EAAE;IACL,GAAGL,eAAe;EACpB,CAAC;EAEDM,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAa,CAAC,GAAGf,YAAY,CAACW,KAAK,CAAC;IAC5C,MAAM;MAAEK,sBAAsB;MAAEC;IAAsB,CAAC,GAAGhB,kBAAkB,CAACI,KAAK,CAACM,KAAK,EAAE,OAAO,CAAC,CAAC;IACnG,MAAM;MAAEO;IAAc,CAAC,GAAG/B,SAAS,CAACwB,KAAK,CAAC;IAC1C,MAAM;MAAEQ;IAAgB,CAAC,GAAG9B,YAAY,CAACsB,KAAK,CAAC;IAC/C,MAAM;MAAES;IAAiB,CAAC,GAAG7B,YAAY,CAACoB,KAAK,CAAC;IAChD,MAAM;MAAEU;IAAe,CAAC,GAAG5B,WAAW,CAACkB,KAAK,CAAC;IAC7C,MAAM;MAAEW;IAAgB,CAAC,GAAG3B,WAAW,CAACgB,KAAK,CAAC;IAC9C,MAAM;MAAEY;IAAe,CAAC,GAAG1B,UAAU,CAACc,KAAK,CAAC;IAE5CP,SAAS,CAAC,MAAAoB,YAAA,CAAAb,KAAA,CAAAc,GAAA;MAAA,SAEC,CACL,SAAS,EACTV,YAAY,CAACW,KAAK,EAClBV,sBAAsB,CAACU,KAAK,EAC5BR,aAAa,CAACQ,KAAK,EACnBN,gBAAgB,CAACM,KAAK,EACtBJ,eAAe,CAACI,KAAK,EACrBH,cAAc,CAACG,KAAK,CACrB;MAAA,SACM,CACLT,qBAAqB,CAACS,KAAK,EAC3BP,eAAe,CAACO,KAAK,EACrBL,cAAc,CAACK,KAAK;IACrB,GACSZ,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -12,38 +12,39 @@ import { useDisplay } from "../../composables/index.mjs";
12
12
  import { useResizeObserver } from "../../composables/resizeObserver.mjs";
13
13
  import { useRtl } from "../../composables/locale.mjs"; // Utilities
14
14
  import { computed, ref, watch } from 'vue';
15
- import { clamp, genericComponent, IN_BROWSER, useRender } from "../../util/index.mjs";
15
+ import { clamp, genericComponent, IN_BROWSER, propsFactory, useRender } from "../../util/index.mjs";
16
16
  import { bias, calculateCenteredOffset, calculateUpdatedOffset } from "./helpers.mjs"; // Types
17
17
  export const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');
18
+ export const makeVSlideGroupProps = propsFactory({
19
+ centerActive: Boolean,
20
+ direction: {
21
+ type: String,
22
+ default: 'horizontal'
23
+ },
24
+ symbol: {
25
+ type: null,
26
+ default: VSlideGroupSymbol
27
+ },
28
+ nextIcon: {
29
+ type: IconValue,
30
+ default: '$next'
31
+ },
32
+ prevIcon: {
33
+ type: IconValue,
34
+ default: '$prev'
35
+ },
36
+ showArrows: {
37
+ type: [Boolean, String],
38
+ validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
39
+ },
40
+ ...makeTagProps(),
41
+ ...makeGroupProps({
42
+ selectedClass: 'v-slide-group-item--active'
43
+ })
44
+ }, 'v-slide-group');
18
45
  export const VSlideGroup = genericComponent()({
19
46
  name: 'VSlideGroup',
20
- props: {
21
- centerActive: Boolean,
22
- direction: {
23
- type: String,
24
- default: 'horizontal'
25
- },
26
- symbol: {
27
- type: null,
28
- default: VSlideGroupSymbol
29
- },
30
- nextIcon: {
31
- type: IconValue,
32
- default: '$next'
33
- },
34
- prevIcon: {
35
- type: IconValue,
36
- default: '$prev'
37
- },
38
- showArrows: {
39
- type: [Boolean, String],
40
- validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
41
- },
42
- ...makeTagProps(),
43
- ...makeGroupProps({
44
- selectedClass: 'v-slide-group-item--active'
45
- })
46
- },
47
+ props: makeVSlideGroupProps(),
47
48
  emits: {
48
49
  'update:modelValue': value => true
49
50
  },
@@ -1 +1 @@
1
- {"version":3,"file":"VSlideGroup.mjs","names":["VFadeTransition","VIcon","IconValue","makeGroupProps","useGroup","makeTagProps","useDisplay","useResizeObserver","useRtl","computed","ref","watch","clamp","genericComponent","IN_BROWSER","useRender","bias","calculateCenteredOffset","calculateUpdatedOffset","VSlideGroupSymbol","Symbol","for","VSlideGroup","name","props","centerActive","Boolean","direction","type","String","default","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","selectedClass","emits","value","setup","slots","isRtl","mobile","group","isOverflowing","scrollOffset","containerSize","contentSize","isHorizontal","resizeRef","containerRef","contentRect","containerRect","contentRef","firstSelectedIndex","selected","length","items","findIndex","item","id","lastSelectedIndex","frame","cancelAnimationFrame","requestAnimationFrame","sizeProperty","selectedElement","children","currentScrollOffset","disableTransition","startTouch","startOffset","onTouchstart","e","sign","touches","onTouchmove","onTouchend","maxScrollOffset","onScroll","isFocused","onFocusin","el","composedPath","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","key","location","focusable","querySelectorAll","filter","hasAttribute","querySelector","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","scrollTo","newAbsoluteOffset","contentStyles","scrollAmount","transform","transition","willChange","slotProps","next","prev","select","isSelected","hasAffixes","Math","abs","hasPrev","hasNext"],"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { useDisplay } from '@/composables'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { clamp, genericComponent, IN_BROWSER, useRender } from '@/util'\nimport { bias, calculateCenteredOffset, calculateUpdatedOffset } from './helpers'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\ninterface SlideGroupSlot {\n next: GroupProvide['next']\n prev: GroupProvide['prev']\n select: GroupProvide['select']\n isSelected: GroupProvide['isSelected']\n}\n\ntype VSlideGroupSlots = {\n default: [SlideGroupSlot]\n prev: [SlideGroupSlot]\n next: [SlideGroupSlot]\n}\n\nexport const VSlideGroup = genericComponent<VSlideGroupSlots>()({\n name: 'VSlideGroup',\n\n props: {\n centerActive: Boolean,\n direction: {\n type: String,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { mobile } = useDisplay()\n const group = useGroup(props, props.symbol)\n const isOverflowing = ref(false)\n const scrollOffset = ref(0)\n const containerSize = ref(0)\n const contentSize = ref(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n if (IN_BROWSER) {\n let frame = -1\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n }\n\n if (firstSelectedIndex.value >= 0 && contentRef.value) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[lastSelectedIndex.value] as HTMLElement\n\n if (firstSelectedIndex.value === 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (props.centerActive) {\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n } else if (isOverflowing.value) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n }\n }\n })\n })\n }\n\n const disableTransition = ref(false)\n\n let startTouch = 0\n let startOffset = 0\n\n function onTouchstart (e: TouchEvent) {\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n startOffset = sign * scrollOffset.value\n startTouch = e.touches[0][sizeProperty]\n disableTransition.value = true\n }\n\n function onTouchmove (e: TouchEvent) {\n if (!isOverflowing.value) return\n\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n scrollOffset.value = sign * (startOffset + startTouch - e.touches[0][sizeProperty])\n }\n\n function onTouchend (e: TouchEvent) {\n const maxScrollOffset = contentSize.value - containerSize.value\n\n if (scrollOffset.value < 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value >= maxScrollOffset) {\n scrollOffset.value = maxScrollOffset\n }\n\n disableTransition.value = false\n }\n\n function onScroll () {\n if (!containerRef.value) return\n\n containerRef.value[isHorizontal.value ? 'scrollLeft' : 'scrollTop'] = 0\n }\n\n const isFocused = ref(false)\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.value) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.value.children) {\n if (item === el) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement: item as HTMLElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.value) return\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n focus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n focus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n }\n }\n\n if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.value) return\n\n if (!location) {\n const focusable = [...contentRef.value.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => !el.hasAttribute('disabled')) as HTMLElement[]\n focusable[0]?.focus()\n } else if (location === 'next') {\n const el = contentRef.value.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('first')\n } else if (location === 'prev') {\n const el = contentRef.value.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('last')\n } else if (location === 'first') {\n (contentRef.value.firstElementChild as HTMLElement)?.focus()\n } else if (location === 'last') {\n (contentRef.value.lastElementChild as HTMLElement)?.focus()\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const newAbsoluteOffset = scrollOffset.value + (location === 'prev' ? -1 : 1) * containerSize.value\n\n scrollOffset.value = clamp(newAbsoluteOffset, 0, contentSize.value - containerSize.value)\n }\n\n const contentStyles = computed(() => {\n // This adds friction when scrolling the 'wrong' way when at max offset\n let scrollAmount = scrollOffset.value > contentSize.value - containerSize.value\n ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value)\n : -scrollOffset.value\n\n // This adds friction when scrolling the 'wrong' way when at min offset\n if (scrollOffset.value <= 0) {\n scrollAmount = bias(-scrollOffset.value)\n }\n\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n return {\n transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${sign * scrollAmount}px)`,\n transition: disableTransition.value ? 'none' : '',\n willChange: disableTransition.value ? 'transform' : '',\n }\n })\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n return Math.abs(scrollOffset.value) > 0\n })\n\n const hasNext = computed(() => {\n // Check one scroll ahead to know the width of right-most item\n return contentSize.value > Math.abs(scrollOffset.value) + containerSize.value\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-slide-group',\n {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value,\n },\n ]}\n tabindex={ (isFocused.value || group.selected.value.length) ? -1 : 0 }\n onFocus={ onFocus }\n >\n { hasAffixes.value && (\n <div\n key=\"prev\"\n class={[\n 'v-slide-group__prev',\n { 'v-slide-group__prev--disabled': !hasPrev.value },\n ]}\n onClick={ () => scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.nextIcon : props.prevIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n\n <div\n key=\"container\"\n ref={ containerRef }\n class=\"v-slide-group__container\"\n onScroll={ onScroll }\n >\n <div\n ref={ contentRef }\n class=\"v-slide-group__content\"\n style={ contentStyles.value }\n onTouchstartPassive={ onTouchstart }\n onTouchmovePassive={ onTouchmove }\n onTouchendPassive={ onTouchend }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onKeydown={ onKeydown }\n >\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n\n { hasAffixes.value && (\n <div\n key=\"next\"\n class={[\n 'v-slide-group__next',\n { 'v-slide-group__next--disabled': !hasNext.value },\n ]}\n onClick={ () => scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.prevIcon : props.nextIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n </props.tag>\n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSlideGroup.mjs","names":["VFadeTransition","VIcon","IconValue","makeGroupProps","useGroup","makeTagProps","useDisplay","useResizeObserver","useRtl","computed","ref","watch","clamp","genericComponent","IN_BROWSER","propsFactory","useRender","bias","calculateCenteredOffset","calculateUpdatedOffset","VSlideGroupSymbol","Symbol","for","makeVSlideGroupProps","centerActive","Boolean","direction","type","String","default","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","selectedClass","VSlideGroup","name","props","emits","value","setup","_ref","slots","isRtl","mobile","group","isOverflowing","scrollOffset","containerSize","contentSize","isHorizontal","resizeRef","containerRef","contentRect","containerRect","contentRef","firstSelectedIndex","selected","length","items","findIndex","item","id","lastSelectedIndex","frame","cancelAnimationFrame","requestAnimationFrame","sizeProperty","selectedElement","children","currentScrollOffset","disableTransition","startTouch","startOffset","onTouchstart","e","sign","touches","onTouchmove","onTouchend","maxScrollOffset","onScroll","isFocused","onFocusin","el","composedPath","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","key","location","focusable","querySelectorAll","filter","hasAttribute","querySelector","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","scrollTo","newAbsoluteOffset","contentStyles","scrollAmount","transform","transition","willChange","slotProps","next","prev","select","isSelected","hasAffixes","Math","abs","hasPrev","hasNext","_createVNode","tag","onClick"],"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { useDisplay } from '@/composables'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { clamp, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\nimport { bias, calculateCenteredOffset, calculateUpdatedOffset } from './helpers'\n\n// Types\nimport type { GroupProvide } from '@/composables/group'\nimport type { InjectionKey, PropType } from 'vue'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\ninterface SlideGroupSlot {\n next: GroupProvide['next']\n prev: GroupProvide['prev']\n select: GroupProvide['select']\n isSelected: GroupProvide['isSelected']\n}\n\ntype VSlideGroupSlots = {\n default: [SlideGroupSlot]\n prev: [SlideGroupSlot]\n next: [SlideGroupSlot]\n}\n\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n}, 'v-slide-group')\n\nexport const VSlideGroup = genericComponent<VSlideGroupSlots>()({\n name: 'VSlideGroup',\n\n props: makeVSlideGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { mobile } = useDisplay()\n const group = useGroup(props, props.symbol)\n const isOverflowing = ref(false)\n const scrollOffset = ref(0)\n const containerSize = ref(0)\n const contentSize = ref(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n if (IN_BROWSER) {\n let frame = -1\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n }\n\n if (firstSelectedIndex.value >= 0 && contentRef.value) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[lastSelectedIndex.value] as HTMLElement\n\n if (firstSelectedIndex.value === 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (props.centerActive) {\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n } else if (isOverflowing.value) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n }\n }\n })\n })\n }\n\n const disableTransition = ref(false)\n\n let startTouch = 0\n let startOffset = 0\n\n function onTouchstart (e: TouchEvent) {\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n startOffset = sign * scrollOffset.value\n startTouch = e.touches[0][sizeProperty]\n disableTransition.value = true\n }\n\n function onTouchmove (e: TouchEvent) {\n if (!isOverflowing.value) return\n\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n scrollOffset.value = sign * (startOffset + startTouch - e.touches[0][sizeProperty])\n }\n\n function onTouchend (e: TouchEvent) {\n const maxScrollOffset = contentSize.value - containerSize.value\n\n if (scrollOffset.value < 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value >= maxScrollOffset) {\n scrollOffset.value = maxScrollOffset\n }\n\n disableTransition.value = false\n }\n\n function onScroll () {\n if (!containerRef.value) return\n\n containerRef.value[isHorizontal.value ? 'scrollLeft' : 'scrollTop'] = 0\n }\n\n const isFocused = ref(false)\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.value) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.value.children) {\n if (item === el) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement: item as HTMLElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.value) return\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n focus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n focus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n }\n }\n\n if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.value) return\n\n if (!location) {\n const focusable = [...contentRef.value.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => !el.hasAttribute('disabled')) as HTMLElement[]\n focusable[0]?.focus()\n } else if (location === 'next') {\n const el = contentRef.value.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('first')\n } else if (location === 'prev') {\n const el = contentRef.value.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('last')\n } else if (location === 'first') {\n (contentRef.value.firstElementChild as HTMLElement)?.focus()\n } else if (location === 'last') {\n (contentRef.value.lastElementChild as HTMLElement)?.focus()\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const newAbsoluteOffset = scrollOffset.value + (location === 'prev' ? -1 : 1) * containerSize.value\n\n scrollOffset.value = clamp(newAbsoluteOffset, 0, contentSize.value - containerSize.value)\n }\n\n const contentStyles = computed(() => {\n // This adds friction when scrolling the 'wrong' way when at max offset\n let scrollAmount = scrollOffset.value > contentSize.value - containerSize.value\n ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value)\n : -scrollOffset.value\n\n // This adds friction when scrolling the 'wrong' way when at min offset\n if (scrollOffset.value <= 0) {\n scrollAmount = bias(-scrollOffset.value)\n }\n\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n return {\n transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${sign * scrollAmount}px)`,\n transition: disableTransition.value ? 'none' : '',\n willChange: disableTransition.value ? 'transform' : '',\n }\n })\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n return Math.abs(scrollOffset.value) > 0\n })\n\n const hasNext = computed(() => {\n // Check one scroll ahead to know the width of right-most item\n return contentSize.value > Math.abs(scrollOffset.value) + containerSize.value\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-slide-group',\n {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value,\n },\n ]}\n tabindex={ (isFocused.value || group.selected.value.length) ? -1 : 0 }\n onFocus={ onFocus }\n >\n { hasAffixes.value && (\n <div\n key=\"prev\"\n class={[\n 'v-slide-group__prev',\n { 'v-slide-group__prev--disabled': !hasPrev.value },\n ]}\n onClick={ () => scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.nextIcon : props.prevIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n\n <div\n key=\"container\"\n ref={ containerRef }\n class=\"v-slide-group__container\"\n onScroll={ onScroll }\n >\n <div\n ref={ contentRef }\n class=\"v-slide-group__content\"\n style={ contentStyles.value }\n onTouchstartPassive={ onTouchstart }\n onTouchmovePassive={ onTouchmove }\n onTouchendPassive={ onTouchend }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onKeydown={ onKeydown }\n >\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n\n { hasAffixes.value && (\n <div\n key=\"next\"\n class={[\n 'v-slide-group__next',\n { 'v-slide-group__next--disabled': !hasNext.value },\n ]}\n onClick={ () => scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.prevIcon : props.nextIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n </props.tag>\n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VSlideGroupItem.mjs","names":["makeGroupItemProps","useGroupItem","genericComponent","VSlideGroupSymbol","VSlideGroupItem","name","props","emits","val","setup","slots","slideGroupItem","default","isSelected","value","select","toggle","selectedClass"],"sources":["../../../src/components/VSlideGroup/VSlideGroupItem.tsx"],"sourcesContent":["// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Utilities\nimport { genericComponent } from '@/util'\nimport { VSlideGroupSymbol } from './VSlideGroup'\n\n// Types\nimport type { UnwrapRef } from 'vue'\nimport type { GroupItemProvide } from '@/composables/group'\n\ntype VSlideGroupItemSlots = {\n default: [{\n isSelected: UnwrapRef<GroupItemProvide['isSelected']>\n select: GroupItemProvide['select']\n toggle: GroupItemProvide['toggle']\n selectedClass: UnwrapRef<GroupItemProvide['selectedClass']>\n }]\n}\n\nexport const VSlideGroupItem = genericComponent<VSlideGroupItemSlots>()({\n name: 'VSlideGroupItem',\n\n props: {\n ...makeGroupItemProps(),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol)\n\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value,\n })\n },\n})\n\nexport type VSlideGroupItem = InstanceType<typeof VSlideGroupItem>\n"],"mappings":"AAAA;AAAA,SACSA,kBAAkB,EAAEC,YAAY,uCAEzC;AAAA,SACSC,gBAAgB;AAAA,SAChBC,iBAAiB,6BAE1B;AAaA,OAAO,MAAMC,eAAe,GAAGF,gBAAgB,EAAwB,CAAC;EACtEG,IAAI,EAAE,iBAAiB;EAEvBC,KAAK,EAAE;IACL,GAAGN,kBAAkB;EACvB,CAAC;EAEDO,KAAK,EAAE;IACL,gBAAgB,EAAGC,GAAuB,IAAK;EACjD,CAAC;EAEDC,KAAK,CAAEH,KAAK,QAAa;IAAA,IAAX;MAAEI;IAAM,CAAC;IACrB,MAAMC,cAAc,GAAGV,YAAY,CAACK,KAAK,EAAEH,iBAAiB,CAAC;IAE7D,OAAO,MAAMO,KAAK,CAACE,OAAO,GAAG;MAC3BC,UAAU,EAAEF,cAAc,CAACE,UAAU,CAACC,KAAK;MAC3CC,MAAM,EAAEJ,cAAc,CAACI,MAAM;MAC7BC,MAAM,EAAEL,cAAc,CAACK,MAAM;MAC7BC,aAAa,EAAEN,cAAc,CAACM,aAAa,CAACH;IAC9C,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VSlideGroupItem.mjs","names":["makeGroupItemProps","useGroupItem","genericComponent","VSlideGroupSymbol","VSlideGroupItem","name","props","emits","val","setup","_ref","slots","slideGroupItem","default","isSelected","value","select","toggle","selectedClass"],"sources":["../../../src/components/VSlideGroup/VSlideGroupItem.tsx"],"sourcesContent":["// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Utilities\nimport { genericComponent } from '@/util'\nimport { VSlideGroupSymbol } from './VSlideGroup'\n\n// Types\nimport type { UnwrapRef } from 'vue'\nimport type { GroupItemProvide } from '@/composables/group'\n\ntype VSlideGroupItemSlots = {\n default: [{\n isSelected: UnwrapRef<GroupItemProvide['isSelected']>\n select: GroupItemProvide['select']\n toggle: GroupItemProvide['toggle']\n selectedClass: UnwrapRef<GroupItemProvide['selectedClass']>\n }]\n}\n\nexport const VSlideGroupItem = genericComponent<VSlideGroupItemSlots>()({\n name: 'VSlideGroupItem',\n\n props: {\n ...makeGroupItemProps(),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol)\n\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value,\n })\n },\n})\n\nexport type VSlideGroupItem = InstanceType<typeof VSlideGroupItem>\n"],"mappings":"AAAA;AAAA,SACSA,kBAAkB,EAAEC,YAAY,uCAEzC;AAAA,SACSC,gBAAgB;AAAA,SAChBC,iBAAiB,6BAE1B;AAaA,OAAO,MAAMC,eAAe,GAAGF,gBAAgB,EAAwB,CAAC;EACtEG,IAAI,EAAE,iBAAiB;EAEvBC,KAAK,EAAE;IACL,GAAGN,kBAAkB;EACvB,CAAC;EAEDO,KAAK,EAAE;IACL,gBAAgB,EAAGC,GAAuB,IAAK;EACjD,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,cAAc,GAAGX,YAAY,CAACK,KAAK,EAAEH,iBAAiB,CAAC;IAE7D,OAAO,MAAMQ,KAAK,CAACE,OAAO,GAAG;MAC3BC,UAAU,EAAEF,cAAc,CAACE,UAAU,CAACC,KAAK;MAC3CC,MAAM,EAAEJ,cAAc,CAACI,MAAM;MAC7BC,MAAM,EAAEL,cAAc,CAACK,MAAM;MAC7BC,aAAa,EAAEN,cAAc,CAACM,aAAa,CAACH;IAC9C,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.mjs","names":["bias","val","c","x","Math","abs","sign","calculateUpdatedOffset","selectedElement","containerSize","contentSize","isRtl","currentScrollOffset","isHorizontal","clientSize","clientWidth","clientHeight","offsetStart","offsetLeft","offsetTop","adjustedOffsetStart","totalSize","itemOffset","additionalOffset","max","min","calculateCenteredOffset","offsetCentered"],"sources":["../../../src/components/VSlideGroup/helpers.ts"],"sourcesContent":["export function bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset ({\n selectedElement,\n containerSize,\n contentSize,\n isRtl,\n currentScrollOffset,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerSize: number\n contentSize: number\n isRtl: boolean\n currentScrollOffset: number\n isHorizontal: boolean\n}): number {\n const clientSize = isHorizontal ? selectedElement.clientWidth : selectedElement.clientHeight\n const offsetStart = isHorizontal ? selectedElement.offsetLeft : selectedElement.offsetTop\n const adjustedOffsetStart = isRtl && isHorizontal ? (contentSize - offsetStart - clientSize) : offsetStart\n\n const totalSize = containerSize + currentScrollOffset\n const itemOffset = clientSize + adjustedOffsetStart\n const additionalOffset = clientSize * 0.4\n\n if (adjustedOffsetStart <= currentScrollOffset) {\n currentScrollOffset = Math.max(adjustedOffsetStart - additionalOffset, 0)\n } else if (totalSize <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalSize - itemOffset - additionalOffset), contentSize - containerSize)\n }\n\n return currentScrollOffset\n}\n\nexport function calculateCenteredOffset ({\n selectedElement,\n containerSize,\n contentSize,\n isRtl,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerSize: number\n contentSize: number\n isRtl: boolean\n isHorizontal: boolean\n}): number {\n const clientSize = isHorizontal ? selectedElement.clientWidth : selectedElement.clientHeight\n const offsetStart = isHorizontal ? selectedElement.offsetLeft : selectedElement.offsetTop\n\n const offsetCentered = isRtl && isHorizontal\n ? contentSize - offsetStart - clientSize / 2 - containerSize / 2\n : offsetStart + clientSize / 2 - containerSize / 2\n\n return Math.min(contentSize - containerSize, Math.max(0, offsetCentered))\n}\n"],"mappings":"AAAA,OAAO,SAASA,IAAI,CAAEC,GAAW,EAAE;EACjC,MAAMC,CAAC,GAAG,KAAK;EACf,MAAMC,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACJ,GAAG,CAAC;EACvB,OAAOG,IAAI,CAACE,IAAI,CAACL,GAAG,CAAC,IAAIE,CAAC,IAAI,CAAC,CAAC,GAAGD,CAAC,GAAG,CAAC,KAAK,CAAC,GAAGC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D;AAEA,OAAO,SAASI,sBAAsB,OAc3B;EAAA,IAd6B;IACtCC,eAAe;IACfC,aAAa;IACbC,WAAW;IACXC,KAAK;IACLC,mBAAmB;IACnBC;EAQF,CAAC;EACC,MAAMC,UAAU,GAAGD,YAAY,GAAGL,eAAe,CAACO,WAAW,GAAGP,eAAe,CAACQ,YAAY;EAC5F,MAAMC,WAAW,GAAGJ,YAAY,GAAGL,eAAe,CAACU,UAAU,GAAGV,eAAe,CAACW,SAAS;EACzF,MAAMC,mBAAmB,GAAGT,KAAK,IAAIE,YAAY,GAAIH,WAAW,GAAGO,WAAW,GAAGH,UAAU,GAAIG,WAAW;EAE1G,MAAMI,SAAS,GAAGZ,aAAa,GAAGG,mBAAmB;EACrD,MAAMU,UAAU,GAAGR,UAAU,GAAGM,mBAAmB;EACnD,MAAMG,gBAAgB,GAAGT,UAAU,GAAG,GAAG;EAEzC,IAAIM,mBAAmB,IAAIR,mBAAmB,EAAE;IAC9CA,mBAAmB,GAAGR,IAAI,CAACoB,GAAG,CAACJ,mBAAmB,GAAGG,gBAAgB,EAAE,CAAC,CAAC;EAC3E,CAAC,MAAM,IAAIF,SAAS,IAAIC,UAAU,EAAE;IAClCV,mBAAmB,GAAGR,IAAI,CAACqB,GAAG,CAACb,mBAAmB,IAAIS,SAAS,GAAGC,UAAU,GAAGC,gBAAgB,CAAC,EAAEb,WAAW,GAAGD,aAAa,CAAC;EAChI;EAEA,OAAOG,mBAAmB;AAC5B;AAEA,OAAO,SAASc,uBAAuB,QAY5B;EAAA,IAZ8B;IACvClB,eAAe;IACfC,aAAa;IACbC,WAAW;IACXC,KAAK;IACLE;EAOF,CAAC;EACC,MAAMC,UAAU,GAAGD,YAAY,GAAGL,eAAe,CAACO,WAAW,GAAGP,eAAe,CAACQ,YAAY;EAC5F,MAAMC,WAAW,GAAGJ,YAAY,GAAGL,eAAe,CAACU,UAAU,GAAGV,eAAe,CAACW,SAAS;EAEzF,MAAMQ,cAAc,GAAGhB,KAAK,IAAIE,YAAY,GACxCH,WAAW,GAAGO,WAAW,GAAGH,UAAU,GAAG,CAAC,GAAGL,aAAa,GAAG,CAAC,GAC9DQ,WAAW,GAAGH,UAAU,GAAG,CAAC,GAAGL,aAAa,GAAG,CAAC;EAEpD,OAAOL,IAAI,CAACqB,GAAG,CAACf,WAAW,GAAGD,aAAa,EAAEL,IAAI,CAACoB,GAAG,CAAC,CAAC,EAAEG,cAAc,CAAC,CAAC;AAC3E"}
1
+ {"version":3,"file":"helpers.mjs","names":["bias","val","c","x","Math","abs","sign","calculateUpdatedOffset","_ref","selectedElement","containerSize","contentSize","isRtl","currentScrollOffset","isHorizontal","clientSize","clientWidth","clientHeight","offsetStart","offsetLeft","offsetTop","adjustedOffsetStart","totalSize","itemOffset","additionalOffset","max","min","calculateCenteredOffset","_ref2","offsetCentered"],"sources":["../../../src/components/VSlideGroup/helpers.ts"],"sourcesContent":["export function bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset ({\n selectedElement,\n containerSize,\n contentSize,\n isRtl,\n currentScrollOffset,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerSize: number\n contentSize: number\n isRtl: boolean\n currentScrollOffset: number\n isHorizontal: boolean\n}): number {\n const clientSize = isHorizontal ? selectedElement.clientWidth : selectedElement.clientHeight\n const offsetStart = isHorizontal ? selectedElement.offsetLeft : selectedElement.offsetTop\n const adjustedOffsetStart = isRtl && isHorizontal ? (contentSize - offsetStart - clientSize) : offsetStart\n\n const totalSize = containerSize + currentScrollOffset\n const itemOffset = clientSize + adjustedOffsetStart\n const additionalOffset = clientSize * 0.4\n\n if (adjustedOffsetStart <= currentScrollOffset) {\n currentScrollOffset = Math.max(adjustedOffsetStart - additionalOffset, 0)\n } else if (totalSize <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalSize - itemOffset - additionalOffset), contentSize - containerSize)\n }\n\n return currentScrollOffset\n}\n\nexport function calculateCenteredOffset ({\n selectedElement,\n containerSize,\n contentSize,\n isRtl,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerSize: number\n contentSize: number\n isRtl: boolean\n isHorizontal: boolean\n}): number {\n const clientSize = isHorizontal ? selectedElement.clientWidth : selectedElement.clientHeight\n const offsetStart = isHorizontal ? selectedElement.offsetLeft : selectedElement.offsetTop\n\n const offsetCentered = isRtl && isHorizontal\n ? contentSize - offsetStart - clientSize / 2 - containerSize / 2\n : offsetStart + clientSize / 2 - containerSize / 2\n\n return Math.min(contentSize - containerSize, Math.max(0, offsetCentered))\n}\n"],"mappings":"AAAA,OAAO,SAASA,IAAIA,CAAEC,GAAW,EAAE;EACjC,MAAMC,CAAC,GAAG,KAAK;EACf,MAAMC,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACJ,GAAG,CAAC;EACvB,OAAOG,IAAI,CAACE,IAAI,CAACL,GAAG,CAAC,IAAIE,CAAC,IAAI,CAAC,CAAC,GAAGD,CAAC,GAAG,CAAC,KAAK,CAAC,GAAGC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D;AAEA,OAAO,SAASI,sBAAsBA,CAAAC,IAAA,EAc3B;EAAA,IAd6B;IACtCC,eAAe;IACfC,aAAa;IACbC,WAAW;IACXC,KAAK;IACLC,mBAAmB;IACnBC;EAQF,CAAC,GAAAN,IAAA;EACC,MAAMO,UAAU,GAAGD,YAAY,GAAGL,eAAe,CAACO,WAAW,GAAGP,eAAe,CAACQ,YAAY;EAC5F,MAAMC,WAAW,GAAGJ,YAAY,GAAGL,eAAe,CAACU,UAAU,GAAGV,eAAe,CAACW,SAAS;EACzF,MAAMC,mBAAmB,GAAGT,KAAK,IAAIE,YAAY,GAAIH,WAAW,GAAGO,WAAW,GAAGH,UAAU,GAAIG,WAAW;EAE1G,MAAMI,SAAS,GAAGZ,aAAa,GAAGG,mBAAmB;EACrD,MAAMU,UAAU,GAAGR,UAAU,GAAGM,mBAAmB;EACnD,MAAMG,gBAAgB,GAAGT,UAAU,GAAG,GAAG;EAEzC,IAAIM,mBAAmB,IAAIR,mBAAmB,EAAE;IAC9CA,mBAAmB,GAAGT,IAAI,CAACqB,GAAG,CAACJ,mBAAmB,GAAGG,gBAAgB,EAAE,CAAC,CAAC;EAC3E,CAAC,MAAM,IAAIF,SAAS,IAAIC,UAAU,EAAE;IAClCV,mBAAmB,GAAGT,IAAI,CAACsB,GAAG,CAACb,mBAAmB,IAAIS,SAAS,GAAGC,UAAU,GAAGC,gBAAgB,CAAC,EAAEb,WAAW,GAAGD,aAAa,CAAC;EAChI;EAEA,OAAOG,mBAAmB;AAC5B;AAEA,OAAO,SAASc,uBAAuBA,CAAAC,KAAA,EAY5B;EAAA,IAZ8B;IACvCnB,eAAe;IACfC,aAAa;IACbC,WAAW;IACXC,KAAK;IACLE;EAOF,CAAC,GAAAc,KAAA;EACC,MAAMb,UAAU,GAAGD,YAAY,GAAGL,eAAe,CAACO,WAAW,GAAGP,eAAe,CAACQ,YAAY;EAC5F,MAAMC,WAAW,GAAGJ,YAAY,GAAGL,eAAe,CAACU,UAAU,GAAGV,eAAe,CAACW,SAAS;EAEzF,MAAMS,cAAc,GAAGjB,KAAK,IAAIE,YAAY,GACxCH,WAAW,GAAGO,WAAW,GAAGH,UAAU,GAAG,CAAC,GAAGL,aAAa,GAAG,CAAC,GAC9DQ,WAAW,GAAGH,UAAU,GAAG,CAAC,GAAGL,aAAa,GAAG,CAAC;EAEpD,OAAON,IAAI,CAACsB,GAAG,CAACf,WAAW,GAAGD,aAAa,EAAEN,IAAI,CAACqB,GAAG,CAAC,CAAC,EAAEI,cAAc,CAAC,CAAC;AAC3E"}
@@ -53,7 +53,7 @@ declare const VSlideGroup: {
53
53
  $data: {};
54
54
  $props: Partial<{
55
55
  symbol: any;
56
- direction: string;
56
+ direction: "horizontal" | "vertical";
57
57
  disabled: boolean;
58
58
  multiple: boolean;
59
59
  tag: string;
@@ -64,7 +64,7 @@ declare const VSlideGroup: {
64
64
  centerActive: boolean;
65
65
  }> & Omit<{
66
66
  symbol: any;
67
- direction: string;
67
+ direction: "horizontal" | "vertical";
68
68
  disabled: boolean;
69
69
  multiple: boolean;
70
70
  tag: string;
@@ -115,7 +115,7 @@ declare const VSlideGroup: {
115
115
  $el: any;
116
116
  $options: vue.ComponentOptionsBase<{
117
117
  symbol: any;
118
- direction: string;
118
+ direction: "horizontal" | "vertical";
119
119
  disabled: boolean;
120
120
  multiple: boolean;
121
121
  tag: string;
@@ -159,7 +159,7 @@ declare const VSlideGroup: {
159
159
  'update:modelValue': (value: any) => boolean;
160
160
  }, string, {
161
161
  symbol: any;
162
- direction: string;
162
+ direction: "horizontal" | "vertical";
163
163
  disabled: boolean;
164
164
  multiple: boolean;
165
165
  tag: string;
@@ -190,7 +190,7 @@ declare const VSlideGroup: {
190
190
  $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: vue.WatchOptions<boolean> | undefined): vue.WatchStopHandle;
191
191
  } & {
192
192
  symbol: any;
193
- direction: string;
193
+ direction: "horizontal" | "vertical";
194
194
  disabled: boolean;
195
195
  multiple: boolean;
196
196
  tag: string;
@@ -236,7 +236,7 @@ declare const VSlideGroup: {
236
236
  __isSuspense?: undefined;
237
237
  } & vue.ComponentOptionsBase<{
238
238
  symbol: any;
239
- direction: string;
239
+ direction: "horizontal" | "vertical";
240
240
  disabled: boolean;
241
241
  multiple: boolean;
242
242
  tag: string;
@@ -280,7 +280,7 @@ declare const VSlideGroup: {
280
280
  'update:modelValue': (value: any) => boolean;
281
281
  }, string, {
282
282
  symbol: any;
283
- direction: string;
283
+ direction: "horizontal" | "vertical";
284
284
  disabled: boolean;
285
285
  multiple: boolean;
286
286
  tag: string;
@@ -295,10 +295,10 @@ declare const VSlideGroup: {
295
295
  default: undefined;
296
296
  };
297
297
  multiple: BooleanConstructor;
298
- mandatory: vue.PropType<boolean | "force">;
298
+ mandatory: PropType<boolean | "force">;
299
299
  max: NumberConstructor;
300
300
  selectedClass: {
301
- type: vue.PropType<string>;
301
+ type: PropType<string>;
302
302
  default: string;
303
303
  };
304
304
  disabled: BooleanConstructor;
@@ -308,7 +308,7 @@ declare const VSlideGroup: {
308
308
  };
309
309
  centerActive: BooleanConstructor;
310
310
  direction: {
311
- type: StringConstructor;
311
+ type: PropType<"horizontal" | "vertical">;
312
312
  default: string;
313
313
  };
314
314
  symbol: {
@@ -316,11 +316,11 @@ declare const VSlideGroup: {
316
316
  default: InjectionKey<GroupProvide>;
317
317
  };
318
318
  nextIcon: {
319
- type: vue.PropType<IconValue>;
319
+ type: PropType<IconValue>;
320
320
  default: string;
321
321
  };
322
322
  prevIcon: {
323
- type: vue.PropType<IconValue>;
323
+ type: PropType<IconValue>;
324
324
  default: string;
325
325
  };
326
326
  showArrows: {
@@ -333,10 +333,10 @@ declare const VSlideGroup: {
333
333
  default: undefined;
334
334
  };
335
335
  multiple: BooleanConstructor;
336
- mandatory: vue.PropType<boolean | "force">;
336
+ mandatory: PropType<boolean | "force">;
337
337
  max: NumberConstructor;
338
338
  selectedClass: {
339
- type: vue.PropType<string>;
339
+ type: PropType<string>;
340
340
  default: string;
341
341
  };
342
342
  disabled: BooleanConstructor;
@@ -346,7 +346,7 @@ declare const VSlideGroup: {
346
346
  };
347
347
  centerActive: BooleanConstructor;
348
348
  direction: {
349
- type: StringConstructor;
349
+ type: PropType<"horizontal" | "vertical">;
350
350
  default: string;
351
351
  };
352
352
  symbol: {
@@ -354,11 +354,11 @@ declare const VSlideGroup: {
354
354
  default: InjectionKey<GroupProvide>;
355
355
  };
356
356
  nextIcon: {
357
- type: vue.PropType<IconValue>;
357
+ type: PropType<IconValue>;
358
358
  default: string;
359
359
  };
360
360
  prevIcon: {
361
- type: vue.PropType<IconValue>;
361
+ type: PropType<IconValue>;
362
362
  default: string;
363
363
  };
364
364
  showArrows: {
@@ -76,7 +76,7 @@ export const VSlider = genericComponent()({
76
76
  }), {
77
77
  ...slots,
78
78
  prepend: hasPrepend ? slotProps => _createVNode(_Fragment, null, [slots.label?.(slotProps) ?? props.label ? _createVNode(VLabel, {
79
- "id": slotProps.id,
79
+ "id": slotProps.id.value,
80
80
  "class": "v-slider__label",
81
81
  "text": props.label
82
82
  }, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"VSlider.mjs","names":["filterInputProps","makeVInputProps","VInput","VLabel","VSliderThumb","VSliderTrack","makeFocusProps","useFocus","makeSliderProps","useSlider","useProxiedModel","computed","ref","genericComponent","useRender","VSlider","name","props","modelValue","type","Number","String","default","emits","value","v","setup","slots","thumbContainerRef","min","max","mousePressed","roundValue","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","readonly","handleSliderMouseUp","newValue","model","handleMouseMove","getActiveThumb","$el","undefined","parseFloat","isFocused","focus","blur","trackStop","inputProps","_","hasPrepend","label","prepend","disabled","slotProps","id","messagesId","elevation"],"sources":["../../../src/components/VSlider/VSlider.tsx"],"sourcesContent":["// Styles\nimport './VSlider.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeSliderProps, useSlider } from './slider'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VSliderSlots = VInputSlots & MakeSlots<{\n 'tick-label': []\n 'thumb-label': []\n}>\n\nexport const VSlider = genericComponent<VSliderSlots>()({\n name: 'VSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots }) {\n const thumbContainerRef = ref()\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleSliderMouseUp: newValue => model.value = roundValue(newValue),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleMouseMove: newValue => model.value = roundValue(newValue),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v\n\n return roundValue(value)\n },\n )\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const [inputProps, _] = filterInputProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n <VInput\n class={[\n 'v-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? props.label\n ? (\n <VLabel\n id={ slotProps.id }\n class=\"v-slider__label\"\n text={ props.label }\n />\n ) : undefined\n }\n\n { slots.prepend?.(slotProps) }\n </>\n ) : undefined,\n default: ({ id, messagesId }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n aria-describedby={ messagesId.value }\n focused={ isFocused.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSlider.mjs","names":["filterInputProps","makeVInputProps","VInput","VLabel","VSliderThumb","VSliderTrack","makeFocusProps","useFocus","makeSliderProps","useSlider","useProxiedModel","computed","ref","genericComponent","useRender","VSlider","name","props","modelValue","type","Number","String","default","emits","value","v","setup","_ref","slots","thumbContainerRef","min","max","mousePressed","roundValue","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","readonly","handleSliderMouseUp","newValue","model","handleMouseMove","getActiveThumb","$el","undefined","parseFloat","isFocused","focus","blur","trackStop","inputProps","_","hasPrepend","label","prepend","_createVNode","_mergeProps","disabled","slotProps","_Fragment","id","_ref2","messagesId","elevation"],"sources":["../../../src/components/VSlider/VSlider.tsx"],"sourcesContent":["// Styles\nimport './VSlider.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeSliderProps, useSlider } from './slider'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VSliderSlots = VInputSlots & MakeSlots<{\n 'tick-label': []\n 'thumb-label': []\n}>\n\nexport const VSlider = genericComponent<VSliderSlots>()({\n name: 'VSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots }) {\n const thumbContainerRef = ref()\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleSliderMouseUp: newValue => model.value = roundValue(newValue),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleMouseMove: newValue => model.value = roundValue(newValue),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v\n\n return roundValue(value)\n },\n )\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const [inputProps, _] = filterInputProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n <VInput\n class={[\n 'v-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? props.label\n ? (\n <VLabel\n id={ slotProps.id.value }\n class=\"v-slider__label\"\n text={ props.label }\n />\n ) : undefined\n }\n\n { slots.prepend?.(slotProps) }\n </>\n ) : undefined,\n default: ({ id, messagesId }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n aria-describedby={ messagesId.value }\n focused={ isFocused.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VSliderThumb.mjs","names":["VScaleTransition","VSliderSymbol","Ripple","useElevation","useTextColor","computed","inject","convertToUnit","genericComponent","keyValues","useRender","VSliderThumb","name","directives","props","focused","Boolean","max","type","Number","required","min","modelValue","position","ripple","default","emits","v","setup","slots","emit","slider","Error","thumbColor","step","vertical","disabled","thumbSize","thumbLabel","direction","readonly","elevation","isReversed","horizontalDirection","mousePressed","decimals","textColorClasses","textColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","value","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","Math","onKeydown","newValue","positionPercentage","elevationClasses","undefined","toFixed"],"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VScaleTransition } from '../transitions'\nimport { VSliderSymbol } from './slider'\n\n// Directives\nimport Ripple from '@/directives/ripple'\n\n// Composables\nimport { useElevation } from '@/composables/elevation'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, useRender } from '@/util'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': []\n}\n\nexport const VSliderThumb = genericComponent<VSliderThumbSlots>()({\n name: 'VSliderThumb',\n\n directives: { Ripple },\n\n props: {\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n thumbColor,\n step,\n vertical,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n readonly,\n elevation,\n isReversed,\n horizontalDirection,\n mousePressed,\n decimals,\n } = slider\n\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (props.max - props.min) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = horizontalDirection.value === 'rtl' ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n value = value + (direction * _step * multipliers.value[multiplier])\n } else if (e.key === home) {\n value = props.min\n } else if (e.key === end) {\n value = props.max\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit((vertical.value || isReversed.value) ? 100 - props.position : props.position, '%')\n const { elevationClasses } = useElevation(computed(() => !disabled.value ? elevation.value : undefined))\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n ]}\n style={{\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n }}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-valuemin={ props.min }\n aria-valuemax={ props.max }\n aria-valuenow={ props.modelValue }\n aria-readonly={ readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[props.ripple, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSliderThumb.mjs","names":["VScaleTransition","VSliderSymbol","Ripple","useElevation","useTextColor","computed","inject","convertToUnit","genericComponent","keyValues","useRender","VSliderThumb","name","directives","props","focused","Boolean","max","type","Number","required","min","modelValue","position","ripple","default","emits","v","setup","_ref","slots","emit","slider","Error","thumbColor","step","vertical","disabled","thumbSize","thumbLabel","direction","readonly","elevation","isReversed","horizontalDirection","mousePressed","decimals","textColorClasses","textColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","value","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","Math","onKeydown","newValue","positionPercentage","elevationClasses","undefined","_createVNode","_withDirectives","_resolveDirective","circle","center","toFixed","_vShow"],"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VScaleTransition } from '../transitions'\nimport { VSliderSymbol } from './slider'\n\n// Directives\nimport Ripple from '@/directives/ripple'\n\n// Composables\nimport { useElevation } from '@/composables/elevation'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, useRender } from '@/util'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': []\n}\n\nexport const VSliderThumb = genericComponent<VSliderThumbSlots>()({\n name: 'VSliderThumb',\n\n directives: { Ripple },\n\n props: {\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n thumbColor,\n step,\n vertical,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n readonly,\n elevation,\n isReversed,\n horizontalDirection,\n mousePressed,\n decimals,\n } = slider\n\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (props.max - props.min) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = horizontalDirection.value === 'rtl' ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n value = value + (direction * _step * multipliers.value[multiplier])\n } else if (e.key === home) {\n value = props.min\n } else if (e.key === end) {\n value = props.max\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit((vertical.value || isReversed.value) ? 100 - props.position : props.position, '%')\n const { elevationClasses } = useElevation(computed(() => !disabled.value ? elevation.value : undefined))\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n ]}\n style={{\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n }}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-valuemin={ props.min }\n aria-valuemax={ props.max }\n aria-valuenow={ props.modelValue }\n aria-readonly={ readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[props.ripple, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VSliderTrack.mjs","names":["VSliderSymbol","useBackgroundColor","useRounded","computed","inject","convertToUnit","genericComponent","useRender","VSliderTrack","name","props","start","type","Number","required","stop","emits","setup","slots","slider","Error","color","horizontalDirection","parsedTicks","rounded","showTicks","tickSize","trackColor","trackFillColor","trackSize","vertical","min","max","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionProperty","directionValue","position","undefined","label","direction"],"sources":["../../../src/components/VSlider/VSliderTrack.tsx"],"sourcesContent":["// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\nexport type VSliderTrackSlots = {\n 'tick-label': []\n}\n\nexport const VSliderTrack = genericComponent<VSliderTrackSlots>()({\n name: 'VSliderTrack',\n\n props: {\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n },\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n horizontalDirection,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block-end' : 'inline-start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n if (!showTicks.value) return []\n\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start'\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined\n\n return (\n <div\n key={ tick.value }\n class={[\n 'v-slider-track__tick',\n {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value,\n },\n ]}\n style={{ [directionProperty]: directionValue }}\n >\n {\n (tick.label || slots['tick-label']) && (\n <div class=\"v-slider-track__tick-label\">\n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n </div>\n )\n }\n </div>\n )\n })\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-slider-track',\n roundedClasses.value,\n ]}\n style={{\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value),\n direction: !vertical.value ? horizontalDirection.value : undefined,\n }}\n >\n <div\n class={[\n 'v-slider-track__background',\n trackColorClasses.value,\n {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value,\n },\n ]}\n style={{\n ...backgroundStyles.value,\n ...trackColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-track__fill',\n trackFillColorClasses.value,\n ]}\n style={{\n ...trackFillStyles.value,\n ...trackFillColorStyles.value,\n }}\n />\n\n { showTicks.value && (\n <div\n class={[\n 'v-slider-track__ticks',\n {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always',\n },\n ]}\n >\n { computedTicks.value }\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSliderTrack.mjs","names":["VSliderSymbol","useBackgroundColor","useRounded","computed","inject","convertToUnit","genericComponent","useRender","VSliderTrack","name","props","start","type","Number","required","stop","emits","setup","_ref","slots","slider","Error","color","horizontalDirection","parsedTicks","rounded","showTicks","tickSize","trackColor","trackFillColor","trackSize","vertical","min","max","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionProperty","directionValue","position","undefined","_createVNode","label","direction"],"sources":["../../../src/components/VSlider/VSliderTrack.tsx"],"sourcesContent":["// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\nexport type VSliderTrackSlots = {\n 'tick-label': []\n}\n\nexport const VSliderTrack = genericComponent<VSliderTrackSlots>()({\n name: 'VSliderTrack',\n\n props: {\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n },\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n horizontalDirection,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block-end' : 'inline-start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n if (!showTicks.value) return []\n\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start'\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined\n\n return (\n <div\n key={ tick.value }\n class={[\n 'v-slider-track__tick',\n {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value,\n },\n ]}\n style={{ [directionProperty]: directionValue }}\n >\n {\n (tick.label || slots['tick-label']) && (\n <div class=\"v-slider-track__tick-label\">\n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n </div>\n )\n }\n </div>\n )\n })\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-slider-track',\n roundedClasses.value,\n ]}\n style={{\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value),\n direction: !vertical.value ? horizontalDirection.value : undefined,\n }}\n >\n <div\n class={[\n 'v-slider-track__background',\n trackColorClasses.value,\n {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value,\n },\n ]}\n style={{\n ...backgroundStyles.value,\n ...trackColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-track__fill',\n trackFillColorClasses.value,\n ]}\n style={{\n ...trackFillStyles.value,\n ...trackFillColorStyles.value,\n }}\n />\n\n { showTicks.value && (\n <div\n class={[\n 'v-slider-track__ticks',\n {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always',\n },\n ]}\n >\n { computedTicks.value }\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n"],"mappings":"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"}
@@ -94,7 +94,7 @@ export const useSlider = _ref => {
94
94
  });
95
95
  const min = computed(() => parseFloat(props.min));
96
96
  const max = computed(() => parseFloat(props.max));
97
- const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0);
97
+ const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
98
98
  const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
99
99
  const thumbSize = computed(() => parseInt(props.thumbSize, 10));
100
100
  const tickSize = computed(() => parseInt(props.tickSize, 10));