vuetify 3.11.5 → 3.11.6

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 (34) hide show
  1. package/dist/json/attributes.json +2340 -2340
  2. package/dist/json/importMap-labs.json +12 -12
  3. package/dist/json/importMap.json +186 -186
  4. package/dist/json/web-types.json +4227 -4227
  5. package/dist/vuetify-labs.cjs +22 -11
  6. package/dist/vuetify-labs.css +4831 -4828
  7. package/dist/vuetify-labs.d.ts +64 -64
  8. package/dist/vuetify-labs.esm.js +22 -11
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +22 -11
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.cjs +22 -11
  13. package/dist/vuetify.cjs.map +1 -1
  14. package/dist/vuetify.css +4510 -4507
  15. package/dist/vuetify.d.ts +64 -64
  16. package/dist/vuetify.esm.js +22 -11
  17. package/dist/vuetify.esm.js.map +1 -1
  18. package/dist/vuetify.js +22 -11
  19. package/dist/vuetify.js.map +1 -1
  20. package/dist/vuetify.min.css +2 -2
  21. package/dist/vuetify.min.js +7 -8
  22. package/dist/vuetify.min.js.map +1 -1
  23. package/lib/components/VCalendar/composables/calendarWithIntervals.js +9 -6
  24. package/lib/components/VCalendar/composables/calendarWithIntervals.js.map +1 -1
  25. package/lib/components/VColorPicker/VColorPickerSwatches.css +4 -0
  26. package/lib/components/VColorPicker/VColorPickerSwatches.js +10 -2
  27. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  28. package/lib/components/VColorPicker/VColorPickerSwatches.sass +4 -0
  29. package/lib/components/VDatePicker/VDatePickerControls.css +0 -1
  30. package/lib/components/VDatePicker/VDatePickerControls.sass +0 -1
  31. package/lib/entry-bundler.js +1 -1
  32. package/lib/framework.d.ts +64 -64
  33. package/lib/framework.js +1 -1
  34. package/package.json +1 -1
@@ -146,7 +146,7 @@ export function useCalendarWithIntervals(props) {
146
146
  return minutes / parsedIntervalMinutes.value * parsedIntervalHeight.value;
147
147
  }
