@vuetify/nightly 3.9.2-master.2025-07-22 → 3.9.2-master.2025-07-24

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 (237) hide show
  1. package/CHANGELOG.md +32 -3
  2. package/dist/_component-variables-labs.sass +2 -1
  3. package/dist/json/attributes.json +3014 -2750
  4. package/dist/json/importMap-labs.json +34 -22
  5. package/dist/json/importMap.json +168 -168
  6. package/dist/json/tags.json +81 -0
  7. package/dist/json/web-types.json +6647 -5536
  8. package/dist/vuetify-labs.cjs +765 -23
  9. package/dist/vuetify-labs.css +4300 -3958
  10. package/dist/vuetify-labs.d.ts +6519 -844
  11. package/dist/vuetify-labs.esm.js +766 -24
  12. package/dist/vuetify-labs.esm.js.map +1 -1
  13. package/dist/vuetify-labs.js +765 -23
  14. package/dist/vuetify-labs.min.css +2 -2
  15. package/dist/vuetify.cjs +50 -16
  16. package/dist/vuetify.cjs.map +1 -1
  17. package/dist/vuetify.css +5769 -5762
  18. package/dist/vuetify.d.ts +96 -82
  19. package/dist/vuetify.esm.js +50 -16
  20. package/dist/vuetify.esm.js.map +1 -1
  21. package/dist/vuetify.js +50 -16
  22. package/dist/vuetify.js.map +1 -1
  23. package/dist/vuetify.min.css +2 -2
  24. package/dist/vuetify.min.js +276 -274
  25. package/dist/vuetify.min.js.map +1 -1
  26. package/lib/components/VBottomSheet/VBottomSheet.d.ts +6 -6
  27. package/lib/components/VCarousel/VCarousel.d.ts +7 -13
  28. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  29. package/lib/components/VColorPicker/VColorPicker.css +1 -0
  30. package/lib/components/VColorPicker/VColorPicker.sass +1 -0
  31. package/lib/components/VDataTable/VDataTableHeaders.js +0 -1
  32. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  33. package/lib/components/VDialog/VDialog.d.ts +6 -6
  34. package/lib/components/VFileInput/VFileInput.css +3 -0
  35. package/lib/components/VFileInput/VFileInput.sass +3 -0
  36. package/lib/components/VOverlay/VOverlay.js +1 -0
  37. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  38. package/lib/components/VOverlay/scrollStrategies.d.ts +1 -0
  39. package/lib/components/VOverlay/scrollStrategies.js +6 -4
  40. package/lib/components/VOverlay/scrollStrategies.js.map +1 -1
  41. package/lib/components/VProgressLinear/VProgressLinear.css +4 -1
  42. package/lib/components/VProgressLinear/VProgressLinear.js +2 -1
  43. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  44. package/lib/components/VProgressLinear/VProgressLinear.sass +5 -2
  45. package/lib/components/VRangeSlider/VRangeSlider.d.ts +13 -0
  46. package/lib/components/VSlider/VSlider.d.ts +13 -0
  47. package/lib/components/VSlider/VSlider.js +3 -1
  48. package/lib/components/VSlider/VSlider.js.map +1 -1
  49. package/lib/components/VSlider/VSliderThumb.d.ts +13 -0
  50. package/lib/components/VSlider/VSliderThumb.js +2 -0
  51. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  52. package/lib/components/VSlider/slider.d.ts +6 -0
  53. package/lib/components/VSlider/slider.js +2 -0
  54. package/lib/components/VSlider/slider.js.map +1 -1
  55. package/lib/components/VTextField/VTextField.js +2 -2
  56. package/lib/components/VTextField/VTextField.js.map +1 -1
  57. package/lib/components/VTreeview/VTreeview.d.ts +7 -7
  58. package/lib/components/VTreeview/VTreeview.js +0 -1
  59. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  60. package/lib/components/VTreeview/VTreeviewChildren.d.ts +13 -0
  61. package/lib/components/VTreeview/VTreeviewChildren.js +2 -1
  62. package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
  63. package/lib/components/index.js +1 -1
  64. package/lib/components/index.js.map +1 -1
  65. package/lib/composables/date/adapters/vuetify.js +8 -2
  66. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  67. package/lib/entry-bundler.js +1 -1
  68. package/lib/framework.d.ts +59 -55
  69. package/lib/framework.js +1 -1
  70. package/lib/iconsets/fa.js +9 -1
  71. package/lib/iconsets/fa.js.map +1 -1
  72. package/lib/iconsets/fa4.js +9 -1
  73. package/lib/iconsets/fa4.js.map +1 -1
  74. package/lib/iconsets/md.js +9 -1
  75. package/lib/iconsets/md.js.map +1 -1
  76. package/lib/iconsets/mdi-svg.js +9 -1
  77. package/lib/iconsets/mdi-svg.js.map +1 -1
  78. package/lib/iconsets/mdi.js +9 -1
  79. package/lib/iconsets/mdi.js.map +1 -1
  80. package/lib/labs/VFileUpload/VFileUploadItem.js +1 -1
  81. package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
  82. package/lib/labs/VStepperVertical/VStepperVerticalItem.css +1 -0
  83. package/lib/labs/VStepperVertical/VStepperVerticalItem.sass +1 -0
  84. package/lib/labs/VVideo/VVideo.css +319 -0
  85. package/lib/labs/VVideo/VVideo.d.ts +6932 -0
  86. package/lib/labs/VVideo/VVideo.js +424 -0
  87. package/lib/labs/VVideo/VVideo.js.map +1 -0
  88. package/lib/labs/VVideo/VVideo.sass +301 -0
  89. package/lib/labs/VVideo/VVideoControls.d.ts +3524 -0
  90. package/lib/labs/VVideo/VVideoControls.js +232 -0
  91. package/lib/labs/VVideo/VVideoControls.js.map +1 -0
  92. package/lib/labs/VVideo/VVideoVolume.d.ts +3088 -0
  93. package/lib/labs/VVideo/VVideoVolume.js +90 -0
  94. package/lib/labs/VVideo/VVideoVolume.js.map +1 -0
  95. package/lib/labs/VVideo/_variables.scss +58 -0
  96. package/lib/labs/VVideo/index.d.ts +3 -0
  97. package/lib/labs/VVideo/index.js +4 -0
  98. package/lib/labs/VVideo/index.js.map +1 -0
  99. package/lib/labs/components.d.ts +1 -0
  100. package/lib/labs/components.js +1 -0
  101. package/lib/labs/components.js.map +1 -1
  102. package/lib/locale/af.d.ts +11 -0
  103. package/lib/locale/af.js +11 -0
  104. package/lib/locale/af.js.map +1 -1
  105. package/lib/locale/ar.d.ts +11 -0
  106. package/lib/locale/ar.js +11 -0
  107. package/lib/locale/ar.js.map +1 -1
  108. package/lib/locale/az.d.ts +11 -0
  109. package/lib/locale/az.js +11 -0
  110. package/lib/locale/az.js.map +1 -1
  111. package/lib/locale/bg.d.ts +11 -0
  112. package/lib/locale/bg.js +11 -0
  113. package/lib/locale/bg.js.map +1 -1
  114. package/lib/locale/ca.d.ts +11 -0
  115. package/lib/locale/ca.js +11 -0
  116. package/lib/locale/ca.js.map +1 -1
  117. package/lib/locale/ckb.d.ts +11 -0
  118. package/lib/locale/ckb.js +11 -0
  119. package/lib/locale/ckb.js.map +1 -1
  120. package/lib/locale/cs.d.ts +11 -0
  121. package/lib/locale/cs.js +11 -0
  122. package/lib/locale/cs.js.map +1 -1
  123. package/lib/locale/da.d.ts +11 -0
  124. package/lib/locale/da.js +11 -0
  125. package/lib/locale/da.js.map +1 -1
  126. package/lib/locale/de.d.ts +11 -0
  127. package/lib/locale/de.js +11 -0
  128. package/lib/locale/de.js.map +1 -1
  129. package/lib/locale/el.d.ts +11 -0
  130. package/lib/locale/el.js +11 -0
  131. package/lib/locale/el.js.map +1 -1
  132. package/lib/locale/en.d.ts +11 -0
  133. package/lib/locale/en.js +11 -0
  134. package/lib/locale/en.js.map +1 -1
  135. package/lib/locale/es.d.ts +11 -0
  136. package/lib/locale/es.js +11 -0
  137. package/lib/locale/es.js.map +1 -1
  138. package/lib/locale/et.d.ts +11 -0
  139. package/lib/locale/et.js +11 -0
  140. package/lib/locale/et.js.map +1 -1
  141. package/lib/locale/fa.d.ts +11 -0
  142. package/lib/locale/fa.js +11 -0
  143. package/lib/locale/fa.js.map +1 -1
  144. package/lib/locale/fi.d.ts +11 -0
  145. package/lib/locale/fi.js +11 -0
  146. package/lib/locale/fi.js.map +1 -1
  147. package/lib/locale/fr.d.ts +11 -0
  148. package/lib/locale/fr.js +11 -0
  149. package/lib/locale/fr.js.map +1 -1
  150. package/lib/locale/he.d.ts +11 -0
  151. package/lib/locale/he.js +11 -0
  152. package/lib/locale/he.js.map +1 -1
  153. package/lib/locale/hr.d.ts +11 -0
  154. package/lib/locale/hr.js +11 -0
  155. package/lib/locale/hr.js.map +1 -1
  156. package/lib/locale/hu.d.ts +11 -0
  157. package/lib/locale/hu.js +11 -0
  158. package/lib/locale/hu.js.map +1 -1
  159. package/lib/locale/id.d.ts +11 -0
  160. package/lib/locale/id.js +11 -0
  161. package/lib/locale/id.js.map +1 -1
  162. package/lib/locale/it.d.ts +11 -0
  163. package/lib/locale/it.js +11 -0
  164. package/lib/locale/it.js.map +1 -1
  165. package/lib/locale/ja.d.ts +11 -0
  166. package/lib/locale/ja.js +11 -0
  167. package/lib/locale/ja.js.map +1 -1
  168. package/lib/locale/km.d.ts +11 -0
  169. package/lib/locale/km.js +11 -0
  170. package/lib/locale/km.js.map +1 -1
  171. package/lib/locale/ko.d.ts +11 -0
  172. package/lib/locale/ko.js +11 -0
  173. package/lib/locale/ko.js.map +1 -1
  174. package/lib/locale/lt.d.ts +11 -0
  175. package/lib/locale/lt.js +11 -0
  176. package/lib/locale/lt.js.map +1 -1
  177. package/lib/locale/lv.d.ts +11 -0
  178. package/lib/locale/lv.js +11 -0
  179. package/lib/locale/lv.js.map +1 -1
  180. package/lib/locale/nl.d.ts +11 -0
  181. package/lib/locale/nl.js +11 -0
  182. package/lib/locale/nl.js.map +1 -1
  183. package/lib/locale/no.d.ts +11 -0
  184. package/lib/locale/no.js +11 -0
  185. package/lib/locale/no.js.map +1 -1
  186. package/lib/locale/pl.d.ts +11 -0
  187. package/lib/locale/pl.js +11 -0
  188. package/lib/locale/pl.js.map +1 -1
  189. package/lib/locale/pt.d.ts +11 -0
  190. package/lib/locale/pt.js +11 -0
  191. package/lib/locale/pt.js.map +1 -1
  192. package/lib/locale/ro.d.ts +11 -0
  193. package/lib/locale/ro.js +11 -0
  194. package/lib/locale/ro.js.map +1 -1
  195. package/lib/locale/ru.d.ts +11 -0
  196. package/lib/locale/ru.js +11 -0
  197. package/lib/locale/ru.js.map +1 -1
  198. package/lib/locale/sk.d.ts +11 -0
  199. package/lib/locale/sk.js +11 -0
  200. package/lib/locale/sk.js.map +1 -1
  201. package/lib/locale/sl.d.ts +11 -0
  202. package/lib/locale/sl.js +11 -0
  203. package/lib/locale/sl.js.map +1 -1
  204. package/lib/locale/sr-Cyrl.d.ts +11 -0
  205. package/lib/locale/sr-Cyrl.js +11 -0
  206. package/lib/locale/sr-Cyrl.js.map +1 -1
  207. package/lib/locale/sr-Latn.d.ts +11 -0
  208. package/lib/locale/sr-Latn.js +11 -0
  209. package/lib/locale/sr-Latn.js.map +1 -1
  210. package/lib/locale/sv.d.ts +11 -0
  211. package/lib/locale/sv.js +11 -0
  212. package/lib/locale/sv.js.map +1 -1
  213. package/lib/locale/th.d.ts +11 -0
  214. package/lib/locale/th.js +11 -0
  215. package/lib/locale/th.js.map +1 -1
  216. package/lib/locale/tr.d.ts +11 -0
  217. package/lib/locale/tr.js +11 -0
  218. package/lib/locale/tr.js.map +1 -1
  219. package/lib/locale/uk.d.ts +11 -0
  220. package/lib/locale/uk.js +11 -0
  221. package/lib/locale/uk.js.map +1 -1
  222. package/lib/locale/vi.d.ts +11 -0
  223. package/lib/locale/vi.js +11 -0
  224. package/lib/locale/vi.js.map +1 -1
  225. package/lib/locale/zh-Hans.d.ts +11 -0
  226. package/lib/locale/zh-Hans.js +11 -0
  227. package/lib/locale/zh-Hans.js.map +1 -1
  228. package/lib/locale/zh-Hant.d.ts +11 -0
  229. package/lib/locale/zh-Hant.js +11 -0
  230. package/lib/locale/zh-Hant.js.map +1 -1
  231. package/lib/util/index.d.ts +1 -0
  232. package/lib/util/index.js +1 -0
  233. package/lib/util/index.js.map +1 -1
  234. package/lib/util/timeUtils.d.ts +1 -0
  235. package/lib/util/timeUtils.js +4 -0
  236. package/lib/util/timeUtils.js.map +1 -0
  237. package/package.json +1 -1
