@vuetify/nightly 3.0.0-beta.0 → 3.0.0-beta.2

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 (277) hide show
  1. package/CHANGELOG.md +53 -2
  2. package/dist/json/attributes.json +343 -195
  3. package/dist/json/importMap.json +20 -0
  4. package/dist/json/tags.json +106 -44
  5. package/dist/json/web-types.json +946 -549
  6. package/dist/vuetify.css +1486 -1085
  7. package/dist/vuetify.d.ts +9036 -8077
  8. package/dist/vuetify.esm.js +1511 -944
  9. package/dist/vuetify.esm.js.map +1 -1
  10. package/dist/vuetify.js +1510 -943
  11. package/dist/vuetify.js.map +1 -1
  12. package/dist/vuetify.min.css +3 -3
  13. package/dist/vuetify.min.js +825 -754
  14. package/dist/vuetify.min.js.map +1 -1
  15. package/lib/components/VAlert/VAlert.css +29 -8
  16. package/lib/components/VAlert/VAlert.mjs +31 -17
  17. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  18. package/lib/components/VAlert/VAlert.sass +27 -7
  19. package/lib/components/VAlert/VAlertTitle.mjs +1 -0
  20. package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
  21. package/lib/components/VAlert/_variables.scss +14 -7
  22. package/lib/components/VApp/VApp.css +1 -0
  23. package/lib/components/VApp/VApp.sass +1 -0
  24. package/lib/components/VAppBar/VAppBar.mjs +7 -3
  25. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  26. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs +82 -69
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  29. package/lib/components/VAvatar/VAvatar.mjs +15 -14
  30. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  31. package/lib/components/VBanner/VBanner.css +82 -58
  32. package/lib/components/VBanner/VBanner.mjs +39 -43
  33. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  34. package/lib/components/VBanner/VBanner.sass +61 -54
  35. package/lib/components/VBanner/VBannerActions.mjs +34 -2
  36. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  37. package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
  38. package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
  39. package/lib/components/VBanner/VBannerIcon.mjs +20 -0
  40. package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
  41. package/lib/components/VBanner/_variables.scss +10 -14
  42. package/lib/components/VBanner/index.mjs +2 -0
  43. package/lib/components/VBanner/index.mjs.map +1 -1
  44. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +2 -0
  45. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  46. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +10 -9
  47. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  48. package/lib/components/VBtn/VBtn.css +20 -1
  49. package/lib/components/VBtn/VBtn.mjs +20 -7
  50. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  51. package/lib/components/VBtn/VBtn.sass +15 -2
  52. package/lib/components/VBtn/_variables.scss +3 -0
  53. package/lib/components/VBtnGroup/VBtnGroup.css +14 -6
  54. package/lib/components/VBtnGroup/VBtnGroup.sass +14 -6
  55. package/lib/components/VCard/VCard.css +13 -11
  56. package/lib/components/VCard/VCard.mjs +5 -2
  57. package/lib/components/VCard/VCard.mjs.map +1 -1
  58. package/lib/components/VCard/VCard.sass +12 -9
  59. package/lib/components/VCard/VCardActions.mjs +1 -2
  60. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  61. package/lib/components/VCard/VCardContent.mjs +3 -0
  62. package/lib/components/VCard/VCardContent.mjs.map +1 -0
  63. package/lib/components/VCard/_variables.scss +11 -5
  64. package/lib/components/VCard/index.mjs +1 -0
  65. package/lib/components/VCard/index.mjs.map +1 -1
  66. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  67. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  68. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  69. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  70. package/lib/components/VChip/VChip.css +3 -0
  71. package/lib/components/VChip/VChip.sass +3 -0
  72. package/lib/components/VChip/_variables.scss +3 -0
  73. package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -1
  74. package/lib/components/VCombobox/VCombobox.mjs +92 -74
  75. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  76. package/lib/components/VDialog/VDialog.css +31 -11
  77. package/lib/components/VDialog/VDialog.mjs +6 -9
  78. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  79. package/lib/components/VDialog/VDialog.sass +27 -10
  80. package/lib/components/VDialog/_variables.scss +3 -6
  81. package/lib/components/VExpansionPanel/VExpansionPanel.css +3 -2
  82. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -2
  83. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  84. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -3
  85. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  86. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -0
  87. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  88. package/lib/components/VField/VField.css +1 -1
  89. package/lib/components/VField/VField.mjs +3 -4
  90. package/lib/components/VField/VField.mjs.map +1 -1
  91. package/lib/components/VField/VField.sass +1 -1
  92. package/lib/components/VFileInput/VFileInput.mjs +2 -1
  93. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  94. package/lib/components/VFooter/VFooter.mjs +32 -15
  95. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  96. package/lib/components/VForm/VForm.mjs +25 -11
  97. package/lib/components/VForm/VForm.mjs.map +1 -1
  98. package/lib/components/VIcon/VIcon.css +27 -12
  99. package/lib/components/VIcon/VIcon.mjs +19 -16
  100. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  101. package/lib/components/VIcon/VIcon.sass +27 -16
  102. package/lib/components/VIcon/_variables.scss +1 -0
  103. package/lib/components/VInput/VInput.css +3 -1
  104. package/lib/components/VInput/VInput.mjs +3 -4
  105. package/lib/components/VInput/VInput.mjs.map +1 -1
  106. package/lib/components/VInput/VInput.sass +3 -1
  107. package/lib/components/VInput/_variables.scss +4 -0
  108. package/lib/components/VList/VList.css +7 -6
  109. package/lib/components/VList/VList.mjs +36 -17
  110. package/lib/components/VList/VList.mjs.map +1 -1
  111. package/lib/components/VList/VList.sass +3 -2
  112. package/lib/components/VList/VListChildren.mjs +1 -1
  113. package/lib/components/VList/VListChildren.mjs.map +1 -1
  114. package/lib/components/VList/VListGroup.mjs +28 -10
  115. package/lib/components/VList/VListGroup.mjs.map +1 -1
  116. package/lib/components/VList/VListItem.css +119 -42
  117. package/lib/components/VList/VListItem.mjs +36 -32
  118. package/lib/components/VList/VListItem.mjs.map +1 -1
  119. package/lib/components/VList/VListItem.sass +76 -28
  120. package/lib/components/VList/VListItemAction.mjs +29 -0
  121. package/lib/components/VList/VListItemAction.mjs.map +1 -0
  122. package/lib/components/VList/VListItemAvatar.mjs +10 -16
  123. package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
  124. package/lib/components/VList/VListItemIcon.mjs +23 -0
  125. package/lib/components/VList/VListItemIcon.mjs.map +1 -0
  126. package/lib/components/VList/VListItemMedia.mjs +4 -4
  127. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  128. package/lib/components/VList/_variables.scss +12 -3
  129. package/lib/components/VList/index.mjs +2 -0
  130. package/lib/components/VList/index.mjs.map +1 -1
  131. package/lib/components/VMenu/VMenu.css +2 -12
  132. package/lib/components/VMenu/VMenu.mjs +61 -31
  133. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  134. package/lib/components/VMenu/VMenu.sass +3 -6
  135. package/lib/components/VMenu/shared.mjs +2 -0
  136. package/lib/components/VMenu/shared.mjs.map +1 -0
  137. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
  138. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  139. package/lib/components/VOverlay/VOverlay.css +8 -0
  140. package/lib/components/VOverlay/VOverlay.mjs +16 -15
  141. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  142. package/lib/components/VOverlay/VOverlay.sass +9 -0
  143. package/lib/components/VOverlay/_variables.scss +1 -0
  144. package/lib/components/VOverlay/positionStrategies.mjs +7 -3
  145. package/lib/components/VOverlay/positionStrategies.mjs.map +1 -1
  146. package/lib/components/VOverlay/scrollStrategies.mjs +9 -0
  147. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  148. package/lib/components/VOverlay/useActivator.mjs +50 -14
  149. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  150. package/lib/components/VPagination/VPagination.mjs +10 -12
  151. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  152. package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
  153. package/lib/components/VRadio/VRadio.mjs +1 -2
  154. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  155. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
  156. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  157. package/lib/components/VRangeSlider/VRangeSlider.mjs +5 -2
  158. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  159. package/lib/components/VRating/VRating.css +2 -2
  160. package/lib/components/VRating/VRating.mjs +13 -3
  161. package/lib/components/VRating/VRating.mjs.map +1 -1
  162. package/lib/components/VRating/VRating.sass +2 -2
  163. package/lib/components/VSelect/VSelect.mjs +70 -91
  164. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  165. package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
  166. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  167. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +2 -2
  168. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  169. package/lib/components/VSlideGroup/VSlideGroup.css +0 -5
  170. package/lib/components/VSlideGroup/VSlideGroup.mjs +36 -14
  171. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  172. package/lib/components/VSlideGroup/VSlideGroup.sass +0 -4
  173. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -1
  174. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  175. package/lib/components/VSlider/VSlider.css +7 -2
  176. package/lib/components/VSlider/VSlider.sass +11 -5
  177. package/lib/components/VSlider/VSliderTrack.css +6 -6
  178. package/lib/components/VSlider/VSliderTrack.mjs +1 -1
  179. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  180. package/lib/components/VSlider/VSliderTrack.sass +7 -7
  181. package/lib/components/VSlider/_variables.scss +5 -2
  182. package/lib/components/VSnackbar/VSnackbar.css +14 -13
  183. package/lib/components/VSnackbar/VSnackbar.mjs +22 -10
  184. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  185. package/lib/components/VSnackbar/VSnackbar.sass +15 -16
  186. package/lib/components/VSnackbar/_variables.scss +0 -4
  187. package/lib/components/VSwitch/VSwitch.mjs +8 -5
  188. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  189. package/lib/components/VSystemBar/VSystemBar.css +0 -5
  190. package/lib/components/VSystemBar/VSystemBar.mjs +31 -14
  191. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  192. package/lib/components/VSystemBar/VSystemBar.sass +0 -5
  193. package/lib/components/VSystemBar/_variables.scss +0 -3
  194. package/lib/components/VTabs/VTab.mjs +28 -32
  195. package/lib/components/VTabs/VTab.mjs.map +1 -1
  196. package/lib/components/VTabs/VTabs.css +6 -2
  197. package/lib/components/VTabs/VTabs.mjs +7 -8
  198. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  199. package/lib/components/VTabs/VTabs.sass +6 -1
  200. package/lib/components/VTabs/shared.mjs +2 -0
  201. package/lib/components/VTabs/shared.mjs.map +1 -0
  202. package/lib/components/VTextField/VTextField.css +4 -4
  203. package/lib/components/VTextField/VTextField.mjs +5 -9
  204. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  205. package/lib/components/VTextField/VTextField.sass +5 -5
  206. package/lib/components/VTextarea/VTextarea.css +7 -4
  207. package/lib/components/VTextarea/VTextarea.sass +9 -5
  208. package/lib/components/VTimeline/VTimeline.css +187 -48
  209. package/lib/components/VTimeline/VTimeline.mjs +27 -11
  210. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  211. package/lib/components/VTimeline/VTimeline.sass +196 -51
  212. package/lib/components/VTimeline/VTimelineDivider.mjs +2 -1
  213. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  214. package/lib/components/VTimeline/_variables.scss +2 -1
  215. package/lib/components/VToolbar/VToolbar.css +8 -1
  216. package/lib/components/VToolbar/VToolbar.mjs +8 -11
  217. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  218. package/lib/components/VToolbar/VToolbar.sass +2 -1
  219. package/lib/components/VToolbar/VToolbarItems.mjs +0 -1
  220. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  221. package/lib/components/VToolbar/_variables.scss +13 -1
  222. package/lib/components/VWindow/VWindow.mjs +0 -8
  223. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  224. package/lib/components/index.d.ts +9025 -8077
  225. package/lib/composables/defaults.mjs +2 -2
  226. package/lib/composables/defaults.mjs.map +1 -1
  227. package/lib/composables/form.mjs +18 -5
  228. package/lib/composables/form.mjs.map +1 -1
  229. package/lib/composables/forwardRef.mjs +10 -6
  230. package/lib/composables/forwardRef.mjs.map +1 -1
  231. package/lib/composables/group.mjs +14 -6
  232. package/lib/composables/group.mjs.map +1 -1
  233. package/lib/composables/index.mjs.map +1 -1
  234. package/lib/composables/items.mjs +56 -0
  235. package/lib/composables/items.mjs.map +1 -0
  236. package/lib/composables/layout.mjs +7 -3
  237. package/lib/composables/layout.mjs.map +1 -1
  238. package/lib/composables/loader.mjs.map +1 -1
  239. package/lib/composables/nested/nested.mjs +27 -14
  240. package/lib/composables/nested/nested.mjs.map +1 -1
  241. package/lib/composables/nested/openStrategies.mjs +63 -36
  242. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  243. package/lib/composables/nested/selectStrategies.mjs +163 -122
  244. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  245. package/lib/composables/overlay.mjs +5 -1
  246. package/lib/composables/overlay.mjs.map +1 -1
  247. package/lib/composables/proxiedModel.mjs.map +1 -1
  248. package/lib/composables/resizeObserver.mjs +1 -9
  249. package/lib/composables/resizeObserver.mjs.map +1 -1
  250. package/lib/composables/router.mjs +17 -5
  251. package/lib/composables/router.mjs.map +1 -1
  252. package/lib/composables/selectLink.mjs +19 -0
  253. package/lib/composables/selectLink.mjs.map +1 -0
  254. package/lib/composables/stack.mjs +7 -4
  255. package/lib/composables/stack.mjs.map +1 -1
  256. package/lib/composables/validation.mjs +6 -3
  257. package/lib/composables/validation.mjs.map +1 -1
  258. package/lib/composables/variant.mjs +0 -3
  259. package/lib/composables/variant.mjs.map +1 -1
  260. package/lib/directives/ripple/index.mjs +15 -3
  261. package/lib/directives/ripple/index.mjs.map +1 -1
  262. package/lib/entry-bundler.mjs +1 -1
  263. package/lib/framework.mjs +12 -7
  264. package/lib/framework.mjs.map +1 -1
  265. package/lib/index.d.ts +18 -2
  266. package/lib/locale/ca.mjs +9 -9
  267. package/lib/locale/ca.mjs.map +1 -1
  268. package/lib/styles/generic/_colors.scss +0 -1
  269. package/lib/styles/main.css +400 -392
  270. package/lib/styles/settings/_utilities.scss +54 -26
  271. package/lib/styles/tools/_states.sass +2 -1
  272. package/lib/util/defineComponent.mjs +37 -6
  273. package/lib/util/defineComponent.mjs.map +1 -1
  274. package/lib/util/getCurrentInstance.mjs +1 -1
  275. package/lib/util/getCurrentInstance.mjs.map +1 -1
  276. package/lib/util/helpers.mjs.map +1 -1
  277. package/package.json +31 -29
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"names":["VFadeTransition","VIcon","makeGroupProps","useGroup","makeTagProps","useDisplay","useResizeObserver","useRtl","bias","calculateCenteredOffset","calculateUpdatedOffset","clamp","defineComponent","useRender","computed","ref","watch","watchEffect","VSlideGroupSymbol","Symbol","for","VSlideGroup","name","props","activeClass","type","String","default","centerActive","Boolean","direction","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","emits","value","setup","slots","isRtl","mobile","group","isOverflowing","scrollOffset","containerSize","contentSize","isHorizontal","resizeRef","containerRef","contentRect","containerRect","contentRef","sizeProperty","getBoundingClientRect","selected","length","index","items","findIndex","item","id","selectedElement","children","currentScrollOffset","disableTransition","startTouch","startOffset","onTouchstart","e","touches","onTouchmove","onTouchend","maxScrollOffset","onScroll","scrollLeft","isFocused","onFocusin","el","composedPath","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","key","location","querySelector","focusable","querySelectorAll","filter","hasAttribute","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","scrollTo","sign","newAbosluteOffset","contentStyles","scrollAmount","transform","transition","willChange","slotProps","next","prev","select","isSelected","hasAffixes","Math","abs","hasPrev","hasNext"],"mappings":"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","sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { useDisplay } from '@/composables'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { bias, calculateCenteredOffset, calculateUpdatedOffset } from './helpers'\nimport { clamp, defineComponent, useRender } from '@/util'\nimport { computed, ref, watch, watchEffect } from 'vue'\n\n// Types\nimport type { GroupProvide } from '@/composables/group'\nimport type { InjectionKey } from 'vue'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\nexport const VSlideGroup = defineComponent({\n name: 'VSlideGroup',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\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: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\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 ...makeTagProps(),\n ...makeGroupProps(),\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 contentRef = ref<HTMLElement>()\n\n watchEffect(() => {\n if (!containerRect.value || !contentRef.value) return\n\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRef.value.getBoundingClientRect()[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n })\n\n watch(group.selected, selected => {\n if (!selected.length || !contentRef.value) return\n\n const index = group.items.value.findIndex(item => item.id === selected[selected.length - 1])\n\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[index] as HTMLElement\n\n if (index === 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 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 startOffset = 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 scrollOffset.value = startOffset + startTouch - e.touches[0][sizeProperty]\n }\n\n function onTouchend (e: TouchEvent) {\n const maxScrollOffset = contentSize.value - containerSize.value\n\n if (isRtl.value) {\n if (scrollOffset.value > 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value <= -maxScrollOffset) {\n scrollOffset.value = -maxScrollOffset\n }\n } else {\n if (scrollOffset.value < 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value >= maxScrollOffset) {\n scrollOffset.value = maxScrollOffset\n }\n }\n\n disableTransition.value = false\n }\n\n function onScroll () {\n containerRef.value && (containerRef.value.scrollLeft = 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 (e.key === (isHorizontal.value ? 'ArrowRight' : 'ArrowDown')) {\n focus('next')\n } else if (e.key === (isHorizontal.value ? 'ArrowLeft' : 'ArrowUp')) {\n focus('prev')\n } else 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 contentRef.value.querySelector('[tabindex]')\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 sign = isRtl.value ? -1 : 1\n const newAbosluteOffset = sign * scrollOffset.value +\n (location === 'prev' ? -1 : 1) * containerSize.value\n\n scrollOffset.value = sign * clamp(newAbosluteOffset, 0, contentSize.value - containerSize.value)\n }\n\n const contentStyles = computed(() => {\n const scrollAmount = scrollOffset.value <= 0\n ? bias(-scrollOffset.value)\n : scrollOffset.value > contentSize.value - containerSize.value\n ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value)\n : -scrollOffset.value\n\n return {\n transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${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 hasAffixes.value && scrollOffset.value > 0\n })\n\n const hasNext = computed(() => {\n if (!hasAffixes.value) return false\n\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 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={ props.prevIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n\n <div\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 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={ 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"],"file":"VSlideGroup.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"names":["VFadeTransition","VIcon","makeGroupProps","useGroup","makeTagProps","useDisplay","useResizeObserver","useRtl","bias","calculateCenteredOffset","calculateUpdatedOffset","clamp","defineComponent","useRender","computed","ref","watch","watchEffect","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","sizeProperty","firstSelectedIndex","selected","length","items","findIndex","item","id","lastSelectedIndex","selectedElement","children","currentScrollOffset","firstOverflow","disableTransition","startTouch","startOffset","onTouchstart","e","touches","onTouchmove","onTouchend","maxScrollOffset","onScroll","scrollLeft","isFocused","onFocusin","el","composedPath","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","key","location","querySelector","focusable","querySelectorAll","filter","hasAttribute","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","scrollTo","sign","newAbosluteOffset","contentStyles","scrollAmount","transform","transition","willChange","slotProps","next","prev","select","isSelected","hasAffixes","Math","abs","hasPrev","hasNext"],"mappings":"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","sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { useDisplay } from '@/composables'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { bias, calculateCenteredOffset, calculateUpdatedOffset } from './helpers'\nimport { clamp, defineComponent, useRender } from '@/util'\nimport { computed, ref, watch, watchEffect } from 'vue'\n\n// Types\nimport type { GroupProvide } from '@/composables/group'\nimport type { InjectionKey } from 'vue'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\nexport const VSlideGroup = defineComponent({\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: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\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 ...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 watchEffect(() => {\n if (!containerRect.value || !contentRect.value) return\n\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 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 watch(group.selected, () => {\n if (firstSelectedIndex.value < 0 || !contentRef.value) return\n\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 let firstOverflow = true\n watch(isOverflowing, () => {\n if (!firstOverflow || !contentRef.value || firstSelectedIndex.value < 0) return\n\n firstOverflow = false\n\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[firstSelectedIndex.value] as HTMLElement\n\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\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 startOffset = 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 scrollOffset.value = startOffset + startTouch - e.touches[0][sizeProperty]\n }\n\n function onTouchend (e: TouchEvent) {\n const maxScrollOffset = contentSize.value - containerSize.value\n\n if (isRtl.value) {\n if (scrollOffset.value > 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value <= -maxScrollOffset) {\n scrollOffset.value = -maxScrollOffset\n }\n } else {\n if (scrollOffset.value < 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value >= maxScrollOffset) {\n scrollOffset.value = maxScrollOffset\n }\n }\n\n disableTransition.value = false\n }\n\n function onScroll () {\n containerRef.value && (containerRef.value.scrollLeft = 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 (e.key === (isHorizontal.value ? 'ArrowRight' : 'ArrowDown')) {\n focus('next')\n } else if (e.key === (isHorizontal.value ? 'ArrowLeft' : 'ArrowUp')) {\n focus('prev')\n } else 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 contentRef.value.querySelector('[tabindex]')\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 sign = isRtl.value ? -1 : 1\n const newAbosluteOffset = sign * scrollOffset.value +\n (location === 'prev' ? -1 : 1) * containerSize.value\n\n scrollOffset.value = sign * clamp(newAbosluteOffset, 0, contentSize.value - containerSize.value)\n }\n\n const contentStyles = computed(() => {\n const scrollAmount = scrollOffset.value <= 0\n ? bias(-scrollOffset.value)\n : scrollOffset.value > contentSize.value - containerSize.value\n ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value)\n : -scrollOffset.value\n\n return {\n transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${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 hasAffixes.value && scrollOffset.value > 0\n })\n\n const hasNext = computed(() => {\n if (!hasAffixes.value) return false\n\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 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={ props.prevIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n\n <div\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 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={ 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"],"file":"VSlideGroup.mjs"}
@@ -9,10 +9,6 @@
9
9
  .v-slide-group
