@vuetify/nightly 3.6.3-master.2024-05-07 → 3.6.4-master.2024-05-08

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 (85) hide show
  1. package/CHANGELOG.md +2 -17
  2. package/dist/json/attributes.json +30 -30
  3. package/dist/json/importMap-labs.json +14 -14
  4. package/dist/json/importMap.json +110 -110
  5. package/dist/json/web-types.json +63 -63
  6. package/dist/vuetify-labs.css +2972 -2948
  7. package/dist/vuetify-labs.d.ts +995 -966
  8. package/dist/vuetify-labs.esm.js +88 -61
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +87 -60
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +1224 -1204
  13. package/dist/vuetify.d.ts +964 -935
  14. package/dist/vuetify.esm.js +88 -61
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +87 -60
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +980 -976
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/index.d.mts +169 -140
  22. package/lib/components/VBottomSheet/index.d.mts +33 -27
  23. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
  24. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  25. package/lib/components/VCombobox/index.d.mts +169 -140
  26. package/lib/components/VDataIterator/index.d.mts +1 -1
  27. package/lib/components/VDataTable/VDataTable.css +1 -1
  28. package/lib/components/VDataTable/VDataTable.sass +2 -1
  29. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  30. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  31. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  32. package/lib/components/VDataTable/composables/select.mjs +2 -1
  33. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  34. package/lib/components/VDataTable/index.d.mts +10 -5
  35. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
  36. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  37. package/lib/components/VDialog/index.d.mts +99 -93
  38. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  39. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  40. package/lib/components/VList/VList.mjs.map +1 -1
  41. package/lib/components/VList/index.d.mts +70 -46
  42. package/lib/components/VMenu/index.d.mts +99 -93
  43. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  44. package/lib/components/VOverlay/index.d.mts +33 -27
  45. package/lib/components/VOverlay/useActivator.mjs +5 -5
  46. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  47. package/lib/components/VSelect/index.d.mts +169 -140
  48. package/lib/components/VSheet/VSheet.css +1 -1
  49. package/lib/components/VSheet/_variables.scss +1 -1
  50. package/lib/components/VSlideGroup/VSlideGroup.mjs +25 -25
  51. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  52. package/lib/components/VSlider/VSliderThumb.css +5 -0
  53. package/lib/components/VSlider/VSliderThumb.sass +3 -0
  54. package/lib/components/VSlider/VSliderTrack.css +15 -0
  55. package/lib/components/VSlider/VSliderTrack.sass +9 -0
  56. package/lib/components/VSnackbar/index.d.mts +85 -79
  57. package/lib/components/VSpeedDial/index.d.mts +33 -27
  58. package/lib/components/VStepper/VStepperWindow.mjs +2 -1
  59. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  60. package/lib/components/VStepper/VStepperWindowItem.mjs +2 -1
  61. package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
  62. package/lib/components/VTabs/VTabsWindow.mjs +2 -1
  63. package/lib/components/VTabs/VTabsWindow.mjs.map +1 -1
  64. package/lib/components/VTooltip/index.d.mts +99 -93
  65. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  66. package/lib/components/index.d.mts +926 -897
  67. package/lib/composables/nested/activeStrategies.mjs +16 -10
  68. package/lib/composables/nested/activeStrategies.mjs.map +1 -1
  69. package/lib/composables/nested/nested.mjs +7 -5
  70. package/lib/composables/nested/nested.mjs.map +1 -1
  71. package/lib/composables/resizeObserver.mjs +5 -5
  72. package/lib/composables/resizeObserver.mjs.map +1 -1
  73. package/lib/entry-bundler.mjs +1 -1
  74. package/lib/framework.mjs +1 -1
  75. package/lib/index.d.mts +38 -38
  76. package/lib/labs/VCalendar/VCalendar.css +5 -1
  77. package/lib/labs/VCalendar/VCalendar.sass +3 -2
  78. package/lib/labs/VCalendar/_variables.scss +8 -0
  79. package/lib/labs/VSnackbarQueue/index.d.mts +97 -91
  80. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  81. package/lib/labs/VTreeview/index.d.mts +82 -58
  82. package/lib/labs/components.d.mts +178 -149
  83. package/lib/util/helpers.mjs +16 -0
  84. package/lib/util/helpers.mjs.map +1 -1
  85. package/package.json +1 -1
