@vuetify/nightly 3.8.7-master.2025-06-02 → 3.8.8-dev.2025-06-04

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 (180) hide show
  1. package/CHANGELOG.md +33 -11
  2. package/dist/json/attributes.json +2042 -1942
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +146 -146
  5. package/dist/json/tags.json +25 -0
  6. package/dist/json/web-types.json +3842 -3510
  7. package/dist/vuetify-labs.cjs +380 -152
  8. package/dist/vuetify-labs.css +5726 -5686
  9. package/dist/vuetify-labs.d.ts +2393 -1889
  10. package/dist/vuetify-labs.esm.js +381 -153
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +380 -152
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +374 -141
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +2674 -2634
  17. package/dist/vuetify.d.ts +1548 -1084
  18. package/dist/vuetify.esm.js +375 -142
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +374 -141
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +1226 -1208
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAlert/VAlert.css +6 -1
  26. package/lib/components/VAlert/VAlert.d.ts +35 -0
  27. package/lib/components/VAlert/VAlert.js +15 -10
  28. package/lib/components/VAlert/VAlert.js.map +1 -1
  29. package/lib/components/VAlert/VAlert.sass +7 -1
  30. package/lib/components/VAppBar/VAppBar.d.ts +15 -3
  31. package/lib/components/VAppBar/VAppBarNavIcon.d.ts +20 -10
  32. package/lib/components/VAutocomplete/VAutocomplete.css +6 -6
  33. package/lib/components/VAutocomplete/VAutocomplete.d.ts +154 -103
  34. package/lib/components/VAutocomplete/VAutocomplete.js +21 -3
  35. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  36. package/lib/components/VAutocomplete/VAutocomplete.sass +3 -9
  37. package/lib/components/VBtn/VBtn.d.ts +20 -10
  38. package/lib/components/VBtnGroup/VBtnGroup.css +30 -7
  39. package/lib/components/VBtnGroup/VBtnGroup.d.ts +58 -32
  40. package/lib/components/VBtnGroup/VBtnGroup.js +7 -3
  41. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  42. package/lib/components/VBtnGroup/VBtnGroup.sass +44 -17
  43. package/lib/components/VBtnToggle/VBtnToggle.d.ts +25 -0
  44. package/lib/components/VCard/VCard.d.ts +20 -10
  45. package/lib/components/VCheckbox/VCheckbox.d.ts +23 -13
  46. package/lib/components/VCheckbox/VCheckboxBtn.d.ts +20 -10
  47. package/lib/components/VChip/VChip.d.ts +20 -10
  48. package/lib/components/VChip/VChip.js +1 -0
  49. package/lib/components/VChip/VChip.js.map +1 -1
  50. package/lib/components/VChipGroup/VChipGroup.d.ts +10 -0
  51. package/lib/components/VCombobox/VCombobox.css +6 -6
  52. package/lib/components/VCombobox/VCombobox.d.ts +154 -103
  53. package/lib/components/VCombobox/VCombobox.js +22 -3
  54. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  55. package/lib/components/VCombobox/VCombobox.sass +3 -9
  56. package/lib/components/VDataTable/VDataTable.d.ts +60 -0
  57. package/lib/components/VDataTable/VDataTableHeaders.d.ts +13 -0
  58. package/lib/components/VDataTable/VDataTableHeaders.js +4 -2
  59. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  60. package/lib/components/VDataTable/VDataTableServer.d.ts +42 -0
  61. package/lib/components/VDataTable/VDataTableVirtual.d.ts +42 -0
  62. package/lib/components/VDatePicker/VDatePicker.d.ts +10 -0
  63. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +10 -0
  64. package/lib/components/VDatePicker/VDatePickerMonth.js +1 -1
  65. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  66. package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +20 -10
  67. package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +20 -10
  68. package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +20 -10
  69. package/lib/components/VFab/VFab.d.ts +20 -10
  70. package/lib/components/VField/VField.d.ts +3 -3
  71. package/lib/components/VFileInput/VFileInput.d.ts +15 -15
  72. package/lib/components/VInput/VInput.d.ts +4 -4
  73. package/lib/components/VList/VList.d.ts +13 -0
  74. package/lib/components/VList/VList.js +4 -1
  75. package/lib/components/VList/VList.js.map +1 -1
  76. package/lib/components/VList/VListChildren.js.map +1 -1
  77. package/lib/components/VList/VListItem.d.ts +23 -10
  78. package/lib/components/VList/VListItem.js +7 -3
  79. package/lib/components/VList/VListItem.js.map +1 -1
  80. package/lib/components/VList/list.d.ts +9 -2
  81. package/lib/components/VList/list.js +7 -0
  82. package/lib/components/VList/list.js.map +1 -1
  83. package/lib/components/VNumberInput/VNumberInput.d.ts +103 -89
  84. package/lib/components/VNumberInput/VNumberInput.js +19 -4
  85. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  86. package/lib/components/VOtpInput/VOtpInput.js +2 -1
  87. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  88. package/lib/components/VOverlay/VOverlay.css +1 -1
  89. package/lib/components/VOverlay/_variables.scss +1 -1
  90. package/lib/components/VRadio/VRadio.d.ts +20 -10
  91. package/lib/components/VRadioGroup/VRadioGroup.d.ts +23 -13
  92. package/lib/components/VRangeSlider/VRangeSlider.d.ts +3 -3
  93. package/lib/components/VSelect/VSelect.css +6 -0
  94. package/lib/components/VSelect/VSelect.d.ts +171 -107
  95. package/lib/components/VSelect/VSelect.js +21 -3
  96. package/lib/components/VSelect/VSelect.js.map +1 -1
  97. package/lib/components/VSelect/VSelect.sass +3 -0
  98. package/lib/components/VSelect/_mixins.scss +14 -0
  99. package/lib/components/VSelectionControl/VSelectionControl.d.ts +20 -10
  100. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +28 -14
  101. package/lib/components/VSlideGroup/VSlideGroup.d.ts +10 -0
  102. package/lib/components/VSlideGroup/VSlideGroup.js +2 -1
  103. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  104. package/lib/components/VSlider/VSlider.d.ts +3 -3
  105. package/lib/components/VSlider/VSliderThumb.d.ts +20 -10
  106. package/lib/components/VSlider/VSliderThumb.js +12 -6
  107. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  108. package/lib/components/VSlider/slider.js +4 -1
  109. package/lib/components/VSlider/slider.js.map +1 -1
  110. package/lib/components/VStepper/VStepperItem.d.ts +28 -14
  111. package/lib/components/VSwitch/VSwitch.d.ts +23 -13
  112. package/lib/components/VTable/VTable.css +6 -0
  113. package/lib/components/VTable/VTable.d.ts +55 -24
  114. package/lib/components/VTable/VTable.js +9 -2
  115. package/lib/components/VTable/VTable.js.map +1 -1
  116. package/lib/components/VTable/VTable.sass +14 -0
  117. package/lib/components/VTable/_variables.scss +1 -0
  118. package/lib/components/VTabs/VTab.d.ts +56 -28
  119. package/lib/components/VTabs/VTabs.d.ts +10 -0
  120. package/lib/components/VTextField/VTextField.d.ts +27 -27
  121. package/lib/components/VTextarea/VTextarea.d.ts +15 -15
  122. package/lib/components/VToolbar/VToolbar.d.ts +15 -3
  123. package/lib/components/VToolbar/VToolbar.js +6 -3
  124. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  125. package/lib/composables/calendar.d.ts +6 -0
  126. package/lib/composables/calendar.js +2 -1
  127. package/lib/composables/calendar.js.map +1 -1
  128. package/lib/composables/date/DateAdapter.d.ts +3 -3
  129. package/lib/composables/date/DateAdapter.js.map +1 -1
  130. package/lib/composables/date/adapters/string.d.ts +54 -0
  131. package/lib/composables/date/adapters/string.js +153 -0
  132. package/lib/composables/date/adapters/string.js.map +1 -0
  133. package/lib/composables/date/adapters/vuetify.d.ts +1 -1
  134. package/lib/composables/date/adapters/vuetify.js +4 -4
  135. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  136. package/lib/composables/date/date.d.ts +3 -3
  137. package/lib/composables/date/index.d.ts +1 -0
  138. package/lib/composables/date/index.js +1 -0
  139. package/lib/composables/date/index.js.map +1 -1
  140. package/lib/composables/filter.js +3 -0
  141. package/lib/composables/filter.js.map +1 -1
  142. package/lib/composables/iconSizes.d.ts +28 -0
  143. package/lib/composables/iconSizes.js +23 -0
  144. package/lib/composables/iconSizes.js.map +1 -0
  145. package/lib/composables/list-items.js +2 -2
  146. package/lib/composables/list-items.js.map +1 -1
  147. package/lib/composables/theme.d.ts +6 -1
  148. package/lib/composables/theme.js +94 -26
  149. package/lib/composables/theme.js.map +1 -1
  150. package/lib/composables/virtual.js +6 -1
  151. package/lib/composables/virtual.js.map +1 -1
  152. package/lib/directives/ripple/index.d.ts +2 -1
  153. package/lib/directives/ripple/index.js +12 -7
  154. package/lib/directives/ripple/index.js.map +1 -1
  155. package/lib/entry-bundler.d.ts +3 -3
  156. package/lib/entry-bundler.js +1 -1
  157. package/lib/entry-bundler.js.map +1 -1
  158. package/lib/framework.d.ts +73 -58
  159. package/lib/framework.js +1 -1
  160. package/lib/framework.js.map +1 -1
  161. package/lib/labs/VCalendar/VCalendar.d.ts +10 -0
  162. package/lib/labs/VColorInput/VColorInput.d.ts +3 -3
  163. package/lib/labs/VDateInput/VDateInput.d.ts +97 -87
  164. package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
  165. package/lib/labs/VFileUpload/VFileUploadItem.d.ts +20 -10
  166. package/lib/labs/VIconBtn/VIconBtn.d.ts +29 -29
  167. package/lib/labs/VIconBtn/VIconBtn.js +7 -11
  168. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  169. package/lib/labs/VStepperVertical/VStepperVertical.d.ts +20 -10
  170. package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +20 -10
  171. package/lib/labs/VTreeview/VTreeview.d.ts +13 -0
  172. package/lib/labs/VTreeview/VTreeviewItem.d.ts +20 -10
  173. package/lib/labs/entry-bundler.d.ts +3 -3
  174. package/lib/util/globals.d.ts +1 -0
  175. package/lib/util/globals.js +1 -0
  176. package/lib/util/globals.js.map +1 -1
  177. package/lib/util/helpers.d.ts +1 -0
  178. package/lib/util/helpers.js +9 -1
  179. package/lib/util/helpers.js.map +1 -1
  180. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VSlideGroup.js","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","mobile","selectedClass","VSlideGroup","name","props","emits","value","setup","_ref","slots","isRtl","displayClasses","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","getSiblingElement","undefined","sibling","hasAttribute","focusable","querySelector","firstElementChild","lastElementChild","preventScroll","scrollTo","offsetStep","slotProps","next","prev","select","isSelected","hasAffixes","hasPrev","hasNext","clientSize","scrollSizeMax","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style","_createElementVNode","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({ mobile: null }),\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 getSiblingElement (el: HTMLElement | null, location: 'next' | 'prev') {\n if (!el) return undefined\n let sibling: HTMLElement | null = el\n do {\n sibling = sibling?.[location === 'next' ? 'nextElementSibling' : 'previousElementSibling'] as HTMLElement | null\n } while (sibling?.hasAttribute('disabled'))\n return sibling\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.el) return\n\n let el: HTMLElement | null | undefined\n\n if (!location) {\n const focusable = focusableChildren(contentRef.el)\n el = focusable[0]\n } else if (location === 'next') {\n el = getSiblingElement(contentRef.el.querySelector(':focus'), location)\n\n if (!el) return focus('first')\n } else if (location === 'prev') {\n el = getSiblingElement(contentRef.el.querySelector(':focus'), location)\n\n if (!el) return focus('last')\n } else if (location === 'first') {\n el = (contentRef.el.firstElementChild as HTMLElement)\n\n if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'next')\n } else if (location === 'last') {\n el = (contentRef.el.lastElementChild as HTMLElement)\n\n if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'prev')\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 hasPrev,\n hasNext,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VSlideGroup.js","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","contentClass","direction","type","String","default","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","mobile","selectedClass","VSlideGroup","name","props","emits","value","setup","_ref","slots","isRtl","displayClasses","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","getSiblingElement","undefined","sibling","hasAttribute","focusable","querySelector","firstElementChild","lastElementChild","preventScroll","scrollTo","offsetStep","slotProps","next","prev","select","isSelected","hasAffixes","hasPrev","hasNext","clientSize","scrollSizeMax","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style","_createElementVNode","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 contentClass: null,\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({ mobile: null }),\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 getSiblingElement (el: HTMLElement | null, location: 'next' | 'prev') {\n if (!el) return undefined\n let sibling: HTMLElement | null = el\n do {\n sibling = sibling?.[location === 'next' ? 'nextElementSibling' : 'previousElementSibling'] as HTMLElement | null\n } while (sibling?.hasAttribute('disabled'))\n return sibling\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.el) return\n\n let el: HTMLElement | null | undefined\n\n if (!location) {\n const focusable = focusableChildren(contentRef.el)\n el = focusable[0]\n } else if (location === 'next') {\n el = getSiblingElement(contentRef.el.querySelector(':focus'), location)\n\n if (!el) return focus('first')\n } else if (location === 'prev') {\n el = getSiblingElement(contentRef.el.querySelector(':focus'), location)\n\n if (!el) return focus('last')\n } else if (location === 'first') {\n el = (contentRef.el.firstElementChild as HTMLElement)\n\n if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'next')\n } else if (location === 'last') {\n el = (contentRef.el.lastElementChild as HTMLElement)\n\n if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'prev')\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={[\n 'v-slide-group__container',\n props.contentClass,\n ]}\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 hasPrev,\n hasNext,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n"],"mappings":"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","ignoreList":[]}