10
10
  display: flex
11
11
 
12
- .v-slide-item
13
- display: inline-flex
14
- flex: 0 1 auto
15
-
16
12
  // Element
17
13
  .v-slide-group__next,
18
14
  .v-slide-group__prev
@@ -18,7 +18,9 @@ export const VSlideGroupItem = defineComponent({
18
18
 
19
19
  return (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
20
20
  isSelected: slideGroupItem.isSelected.value,
21
- select: slideGroupItem.select
21
+ select: slideGroupItem.select,
22
+ toggle: slideGroupItem.toggle,
23
+ selectedClass: slideGroupItem.selectedClass.value
22
24
  });
23
25
  };
24
26
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VSlideGroup/VSlideGroupItem.tsx"],"names":["makeGroupItemProps","useGroupItem","VSlideGroupSymbol","defineComponent","VSlideGroupItem","name","props","setup","slots","slideGroupItem","default","isSelected","value","select"],"mappings":"AAAA;SACSA,kB,EAAoBC,Y;SACpBC,iB,6BAET;;SACSC,e;AAET,OAAO,MAAMC,eAAe,GAAGD,eAAe,CAAC;AAC7CE,EAAAA,IAAI,EAAE,iBADuC;AAG7CC,EAAAA,KAAK,EAAE,EACL,GAAGN,kBAAkB;AADhB,GAHsC;;AAO7CO,EAAAA,KAAK,CAAED,KAAF,QAAoB;AAAA,QAAX;AAAEE,MAAAA;AAAF,KAAW;AACvB,UAAMC,cAAc,GAAGR,YAAY,CAACK,KAAD,EAAQJ,iBAAR,CAAnC;AAEA,WAAO;AAAA;;AAAA,+BAAMM,KAAK,CAACE,OAAZ,qBAAM,oBAAAF,KAAK,EAAW;AAC3BG,QAAAA,UAAU,EAAEF,cAAc,CAACE,UAAf,CAA0BC,KADX;AAE3BC,QAAAA,MAAM,EAAEJ,cAAc,CAACI;AAFI,OAAX,CAAX;AAAA,KAAP;AAID;;AAd4C,CAAD,CAAvC","sourcesContent":["// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { VSlideGroupSymbol } from './VSlideGroup'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VSlideGroupItem = defineComponent({\n name: 'VSlideGroupItem',\n\n props: {\n ...makeGroupItemProps(),\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 })\n },\n})\n"],"file":"VSlideGroupItem.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VSlideGroup/VSlideGroupItem.tsx"],"names":["makeGroupItemProps","useGroupItem","VSlideGroupSymbol","defineComponent","VSlideGroupItem","name","props","setup","slots","slideGroupItem","default","isSelected","value","select","toggle","selectedClass"],"mappings":"AAAA;SACSA,kB,EAAoBC,Y;SACpBC,iB,6BAET;;SACSC,e;AAET,OAAO,MAAMC,eAAe,GAAGD,eAAe,CAAC;AAC7CE,EAAAA,IAAI,EAAE,iBADuC;AAG7CC,EAAAA,KAAK,EAAE,EACL,GAAGN,kBAAkB;AADhB,GAHsC;;AAO7CO,EAAAA,KAAK,CAAED,KAAF,QAAoB;AAAA,QAAX;AAAEE,MAAAA;AAAF,KAAW;AACvB,UAAMC,cAAc,GAAGR,YAAY,CAACK,KAAD,EAAQJ,iBAAR,CAAnC;AAEA,WAAO;AAAA;;AAAA,+BAAMM,KAAK,CAACE,OAAZ,qBAAM,oBAAAF,KAAK,EAAW;AAC3BG,QAAAA,UAAU,EAAEF,cAAc,CAACE,UAAf,CAA0BC,KADX;AAE3BC,QAAAA,MAAM,EAAEJ,cAAc,CAACI,MAFI;AAG3BC,QAAAA,MAAM,EAAEL,cAAc,CAACK,MAHI;AAI3BC,QAAAA,aAAa,EAAEN,cAAc,CAACM,aAAf,CAA6BH;AAJjB,OAAX,CAAX;AAAA,KAAP;AAMD;;AAhB4C,CAAD,CAAvC","sourcesContent":["// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { VSlideGroupSymbol } from './VSlideGroup'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VSlideGroupItem = defineComponent({\n name: 'VSlideGroupItem',\n\n props: {\n ...makeGroupItemProps(),\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"],"file":"VSlideGroupItem.mjs"}
@@ -1,9 +1,12 @@
1
- .v-slider input {
1
+ .v-slider .v-slider__container input {
2
2
  cursor: default;
3
3
  padding: 0;
4
4
  width: 100%;
5
5
  display: none;
6
6
  }
7
+ .v-slider .v-input__append, .v-slider .v-input__prepend {
8
+ padding: 0;
9
+ }
7
10
 
8
11
  .v-slider__container {
9
12
  position: relative;
@@ -22,6 +25,7 @@
22
25
  }
23
26
 
24
27
  .v-slider.v-input--horizontal {
28
+ align-items: center;
25
29
  margin-left: 8px;
26
30
  margin-right: 8px;
27
31
  }
@@ -32,6 +36,7 @@
32
36
  }
