@vuetify/nightly 3.8.11-master.2025-06-24 → 3.8.11-master.2025-06-30

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 (56) hide show
  1. package/CHANGELOG.md +20 -3
  2. package/dist/json/attributes.json +926 -926
  3. package/dist/json/importMap-labs.json +20 -20
  4. package/dist/json/importMap.json +128 -128
  5. package/dist/json/web-types.json +1587 -1587
  6. package/dist/vuetify-labs.cjs +30 -29
  7. package/dist/vuetify-labs.css +4863 -4863
  8. package/dist/vuetify-labs.d.ts +186 -186
  9. package/dist/vuetify-labs.esm.js +30 -29
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +30 -29
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +13 -13
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3384 -3384
  16. package/dist/vuetify.d.ts +43 -43
  17. package/dist/vuetify.esm.js +13 -13
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +13 -13
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +9 -10
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VDataTable/VDataTableColumn.js +0 -1
  25. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  26. package/lib/components/VDataTable/VDataTableHeaders.js +5 -5
  27. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  28. package/lib/components/VDataTable/composables/sort.js +2 -1
  29. package/lib/components/VDataTable/composables/sort.js.map +1 -1
  30. package/lib/components/VOverlay/locationStrategies.js +1 -1
  31. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  32. package/lib/components/VTextField/VTextField.js +1 -1
  33. package/lib/components/VTextField/VTextField.js.map +1 -1
  34. package/lib/composables/virtual.js +1 -1
  35. package/lib/composables/virtual.js.map +1 -1
  36. package/lib/entry-bundler.js +1 -1
  37. package/lib/framework.d.ts +43 -43
  38. package/lib/framework.js +1 -1
  39. package/lib/labs/VCalendar/VCalendar.d.ts +33 -33
  40. package/lib/labs/VCalendar/VCalendar.js +1 -1
  41. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  42. package/lib/labs/VCalendar/VCalendarDay.d.ts +33 -33
  43. package/lib/labs/VCalendar/VCalendarDay.js +1 -1
  44. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  45. package/lib/labs/VCalendar/VCalendarInterval.d.ts +36 -36
  46. package/lib/labs/VCalendar/VCalendarInterval.js +9 -9
  47. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  48. package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +12 -12
  49. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +1 -1
  50. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  51. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +36 -36
  52. package/lib/labs/VCalendar/VCalendarMonthDay.js +4 -4
  53. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  54. package/lib/labs/VIconBtn/VIconBtn.js +1 -0
  55. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  56. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"virtual.js","names":["useDisplay","useResizeObserver","computed","nextTick","onScopeDispose","ref","shallowRef","watch","watchEffect","clamp","debounce","getPropertyFromItem","IN_BROWSER","propsFactory","UP","DOWN","BUFFER_PX","makeVirtualProps","itemHeight","type","Number","String","default","itemKey","Array","Function","height","useVirtual","props","items","display","value","parseFloat","first","last","Math","ceil","parseInt","paddingTop","paddingBottom","containerRef","markerRef","markerOffset","resizeRef","contentRect","viewportHeight","document","documentElement","hasInitialRender","sizes","from","length","offsets","updateTime","targetScrollIndex","getSize","index","updateOffsets","start","performance","now","i","max","unwatch","v","offsetTop","immediate","calculateVisibleItems","window","requestAnimationFrame","scrollToIndex","clear","handleItemResize","prevHeight","prevMinHeight","min","calculateOffset","calculateIndex","scrollTop","binaryClosest","lastScrollTop","scrollVelocity","lastScrollTime","val","oldVal","scrollTimeout","handleScroll","scrollTime","scrollDeltaT","sign","clearTimeout","setTimeout","handleScrollend","raf","cancelAnimationFrame","_calculateVisibleItems","direction","startPx","endPx","end","topOverflow","bottomOverflow","bufferOverflow","offset","computedItems","slice","map","item","_index","raw","key","deep","arr","high","low","mid","target"],"sources":["../../src/composables/virtual.ts"],"sourcesContent":["// Composables\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { clamp, debounce, getPropertyFromItem, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100\n\ntype VirtualProps = {\n itemHeight: number | string | null | undefined\n itemKey: SelectItemKey\n height: number | string | undefined\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null,\n },\n itemKey: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: null,\n },\n height: [Number, String],\n}, 'virtual')\n\nexport function useVirtual <T> (props: VirtualProps, items: Ref<readonly T[]>) {\n const display = useDisplay()\n\n const itemHeight = shallowRef(0)\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0)\n })\n\n const first = shallowRef(0)\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)\n ) || 1)\n const paddingTop = shallowRef(0)\n const paddingBottom = shallowRef(0)\n\n /** The scrollable element */\n const containerRef = ref<HTMLElement>()\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref<HTMLElement>()\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0\n\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = containerRef.value\n })\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0\n })\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value)\n })\n\n let sizes = Array.from<number | null>({ length: items.value.length })\n let offsets = Array.from<number>({ length: items.value.length })\n const updateTime = shallowRef(0)\n let targetScrollIndex = -1\n\n function getSize (index: number) {\n return sizes[index] || itemHeight.value\n }\n\n const updateOffsets = debounce(() => {\n const start = performance.now()\n offsets[0] = 0\n const length = items.value.length\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1)\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start)\n }, updateTime)\n\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch()\n markerOffset = markerRef.value!.offsetTop\n updateOffsets.immediate()\n calculateVisibleItems()\n\n if (!~targetScrollIndex) return\n\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex)\n targetScrollIndex = -1\n })\n })\n })\n\n onScopeDispose(() => {\n updateOffsets.clear()\n })\n\n function handleItemResize (index: number, height: number) {\n const prevHeight = sizes[index]\n const prevMinHeight = itemHeight.value\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height\n updateOffsets()\n }\n }\n\n function calculateOffset (index: number) {\n index = clamp(index, 0, items.value.length - 1)\n return offsets[index] || 0\n }\n\n function calculateIndex (scrollTop: number) {\n return binaryClosest(offsets, scrollTop)\n }\n\n let lastScrollTop = 0\n let scrollVelocity = 0\n let lastScrollTime = 0\n\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems()\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0\n calculateVisibleItems()\n })\n }\n }\n })\n\n let scrollTimeout = -1\n function handleScroll () {\n if (!containerRef.value || !markerRef.value) return\n\n const scrollTop = containerRef.value.scrollTop\n const scrollTime = performance.now()\n const scrollDeltaT = scrollTime - lastScrollTime\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop)\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop\n } else {\n scrollVelocity = scrollTop - lastScrollTop\n }\n\n lastScrollTop = scrollTop\n lastScrollTime = scrollTime\n\n window.clearTimeout(scrollTimeout)\n scrollTimeout = window.setTimeout(handleScrollend, 500)\n\n calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\n window.clearTimeout(scrollTimeout)\n calculateVisibleItems()\n }\n\n let raf = -1\n function calculateVisibleItems () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(_calculateVisibleItems)\n }\n function _calculateVisibleItems () {\n if (!containerRef.value || !viewportHeight.value) return\n const scrollTop = lastScrollTop - markerOffset\n const direction = Math.sign(scrollVelocity)\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX)\n const start = clamp(calculateIndex(startPx), 0, items.value.length)\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length)\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start)\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value)\n const bufferOverflow = Math.max(topOverflow, bottomOverflow)\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start\n last.value = end\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start\n if (end >= items.value.length) last.value = end\n }\n }\n\n paddingTop.value = calculateOffset(first.value)\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value)\n }\n\n function scrollToIndex (index: number) {\n const offset = calculateOffset(index)\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index\n } else {\n containerRef.value.scrollTop = offset\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => {\n const _index = index + first.value\n return {\n raw: item,\n index: _index,\n key: getPropertyFromItem(item, props.itemKey, _index),\n }\n })\n })\n\n watch(items, () => {\n sizes = Array.from({ length: items.value.length })\n offsets = Array.from({ length: items.value.length })\n updateOffsets.immediate()\n calculateVisibleItems()\n }, { deep: 1 })\n\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize,\n }\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest (arr: ArrayLike<number>, val: number) {\n let high = arr.length - 1\n let low = 0\n let mid = 0\n let item = null\n let target = -1\n\n if (arr[high]! < val) {\n return high\n }\n\n while (low <= high) {\n mid = (low + high) >> 1\n item = arr[mid]!\n\n if (item > val) {\n high = mid - 1\n } else if (item < val) {\n target = mid\n low = mid + 1\n } else if (item === val) {\n return mid\n } else {\n return low\n }\n }\n\n return target\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"virtual.js","names":["useDisplay","useResizeObserver","computed","nextTick","onScopeDispose","ref","shallowRef","watch","watchEffect","clamp","debounce","getPropertyFromItem","IN_BROWSER","propsFactory","UP","DOWN","BUFFER_PX","makeVirtualProps","itemHeight","type","Number","String","default","itemKey","Array","Function","height","useVirtual","props","items","display","value","parseFloat","first","last","Math","ceil","parseInt","paddingTop","paddingBottom","containerRef","markerRef","markerOffset","resizeRef","contentRect","viewportHeight","document","documentElement","hasInitialRender","sizes","from","length","offsets","updateTime","targetScrollIndex","getSize","index","updateOffsets","start","performance","now","i","max","unwatch","v","offsetTop","immediate","calculateVisibleItems","window","requestAnimationFrame","scrollToIndex","clear","handleItemResize","prevHeight","prevMinHeight","min","calculateOffset","calculateIndex","scrollTop","binaryClosest","lastScrollTop","scrollVelocity","lastScrollTime","val","oldVal","scrollTimeout","handleScroll","scrollTime","scrollDeltaT","sign","clearTimeout","setTimeout","handleScrollend","raf","cancelAnimationFrame","_calculateVisibleItems","direction","startPx","endPx","end","topOverflow","bottomOverflow","bufferOverflow","offset","computedItems","slice","map","item","_index","raw","key","deep","arr","high","low","mid","target"],"sources":["../../src/composables/virtual.ts"],"sourcesContent":["// Composables\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { clamp, debounce, getPropertyFromItem, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100\n\ntype VirtualProps = {\n itemHeight: number | string | null | undefined\n itemKey: SelectItemKey\n height: number | string | undefined\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null,\n },\n itemKey: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: null,\n },\n height: [Number, String],\n}, 'virtual')\n\nexport function useVirtual <T> (props: VirtualProps, items: Ref<readonly T[]>) {\n const display = useDisplay()\n\n const itemHeight = shallowRef(0)\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0)\n })\n\n const first = shallowRef(0)\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)\n ) || 1)\n const paddingTop = shallowRef(0)\n const paddingBottom = shallowRef(0)\n\n /** The scrollable element */\n const containerRef = ref<HTMLElement>()\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref<HTMLElement>()\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0\n\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = containerRef.value\n })\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0\n })\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value)\n })\n\n let sizes = Array.from<number | null>({ length: items.value.length })\n let offsets = Array.from<number>({ length: items.value.length })\n const updateTime = shallowRef(0)\n let targetScrollIndex = -1\n\n function getSize (index: number) {\n return sizes[index] || itemHeight.value\n }\n\n const updateOffsets = debounce(() => {\n const start = performance.now()\n offsets[0] = 0\n const length = items.value.length\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1)\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start)\n }, updateTime)\n\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch()\n markerOffset = markerRef.value!.offsetTop\n updateOffsets.immediate()\n calculateVisibleItems()\n\n if (!~targetScrollIndex) return\n\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex)\n targetScrollIndex = -1\n })\n })\n })\n\n onScopeDispose(() => {\n updateOffsets.clear()\n })\n\n function handleItemResize (index: number, height: number) {\n const prevHeight = sizes[index]\n const prevMinHeight = itemHeight.value\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height\n updateOffsets()\n }\n }\n\n function calculateOffset (index: number) {\n index = clamp(index, 0, items.value.length - 1)\n return offsets[index] || 0\n }\n\n function calculateIndex (scrollTop: number) {\n return binaryClosest(offsets, scrollTop)\n }\n\n let lastScrollTop = 0\n let scrollVelocity = 0\n let lastScrollTime = 0\n\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems()\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0\n calculateVisibleItems()\n })\n }\n }\n })\n\n let scrollTimeout = -1\n function handleScroll () {\n if (!containerRef.value || !markerRef.value) return\n\n const scrollTop = containerRef.value.scrollTop\n const scrollTime = performance.now()\n const scrollDeltaT = scrollTime - lastScrollTime\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop)\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop\n } else {\n scrollVelocity = scrollTop - lastScrollTop\n }\n\n lastScrollTop = scrollTop\n lastScrollTime = scrollTime\n\n window.clearTimeout(scrollTimeout)\n scrollTimeout = window.setTimeout(handleScrollend, 500)\n\n calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\n window.clearTimeout(scrollTimeout)\n calculateVisibleItems()\n }\n\n let raf = -1\n function calculateVisibleItems () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(_calculateVisibleItems)\n }\n function _calculateVisibleItems () {\n if (!containerRef.value || !viewportHeight.value || !itemHeight.value) return\n const scrollTop = lastScrollTop - markerOffset\n const direction = Math.sign(scrollVelocity)\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX)\n const start = clamp(calculateIndex(startPx), 0, items.value.length)\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length)\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start)\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value)\n const bufferOverflow = Math.max(topOverflow, bottomOverflow)\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start\n last.value = end\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start\n if (end >= items.value.length) last.value = end\n }\n }\n\n paddingTop.value = calculateOffset(first.value)\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value)\n }\n\n function scrollToIndex (index: number) {\n const offset = calculateOffset(index)\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index\n } else {\n containerRef.value.scrollTop = offset\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => {\n const _index = index + first.value\n return {\n raw: item,\n index: _index,\n key: getPropertyFromItem(item, props.itemKey, _index),\n }\n })\n })\n\n watch(items, () => {\n sizes = Array.from({ length: items.value.length })\n offsets = Array.from({ length: items.value.length })\n updateOffsets.immediate()\n calculateVisibleItems()\n }, { deep: 1 })\n\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize,\n }\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest (arr: ArrayLike<number>, val: number) {\n let high = arr.length - 1\n let low = 0\n let mid = 0\n let item = null\n let target = -1\n\n if (arr[high]! < val) {\n return high\n }\n\n while (low <= high) {\n mid = (low + high) >> 1\n item = arr[mid]!\n\n if (item > val) {\n high = mid - 1\n } else if (item < val) {\n target = mid\n low = mid + 1\n } else if (item === val) {\n return mid\n } else {\n return low\n }\n }\n\n return target\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.8.11-master.2025-06-24";
19
+ export const version = "3.8.11-master.2025-06-30";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";
@@ -2546,40 +2546,39 @@ declare module 'vue' {
2546
2546
  }
2547
2547
  export interface GlobalComponents {
2548
2548
  VApp: typeof import('vuetify/components')['VApp']
2549
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2549
2550
  VAppBar: typeof import('vuetify/components')['VAppBar']
2550
2551
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2551
2552
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2553
+ VAlert: typeof import('vuetify/components')['VAlert']
2554
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2552
2555
  VAvatar: typeof import('vuetify/components')['VAvatar']
2553
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2554
- VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2555
2556
  VBanner: typeof import('vuetify/components')['VBanner']
2556
2557
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
2557
2558
  VBannerText: typeof import('vuetify/components')['VBannerText']
2558
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2559
2559
  VBadge: typeof import('vuetify/components')['VBadge']
2560
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2560
+ VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2561
2561
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2562
2562
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2563
2563
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2564
2564
  VBtn: typeof import('vuetify/components')['VBtn']
2565
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2566
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2567
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2568
+ VCheckbox: typeof import('vuetify/components')['VCheckbox']
2569
+ VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2565
2570
  VCard: typeof import('vuetify/components')['VCard']
2566
2571
  VCardActions: typeof import('vuetify/components')['VCardActions']
2567
2572
  VCardItem: typeof import('vuetify/components')['VCardItem']
2568
2573
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
2569
2574
  VCardText: typeof import('vuetify/components')['VCardText']
2570
2575
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
2571
- VAlert: typeof import('vuetify/components')['VAlert']
2572
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2573
- VCheckbox: typeof import('vuetify/components')['VCheckbox']
2574
- VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2575
- VChip: typeof import('vuetify/components')['VChip']
2576
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2577
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
2578
- VCode: typeof import('vuetify/components')['VCode']
2579
- VCounter: typeof import('vuetify/components')['VCounter']
2580
2576
  VCarousel: typeof import('vuetify/components')['VCarousel']
2581
2577
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2578
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
2582
2579
  VCombobox: typeof import('vuetify/components')['VCombobox']
2580
+ VCode: typeof import('vuetify/components')['VCode']
2581
+ VChip: typeof import('vuetify/components')['VChip']
2583
2582
  VDataTable: typeof import('vuetify/components')['VDataTable']
2584
2583
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
2585
2584
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -2587,22 +2586,24 @@ declare module 'vue' {
2587
2586
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
2588
2587
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2589
2588
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2590
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
2591
2589
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
2592
2590
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2593
2591
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2594
2592
  VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2595
2593
  VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2596
2594
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2595
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
2597
2596
  VDialog: typeof import('vuetify/components')['VDialog']
2598
- VEmptyState: typeof import('vuetify/components')['VEmptyState']
2599
2597
  VDivider: typeof import('vuetify/components')['VDivider']
2600
- VFooter: typeof import('vuetify/components')['VFooter']
2598
+ VEmptyState: typeof import('vuetify/components')['VEmptyState']
2599
+ VFab: typeof import('vuetify/components')['VFab']
2601
2600
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
2602
2601
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
2603
2602
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
2604
2603
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
2605
- VFab: typeof import('vuetify/components')['VFab']
2604
+ VCounter: typeof import('vuetify/components')['VCounter']
2605
+ VFooter: typeof import('vuetify/components')['VFooter']
2606
+ VFileInput: typeof import('vuetify/components')['VFileInput']
2606
2607
  VField: typeof import('vuetify/components')['VField']
2607
2608
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2608
2609
  VIcon: typeof import('vuetify/components')['VIcon']
@@ -2610,14 +2611,13 @@ declare module 'vue' {
2610
2611
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2611
2612
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2612
2613
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
2613
- VFileInput: typeof import('vuetify/components')['VFileInput']
2614
2614
  VImg: typeof import('vuetify/components')['VImg']
2615
- VInput: typeof import('vuetify/components')['VInput']
2616
2615
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
2617
2616
  VItem: typeof import('vuetify/components')['VItem']
2617
+ VInput: typeof import('vuetify/components')['VInput']
2618
2618
  VKbd: typeof import('vuetify/components')['VKbd']
2619
- VLabel: typeof import('vuetify/components')['VLabel']
2620
2619
  VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2620
+ VLabel: typeof import('vuetify/components')['VLabel']
2621
2621
  VList: typeof import('vuetify/components')['VList']
2622
2622
  VListGroup: typeof import('vuetify/components')['VListGroup']
2623
2623
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -2627,56 +2627,58 @@ declare module 'vue' {
2627
2627
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
2628
2628
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2629
2629
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
2630
- VMenu: typeof import('vuetify/components')['VMenu']
2631
2630
  VMain: typeof import('vuetify/components')['VMain']
2632
2631
  VMessages: typeof import('vuetify/components')['VMessages']
2633
- VNumberInput: typeof import('vuetify/components')['VNumberInput']
2634
2632
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2635
- VPagination: typeof import('vuetify/components')['VPagination']
2636
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2633
+ VNumberInput: typeof import('vuetify/components')['VNumberInput']
2637
2634
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
2638
2635
  VOverlay: typeof import('vuetify/components')['VOverlay']
2636
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2637
+ VPagination: typeof import('vuetify/components')['VPagination']
2638
+ VRating: typeof import('vuetify/components')['VRating']
2639
2639
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2640
2640
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2641
- VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2642
- VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2643
- VRating: typeof import('vuetify/components')['VRating']
2644
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2645
- VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2646
- VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2647
2641
  VSelect: typeof import('vuetify/components')['VSelect']
2642
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2643
+ VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2644
+ VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2648
2645
  VSheet: typeof import('vuetify/components')['VSheet']
2649
2646
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
2647
+ VSlider: typeof import('vuetify/components')['VSlider']
2648
+ VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2649
+ VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2650
2650
  VStepper: typeof import('vuetify/components')['VStepper']
2651
2651
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
2652
2652
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
2653
2653
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
2654
2654
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
2655
2655
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
2656
- VSlider: typeof import('vuetify/components')['VSlider']
2657
2656
  VSwitch: typeof import('vuetify/components')['VSwitch']
2657
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
2658
+ VTextField: typeof import('vuetify/components')['VTextField']
2658
2659
  VTab: typeof import('vuetify/components')['VTab']
2659
2660
  VTabs: typeof import('vuetify/components')['VTabs']
2660
2661
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
2661
2662
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
2662
- VTable: typeof import('vuetify/components')['VTable']
2663
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
2663
+ VTextarea: typeof import('vuetify/components')['VTextarea']
2664
2664
  VTimeline: typeof import('vuetify/components')['VTimeline']
2665
2665
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2666
+ VTable: typeof import('vuetify/components')['VTable']
2666
2667
  VTooltip: typeof import('vuetify/components')['VTooltip']
2667
2668
  VToolbar: typeof import('vuetify/components')['VToolbar']
2668
2669
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2669
2670
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2670
2671
  VWindow: typeof import('vuetify/components')['VWindow']
2671
2672
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
2673
+ VMenu: typeof import('vuetify/components')['VMenu']
2674
+ VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2672
2675
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
2673
2676
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
2674
- VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2677
+ VForm: typeof import('vuetify/components')['VForm']
2675
2678
  VContainer: typeof import('vuetify/components')['VContainer']
2676
2679
  VCol: typeof import('vuetify/components')['VCol']
2677
2680
  VRow: typeof import('vuetify/components')['VRow']
2678
2681
  VSpacer: typeof import('vuetify/components')['VSpacer']
2679
- VForm: typeof import('vuetify/components')['VForm']
2680
2682
  VHover: typeof import('vuetify/components')['VHover']
2681
2683
  VLayout: typeof import('vuetify/components')['VLayout']
2682
2684
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
@@ -2692,9 +2694,6 @@ declare module 'vue' {
2692
2694
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
2693
2695
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
2694
2696
  VValidation: typeof import('vuetify/components')['VValidation']
2695
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2696
- VTextField: typeof import('vuetify/components')['VTextField']
2697
- VTextarea: typeof import('vuetify/components')['VTextarea']
2698
2697
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
2699
2698
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
2700
2699
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -2711,27 +2710,28 @@ declare module 'vue' {
2711
2710
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
2712
2711
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
2713
2712
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
2713
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2714
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
2715
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2714
2716
  VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2717
+ VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2718
+ VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2715
2719
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
2716
2720
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
2717
2721
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
2718
2722
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
2719
2723
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
2720
2724
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
2721
- VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2722
2725
  VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2723
2726
  VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2724
2727
  VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2725
- VPicker: typeof import('vuetify/labs/components')['VPicker']
2726
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2727
2728
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
2728
2729
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
2729
2730
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
2730
- VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2731
- VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2732
2731
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
2733
2732
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
2734
2733
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
2734
+ VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2735
2735
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
2736
2736
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
2737
2737
  }
package/lib/framework.js CHANGED
@@ -109,7 +109,7 @@ export function createVuetify() {
109
109
  };
110
110
  });
111
111
  }
112
- export const version = "3.8.11-master.2025-06-24";
112
+ export const version = "3.8.11-master.2025-06-30";
113
113
  createVuetify.version = version;
114
114
 
115
115
  // Vue's inject() can only be used in setup
@@ -315,7 +315,7 @@ export declare const VCalendar: {
315
315
  dayIndex?: number | undefined;
316
316
  } & {
317
317
  $children?: {} | import("vue").VNodeChild | {
318
- intervalBody?: ((arg: {
318
+ 'interval-body'?: ((arg: {
319
319
  interval: {
320
320
  label: string;
321
321
  start: unknown;
@@ -323,7 +323,7 @@ export declare const VCalendar: {
323
323
  events: any[];
324
324
  };
325
325
  }) => import("vue").VNodeChild) | undefined;
326
- intervalEvent?: ((arg: {
326
+ 'interval-event'?: ((arg: {
327
327
  height: string;
328
328
  margin: string;
329
329
  eventClass: string;
@@ -335,7 +335,7 @@ export declare const VCalendar: {
335
335
  events: any[];
336
336
  };
337
337
  }) => import("vue").VNodeChild) | undefined;
338
- intervalTitle?: ((arg: {
338
+ 'interval-title'?: ((arg: {
339
339
  interval: {
340
340
  label: string;
341
341
  start: unknown;
@@ -372,7 +372,7 @@ export declare const VCalendar: {
372
372
  }) => import("vue").VNodeChild) | undefined;
373
373
  };
374
374
  'v-slots'?: {
375
- intervalBody?: false | ((arg: {
375
+ 'interval-body'?: false | ((arg: {
376
376
  interval: {
377
377
  label: string;
378
378
  start: unknown;
@@ -380,7 +380,7 @@ export declare const VCalendar: {
380
380
  events: any[];
381
381
  };
382
382
  }) => import("vue").VNodeChild) | undefined;
383
- intervalEvent?: false | ((arg: {
383
+ 'interval-event'?: false | ((arg: {
384
384
  height: string;
385
385
  margin: string;
386
386
  eventClass: string;
@@ -392,7 +392,7 @@ export declare const VCalendar: {
392
392
  events: any[];
393
393
  };
394
394
  }) => import("vue").VNodeChild) | undefined;
395
- intervalTitle?: false | ((arg: {
395
+ 'interval-title'?: false | ((arg: {
396
396
  interval: {
397
397
  label: string;
398
398
  start: unknown;
@@ -429,7 +429,7 @@ export declare const VCalendar: {
429
429
  }) => import("vue").VNodeChild) | undefined;
430
430
  } | undefined;
431
431
  } & {
432
- "v-slot:intervalBody"?: false | ((arg: {
432
+ "v-slot:interval-body"?: false | ((arg: {
433
433
  interval: {
434
434
  label: string;
435
435
  start: unknown;
@@ -437,7 +437,7 @@ export declare const VCalendar: {
437
437
  events: any[];
438
438
  };
439
439
  }) => import("vue").VNodeChild) | undefined;
440
- "v-slot:intervalEvent"?: false | ((arg: {
440
+ "v-slot:interval-event"?: false | ((arg: {
441
441
  height: string;
442
442
  margin: string;
443
443
  eventClass: string;
@@ -449,7 +449,7 @@ export declare const VCalendar: {
449
449
  events: any[];
450
450
  };
451
451
  }) => import("vue").VNodeChild) | undefined;
452
- "v-slot:intervalTitle"?: false | ((arg: {
452
+ "v-slot:interval-title"?: false | ((arg: {
453
453
  interval: {
454
454
  label: string;
455
455
  start: unknown;
@@ -519,7 +519,7 @@ export declare const VCalendar: {
519
519
  intervals: number;
520
520
  hideWeekNumber: boolean;
521
521
  }, true, {}, import("vue").SlotsType<Partial<{
522
- intervalBody: (arg: {
522
+ 'interval-body': (arg: {
523
523
  interval: {
524
524
  label: string;
525
525
  start: unknown;
@@ -527,7 +527,7 @@ export declare const VCalendar: {
527
527
  events: any[];
528
528
  };
529
529
  }) => import("vue").VNode[];
530
- intervalEvent: (arg: {
530
+ 'interval-event': (arg: {
531
531
  height: string;
532
532
  margin: string;
533
533
  eventClass: string;
@@ -539,7 +539,7 @@ export declare const VCalendar: {
539
539
  events: any[];
540
540
  };
541
541
  }) => import("vue").VNode[];
542
- intervalTitle: (arg: {
542
+ 'interval-title': (arg: {
543
543
  interval: {
544
544
  label: string;
545
545
  start: unknown;
@@ -614,7 +614,7 @@ export declare const VCalendar: {
614
614
  dayIndex?: number | undefined;
615
615
  } & {
616
616
  $children?: {} | import("vue").VNodeChild | {
617
- intervalBody?: ((arg: {
617
+ 'interval-body'?: ((arg: {
618
618
  interval: {
619
619
  label: string;
620
620
  start: unknown;
@@ -622,7 +622,7 @@ export declare const VCalendar: {
622
622
  events: any[];
623
623
  };
624
624
  }) => import("vue").VNodeChild) | undefined;
625
- intervalEvent?: ((arg: {
625
+ 'interval-event'?: ((arg: {
626
626
  height: string;
627
627
  margin: string;
628
628
  eventClass: string;
@@ -634,7 +634,7 @@ export declare const VCalendar: {
634
634
  events: any[];
635
635
  };
636
636
  }) => import("vue").VNodeChild) | undefined;
637
- intervalTitle?: ((arg: {
637
+ 'interval-title'?: ((arg: {
638
638
  interval: {
639
639
  label: string;
640
640
  start: unknown;
@@ -671,7 +671,7 @@ export declare const VCalendar: {
671
671
  }) => import("vue").VNodeChild) | undefined;
672
672
  };
673
673
  'v-slots'?: {
674
- intervalBody?: false | ((arg: {
674
+ 'interval-body'?: false | ((arg: {
675
675
  interval: {
676
676
  label: string;
677
677
  start: unknown;
@@ -679,7 +679,7 @@ export declare const VCalendar: {
679
679
  events: any[];
680
680
  };
681
681
  }) => import("vue").VNodeChild) | undefined;
682
- intervalEvent?: false | ((arg: {
682
+ 'interval-event'?: false | ((arg: {
683
683
  height: string;
684
684
  margin: string;
685
685
  eventClass: string;
@@ -691,7 +691,7 @@ export declare const VCalendar: {
691
691
  events: any[];
692
692
  };
693
693
  }) => import("vue").VNodeChild) | undefined;
694
- intervalTitle?: false | ((arg: {
694
+ 'interval-title'?: false | ((arg: {
695
695
  interval: {
696
696
  label: string;
697
697
  start: unknown;
@@ -728,7 +728,7 @@ export declare const VCalendar: {
728
728
  }) => import("vue").VNodeChild) | undefined;
729
729
  } | undefined;
730
730
  } & {
731
- "v-slot:intervalBody"?: false | ((arg: {
731
+ "v-slot:interval-body"?: false | ((arg: {
732
732
  interval: {
733
733
  label: string;
734
734
  start: unknown;
@@ -736,7 +736,7 @@ export declare const VCalendar: {
736
736
  events: any[];
737
737
  };
738
738
  }) => import("vue").VNodeChild) | undefined;
739
- "v-slot:intervalEvent"?: false | ((arg: {
739
+ "v-slot:interval-event"?: false | ((arg: {
740
740
  height: string;
741
741
  margin: string;
742
742
  eventClass: string;
@@ -748,7 +748,7 @@ export declare const VCalendar: {
748
748
  events: any[];
749
749
  };
750
750
  }) => import("vue").VNodeChild) | undefined;
751
- "v-slot:intervalTitle"?: false | ((arg: {
751
+ "v-slot:interval-title"?: false | ((arg: {
752
752
  interval: {
753
753
  label: string;
754
754
  start: unknown;
@@ -849,7 +849,7 @@ export declare const VCalendar: {
849
849
  dayIndex?: number | undefined;
850
850
  } & {
851
851
  $children?: {} | import("vue").VNodeChild | {
852
- intervalBody?: ((arg: {
852
+ 'interval-body'?: ((arg: {
853
853
  interval: {
854
854
  label: string;
855
855
  start: unknown;
@@ -857,7 +857,7 @@ export declare const VCalendar: {
857
857
  events: any[];
858
858
  };
859
859
  }) => import("vue").VNodeChild) | undefined;
860
- intervalEvent?: ((arg: {
860
+ 'interval-event'?: ((arg: {
861
861
  height: string;
862
862
  margin: string;
863
863
  eventClass: string;
@@ -869,7 +869,7 @@ export declare const VCalendar: {
869
869
  events: any[];
870
870
  };
871
871
  }) => import("vue").VNodeChild) | undefined;
872
- intervalTitle?: ((arg: {
872
+ 'interval-title'?: ((arg: {
873
873
  interval: {
874
874
  label: string;
875
875
  start: unknown;
@@ -906,7 +906,7 @@ export declare const VCalendar: {
906
906
  }) => import("vue").VNodeChild) | undefined;
907
907
  };
908
908
  'v-slots'?: {
909
- intervalBody?: false | ((arg: {
909
+ 'interval-body'?: false | ((arg: {
910
910
  interval: {
911
911
  label: string;
912
912
  start: unknown;
@@ -914,7 +914,7 @@ export declare const VCalendar: {
914
914
  events: any[];
915
915
  };
916
916
  }) => import("vue").VNodeChild) | undefined;
917
- intervalEvent?: false | ((arg: {
917
+ 'interval-event'?: false | ((arg: {
918
918
  height: string;
919
919
  margin: string;
920
920
  eventClass: string;
@@ -926,7 +926,7 @@ export declare const VCalendar: {
926
926
  events: any[];
927
927
  };
928
928
  }) => import("vue").VNodeChild) | undefined;
929
- intervalTitle?: false | ((arg: {
929
+ 'interval-title'?: false | ((arg: {
930
930
  interval: {
931
931
  label: string;
932
932
  start: unknown;
@@ -963,7 +963,7 @@ export declare const VCalendar: {
963
963
  }) => import("vue").VNodeChild) | undefined;
964
964
  } | undefined;
965
965
  } & {
966
- "v-slot:intervalBody"?: false | ((arg: {
966
+ "v-slot:interval-body"?: false | ((arg: {
967
967
  interval: {
968
968
  label: string;
969
969
  start: unknown;
@@ -971,7 +971,7 @@ export declare const VCalendar: {
971
971
  events: any[];
972
972
  };
973
973
  }) => import("vue").VNodeChild) | undefined;
974
- "v-slot:intervalEvent"?: false | ((arg: {
974
+ "v-slot:interval-event"?: false | ((arg: {
975
975
  height: string;
976
976
  margin: string;
977
977
  eventClass: string;
@@ -983,7 +983,7 @@ export declare const VCalendar: {
983
983
  events: any[];
984
984
  };
985
985
  }) => import("vue").VNodeChild) | undefined;
986
- "v-slot:intervalTitle"?: false | ((arg: {
986
+ "v-slot:interval-title"?: false | ((arg: {
987
987
  interval: {
988
988
  label: string;
989
989
  start: unknown;
@@ -1053,7 +1053,7 @@ export declare const VCalendar: {
1053
1053
  intervals: number;
1054
1054
  hideWeekNumber: boolean;
1055
1055
  }, {}, string, import("vue").SlotsType<Partial<{
1056
- intervalBody: (arg: {
1056
+ 'interval-body': (arg: {
1057
1057
  interval: {
1058
1058
  label: string;
1059
1059
  start: unknown;
@@ -1061,7 +1061,7 @@ export declare const VCalendar: {
1061
1061
  events: any[];
1062
1062
  };
1063
1063
  }) => import("vue").VNode[];
1064
- intervalEvent: (arg: {
1064
+ 'interval-event': (arg: {
1065
1065
  height: string;
1066
1066
  margin: string;
1067
1067
  eventClass: string;
@@ -1073,7 +1073,7 @@ export declare const VCalendar: {
1073
1073
  events: any[];
1074
1074
  };
1075
1075
  }) => import("vue").VNode[];
1076
- intervalTitle: (arg: {
1076
+ 'interval-title': (arg: {
1077
1077
  interval: {
1078
1078
  label: string;
1079
1079
  start: unknown;
@@ -136,7 +136,7 @@ export const VCalendar = genericComponent()({
136
136
  "dayIndex": i,
137
137
  "events": props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date))
138
138
  }, attrs), {
139
- ...pick(slots, ['interval', 'intervalBody', 'intervalEvent', 'intervalTitle'])
139
+ ...pick(slots, ['interval', 'interval-body', 'interval-event', 'interval-title'])
140
140
  })), props.viewMode === 'day' && (slots['day-interval'] ? slots['day-interval']({
141
141
  day: genDays([displayValue.value], adapter.date())[0],
142
142
  dayIndex: 0,