vuetify 3.1.6 → 3.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/dist/json/attributes.json +33 -33
  2. package/dist/json/importMap.json +4 -4
  3. package/dist/json/web-types.json +967 -79
  4. package/dist/vuetify-labs.css +544 -401
  5. package/dist/vuetify-labs.d.ts +3453 -144
  6. package/dist/vuetify-labs.esm.js +66 -44
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +66 -44
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +1398 -1255
  11. package/dist/vuetify.d.ts +1918 -67
  12. package/dist/vuetify.esm.js +33 -32
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +33 -32
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +209 -210
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAlert/VAlert.css +1 -1
  20. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  21. package/lib/components/VAlert/_variables.scss +1 -1
  22. package/lib/components/VAlert/index.d.ts +22 -0
  23. package/lib/components/VApp/index.d.ts +6 -0
  24. package/lib/components/VAppBar/index.d.ts +36 -0
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.ts +117 -6
  27. package/lib/components/VAvatar/index.d.ts +6 -0
  28. package/lib/components/VBadge/index.d.ts +8 -0
  29. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  30. package/lib/components/VBanner/index.d.ts +24 -0
  31. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  32. package/lib/components/VBottomNavigation/index.d.ts +6 -0
  33. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  34. package/lib/components/VBreadcrumbs/index.d.ts +28 -4
  35. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  36. package/lib/components/VBtn/index.d.ts +12 -0
  37. package/lib/components/VBtnGroup/index.d.ts +6 -0
  38. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  39. package/lib/components/VBtnToggle/index.d.ts +6 -0
  40. package/lib/components/VCard/VCard.mjs.map +1 -1
  41. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  42. package/lib/components/VCard/index.d.ts +60 -0
  43. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  44. package/lib/components/VCarousel/index.d.ts +60 -0
  45. package/lib/components/VCheckbox/index.d.ts +38 -0
  46. package/lib/components/VChip/VChip.mjs.map +1 -1
  47. package/lib/components/VChip/index.d.ts +12 -0
  48. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  49. package/lib/components/VChipGroup/index.d.ts +6 -0
  50. package/lib/components/VCode/index.d.ts +6 -0
  51. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  52. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  53. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  54. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  55. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  56. package/lib/components/VCombobox/index.d.ts +117 -6
  57. package/lib/components/VCounter/index.d.ts +24 -0
  58. package/lib/components/VDefaultsProvider/index.d.ts +6 -0
  59. package/lib/components/VDialog/index.d.ts +64 -1
  60. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  61. package/lib/components/VDivider/index.d.ts +6 -0
  62. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  63. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  64. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  65. package/lib/components/VExpansionPanel/index.d.ts +49 -12
  66. package/lib/components/VField/VField.mjs.map +1 -1
  67. package/lib/components/VField/index.d.ts +20 -6
  68. package/lib/components/VFileInput/VFileInput.mjs +1 -0
  69. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  70. package/lib/components/VFileInput/index.d.ts +43 -1
  71. package/lib/components/VFooter/index.d.ts +6 -0
  72. package/lib/components/VForm/index.d.ts +6 -0
  73. package/lib/components/VGrid/index.d.ts +24 -0
  74. package/lib/components/VHover/index.d.ts +12 -0
  75. package/lib/components/VIcon/index.d.ts +12 -0
  76. package/lib/components/VImg/index.d.ts +12 -0
  77. package/lib/components/VInput/VInput.mjs.map +1 -1
  78. package/lib/components/VInput/index.d.ts +12 -0
  79. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  80. package/lib/components/VItemGroup/index.d.ts +12 -0
  81. package/lib/components/VKbd/index.d.ts +6 -0
  82. package/lib/components/VLabel/index.d.ts +6 -0
  83. package/lib/components/VLayout/index.d.ts +12 -0
  84. package/lib/components/VLazy/index.d.ts +6 -0
  85. package/lib/components/VList/VListGroup.mjs.map +1 -1
  86. package/lib/components/VList/VListItem.mjs.map +1 -1
  87. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  88. package/lib/components/VList/index.d.ts +77 -6
  89. package/lib/components/VLocaleProvider/index.d.ts +6 -0
  90. package/lib/components/VMain/index.d.ts +6 -0
  91. package/lib/components/VMenu/index.d.ts +64 -1
  92. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  93. package/lib/components/VMessages/index.d.ts +24 -0
  94. package/lib/components/VNavigationDrawer/index.d.ts +12 -0
  95. package/lib/components/VNoSsr/index.d.ts +6 -0
  96. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  97. package/lib/components/VOverlay/index.d.ts +18 -0
  98. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  99. package/lib/components/VPagination/index.d.ts +14 -0
  100. package/lib/components/VParallax/index.d.ts +12 -0
  101. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  102. package/lib/components/VProgressCircular/index.d.ts +6 -0
  103. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  104. package/lib/components/VProgressLinear/index.d.ts +12 -0
  105. package/lib/components/VRadio/index.d.ts +16 -0
  106. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  107. package/lib/components/VRadioGroup/index.d.ts +22 -0
  108. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  109. package/lib/components/VRangeSlider/index.d.ts +16 -0
  110. package/lib/components/VRating/VRating.mjs.map +1 -1
  111. package/lib/components/VRating/index.d.ts +8 -0
  112. package/lib/components/VResponsive/index.d.ts +8 -0
  113. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  114. package/lib/components/VSelect/index.d.ts +183 -6
  115. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  116. package/lib/components/VSelectionControl/index.d.ts +14 -6
  117. package/lib/components/VSelectionControlGroup/index.d.ts +6 -0
  118. package/lib/components/VSheet/index.d.ts +6 -0
  119. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  120. package/lib/components/VSlideGroup/index.d.ts +26 -0
  121. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  122. package/lib/components/VSlider/index.d.ts +16 -0
  123. package/lib/components/VSnackbar/VSnackbar.css +0 -2
  124. package/lib/components/VSnackbar/VSnackbar.mjs +6 -8
  125. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  126. package/lib/components/VSnackbar/VSnackbar.sass +0 -2
  127. package/lib/components/VSnackbar/index.d.ts +44 -1
  128. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  129. package/lib/components/VSwitch/index.d.ts +22 -0
  130. package/lib/components/VSystemBar/index.d.ts +6 -0
  131. package/lib/components/VTable/VTable.mjs.map +1 -1
  132. package/lib/components/VTable/index.d.ts +12 -0
  133. package/lib/components/VTabs/VTab.mjs.map +1 -1
  134. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  135. package/lib/components/VTabs/index.d.ts +12 -0
  136. package/lib/components/VTextField/VTextField.mjs +1 -0
  137. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  138. package/lib/components/VTextField/index.d.ts +54 -6
  139. package/lib/components/VTextarea/VTextarea.mjs +1 -0
  140. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  141. package/lib/components/VTextarea/index.d.ts +39 -1
  142. package/lib/components/VThemeProvider/index.d.ts +6 -0
  143. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  144. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  145. package/lib/components/VTimeline/index.d.ts +16 -0
  146. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  147. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  148. package/lib/components/VToolbar/index.d.ts +30 -0
  149. package/lib/components/VTooltip/index.d.ts +46 -1
  150. package/lib/components/VValidation/index.d.ts +6 -0
  151. package/lib/components/VWindow/index.d.ts +34 -0
  152. package/lib/components/index.d.ts +1916 -65
  153. package/lib/components/transitions/createTransition.mjs +1 -1
  154. package/lib/components/transitions/createTransition.mjs.map +1 -1
  155. package/lib/components/transitions/index.d.ts +96 -0
  156. package/lib/composables/display.mjs +13 -10
  157. package/lib/composables/display.mjs.map +1 -1
  158. package/lib/composables/loader.mjs.map +1 -1
  159. package/lib/composables/theme.mjs +7 -10
  160. package/lib/composables/theme.mjs.map +1 -1
  161. package/lib/composables/variant.mjs.map +1 -1
  162. package/lib/entry-bundler.mjs +1 -1
  163. package/lib/framework.mjs +1 -1
  164. package/lib/index.d.ts +1 -1
  165. package/lib/labs/VDataTable/VDataTable.mjs +4 -2
  166. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  167. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  168. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  169. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  170. package/lib/labs/VDataTable/VDataTableRows.mjs +4 -6
  171. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  172. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  173. package/lib/labs/VDataTable/VDataTableVirtual.mjs +4 -2
  174. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  175. package/lib/labs/VDataTable/composables/options.mjs +7 -1
  176. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  177. package/lib/labs/VDataTable/index.d.ts +1503 -48
  178. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +15 -2
  179. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  180. package/lib/labs/VVirtualScroll/index.d.ts +9 -6
  181. package/lib/labs/components.d.ts +1512 -54
  182. package/lib/locale/index.mjs +1 -1
  183. package/lib/locale/index.mjs.map +1 -1
  184. package/lib/styles/elements/_global.sass +0 -4
  185. package/lib/styles/generic/_index.scss +0 -1
  186. package/lib/styles/generic/_transitions.scss +111 -9
  187. package/lib/styles/main.css +312 -167
  188. package/lib/styles/tools/_sheet.sass +3 -6
  189. package/lib/styles/utilities/_display.sass +6 -5
  190. package/lib/styles/utilities/_elevation.scss +13 -0
  191. package/lib/styles/utilities/_index.sass +3 -2
  192. package/lib/styles/utilities/_screenreaders.sass +13 -11
  193. package/lib/util/defineComponent.mjs.map +1 -1
  194. package/package.json +18 -4
  195. package/lib/styles/generic/_elevation.scss +0 -10