33
37
 
34
38
  .v-slider.v-input--vertical {
39
+ justify-content: center;
35
40
  margin-top: 12px;
36
41
  margin-bottom: 12px;
37
42
  }
@@ -44,5 +49,5 @@
44
49
  }
45
50
 
46
51
  .v-slider--has-labels .v-input__control {
47
- margin-bottom: 12.5px;
52
+ margin-bottom: 4px;
48
53
  }
@@ -8,11 +8,15 @@
8
8
 
9
9
  // Block
10
10
  .v-slider
11
- input
12
- cursor: default
11
+ .v-slider__container
12
+ input
13
+ cursor: default
14
+ padding: 0
15
+ width: 100%
16
+ display: none
17
+
18
+ .v-input__append, .v-input__prepend
13
19
  padding: 0
14
- width: 100%
15
- display: none
16
20
 
17
21
  // Elements
18
22
  .v-slider__container
@@ -32,6 +36,7 @@
32
36
 
33
37
  // Modifiers
34
38
  .v-slider.v-input--horizontal
39
+ align-items: center
35
40
  margin-left: $slider-horizontal-left
36
41
  margin-right: $slider-horizontal-right
37
42
 
@@ -41,6 +46,7 @@
41
46
  align-items: center
42
47
 
43
48
  .v-slider.v-input--vertical