@@ -39,11 +39,12 @@ function closeScrollStrategy(data) {
39
39
  function onScroll(e) {
40
40
  data.isActive.value = false;
41
41
  }
42
- bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll);
42
+ bindScroll(data.target.value ?? data.contentEl.value, onScroll);
43
43
  }
44
44
  function blockScrollStrategy(data, props) {
45
45
  const offsetParent = data.root.value?.offsetParent;
46
- const scrollElements = [...new Set([...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined), ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined)])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'));
46
+ const target = Array.isArray(data.target.value) ? document.elementFromPoint(...data.target.value) : data.target.value;
47
+ const scrollElements = [...new Set([...getScrollParents(target, props.contained ? offsetParent : undefined), ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined)])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'));
47
48
  const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;
48
49
  const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);
49
50
  if (scrollableParent) {
@@ -90,7 +91,7 @@ function repositionScrollStrategy(data, props, scope) {
90
91
  }
91
92
  ric = (typeof requestIdleCallback === 'undefined' ? cb => cb() : requestIdleCallback)(() => {
92
93
  scope.run(() => {
93
- bindScroll(data.targetEl.value ?? data.contentEl.value, e => {
94
+ bindScroll(data.target.value ?? data.contentEl.value, e => {
94
95
  if (slow) {
95
96
  // If the position calculation is slow,
96
97
  // defer updates until scrolling is finished.
@@ -115,7 +116,8 @@ function repositionScrollStrategy(data, props, scope) {
115
116
  }
116
117
 
117
118
  /** @private */
118
- function bindScroll(el, onScroll) {
119
+ function bindScroll(target, onScroll) {
120
+ const el = Array.isArray(target) ? document.elementFromPoint(...target) : target;
119
121
  const scrollElements = [document, ...getScrollParents(el)];
120
122
  scrollElements.forEach(el => {
121
123
  el.addEventListener('scroll', onScroll, {
@@ -1 +1 @@
1
- {"version":3,"file":"scrollStrategies.js","names":["effectScope","onScopeDispose","watchEffect","requestNewFrame","convertToUnit","getScrollParents","hasScrollbar","IN_BROWSER","propsFactory","scrollStrategies","none","close","closeScrollStrategy","block","blockScrollStrategy","reposition","repositionScrollStrategy","makeScrollStrategyProps","scrollStrategy","type","String","Function","default","validator","val","useScrollStrategies","props","data","scope","stop","isActive","value","Promise","resolve","setTimeout","active","run","onScroll","e","bindScroll","targetEl","contentEl","offsetParent","root","scrollElements","Set","contained","undefined","filter","el","classList","contains","scrollbarWidth","window","innerWidth","document","documentElement","offsetWidth","scrollableParent","add","forEach","i","style","setProperty","scrollLeft","scrollTop","x","parseFloat","getPropertyValue","y","scrollBehavior","removeProperty","remove","slow","raf","ric","update","start","performance","now","updateLocation","time","requestIdleCallback","cb","cancelAnimationFrame","requestAnimationFrame","cancelIdleCallback","addEventListener","passive","removeEventListener"],"sources":["../../../src/components/VOverlay/scrollStrategies.ts"],"sourcesContent":["// Utilities\nimport { effectScope, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref<HTMLElement | undefined>\n contentEl: Ref<HTMLElement | undefined>\n targetEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n updateLocation: Ref<((e: Event) => void) | undefined>\n}\n\nexport type ScrollStrategyFunction = (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) => void\n\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\nexport interface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ScrollStrategyFunction\n contained: boolean | undefined\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType<StrategyProps['scrollStrategy']>,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n}, 'VOverlay-scroll-strategies')\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await new Promise(resolve => setTimeout(resolve))\n scope.active && scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props, scope!)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props, scope!)\n }\n })\n })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData, props: StrategyProps) {\n const offsetParent = data.root.value?.offsetParent\n const scrollElements = [...new Set([\n ...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined),\n ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft))\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop))\n\n if (el !== document.documentElement) {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n }\n\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'))\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'))\n\n const scrollBehavior = el.style.scrollBehavior\n\n el.style.scrollBehavior = 'auto'\n el.style.removeProperty('--v-body-scroll-x')\n el.style.removeProperty('--v-body-scroll-y')\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n\n el.scrollLeft = -x\n el.scrollTop = -y\n\n el.style.scrollBehavior = scrollBehavior\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) {\n let slow = false\n let raf = -1\n let ric = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n ric = (typeof requestIdleCallback === 'undefined' ? (cb: Function) => cb() : requestIdleCallback)(() => {\n scope.run(() => {\n bindScroll(data.targetEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n })\n })\n\n onScopeDispose(() => {\n typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric)\n cancelAnimationFrame(raf)\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"scrollStrategies.js","names":["effectScope","onScopeDispose","watchEffect","requestNewFrame","convertToUnit","getScrollParents","hasScrollbar","IN_BROWSER","propsFactory","scrollStrategies","none","close","closeScrollStrategy","block","blockScrollStrategy","reposition","repositionScrollStrategy","makeScrollStrategyProps","scrollStrategy","type","String","Function","default","validator","val","useScrollStrategies","props","data","scope","stop","isActive","value","Promise","resolve","setTimeout","active","run","onScroll","e","bindScroll","target","contentEl","offsetParent","root","Array","isArray","document","elementFromPoint","scrollElements","Set","contained","undefined","filter","el","classList","contains","scrollbarWidth","window","innerWidth","documentElement","offsetWidth","scrollableParent","add","forEach","i","style","setProperty","scrollLeft","scrollTop","x","parseFloat","getPropertyValue","y","scrollBehavior","removeProperty","remove","slow","raf","ric","update","start","performance","now","updateLocation","time","requestIdleCallback","cb","cancelAnimationFrame","requestAnimationFrame","cancelIdleCallback","addEventListener","passive","removeEventListener"],"sources":["../../../src/components/VOverlay/scrollStrategies.ts"],"sourcesContent":["// Utilities\nimport { effectScope, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref<HTMLElement | undefined>\n contentEl: Ref<HTMLElement | undefined>\n targetEl: Ref<HTMLElement | undefined>\n target: Ref<HTMLElement | [x: number, y: number] | undefined>\n isActive: Ref<boolean>\n updateLocation: Ref<((e: Event) => void) | undefined>\n}\n\nexport type ScrollStrategyFunction = (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) => void\n\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\nexport interface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ScrollStrategyFunction\n contained: boolean | undefined\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType<StrategyProps['scrollStrategy']>,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n}, 'VOverlay-scroll-strategies')\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await new Promise(resolve => setTimeout(resolve))\n scope.active && scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props, scope!)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props, scope!)\n }\n })\n })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.target.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData, props: StrategyProps) {\n const offsetParent = data.root.value?.offsetParent\n const target = Array.isArray(data.target.value)\n ? document.elementFromPoint(...data.target.value)\n : data.target.value\n const scrollElements = [...new Set([\n ...getScrollParents(target, props.contained ? offsetParent : undefined),\n ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft))\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop))\n\n if (el !== document.documentElement) {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n }\n\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'))\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'))\n\n const scrollBehavior = el.style.scrollBehavior\n\n el.style.scrollBehavior = 'auto'\n el.style.removeProperty('--v-body-scroll-x')\n el.style.removeProperty('--v-body-scroll-y')\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n\n el.scrollLeft = -x\n el.scrollTop = -y\n\n el.style.scrollBehavior = scrollBehavior\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) {\n let slow = false\n let raf = -1\n let ric = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n ric = (typeof requestIdleCallback === 'undefined' ? (cb: Function) => cb() : requestIdleCallback)(() => {\n scope.run(() => {\n bindScroll(data.target.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n })\n })\n\n onScopeDispose(() => {\n typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric)\n cancelAnimationFrame(raf)\n })\n}\n\n/** @private */\nfunction bindScroll (target: HTMLElement | [x: number, y: number] | undefined, onScroll: (e: Event) => void) {\n const el = Array.isArray(target) ? document.elementFromPoint(...target) : target\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -39,12 +39,15 @@
39
39
  height: 100%;
40
40
  justify-content: center;
41
41
  left: 0;
42
- pointer-events: none;
43
42
  position: absolute;
44
43
  top: 0;
45
44
  width: 100%;
46
45
  }
47
46
 
47
+ .v-progress-linear--clickable .v-progress-linear__content {
48
+ pointer-events: none;
49
+ }
50
+
48
51
  .v-progress-linear__determinate,
49
52
  .v-progress-linear__indeterminate {
50
53
  background: currentColor;
@@ -125,7 +125,8 @@ export const VProgressLinear = genericComponent()({
125
125
  'v-progress-linear--reverse': isReversed.value,
126
126
  'v-progress-linear--rounded': props.rounded,
127
127
  'v-progress-linear--rounded-bar': props.roundedBar,
128
- 'v-progress-linear--striped': props.striped
128
+ 'v-progress-linear--striped': props.striped,
129
+ 'v-progress-linear--clickable': props.clickable
129
130
  }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class]),
130
131
  "style": _normalizeStyle([{
131
132
  bottom: props.location === 'bottom' ? 0 : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"VProgressLinear.js","names":["useBackgroundColor","useTextColor","makeComponentProps","useIntersectionObserver","useRtl","makeLocationProps","useLocation","useProxiedModel","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","computed","Transition","clamp","convertToUnit","genericComponent","IN_BROWSER","propsFactory","useRender","makeVProgressLinearProps","absolute","Boolean","active","type","default","bgColor","String","bgOpacity","Number","bufferValue","bufferColor","bufferOpacity","clickable","color","height","indeterminate","max","modelValue","opacity","reverse","stream","striped","roundedBar","location","VProgressLinear","name","props","emits","value","setup","_ref","slots","progress","isRtl","rtlClasses","themeClasses","locationStyles","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","bufferColorClasses","bufferColorStyles","barColorClasses","barColorStyles","roundedClasses","intersectionRef","isIntersecting","parseFloat","normalizedBuffer","normalizedValue","isReversed","transition","isForcedColorsModeActive","window","matchMedia","matches","handleClick","e","left","right","width","getBoundingClientRect","clientX","Math","round","_createVNode","tag","_normalizeClass","rounded","class","_normalizeStyle","bottom","undefined","top","style","min","_createElementVNode","borderTop","map","bar","buffer"],"sources":["../../../src/components/VProgressLinear/VProgressLinear.tsx"],"sourcesContent":["// Styles\nimport './VProgressLinear.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useRtl } from '@/composables/locale'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, Transition } from 'vue'\nimport { clamp, convertToUnit, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\ntype VProgressLinearSlots = {\n default: { value: number, buffer: number }\n}\n\nexport const makeVProgressLinearProps = propsFactory({\n absolute: Boolean,\n active: {\n type: Boolean,\n default: true,\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0,\n },\n bufferColor: String,\n bufferOpacity: [Number, String],\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n opacity: [Number, String],\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n\n ...makeComponentProps(),\n ...makeLocationProps({ location: 'top' } as const),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VProgressLinear')\n\nexport const VProgressLinear = genericComponent<VProgressLinearSlots>()({\n name: 'VProgressLinear',\n\n props: makeVProgressLinearProps(),\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const progress = useProxiedModel(props, 'modelValue')\n const { isRtl, rtlClasses } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { locationStyles } = useLocation(props)\n const { textColorClasses, textColorStyles } = useTextColor(() => props.color)\n const {\n backgroundColorClasses,\n backgroundColorStyles,\n } = useBackgroundColor(() => props.bgColor || props.color)\n const {\n backgroundColorClasses: bufferColorClasses,\n backgroundColorStyles: bufferColorStyles,\n } = useBackgroundColor(() => props.bufferColor || props.bgColor || props.color)\n const {\n backgroundColorClasses: barColorClasses,\n backgroundColorStyles: barColorStyles,\n } = useBackgroundColor(() => props.color)\n const { roundedClasses } = useRounded(props)\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const max = computed(() => parseFloat(props.max))\n const height = computed(() => parseFloat(props.height))\n const normalizedBuffer = computed(() => clamp(parseFloat(props.bufferValue) / max.value * 100, 0, 100))\n const normalizedValue = computed(() => clamp(parseFloat(progress.value) / max.value * 100, 0, 100))\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition')\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches\n\n function handleClick (e: MouseEvent) {\n if (!intersectionRef.value) return\n\n const { left, right, width } = intersectionRef.value.getBoundingClientRect()\n const value = isReversed.value ? (width - e.clientX) + (right - width) : e.clientX - left\n\n progress.value = Math.round(value / width * max.value)\n }\n\n useRender(() => (\n <props.tag\n ref={ intersectionRef }\n class={[\n 'v-progress-linear',\n {\n 'v-progress-linear--absolute': props.absolute,\n 'v-progress-linear--active': props.active && isIntersecting.value,\n 'v-progress-linear--reverse': isReversed.value,\n 'v-progress-linear--rounded': props.rounded,\n 'v-progress-linear--rounded-bar': props.roundedBar,\n 'v-progress-linear--striped': props.striped,\n },\n roundedClasses.value,\n themeClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n {\n bottom: props.location === 'bottom' ? 0 : undefined,\n top: props.location === 'top' ? 0 : undefined,\n height: props.active ? convertToUnit(height.value) : 0,\n '--v-progress-linear-height': convertToUnit(height.value),\n ...(props.absolute ? locationStyles.value : {}),\n },\n props.style,\n ]}\n role=\"progressbar\"\n aria-hidden={ props.active ? 'false' : 'true' }\n aria-valuemin=\"0\"\n aria-valuemax={ props.max }\n aria-valuenow={ props.indeterminate ? undefined : Math.min(parseFloat(progress.value), max.value) }\n onClick={ props.clickable && handleClick }\n >\n { props.stream && (\n <div\n key=\"stream\"\n class={[\n 'v-progress-linear__stream',\n textColorClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),\n borderTop: `${convertToUnit(height.value / 2)} dotted`,\n opacity: parseFloat(props.bufferOpacity!),\n top: `calc(50% - ${convertToUnit(height.value / 4)})`,\n width: convertToUnit(100 - normalizedBuffer.value, '%'),\n '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1)),\n }}\n />\n )}\n\n <div\n class={[\n 'v-progress-linear__background',\n !isForcedColorsModeActive ? backgroundColorClasses.value : undefined,\n ]}\n style={[\n backgroundColorStyles.value,\n {\n opacity: parseFloat(props.bgOpacity!),\n width: props.stream ? 0 : undefined,\n },\n ]}\n />\n\n <div\n class={[\n 'v-progress-linear__buffer',\n !isForcedColorsModeActive ? bufferColorClasses.value : undefined,\n ]}\n style={[\n bufferColorStyles.value,\n {\n opacity: parseFloat(props.bufferOpacity!),\n width: convertToUnit(normalizedBuffer.value, '%'),\n },\n ]}\n />\n\n <Transition name={ transition.value }>\n { !props.indeterminate ? (\n <div\n class={[\n 'v-progress-linear__determinate',\n !isForcedColorsModeActive ? barColorClasses.value : undefined,\n ]}\n style={[\n barColorStyles.value,\n { width: convertToUnit(normalizedValue.value, '%') },\n ]}\n />\n ) : (\n <div class=\"v-progress-linear__indeterminate\">\n {['long', 'short'].map(bar => (\n <div\n key={ bar }\n class={[\n 'v-progress-linear__indeterminate',\n bar,\n !isForcedColorsModeActive ? barColorClasses.value : undefined,\n ]}\n style={ barColorStyles.value }\n />\n ))}\n </div>\n )}\n </Transition>\n\n { slots.default && (\n <div class=\"v-progress-linear__content\">\n { slots.default({ value: normalizedValue.value, buffer: normalizedBuffer.value }) }\n </div>\n )}\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VProgressLinear = InstanceType<typeof VProgressLinear>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VProgressLinear.js","names":["useBackgroundColor","useTextColor","makeComponentProps","useIntersectionObserver","useRtl","makeLocationProps","useLocation","useProxiedModel","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","computed","Transition","clamp","convertToUnit","genericComponent","IN_BROWSER","propsFactory","useRender","makeVProgressLinearProps","absolute","Boolean","active","type","default","bgColor","String","bgOpacity","Number","bufferValue","bufferColor","bufferOpacity","clickable","color","height","indeterminate","max","modelValue","opacity","reverse","stream","striped","roundedBar","location","VProgressLinear","name","props","emits","value","setup","_ref","slots","progress","isRtl","rtlClasses","themeClasses","locationStyles","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","bufferColorClasses","bufferColorStyles","barColorClasses","barColorStyles","roundedClasses","intersectionRef","isIntersecting","parseFloat","normalizedBuffer","normalizedValue","isReversed","transition","isForcedColorsModeActive","window","matchMedia","matches","handleClick","e","left","right","width","getBoundingClientRect","clientX","Math","round","_createVNode","tag","_normalizeClass","rounded","class","_normalizeStyle","bottom","undefined","top","style","min","_createElementVNode","borderTop","map","bar","buffer"],"sources":["../../../src/components/VProgressLinear/VProgressLinear.tsx"],"sourcesContent":["// Styles\nimport './VProgressLinear.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useRtl } from '@/composables/locale'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, Transition } from 'vue'\nimport { clamp, convertToUnit, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\ntype VProgressLinearSlots = {\n default: { value: number, buffer: number }\n}\n\nexport const makeVProgressLinearProps = propsFactory({\n absolute: Boolean,\n active: {\n type: Boolean,\n default: true,\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0,\n },\n bufferColor: String,\n bufferOpacity: [Number, String],\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n opacity: [Number, String],\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n\n ...makeComponentProps(),\n ...makeLocationProps({ location: 'top' } as const),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VProgressLinear')\n\nexport const VProgressLinear = genericComponent<VProgressLinearSlots>()({\n name: 'VProgressLinear',\n\n props: makeVProgressLinearProps(),\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const progress = useProxiedModel(props, 'modelValue')\n const { isRtl, rtlClasses } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { locationStyles } = useLocation(props)\n const { textColorClasses, textColorStyles } = useTextColor(() => props.color)\n const {\n backgroundColorClasses,\n backgroundColorStyles,\n } = useBackgroundColor(() => props.bgColor || props.color)\n const {\n backgroundColorClasses: bufferColorClasses,\n backgroundColorStyles: bufferColorStyles,\n } = useBackgroundColor(() => props.bufferColor || props.bgColor || props.color)\n const {\n backgroundColorClasses: barColorClasses,\n backgroundColorStyles: barColorStyles,\n } = useBackgroundColor(() => props.color)\n const { roundedClasses } = useRounded(props)\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const max = computed(() => parseFloat(props.max))\n const height = computed(() => parseFloat(props.height))\n const normalizedBuffer = computed(() => clamp(parseFloat(props.bufferValue) / max.value * 100, 0, 100))\n const normalizedValue = computed(() => clamp(parseFloat(progress.value) / max.value * 100, 0, 100))\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition')\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches\n\n function handleClick (e: MouseEvent) {\n if (!intersectionRef.value) return\n\n const { left, right, width } = intersectionRef.value.getBoundingClientRect()\n const value = isReversed.value ? (width - e.clientX) + (right - width) : e.clientX - left\n\n progress.value = Math.round(value / width * max.value)\n }\n\n useRender(() => (\n <props.tag\n ref={ intersectionRef }\n class={[\n 'v-progress-linear',\n {\n 'v-progress-linear--absolute': props.absolute,\n 'v-progress-linear--active': props.active && isIntersecting.value,\n 'v-progress-linear--reverse': isReversed.value,\n 'v-progress-linear--rounded': props.rounded,\n 'v-progress-linear--rounded-bar': props.roundedBar,\n 'v-progress-linear--striped': props.striped,\n 'v-progress-linear--clickable': props.clickable,\n },\n roundedClasses.value,\n themeClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n {\n bottom: props.location === 'bottom' ? 0 : undefined,\n top: props.location === 'top' ? 0 : undefined,\n height: props.active ? convertToUnit(height.value) : 0,\n '--v-progress-linear-height': convertToUnit(height.value),\n ...(props.absolute ? locationStyles.value : {}),\n },\n props.style,\n ]}\n role=\"progressbar\"\n aria-hidden={ props.active ? 'false' : 'true' }\n aria-valuemin=\"0\"\n aria-valuemax={ props.max }\n aria-valuenow={ props.indeterminate ? undefined : Math.min(parseFloat(progress.value), max.value) }\n onClick={ props.clickable && handleClick }\n >\n { props.stream && (\n <div\n key=\"stream\"\n class={[\n 'v-progress-linear__stream',\n textColorClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),\n borderTop: `${convertToUnit(height.value / 2)} dotted`,\n opacity: parseFloat(props.bufferOpacity!),\n top: `calc(50% - ${convertToUnit(height.value / 4)})`,\n width: convertToUnit(100 - normalizedBuffer.value, '%'),\n '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1)),\n }}\n />\n )}\n\n <div\n class={[\n 'v-progress-linear__background',\n !isForcedColorsModeActive ? backgroundColorClasses.value : undefined,\n ]}\n style={[\n backgroundColorStyles.value,\n {\n opacity: parseFloat(props.bgOpacity!),\n width: props.stream ? 0 : undefined,\n },\n ]}\n />\n\n <div\n class={[\n 'v-progress-linear__buffer',\n !isForcedColorsModeActive ? bufferColorClasses.value : undefined,\n ]}\n style={[\n bufferColorStyles.value,\n {\n opacity: parseFloat(props.bufferOpacity!),\n width: convertToUnit(normalizedBuffer.value, '%'),\n },\n ]}\n />\n\n <Transition name={ transition.value }>\n { !props.indeterminate ? (\n <div\n class={[\n 'v-progress-linear__determinate',\n !isForcedColorsModeActive ? barColorClasses.value : undefined,\n ]}\n style={[\n barColorStyles.value,\n { width: convertToUnit(normalizedValue.value, '%') },\n ]}\n />\n ) : (\n <div class=\"v-progress-linear__indeterminate\">\n {['long', 'short'].map(bar => (\n <div\n key={ bar }\n class={[\n 'v-progress-linear__indeterminate',\n bar,\n !isForcedColorsModeActive ? barColorClasses.value : undefined,\n ]}\n style={ barColorStyles.value }\n />\n ))}\n </div>\n )}\n </Transition>\n\n { slots.default && (\n <div class=\"v-progress-linear__content\">\n { slots.default({ value: normalizedValue.value, buffer: normalizedBuffer.value }) }\n </div>\n )}\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VProgressLinear = InstanceType<typeof VProgressLinear>\n"],"mappings":"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","ignoreList":[]}
@@ -28,7 +28,7 @@
28
28
  width: 100%
29
29
  transition-property: width, left, right
30
30
  transition: inherit
31
-
31
+
32
32
  @media (forced-colors: active)
33
33
  .v-progress-linear__buffer
34
34
  background-color: highlight
@@ -40,11 +40,14 @@
40
40
  height: 100%
41
41
  justify-content: center
42
42
  left: 0
43
- pointer-events: none
44
43
  position: absolute
45
44
  top: 0
46
45
  width: 100%
47
46
 
47
+ .v-progress-linear--clickable
48
+ .v-progress-linear__content
49
+ pointer-events: none
50
+
48
51
  .v-progress-linear__determinate,
49
52
  .v-progress-linear__indeterminate
50
53
  background: $progress-linear-background
@@ -24,6 +24,7 @@ export declare const makeVRangeSliderProps: <Defaults extends {
24
24
  trackSize?: unknown;
25
25
  direction?: unknown;
26
26
  reverse?: unknown;
27
+ noKeyboard?: unknown;
27
28
  focused?: unknown;
28
29
  'onUpdate:focused'?: unknown;
29
30
  errorMessages?: unknown;
@@ -257,6 +258,10 @@ export declare const makeVRangeSliderProps: <Defaults extends {
257
258
  type: PropType<unknown extends Defaults["reverse"] ? boolean : boolean | Defaults["reverse"]>;
258
259
  default: unknown extends Defaults["reverse"] ? boolean : boolean | Defaults["reverse"];
259
260
  };
261
+ noKeyboard: unknown extends Defaults["noKeyboard"] ? BooleanConstructor : {
262
+ type: PropType<unknown extends Defaults["noKeyboard"] ? boolean : boolean | Defaults["noKeyboard"]>;
263
+ default: unknown extends Defaults["noKeyboard"] ? boolean : boolean | Defaults["noKeyboard"];
264
+ };
260
265
  focused: unknown extends Defaults["focused"] ? BooleanConstructor : {
261
266
  type: PropType<unknown extends Defaults["focused"] ? boolean : boolean | Defaults["focused"]>;
262
267
  default: unknown extends Defaults["focused"] ? boolean : boolean | Defaults["focused"];
@@ -452,6 +457,7 @@ export declare const VRangeSlider: {
452
457
  tickSize: string | number;
453
458
  trackSize: string | number;
454
459
  thumbSize: string | number;
460
+ noKeyboard: boolean;
455
461
  } & {
456
462
  name?: string | undefined;
457
463
  id?: string | undefined;
@@ -802,6 +808,7 @@ export declare const VRangeSlider: {
802
808
  trackSize: string | number;
803
809
  thumbLabel: boolean | "always" | undefined;
804
810
  thumbSize: string | number;
811
+ noKeyboard: boolean;
805
812
  }, true, {}, import("vue").SlotsType<Partial<{
806
813
  default: (arg: import("../VInput/VInput.js").VInputSlot) => import("vue").VNode[];
807
814
  prepend: (arg: import("../VInput/VInput.js").VInputSlot) => import("vue").VNode[];
@@ -852,6 +859,7 @@ export declare const VRangeSlider: {
852
859
  tickSize: string | number;
853
860
  trackSize: string | number;
854
861
  thumbSize: string | number;
862
+ noKeyboard: boolean;
855
863
  } & {
856
864
  name?: string | undefined;
857
865
  id?: string | undefined;
@@ -1197,6 +1205,7 @@ export declare const VRangeSlider: {
1197
1205
  trackSize: string | number;
1198
1206
  thumbLabel: boolean | "always" | undefined;
1199
1207
  thumbSize: string | number;
1208
+ noKeyboard: boolean;
1200
1209
  }>;
1201
1210
  __isFragment?: never;
1202
1211
  __isTeleport?: never;
@@ -1230,6 +1239,7 @@ export declare const VRangeSlider: {
1230
1239
  tickSize: string | number;
1231
1240
  trackSize: string | number;
1232
1241
  thumbSize: string | number;
1242
+ noKeyboard: boolean;
1233
1243
  } & {
1234
1244
  name?: string | undefined;
1235
1245
  id?: string | undefined;
@@ -1580,6 +1590,7 @@ export declare const VRangeSlider: {
1580
1590
  trackSize: string | number;
1581
1591
  thumbLabel: boolean | "always" | undefined;
1582
1592
  thumbSize: string | number;
1593
+ noKeyboard: boolean;
1583
1594
  }, {}, string, import("vue").SlotsType<Partial<{
1584
1595
  default: (arg: import("../VInput/VInput.js").VInputSlot) => import("vue").VNode[];
1585
1596
  prepend: (arg: import("../VInput/VInput.js").VInputSlot) => import("vue").VNode[];
@@ -1672,6 +1683,7 @@ export declare const VRangeSlider: {
1672
1683
  validator: (v: any) => boolean;
1673
1684
  };
1674
1685
  reverse: BooleanConstructor;
1686
+ noKeyboard: BooleanConstructor;
1675
1687
  focused: BooleanConstructor;
1676
1688
  'onUpdate:focused': PropType<(args_0: boolean) => void>;
1677
1689
  errorMessages: {
@@ -1802,6 +1814,7 @@ export declare const VRangeSlider: {
1802
1814
  validator: (v: any) => boolean;
1803
1815
  };
1804
1816
  reverse: BooleanConstructor;
1817
+ noKeyboard: BooleanConstructor;
1805
1818
  focused: BooleanConstructor;
1806
1819
  'onUpdate:focused': PropType<(args_0: boolean) => void>;
1807
1820
  errorMessages: {
@@ -58,6 +58,7 @@ export declare const makeVSliderProps: <Defaults extends {
58
58
  trackFillColor?: unknown;
59
59
  trackSize?: unknown;
60
60
  reverse?: unknown;
61
+ noKeyboard?: unknown;
61
62
  } = {}>(defaults?: Defaults | undefined) => {
62
63
  modelValue: unknown extends Defaults["modelValue"] ? {
63
64
  type: (StringConstructor | NumberConstructor)[];
@@ -421,6 +422,10 @@ export declare const makeVSliderProps: <Defaults extends {
421
422
  type: import("vue").PropType<unknown extends Defaults["reverse"] ? boolean : boolean | Defaults["reverse"]>;
422
423
  default: unknown extends Defaults["reverse"] ? boolean : boolean | Defaults["reverse"];
423
424
  };
425
+ noKeyboard: unknown extends Defaults["noKeyboard"] ? BooleanConstructor : {
426
+ type: import("vue").PropType<unknown extends Defaults["noKeyboard"] ? boolean : boolean | Defaults["noKeyboard"]>;
427
+ default: unknown extends Defaults["noKeyboard"] ? boolean : boolean | Defaults["noKeyboard"];
428
+ };
424
429
  };
425
430
  export declare const VSlider: {
426
431
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
@@ -451,6 +456,7 @@ export declare const VSlider: {
451
456
  tickSize: string | number;
452
457
  trackSize: string | number;
453
458
  thumbSize: string | number;
459
+ noKeyboard: boolean;
454
460
  } & {
455
461
  name?: string | undefined;
456
462
  id?: string | undefined;
@@ -800,6 +806,7 @@ export declare const VSlider: {
800
806
  trackSize: string | number;
801
807
  thumbLabel: boolean | "always" | undefined;
802
808
  thumbSize: string | number;
809
+ noKeyboard: boolean;
803
810
  }, true, {}, import("vue").SlotsType<Partial<{
804
811
  default: (arg: VInputSlot) => import("vue").VNode[];
805
812
  prepend: (arg: VInputSlot) => import("vue").VNode[];
@@ -849,6 +856,7 @@ export declare const VSlider: {
849
856
  tickSize: string | number;
850
857
  trackSize: string | number;
851
858
  thumbSize: string | number;
859
+ noKeyboard: boolean;
852
860
  } & {
853
861
  name?: string | undefined;
854
862
  id?: string | undefined;
@@ -1193,6 +1201,7 @@ export declare const VSlider: {
1193
1201
  trackSize: string | number;
1194
1202
  thumbLabel: boolean | "always" | undefined;
1195
1203
  thumbSize: string | number;
1204
+ noKeyboard: boolean;
1196
1205
  }>;
1197
1206
  __isFragment?: never;
1198
1207
  __isTeleport?: never;
@@ -1225,6 +1234,7 @@ export declare const VSlider: {
1225
1234
  tickSize: string | number;
1226
1235
  trackSize: string | number;
1227
1236
  thumbSize: string | number;
1237
+ noKeyboard: boolean;
1228
1238
  } & {
1229
1239
  name?: string | undefined;
1230
1240
  id?: string | undefined;
@@ -1574,6 +1584,7 @@ export declare const VSlider: {
1574
1584
  trackSize: string | number;
1575
1585
  thumbLabel: boolean | "always" | undefined;
1576
1586
  thumbSize: string | number;
1587
+ noKeyboard: boolean;
1577
1588
  }, {}, string, import("vue").SlotsType<Partial<{
1578
1589
  default: (arg: VInputSlot) => import("vue").VNode[];
1579
1590
  prepend: (arg: VInputSlot) => import("vue").VNode[];
@@ -1717,6 +1728,7 @@ export declare const VSlider: {
1717
1728
  default: number;
1718
1729
  };
1719
1730
  reverse: BooleanConstructor;
1731
+ noKeyboard: BooleanConstructor;
1720
1732
  }, import("vue").ExtractPropTypes<{
1721
1733
  modelValue: {
1722
1734
  type: (StringConstructor | NumberConstructor)[];
@@ -1846,5 +1858,6 @@ export declare const VSlider: {
1846
1858
  default: number;
1847
1859
  };
1848
1860
  reverse: BooleanConstructor;
1861
+ noKeyboard: BooleanConstructor;
1849
1862
  }>>;
1850
1863
  export type VSlider = InstanceType<typeof VSlider>;
@@ -56,7 +56,8 @@ export const VSlider = genericComponent()({
56
56
  trackContainerRef,
57
57
  position,
58
58
  hasLabels,
59
- readonly
59
+ readonly,
60
+ noKeyboard
60
61
  } = useSlider({
61
62
  props,
62
63
  steps,
@@ -132,6 +133,7 @@ export const VSlider = genericComponent()({
132
133
  "ref": thumbContainerRef,
133
134
  "aria-describedby": messagesId.value,
134
135
  "focused": isFocused.value,
136
+ "noKeyboard": noKeyboard.value,
135
137
  "min": min.value,
136
138
  "max": max.value,
137
139
  "modelValue": model.value,
@@ -1 +1 @@
1
- {"version":3,"file":"VSlider.js","names":["VSliderThumb","VSliderTrack","makeVInputProps","VInput","VLabel","makeSliderProps","useSlider","useSteps","makeFocusProps","useFocus","forwardRefs","useRtl","useProxiedModel","computed","ref","genericComponent","propsFactory","useRender","makeVSliderProps","modelValue","type","Number","String","default","VSlider","name","props","emits","value","v","start","end","setup","_ref","slots","emit","thumbContainerRef","inputRef","rtlClasses","steps","model","undefined","roundValue","min","max","mousePressed","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","readonly","onSliderStart","onSliderEnd","_ref2","roundedValue","onSliderMove","_ref3","getActiveThumb","$el","isFocused","focus","blur","trackStop","inputProps","filterProps","hasPrepend","label","prepend","_createVNode","_mergeProps","disabled","class","style","slotProps","_createElementVNode","_Fragment","id","_ref4","messagesId","elevation","ripple"],"sources":["../../../src/components/VSlider/VSlider.tsx"],"sourcesContent":["// Styles\nimport './VSlider.sass'\n\n// Components\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\n\n// Composables\nimport { makeSliderProps, useSlider, useSteps } from './slider'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSliderThumbSlots } from './VSliderThumb'\nimport type { VSliderTrackSlots } from './VSliderTrack'\nimport type { VInputSlot, VInputSlots } from '@/components/VInput/VInput'\n\nexport type VSliderSlots = VInputSlots & VSliderThumbSlots & VSliderTrackSlots & {\n label: VInputSlot\n}\n\nexport const makeVSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n}, 'VSlider')\n\nexport const VSlider = genericComponent<VSliderSlots>()({\n name: 'VSlider',\n\n props: makeVSliderProps(),\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n start: (value: number) => true,\n end: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const thumbContainerRef = ref<VSliderThumb>()\n const inputRef = ref<VInput>()\n const { rtlClasses } = useRtl()\n\n const steps = useSteps(props)\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n value => {\n return steps.roundValue(value == null ? steps.min.value : value)\n },\n )\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value)\n },\n onSliderEnd: ({ value }) => {\n const roundedValue = roundValue(value)\n model.value = roundedValue\n emit('end', roundedValue)\n },\n onSliderMove: ({ value }) => model.value = roundValue(value),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const inputProps = VInput.filterProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n <VInput\n ref={ inputRef }\n class={[\n 'v-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n rtlClasses.value,\n props.class,\n ]}\n style={ props.style }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? (\n props.label\n ? (\n <VLabel\n id={ slotProps.id.value }\n class=\"v-slider__label\"\n text={ props.label }\n />\n ) : undefined\n )}\n\n { slots.prepend?.(slotProps) }\n </>\n ) : undefined,\n default: ({ id, messagesId }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ !!props.disabled }\n readonly={ !!props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n aria-describedby={ messagesId.value }\n focused={ isFocused.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n ripple={ props.ripple }\n name={ props.name }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n })\n\n return forwardRefs({\n focus: () => thumbContainerRef.value?.$el.focus(),\n }, inputRef)\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VSlider.js","names":["VSliderThumb","VSliderTrack","makeVInputProps","VInput","VLabel","makeSliderProps","useSlider","useSteps","makeFocusProps","useFocus","forwardRefs","useRtl","useProxiedModel","computed","ref","genericComponent","propsFactory","useRender","makeVSliderProps","modelValue","type","Number","String","default","VSlider","name","props","emits","value","v","start","end","setup","_ref","slots","emit","thumbContainerRef","inputRef","rtlClasses","steps","model","undefined","roundValue","min","max","mousePressed","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","readonly","noKeyboard","onSliderStart","onSliderEnd","_ref2","roundedValue","onSliderMove","_ref3","getActiveThumb","$el","isFocused","focus","blur","trackStop","inputProps","filterProps","hasPrepend","label","prepend","_createVNode","_mergeProps","disabled","class","style","slotProps","_createElementVNode","_Fragment","id","_ref4","messagesId","elevation","ripple"],"sources":["../../../src/components/VSlider/VSlider.tsx"],"sourcesContent":["// Styles\nimport './VSlider.sass'\n\n// Components\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\n\n// Composables\nimport { makeSliderProps, useSlider, useSteps } from './slider'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSliderThumbSlots } from './VSliderThumb'\nimport type { VSliderTrackSlots } from './VSliderTrack'\nimport type { VInputSlot, VInputSlots } from '@/components/VInput/VInput'\n\nexport type VSliderSlots = VInputSlots & VSliderThumbSlots & VSliderTrackSlots & {\n label: VInputSlot\n}\n\nexport const makeVSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n}, 'VSlider')\n\nexport const VSlider = genericComponent<VSliderSlots>()({\n name: 'VSlider',\n\n props: makeVSliderProps(),\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n start: (value: number) => true,\n end: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const thumbContainerRef = ref<VSliderThumb>()\n const inputRef = ref<VInput>()\n const { rtlClasses } = useRtl()\n\n const steps = useSteps(props)\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n value => {\n return steps.roundValue(value == null ? steps.min.value : value)\n },\n )\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n noKeyboard,\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value)\n },\n onSliderEnd: ({ value }) => {\n const roundedValue = roundValue(value)\n model.value = roundedValue\n emit('end', roundedValue)\n },\n onSliderMove: ({ value }) => model.value = roundValue(value),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const inputProps = VInput.filterProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n <VInput\n ref={ inputRef }\n class={[\n 'v-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n rtlClasses.value,\n props.class,\n ]}\n style={ props.style }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? (\n props.label\n ? (\n <VLabel\n id={ slotProps.id.value }\n class=\"v-slider__label\"\n text={ props.label }\n />\n ) : undefined\n )}\n\n { slots.prepend?.(slotProps) }\n </>\n ) : undefined,\n default: ({ id, messagesId }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ !!props.disabled }\n readonly={ !!props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n aria-describedby={ messagesId.value }\n focused={ isFocused.value }\n noKeyboard={ noKeyboard.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n ripple={ props.ripple }\n name={ props.name }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n })\n\n return forwardRefs({\n focus: () => thumbContainerRef.value?.$el.focus(),\n }, inputRef)\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n"],"mappings":"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","ignoreList":[]}
@@ -15,6 +15,7 @@ export declare const makeVSliderThumbProps: <Defaults extends {
15
15
  position?: unknown;
16
16
  ripple?: unknown;
17
17
  name?: unknown;
18
+ noKeyboard?: unknown;
18
19
  } = {}>(defaults?: Defaults | undefined) => {
19
20
  class: unknown extends Defaults["class"] ? PropType<any> : {
20
21
  type: PropType<unknown extends Defaults["class"] ? any : any>;
@@ -100,6 +101,10 @@ export declare const makeVSliderThumbProps: <Defaults extends {
100
101
  type: PropType<unknown extends Defaults["name"] ? string : string | Defaults["name"]>;
101
102
  default: unknown extends Defaults["name"] ? string : string | Defaults["name"];
102
103
  };
104
+ noKeyboard: unknown extends Defaults["noKeyboard"] ? BooleanConstructor : {
105
+ type: PropType<unknown extends Defaults["noKeyboard"] ? boolean : boolean | Defaults["noKeyboard"]>;
106
+ default: unknown extends Defaults["noKeyboard"] ? boolean : boolean | Defaults["noKeyboard"];
107
+ };
103
108
  };
104
109
  export declare const VSliderThumb: {
105
110
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
@@ -113,6 +118,7 @@ export declare const VSliderThumb: {
113
118
  class?: string;
114
119
  keys?: string[];
115
120
  } | undefined;
121
+ noKeyboard: boolean;
116
122
  } & {
117
123
  name?: string | undefined;
118
124
  class?: any;
@@ -144,6 +150,7 @@ export declare const VSliderThumb: {
144
150
  class?: string;
145
151
  keys?: string[];
146
152
  } | undefined;
153
+ noKeyboard: boolean;
147
154
  }, true, {}, import("vue").SlotsType<Partial<{
148
155
  'thumb-label': (arg: {
149
156
  modelValue: number;
@@ -166,6 +173,7 @@ export declare const VSliderThumb: {
166
173
  class?: string;
167
174
  keys?: string[];
168
175
  } | undefined;
176
+ noKeyboard: boolean;
169
177
  } & {
170
178
  name?: string | undefined;
171
179
  class?: any;
@@ -195,6 +203,7 @@ export declare const VSliderThumb: {
195
203
  class?: string;
196
204
  keys?: string[];
197
205
  } | undefined;
206
+ noKeyboard: boolean;
198
207
  }>;
199
208
  __isFragment?: never;
200
209
  __isTeleport?: never;
@@ -210,6 +219,7 @@ export declare const VSliderThumb: {
210
219
  class?: string;
211
220
  keys?: string[];
212
221
  } | undefined;
222
+ noKeyboard: boolean;
213
223
  } & {
214
224
  name?: string | undefined;
215
225
  class?: any;
@@ -241,6 +251,7 @@ export declare const VSliderThumb: {
241
251
  class?: string;
242
252
  keys?: string[];
243
253
  } | undefined;
254
+ noKeyboard: boolean;
244
255
  }, {}, string, import("vue").SlotsType<Partial<{
245
256
  'thumb-label': (arg: {
246
257
  modelValue: number;
@@ -273,6 +284,7 @@ export declare const VSliderThumb: {
273
284
  default: boolean;
274
285
  };
275
286
  name: StringConstructor;
287
+ noKeyboard: BooleanConstructor;
276
288
  }, import("vue").ExtractPropTypes<{
277
289
  class: PropType<import("../../composables/component.js").ClassValue>;
278
290
  style: {
@@ -301,5 +313,6 @@ export declare const VSliderThumb: {
301
313
  default: boolean;
302
314
  };
303
315
  name: StringConstructor;
316
+ noKeyboard: BooleanConstructor;
304
317
  }>>;
305
318
  export type VSliderThumb = InstanceType<typeof VSliderThumb>;
@@ -35,6 +35,7 @@ export const makeVSliderThumbProps = propsFactory({
35
35
  default: true
36
36
  },
37
37
  name: String,
38
+ noKeyboard: Boolean,
38
39
  ...makeComponentProps()
39
40
  }, 'VSliderThumb');
40
41
  export const VSliderThumb = genericComponent()({
@@ -97,6 +98,7 @@ export const VSliderThumb = genericComponent()({
97
98
  if (step.value) return [1, 2, 3];else return [1, 5, 10];
98
99
  });
99
100
  function parseKeydown(e, value) {
101
+ if (props.noKeyboard) return;
100
102
  if (!relevantKeys.includes(e.key)) return;
101
103
  e.preventDefault();
102
104
  const _step = step.value || 0.1;