@@ -65,7 +65,7 @@ declare const VSelectionControl: {
65
65
  trueValue: null;
66
66
  falseValue: null;
67
67
  value: null;
68
- }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:label" | "v-slot:input">>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "inline" | "error" | "disabled" | "multiple" | "readonly" | "density" | "ripple" | "valueComparator">;
68
+ }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:label" | "v-slot:input">>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "inline" | "error" | "disabled" | "multiple" | "readonly" | "density" | "ripple" | "valueComparator">;
69
69
  $attrs: {
70
70
  [x: string]: unknown;
71
71
  };
@@ -113,12 +113,12 @@ declare const VSelectionControl: {
113
113
  trueValue: null;
114
114
  falseValue: null;
115
115
  value: null;
116
- }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:label" | "v-slot:input">>>, {
116
+ }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:label" | "v-slot:input">>>, {
117
117
  isFocused: Ref<boolean>;
118
118
  input: Ref<HTMLInputElement | undefined>;
119
119
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
120
120
  'update:modelValue': (val: any) => boolean;
121
- }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "update:modelValue" | "v-slot:label" | "v-slot:input">, string, {
121
+ }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "update:modelValue" | "v-slot:label" | "v-slot:input">, string, {
122
122
  inline: boolean;
123
123
  error: boolean;
124
124
  disabled: boolean;
@@ -181,7 +181,7 @@ declare const VSelectionControl: {
181
181
  trueValue: null;
182
182
  falseValue: null;
183
183
  value: null;
184
- }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:label" | "v-slot:input">>> & vue.ShallowUnwrapRef<{
184
+ }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:label" | "v-slot:input">>> & vue.ShallowUnwrapRef<{
185
185
  isFocused: Ref<boolean>;