49
+ justify-content: center
44
50
  margin-top: $slider-vertical-margin-top
45
51
  margin-bottom: $slider-vertical-margin-bottom
46
52
 
@@ -51,4 +57,4 @@
51
57
  pointer-events: none
52
58
 
53
59
  .v-slider--has-labels .v-input__control
54
- margin-bottom: $slider-tick-label-margin-bottom * .5
60
+ margin-bottom: $slider-tick-label-margin-top * .5
@@ -77,7 +77,7 @@
77
77
  height: inherit;
78
78
  }
79
79
  .v-slider.v-input--horizontal .v-slider-track__tick {
80
- margin-block-start: calc(var(--v-slider-track-size) / 2 + 1px);
80
+ margin-top: calc(calc(var(--v-slider-track-size) + 2px) / 2);
81
81
  }
82
82
  .v-slider.v-input--horizontal .v-slider-track__tick.v-locale--is-rtl, .v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick {
83
83
  transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / -2));
@@ -101,7 +101,7 @@
101
101
  transform: translateX(100%);
102
102
  }
103
103
  .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label {
104
- bottom: calc((var(--v-slider-track-size) / -2) - 25px);
104
+ margin-top: calc(var(--v-slider-track-size) / 2 + 8px);
105
105
  }
106
106
  .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label.v-locale--is-ltr, .v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label {
107
107
  transform: translateX(-50%);
@@ -114,7 +114,7 @@
114
114
  height: 100%;
115
115
  display: flex;
116
116
  justify-content: center;
117
- width: calc(var(--v-slider-track-size, 2px) + 2px);
117
+ width: calc(var(--v-slider-track-size) + 2px);
118
118
  touch-action: pan-x;
119
119
  }