@@ -468,9 +468,9 @@ export declare const VSlider: {
468
468
  baseColor?: string | undefined;
469
469
  prependIcon?: import("../../composables/icons.js").IconValue | undefined;
470
470
  appendIcon?: import("../../composables/icons.js").IconValue | undefined;
471
+ iconColor?: string | boolean | undefined;
471
472
  'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
472
473
  'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
473
- iconColor?: string | boolean | undefined;
474
474
  hint?: string | undefined;
475
475
  hideDetails?: boolean | "auto" | undefined;
476
476
  trackColor?: string | undefined;
@@ -629,9 +629,9 @@ export declare const VSlider: {
629
629
  baseColor?: string | undefined;
630
630
  prependIcon?: import("../../composables/icons.js").IconValue | undefined;
631
631
  appendIcon?: import("../../composables/icons.js").IconValue | undefined;
632
+ iconColor?: string | boolean | undefined;
632
633
  'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
633
634
  'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
634
- iconColor?: string | boolean | undefined;
635
635
  hint?: string | undefined;
636
636
  hideDetails?: boolean | "auto" | undefined;
637
637
  trackColor?: string | undefined;
@@ -768,9 +768,9 @@ export declare const VSlider: {
768
768
  baseColor?: string | undefined;
769
769
  prependIcon?: import("../../composables/icons.js").IconValue | undefined;
770
770
  appendIcon?: import("../../composables/icons.js").IconValue | undefined;
771
+ iconColor?: string | boolean | undefined;
771
772
  'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
772
773
  'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
773
- iconColor?: string | boolean | undefined;
774
774
  hint?: string | undefined;
775
775
  hideDetails?: boolean | "auto" | undefined;
776
776
  trackColor?: string | undefined;
@@ -82,14 +82,18 @@ export declare const makeVSliderThumbProps: <Defaults extends {
82
82
  default: boolean;
83
83
  }, "type" | "default"> & {
84
84
  type: PropType<unknown extends Defaults["ripple"] ? boolean | {
85
- class: string;
85
+ class?: string;
86
+ keys?: number[];
86
87
  } | undefined : boolean | {
87
- class: string;
88
+ class?: string;
89
+ keys?: number[];
88
90
  } | Defaults["ripple"] | undefined>;
89
91
  default: unknown extends Defaults["ripple"] ? boolean | {
90
- class: string;
92
+ class?: string;
93
+ keys?: number[];
91
94
  } | undefined : NonNullable<boolean | {
92
- class: string;
95
+ class?: string;
96
+ keys?: number[];
93
97
  } | undefined> | Defaults["ripple"];
94
98
  };
95
99
  name: unknown extends Defaults["name"] ? StringConstructor : {
@@ -106,7 +110,8 @@ export declare const VSliderThumb: {
106
110
  focused: boolean;
107
111
  modelValue: number;
108
112
  ripple: boolean | {
109
- class: string;
113
+ class?: string;
114
+ keys?: number[];
110
115
  } | undefined;
111
116
  } & {
112
117
  name?: string | undefined;
@@ -134,7 +139,8 @@ export declare const VSliderThumb: {
134
139
  style: import("vue").StyleValue;
135
140
  focused: boolean;
136
141
  ripple: boolean | {
137
- class: string;
142
+ class?: string;
143
+ keys?: number[];
138
144
  } | undefined;
139
145
  }, true, {}, import("vue").SlotsType<Partial<{
140
146
  'thumb-label': (arg: {
@@ -155,7 +161,8 @@ export declare const VSliderThumb: {
155
161
  focused: boolean;
156
162
  modelValue: number;
157
163
  ripple: boolean | {
158
- class: string;
164
+ class?: string;
165
+ keys?: number[];
159
166
  } | undefined;
160
167
  } & {
161
168
  name?: string | undefined;
@@ -181,7 +188,8 @@ export declare const VSliderThumb: {
181
188
  style: import("vue").StyleValue;
182
189
  focused: boolean;
183
190
  ripple: boolean | {
184
- class: string;
191
+ class?: string;
192
+ keys?: number[];
185
193
  } | undefined;
186
194
  }>;
187
195
  __isFragment?: never;
@@ -195,7 +203,8 @@ export declare const VSliderThumb: {
195
203
  focused: boolean;
196
204
  modelValue: number;
197
205
  ripple: boolean | {
198
- class: string;
206
+ class?: string;
207
+ keys?: number[];
199
208
  } | undefined;
200
209
  } & {
201
210
  name?: string | undefined;
@@ -223,7 +232,8 @@ export declare const VSliderThumb: {
223
232
  style: import("vue").StyleValue;
224
233
  focused: boolean;
225
234
  ripple: boolean | {
226
- class: string;
235
+ class?: string;
236
+ keys?: number[];
227
237
  } | undefined;
228
238
  }, {}, string, import("vue").SlotsType<Partial<{
229
239
  'thumb-label': (arg: {
@@ -58,6 +58,8 @@ export const VSliderThumb = genericComponent()({
58
58
  } = useRtl();
59
59
  if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider');
60
60
  const {
61
+ min,
62
+ max,
61
63
  thumbColor,
62
64
  step,
63
65
  disabled,
@@ -98,16 +100,20 @@ export const VSliderThumb = genericComponent()({
98
100
  if (!relevantKeys.includes(e.key)) return;
99
101
  e.preventDefault();
100
102
  const _step = step.value || 0.1;
101
- const steps = (props.max - props.min) / _step;
103
+ const steps = (max.value - min.value) / _step;
102
104
  if ([left, right, down, up].includes(e.key)) {
103
105
  const increase = vertical.value ? [isRtl.value ? left : right, isReversed.value ? down : up] : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up];
104
106
  const direction = increase.includes(e.key) ? 1 : -1;
105
107
  const multiplier = e.shiftKey ? 2 : e.ctrlKey ? 1 : 0;
106
- value = value + direction * _step * multipliers.value[multiplier];
108
+ if (direction === -1 && value === max.value && !multiplier && !Number.isInteger(steps)) {
109
+ value = value - steps % 1 * _step;
110
+ } else {
111
+ value = value + direction * _step * multipliers.value[multiplier];
112
+ }
107
113
  } else if (e.key === home) {
108
- value = props.min;
114
+ value = min.value;
109
115
  } else if (e.key === end) {
110
- value = props.max;
116
+ value = max.value;
111
117
  } else {
112
118
  const direction = e.key === pagedown ? 1 : -1;
113
119
  value = value - direction * _step * (steps > 100 ? steps / 10 : 10);
@@ -132,8 +138,8 @@ export const VSliderThumb = genericComponent()({
132
138
  "role": "slider",
133
139
  "tabindex": disabled.value ? -1 : 0,
134
140
  "aria-label": props.name,
135
- "aria-valuemin": props.min,
136
- "aria-valuemax": props.max,
141
+ "aria-valuemin": min.value,
142
+ "aria-valuemax": max.value,
137
143
  "aria-valuenow": props.modelValue,
138
144
  "aria-readonly": !!readonly.value,
139
145
  "aria-orientation": direction.value,
@@ -1 +1 @@
1
- {"version":3,"file":"VSliderThumb.js","names":["VSliderSymbol","VScaleTransition","useTextColor","makeComponentProps","useElevation","useRtl","vRipple","computed","inject","convertToUnit","genericComponent","keyValues","propsFactory","useRender","makeVSliderThumbProps","focused","Boolean","max","type","Number","required","min","modelValue","position","ripple","Object","default","name","String","VSliderThumb","directives","props","emits","v","setup","_ref","slots","emit","slider","isRtl","rtlClasses","Error","thumbColor","step","disabled","thumbSize","thumbLabel","direction","isReversed","vertical","readonly","elevation","mousePressed","decimals","indexFromEnd","elevationProps","value","undefined","elevationClasses","textColorClasses","textColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","Math","onKeydown","newValue","positionPercentage","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","_withDirectives","circle","center","_createVNode","toFixed","_vShow"],"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\nimport { VScaleTransition } from '../transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\n\n// Directives\nimport vRipple from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': { modelValue: number }\n}\n\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n name: String,\n\n ...makeComponentProps(),\n}, 'VSliderThumb')\n\nexport const VSliderThumb = genericComponent<VSliderThumbSlots>()({\n name: 'VSliderThumb',\n\n directives: { vRipple },\n\n props: makeVSliderThumbProps(),\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n const { isRtl, rtlClasses } = useRtl()\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd,\n } = slider\n\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined)\n const { elevationClasses } = useElevation(elevationProps)\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (props.max - props.min) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value\n ? [isRtl.value ? left : right, isReversed.value ? down : up]\n : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n value = value + (direction * _step * multipliers.value[multiplier])\n } else if (e.key === home) {\n value = props.min\n } else if (e.key === end) {\n value = props.max\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%')\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n props.class,\n rtlClasses.value,\n ]}\n style={[\n {\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n },\n props.style,\n ]}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-label={ props.name }\n aria-valuemin={ props.min }\n aria-valuemax={ props.max }\n aria-valuenow={ props.modelValue }\n aria-readonly={ !!readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[props.ripple, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VSliderThumb.js","names":["VSliderSymbol","VScaleTransition","useTextColor","makeComponentProps","useElevation","useRtl","vRipple","computed","inject","convertToUnit","genericComponent","keyValues","propsFactory","useRender","makeVSliderThumbProps","focused","Boolean","max","type","Number","required","min","modelValue","position","ripple","Object","default","name","String","VSliderThumb","directives","props","emits","v","setup","_ref","slots","emit","slider","isRtl","rtlClasses","Error","thumbColor","step","disabled","thumbSize","thumbLabel","direction","isReversed","vertical","readonly","elevation","mousePressed","decimals","indexFromEnd","elevationProps","value","undefined","elevationClasses","textColorClasses","textColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","isInteger","Math","onKeydown","newValue","positionPercentage","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","_withDirectives","circle","center","_createVNode","toFixed","_vShow"],"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\nimport { VScaleTransition } from '../transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\n\n// Directives\nimport vRipple from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': { modelValue: number }\n}\n\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n name: String,\n\n ...makeComponentProps(),\n}, 'VSliderThumb')\n\nexport const VSliderThumb = genericComponent<VSliderThumbSlots>()({\n name: 'VSliderThumb',\n\n directives: { vRipple },\n\n props: makeVSliderThumbProps(),\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n const { isRtl, rtlClasses } = useRtl()\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n min,\n max,\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd,\n } = slider\n\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined)\n const { elevationClasses } = useElevation(elevationProps)\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (max.value - min.value) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value\n ? [isRtl.value ? left : right, isReversed.value ? down : up]\n : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n if (direction === -1 && value === max.value && !multiplier && !Number.isInteger(steps)) {\n value = value - (steps % 1) * _step\n } else {\n value = value + (direction * _step * multipliers.value[multiplier])\n }\n } else if (e.key === home) {\n value = min.value\n } else if (e.key === end) {\n value = max.value\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%')\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n props.class,\n rtlClasses.value,\n ]}\n style={[\n {\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n },\n props.style,\n ]}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-label={ props.name }\n aria-valuemin={ min.value }\n aria-valuemax={ max.value }\n aria-valuenow={ props.modelValue }\n aria-readonly={ !!readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[props.ripple, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":"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","ignoreList":[]}
@@ -91,7 +91,10 @@ export const useSteps = props => {
91
91
  if (step.value <= 0) return value;
92
92
  const clamped = clamp(value, min.value, max.value);
93
93
  const offset = min.value % step.value;
94
- const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
94
+ let newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
95
+ if (clamped > newValue && newValue + step.value > max.value) {
96
+ newValue = max.value;
97
+ }
95
98
  return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
96
99
  }
97
100
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","names":["makeElevationProps","useRtl","makeRoundedProps","computed","nextTick","provide","ref","shallowRef","toRef","clamp","createRange","getDecimals","propsFactory","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","type","Boolean","default","error","readonly","max","Number","String","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","elevation","ripple","useSteps","props","parseFloat","decimals","Math","value","roundValue","clamped","offset","newValue","round","toFixed","useSlider","_ref","steps","onSliderStart","onSliderMove","onSliderEnd","getActiveThumb","isRtl","isReversed","indexFromEnd","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","parseMouseMove","$el","start","trackStart","trackLength","clickOffset","clickPos","handleStop","handleStart","contains","target","focus","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","button","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","toString","keys","key","hasLabels","some","_ref2","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps } from '@/composables/rounded'\n\n// Utilities\nimport { computed, nextTick, provide, ref, shallowRef, toRef } from 'vue'\nimport { clamp, createRange, getDecimals, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\nexport type Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref<HTMLElement | undefined>\n color: Ref<string | undefined>\n decimals: Ref<number>\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref<boolean | null | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number | void\n position: (val: number) => number\n readonly: Ref<boolean | null | undefined>\n rounded: Ref<boolean | number | string | undefined>\n roundValue: (value: number) => number\n thumbLabel: Ref<boolean | string | undefined>\n showTicks: Ref<boolean | 'always'>\n startOffset: Ref<number>\n step: Ref<number>\n thumbSize: Ref<number>\n thumbColor: Ref<string | undefined>\n trackColor: Ref<string | undefined>\n trackFillColor: Ref<string | undefined>\n trackSize: Ref<number>\n ticks: Ref<readonly number[] | Record<string, string> | undefined>\n tickSize: Ref<number>\n trackContainerRef: Ref<VSliderTrack | undefined>\n vertical: Ref<boolean>\n parsedTicks: Ref<Tick[]>\n hasLabels: Ref<boolean>\n isReversed: Ref<boolean>\n indexFromEnd: Ref<boolean>\n}\n\nexport const VSliderSymbol: InjectionKey<SliderProvide> = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType<readonly number[] | Record<number, string>>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n ripple: {\n type: Boolean,\n default: true,\n },\n}, 'Slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\ntype SliderData = {\n value: number\n}\n\nexport const useSteps = (props: SliderProps) => {\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => Number(props.step) > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)))\n\n function roundValue (value: string | number) {\n value = parseFloat(value)\n\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n const newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n return { min, max, step, decimals, roundValue }\n}\n\nexport const useSlider = ({\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb,\n}: {\n props: SliderProps\n steps: ReturnType<typeof useSteps>\n onSliderEnd: (data: SliderData) => void\n onSliderStart: (data: SliderData) => void\n onSliderMove: (data: SliderData) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(() => props.reverse)\n const vertical = computed(() => props.direction === 'vertical')\n const indexFromEnd = computed(() => vertical.value !== isReversed.value)\n\n const { min, max, step, decimals, roundValue } = steps\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(() => props.disabled)\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = shallowRef(false)\n\n const startOffset = shallowRef(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number | void {\n const el: HTMLElement = trackContainerRef.value?.$el\n\n if (!el) return\n\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = clamp((clickOffset - trackStart - startOffset.value) / trackLength) || 0\n\n if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderEnd({ value })\n }\n\n mousePressed.value = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n if (value != null) {\n onSliderStart({ value })\n }\n nextTick(() => activeThumbRef.value?.focus())\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.removeEventListener('touchend', onSliderTouchend as EventListener)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.addEventListener('touchend', onSliderTouchend as EventListener, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n if (e.button !== 0) return\n\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const showTicks = toRef(() => props.showTicks)\n const parsedTicks = computed<Tick[]>(() => {\n if (!showTicks.value) return []\n\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: (props.ticks as Record<string, string>)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(() => props.color),\n decimals,\n disabled,\n direction: toRef(() => props.direction),\n elevation: toRef(() => props.elevation),\n hasLabels,\n isReversed,\n indexFromEnd,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(() => props.readonly),\n rounded: toRef(() => props.rounded),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(() => props.thumbLabel),\n ticks: toRef(() => props.ticks),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"slider.js","names":["makeElevationProps","useRtl","makeRoundedProps","computed","nextTick","provide","ref","shallowRef","toRef","clamp","createRange","getDecimals","propsFactory","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","type","Boolean","default","error","readonly","max","Number","String","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","elevation","ripple","useSteps","props","parseFloat","decimals","Math","value","roundValue","clamped","offset","newValue","round","toFixed","useSlider","_ref","steps","onSliderStart","onSliderMove","onSliderEnd","getActiveThumb","isRtl","isReversed","indexFromEnd","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","parseMouseMove","$el","start","trackStart","trackLength","clickOffset","clickPos","handleStop","handleStart","contains","target","focus","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","button","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","toString","keys","key","hasLabels","some","_ref2","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps } from '@/composables/rounded'\n\n// Utilities\nimport { computed, nextTick, provide, ref, shallowRef, toRef } from 'vue'\nimport { clamp, createRange, getDecimals, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\nexport type Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref<HTMLElement | undefined>\n color: Ref<string | undefined>\n decimals: Ref<number>\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref<boolean | null | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number | void\n position: (val: number) => number\n readonly: Ref<boolean | null | undefined>\n rounded: Ref<boolean | number | string | undefined>\n roundValue: (value: number) => number\n thumbLabel: Ref<boolean | string | undefined>\n showTicks: Ref<boolean | 'always'>\n startOffset: Ref<number>\n step: Ref<number>\n thumbSize: Ref<number>\n thumbColor: Ref<string | undefined>\n trackColor: Ref<string | undefined>\n trackFillColor: Ref<string | undefined>\n trackSize: Ref<number>\n ticks: Ref<readonly number[] | Record<string, string> | undefined>\n tickSize: Ref<number>\n trackContainerRef: Ref<VSliderTrack | undefined>\n vertical: Ref<boolean>\n parsedTicks: Ref<Tick[]>\n hasLabels: Ref<boolean>\n isReversed: Ref<boolean>\n indexFromEnd: Ref<boolean>\n}\n\nexport const VSliderSymbol: InjectionKey<SliderProvide> = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType<readonly number[] | Record<number, string>>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n ripple: {\n type: Boolean,\n default: true,\n },\n}, 'Slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\ntype SliderData = {\n value: number\n}\n\nexport const useSteps = (props: SliderProps) => {\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => Number(props.step) > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)))\n\n function roundValue (value: string | number) {\n value = parseFloat(value)\n\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n let newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n if (clamped > newValue && newValue + step.value > max.value) {\n newValue = max.value\n }\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n return { min, max, step, decimals, roundValue }\n}\n\nexport const useSlider = ({\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb,\n}: {\n props: SliderProps\n steps: ReturnType<typeof useSteps>\n onSliderEnd: (data: SliderData) => void\n onSliderStart: (data: SliderData) => void\n onSliderMove: (data: SliderData) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(() => props.reverse)\n const vertical = computed(() => props.direction === 'vertical')\n const indexFromEnd = computed(() => vertical.value !== isReversed.value)\n\n const { min, max, step, decimals, roundValue } = steps\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(() => props.disabled)\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = shallowRef(false)\n\n const startOffset = shallowRef(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number | void {\n const el: HTMLElement = trackContainerRef.value?.$el\n\n if (!el) return\n\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = clamp((clickOffset - trackStart - startOffset.value) / trackLength) || 0\n\n if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderEnd({ value })\n }\n\n mousePressed.value = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n if (value != null) {\n onSliderStart({ value })\n }\n nextTick(() => activeThumbRef.value?.focus())\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.removeEventListener('touchend', onSliderTouchend as EventListener)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.addEventListener('touchend', onSliderTouchend as EventListener, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n if (e.button !== 0) return\n\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const showTicks = toRef(() => props.showTicks)\n const parsedTicks = computed<Tick[]>(() => {\n if (!showTicks.value) return []\n\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: (props.ticks as Record<string, string>)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(() => props.color),\n decimals,\n disabled,\n direction: toRef(() => props.direction),\n elevation: toRef(() => props.elevation),\n hasLabels,\n isReversed,\n indexFromEnd,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(() => props.readonly),\n rounded: toRef(() => props.rounded),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(() => props.thumbLabel),\n ticks: toRef(() => props.ticks),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n"],"mappings":"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","ignoreList":[]}
@@ -97,14 +97,18 @@ export declare const makeStepperItemProps: <Defaults extends {
97
97
  default: boolean;
98
98
  }, "type" | "default"> & {
99
99
  type: PropType<unknown extends Defaults["ripple"] ? boolean | {
100
- class: string;
100
+ class?: string;
101
+ keys?: number[];
101
102
  } | undefined : boolean | {
102
- class: string;
103
+ class?: string;
104
+ keys?: number[];
103
105
  } | Defaults["ripple"] | undefined>;
104
106
  default: unknown extends Defaults["ripple"] ? boolean | {
105
- class: string;
107
+ class?: string;
108
+ keys?: number[];
106
109
  } | undefined : NonNullable<boolean | {
107
- class: string;
110
+ class?: string;
111
+ keys?: number[];
108
112
  } | undefined> | Defaults["ripple"];
109
113
  };
110
114
  rules: unknown extends Defaults["rules"] ? {
@@ -213,14 +217,18 @@ export declare const makeVStepperItemProps: <Defaults extends {
213
217
  default: boolean;
214
218
  }, "type" | "default"> & {
215
219
  type: PropType<unknown extends Defaults["ripple"] ? boolean | {
216
- class: string;
220
+ class?: string;
221
+ keys?: number[];
217
222
  } | undefined : boolean | {
218
- class: string;
223
+ class?: string;
224
+ keys?: number[];
219
225
  } | Defaults["ripple"] | undefined>;
220
226
  default: unknown extends Defaults["ripple"] ? boolean | {
221
- class: string;
227
+ class?: string;
228
+ keys?: number[];
222
229
  } | undefined : NonNullable<boolean | {
223
- class: string;
230
+ class?: string;
231
+ keys?: number[];
224
232
  } | undefined> | Defaults["ripple"];
225
233
  };
226
234
  rules: unknown extends Defaults["rules"] ? {
@@ -241,7 +249,8 @@ export declare const VStepperItem: {
241
249
  disabled: boolean;
242
250
  rules: readonly ValidationRule[];
243
251
  ripple: boolean | {
244
- class: string;
252
+ class?: string;
253
+ keys?: number[];
245
254
  } | undefined;
246
255
  completeIcon: IconValue;
247
256
  editable: boolean;
@@ -286,7 +295,8 @@ export declare const VStepperItem: {
286
295
  disabled: boolean;
287
296
  rules: readonly ValidationRule[];
288
297
  ripple: boolean | {
289
- class: string;
298
+ class?: string;
299
+ keys?: number[];
290
300
  } | undefined;
291
301
  completeIcon: IconValue;
292
302
  editable: boolean;
@@ -310,7 +320,8 @@ export declare const VStepperItem: {
310
320
  disabled: boolean;
311
321
  rules: readonly ValidationRule[];
312
322
  ripple: boolean | {
313
- class: string;
323
+ class?: string;
324
+ keys?: number[];
314
325
  } | undefined;
315
326
  completeIcon: IconValue;
316
327
  editable: boolean;
@@ -351,7 +362,8 @@ export declare const VStepperItem: {
351
362
  disabled: boolean;
352
363
  rules: readonly ValidationRule[];
353
364
  ripple: boolean | {
354
- class: string;
365
+ class?: string;
366
+ keys?: number[];
355
367
  } | undefined;
356
368
  completeIcon: IconValue;
357
369
  editable: boolean;
@@ -367,7 +379,8 @@ export declare const VStepperItem: {
367
379
  disabled: boolean;
368
380
  rules: readonly ValidationRule[];
369
381
  ripple: boolean | {
370
- class: string;
382
+ class?: string;
383
+ keys?: number[];
371
384
  } | undefined;
372
385
  completeIcon: IconValue;
373
386
  editable: boolean;
@@ -412,7 +425,8 @@ export declare const VStepperItem: {
412
425
  disabled: boolean;
413
426
  rules: readonly ValidationRule[];
414
427
  ripple: boolean | {
415
- class: string;
428
+ class?: string;
429
+ keys?: number[];
416
430
  } | undefined;
417
431
  completeIcon: IconValue;
418
432
  editable: boolean;