vuetify 3.0.5 → 3.0.7

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 (58) hide show
  1. package/dist/_component-variables.sass +1 -0
  2. package/dist/json/attributes.json +17 -13
  3. package/dist/json/importMap.json +88 -88
  4. package/dist/json/tags.json +1 -0
  5. package/dist/json/web-types.json +28 -19
  6. package/dist/vuetify.css +75 -60
  7. package/dist/vuetify.d.ts +27 -25
  8. package/dist/vuetify.esm.js +88 -46
  9. package/dist/vuetify.esm.js.map +1 -1
  10. package/dist/vuetify.js +88 -46
  11. package/dist/vuetify.js.map +1 -1
  12. package/dist/vuetify.min.css +2 -2
  13. package/dist/vuetify.min.js +227 -222
  14. package/dist/vuetify.min.js.map +1 -1
  15. package/lib/components/VApp/{variables.scss → _variables.scss} +0 -0
  16. package/lib/components/VAvatar/VAvatar.mjs +7 -2
  17. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  18. package/lib/components/VAvatar/index.d.ts +2 -0
  19. package/lib/components/VColorPicker/VColorPicker.mjs +0 -1
  20. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  21. package/lib/components/VFileInput/VFileInput.mjs +4 -3
  22. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  23. package/lib/components/VImg/VImg.mjs +10 -2
  24. package/lib/components/VImg/VImg.mjs.map +1 -1
  25. package/lib/components/VList/VList.mjs +4 -2
  26. package/lib/components/VList/VList.mjs.map +1 -1
  27. package/lib/components/VList/VListGroup.mjs +2 -1
  28. package/lib/components/VList/VListGroup.mjs.map +1 -1
  29. package/lib/components/VList/VListItem.css +1 -0
  30. package/lib/components/VList/VListItem.sass +1 -0
  31. package/lib/components/VPagination/VPagination.mjs +12 -5
  32. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  33. package/lib/components/VRadioGroup/VRadioGroup.css +4 -4
  34. package/lib/components/VRadioGroup/VRadioGroup.mjs +3 -2
  35. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  36. package/lib/components/VRadioGroup/VRadioGroup.sass +4 -4
  37. package/lib/components/VRadioGroup/_variables.scss +2 -2
  38. package/lib/components/VSelectionControl/VSelectionControl.mjs +11 -2
  39. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  40. package/lib/components/VSelectionControl/index.d.ts +2 -2
  41. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +12 -3
  42. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  43. package/lib/components/VSlider/VSliderThumb.css +11 -0
  44. package/lib/components/VSlider/VSliderThumb.mjs +4 -6
  45. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  46. package/lib/components/VSlider/VSliderThumb.sass +10 -0
  47. package/lib/components/VSlider/VSliderTrack.css +4 -1
  48. package/lib/components/VSlider/VSliderTrack.sass +3 -1
  49. package/lib/components/VSlider/slider.mjs +2 -2
  50. package/lib/components/VSlider/slider.mjs.map +1 -1
  51. package/lib/components/VSnackbar/VSnackbar.mjs +6 -1
  52. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  53. package/lib/components/index.d.ts +3 -1
  54. package/lib/entry-bundler.mjs +1 -1
  55. package/lib/framework.mjs +15 -13
  56. package/lib/framework.mjs.map +1 -1
  57. package/lib/index.d.ts +24 -24
  58. package/package.json +2 -2
@@ -38,6 +38,8 @@
38
38
  transition: 0.3s settings.$standard-easing
39
39
  content: ''
40
40
  color: inherit
41
+ top: 0
42
+ left: 0
41
43
  width: 100%
42
44
  height: 100%
43
45
  border-radius: $slider-thumb-border-radius
@@ -92,6 +94,11 @@
92
94
  top: 50%
93
95
  transform: translateY(-50%)
94
96
 
97
+ +tools.ltr()
98
+ left: calc(var(--v-slider-thumb-position) - var(--v-slider-thumb-size) / 2)
99
+ +tools.rtl()
100
+ right: calc(var(--v-slider-thumb-position) - var(--v-slider-thumb-size) / 2)
101
+
95
102
  .v-slider-thumb__label-container
96
103
  left: calc(var(--v-slider-thumb-size) / 2)
97
104
  top: 0
@@ -112,6 +119,9 @@
112
119
 
113
120
  // Vertical
114
121
  .v-slider.v-input--vertical
122
+ .v-slider-thumb
123
+ top: calc(var(--v-slider-thumb-position) - var(--v-slider-thumb-size) / 2)
124
+
115
125
  .v-slider-thumb__label-container
116
126
  top: calc(var(--v-slider-thumb-size) / 2)
117
127
  right: 0
@@ -133,9 +133,12 @@
133
133
  .v-slider.v-input--vertical .v-slider-track__tick.v-locale--is-rtl, .v-locale--is-rtl .v-slider.v-input--vertical .v-slider-track__tick {
134
134
  transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / 2));
135
135
  }
136
- .v-slider.v-input--vertical .v-slider-track__tick--last {
136
+ .v-slider.v-input--vertical .v-slider-track__tick--first {
137
137
  bottom: calc(0% + var(--v-slider-tick-size) + 1px);
138
138
  }
139
+ .v-slider.v-input--vertical .v-slider-track__tick--last {
140
+ bottom: calc(100% - var(--v-slider-tick-size) - 1px);
141
+ }
139
142
  .v-slider.v-input--vertical .v-slider-track__tick .v-slider-track__tick-label {
140
143
  margin-inline-start: calc(var(--v-slider-track-size) / 2 + 12px);
141
144
  transform: translateY(-50%);
@@ -141,8 +141,10 @@
141
141
  @include tools.rtl()
142
142
  transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / 2))
143
143
 
144
- &--last
144
+ &--first
145
145
  bottom: calc(0% + var(--v-slider-tick-size) + 1px)
146
+ &--last
147
+ bottom: calc(100% - var(--v-slider-tick-size) - 1px)
146
148
 
147
149
  .v-slider-track__tick-label