120
120
  .v-slider.v-input--vertical .v-slider-track__background {
@@ -127,17 +127,17 @@
127
127
  height: 100%;
128
128
  }
129
129
  .v-slider.v-input--vertical .v-slider-track__tick {
130
- margin-inline-start: calc(var(--v-slider-track-size) / 2 + 1px);
130
+ margin-inline-start: calc(calc(var(--v-slider-track-size) + 2px) / 2);
131
131
  transform: translate(calc(var(--v-slider-tick-size) / -2), calc(var(--v-slider-tick-size) / 2));
132
132
  }
133
133
  .v-slider.v-input--vertical .v-slider-track__tick.v-locale--is-rtl, .v-locale--is-rtl .v-slider.v-input--vertical .v-slider-track__tick {
134
134
  transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / 2));
135
135
  }
136
136
  .v-slider.v-input--vertical .v-slider-track__tick:last-child {
137
- inset-block-end: calc(0% + var(--v-slider-tick-size) + 1px);
137
+ bottom: calc(0% + var(--v-slider-tick-size) + 1px);
138
138
  }
139
139
  .v-slider.v-input--vertical .v-slider-track__tick .v-slider-track__tick-label {
140
- margin-inline-start: calc(var(--v-slider-track-size) + 20px);
140
+ margin-inline-start: calc(var(--v-slider-track-size) / 2 + 12px);
141
141
  transform: translateY(-50%);
142
142
  }