186
186
  input: Ref<HTMLInputElement | undefined>;
187
187
  }> & {} & vue.ComponentCustomProperties & {};
@@ -222,12 +222,12 @@ declare const VSelectionControl: {
222
222
  trueValue: null;
223
223
  falseValue: null;
224
224
  value: null;
225
- }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:label" | "v-slot:input">>>, {
225
+ }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:label" | "v-slot:input">>>, {
226
226
  isFocused: Ref<boolean>;
227
227
  input: Ref<HTMLInputElement | undefined>;
228
228
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
229
229
  'update:modelValue': (val: any) => boolean;
230
- }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "update:modelValue" | "v-slot:label" | "v-slot:input">, string, {
230
+ }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "update:modelValue" | "v-slot:label" | "v-slot:input">, string, {
231
231
  inline: boolean;
232
232
  error: boolean;
233
233
  disabled: boolean;
@@ -249,6 +249,14 @@ declare const VSelectionControl: {
249
249
  }) => vue.VNodeChild) | undefined;
250
250
  input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
251
251
  };
252
+ $slots?: {
253
+ default?: (() => vue.VNodeChild) | undefined;
254
+ label?: ((args_0: {
255
+ label: string | undefined;
256
+ props: Record<string, unknown>;
257
+ }) => vue.VNodeChild) | undefined;
258
+ input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
259
+ } | undefined;
252
260
  'v-slots'?: {
253
261
  default?: false | (() => vue.VNodeChild) | undefined;
254
262
  label?: false | ((args_0: {
@@ -31,6 +31,9 @@ declare const VSelectionControlGroup: vue.DefineComponent<{
31
31
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
32
32
  default?: (() => vue.VNodeChild) | undefined;
33
33
  };
34
+ $slots?: {
35
+ default?: (() => vue.VNodeChild) | undefined;
36
+ } | undefined;
34
37
  'v-slots'?: {
35
38
  default?: false | (() => vue.VNodeChild) | undefined;
36
39
  } | undefined;
@@ -61,6 +64,9 @@ declare const VSelectionControlGroup: vue.DefineComponent<{
61
64
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
62
65
  default?: (() => vue.VNodeChild) | undefined;
63
66
  };
67
+ $slots?: {
68
+ default?: (() => vue.VNodeChild) | undefined;
69
+ } | undefined;
64
70
  'v-slots'?: {
65
71
  default?: false | (() => vue.VNodeChild) | undefined;
66
72
  } | undefined;
@@ -26,6 +26,9 @@ declare const VSheet: vue.DefineComponent<{
26
26
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
27
27
  default?: (() => vue.VNodeChild) | undefined;
28
28
  };
29
+ $slots?: {
30
+ default?: (() => vue.VNodeChild) | undefined;
31
+ } | undefined;
29
32
  'v-slots'?: {
30
33
  default?: false | (() => vue.VNodeChild) | undefined;
31
34
  } | undefined;
@@ -51,6 +54,9 @@ declare const VSheet: vue.DefineComponent<{
51
54
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
52
55
  default?: (() => vue.VNodeChild) | undefined;
53
56
  };
57
+ $slots?: {
58
+ default?: (() => vue.VNodeChild) | undefined;
59
+ } | undefined;
54
60
  'v-slots'?: {
55
61
  default?: false | (() => vue.VNodeChild) | undefined;
56
62
  } | undefined;
@@ -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","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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"}
@@ -64,6 +64,11 @@ declare const VSlideGroup: vue.DefineComponent<{
64
64
  prev?: ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
65
65
  next?: ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
66
66
  };
67
+ $slots?: {
68
+ default?: ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
69
+ prev?: ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
70
+ next?: ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
71
+ } | undefined;
67
72
  'v-slots'?: {
68
73
  default?: false | ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
69
74
  prev?: false | ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
@@ -101,6 +106,11 @@ declare const VSlideGroup: vue.DefineComponent<{
101
106
  prev?: ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
102
107
  next?: ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
103
108
  };
109
+ $slots?: {
110
+ default?: ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
111
+ prev?: ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
112
+ next?: ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
113
+ } | undefined;
104
114
  'v-slots'?: {
105
115
  default?: false | ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
106
116
  prev?: false | ((args_0: SlideGroupSlot) => vue.VNodeChild) | undefined;
@@ -145,6 +155,14 @@ declare const VSlideGroupItem: vue.DefineComponent<{
145
155
  selectedClass: UnwrapRef<GroupItemProvide['selectedClass']>;
146
156
  }) => vue.VNodeChild) | undefined;
147
157
  };
158
+ $slots?: {
159
+ default?: ((args_0: {
160
+ isSelected: UnwrapRef<GroupItemProvide['isSelected']>;
161
+ select: GroupItemProvide['select'];
162
+ toggle: GroupItemProvide['toggle'];
163
+ selectedClass: UnwrapRef<GroupItemProvide['selectedClass']>;
164
+ }) => vue.VNodeChild) | undefined;
165
+ } | undefined;
148
166
  'v-slots'?: {
149
167
  default?: false | ((args_0: {
150
168
  isSelected: UnwrapRef<GroupItemProvide['isSelected']>;
@@ -185,6 +203,14 @@ declare const VSlideGroupItem: vue.DefineComponent<{
185
203
  selectedClass: UnwrapRef<GroupItemProvide['selectedClass']>;
186
204
  }) => vue.VNodeChild) | undefined;
187
205
  };
206
+ $slots?: {
207
+ default?: ((args_0: {
208
+ isSelected: UnwrapRef<GroupItemProvide['isSelected']>;
209
+ select: GroupItemProvide['select'];
210
+ toggle: GroupItemProvide['toggle'];
211
+ selectedClass: UnwrapRef<GroupItemProvide['selectedClass']>;
212
+ }) => vue.VNodeChild) | undefined;
213
+ } | undefined;
188
214
  'v-slots'?: {
189
215
  default?: false | ((args_0: {
190
216
  isSelected: UnwrapRef<GroupItemProvide['isSelected']>;
@@ -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 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","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 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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"}
@@ -74,6 +74,14 @@ declare const VSlider: vue.DefineComponent<{
74
74
  'tick-label'?: (() => vue.VNodeChild) | undefined;
75
75
  'thumb-label'?: (() => vue.VNodeChild) | undefined;
76
76
  };
77
+ $slots?: {
78
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
79
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
80
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
81
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
82
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
83
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
84
+ } | undefined;
77
85
  'v-slots'?: {
78
86
  default?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
79
87
  prepend?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
@@ -140,6 +148,14 @@ declare const VSlider: vue.DefineComponent<{
140
148
  'tick-label'?: (() => vue.VNodeChild) | undefined;
141
149
  'thumb-label'?: (() => vue.VNodeChild) | undefined;
142
150
  };
151
+ $slots?: {
152
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
153
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
154
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
155
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
156
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
157
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
158
+ } | undefined;
143
159
  'v-slots'?: {
144
160
  default?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
145
161
  prepend?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
@@ -18,8 +18,6 @@
18
18
  min-height: 48px;
19
19
  min-width: 344px;
20
20
  padding: 0;
21
- pointer-events: auto;
22
- position: relative;
23
21
  border-radius: 4px;
24
22
  }
25
23
  .v-snackbar--variant-plain, .v-snackbar--variant-outlined, .v-snackbar--variant-text, .v-snackbar--variant-tonal {
@@ -95,19 +95,17 @@ export const VSnackbar = genericComponent()({
95
95
  "modelValue": isActive.value,
96
96
  "onUpdate:modelValue": $event => isActive.value = $event,
97
97
  "contentProps": mergeProps({
98
- style: locationStyles.value
98
+ class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
99
+ style: [locationStyles.value, colorStyles.value],
100
+ onPointerenter,
101
+ onPointerleave: startTimeout
99
102
  }, overlayProps.contentProps),
100
103
  "persistent": true,
101
104
  "noClickAnimation": true,
102
105
  "scrim": false,
103
106
  "scrollStrategy": "none"
104
107
  }, scopeId), {
105
- default: () => [_createVNode("div", {
106
- "class": ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
107
- "style": [colorStyles.value],
108
- "onPointerenter": onPointerenter,
109
- "onPointerleave": startTimeout
110
- }, [genOverlays(false, 'v-snackbar'), slots.default && _createVNode("div", {
108
+ default: () => [genOverlays(false, 'v-snackbar'), slots.default && _createVNode("div", {
111
109
  "class": "v-snackbar__content",
112
110
  "role": "status",
113
111
  "aria-live": "polite"
@@ -122,7 +120,7 @@ export const VSnackbar = genericComponent()({
122
120
  default: () => [_createVNode("div", {
123
121
  "class": "v-snackbar__actions"
124
122
  }, [slots.actions()])]
125
- })])],
123
+ })],
126
124
  activator: slots.activator
127
125
  });
128
126
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","genOverlays","makeVariantProps","useVariant","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeThemeProps","provideTheme","useProxiedModel","useScopeId","forwardRefs","mergeProps","onMounted","ref","watch","genericComponent","omit","useRender","filterVOverlayProps","makeVOverlayProps","VSnackbar","name","props","multiLine","Boolean","timeout","type","Number","String","default","vertical","location","transition","emits","v","setup","slots","isActive","locationStyles","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","overlay","startTimeout","value","activeTimeout","window","clearTimeout","setTimeout","onPointerenter","overlayProps","style","contentProps","actions","VBtn","variant","ripple","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { mergeProps, onMounted, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender } from '@/util'\nimport { filterVOverlayProps, makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\ntype VSnackbarSlots = {\n activator: [{ isActive: boolean, props: Record<string, any> }]\n default: []\n actions: []\n}\n\nexport const VSnackbar = genericComponent<VSnackbarSlots>()({\n name: 'VSnackbar',\n\n props: {\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n const overlay = ref<VOverlay>()\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 const [overlayProps] = filterVOverlayProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n style: locationStyles.value,\n }, overlayProps.contentProps) }\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n <div\n class={[\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[colorStyles.value]}\n onPointerenter={ onPointerenter }\n onPointerleave={ startTimeout }\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class=\"v-snackbar__content\"\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 return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","genOverlays","makeVariantProps","useVariant","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeThemeProps","provideTheme","useProxiedModel","useScopeId","forwardRefs","mergeProps","onMounted","ref","watch","genericComponent","omit","useRender","filterVOverlayProps","makeVOverlayProps","VSnackbar","name","props","multiLine","Boolean","timeout","type","Number","String","default","vertical","location","transition","emits","v","setup","slots","isActive","locationStyles","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","overlay","startTimeout","value","activeTimeout","window","clearTimeout","setTimeout","onPointerenter","overlayProps","class","style","onPointerleave","contentProps","actions","VBtn","variant","ripple","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { mergeProps, onMounted, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender } from '@/util'\nimport { filterVOverlayProps, makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\ntype VSnackbarSlots = {\n activator: [{ isActive: boolean, props: Record<string, any> }]\n default: []\n actions: []\n}\n\nexport const VSnackbar = genericComponent<VSnackbarSlots>()({\n name: 'VSnackbar',\n\n props: {\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n const overlay = ref<VOverlay>()\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 const [overlayProps] = filterVOverlayProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n class: [\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ],\n style: [\n locationStyles.value,\n colorStyles.value,\n ],\n onPointerenter,\n onPointerleave: startTimeout,\n }, overlayProps.contentProps)}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class=\"v-snackbar__content\"\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 </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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"}
@@ -22,8 +22,6 @@
22
22
  min-height: $snackbar-wrapper-min-height
23
23
  min-width: $snackbar-wrapper-min-width
24
24
  padding: $snackbar-wrapper-padding
25
- pointer-events: auto
26
- position: relative
27
25
 
28
26
  @include tools.rounded($snackbar-border-radius)
29
27
 
@@ -132,6 +132,14 @@ declare const VSnackbar: vue.DefineComponent<{
132
132
  default?: (() => vue.VNodeChild) | undefined;
133
133
  actions?: (() => vue.VNodeChild) | undefined;
134
134
  };
135
+ $slots?: {
136
+ activator?: ((args_0: {
137
+ isActive: boolean;
138
+ props: Record<string, any>;
139
+ }) => vue.VNodeChild) | undefined;
140
+ default?: (() => vue.VNodeChild) | undefined;
141
+ actions?: (() => vue.VNodeChild) | undefined;
142
+ } | undefined;
135
143
  'v-slots'?: {
136
144
  activator?: false | ((args_0: {
137
145
  isActive: boolean;
@@ -227,6 +235,15 @@ declare const VSnackbar: vue.DefineComponent<{
227
235
  props: Record<string, any>;
228
236
  }) => vue.VNodeChild) | undefined;
229
237
  };
238
+ $slots?: {
239
+ default?: ((args_0: {
240
+ isActive: vue.Ref<boolean>;
241
+ }) => vue.VNodeChild) | undefined;
242
+ activator?: ((args_0: {
243
+ isActive: boolean;
244
+ props: Record<string, any>;
245
+ }) => vue.VNodeChild) | undefined;
246
+ } | undefined;
230
247
  'v-slots'?: {
231
248
  default?: false | ((args_0: {
232
249
  isActive: vue.Ref<boolean>;
@@ -313,6 +330,15 @@ declare const VSnackbar: vue.DefineComponent<{
313
330
  props: Record<string, any>;
314
331
  }) => vue.VNodeChild) | undefined;
315
332
  };
333
+ $slots?: {
334
+ default?: ((args_0: {
335
+ isActive: vue.Ref<boolean>;
336
+ }) => vue.VNodeChild) | undefined;
337
+ activator?: ((args_0: {
338
+ isActive: boolean;
339
+ props: Record<string, any>;
340
+ }) => vue.VNodeChild) | undefined;
341
+ } | undefined;
316
342
  'v-slots'?: {
317
343
  default?: false | ((args_0: {
318
344
  isActive: vue.Ref<boolean>;
@@ -442,6 +468,15 @@ declare const VSnackbar: vue.DefineComponent<{
442
468
  props: Record<string, any>;
443
469
  }) => vue.VNodeChild) | undefined;
444
470
  };
471
+ $slots?: {
472
+ default?: ((args_0: {
473
+ isActive: vue.Ref<boolean>;
474
+ }) => vue.VNodeChild) | undefined;
475
+ activator?: ((args_0: {
476
+ isActive: boolean;
477
+ props: Record<string, any>;
478
+ }) => vue.VNodeChild) | undefined;
479
+ } | undefined;
445
480
  'v-slots'?: {
446
481
  default?: false | ((args_0: {
447
482
  isActive: vue.Ref<boolean>;
@@ -470,7 +505,7 @@ declare const VSnackbar: vue.DefineComponent<{
470
505
  globalTop: Readonly<vue.Ref<boolean>>;
471
506
  localTop: vue.ComputedRef<boolean>;
472
507
  updateLocation: vue.Ref<((e: Event) => void) | undefined>;
473
- }> & {} & vue.ComponentCustomProperties & {}, "offset" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "onAfterLeave" | "$children" | "theme" | "v-slot:default" | "v-slots" | "contentClass" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
508
+ }> & {} & vue.ComponentCustomProperties & {}, "offset" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "onAfterLeave" | "$children" | "theme" | "v-slot:default" | "$slots" | "v-slots" | "contentClass" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
474
509
  'update:modelValue': (v: boolean) => boolean;
475
510
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
476
511
  absolute: boolean;
@@ -524,6 +559,14 @@ declare const VSnackbar: vue.DefineComponent<{
524
559
  default?: (() => vue.VNodeChild) | undefined;
525
560
  actions?: (() => vue.VNodeChild) | undefined;
526
561
  };
562
+ $slots?: {
563
+ activator?: ((args_0: {
564
+ isActive: boolean;
565
+ props: Record<string, any>;
566
+ }) => vue.VNodeChild) | undefined;
567
+ default?: (() => vue.VNodeChild) | undefined;
568
+ actions?: (() => vue.VNodeChild) | undefined;
569
+ } | undefined;
527
570
  'v-slots'?: {
528
571
  activator?: false | ((args_0: {
529
572
  isActive: boolean;