148
150
  margin-inline-start: calc(var(--v-slider-track-size) / 2 + #{$slider-tick-label-margin-start})
@@ -84,7 +84,7 @@ export const useSlider = _ref => {
84
84
  const {
85
85
  isRtl
86
86
  } = useRtl();
87
- const isReversed = computed(() => isRtl.value !== props.reverse);
87
+ const isReversed = toRef(props, 'reverse');
88
88
  const horizontalDirection = computed(() => {
89
89
  let hd = isRtl.value ? 'rtl' : 'ltr';
90
90
  if (props.reverse) {
@@ -133,7 +133,7 @@ export const useSlider = _ref => {
133
133
 
134
134
  // It is possible for left to be NaN, force to number
135
135
  let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0;
136
- if (vertical || isReversed.value) clickPos = 1 - clickPos;
136
+ if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos;
137
137
  return roundValue(min.value + clickPos * (max.value - min.value));
138
138
  }
139
139
  let thumbMoved = false;
@@ -1 +1 @@
1
- {"version":3,"file":"slider.mjs","names":["makeElevationProps","makeRoundedProps","useRtl","clamp","createRange","propsFactory","computed","provide","ref","toRef","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","Boolean","error","readonly","max","type","Number","String","default","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","elevation","useSlider","props","handleSliderMouseUp","handleMouseMove","getActiveThumb","isRtl","isReversed","value","horizontalDirection","hd","parseFloat","decimals","trimmedStep","toString","trim","indexOf","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","roundValue","clamped","offset","newValue","Math","round","toFixed","parseMouseMove","start","trackStart","trackLength","$el","clickOffset","clickPos","thumbMoved","handleStop","handleStart","focus","contains","target","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","keys","key","hasLabels","some","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { clamp, createRange, propsFactory } from '@/util'\nimport { computed, provide, ref, toRef } from 'vue'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\ntype 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 | 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\n position: (val: number) => number\n readonly: Ref<boolean | 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<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 horizontalDirection: Ref<'ltr' | 'rtl'>\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: Boolean,\n error: Boolean,\n readonly: Boolean,\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<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}, 'slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\nexport const useSlider = ({\n props,\n handleSliderMouseUp,\n handleMouseMove,\n getActiveThumb,\n}: {\n props: SliderProps\n handleSliderMouseUp: (v: number) => void\n handleMouseMove: (v: number) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const horizontalDirection = computed(() => {\n let hd: 'ltr' | 'rtl' = isRtl.value ? 'rtl' : 'ltr'\n\n if (props.reverse) {\n hd = hd === 'rtl' ? 'ltr' : 'rtl'\n }\n\n return hd\n })\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => {\n const trimmedStep = step.value.toString().trim()\n return trimmedStep.includes('.')\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n })\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 const vertical = computed(() => props.direction === 'vertical')\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 = ref(false)\n\n const startOffset = ref(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function roundValue (value: number) {\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 function parseMouseMove (e: MouseEvent | TouchEvent): number {\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 } = trackContainerRef.value?.$el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0\n\n if (vertical || isReversed.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n let thumbMoved = false\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n if (!thumbMoved) {\n startOffset.value = 0\n handleSliderMouseUp(parseMouseMove(e))\n }\n\n mousePressed.value = false\n thumbMoved = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n activeThumbRef.value.focus()\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n thumbMoved = true\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n handleMouseMove(parseMouseMove(e))\n }\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n thumbMoved = true\n handleMouseMove(parseMouseMove(e))\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 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 parsedTicks = computed<Tick[]>(() => {\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 horizontalDirection,\n isReversed,\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: toRef(props, '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":"AAAA;AACA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,gBAAgB;AAAA,SAChBC,MAAM,wCAEf;AAAA,SACSC,KAAK,EAAEC,WAAW,EAAEC,YAAY;AACzC,SAASC,QAAQ,EAAEC,OAAO,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;;AAEnD;;AA+CA,OAAO,MAAMC,aAA0C,GAAGC,MAAM,CAACC,GAAG,CAAC,kBAAkB,CAAC;AAExF,OAAO,SAASC,SAAS,CAAEC,CAA0B,EAAEC,EAAe,EAAEC,SAAiB,EAAE;EACzF,MAAMC,QAAQ,GAAGD,SAAS,KAAK,UAAU;EACzC,MAAME,IAAI,GAAGH,EAAE,CAACI,qBAAqB,EAAE;EACvC,MAAMC,KAAK,GAAG,SAAS,IAAIN,CAAC,GAAGA,CAAC,CAACO,OAAO,CAAC,CAAC,CAAC,GAAGP,CAAC;EAC/C,OAAOG,QAAQ,GACXG,KAAK,CAACE,OAAO,IAAIJ,IAAI,CAACK,GAAG,GAAGL,IAAI,CAACM,MAAM,GAAG,CAAC,CAAC,GAC5CJ,KAAK,CAACK,OAAO,IAAIP,IAAI,CAACQ,IAAI,GAAGR,IAAI,CAACS,KAAK,GAAG,CAAC,CAAC;AAClD;AAEA,SAASC,WAAW,CAAEd,CAA0B,EAAEe,QAA+B,EAAU;EACzF,IAAI,SAAS,IAAIf,CAAC,IAAIA,CAAC,CAACO,OAAO,CAACS,MAAM,EAAE,OAAOhB,CAAC,CAACO,OAAO,CAAC,CAAC,CAAC,CAACQ,QAAQ,CAAC,MAChE,IAAI,gBAAgB,IAAIf,CAAC,IAAIA,CAAC,CAACiB,cAAc,CAACD,MAAM,EAAE,OAAOhB,CAAC,CAACiB,cAAc,CAAC,CAAC,CAAC,CAACF,QAAQ,CAAC,MAC1F,OAAQf,CAAC,CAAgBe,QAAQ,CAAC;AACzC;AAEA,OAAO,MAAMG,eAAe,GAAG3B,YAAY,CAAC;EAC1C4B,QAAQ,EAAEC,OAAO;EACjBC,KAAK,EAAED,OAAO;EACdE,QAAQ,EAAEF,OAAO;EACjBG,GAAG,EAAE;IACHC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDC,GAAG,EAAE;IACHJ,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDE,IAAI,EAAE;IACJL,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDG,UAAU,EAAEJ,MAAM;EAClBK,UAAU,EAAE;IACVP,IAAI,EAAE,CAACJ,OAAO,EAAEM,MAAM,CAA6C;IACnEC,OAAO,EAAEK,SAAS;IAClBC,SAAS,EAAGC,CAAM,IAAK,OAAOA,CAAC,KAAK,SAAS,IAAIA,CAAC,KAAK;EACzD,CAAC;EACDC,SAAS,EAAE;IACTX,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDS,SAAS,EAAE;IACTZ,IAAI,EAAE,CAACJ,OAAO,EAAEM,MAAM,CAAiC;IACvDC,OAAO,EAAE,KAAK;IACdM,SAAS,EAAGC,CAAM,IAAK,OAAOA,CAAC,KAAK,SAAS,IAAIA,CAAC,KAAK;EACzD,CAAC;EACDG,KAAK,EAAE;IACLb,IAAI,EAAE,CAACc,KAAK,EAAEC,MAAM;EACtB,CAAC;EACDC,QAAQ,EAAE;IACRhB,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDc,KAAK,EAAEf,MAAM;EACbgB,UAAU,EAAEhB,MAAM;EAClBiB,cAAc,EAAEjB,MAAM;EACtBkB,SAAS,EAAE;IACTpB,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDzB,SAAS,EAAE;IACTsB,IAAI,EAAEE,MAA6C;IACnDC,OAAO,EAAE,YAAY;IACrBM,SAAS,EAAGC,CAAM,IAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAACW,QAAQ,CAACX,CAAC;EAC9D,CAAC;EACDY,OAAO,EAAE1B,OAAO;EAEhB,GAAGjC,gBAAgB,EAAE;EACrB,GAAGD,kBAAkB,CAAC;IACpB6D,SAAS,EAAE;EACb,CAAC;AACH,CAAC,EAAE,QAAQ,CAAC;AAIZ,OAAO,MAAMC,SAAS,GAAG,QAUnB;EAAA,IAVoB;IACxBC,KAAK;IACLC,mBAAmB;IACnBC,eAAe;IACfC;EAMF,CAAC;EACC,MAAM;IAAEC;EAAM,CAAC,GAAGjE,MAAM,EAAE;EAC1B,MAAMkE,UAAU,GAAG9D,QAAQ,CAAC,MAAM6D,KAAK,CAACE,KAAK,KAAKN,KAAK,CAACH,OAAO,CAAC;EAChE,MAAMU,mBAAmB,GAAGhE,QAAQ,CAAC,MAAM;IACzC,IAAIiE,EAAiB,GAAGJ,KAAK,CAACE,KAAK,GAAG,KAAK,GAAG,KAAK;IAEnD,IAAIN,KAAK,CAACH,OAAO,EAAE;MACjBW,EAAE,GAAGA,EAAE,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK;IACnC;IAEA,OAAOA,EAAE;EACX,CAAC,CAAC;EACF,MAAM7B,GAAG,GAAGpC,QAAQ,CAAC,MAAMkE,UAAU,CAACT,KAAK,CAACrB,GAAG,CAAC,CAAC;EACjD,MAAML,GAAG,GAAG/B,QAAQ,CAAC,MAAMkE,UAAU,CAACT,KAAK,CAAC1B,GAAG,CAAC,CAAC;EACjD,MAAMM,IAAI,GAAGrC,QAAQ,CAAC,MAAMyD,KAAK,CAACpB,IAAI,GAAG,CAAC,GAAG6B,UAAU,CAACT,KAAK,CAACpB,IAAI,CAAC,GAAG,CAAC,CAAC;EACxE,MAAM8B,QAAQ,GAAGnE,QAAQ,CAAC,MAAM;IAC9B,MAAMoE,WAAW,GAAG/B,IAAI,CAAC0B,KAAK,CAACM,QAAQ,EAAE,CAACC,IAAI,EAAE;IAChD,OAAOF,WAAW,CAACf,QAAQ,CAAC,GAAG,CAAC,GAC3Be,WAAW,CAAC5C,MAAM,GAAG4C,WAAW,CAACG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAClD,CAAC;EACP,CAAC,CAAC;EAEF,MAAM5B,SAAS,GAAG3C,QAAQ,CAAC,MAAMwE,QAAQ,CAACf,KAAK,CAACd,SAAS,EAAE,EAAE,CAAC,CAAC;EAC/D,MAAMK,QAAQ,GAAGhD,QAAQ,CAAC,MAAMwE,QAAQ,CAACf,KAAK,CAACT,QAAQ,EAAE,EAAE,CAAC,CAAC;EAC7D,MAAMI,SAAS,GAAGpD,QAAQ,CAAC,MAAMwE,QAAQ,CAACf,KAAK,CAACL,SAAS,EAAE,EAAE,CAAC,CAAC;EAC/D,MAAMqB,QAAQ,GAAGzE,QAAQ,CAAC,MAAM,CAAC+B,GAAG,CAACgC,KAAK,GAAG3B,GAAG,CAAC2B,KAAK,IAAI1B,IAAI,CAAC0B,KAAK,CAAC;EACrE,MAAMpC,QAAQ,GAAGxB,KAAK,CAACsD,KAAK,EAAE,UAAU,CAAC;EACzC,MAAM9C,QAAQ,GAAGX,QAAQ,CAAC,MAAMyD,KAAK,CAAC/C,SAAS,KAAK,UAAU,CAAC;EAE/D,MAAM4B,UAAU,GAAGtC,QAAQ,CAAC,MAAMyD,KAAK,CAAC5B,KAAK,IAAI4B,KAAK,CAAC9B,QAAQ,GAAGa,SAAS,GAAGiB,KAAK,CAACnB,UAAU,IAAImB,KAAK,CAACR,KAAK,CAAC;EAC9G,MAAMC,UAAU,GAAGlD,QAAQ,CAAC,MAAMyD,KAAK,CAAC5B,KAAK,IAAI4B,KAAK,CAAC9B,QAAQ,GAAGa,SAAS,GAAGiB,KAAK,CAACP,UAAU,IAAIO,KAAK,CAACR,KAAK,CAAC;EAC9G,MAAME,cAAc,GAAGnD,QAAQ,CAAC,MAAMyD,KAAK,CAAC5B,KAAK,IAAI4B,KAAK,CAAC9B,QAAQ,GAAGa,SAAS,GAAGiB,KAAK,CAACN,cAAc,IAAIM,KAAK,CAACR,KAAK,CAAC;EAEtH,MAAMyB,YAAY,GAAGxE,GAAG,CAAC,KAAK,CAAC;EAE/B,MAAMyE,WAAW,GAAGzE,GAAG,CAAC,CAAC,CAAC;EAC1B,MAAM0E,iBAAiB,GAAG1E,GAAG,EAA4B;EACzD,MAAM2E,cAAc,GAAG3E,GAAG,EAA2B;EAErD,SAAS4E,UAAU,CAAEf,KAAa,EAAE;IAClC,IAAI1B,IAAI,CAAC0B,KAAK,IAAI,CAAC,EAAE,OAAOA,KAAK;IAEjC,MAAMgB,OAAO,GAAGlF,KAAK,CAACkE,KAAK,EAAE3B,GAAG,CAAC2B,KAAK,EAAEhC,GAAG,CAACgC,KAAK,CAAC;IAClD,MAAMiB,MAAM,GAAG5C,GAAG,CAAC2B,KAAK,GAAG1B,IAAI,CAAC0B,KAAK;IACrC,MAAMkB,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACJ,OAAO,GAAGC,MAAM,IAAI3C,IAAI,CAAC0B,KAAK,CAAC,GAAG1B,IAAI,CAAC0B,KAAK,GAAGiB,MAAM;IAElF,OAAOd,UAAU,CAACgB,IAAI,CAAC9C,GAAG,CAAC6C,QAAQ,EAAElD,GAAG,CAACgC,KAAK,CAAC,CAACqB,OAAO,CAACjB,QAAQ,CAACJ,KAAK,CAAC,CAAC;EAC1E;EAEA,SAASsB,cAAc,CAAE7E,CAA0B,EAAU;IAAA;IAC3D,MAAMG,QAAQ,GAAG8C,KAAK,CAAC/C,SAAS,KAAK,UAAU;IAC/C,MAAM4E,KAAK,GAAG3E,QAAQ,GAAG,KAAK,GAAG,MAAM;IACvC,MAAMa,MAAM,GAAGb,QAAQ,GAAG,QAAQ,GAAG,OAAO;IAC5C,MAAMY,QAAQ,GAAGZ,QAAQ,GAAG,SAAS,GAAG,SAAS;IAEjD,MAAM;MACJ,CAAC2E,KAAK,GAAGC,UAAU;MACnB,CAAC/D,MAAM,GAAGgE;IACZ,CAAC,4BAAGZ,iBAAiB,CAACb,KAAK,qBAAvB,sBAAyB0B,GAAG,CAAC5E,qBAAqB,EAAE;IACxD,MAAM6E,WAAW,GAAGpE,WAAW,CAACd,CAAC,EAAEe,QAAQ,CAAC;;IAE5C;IACA,IAAIoE,QAAQ,GAAGT,IAAI,CAAC9C,GAAG,CAAC8C,IAAI,CAACnD,GAAG,CAAC,CAAC2D,WAAW,GAAGH,UAAU,GAAGZ,WAAW,CAACZ,KAAK,IAAIyB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAE1G,IAAI7E,QAAQ,IAAImD,UAAU,CAACC,KAAK,EAAE4B,QAAQ,GAAG,CAAC,GAAGA,QAAQ;IAEzD,OAAOb,UAAU,CAAC1C,GAAG,CAAC2B,KAAK,GAAG4B,QAAQ,IAAI5D,GAAG,CAACgC,KAAK,GAAG3B,GAAG,CAAC2B,KAAK,CAAC,CAAC;EACnE;EAEA,IAAI6B,UAAU,GAAG,KAAK;EAEtB,MAAMC,UAAU,GAAIrF,CAA0B,IAAK;IACjD,IAAI,CAACoF,UAAU,EAAE;MACfjB,WAAW,CAACZ,KAAK,GAAG,CAAC;MACrBL,mBAAmB,CAAC2B,cAAc,CAAC7E,CAAC,CAAC,CAAC;IACxC;IAEAkE,YAAY,CAACX,KAAK,GAAG,KAAK;IAC1B6B,UAAU,GAAG,KAAK;IAClBjB,WAAW,CAACZ,KAAK,GAAG,CAAC;EACvB,CAAC;EAED,MAAM+B,WAAW,GAAItF,CAA0B,IAAK;IAClDqE,cAAc,CAACd,KAAK,GAAGH,cAAc,CAACpD,CAAC,CAAC;IAExC,IAAI,CAACqE,cAAc,CAACd,KAAK,EAAE;IAE3Bc,cAAc,CAACd,KAAK,CAACgC,KAAK,EAAE;IAC5BrB,YAAY,CAACX,KAAK,GAAG,IAAI;IAEzB,IAAIc,cAAc,CAACd,KAAK,CAACiC,QAAQ,CAACxF,CAAC,CAACyF,MAAM,CAAS,EAAE;MACnDL,UAAU,GAAG,IAAI;MACjBjB,WAAW,CAACZ,KAAK,GAAGxD,SAAS,CAACC,CAAC,EAAEqE,cAAc,CAACd,KAAK,EAAEN,KAAK,CAAC/C,SAAS,CAAC;IACzE,CAAC,MAAM;MACLiE,WAAW,CAACZ,KAAK,GAAG,CAAC;MACrBJ,eAAe,CAAC0B,cAAc,CAAC7E,CAAC,CAAC,CAAC;IACpC;EACF,CAAC;EAED,MAAM0F,mBAAmB,GAAG;IAAEC,OAAO,EAAE,IAAI;IAAEC,OAAO,EAAE;EAAK,CAAC;EAE5D,SAASC,WAAW,CAAE7F,CAA0B,EAAE;IAChDoF,UAAU,GAAG,IAAI;IACjBjC,eAAe,CAAC0B,cAAc,CAAC7E,CAAC,CAAC,CAAC;EACpC;EAEA,SAAS8F,eAAe,CAAE9F,CAAa,EAAE;IACvCA,CAAC,CAAC+F,eAAe,EAAE;IACnB/F,CAAC,CAACgG,cAAc,EAAE;IAElBX,UAAU,CAACrF,CAAC,CAAC;IAEbiG,MAAM,CAACC,mBAAmB,CAAC,WAAW,EAAEL,WAAW,EAAEH,mBAAmB,CAAC;IACzEO,MAAM,CAACC,mBAAmB,CAAC,SAAS,EAAEJ,eAAe,CAAC;EACxD;EAEA,SAASK,gBAAgB,CAAEnG,CAAa,EAAE;IAAA;IACxCqF,UAAU,CAACrF,CAAC,CAAC;IAEbiG,MAAM,CAACC,mBAAmB,CAAC,WAAW,EAAEL,WAAW,EAAEH,mBAAmB,CAAC;IACzE,aAAA1F,CAAC,CAACyF,MAAM,qBAAR,UAAUS,mBAAmB,CAAC,UAAU,EAAEC,gBAAgB,CAAkB;EAC9E;EAEA,SAASC,kBAAkB,CAAEpG,CAAa,EAAE;IAAA;IAC1CsF,WAAW,CAACtF,CAAC,CAAC;IAEdiG,MAAM,CAACI,gBAAgB,CAAC,WAAW,EAAER,WAAW,EAAEH,mBAAmB,CAAC;IACtE,cAAA1F,CAAC,CAACyF,MAAM,qBAAR,WAAUY,gBAAgB,CAAC,UAAU,EAAEF,gBAAgB,EAAmB;MAAER,OAAO,EAAE;IAAM,CAAC,CAAC;EAC/F;EAEA,SAASW,iBAAiB,CAAEtG,CAAa,EAAE;IACzCA,CAAC,CAACgG,cAAc,EAAE;IAElBV,WAAW,CAACtF,CAAC,CAAC;IAEdiG,MAAM,CAACI,gBAAgB,CAAC,WAAW,EAAER,WAAW,EAAEH,mBAAmB,CAAC;IACtEO,MAAM,CAACI,gBAAgB,CAAC,SAAS,EAAEP,eAAe,EAAE;MAAEH,OAAO,EAAE;IAAM,CAAC,CAAC;EACzE;EAEA,MAAM5E,QAAQ,GAAIwF,GAAW,IAAK;IAChC,MAAMC,UAAU,GAAG,CAACD,GAAG,GAAG3E,GAAG,CAAC2B,KAAK,KAAKhC,GAAG,CAACgC,KAAK,GAAG3B,GAAG,CAAC2B,KAAK,CAAC,GAAG,GAAG;IACpE,OAAOlE,KAAK,CAACoH,KAAK,CAACD,UAAU,CAAC,GAAG,CAAC,GAAGA,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC;EAC1D,CAAC;EAED,MAAME,WAAW,GAAGlH,QAAQ,CAAS,MAAM;IACzC,IAAI,CAACyD,KAAK,CAACZ,KAAK,EAAE;MAChB,OAAO4B,QAAQ,CAACV,KAAK,KAAKoD,QAAQ,GAAGrH,WAAW,CAAC2E,QAAQ,CAACV,KAAK,GAAG,CAAC,CAAC,CAACqD,GAAG,CAACC,CAAC,IAAI;QAC5E,MAAMtD,KAAK,GAAG3B,GAAG,CAAC2B,KAAK,GAAIsD,CAAC,GAAGhF,IAAI,CAAC0B,KAAM;QAC1C,OAAO;UACLA,KAAK;UACLxC,QAAQ,EAAEA,QAAQ,CAACwC,KAAK;QAC1B,CAAC;MACH,CAAC,CAAC,GAAG,EAAE;IACT;IACA,IAAIjB,KAAK,CAACwE,OAAO,CAAC7D,KAAK,CAACZ,KAAK,CAAC,EAAE,OAAOY,KAAK,CAACZ,KAAK,CAACuE,GAAG,CAACC,CAAC,KAAK;MAAEtD,KAAK,EAAEsD,CAAC;MAAE9F,QAAQ,EAAEA,QAAQ,CAAC8F,CAAC,CAAC;MAAEE,KAAK,EAAEF,CAAC,CAAChD,QAAQ;IAAG,CAAC,CAAC,CAAC;IACvH,OAAOtB,MAAM,CAACyE,IAAI,CAAC/D,KAAK,CAACZ,KAAK,CAAC,CAACuE,GAAG,CAACK,GAAG,KAAK;MAC1C1D,KAAK,EAAEG,UAAU,CAACuD,GAAG,CAAC;MACtBlG,QAAQ,EAAEA,QAAQ,CAAC2C,UAAU,CAACuD,GAAG,CAAC,CAAC;MACnCF,KAAK,EAAG9D,KAAK,CAACZ,KAAK,CAA4B4E,GAAG;IACpD,CAAC,CAAC,CAAC;EACL,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAG1H,QAAQ,CAAC,MAAMkH,WAAW,CAACnD,KAAK,CAAC4D,IAAI,CAAC;IAAA,IAAC;MAAEJ;IAAM,CAAC;IAAA,OAAK,CAAC,CAACA,KAAK;EAAA,EAAC,CAAC;EAEhF,MAAMK,IAAmB,GAAG;IAC1B/C,cAAc;IACd5B,KAAK,EAAE9C,KAAK,CAACsD,KAAK,EAAE,OAAO,CAAC;IAC5BU,QAAQ;IACRxC,QAAQ;IACRjB,SAAS,EAAEP,KAAK,CAACsD,KAAK,EAAE,WAAW,CAAC;IACpCF,SAAS,EAAEpD,KAAK,CAACsD,KAAK,EAAE,WAAW,CAAC;IACpCiE,SAAS;IACT1D,mBAAmB;IACnBF,UAAU;IACV1B,GAAG;IACHL,GAAG;IACH2C,YAAY;IACZD,QAAQ;IACRqC,iBAAiB;IACjBF,kBAAkB;IAClBM,WAAW;IACX7B,cAAc;IACd9D,QAAQ;IACRO,QAAQ,EAAE3B,KAAK,CAACsD,KAAK,EAAE,UAAU,CAAC;IAClCoE,OAAO,EAAE1H,KAAK,CAACsD,KAAK,EAAE,SAAS,CAAC;IAChCqB,UAAU;IACVlC,SAAS,EAAEzC,KAAK,CAACsD,KAAK,EAAE,WAAW,CAAC;IACpCkB,WAAW;IACXtC,IAAI;IACJM,SAAS;IACTL,UAAU;IACVC,UAAU,EAAEpC,KAAK,CAACsD,KAAK,EAAE,YAAY,CAAC;IACtCZ,KAAK,EAAE1C,KAAK,CAACsD,KAAK,EAAE,OAAO,CAAC;IAC5BT,QAAQ;IACRE,UAAU;IACV0B,iBAAiB;IACjBzB,cAAc;IACdC,SAAS;IACTzC;EACF,CAAC;EAEDV,OAAO,CAACG,aAAa,EAAEwH,IAAI,CAAC;EAE5B,OAAOA,IAAI;AACb,CAAC"}
1
+ {"version":3,"file":"slider.mjs","names":["makeElevationProps","makeRoundedProps","useRtl","clamp","createRange","propsFactory","computed","provide","ref","toRef","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","Boolean","error","readonly","max","type","Number","String","default","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","elevation","useSlider","props","handleSliderMouseUp","handleMouseMove","getActiveThumb","isRtl","isReversed","horizontalDirection","hd","value","parseFloat","decimals","trimmedStep","toString","trim","indexOf","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","roundValue","clamped","offset","newValue","Math","round","toFixed","parseMouseMove","start","trackStart","trackLength","$el","clickOffset","clickPos","thumbMoved","handleStop","handleStart","focus","contains","target","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","keys","key","hasLabels","some","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { clamp, createRange, propsFactory } from '@/util'\nimport { computed, provide, ref, toRef } from 'vue'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\ntype 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 | 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\n position: (val: number) => number\n readonly: Ref<boolean | 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<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 horizontalDirection: Ref<'ltr' | 'rtl'>\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: Boolean,\n error: Boolean,\n readonly: Boolean,\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<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}, 'slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\nexport const useSlider = ({\n props,\n handleSliderMouseUp,\n handleMouseMove,\n getActiveThumb,\n}: {\n props: SliderProps\n handleSliderMouseUp: (v: number) => void\n handleMouseMove: (v: number) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(props, 'reverse')\n const horizontalDirection = computed(() => {\n let hd: 'ltr' | 'rtl' = isRtl.value ? 'rtl' : 'ltr'\n\n if (props.reverse) {\n hd = hd === 'rtl' ? 'ltr' : 'rtl'\n }\n\n return hd\n })\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => {\n const trimmedStep = step.value.toString().trim()\n return trimmedStep.includes('.')\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n })\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 const vertical = computed(() => props.direction === 'vertical')\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 = ref(false)\n\n const startOffset = ref(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function roundValue (value: number) {\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 function parseMouseMove (e: MouseEvent | TouchEvent): number {\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 } = trackContainerRef.value?.$el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0\n\n if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n let thumbMoved = false\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n if (!thumbMoved) {\n startOffset.value = 0\n handleSliderMouseUp(parseMouseMove(e))\n }\n\n mousePressed.value = false\n thumbMoved = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n activeThumbRef.value.focus()\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n thumbMoved = true\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n handleMouseMove(parseMouseMove(e))\n }\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n thumbMoved = true\n handleMouseMove(parseMouseMove(e))\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 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 parsedTicks = computed<Tick[]>(() => {\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 horizontalDirection,\n isReversed,\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: toRef(props, '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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"}
@@ -9,6 +9,7 @@ import { genOverlays, makeVariantProps, useVariant } from "../../composables/var
9
9
  import { makeLocationProps, useLocation } from "../../composables/location.mjs";
10
10
  import { makePositionProps, usePosition } from "../../composables/position.mjs";
11
11
  import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
12
+ import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
12
13
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
13
14
  import { useScopeId } from "../../composables/scopeId.mjs";
14
15
  import { forwardRefs } from "../../composables/forwardRefs.mjs"; // Utilities
@@ -30,6 +31,7 @@ export const VSnackbar = genericComponent()({
30
31
  ...makePositionProps(),
31
32
  ...makeRoundedProps(),
32
33
  ...makeVariantProps(),
34
+ ...makeThemeProps(),
33
35
  ...omit(makeVOverlayProps({
34
36
  transition: 'v-snackbar-transition'
35
37
  }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy'])
@@ -51,6 +53,9 @@ export const VSnackbar = genericComponent()({
51
53
  const {
52
54
  scopeId
53
55
  } = useScopeId();
56
+ const {
57
+ themeClasses
58
+ } = provideTheme(props);
54
59
  const {
55
60
  colorClasses,
56
61
  colorStyles,
@@ -98,7 +103,7 @@ export const VSnackbar = genericComponent()({
98
103
  "scrollStrategy": "none"
99
104
  }, scopeId), {
100
105
  default: () => [_createVNode("div", {
101
- "class": ['v-snackbar__wrapper', colorClasses.value, roundedClasses.value, variantClasses.value],
106
+ "class": ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
102
107
  "style": [colorStyles.value],
103
108
  "onPointerenter": onPointerenter,
104
109
  "onPointerleave": startTimeout
@@ -1 +1 @@
1
- {"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","genOverlays","makeVariantProps","useVariant","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","useProxiedModel","useScopeId","forwardRefs","mergeProps","onMounted","ref","watch","genericComponent","omit","useRender","filterVOverlayProps","makeVOverlayProps","VSnackbar","name","props","multiLine","Boolean","timeout","type","Number","String","default","vertical","location","transition","emits","v","setup","slots","isActive","locationStyles","positionClasses","scopeId","colorClasses","colorStyles","variantClasses","roundedClasses","overlay","startTimeout","value","activeTimeout","window","clearTimeout","setTimeout","onPointerenter","overlayProps","style","contentProps","actions","VBtn","variant","ripple","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { mergeProps, onMounted, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender } from '@/util'\nimport { filterVOverlayProps, makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Types\nimport type { SlotsToProps } from '@/util'\n\nexport const VSnackbar = genericComponent<new () => {\n $props: SlotsToProps<{\n activator: [{ isActive: boolean, props: Record<string, any> }]\n default: []\n actions: []\n }>\n}>()({\n name: 'VSnackbar',\n\n props: {\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n const overlay = ref<VOverlay>()\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function onPointerenter () {\n window.clearTimeout(activeTimeout)\n }\n\n useRender(() => {\n const [overlayProps] = filterVOverlayProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n style: locationStyles.value,\n }, overlayProps.contentProps) }\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n <div\n class={[\n 'v-snackbar__wrapper',\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[colorStyles.value]}\n onPointerenter={ onPointerenter }\n onPointerleave={ startTimeout }\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.default() }\n </div>\n ) }\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions() }\n </div>\n </VDefaultsProvider>\n ) }\n </div>\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","genOverlays","makeVariantProps","useVariant","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeThemeProps","provideTheme","useProxiedModel","useScopeId","forwardRefs","mergeProps","onMounted","ref","watch","genericComponent","omit","useRender","filterVOverlayProps","makeVOverlayProps","VSnackbar","name","props","multiLine","Boolean","timeout","type","Number","String","default","vertical","location","transition","emits","v","setup","slots","isActive","locationStyles","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","overlay","startTimeout","value","activeTimeout","window","clearTimeout","setTimeout","onPointerenter","overlayProps","style","contentProps","actions","VBtn","variant","ripple","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { mergeProps, onMounted, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender } from '@/util'\nimport { filterVOverlayProps, makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Types\nimport type { SlotsToProps } from '@/util'\n\nexport const VSnackbar = genericComponent<new () => {\n $props: SlotsToProps<{\n activator: [{ isActive: boolean, props: Record<string, any> }]\n default: []\n actions: []\n }>\n}>()({\n name: 'VSnackbar',\n\n props: {\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n const overlay = ref<VOverlay>()\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function onPointerenter () {\n window.clearTimeout(activeTimeout)\n }\n\n useRender(() => {\n const [overlayProps] = filterVOverlayProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n style: locationStyles.value,\n }, overlayProps.contentProps) }\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n <div\n class={[\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[colorStyles.value]}\n onPointerenter={ onPointerenter }\n onPointerleave={ startTimeout }\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.default() }\n </div>\n ) }\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions() }\n </div>\n </VDefaultsProvider>\n ) }\n </div>\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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"}
@@ -3264,6 +3264,7 @@ declare const VAvatar: vue.DefineComponent<{
3264
3264
  type: vue.PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
3265
3265
  default: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
3266
3266
  };
3267
+ theme: StringConstructor;
3267
3268
  tag: {
3268
3269
  type: StringConstructor;
3269
3270
  default: string;
@@ -3295,6 +3296,7 @@ declare const VAvatar: vue.DefineComponent<{
3295
3296
  type: vue.PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
3296
3297
  default: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
3297
3298
  };
3299
+ theme: StringConstructor;
3298
3300
  tag: {
3299
3301
  type: StringConstructor;
3300
3302
  default: string;
@@ -17457,7 +17459,7 @@ declare const VSelectionControl: {
17457
17459
  errorCaptured?: (((err: unknown, instance: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void) | ((err: unknown, instance: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void)[]) | undefined;
17458
17460
  };
17459
17461
  $forceUpdate: () => void;
17460
- $nextTick: typeof vue.nextTick;
17462
+ $nextTick: typeof nextTick;
17461
17463
  $watch(source: string | Function, cb: Function, options?: vue.WatchOptions<boolean> | undefined): vue.WatchStopHandle;
17462
17464
  } & Readonly<ExtractPropTypes<Omit<{
17463
17465
  density: {
@@ -10,7 +10,7 @@ export const createVuetify = function () {
10
10
  ...options
11
11
  });
12
12
  };
13
- export const version = "3.0.5";
13
+ export const version = "3.0.7";
14
14
  createVuetify.version = version;
15
15
  export { components, directives };
16
16
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -64,19 +64,21 @@ export function createVuetify() {
64
64
  }
65
65
  }
66
66
  getUid.reset();
67
- app.mixin({
68
- computed: {
69
- $vuetify() {
70
- return reactive({
71
- defaults: inject.call(this, DefaultsSymbol),
72
- display: inject.call(this, DisplaySymbol),
73
- theme: inject.call(this, ThemeSymbol),
74
- icons: inject.call(this, IconSymbol),
75
- locale: inject.call(this, LocaleSymbol)
76
- });
67
+ if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {
68
+ app.mixin({
69
+ computed: {
70
+ $vuetify() {
71
+ return reactive({
72
+ defaults: inject.call(this, DefaultsSymbol),
73
+ display: inject.call(this, DisplaySymbol),
74
+ theme: inject.call(this, ThemeSymbol),
75
+ icons: inject.call(this, IconSymbol),
76
+ locale: inject.call(this, LocaleSymbol)
77
+ });
78
+ }
77
79
  }
78
- }
79
- });
80
+ });
81
+ }
80
82
  };
81
83
  return {
82
84
  install,
@@ -87,7 +89,7 @@ export function createVuetify() {
87
89
  locale
88
90
  };
89
91
  }
90
- export const version = "3.0.5";
92
+ export const version = "3.0.7";
91
93
  createVuetify.version = version;
92
94
 
93
95
  // Vue's inject() can only be used in setup
@@ -1 +1 @@
1
- {"version":3,"file":"framework.mjs","names":["createDefaults","DefaultsSymbol","createDisplay","DisplaySymbol","createIcons","IconSymbol","createLocale","LocaleSymbol","createTheme","ThemeSymbol","defineComponent","getUid","IN_BROWSER","mergeDeep","nextTick","reactive","createVuetify","vuetify","blueprint","rest","options","aliases","components","directives","defaults","display","ssr","theme","icons","locale","install","app","key","directive","component","name","aliasName","provide","$nuxt","hook","update","mount","vm","reset","mixin","computed","$vuetify","inject","call","version","$","provides","parent","vnode","appContext"],"sources":["../src/framework.ts"],"sourcesContent":["// Composables\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\nimport { nextTick, reactive } from 'vue'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions } from '@/composables/display'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\n\nexport * from './composables'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n blueprint?: Blueprint\n components?: Record<string, any>\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: boolean\n}\n\nexport interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n\n const install = (app: App) => {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n theme.install(app)\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n getUid.reset()\n\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n })\n },\n },\n })\n }\n\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"framework.mjs","names":["createDefaults","DefaultsSymbol","createDisplay","DisplaySymbol","createIcons","IconSymbol","createLocale","LocaleSymbol","createTheme","ThemeSymbol","defineComponent","getUid","IN_BROWSER","mergeDeep","nextTick","reactive","createVuetify","vuetify","blueprint","rest","options","aliases","components","directives","defaults","display","ssr","theme","icons","locale","install","app","key","directive","component","name","aliasName","provide","$nuxt","hook","update","mount","vm","reset","__VUE_OPTIONS_API__","mixin","computed","$vuetify","inject","call","version","$","provides","parent","vnode","appContext"],"sources":["../src/framework.ts"],"sourcesContent":["// Composables\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\nimport { nextTick, reactive } from 'vue'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions } from '@/composables/display'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\n\nexport * from './composables'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n blueprint?: Blueprint\n components?: Record<string, any>\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: boolean\n}\n\nexport interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n\n const install = (app: App) => {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n theme.install(app)\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n getUid.reset()\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n })\n },\n },\n })\n }\n }\n\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n"],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -313,30 +313,22 @@ declare module '@vue/runtime-core' {
313
313
  }
314
314
 
315
315
  export interface GlobalComponents {
316
- VApp: typeof import('vuetify/components')['VApp']
317
316
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
318
- VForm: typeof import('vuetify/components')['VForm']
319
317
  VContainer: typeof import('vuetify/components')['VContainer']
320
318
  VCol: typeof import('vuetify/components')['VCol']
321
319
  VRow: typeof import('vuetify/components')['VRow']
322
320
  VSpacer: typeof import('vuetify/components')['VSpacer']
323
321
  VHover: typeof import('vuetify/components')['VHover']
324
- VLazy: typeof import('vuetify/components')['VLazy']
322
+ VForm: typeof import('vuetify/components')['VForm']
325
323
  VLayout: typeof import('vuetify/components')['VLayout']
326
324
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
325
+ VLazy: typeof import('vuetify/components')['VLazy']
327
326
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
328
327
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
329
328
  VParallax: typeof import('vuetify/components')['VParallax']
330
- VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
331
329
  VRadio: typeof import('vuetify/components')['VRadio']
330
+ VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
332
331
  VResponsive: typeof import('vuetify/components')['VResponsive']
333
- VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
334
- VValidation: typeof import('vuetify/components')['VValidation']
335
- VAppBar: typeof import('vuetify/components')['VAppBar']
336
- VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
337
- VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
338
- VAlert: typeof import('vuetify/components')['VAlert']
339
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
340
332
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
341
333
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
342
334
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -353,8 +345,13 @@ declare module '@vue/runtime-core' {
353
345
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
354
346
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
355
347
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
356
- VAvatar: typeof import('vuetify/components')['VAvatar']
348
+ VApp: typeof import('vuetify/components')['VApp']
349
+ VAlert: typeof import('vuetify/components')['VAlert']
350
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
351
+ VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
357
352
  VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
353
+ VAvatar: typeof import('vuetify/components')['VAvatar']
354
+ VValidation: typeof import('vuetify/components')['VValidation']
358
355
  VBadge: typeof import('vuetify/components')['VBadge']
359
356
  VBanner: typeof import('vuetify/components')['VBanner']
360
357
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
@@ -365,6 +362,7 @@ declare module '@vue/runtime-core' {
365
362
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
366
363
  VBtn: typeof import('vuetify/components')['VBtn']
367
364
  VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
365
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
368
366
  VCard: typeof import('vuetify/components')['VCard']
369
367
  VCardActions: typeof import('vuetify/components')['VCardActions']
370
368
  VCardItem: typeof import('vuetify/components')['VCardItem']
@@ -375,22 +373,22 @@ declare module '@vue/runtime-core' {
375
373
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
376
374
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
377
375
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
378
- VChip: typeof import('vuetify/components')['VChip']
379
376
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
377
+ VChip: typeof import('vuetify/components')['VChip']
380
378
  VCode: typeof import('vuetify/components')['VCode']
381
379
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
382
380
  VCombobox: typeof import('vuetify/components')['VCombobox']
383
381
  VCounter: typeof import('vuetify/components')['VCounter']
384
382
  VDialog: typeof import('vuetify/components')['VDialog']
385
383
  VDivider: typeof import('vuetify/components')['VDivider']
384
+ VField: typeof import('vuetify/components')['VField']
385
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
386
386
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
387
387
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
388
388
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
389
389
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
390
- VField: typeof import('vuetify/components')['VField']
391
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
392
- VFileInput: typeof import('vuetify/components')['VFileInput']
393
390
  VFooter: typeof import('vuetify/components')['VFooter']
391
+ VFileInput: typeof import('vuetify/components')['VFileInput']
394
392
  VIcon: typeof import('vuetify/components')['VIcon']
395
393
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
396
394
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
@@ -398,10 +396,10 @@ declare module '@vue/runtime-core' {
398
396
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
399
397
  VImg: typeof import('vuetify/components')['VImg']
400
398
  VInput: typeof import('vuetify/components')['VInput']
401
- VItemGroup: typeof import('vuetify/components')['VItemGroup']
402
- VItem: typeof import('vuetify/components')['VItem']
403
399
  VKbd: typeof import('vuetify/components')['VKbd']
404
400
  VLabel: typeof import('vuetify/components')['VLabel']
401
+ VItemGroup: typeof import('vuetify/components')['VItemGroup']
402
+ VItem: typeof import('vuetify/components')['VItem']
405
403
  VList: typeof import('vuetify/components')['VList']
406
404
  VListGroup: typeof import('vuetify/components')['VListGroup']
407
405
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -416,34 +414,36 @@ declare module '@vue/runtime-core' {
416
414
  VMessages: typeof import('vuetify/components')['VMessages']
417
415
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
418
416
  VOverlay: typeof import('vuetify/components')['VOverlay']
419
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
420
417
  VPagination: typeof import('vuetify/components')['VPagination']
418
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
421
419
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
422
420
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
423
421
  VRating: typeof import('vuetify/components')['VRating']
424
422
  VSelect: typeof import('vuetify/components')['VSelect']
425
423
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
426
424
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
425
+ VSheet: typeof import('vuetify/components')['VSheet']
427
426
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
428
427
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
429
- VSheet: typeof import('vuetify/components')['VSheet']
430
428
  VSlider: typeof import('vuetify/components')['VSlider']
431
429
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
432
430
  VSwitch: typeof import('vuetify/components')['VSwitch']
433
431
  VSystemBar: typeof import('vuetify/components')['VSystemBar']
434
432
  VTabs: typeof import('vuetify/components')['VTabs']
435
433
  VTab: typeof import('vuetify/components')['VTab']
436
- VTable: typeof import('vuetify/components')['VTable']
437
434
  VTextarea: typeof import('vuetify/components')['VTextarea']
438
435
  VTextField: typeof import('vuetify/components')['VTextField']
436
+ VTable: typeof import('vuetify/components')['VTable']
437
+ VTimeline: typeof import('vuetify/components')['VTimeline']
438
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
439
439
  VToolbar: typeof import('vuetify/components')['VToolbar']
440
440
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
441
441
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
442
- VTimeline: typeof import('vuetify/components')['VTimeline']
443
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
444
442
  VTooltip: typeof import('vuetify/components')['VTooltip']
445
443
  VWindow: typeof import('vuetify/components')['VWindow']
446
444
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
447
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
445
+ VAppBar: typeof import('vuetify/components')['VAppBar']
446
+ VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
447
+ VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
448
448
  }
449
449
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vuetify",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.0.5",
4
+ "version": "3.0.7",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"
@@ -180,5 +180,5 @@
180
180
  "attributes": "dist/json/attributes.json"
181
181
  },
182
182
  "web-types": "dist/json/web-types.json",
183
- "gitHead": "278d721375c46a196c943dce31f42affbf10c2ae"
183
+ "gitHead": "a03dbaa72767533cd781d3fdb0038d3520174e62"
184
184
  }