143
143
 
@@ -72,7 +72,7 @@ export const VSliderTrack = defineComponent({
72
72
  return ticks.map((tick, index) => {
73
73
  var _slots$tickLabel, _slots$tickLabel2;
74
74
 
75
- const directionProperty = vertical.value ? 'inset-block-end' : 'margin-inline-start';
75
+ const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start';
76
76
  return _createVNode("div", {
77
77
  "key": tick.value,
78
78
  "class": ['v-slider-track__tick', {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VSlider/VSliderTrack.tsx"],"names":["VSliderSymbol","useBackgroundColor","useRounded","computed","inject","convertToUnit","defineComponent","VSliderTrack","name","props","start","type","Number","required","stop","emits","setup","slots","slider","Error","trackColor","trackFillColor","vertical","tickSize","showTicks","trackSize","color","rounded","parsedTicks","horizontalDirection","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionProperty","position","label","direction","undefined"],"mappings":"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","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, defineComponent } from '@/util'\n\nexport const VSliderTrack = defineComponent({\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 trackColor,\n trackFillColor,\n vertical,\n tickSize,\n showTicks,\n trackSize,\n color,\n rounded,\n parsedTicks,\n horizontalDirection,\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 const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionProperty = vertical.value ? 'inset-block-end' : 'margin-inline-start'\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 },\n ]}\n style={{\n [directionProperty]: (tick.position > 0 && tick.position < 100) && convertToUnit(tick.position, '%'),\n }}\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 return () => {\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})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n"],"file":"VSliderTrack.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VSlider/VSliderTrack.tsx"],"names":["VSliderSymbol","useBackgroundColor","useRounded","computed","inject","convertToUnit","defineComponent","VSliderTrack","name","props","start","type","Number","required","stop","emits","setup","slots","slider","Error","trackColor","trackFillColor","vertical","tickSize","showTicks","trackSize","color","rounded","parsedTicks","horizontalDirection","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionProperty","position","label","direction","undefined"],"mappings":"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","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, defineComponent } from '@/util'\n\nexport const VSliderTrack = defineComponent({\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 trackColor,\n trackFillColor,\n vertical,\n tickSize,\n showTicks,\n trackSize,\n color,\n rounded,\n parsedTicks,\n horizontalDirection,\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 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 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 },\n ]}\n style={{\n [directionProperty]: (tick.position > 0 && tick.position < 100) && convertToUnit(tick.position, '%'),\n }}\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 return () => {\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})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n"],"file":"VSliderTrack.mjs"}
@@ -74,7 +74,7 @@
74
74
  display: flex
75
75
  align-items: center
76
76
  width: 100%
77
- height: calc(var(--v-slider-track-size) + 2px)
77
+ height: $slider-track-active-size
78
78
  touch-action: pan-y
79
79
 
80
80
  &__background
@@ -84,7 +84,7 @@
84
84
  height: inherit
85
85
 
86
86
  .v-slider-track__tick
87
- margin-block-start: calc((var(--v-slider-track-size) / 2) + 1px)
87
+ margin-top: calc(#{$slider-track-active-size} / 2)
88
88
 
89
89
  @include tools.rtl()
90
90
  transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / -2))
@@ -110,7 +110,7 @@
110
110
  transform: translateX(100%)
111
111
 
112
112
  .v-slider-track__tick-label
113
- bottom: calc((var(--v-slider-track-size) / -2) - #{$slider-tick-label-margin-bottom})
113
+ margin-top: calc(var(--v-slider-track-size) / 2 + #{$slider-tick-label-margin-top})
114
114
 
115
115
  @include tools.ltr()
116
116
  transform: translateX(-50%)
@@ -124,7 +124,7 @@
124
124
  height: 100%
125
125
  display: flex
126
126
  justify-content: center
127
- width: calc(var(--v-slider-track-size, $slider-track-width) + 2px)
127
+ width: $slider-track-active-size
128
128
  touch-action: pan-x
129
129
 
130
130
  &__background
@@ -137,17 +137,17 @@
137
137
  height: 100%
138
138
 
139
139
  .v-slider-track__tick
140
- margin-inline-start: calc((var(--v-slider-track-size) / 2) + 1px)
140
+ margin-inline-start: calc(#{$slider-track-active-size} / 2)
141
141
  transform: translate(calc(var(--v-slider-tick-size) / -2), calc(var(--v-slider-tick-size) / 2))
142
142
 
143
143
  @include tools.rtl()
144
144
  transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / 2))
145
145
 
146
146
  &:last-child
147
- inset-block-end: calc(0% + var(--v-slider-tick-size) + 1px)
147
+ bottom: calc(0% + var(--v-slider-tick-size) + 1px)
148
148
 
149
149
  .v-slider-track__tick-label
150
- margin-inline-start: calc(var(--v-slider-track-size) + 20px)
150
+ margin-inline-start: calc(var(--v-slider-track-size) / 2 + #{$slider-tick-label-margin-start})
151
151
  transform: translateY(-50%)
152
152
 
153
153
  // Modifiers
@@ -22,10 +22,13 @@ $slider-thumb-label-transition: .2s settings.$accelerated-easing !default;
22
22
  $slider-thumb-label-padding: 6px !default;
23
23
  $slider-thumb-touch-size: 42px !default;
24
24
  $slider-tick-border-radius: 2px !default;
25
- $slider-tick-label-margin-bottom: 25px !default;
25
+ $slider-tick-label-margin-top: 8px !default;
26
+ $slider-tick-label-margin-start: 12px !default;
26
27
  $slider-track-border-radius: 6px !default;
27
- $slider-track-width: 2px !default;
28
+ $slider-track-active-size-offset: 2px !default;
28
29
  $slider-transition: .3s cubic-bezier(0.25, 0.8, 0.5, 1) !default;
29
30
  $slider-vertical-margin-bottom: 12px !default;
30
31
  $slider-vertical-margin-top: 12px !default;
31
32
  $slider-vertical-min-height: 300px !default;
33
+
34
+ $slider-track-active-size: calc(var(--v-slider-track-size) + #{$slider-track-active-size-offset}) !default;
@@ -1,12 +1,6 @@
1
1
  .v-snackbar {
2
- bottom: 0;
3
- display: flex;
4
2
  justify-content: center;
5
- left: 0;
6
- pointer-events: none;
7
- right: 0;
8
- top: 0;
9
- width: 100%;
3
+ padding-inline-end: var(--v-scrollbar-offset);
10
4
  }
11
5
  .v-snackbar:not(.v-snackbar--absolute) {
12
6
  height: 100vh;
@@ -26,10 +20,6 @@
26
20
  padding: 0;
27
21
  pointer-events: auto;
28
22
  position: relative;
29
- transition-duration: 0.15s;
30
- transition-property: opacity, transform;
31
- transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
32
- z-index: 1;
33
23
  border-radius: 4px;
34
24
  }
35
25
  .v-snackbar--variant-plain, .v-snackbar--variant-outlined, .v-snackbar--variant-text, .v-snackbar--variant-contained-text {
@@ -128,9 +118,20 @@
128
118
  margin-bottom: 8px;
129
119
  }
130
120
 
131
- .v-snackbar-transition-enter-from.v-snackbar__wrapper {
121
+ .v-snackbar-transition-enter-active, .v-snackbar-transition-leave-active {
122
+ transition-duration: 0.15s;
123
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
124
+ }
125
+ .v-snackbar-transition-enter-active {
126
+ transition-property: opacity, transform;
127
+ }
128
+ .v-snackbar-transition-enter-from {
129
+ opacity: 0;
132
130
  transform: scale(0.8);
133
131
  }
134
- .v-snackbar-transition-enter-from.v-snackbar__wrapper, .v-snackbar-transition-leave-to.v-snackbar__wrapper {
132
+ .v-snackbar-transition-leave-active {
133
+ transition-property: opacity;
134
+ }
135
+ .v-snackbar-transition-leave-to {
135
136
  opacity: 0;
136
137
  }
@@ -1,16 +1,18 @@
1
- import { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from "vue";
1
+ import { resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VSnackbar.css"; // Components
4
4
 
5
- import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs"; // Composables
5
+ import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
6
+ import { VOverlay } from "../VOverlay/index.mjs"; // Composables
6
7
 
7
8
  import { makePositionProps, usePosition } from "../../composables/position.mjs";
8
9
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
9
- import { makeTransitionProps, MaybeTransition } from "../../composables/transition.mjs";
10
+ import { makeTransitionProps } from "../../composables/transition.mjs";
10
11
  import { genOverlays, makeVariantProps, useVariant } from "../../composables/variant.mjs"; // Utilities
11
12
 
12
13
  import { onMounted, watch } from 'vue';
13
14
  import { defineComponent, useRender } from "../../util/index.mjs";
15
+ import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
14
16
  export const VSnackbar = defineComponent({
15
17
  name: 'VSnackbar',
16
18
  props: {
@@ -28,6 +30,7 @@ export const VSnackbar = defineComponent({
28
30
  vertical: Boolean,
29
31
  modelValue: Boolean,
30
32
  ...makePositionProps(),
33
+ ...makeRoundedProps(),
31
34
  ...makeVariantProps(),
32
35
  ...makeTransitionProps({
33
36
  transition: 'v-snackbar-transition'
@@ -51,6 +54,9 @@ export const VSnackbar = defineComponent({
51
54
  colorStyles,
52
55
  variantClasses
53
56
  } = useVariant(props);
57
+ const {
58
+ roundedClasses
59
+ } = useRounded(props);
54
60
  watch(isActive, startTimeout);
55
61
  watch(() => props.timeout, startTimeout);
56
62
  onMounted(() => {
@@ -74,7 +80,9 @@ export const VSnackbar = defineComponent({
74
80
  useRender(() => {
75
81
  var _slots$default, _slots$actions;
76
82
 
77
- return _createVNode("div", {
83
+ return _createVNode(VOverlay, {
84
+ "modelValue": isActive.value,
85
+ "onUpdate:modelValue": $event => isActive.value = $event,
78
86
  "class": ['v-snackbar', {
79
87
  'v-snackbar--active': isActive.value,
80
88
  'v-snackbar--bottom': props.bottom || !props.top,
@@ -85,12 +93,15 @@ export const VSnackbar = defineComponent({
85
93
  'v-snackbar--top': props.top,
86
94
  'v-snackbar--vertical': props.vertical
87
95
  }, positionClasses.value],
88
- "style": [colorStyles.value, positionStyles.value]
89
- }, [_createVNode(MaybeTransition, {
96
+ "style": [colorStyles.value, positionStyles.value],
97
+ "persistent": true,
98
+ "noClickAnimation": true,
99
+ "scrim": false,
100
+ "scrollStrategy": "none",
90
101
  "transition": props.transition
91
102
  }, {
92
- default: () => [_withDirectives(_createVNode("div", {
93
- "class": ['v-snackbar__wrapper', colorClasses.value, variantClasses.value],
103
+ default: () => [_createVNode("div", {
104
+ "class": ['v-snackbar__wrapper', colorClasses.value, roundedClasses.value, variantClasses.value],
94
105
  "onPointerenter": onPointerenter,
95
106
  "onPointerleave": startTimeout
96
107
  }, [genOverlays(false, 'v-snackbar'), slots.default && _createVNode("div", {
@@ -108,8 +119,9 @@ export const VSnackbar = defineComponent({
108
119
  default: () => [_createVNode("div", {
109
120
  "class": "v-snackbar__actions"
110
121
  }, [(_slots$actions = slots.actions) == null ? void 0 : _slots$actions.call(slots)])]
111
- })]), [[_vShow, isActive.value]])]
112
- })]);
122
+ })])],
123
+ activator: slots.activator
124
+ });
113
125
  });
114
126
  }
115
127
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"names":["VDefaultsProvider","makePositionProps","usePosition","useProxiedModel","makeTransitionProps","MaybeTransition","genOverlays","makeVariantProps","useVariant","onMounted","watch","defineComponent","useRender","VSnackbar","name","props","app","Boolean","centered","contentClass","type","String","default","multiLine","timeout","Number","vertical","modelValue","transition","emits","v","setup","slots","isActive","positionClasses","positionStyles","colorClasses","colorStyles","variantClasses","startTimeout","value","activeTimeout","window","clearTimeout","setTimeout","onPointerenter","bottom","top","right","left","actions","VBtn","variant","ripple"],"mappings":"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","sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { onMounted, watch } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VSnackbar = defineComponent({\n name: 'VSnackbar',\n\n props: {\n app: Boolean,\n centered: Boolean,\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n modelValue: Boolean,\n\n ...makePositionProps(),\n ...makeVariantProps(),\n ...makeTransitionProps({ transition: 'v-snackbar-transition' }),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { positionClasses, positionStyles } = usePosition(props)\n\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function onPointerenter () {\n window.clearTimeout(activeTimeout)\n }\n\n useRender(() => (\n <div\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--bottom': props.bottom || !props.top,\n 'v-snackbar--centered': props.centered,\n 'v-snackbar--end': props.right,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--start': props.left,\n 'v-snackbar--top': props.top,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n style={[\n colorStyles.value,\n positionStyles.value,\n ]}\n >\n <MaybeTransition transition={ props.transition }>\n <div\n class={[\n 'v-snackbar__wrapper',\n colorClasses.value,\n variantClasses.value,\n ]}\n v-show={ isActive.value }\n onPointerenter={ onPointerenter }\n onPointerleave={ startTimeout }\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class={[\n 'v-snackbar__content',\n props.contentClass,\n ]}\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.default?.() }\n </div>\n ) }\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions?.() }\n </div>\n </VDefaultsProvider>\n ) }\n </div>\n </MaybeTransition>\n </div>\n ))\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"file":"VSnackbar.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"names":["VDefaultsProvider","VOverlay","makePositionProps","usePosition","useProxiedModel","makeTransitionProps","genOverlays","makeVariantProps","useVariant","onMounted","watch","defineComponent","useRender","makeRoundedProps","useRounded","VSnackbar","name","props","app","Boolean","centered","contentClass","type","String","default","multiLine","timeout","Number","vertical","modelValue","transition","emits","v","setup","slots","isActive","positionClasses","positionStyles","colorClasses","colorStyles","variantClasses","roundedClasses","startTimeout","value","activeTimeout","window","clearTimeout","setTimeout","onPointerenter","bottom","top","right","left","actions","VBtn","variant","ripple","activator"],"mappings":"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","sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { onMounted, watch } from 'vue'\nimport { defineComponent, useRender } from '@/util'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\n\nexport const VSnackbar = defineComponent({\n name: 'VSnackbar',\n\n props: {\n app: Boolean,\n centered: Boolean,\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n modelValue: Boolean,\n\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeTransitionProps({ transition: 'v-snackbar-transition' }),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { positionClasses, positionStyles } = usePosition(props)\n\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function onPointerenter () {\n window.clearTimeout(activeTimeout)\n }\n\n useRender(() => (\n <VOverlay\n v-model={ isActive.value }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--bottom': props.bottom || !props.top,\n 'v-snackbar--centered': props.centered,\n 'v-snackbar--end': props.right,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--start': props.left,\n 'v-snackbar--top': props.top,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n style={[\n colorStyles.value,\n positionStyles.value,\n ]}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n transition={ props.transition }\n v-slots={{ activator: slots.activator }}\n >\n <div\n class={[\n 'v-snackbar__wrapper',\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n onPointerenter={ onPointerenter }\n onPointerleave={ startTimeout }\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class={[\n 'v-snackbar__content',\n props.contentClass,\n ]}\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.default?.() }\n </div>\n ) }\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions?.() }\n </div>\n </VDefaultsProvider>\n ) }\n </div>\n </VOverlay>\n ))\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"file":"VSnackbar.mjs"}