148
148
  function timeToY(time) {
149
- let targetDateOrClamp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
149
+ let targetDateOrClamp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
150
150
  const clamp = targetDateOrClamp !== false;
151
151
  const targetDate = typeof targetDateOrClamp !== 'boolean' ? targetDateOrClamp : undefined;
152
152
  let y = timeDelta(time, targetDate);
@@ -155,10 +155,15 @@ export function useCalendarWithIntervals(props) {
155
155
  if (clamp) {
156
156
  if (y < 0) {
157
157
  y = 0;
158
- }
159
- if (y > bodyHeight.value) {
158
+ } else if (y > bodyHeight.value) {
160
159
  y = bodyHeight.value;
161
160
  }
161
+ } else {
162
+ if (y < 0) {
163
+ y = y + bodyHeight.value;
164
+ } else if (y > bodyHeight.value) {
165
+ y = y - bodyHeight.value;
166
+ }
162
167
  }
163
168
  return y;
164
169
  }
@@ -171,9 +176,7 @@ export function useCalendarWithIntervals(props) {
171
176
  if (targetDate && typeof time === 'object' && 'day' in time) {
172
177
  const a = getDayIdentifier(time);
173
178
  const b = getDayIdentifier(targetDate);
174
- if (a > b) {
175
- minutes += (a - b) * gap;
176
- }
179
+ minutes += (a - b) * gap;
177
180
  }
178
181
  const min = firstMinute.value;
179
182
  return (minutes - min) / gap;
@@ -1 +1 @@
1
- {"version":3,"file":"calendarWithIntervals.js","names":["useCalendarBase","computed","shallowRef","copyTimestamp","createDayList","createIntervalList","createNativeLocaleFormatter","getDayIdentifier","MINUTES_IN_DAY","parseTime","updateMinutes","validateNumber","validateTime","propsFactory","makeCalendarWithIntervalsProps","maxDays","type","Number","default","intervalHeight","String","validate","intervalWidth","intervalMinutes","firstInterval","firstTime","Object","intervalCount","intervalFormat","Function","intervalStyle","showIntervalLabel","useCalendarWithIntervals","props","base","scrollAreaRef","parsedFirstInterval","parseInt","parsedIntervalMinutes","parsedIntervalCount","parsedIntervalHeight","parseFloat","parsedFirstTime","firstMinute","time","value","bodyHeight","days","parsedStart","parsedEnd","times","today","weekdaySkips","intervals","daysValue","first","minutes","count","now","map","d","intervalFormatter","locale","current","tms","short","timeZone","hour","minute","showIntervalLabelDefault","interval","isFirst","intervalStyleDefault","_interval","undefined","getTimestampAtEvent","e","day","timestamp","bounds","currentTarget","getBoundingClientRect","baseMinutes","touchEvent","mouseEvent","touches","changedTouches","clientY","addIntervals","top","addMinutes","Math","floor","getSlotScope","scope","timeToY","timeDelta","minutesToPixels","week","intervalRange","scrollToTime","y","pane","scrollTop","targetDateOrClamp","arguments","length","clamp","targetDate","gap","a","b","min"],"sources":["../../../../src/components/VCalendar/composables/calendarWithIntervals.ts"],"sourcesContent":["// Composables\nimport { useCalendarBase } from './calendarBase'\n\n// Utilities\nimport { computed, shallowRef } from 'vue'\nimport {\n copyTimestamp,\n createDayList,\n createIntervalList,\n createNativeLocaleFormatter,\n getDayIdentifier,\n MINUTES_IN_DAY,\n parseTime,\n updateMinutes,\n validateNumber,\n validateTime,\n} from '../util/timestamp'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { PropType, StyleValue } from 'vue'\nimport type { CalendarBaseProps } from './calendarBase'\nimport type { CalendarDayBodySlotScope, CalendarFormatter, CalendarTimestamp } from '../types'\nimport type { VTime } from '../util/timestamp'\n\nexport const makeCalendarWithIntervalsProps = propsFactory({\n maxDays: {\n type: Number,\n default: 7,\n },\n intervalHeight: {\n type: [Number, String],\n default: 48,\n validate: validateNumber,\n },\n intervalWidth: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n intervalMinutes: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n firstInterval: {\n type: [Number, String],\n default: 0,\n validate: validateNumber,\n },\n firstTime: {\n type: [Number, String, Object] as PropType<VTime>,\n validate: validateTime,\n },\n intervalCount: {\n type: [Number, String],\n default: 24,\n validate: validateNumber,\n },\n intervalFormat: {\n type: Function as PropType<CalendarFormatter>,\n default: null,\n },\n intervalStyle: {\n type: Function as PropType<(interval: CalendarTimestamp) => StyleValue>,\n default: null,\n },\n showIntervalLabel: {\n type: Function as PropType<(interval: CalendarTimestamp) => boolean>,\n default: null,\n },\n}, 'VCalendar-intervals')\n\ninterface CalendarWithIntervalsProps extends CalendarBaseProps {\n maxDays: number\n intervalHeight: string | number\n intervalMinutes: string | number\n firstInterval: string | number\n firstTime: VTime | undefined\n intervalCount: string | number\n intervalFormat: CalendarFormatter | string | undefined\n}\n\nexport function useCalendarWithIntervals (props: CalendarWithIntervalsProps) {\n const base = useCalendarBase(props)\n\n const scrollAreaRef = shallowRef<HTMLElement>()\n\n const parsedFirstInterval = computed((): number => {\n return parseInt(String(props.firstInterval || 0))\n })\n\n const parsedIntervalMinutes = computed((): number => {\n return parseInt(String(props.intervalMinutes || 60))\n })\n\n const parsedIntervalCount = computed((): number => {\n return parseInt(String(props.intervalCount || 24))\n })\n\n const parsedIntervalHeight = computed((): number => {\n return parseFloat(String(props.intervalHeight || 48))\n })\n\n const parsedFirstTime = computed((): number | false => {\n return parseTime(props.firstTime)\n })\n\n const firstMinute = computed((): number => {\n const time = parsedFirstTime.value\n\n return time !== false && time >= 0 && time <= MINUTES_IN_DAY\n ? time\n : parsedFirstInterval.value * parsedIntervalMinutes.value\n })\n\n const bodyHeight = computed((): number => {\n return parsedIntervalCount.value * parsedIntervalHeight.value\n })\n\n const days = computed((): CalendarTimestamp[] => {\n return createDayList(\n base.parsedStart.value,\n base.parsedEnd.value,\n base.times.today,\n base.weekdaySkips.value,\n props.maxDays\n )\n })\n\n const intervals = computed((): CalendarTimestamp[][] => {\n const daysValue = days.value\n const first: number = firstMinute.value\n const minutes: number = parsedIntervalMinutes.value\n const count: number = parsedIntervalCount.value\n const now: CalendarTimestamp = base.times.now\n\n return daysValue.map(d => createIntervalList(d, first, minutes, count, now))\n })\n\n const intervalFormatter = computed((): CalendarFormatter => {\n if (props.intervalFormat) {\n return props.intervalFormat as CalendarFormatter\n }\n\n return createNativeLocaleFormatter(\n base.locale.current.value,\n (tms, short) => (\n !short ? { timeZone: 'UTC', hour: '2-digit', minute: '2-digit' }\n : tms.minute === 0 ? { timeZone: 'UTC', hour: 'numeric' }\n : { timeZone: 'UTC', hour: 'numeric', minute: '2-digit' }\n )\n )\n })\n\n function showIntervalLabelDefault (interval: CalendarTimestamp): boolean {\n const first: CalendarTimestamp = intervals.value[0][0]\n const isFirst: boolean = first.hour === interval.hour && first.minute === interval.minute\n return !isFirst\n }\n\n function intervalStyleDefault (_interval: CalendarTimestamp): StyleValue {\n return undefined\n }\n\n function getTimestampAtEvent (e: Event, day: CalendarTimestamp): CalendarTimestamp {\n const timestamp: CalendarTimestamp = copyTimestamp(day)\n const bounds = (e.currentTarget as HTMLElement).getBoundingClientRect()\n const baseMinutes: number = firstMinute.value\n const touchEvent: TouchEvent = e as TouchEvent\n const mouseEvent: MouseEvent = e as MouseEvent\n const touches: TouchList = touchEvent.changedTouches || touchEvent.touches\n const clientY: number = touches && touches[0] ? touches[0].clientY : mouseEvent.clientY\n const addIntervals: number = (clientY - bounds.top) / parsedIntervalHeight.value\n const addMinutes: number = Math.floor(addIntervals * parsedIntervalMinutes.value)\n const minutes: number = baseMinutes + addMinutes\n\n return updateMinutes(timestamp, minutes, base.times.now)\n }\n\n function getSlotScope (timestamp: CalendarTimestamp): CalendarDayBodySlotScope {\n const scope = copyTimestamp(timestamp) as any\n scope.timeToY = timeToY\n scope.timeDelta = timeDelta\n scope.minutesToPixels = minutesToPixels\n scope.week = days.value\n scope.intervalRange = [\n firstMinute.value,\n firstMinute.value + parsedIntervalCount.value * parsedIntervalMinutes.value,\n ]\n return scope\n }\n\n function scrollToTime (time: VTime): boolean {\n const y = timeToY(time)\n\n const pane = scrollAreaRef.value\n\n if (y === false || !pane) {\n return false\n }\n\n pane.scrollTop = y\n\n return true\n }\n\n function minutesToPixels (minutes: number): number {\n return minutes / parsedIntervalMinutes.value * parsedIntervalHeight.value\n }\n\n function timeToY (\n time: VTime | CalendarTimestamp,\n targetDateOrClamp: CalendarTimestamp | boolean = true\n ): number | false {\n const clamp = targetDateOrClamp !== false\n const targetDate = typeof targetDateOrClamp !== 'boolean' ? targetDateOrClamp : undefined\n\n let y = timeDelta(time, targetDate)\n if (y === false) return y\n\n y *= bodyHeight.value\n\n if (clamp) {\n if (y < 0) {\n y = 0\n }\n if (y > bodyHeight.value) {\n y = bodyHeight.value\n }\n }\n\n return y\n }\n\n function timeDelta (time: VTime | CalendarTimestamp, targetDate?: CalendarTimestamp): number | false {\n let minutes = parseTime(time)\n\n if (minutes === false) {\n return false\n }\n\n const gap: number = parsedIntervalCount.value * parsedIntervalMinutes.value\n\n if (targetDate && typeof time === 'object' && 'day' in time) {\n const a = getDayIdentifier(time)\n const b = getDayIdentifier(targetDate)\n if (a > b) {\n minutes += (a - b) * gap\n }\n }\n\n const min: number = firstMinute.value\n\n return (minutes - min) / gap\n }\n\n return {\n ...base,\n scrollAreaRef,\n parsedFirstInterval,\n parsedIntervalMinutes,\n parsedIntervalCount,\n parsedIntervalHeight,\n parsedFirstTime,\n firstMinute,\n bodyHeight,\n days,\n intervals,\n intervalFormatter,\n showIntervalLabelDefault,\n intervalStyleDefault,\n getTimestampAtEvent,\n getSlotScope,\n scrollToTime,\n minutesToPixels,\n timeToY,\n timeDelta,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"calendarWithIntervals.js","names":["useCalendarBase","computed","shallowRef","copyTimestamp","createDayList","createIntervalList","createNativeLocaleFormatter","getDayIdentifier","MINUTES_IN_DAY","parseTime","updateMinutes","validateNumber","validateTime","propsFactory","makeCalendarWithIntervalsProps","maxDays","type","Number","default","intervalHeight","String","validate","intervalWidth","intervalMinutes","firstInterval","firstTime","Object","intervalCount","intervalFormat","Function","intervalStyle","showIntervalLabel","useCalendarWithIntervals","props","base","scrollAreaRef","parsedFirstInterval","parseInt","parsedIntervalMinutes","parsedIntervalCount","parsedIntervalHeight","parseFloat","parsedFirstTime","firstMinute","time","value","bodyHeight","days","parsedStart","parsedEnd","times","today","weekdaySkips","intervals","daysValue","first","minutes","count","now","map","d","intervalFormatter","locale","current","tms","short","timeZone","hour","minute","showIntervalLabelDefault","interval","isFirst","intervalStyleDefault","_interval","undefined","getTimestampAtEvent","e","day","timestamp","bounds","currentTarget","getBoundingClientRect","baseMinutes","touchEvent","mouseEvent","touches","changedTouches","clientY","addIntervals","top","addMinutes","Math","floor","getSlotScope","scope","timeToY","timeDelta","minutesToPixels","week","intervalRange","scrollToTime","y","pane","scrollTop","targetDateOrClamp","arguments","length","clamp","targetDate","gap","a","b","min"],"sources":["../../../../src/components/VCalendar/composables/calendarWithIntervals.ts"],"sourcesContent":["// Composables\nimport { useCalendarBase } from './calendarBase'\n\n// Utilities\nimport { computed, shallowRef } from 'vue'\nimport {\n copyTimestamp,\n createDayList,\n createIntervalList,\n createNativeLocaleFormatter,\n getDayIdentifier,\n MINUTES_IN_DAY,\n parseTime,\n updateMinutes,\n validateNumber,\n validateTime,\n} from '../util/timestamp'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { PropType, StyleValue } from 'vue'\nimport type { CalendarBaseProps } from './calendarBase'\nimport type { CalendarDayBodySlotScope, CalendarFormatter, CalendarTimestamp } from '../types'\nimport type { VTime } from '../util/timestamp'\n\nexport const makeCalendarWithIntervalsProps = propsFactory({\n maxDays: {\n type: Number,\n default: 7,\n },\n intervalHeight: {\n type: [Number, String],\n default: 48,\n validate: validateNumber,\n },\n intervalWidth: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n intervalMinutes: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n firstInterval: {\n type: [Number, String],\n default: 0,\n validate: validateNumber,\n },\n firstTime: {\n type: [Number, String, Object] as PropType<VTime>,\n validate: validateTime,\n },\n intervalCount: {\n type: [Number, String],\n default: 24,\n validate: validateNumber,\n },\n intervalFormat: {\n type: Function as PropType<CalendarFormatter>,\n default: null,\n },\n intervalStyle: {\n type: Function as PropType<(interval: CalendarTimestamp) => StyleValue>,\n default: null,\n },\n showIntervalLabel: {\n type: Function as PropType<(interval: CalendarTimestamp) => boolean>,\n default: null,\n },\n}, 'VCalendar-intervals')\n\ninterface CalendarWithIntervalsProps extends CalendarBaseProps {\n maxDays: number\n intervalHeight: string | number\n intervalMinutes: string | number\n firstInterval: string | number\n firstTime: VTime | undefined\n intervalCount: string | number\n intervalFormat: CalendarFormatter | string | undefined\n}\n\nexport function useCalendarWithIntervals (props: CalendarWithIntervalsProps) {\n const base = useCalendarBase(props)\n\n const scrollAreaRef = shallowRef<HTMLElement>()\n\n const parsedFirstInterval = computed((): number => {\n return parseInt(String(props.firstInterval || 0))\n })\n\n const parsedIntervalMinutes = computed((): number => {\n return parseInt(String(props.intervalMinutes || 60))\n })\n\n const parsedIntervalCount = computed((): number => {\n return parseInt(String(props.intervalCount || 24))\n })\n\n const parsedIntervalHeight = computed((): number => {\n return parseFloat(String(props.intervalHeight || 48))\n })\n\n const parsedFirstTime = computed((): number | false => {\n return parseTime(props.firstTime)\n })\n\n const firstMinute = computed((): number => {\n const time = parsedFirstTime.value\n\n return time !== false && time >= 0 && time <= MINUTES_IN_DAY\n ? time\n : parsedFirstInterval.value * parsedIntervalMinutes.value\n })\n\n const bodyHeight = computed((): number => {\n return parsedIntervalCount.value * parsedIntervalHeight.value\n })\n\n const days = computed((): CalendarTimestamp[] => {\n return createDayList(\n base.parsedStart.value,\n base.parsedEnd.value,\n base.times.today,\n base.weekdaySkips.value,\n props.maxDays\n )\n })\n\n const intervals = computed((): CalendarTimestamp[][] => {\n const daysValue = days.value\n const first: number = firstMinute.value\n const minutes: number = parsedIntervalMinutes.value\n const count: number = parsedIntervalCount.value\n const now: CalendarTimestamp = base.times.now\n\n return daysValue.map(d => createIntervalList(d, first, minutes, count, now))\n })\n\n const intervalFormatter = computed((): CalendarFormatter => {\n if (props.intervalFormat) {\n return props.intervalFormat as CalendarFormatter\n }\n\n return createNativeLocaleFormatter(\n base.locale.current.value,\n (tms, short) => (\n !short ? { timeZone: 'UTC', hour: '2-digit', minute: '2-digit' }\n : tms.minute === 0 ? { timeZone: 'UTC', hour: 'numeric' }\n : { timeZone: 'UTC', hour: 'numeric', minute: '2-digit' }\n )\n )\n })\n\n function showIntervalLabelDefault (interval: CalendarTimestamp): boolean {\n const first: CalendarTimestamp = intervals.value[0][0]\n const isFirst: boolean = first.hour === interval.hour && first.minute === interval.minute\n return !isFirst\n }\n\n function intervalStyleDefault (_interval: CalendarTimestamp): StyleValue {\n return undefined\n }\n\n function getTimestampAtEvent (e: Event, day: CalendarTimestamp): CalendarTimestamp {\n const timestamp: CalendarTimestamp = copyTimestamp(day)\n const bounds = (e.currentTarget as HTMLElement).getBoundingClientRect()\n const baseMinutes: number = firstMinute.value\n const touchEvent: TouchEvent = e as TouchEvent\n const mouseEvent: MouseEvent = e as MouseEvent\n const touches: TouchList = touchEvent.changedTouches || touchEvent.touches\n const clientY: number = touches && touches[0] ? touches[0].clientY : mouseEvent.clientY\n const addIntervals: number = (clientY - bounds.top) / parsedIntervalHeight.value\n const addMinutes: number = Math.floor(addIntervals * parsedIntervalMinutes.value)\n const minutes: number = baseMinutes + addMinutes\n\n return updateMinutes(timestamp, minutes, base.times.now)\n }\n\n function getSlotScope (timestamp: CalendarTimestamp): CalendarDayBodySlotScope {\n const scope = copyTimestamp(timestamp) as any\n scope.timeToY = timeToY\n scope.timeDelta = timeDelta\n scope.minutesToPixels = minutesToPixels\n scope.week = days.value\n scope.intervalRange = [\n firstMinute.value,\n firstMinute.value + parsedIntervalCount.value * parsedIntervalMinutes.value,\n ]\n return scope\n }\n\n function scrollToTime (time: VTime): boolean {\n const y = timeToY(time)\n\n const pane = scrollAreaRef.value\n\n if (y === false || !pane) {\n return false\n }\n\n pane.scrollTop = y\n\n return true\n }\n\n function minutesToPixels (minutes: number): number {\n return minutes / parsedIntervalMinutes.value * parsedIntervalHeight.value\n }\n\n function timeToY (\n time: VTime | CalendarTimestamp,\n targetDateOrClamp: CalendarTimestamp | boolean = false\n ): number | false {\n const clamp = targetDateOrClamp !== false\n const targetDate = typeof targetDateOrClamp !== 'boolean' ? targetDateOrClamp : undefined\n\n let y = timeDelta(time, targetDate)\n if (y === false) return y\n\n y *= bodyHeight.value\n\n if (clamp) {\n if (y < 0) {\n y = 0\n } else if (y > bodyHeight.value) {\n y = bodyHeight.value\n }\n } else {\n if (y < 0) {\n y = y + bodyHeight.value\n } else if (y > bodyHeight.value) {\n y = y - bodyHeight.value\n }\n }\n\n return y\n }\n\n function timeDelta (time: VTime | CalendarTimestamp, targetDate?: CalendarTimestamp): number | false {\n let minutes = parseTime(time)\n\n if (minutes === false) {\n return false\n }\n\n const gap: number = parsedIntervalCount.value * parsedIntervalMinutes.value\n\n if (targetDate && typeof time === 'object' && 'day' in time) {\n const a = getDayIdentifier(time)\n const b = getDayIdentifier(targetDate)\n minutes += (a - b) * gap\n }\n\n const min: number = firstMinute.value\n\n return (minutes - min) / gap\n }\n\n return {\n ...base,\n scrollAreaRef,\n parsedFirstInterval,\n parsedIntervalMinutes,\n parsedIntervalCount,\n parsedIntervalHeight,\n parsedFirstTime,\n firstMinute,\n bodyHeight,\n days,\n intervals,\n intervalFormatter,\n showIntervalLabelDefault,\n intervalStyleDefault,\n getTimestampAtEvent,\n getSlotScope,\n scrollToTime,\n minutesToPixels,\n timeToY,\n timeDelta,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -26,6 +26,10 @@
26
26
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAACRJREFUKFNjPHTo0H8GJGBnZ8eIzGekgwJk+0BsdCtRHEQbBQBbbh0dIGKknQAAAABJRU5ErkJggg==) repeat;
27
27
  cursor: pointer;
28
28
  }
29
+ .v-color-picker-swatches__color--disabled {
30
+ opacity: var(--v-disabled-opacity);
31
+ pointer-events: none;
32
+ }
29
33
  .v-color-picker-swatches__color > div {
30
34
  display: flex;
31
35
  align-items: center;
@@ -33,6 +33,12 @@ export const VColorPickerSwatches = defineComponent({
33
33
  let {
34
34
  emit
35
35
  } = _ref;
36
+ function onSwatchClick(hsva) {
37
+ if (props.disabled || !hsva) {
38
+ return;
39
+ }
40
+ emit('update:color', hsva);
41
+ }
36
42
  useRender(() => _createElementVNode("div", {
37
43
  "class": _normalizeClass(['v-color-picker-swatches', props.class]),
38
44
  "style": _normalizeStyle([{
@@ -45,8 +51,10 @@ export const VColorPickerSwatches = defineComponent({
45
51
  const hsva = RGBtoHSV(rgba);
46
52
  const background = RGBtoCSS(rgba);
47
53
  return _createElementVNode("div", {
48
- "class": "v-color-picker-swatches__color",
49
- "onClick": () => hsva && emit('update:color', hsva)
54
+ "class": _normalizeClass(['v-color-picker-swatches__color', {
55
+ 'v-color-picker-swatches__color--disabled': props.disabled
56
+ }]),
57
+ "onClick": () => onSwatchClick(hsva)
50
58
  }, [_createElementVNode("div", {
51
59
  "style": {
52
60
  background
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPickerSwatches.js","names":["VIcon","makeComponentProps","convertToUnit","deepEqual","defineComponent","getContrast","parseColor","propsFactory","RGBtoCSS","RGBtoHSV","useRender","colors","makeVColorPickerSwatchesProps","swatches","type","Array","default","parseDefaultColors","disabled","Boolean","color","Object","maxHeight","Number","String","keys","map","key","base","darken4","darken3","darken2","darken1","lighten1","lighten2","lighten3","lighten4","lighten5","black","white","transparent","VColorPickerSwatches","name","props","emits","setup","_ref","emit","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","swatch","rgba","hsva","background","onClick","_createVNode","undefined"],"sources":["../../../src/components/VColorPicker/VColorPickerSwatches.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport {\n convertToUnit,\n deepEqual,\n defineComponent,\n getContrast,\n parseColor,\n propsFactory,\n RGBtoCSS,\n RGBtoHSV,\n useRender,\n} from '@/util'\nimport colors from '@/util/colors'\n\n// Types\nimport type { DeepReadonly, PropType } from 'vue'\nimport type { Color, HSV } from '@/util'\n\nexport const makeVColorPickerSwatchesProps = propsFactory({\n swatches: {\n type: Array as PropType<DeepReadonly<Color[][]>>,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: Object as PropType<HSV | null>,\n maxHeight: [Number, String],\n\n ...makeComponentProps(),\n}, 'VColorPickerSwatches')\n\nfunction parseDefaultColors (colors: Record<string, Record<string, string>>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nexport const VColorPickerSwatches = defineComponent({\n name: 'VColorPickerSwatches',\n\n props: makeVColorPickerSwatchesProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n },\n\n setup (props, { emit }) {\n useRender(() => (\n <div\n class={[\n 'v-color-picker-swatches',\n props.class,\n ]}\n style={[\n { maxHeight: convertToUnit(props.maxHeight) },\n props.style,\n ]}\n >\n <div>\n { props.swatches.map(swatch => (\n <div class=\"v-color-picker-swatches__swatch\">\n { swatch.map(color => {\n const rgba = parseColor(color)\n const hsva = RGBtoHSV(rgba)\n const background = RGBtoCSS(rgba)\n\n return (\n <div\n class=\"v-color-picker-swatches__color\"\n onClick={ () => hsva && emit('update:color', hsva) }\n >\n <div style={{ background }}>\n { props.color && deepEqual(props.color, hsva)\n ? <VIcon size=\"x-small\" icon=\"$success\" color={ getContrast(color, '#FFFFFF') > 2 ? 'white' : 'black' } />\n : undefined\n }\n </div>\n </div>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerSwatches = InstanceType<typeof VColorPickerSwatches>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VColorPickerSwatches.js","names":["VIcon","makeComponentProps","convertToUnit","deepEqual","defineComponent","getContrast","parseColor","propsFactory","RGBtoCSS","RGBtoHSV","useRender","colors","makeVColorPickerSwatchesProps","swatches","type","Array","default","parseDefaultColors","disabled","Boolean","color","Object","maxHeight","Number","String","keys","map","key","base","darken4","darken3","darken2","darken1","lighten1","lighten2","lighten3","lighten4","lighten5","black","white","transparent","VColorPickerSwatches","name","props","emits","setup","_ref","emit","onSwatchClick","hsva","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","swatch","rgba","background","onClick","_createVNode","undefined"],"sources":["../../../src/components/VColorPicker/VColorPickerSwatches.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport {\n convertToUnit,\n deepEqual,\n defineComponent,\n getContrast,\n parseColor,\n propsFactory,\n RGBtoCSS,\n RGBtoHSV,\n useRender,\n} from '@/util'\nimport colors from '@/util/colors'\n\n// Types\nimport type { DeepReadonly, PropType } from 'vue'\nimport type { Color, HSV } from '@/util'\n\nexport const makeVColorPickerSwatchesProps = propsFactory({\n swatches: {\n type: Array as PropType<DeepReadonly<Color[][]>>,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: Object as PropType<HSV | null>,\n maxHeight: [Number, String],\n\n ...makeComponentProps(),\n}, 'VColorPickerSwatches')\n\nfunction parseDefaultColors (colors: Record<string, Record<string, string>>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nexport const VColorPickerSwatches = defineComponent({\n name: 'VColorPickerSwatches',\n\n props: makeVColorPickerSwatchesProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n },\n\n setup (props, { emit }) {\n function onSwatchClick (hsva: HSV) {\n if (props.disabled || !hsva) {\n return\n }\n\n emit('update:color', hsva)\n }\n\n useRender(() => (\n <div\n class={[\n 'v-color-picker-swatches',\n props.class,\n ]}\n style={[\n { maxHeight: convertToUnit(props.maxHeight) },\n props.style,\n ]}\n >\n <div>\n { props.swatches.map(swatch => (\n <div class=\"v-color-picker-swatches__swatch\">\n { swatch.map(color => {\n const rgba = parseColor(color)\n const hsva = RGBtoHSV(rgba)\n const background = RGBtoCSS(rgba)\n\n return (\n <div\n class={[\n 'v-color-picker-swatches__color',\n {\n 'v-color-picker-swatches__color--disabled': props.disabled,\n },\n ]}\n onClick={ () => onSwatchClick(hsva) }\n >\n <div style={{ background }}>\n { props.color && deepEqual(props.color, hsva)\n ? <VIcon size=\"x-small\" icon=\"$success\" color={ getContrast(color, '#FFFFFF') > 2 ? 'white' : 'black' } />\n : undefined\n }\n </div>\n </div>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerSwatches = InstanceType<typeof VColorPickerSwatches>\n"],"mappings":"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","ignoreList":[]}
@@ -28,6 +28,10 @@
28
28
  background: $color-picker-checkerboard
29
29
  cursor: pointer
30
30
 
31
+ &--disabled
32
+ opacity: var(--v-disabled-opacity)
33
+ pointer-events: none
34
+
31
35
  > div
32
36
  display: flex
33
37
  align-items: center
@@ -5,7 +5,6 @@
5
5
  font-size: 0.875rem;
6
6
  height: var(--v-date-picker-controls-height, 56px);
7
7
  padding: 4px 12px;
8
- flex: 1;
9
8
  }
10
9
  .v-date-picker-controls .v-btn {
11
10
  text-transform: none;
@@ -10,7 +10,6 @@
10
10
  font-size: .875rem
11
11
  height: $date-picker-controls-height
12
12
  padding: $date-picker-controls-padding
13
- flex: 1
14
13
 
15
14
  .v-btn
16
15
  text-transform: none
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.11.5";
19
+ export const version = "3.11.6";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";
@@ -2779,51 +2779,42 @@ declare module 'vue' {
2779
2779
  $children?: VNodeChild
2780
2780
  }
2781
2781
  export interface GlobalComponents {
2782
- VAlert: typeof import('vuetify/components')['VAlert']
2783
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2784
2782
  VApp: typeof import('vuetify/components')['VApp']
2785
2783
  VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2786
2784
  VBanner: typeof import('vuetify/components')['VBanner']
2787
2785
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
2788
2786
  VBannerText: typeof import('vuetify/components')['VBannerText']
2787
+ VAlert: typeof import('vuetify/components')['VAlert']
2788
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2789
2789
  VAvatar: typeof import('vuetify/components')['VAvatar']
2790
- VAppBar: typeof import('vuetify/components')['VAppBar']
2791
- VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2792
- VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2793
2790
  VBadge: typeof import('vuetify/components')['VBadge']
2794
2791
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2795
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2792
+ VBtn: typeof import('vuetify/components')['VBtn']
2796
2793
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2797
2794
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2798
2795
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2799
- VBtn: typeof import('vuetify/components')['VBtn']
2800
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2796
+ VAppBar: typeof import('vuetify/components')['VAppBar']
2797
+ VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2798
+ VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2799
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2800
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2801
2801
  VCard: typeof import('vuetify/components')['VCard']
2802
2802
  VCardActions: typeof import('vuetify/components')['VCardActions']
2803
2803
  VCardItem: typeof import('vuetify/components')['VCardItem']
2804
2804
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
2805
2805
  VCardText: typeof import('vuetify/components')['VCardText']
2806
2806
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
2807
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2808
+ VCarousel: typeof import('vuetify/components')['VCarousel']
2809
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2807
2810
  VCalendar: typeof import('vuetify/components')['VCalendar']
2808
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2809
2811
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
2810
2812
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2811
- VCode: typeof import('vuetify/components')['VCode']
2812
- VCarousel: typeof import('vuetify/components')['VCarousel']
2813
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2814
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
2815
2813
  VChip: typeof import('vuetify/components')['VChip']
2816
- VCombobox: typeof import('vuetify/components')['VCombobox']
2814
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
2815
+ VCode: typeof import('vuetify/components')['VCode']
2817
2816
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
2818
- VDivider: typeof import('vuetify/components')['VDivider']
2819
2817
  VCounter: typeof import('vuetify/components')['VCounter']
2820
- VDataTable: typeof import('vuetify/components')['VDataTable']
2821
- VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
2822
- VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
2823
- VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
2824
- VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
2825
- VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2826
- VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2827
2818
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
2828
2819
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2829
2820
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
@@ -2831,30 +2822,37 @@ declare module 'vue' {
2831
2822
  VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2832
2823
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2833
2824
  VDialog: typeof import('vuetify/components')['VDialog']
2825
+ VDataTable: typeof import('vuetify/components')['VDataTable']
2826
+ VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
2827
+ VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
2828
+ VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
2829
+ VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
2830
+ VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2831
+ VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2832
+ VCombobox: typeof import('vuetify/components')['VCombobox']
2833
+ VEmptyState: typeof import('vuetify/components')['VEmptyState']
2834
+ VFab: typeof import('vuetify/components')['VFab']
2835
+ VDivider: typeof import('vuetify/components')['VDivider']
2836
+ VFileInput: typeof import('vuetify/components')['VFileInput']
2834
2837
  VField: typeof import('vuetify/components')['VField']
2835
2838
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2836
- VEmptyState: typeof import('vuetify/components')['VEmptyState']
2837
2839
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
2838
2840
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
2839
2841
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
2840
2842
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
2841
- VFab: typeof import('vuetify/components')['VFab']
2842
2843
  VFooter: typeof import('vuetify/components')['VFooter']
2843
- VFileInput: typeof import('vuetify/components')['VFileInput']
2844
- VImg: typeof import('vuetify/components')['VImg']
2845
- VHotkey: typeof import('vuetify/components')['VHotkey']
2846
2844
  VIcon: typeof import('vuetify/components')['VIcon']
2847
2845
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
2848
2846
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2849
2847
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2850
2848
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
2849
+ VHotkey: typeof import('vuetify/components')['VHotkey']
2850
+ VImg: typeof import('vuetify/components')['VImg']
2851
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2851
2852
  VInput: typeof import('vuetify/components')['VInput']
2852
- VKbd: typeof import('vuetify/components')['VKbd']
2853
2853
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
2854
2854
  VItem: typeof import('vuetify/components')['VItem']
2855
- VLabel: typeof import('vuetify/components')['VLabel']
2856
- VMain: typeof import('vuetify/components')['VMain']
2857
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2855
+ VKbd: typeof import('vuetify/components')['VKbd']
2858
2856
  VList: typeof import('vuetify/components')['VList']
2859
2857
  VListGroup: typeof import('vuetify/components')['VListGroup']
2860
2858
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -2864,63 +2862,65 @@ declare module 'vue' {
2864
2862
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
2865
2863
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2866
2864
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
2867
- VMenu: typeof import('vuetify/components')['VMenu']
2868
2865
  VMessages: typeof import('vuetify/components')['VMessages']
2866
+ VLabel: typeof import('vuetify/components')['VLabel']
2867
+ VMain: typeof import('vuetify/components')['VMain']
2868
+ VMenu: typeof import('vuetify/components')['VMenu']
2869
2869
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2870
2870
  VNumberInput: typeof import('vuetify/components')['VNumberInput']
2871
- VOverlay: typeof import('vuetify/components')['VOverlay']
2871
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2872
2872
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
2873
- VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2874
2873
  VPagination: typeof import('vuetify/components')['VPagination']
2875
- VSelect: typeof import('vuetify/components')['VSelect']
2876
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2874
+ VOverlay: typeof import('vuetify/components')['VOverlay']
2875
+ VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2877
2876
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2878
- VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2877
+ VRating: typeof import('vuetify/components')['VRating']
2879
2878
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2879
+ VSelect: typeof import('vuetify/components')['VSelect']
2880
+ VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2881
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2880
2882
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2881
2883
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2882
- VRating: typeof import('vuetify/components')['VRating']
2883
2884
  VSheet: typeof import('vuetify/components')['VSheet']
2884
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2885
- VSlider: typeof import('vuetify/components')['VSlider']
2886
- VStepper: typeof import('vuetify/components')['VStepper']
2887
- VStepperActions: typeof import('vuetify/components')['VStepperActions']
2888
- VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
2889
- VStepperItem: typeof import('vuetify/components')['VStepperItem']
2890
- VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
2891
- VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
2892
2885
  VSystemBar: typeof import('vuetify/components')['VSystemBar']
2893
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
2894
- VSwitch: typeof import('vuetify/components')['VSwitch']
2895
- VTextarea: typeof import('vuetify/components')['VTextarea']
2886
+ VSlider: typeof import('vuetify/components')['VSlider']
2896
2887
  VTab: typeof import('vuetify/components')['VTab']
2897
2888
  VTabs: typeof import('vuetify/components')['VTabs']
2898
2889
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
2899
2890
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
2891
+ VTextarea: typeof import('vuetify/components')['VTextarea']
2892
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
2900
2893
  VTextField: typeof import('vuetify/components')['VTextField']
2901
2894
  VTable: typeof import('vuetify/components')['VTable']
2902
- VTreeview: typeof import('vuetify/components')['VTreeview']
2903
- VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
2904
- VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
2905
- VTimePicker: typeof import('vuetify/components')['VTimePicker']
2906
- VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
2907
- VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
2895
+ VTimeline: typeof import('vuetify/components')['VTimeline']
2896
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2897
+ VSwitch: typeof import('vuetify/components')['VSwitch']
2898
+ VStepper: typeof import('vuetify/components')['VStepper']
2899
+ VStepperActions: typeof import('vuetify/components')['VStepperActions']
2900
+ VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
2901
+ VStepperItem: typeof import('vuetify/components')['VStepperItem']
2902
+ VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
2903
+ VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
2908
2904
  VToolbar: typeof import('vuetify/components')['VToolbar']
2909
2905
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2910
2906
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2911
2907
  VTooltip: typeof import('vuetify/components')['VTooltip']
2912
- VTimeline: typeof import('vuetify/components')['VTimeline']
2913
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2908
+ VTimePicker: typeof import('vuetify/components')['VTimePicker']
2909
+ VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
2910
+ VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
2914
2911
  VWindow: typeof import('vuetify/components')['VWindow']
2915
2912
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
2916
- VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2913
+ VTreeview: typeof import('vuetify/components')['VTreeview']
2914
+ VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
2915
+ VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
2917
2916
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
2917
+ VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2918
2918
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
2919
+ VForm: typeof import('vuetify/components')['VForm']
2919
2920
  VContainer: typeof import('vuetify/components')['VContainer']
2920
2921
  VCol: typeof import('vuetify/components')['VCol']
2921
2922
  VRow: typeof import('vuetify/components')['VRow']
2922
2923
  VSpacer: typeof import('vuetify/components')['VSpacer']
2923
- VForm: typeof import('vuetify/components')['VForm']
2924
2924
  VHover: typeof import('vuetify/components')['VHover']
2925
2925
  VLazy: typeof import('vuetify/components')['VLazy']
2926
2926
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
@@ -2928,12 +2928,12 @@ declare module 'vue' {
2928
2928
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
2929
2929
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
2930
2930
  VParallax: typeof import('vuetify/components')['VParallax']
2931
- VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2932
2931
  VRadio: typeof import('vuetify/components')['VRadio']
2932
+ VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2933
2933
  VResponsive: typeof import('vuetify/components')['VResponsive']
2934
2934
  VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
2935
- VSparkline: typeof import('vuetify/components')['VSparkline']
2936
2935
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
2936
+ VSparkline: typeof import('vuetify/components')['VSparkline']
2937
2937
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
2938
2938
  VValidation: typeof import('vuetify/components')['VValidation']
2939
2939
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
@@ -2953,18 +2953,18 @@ declare module 'vue' {
2953
2953
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
2954
2954
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
2955
2955
  VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2956
- VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2957
2956
  VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2958
2957
  VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2959
2958
  VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2959
+ VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2960
2960
  VPie: typeof import('vuetify/labs/components')['VPie']
2961
2961
  VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
2962
2962
  VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
2963
- VPicker: typeof import('vuetify/labs/components')['VPicker']
2964
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2965
2963
  VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2966
2964
  VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2967
2965
  VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2966
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
2967
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2968
2968
  VVideo: typeof import('vuetify/labs/components')['VVideo']
2969
2969
  VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
2970
2970
  VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
package/lib/framework.js CHANGED
@@ -110,7 +110,7 @@ export function createVuetify() {
110
110
  };
111
111
  });
112
112
  }
113
- export const version = "3.11.5";
113
+ export const version = "3.11.6";
114
114
  createVuetify.version = version;
115
115
 
116
116
  // Vue's inject() can only be used in setup
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vuetify",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.11.5",
4
+ "version": "3.11.6",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"