@@ -6,7 +6,7 @@
6
6
  box-shadow: 0px 0px 0px 0px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 0px 0px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 0px 0px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
7
7
  border-radius: 0;
8
8
  background: rgb(var(--v-theme-surface));
9
- color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity));
9
+ color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
10
10
  }
11
11
  .v-sheet--border {
12
12
  border-width: thin;
@@ -7,7 +7,7 @@ $sheet-border-radius: 0 !default;
7
7
  $sheet-border-style: settings.$border-style-root !default;
8
8
  $sheet-border-thin-width: thin !default;
9
9
  $sheet-border-width: 0 !default;
10
- $sheet-color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)) !default;
10
+ $sheet-color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)) !default;
11
11
  $sheet-elevation: 0 !default;
12
12
  $sheet-positions: absolute fixed relative sticky !default;
13
13
  $sheet-rounded-border-radius: settings.$border-radius-root !default;
@@ -80,7 +80,7 @@ export const VSlideGroup = genericComponent()({
80
80
  const goTo = useGoTo();
81
81
  const goToOptions = computed(() => {
82
82
  return {
83
- container: containerRef.value,
83
+ container: containerRef.el,
84
84
  duration: 200,
85
85
  easing: 'easeOutQuart'
86
86
  };
@@ -104,9 +104,9 @@ export const VSlideGroup = genericComponent()({
104
104
  contentSize.value = contentRect.value[sizeProperty];
105
105
  isOverflowing.value = containerSize.value + 1 < contentSize.value;
106
106
  }
107
- if (firstSelectedIndex.value >= 0 && contentRef.value) {
107
+ if (firstSelectedIndex.value >= 0 && contentRef.el) {
108
108
  // TODO: Is this too naive? Should we store element references in group composable?
109
- const selectedElement = contentRef.value.children[lastSelectedIndex.value];
109
+ const selectedElement = contentRef.el.children[lastSelectedIndex.value];
110
110
  scrollToChildren(selectedElement, props.centerActive);
111
111
  }
112
112
  });
@@ -117,13 +117,13 @@ export const VSlideGroup = genericComponent()({
117
117
  let target = 0;
118
118
  if (center) {
119
119
  target = calculateCenteredTarget({
120
- containerElement: containerRef.value,
120
+ containerElement: containerRef.el,
121
121
  isHorizontal: isHorizontal.value,
122
122
  selectedElement: children
123
123
  });
124
124
  } else {
125
125
  target = calculateUpdatedTarget({
126
- containerElement: containerRef.value,
126
+ containerElement: containerRef.el,
127
127
  isHorizontal: isHorizontal.value,
128
128
  isRtl: isRtl.value,
129
129
  selectedElement: children
@@ -132,18 +132,18 @@ export const VSlideGroup = genericComponent()({
132
132
  scrollToPosition(target);
133
133
  }
134
134
  function scrollToPosition(newPosition) {
135
- if (!IN_BROWSER || !containerRef.value) return;
136
- const offsetSize = getOffsetSize(isHorizontal.value, containerRef.value);
137
- const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.value);
138
- const scrollSize = getScrollSize(isHorizontal.value, containerRef.value);
135
+ if (!IN_BROWSER || !containerRef.el) return;
136
+ const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el);
137
+ const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el);
138
+ const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);
139
139
  if (scrollSize <= offsetSize ||
140
140
  // Prevent scrolling by only a couple of pixels, which doesn't look smooth
141
141
  Math.abs(newPosition - scrollPosition) < 16) return;
142
- if (isHorizontal.value && isRtl.value && containerRef.value) {
142
+ if (isHorizontal.value && isRtl.value && containerRef.el) {
143
143
  const {
144
144
  scrollWidth,
145
145
  offsetWidth: containerWidth
146
- } = containerRef.value;
146
+ } = containerRef.el;
147
147
  newPosition = scrollWidth - containerWidth - newPosition;
148
148
  }
149
149
  if (isHorizontal.value) {
@@ -161,12 +161,12 @@ export const VSlideGroup = genericComponent()({
161
161
  }
162
162
  function onFocusin(e) {
163
163
  isFocused.value = true;
164
- if (!isOverflowing.value || !contentRef.value) return;
164
+ if (!isOverflowing.value || !contentRef.el) return;
165
165
 
166
166
  // Focused element is likely to be the root of an item, so a
167
167
  // breadth-first search will probably find it in the first iteration
168
168
  for (const el of e.composedPath()) {
169
- for (const item of contentRef.value.children) {
169
+ for (const item of contentRef.el.children) {
170
170
  if (item === el) {
171
171
  scrollToChildren(item);
172
172
  return;
@@ -181,14 +181,14 @@ export const VSlideGroup = genericComponent()({
181
181
  // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren
182
182
  let ignoreFocusEvent = false;
183
183
  function onFocus(e) {
184
- if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget))) focus();
184
+ if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget))) focus();
185
185
  ignoreFocusEvent = false;
186
186
  }
187
187
  function onFocusAffixes() {
188
188
  ignoreFocusEvent = true;
189
189
  }
190
190
  function onKeydown(e) {
191
- if (!contentRef.value) return;
191
+ if (!contentRef.el) return;
192
192
  function toFocus(location) {
193
193
  e.preventDefault();
194
194
  focus(location);
@@ -213,21 +213,21 @@ export const VSlideGroup = genericComponent()({
213
213
  }
214
214
  }
215
215
  function focus(location) {
216
- if (!contentRef.value) return;
216
+ if (!contentRef.el) return;
217
217
  let el;
218
218
  if (!location) {
219
- const focusable = focusableChildren(contentRef.value);
219
+ const focusable = focusableChildren(contentRef.el);
220
220
  el = focusable[0];
221
221
  } else if (location === 'next') {
222
- el = contentRef.value.querySelector(':focus')?.nextElementSibling;
222
+ el = contentRef.el.querySelector(':focus')?.nextElementSibling;
223
223
  if (!el) return focus('first');
224
224
  } else if (location === 'prev') {
225
- el = contentRef.value.querySelector(':focus')?.previousElementSibling;
225
+ el = contentRef.el.querySelector(':focus')?.previousElementSibling;
226
226
  if (!el) return focus('last');
227
227
  } else if (location === 'first') {
228
- el = contentRef.value.firstElementChild;
228
+ el = contentRef.el.firstElementChild;
229
229
  } else if (location === 'last') {
230
- el = contentRef.value.lastElementChild;
230
+ el = contentRef.el.lastElementChild;
231
231
  }
232
232
  if (el) {
233
233
  el.focus({
@@ -241,11 +241,11 @@ export const VSlideGroup = genericComponent()({
241
241
  let newPosition = scrollOffset.value + offsetStep;
242
242
 
243
243
  // TODO: improve it
244
- if (isHorizontal.value && isRtl.value && containerRef.value) {
244
+ if (isHorizontal.value && isRtl.value && containerRef.el) {
245
245
  const {
246
246
  scrollWidth,
247
247
  offsetWidth: containerWidth
248
- } = containerRef.value;
248
+ } = containerRef.el;
249
249
  newPosition += scrollWidth - containerWidth;
250
250
  }
251
251
  scrollToPosition(newPosition);
@@ -288,8 +288,8 @@ export const VSlideGroup = genericComponent()({
288
288
  });
289
289
  const hasNext = computed(() => {
290
290
  if (!containerRef.value) return false;
291
- const scrollSize = getScrollSize(isHorizontal.value, containerRef.value);
292
- const clientSize = getClientSize(isHorizontal.value, containerRef.value);
291
+ const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);
292
+ const clientSize = getClientSize(isHorizontal.value, containerRef.el);
293
293
  const scrollSizeMax = scrollSize - clientSize;
294
294
 
295
295
  // 1 pixel in reserve, may be lost after rounding
@@ -1 +1 @@
1
- {"version":3,"file":"VSlideGroup.mjs","names":["VFadeTransition","VIcon","makeComponentProps","makeDisplayProps","useDisplay","useGoTo","makeGroupProps","useGroup","IconValue","useRtl","useResizeObserver","makeTagProps","computed","shallowRef","watch","calculateCenteredTarget","calculateUpdatedTarget","getClientSize","getOffsetSize","getScrollPosition","getScrollSize","focusableChildren","genericComponent","IN_BROWSER","propsFactory","useRender","VSlideGroupSymbol","Symbol","for","makeVSlideGroupProps","centerActive","Boolean","direction","type","String","default","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","selectedClass","VSlideGroup","name","props","emits","value","setup","_ref","slots","isRtl","displayClasses","mobile","group","isOverflowing","scrollOffset","containerSize","contentSize","isHorizontal","resizeRef","containerRef","contentRect","containerRect","contentRef","goTo","goToOptions","container","duration","easing","firstSelectedIndex","selected","length","items","findIndex","item","id","lastSelectedIndex","frame","cancelAnimationFrame","requestAnimationFrame","sizeProperty","selectedElement","children","scrollToChildren","isFocused","center","target","containerElement","scrollToPosition","newPosition","offsetSize","scrollPosition","scrollSize","Math","abs","scrollWidth","offsetWidth","containerWidth","horizontal","onScroll","e","scrollTop","scrollLeft","onFocusin","el","composedPath","onFocusout","ignoreFocusEvent","onFocus","relatedTarget","contains","focus","onFocusAffixes","onKeydown","toFocus","location","preventDefault","key","focusable","querySelector","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","preventScroll","scrollTo","offsetStep","slotProps","next","prev","select","isSelected","hasAffixes","hasPrev","hasNext","clientSize","scrollSizeMax","_createVNode","tag","class","style","onClick"],"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useGoTo } from '@/composables/goto'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport {\n calculateCenteredTarget,\n calculateUpdatedTarget,\n getClientSize,\n getOffsetSize,\n getScrollPosition,\n getScrollSize,\n} from './helpers'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\ninterface SlideGroupSlot {\n next: GroupProvide['next']\n prev: GroupProvide['prev']\n select: GroupProvide['select']\n isSelected: GroupProvide['isSelected']\n}\n\ntype VSlideGroupSlots = {\n default: SlideGroupSlot\n prev: SlideGroupSlot\n next: SlideGroupSlot\n}\n\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeComponentProps(),\n ...makeDisplayProps(),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n}, 'VSlideGroup')\n\nexport const VSlideGroup = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSlideGroupSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VSlideGroup',\n\n props: makeVSlideGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { displayClasses, mobile } = useDisplay(props)\n const group = useGroup(props, props.symbol)\n const isOverflowing = shallowRef(false)\n const scrollOffset = shallowRef(0)\n const containerSize = shallowRef(0)\n const contentSize = shallowRef(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 goTo = useGoTo()\n const goToOptions = computed<Partial<GoToOptions>>(() => {\n return {\n container: containerRef.value,\n duration: 200,\n easing: 'easeOutQuart',\n }\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 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 scrollToChildren(selectedElement, props.centerActive)\n }\n })\n })\n }\n\n const isFocused = shallowRef(false)\n\n function scrollToChildren (children: HTMLElement, center?: boolean) {\n let target = 0\n\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.value!,\n isHorizontal: isHorizontal.value,\n selectedElement: children,\n })\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.value!,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children,\n })\n }\n\n scrollToPosition(target)\n }\n\n function scrollToPosition (newPosition: number) {\n if (!IN_BROWSER || !containerRef.value) return\n\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.value)\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.value)\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.value)\n\n if (\n scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16\n ) return\n\n if (isHorizontal.value && isRtl.value && containerRef.value) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.value!\n\n newPosition = (scrollWidth - containerWidth) - newPosition\n }\n\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value)\n } else {\n goTo(newPosition, goToOptions.value)\n }\n }\n\n function onScroll (e: Event) {\n const { scrollTop, scrollLeft } = e.target as HTMLElement\n\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop\n }\n\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 scrollToChildren(item as HTMLElement)\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false\n function onFocus (e: FocusEvent) {\n if (\n !ignoreFocusEvent &&\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n\n ignoreFocusEvent = false\n }\n\n function onFocusAffixes () {\n ignoreFocusEvent = true\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.value) return\n\n function toFocus (location: Parameters<typeof focus>[0]) {\n e.preventDefault()\n focus(location)\n }\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next')\n } else if (e.key === 'ArrowUp') {\n toFocus('prev')\n }\n }\n\n if (e.key === 'Home') {\n toFocus('first')\n } else if (e.key === 'End') {\n toFocus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.value) return\n\n let el: HTMLElement | undefined\n\n if (!location) {\n const focusable = focusableChildren(contentRef.value)\n el = focusable[0]\n } else if (location === 'next') {\n el = contentRef.value.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n\n if (!el) return focus('first')\n } else if (location === 'prev') {\n el = contentRef.value.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n\n if (!el) return focus('last')\n } else if (location === 'first') {\n el = (contentRef.value.firstElementChild as HTMLElement)\n } else if (location === 'last') {\n el = (contentRef.value.lastElementChild as HTMLElement)\n }\n\n if (el) {\n el.focus({ preventScroll: true })\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1\n\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value\n\n let newPosition = scrollOffset.value + offsetStep\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.value) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.value!\n\n newPosition += scrollWidth - containerWidth\n }\n\n scrollToPosition(newPosition)\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 // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1\n })\n\n const hasNext = computed(() => {\n if (!containerRef.value) return false\n\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.value)\n const clientSize = getClientSize(isHorizontal.value, containerRef.value)\n\n const scrollSizeMax = scrollSize - clientSize\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1\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 displayClasses.value,\n props.class,\n ]}\n style={ props.style }\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 onMousedown={ onFocusAffixes }\n onClick={ () => hasPrev.value && 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 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 onMousedown={ onFocusAffixes }\n onClick={ () => hasNext.value && 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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","ignoreList":[]}
1
+ {"version":3,"file":"VSlideGroup.mjs","names":["VFadeTransition","VIcon","makeComponentProps","makeDisplayProps","useDisplay","useGoTo","makeGroupProps","useGroup","IconValue","useRtl","useResizeObserver","makeTagProps","computed","shallowRef","watch","calculateCenteredTarget","calculateUpdatedTarget","getClientSize","getOffsetSize","getScrollPosition","getScrollSize","focusableChildren","genericComponent","IN_BROWSER","propsFactory","useRender","VSlideGroupSymbol","Symbol","for","makeVSlideGroupProps","centerActive","Boolean","direction","type","String","default","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","selectedClass","VSlideGroup","name","props","emits","value","setup","_ref","slots","isRtl","displayClasses","mobile","group","isOverflowing","scrollOffset","containerSize","contentSize","isHorizontal","resizeRef","containerRef","contentRect","containerRect","contentRef","goTo","goToOptions","container","el","duration","easing","firstSelectedIndex","selected","length","items","findIndex","item","id","lastSelectedIndex","frame","cancelAnimationFrame","requestAnimationFrame","sizeProperty","selectedElement","children","scrollToChildren","isFocused","center","target","containerElement","scrollToPosition","newPosition","offsetSize","scrollPosition","scrollSize","Math","abs","scrollWidth","offsetWidth","containerWidth","horizontal","onScroll","e","scrollTop","scrollLeft","onFocusin","composedPath","onFocusout","ignoreFocusEvent","onFocus","relatedTarget","contains","focus","onFocusAffixes","onKeydown","toFocus","location","preventDefault","key","focusable","querySelector","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","preventScroll","scrollTo","offsetStep","slotProps","next","prev","select","isSelected","hasAffixes","hasPrev","hasNext","clientSize","scrollSizeMax","_createVNode","tag","class","style","onClick"],"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useGoTo } from '@/composables/goto'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport {\n calculateCenteredTarget,\n calculateUpdatedTarget,\n getClientSize,\n getOffsetSize,\n getScrollPosition,\n getScrollSize,\n} from './helpers'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\ninterface SlideGroupSlot {\n next: GroupProvide['next']\n prev: GroupProvide['prev']\n select: GroupProvide['select']\n isSelected: GroupProvide['isSelected']\n}\n\ntype VSlideGroupSlots = {\n default: SlideGroupSlot\n prev: SlideGroupSlot\n next: SlideGroupSlot\n}\n\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeComponentProps(),\n ...makeDisplayProps(),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n}, 'VSlideGroup')\n\nexport const VSlideGroup = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSlideGroupSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VSlideGroup',\n\n props: makeVSlideGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { displayClasses, mobile } = useDisplay(props)\n const group = useGroup(props, props.symbol)\n const isOverflowing = shallowRef(false)\n const scrollOffset = shallowRef(0)\n const containerSize = shallowRef(0)\n const contentSize = shallowRef(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 goTo = useGoTo()\n const goToOptions = computed<Partial<GoToOptions>>(() => {\n return {\n container: containerRef.el,\n duration: 200,\n easing: 'easeOutQuart',\n }\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 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.el) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.el.children[lastSelectedIndex.value] as HTMLElement\n\n scrollToChildren(selectedElement, props.centerActive)\n }\n })\n })\n }\n\n const isFocused = shallowRef(false)\n\n function scrollToChildren (children: HTMLElement, center?: boolean) {\n let target = 0\n\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n selectedElement: children,\n })\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children,\n })\n }\n\n scrollToPosition(target)\n }\n\n function scrollToPosition (newPosition: number) {\n if (!IN_BROWSER || !containerRef.el) return\n\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el)\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el)\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n\n if (\n scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16\n ) return\n\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition = (scrollWidth - containerWidth) - newPosition\n }\n\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value)\n } else {\n goTo(newPosition, goToOptions.value)\n }\n }\n\n function onScroll (e: Event) {\n const { scrollTop, scrollLeft } = e.target as HTMLElement\n\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.el) 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.el.children) {\n if (item === el) {\n scrollToChildren(item as HTMLElement)\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false\n function onFocus (e: FocusEvent) {\n if (\n !ignoreFocusEvent &&\n !isFocused.value &&\n !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget as Node))\n ) focus()\n\n ignoreFocusEvent = false\n }\n\n function onFocusAffixes () {\n ignoreFocusEvent = true\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.el) return\n\n function toFocus (location: Parameters<typeof focus>[0]) {\n e.preventDefault()\n focus(location)\n }\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next')\n } else if (e.key === 'ArrowUp') {\n toFocus('prev')\n }\n }\n\n if (e.key === 'Home') {\n toFocus('first')\n } else if (e.key === 'End') {\n toFocus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.el) return\n\n let el: HTMLElement | undefined\n\n if (!location) {\n const focusable = focusableChildren(contentRef.el)\n el = focusable[0]\n } else if (location === 'next') {\n el = contentRef.el.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n\n if (!el) return focus('first')\n } else if (location === 'prev') {\n el = contentRef.el.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n\n if (!el) return focus('last')\n } else if (location === 'first') {\n el = (contentRef.el.firstElementChild as HTMLElement)\n } else if (location === 'last') {\n el = (contentRef.el.lastElementChild as HTMLElement)\n }\n\n if (el) {\n el.focus({ preventScroll: true })\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1\n\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value\n\n let newPosition = scrollOffset.value + offsetStep\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition += scrollWidth - containerWidth\n }\n\n scrollToPosition(newPosition)\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 // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1\n })\n\n const hasNext = computed(() => {\n if (!containerRef.value) return false\n\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n const clientSize = getClientSize(isHorizontal.value, containerRef.el)\n\n const scrollSizeMax = scrollSize - clientSize\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1\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 displayClasses.value,\n props.class,\n ]}\n style={ props.style }\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 onMousedown={ onFocusAffixes }\n onClick={ () => hasPrev.value && 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 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 onMousedown={ onFocusAffixes }\n onClick={ () => hasNext.value && 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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","ignoreList":[]}
@@ -28,6 +28,11 @@
28
28
  user-select: none;
29
29
  background-color: currentColor;
30
30
  }
31
+ @media (forced-colors: active) {
32
+ .v-slider-thumb__surface {
33
+ background-color: highlight;
34
+ }
35
+ }
31
36
  .v-slider-thumb__surface::before {
32
37
  transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
33
38
  content: "";
@@ -35,6 +35,9 @@
35
35
  user-select: none
36
36
  background-color: currentColor
37
37
 
38
+ @media (forced-colors: active)
39
+ background-color: highlight
40
+
38
41
  &::before
39
42
  transition: 0.3s settings.$standard-easing
40
43
  content: ''
@@ -1,10 +1,20 @@
1
1
  .v-slider-track__background {
2
2
  background-color: rgb(var(--v-theme-surface-variant));
3
3
  }
4
+ @media (forced-colors: active) {
5
+ .v-slider-track__background {
6
+ background-color: highlight;
7
+ }
8
+ }
4
9
 
5
10
  .v-slider-track__fill {
6
11
  background-color: rgb(var(--v-theme-surface-variant));
7
12
  }
13
+ @media (forced-colors: active) {
14
+ .v-slider-track__fill {
15
+ background-color: highlight;
16
+ }
17
+ }
8
18
 
9
19
  .v-slider-track__tick {
10
20
  background-color: rgb(var(--v-theme-surface-variant));
@@ -16,6 +26,11 @@
16
26
  .v-slider-track {
17
27
  border-radius: 6px;
18
28
  }
29
+ @media (forced-colors: active) {
30
+ .v-slider-track {
31
+ border: thin solid buttontext;
32
+ }
33
+ }
19
34
 
20
35
  .v-slider-track__background, .v-slider-track__fill {
21
36
  position: absolute;
@@ -9,9 +9,15 @@
9
9
  .v-slider-track__background
10
10
  background-color: rgb(var(--v-theme-surface-variant))
11
11
 
12
+ @media (forced-colors: active)
13
+ background-color: highlight
14
+
12
15
  .v-slider-track__fill
13
16
  background-color: rgb(var(--v-theme-surface-variant))
14
17
 
18
+ @media (forced-colors: active)
19
+ background-color: highlight
20
+
15
21
  .v-slider-track__tick
16
22
  background-color: rgb(var(--v-theme-surface-variant))
17
23
 
@@ -22,6 +28,9 @@
22
28
  .v-slider-track
23
29
  border-radius: $slider-track-border-radius
24
30
 
31
+ @media (forced-colors: active)
32
+ border: thin solid buttontext
33
+
25
34
  .v-slider-track
26
35
  &__background, &__fill
27
36
  position: absolute