vuetify 3.4.0 → 3.4.2

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 (135) hide show
  1. package/dist/json/attributes.json +1860 -1856
  2. package/dist/json/importMap.json +140 -140
  3. package/dist/json/tags.json +1 -0
  4. package/dist/json/web-types.json +3641 -3631
  5. package/dist/vuetify-labs.css +1393 -1386
  6. package/dist/vuetify-labs.d.ts +1936 -9147
  7. package/dist/vuetify-labs.esm.js +91 -79
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +91 -79
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +940 -933
  12. package/dist/vuetify.d.ts +2081 -9282
  13. package/dist/vuetify.esm.js +91 -79
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +91 -79
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +67 -66
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.mts +0 -2
  21. package/lib/blueprints/md1.d.mts +0 -2
  22. package/lib/blueprints/md2.d.mts +0 -2
  23. package/lib/blueprints/md3.d.mts +0 -2
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -3
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.mts +74 -98
  27. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +1 -1
  28. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  29. package/lib/components/VBottomNavigation/index.d.mts +44 -69
  30. package/lib/components/VBtn/VBtn.mjs +1 -1
  31. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  32. package/lib/components/VBtn/index.d.mts +11 -11
  33. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  34. package/lib/components/VBtnToggle/index.d.mts +45 -71
  35. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  36. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  37. package/lib/components/VCarousel/index.d.mts +73 -513
  38. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  39. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -1
  40. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  41. package/lib/components/VCheckbox/index.d.mts +100 -482
  42. package/lib/components/VChip/index.d.mts +15 -18
  43. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  44. package/lib/components/VChipGroup/index.d.mts +49 -189
  45. package/lib/components/VCombobox/VCombobox.mjs +3 -3
  46. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  47. package/lib/components/VCombobox/index.d.mts +74 -98
  48. package/lib/components/VDataIterator/index.d.mts +8 -6
  49. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  50. package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
  51. package/lib/components/VDataTable/VDataTableRows.mjs.map +1 -1
  52. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  53. package/lib/components/VDataTable/VDataTableVirtual.mjs +2 -1
  54. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  55. package/lib/components/VDataTable/composables/items.mjs.map +1 -1
  56. package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
  57. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  58. package/lib/components/VDataTable/index.d.mts +411 -4142
  59. package/lib/components/VDataTable/types.mjs.map +1 -1
  60. package/lib/components/VDatePicker/VDatePicker.css +4 -0
  61. package/lib/components/VDatePicker/VDatePicker.mjs +29 -22
  62. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  63. package/lib/components/VDatePicker/VDatePicker.sass +4 -0
  64. package/lib/components/VDatePicker/VDatePickerMonth.mjs +3 -1
  65. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  66. package/lib/components/VDatePicker/VDatePickerYears.mjs +1 -1
  67. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  68. package/lib/components/VDatePicker/index.d.mts +32 -36
  69. package/lib/components/VDialog/VDialog.css +4 -1
  70. package/lib/components/VDialog/VDialog.sass +4 -3
  71. package/lib/components/VField/VField.mjs +1 -1
  72. package/lib/components/VField/VField.mjs.map +1 -1
  73. package/lib/components/VField/index.d.mts +33 -41
  74. package/lib/components/VFileInput/index.d.mts +144 -385
  75. package/lib/components/VImg/VImg.mjs +10 -2
  76. package/lib/components/VImg/VImg.mjs.map +1 -1
  77. package/lib/components/VInput/VInput.mjs +1 -1
  78. package/lib/components/VInput/VInput.mjs.map +1 -1
  79. package/lib/components/VInput/index.d.mts +72 -154
  80. package/lib/components/VItemGroup/VItemGroup.mjs +1 -1
  81. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  82. package/lib/components/VItemGroup/index.d.mts +49 -189
  83. package/lib/components/VList/VList.mjs +2 -2
  84. package/lib/components/VList/VList.mjs.map +1 -1
  85. package/lib/components/VList/index.d.mts +58 -95
  86. package/lib/components/VOtpInput/index.d.mts +8 -11
  87. package/lib/components/VRadio/index.d.mts +1 -1
  88. package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -1
  89. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  90. package/lib/components/VRadioGroup/index.d.mts +77 -211
  91. package/lib/components/VRangeSlider/index.d.mts +22 -25
  92. package/lib/components/VSelect/VSelect.mjs +2 -2
  93. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  94. package/lib/components/VSelect/index.d.mts +67 -91
  95. package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -2
  96. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  97. package/lib/components/VSelectionControl/index.d.mts +9 -18
  98. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +1 -1
  99. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  100. package/lib/components/VSelectionControlGroup/index.d.mts +46 -68
  101. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  102. package/lib/components/VSlideGroup/index.d.mts +47 -101
  103. package/lib/components/VSlider/index.d.mts +22 -25
  104. package/lib/components/VSwitch/VSwitch.mjs +7 -5
  105. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  106. package/lib/components/VSwitch/index.d.mts +90 -303
  107. package/lib/components/VTextField/index.d.mts +173 -451
  108. package/lib/components/VTextarea/index.d.mts +144 -385
  109. package/lib/components/VValidation/VValidation.mjs +2 -2
  110. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  111. package/lib/components/VValidation/index.d.mts +88 -359
  112. package/lib/components/VWindow/VWindow.mjs +1 -1
  113. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  114. package/lib/components/VWindow/index.d.mts +58 -245
  115. package/lib/components/index.d.mts +1933 -9130
  116. package/lib/composables/date/DateAdapter.mjs.map +1 -1
  117. package/lib/composables/date/adapters/vuetify.mjs +1 -13
  118. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  119. package/lib/composables/date/date.mjs +1 -1
  120. package/lib/composables/date/date.mjs.map +1 -1
  121. package/lib/composables/form.mjs.map +1 -1
  122. package/lib/composables/group.mjs.map +1 -1
  123. package/lib/composables/nested/nested.mjs.map +1 -1
  124. package/lib/composables/proxiedModel.mjs.map +1 -1
  125. package/lib/composables/validation.mjs.map +1 -1
  126. package/lib/composables/virtual.mjs +11 -13
  127. package/lib/composables/virtual.mjs.map +1 -1
  128. package/lib/entry-bundler.mjs +1 -1
  129. package/lib/framework.mjs +1 -1
  130. package/lib/index.d.mts +40 -44
  131. package/lib/labs/VConfirmEdit/index.d.mts +0 -10
  132. package/lib/labs/components.d.mts +0 -10
  133. package/lib/util/defineComponent.mjs.map +1 -1
  134. package/lib/util/helpers.mjs.map +1 -1
  135. package/package.json +2 -2
@@ -2,7 +2,7 @@
2
2
  import { useDisplay } from "./display.mjs";
3
3
  import { useResizeObserver } from "./resizeObserver.mjs"; // Utilities
4
4
  import { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';
5
- import { clamp, createRange, debounce, IN_BROWSER, propsFactory } from "../util/index.mjs"; // Types
5
+ import { clamp, debounce, IN_BROWSER, propsFactory } from "../util/index.mjs"; // Types
6
6
  const UP = -1;
7
7
  const DOWN = 1;
8
8
 
@@ -52,11 +52,10 @@ export function useVirtual(props, items) {
52
52
  const hasInitialRender = computed(() => {
53
53
  return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value);
54
54
  });
55
- const sizeMap = new Map();
56
55
  let sizes = Array.from({
57
56
  length: items.value.length
58
57
  });
59
- const offsets = Array.from({
58
+ let offsets = Array.from({
60
59
  length: items.value.length
61
60
  });
62
61
  const updateTime = shallowRef(0);
@@ -102,7 +101,6 @@ export function useVirtual(props, items) {
102
101
  itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height;
103
102
  if (prevHeight !== height || prevMinHeight !== itemHeight.value) {
104
103
  sizes[index] = height;
105
- sizeMap.set(items.value[index], height);
106
104
  updateOffsets();
107
105
  }
108
106
  }
@@ -186,17 +184,17 @@ export function useVirtual(props, items) {
186
184
  index: index + first.value
187
185
  }));
188
186
  });
189
- watch(() => items.value.length, () => {
190
- sizes = createRange(items.value.length).map(() => itemHeight.value);
191
- sizeMap.forEach((height, item) => {
192
- const index = items.value.indexOf(item);
193
- if (index === -1) {
194
- sizeMap.delete(item);
195
- } else {
196
- sizes[index] = height;
197
- }
187
+ watch(items, () => {
188
+ sizes = Array.from({
189
+ length: items.value.length
198
190
  });
191
+ offsets = Array.from({
192
+ length: items.value.length
193
+ });
194
+ updateOffsets.immediate();
199
195
  calculateVisibleItems();
196
+ }, {
197
+ deep: true
200
198
  });
201
199
  return {
202
200
  containerRef,
@@ -1 +1 @@
1
- {"version":3,"file":"virtual.mjs","names":["useDisplay","useResizeObserver","computed","nextTick","onScopeDispose","ref","shallowRef","watch","watchEffect","clamp","createRange","debounce","IN_BROWSER","propsFactory","UP","DOWN","BUFFER_PX","makeVirtualProps","itemHeight","type","Number","String","default","height","useVirtual","props","items","display","value","parseFloat","first","last","Math","ceil","parseInt","paddingTop","paddingBottom","containerRef","markerRef","markerOffset","resizeRef","contentRect","viewportHeight","document","documentElement","hasInitialRender","sizeMap","Map","sizes","Array","from","length","offsets","updateTime","targetScrollIndex","getSize","index","updateOffsets","start","performance","now","i","max","unwatch","v","offsetTop","immediate","calculateVisibleItems","window","requestAnimationFrame","scrollToIndex","val","oldVal","clear","handleItemResize","prevHeight","prevMinHeight","min","set","calculateOffset","calculateIndex","scrollTop","binaryClosest","lastScrollTop","scrollVelocity","lastScrollTime","handleScroll","scrollTime","scrollDeltaT","sign","handleScrollend","raf","cancelAnimationFrame","_calculateVisibleItems","direction","startPx","endPx","end","topOverflow","bottomOverflow","bufferOverflow","offset","computedItems","slice","map","item","raw","forEach","indexOf","delete","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 {\n clamp,\n createRange,\n debounce,\n IN_BROWSER,\n propsFactory,\n} from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\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\n height?: number | string\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\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 const sizeMap = new Map<any, number>()\n let sizes = Array.from<number | null>({ length: items.value.length })\n const 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 watch(viewportHeight, (val, oldVal) => {\n oldVal && calculateVisibleItems()\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 sizeMap.set(items.value[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 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 calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\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 raw: item,\n index: index + first.value,\n }))\n })\n\n watch(() => items.value.length, () => {\n sizes = createRange(items.value.length).map(() => itemHeight.value)\n sizeMap.forEach((height, item) => {\n const index = items.value.indexOf(item)\n if (index === -1) {\n sizeMap.delete(item)\n } else {\n sizes[index] = height\n }\n })\n calculateVisibleItems()\n })\n\n return {\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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"}
1
+ {"version":3,"file":"virtual.mjs","names":["useDisplay","useResizeObserver","computed","nextTick","onScopeDispose","ref","shallowRef","watch","watchEffect","clamp","debounce","IN_BROWSER","propsFactory","UP","DOWN","BUFFER_PX","makeVirtualProps","itemHeight","type","Number","String","default","height","useVirtual","props","items","display","value","parseFloat","first","last","Math","ceil","parseInt","paddingTop","paddingBottom","containerRef","markerRef","markerOffset","resizeRef","contentRect","viewportHeight","document","documentElement","hasInitialRender","sizes","Array","from","length","offsets","updateTime","targetScrollIndex","getSize","index","updateOffsets","start","performance","now","i","max","unwatch","v","offsetTop","immediate","calculateVisibleItems","window","requestAnimationFrame","scrollToIndex","val","oldVal","clear","handleItemResize","prevHeight","prevMinHeight","min","calculateOffset","calculateIndex","scrollTop","binaryClosest","lastScrollTop","scrollVelocity","lastScrollTime","handleScroll","scrollTime","scrollDeltaT","sign","handleScrollend","raf","cancelAnimationFrame","_calculateVisibleItems","direction","startPx","endPx","end","topOverflow","bottomOverflow","bufferOverflow","offset","computedItems","slice","map","item","raw","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, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\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\n height?: number | string\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\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 watch(viewportHeight, (val, oldVal) => {\n oldVal && calculateVisibleItems()\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 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 calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\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 raw: item,\n index: index + first.value,\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: true })\n\n return {\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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"}
@@ -15,7 +15,7 @@ export const createVuetify = function () {
15
15
  ...options
16
16
  });
17
17
  };
18
- export const version = "3.4.0";
18
+ export const version = "3.4.2";
19
19
  createVuetify.version = version;
20
20
  export { components, directives };
21
21
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -92,7 +92,7 @@ export function createVuetify() {
92
92
  date
93
93
  };
94
94
  }
95
- export const version = "3.4.0";
95
+ export const version = "3.4.2";
96
96
  createVuetify.version = version;
97
97
 
98
98
  // Vue's inject() can only be used in setup
package/lib/index.d.mts CHANGED
@@ -207,9 +207,7 @@ interface DateAdapter<T = unknown> {
207
207
  addDays(date: T, amount: number): T;
208
208
  addMonths(date: T, amount: number): T;
209
209
  getYear(date: T): number;
210
- getNextYear(date: T): T;
211
210
  setYear(date: T, year: number): T;
212
- getDate(date: T): number;
213
211
  getDiff(date: T, comparing: T | string, unit?: string): number;
214
212
  getWeekArray(date: T): T[][];
215
213
  getWeekdays(): string[];
@@ -378,9 +376,7 @@ declare function createVuetify(vuetify?: VuetifyOptions): {
378
376
  addDays: (date: unknown, amount: number) => unknown;
379
377
  addMonths: (date: unknown, amount: number) => unknown;
380
378
  getYear: (date: unknown) => number;
381
- getNextYear: (date: unknown) => unknown;
382
379
  setYear: (date: unknown, year: number) => unknown;
383
- getDate: (date: unknown) => number;
384
380
  getDiff: (date: unknown, comparing: unknown, unit?: string | undefined) => number;
385
381
  getWeekArray: (date: unknown) => unknown[][];
386
382
  getWeekdays: () => string[];
@@ -437,74 +433,75 @@ declare module '@vue/runtime-core' {
437
433
  }
438
434
 
439
435
  export interface GlobalComponents {
436
+ VApp: typeof import('vuetify/components')['VApp']
440
437
  VAppBar: typeof import('vuetify/components')['VAppBar']
441
438
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
442
439
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
443
- VApp: typeof import('vuetify/components')['VApp']
444
440
  VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
445
- VAvatar: typeof import('vuetify/components')['VAvatar']
446
441
  VAlert: typeof import('vuetify/components')['VAlert']
447
442
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
448
443
  VBadge: typeof import('vuetify/components')['VBadge']
444
+ VAvatar: typeof import('vuetify/components')['VAvatar']
445
+ VBanner: typeof import('vuetify/components')['VBanner']
446
+ VBannerActions: typeof import('vuetify/components')['VBannerActions']
447
+ VBannerText: typeof import('vuetify/components')['VBannerText']
449
448
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
449
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
450
450
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
451
451
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
452
452
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
453
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
454
- VBanner: typeof import('vuetify/components')['VBanner']
455
- VBannerActions: typeof import('vuetify/components')['VBannerActions']
456
- VBannerText: typeof import('vuetify/components')['VBannerText']
457
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
458
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
459
453
  VCard: typeof import('vuetify/components')['VCard']
460
454
  VCardActions: typeof import('vuetify/components')['VCardActions']
461
455
  VCardItem: typeof import('vuetify/components')['VCardItem']
462
456
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
463
457
  VCardText: typeof import('vuetify/components')['VCardText']
464
458
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
465
- VBtn: typeof import('vuetify/components')['VBtn']
466
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
459
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
460
+ VCheckbox: typeof import('vuetify/components')['VCheckbox']
461
+ VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
462
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
467
463
  VCarousel: typeof import('vuetify/components')['VCarousel']
468
464
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
469
- VCode: typeof import('vuetify/components')['VCode']
470
465
  VChip: typeof import('vuetify/components')['VChip']
471
- VCheckbox: typeof import('vuetify/components')['VCheckbox']
472
- VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
473
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
466
+ VCode: typeof import('vuetify/components')['VCode']
474
467
  VCombobox: typeof import('vuetify/components')['VCombobox']
475
- VDataTable: typeof import('vuetify/components')['VDataTable']
476
- VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
477
- VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
478
- VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
479
- VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
480
- VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
481
468
  VCounter: typeof import('vuetify/components')['VCounter']
482
- VDialog: typeof import('vuetify/components')['VDialog']
469
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
470
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
483
471
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
484
472
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
485
473
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
486
474
  VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
487
475
  VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
488
476
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
477
+ VDataTable: typeof import('vuetify/components')['VDataTable']
478
+ VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
479
+ VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
480
+ VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
481
+ VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
482
+ VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
489
483
  VDivider: typeof import('vuetify/components')['VDivider']
490
- VField: typeof import('vuetify/components')['VField']
491
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
492
- VFooter: typeof import('vuetify/components')['VFooter']
493
484
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
494
485
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
495
486
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
496
487
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
488
+ VDialog: typeof import('vuetify/components')['VDialog']
489
+ VFooter: typeof import('vuetify/components')['VFooter']
497
490
  VFileInput: typeof import('vuetify/components')['VFileInput']
491
+ VImg: typeof import('vuetify/components')['VImg']
492
+ VField: typeof import('vuetify/components')['VField']
493
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
498
494
  VIcon: typeof import('vuetify/components')['VIcon']
499
495
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
500
496
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
501
497
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
502
498
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
503
- VImg: typeof import('vuetify/components')['VImg']
499
+ VInput: typeof import('vuetify/components')['VInput']
504
500
  VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
501
+ VKbd: typeof import('vuetify/components')['VKbd']
505
502
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
506
503
  VItem: typeof import('vuetify/components')['VItem']
507
- VInput: typeof import('vuetify/components')['VInput']
504
+ VBtn: typeof import('vuetify/components')['VBtn']
508
505
  VList: typeof import('vuetify/components')['VList']
509
506
  VListGroup: typeof import('vuetify/components')['VListGroup']
510
507
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -514,27 +511,26 @@ declare module '@vue/runtime-core' {
514
511
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
515
512
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
516
513
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
517
- VKbd: typeof import('vuetify/components')['VKbd']
518
514
  VLabel: typeof import('vuetify/components')['VLabel']
519
515
  VMenu: typeof import('vuetify/components')['VMenu']
520
516
  VMain: typeof import('vuetify/components')['VMain']
521
- VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
522
517
  VMessages: typeof import('vuetify/components')['VMessages']
518
+ VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
523
519
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
524
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
525
520
  VOverlay: typeof import('vuetify/components')['VOverlay']
526
521
  VPagination: typeof import('vuetify/components')['VPagination']
522
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
527
523
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
528
524
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
529
- VRating: typeof import('vuetify/components')['VRating']
530
525
  VSelect: typeof import('vuetify/components')['VSelect']
526
+ VRating: typeof import('vuetify/components')['VRating']
531
527
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
532
528
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
533
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
534
529
  VSheet: typeof import('vuetify/components')['VSheet']
535
- VSlider: typeof import('vuetify/components')['VSlider']
536
530
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
537
531
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
532
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
533
+ VSlider: typeof import('vuetify/components')['VSlider']
538
534
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
539
535
  VStepper: typeof import('vuetify/components')['VStepper']
540
536
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
@@ -542,33 +538,33 @@ declare module '@vue/runtime-core' {
542
538
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
543
539
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
544
540
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
541
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
542
+ VSwitch: typeof import('vuetify/components')['VSwitch']
545
543
  VTabs: typeof import('vuetify/components')['VTabs']
546
544
  VTab: typeof import('vuetify/components')['VTab']
547
- VSwitch: typeof import('vuetify/components')['VSwitch']
548
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
549
- VTextField: typeof import('vuetify/components')['VTextField']
550
545
  VTable: typeof import('vuetify/components')['VTable']
551
- VTimeline: typeof import('vuetify/components')['VTimeline']
552
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
553
- VTooltip: typeof import('vuetify/components')['VTooltip']
554
546
  VTextarea: typeof import('vuetify/components')['VTextarea']
555
547
  VToolbar: typeof import('vuetify/components')['VToolbar']
556
548
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
557
549
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
550
+ VTimeline: typeof import('vuetify/components')['VTimeline']
551
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
552
+ VTextField: typeof import('vuetify/components')['VTextField']
558
553
  VWindow: typeof import('vuetify/components')['VWindow']
559
554
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
555
+ VTooltip: typeof import('vuetify/components')['VTooltip']
560
556
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
557
+ VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
561
558
  VContainer: typeof import('vuetify/components')['VContainer']
562
559
  VCol: typeof import('vuetify/components')['VCol']
563
560
  VRow: typeof import('vuetify/components')['VRow']
564
561
  VSpacer: typeof import('vuetify/components')['VSpacer']
565
- VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
566
562
  VForm: typeof import('vuetify/components')['VForm']
567
563
  VHover: typeof import('vuetify/components')['VHover']
564
+ VLazy: typeof import('vuetify/components')['VLazy']
568
565
  VLayout: typeof import('vuetify/components')['VLayout']
569
566
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
570
567
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
571
- VLazy: typeof import('vuetify/components')['VLazy']
572
568
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
573
569
  VParallax: typeof import('vuetify/components')['VParallax']
574
570
  VRadio: typeof import('vuetify/components')['VRadio']
@@ -47,8 +47,6 @@ declare const VConfirmEdit: {
47
47
  cancelText: string;
48
48
  okText: string;
49
49
  color?: string | undefined;
50
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
51
- onSave?: ((value: any) => any) | undefined;
52
50
  onCancel?: (() => any) | undefined;
53
51
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
54
52
  cancelText: string;
@@ -56,8 +54,6 @@ declare const VConfirmEdit: {
56
54
  } & {
57
55
  color?: string | undefined;
58
56
  } & {
59
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
60
- onSave?: ((value: any) => any) | undefined;
61
57
  onCancel?: (() => any) | undefined;
62
58
  }, "cancelText" | "okText">;
63
59
  $attrs: {
@@ -86,8 +82,6 @@ declare const VConfirmEdit: {
86
82
  } & {
87
83
  color?: string | undefined;
88
84
  } & {
89
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
90
- onSave?: ((value: any) => any) | undefined;
91
85
  onCancel?: (() => any) | undefined;
92
86
  }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
93
87
  cancel: () => true;
@@ -131,8 +125,6 @@ declare const VConfirmEdit: {
131
125
  } & {
132
126
  color?: string | undefined;
133
127
  } & {
134
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
135
- onSave?: ((value: any) => any) | undefined;
136
128
  onCancel?: (() => any) | undefined;
137
129
  } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
138
130
  __isFragment?: undefined;
@@ -144,8 +136,6 @@ declare const VConfirmEdit: {
144
136
  } & {
145
137
  color?: string | undefined;
146
138
  } & {
147
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
148
- onSave?: ((value: any) => any) | undefined;
149
139
  onCancel?: (() => any) | undefined;
150
140
  }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
151
141
  cancel: () => true;
@@ -53,8 +53,6 @@ declare const VConfirmEdit: {
53
53
  cancelText: string;
54
54
  okText: string;
55
55
  color?: string | undefined;
56
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
57
- onSave?: ((value: any) => any) | undefined;
58
56
  onCancel?: (() => any) | undefined;
59
57
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
60
58
  cancelText: string;
@@ -62,8 +60,6 @@ declare const VConfirmEdit: {
62
60
  } & {
63
61
  color?: string | undefined;
64
62
  } & {
65
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
66
- onSave?: ((value: any) => any) | undefined;
67
63
  onCancel?: (() => any) | undefined;
68
64
  }, "cancelText" | "okText">;
69
65
  $attrs: {
@@ -92,8 +88,6 @@ declare const VConfirmEdit: {
92
88
  } & {
93
89
  color?: string | undefined;
94
90
  } & {
95
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
96
- onSave?: ((value: any) => any) | undefined;
97
91
  onCancel?: (() => any) | undefined;
98
92
  }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
99
93
  cancel: () => true;
@@ -137,8 +131,6 @@ declare const VConfirmEdit: {
137
131
  } & {
138
132
  color?: string | undefined;
139
133
  } & {
140
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
141
- onSave?: ((value: any) => any) | undefined;
142
134
  onCancel?: (() => any) | undefined;
143
135
  } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
144
136
  __isFragment?: undefined;
@@ -150,8 +142,6 @@ declare const VConfirmEdit: {
150
142
  } & {
151
143
  color?: string | undefined;
152
144
  } & {
153
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
154
- onSave?: ((value: any) => any) | undefined;
155
145
  onCancel?: (() => any) | undefined;
156
146
  }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
157
147
  cancel: () => true;
@@ -1 +1 @@
1
- {"version":3,"file":"defineComponent.mjs","names":["injectDefaults","internalUseDefaults","defineComponent","_defineComponent","consoleWarn","pick","propsFactory","options","_setup","setup","name","props","propKeys","Object","keys","filter","key","filterProps","_as","String","ctx","defaults","value","_props","provideSubDefaults","setupBindings","genericComponent","exposeDefaults","arguments","length","undefined","defineFunctionalComponent","render"],"sources":["../../src/util/defineComponent.tsx"],"sourcesContent":["// Composables\nimport { injectDefaults, internalUseDefaults } from '@/composables/defaults'\n\n// Utilities\nimport {\n defineComponent as _defineComponent, // eslint-disable-line no-restricted-imports\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { pick } from '@/util/helpers'\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type {\n AllowedComponentProps,\n ComponentCustomProps,\n ComponentInjectOptions,\n ComponentObjectPropsOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentOptionsWithoutProps,\n ComponentPropsOptions,\n ComputedOptions,\n DefineComponent,\n EmitsOptions,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n MethodOptions,\n ObjectEmitsOptions,\n SlotsType,\n VNode,\n VNodeChild,\n VNodeProps,\n} from 'vue'\n\n// No props\nexport function defineComponent<\n Props = {},\n RawBindings = {},\n D = {},\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithoutProps<\n Props,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<Props, RawBindings, D, C, M, Mixin, Extends, E, EE>\n\n// Object Props\nexport function defineComponent<\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE> & FilterPropsOptions<PropsOptions>\n\n// Implementation\nexport function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)()\n const propKeys = Object.keys(options.props).filter(key => key !== 'class' && key !== 'style')\n options.filterProps = function filterProps (props: Record<string, any>) {\n return pick(props, propKeys)\n }\n\n options.props._as = String\n options.setup = function setup (props: Record<string, any>, ctx) {\n const defaults = injectDefaults()\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx)\n\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, props._as ?? options.name, defaults)\n\n const setupBindings = options._setup(_props, ctx)\n\n provideSubDefaults()\n\n return setupBindings\n }\n }\n\n return options\n}\n\ntype ToListeners<T extends string | number | symbol> = { [K in T]: K extends `on${infer U}` ? Uncapitalize<U> : K }[T]\n\nexport type SlotsToProps<\n U extends RawSlots,\n T = MakeInternalSlots<U>\n> = {\n $children?: (\n | VNodeChild\n | (T extends { default: infer V } ? V : {})\n | { [K in keyof T]?: T[K] }\n )\n 'v-slots'?: { [K in keyof T]?: T[K] | false }\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false\n}\n\ntype RawSlots = Record<string, unknown>\ntype Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild\ntype VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[]\ntype MakeInternalSlots<T extends RawSlots> = {\n [K in keyof T]: Slot<T[K]>\n}\ntype MakeSlots<T extends RawSlots> = {\n [K in keyof T]: VueSlot<T[K]>\n}\n\nexport type GenericProps<Props, Slots extends Record<string, unknown>> = {\n $props: Props & SlotsToProps<Slots>\n $slots: MakeSlots<Slots>\n}\n\ntype DefineComponentWithGenericProps<T extends (new (props: Record<string, any>, slots: RawSlots) => {\n $props?: Record<string, any>\n})> = <\n PropsOptions extends Readonly<ComponentObjectPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n // Slots extends RawSlots = ConstructorParameters<T> extends [any, infer SS extends RawSlots | undefined] ? Exclude<SS, undefined> : {},\n Slots extends RawSlots = ConstructorParameters<T>[1],\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n III = InstanceType<T>,\n P = III extends Record<'$props', any>\n ? Omit<PropsOptions, keyof III['$props']>\n : PropsOptions,\n Base = DefineComponent<\n P,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E extends any[] ? E : III extends Record<'$props', any> ? Omit<E, ToListeners<keyof III['$props']>> : E,\n EE,\n PublicProps,\n ExtractPropTypes<P> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<P>,\n S\n >\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => Base & T & FilterPropsOptions<PropsOptions>\n\ntype DefineComponentWithSlots<Slots extends RawSlots> = <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => DefineComponent<\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots>,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n PublicProps,\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<PropsOptions>,\n S\n> & FilterPropsOptions<PropsOptions>\n\n// No argument - simple default slot\nexport function genericComponent (exposeDefaults?: boolean): DefineComponentWithSlots<{ default: never }>\n\n// Generic constructor argument - generic props and slots\nexport function genericComponent<T extends (new (props: Record<string, any>, slots: any) => {\n $props?: Record<string, any>\n})> (exposeDefaults?: boolean): DefineComponentWithGenericProps<T>\n\n// Slots argument - simple slots\nexport function genericComponent<\n Slots extends RawSlots\n> (exposeDefaults?: boolean): DefineComponentWithSlots<Slots>\n\n// Implementation\nexport function genericComponent (exposeDefaults = true) {\n return (options: any) => ((exposeDefaults ? defineComponent : _defineComponent) as any)(options)\n}\n\nexport function defineFunctionalComponent<\n T extends FunctionalComponent<Props>,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes<PropsOptions>,\n Props = Readonly<ExtractPropTypes<PropsOptions>>,\n> (props: PropsOptions, render: T): FunctionalComponent<Partial<Defaults> & Omit<Props, keyof Defaults>> {\n render.props = props as any\n return render as any\n}\n\ntype EmitsToProps<T extends EmitsOptions> = T extends string[]\n ? {\n [K in string & `on${Capitalize<T[number]>}`]?: (...args: any[]) => any\n }\n : T extends ObjectEmitsOptions\n ? {\n [K in string &\n `on${Capitalize<string & keyof T>}`]?: K extends `on${infer C}`\n ? T[Uncapitalize<C>] extends null\n ? (...args: any[]) => any\n : (\n ...args: T[Uncapitalize<C>] extends (...args: infer P) => any\n ? P\n : never\n ) => any\n : never\n }\n : {}\n\ntype PublicProps =\n & VNodeProps\n & AllowedComponentProps\n & ComponentCustomProps\n\n// Adds a filterProps method to the component options\nexport interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {\n filterProps<\n T extends Partial<Props>,\n U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>\n > (props: T): Partial<Pick<T, U>>\n}\n"],"mappings":"AAAA;AAAA,SACSA,cAAc,EAAEC,mBAAmB,uCAE5C;AACA,SACEC,eAAe,IAAIC,gBAAgB,CAAE;AAAA,OAChC,KAAK;AAAA,SACHC,WAAW;AAAA,SACXC,IAAI;AAAA,SACJC,YAAY,8BAErB;AAuFA;AACA,OAAO,SAASJ,eAAeA,CAAEK,OAAyB,EAAE;EAC1DA,OAAO,CAACC,MAAM,GAAGD,OAAO,CAACC,MAAM,IAAID,OAAO,CAACE,KAAK;EAEhD,IAAI,CAACF,OAAO,CAACG,IAAI,EAAE;IACjBN,WAAW,CAAC,kFAAkF,CAAC;IAE/F,OAAOG,OAAO;EAChB;EAEA,IAAIA,OAAO,CAACC,MAAM,EAAE;IAClBD,OAAO,CAACI,KAAK,GAAGL,YAAY,CAACC,OAAO,CAACI,KAAK,IAAI,CAAC,CAAC,EAAEJ,OAAO,CAACG,IAAI,CAAC,EAAE;IACjE,MAAME,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACP,OAAO,CAACI,KAAK,CAAC,CAACI,MAAM,CAACC,GAAG,IAAIA,GAAG,KAAK,OAAO,IAAIA,GAAG,KAAK,OAAO,CAAC;IAC7FT,OAAO,CAACU,WAAW,GAAG,SAASA,WAAWA,CAAEN,KAA0B,EAAE;MACtE,OAAON,IAAI,CAACM,KAAK,EAAEC,QAAQ,CAAC;IAC9B,CAAC;IAEDL,OAAO,CAACI,KAAK,CAACO,GAAG,GAAGC,MAAM;IAC1BZ,OAAO,CAACE,KAAK,GAAG,SAASA,KAAKA,CAAEE,KAA0B,EAAES,GAAG,EAAE;MAC/D,MAAMC,QAAQ,GAAGrB,cAAc,EAAE;;MAEjC;MACA,IAAI,CAACqB,QAAQ,CAACC,KAAK,EAAE,OAAOf,OAAO,CAACC,MAAM,CAACG,KAAK,EAAES,GAAG,CAAC;MAEtD,MAAM;QAAET,KAAK,EAAEY,MAAM;QAAEC;MAAmB,CAAC,GAAGvB,mBAAmB,CAACU,KAAK,EAAEA,KAAK,CAACO,GAAG,IAAIX,OAAO,CAACG,IAAI,EAAEW,QAAQ,CAAC;MAE7G,MAAMI,aAAa,GAAGlB,OAAO,CAACC,MAAM,CAACe,MAAM,EAAEH,GAAG,CAAC;MAEjDI,kBAAkB,EAAE;MAEpB,OAAOC,aAAa;IACtB,CAAC;EACH;EAEA,OAAOlB,OAAO;AAChB;AAqHA;AACA,OAAO,SAASmB,gBAAgBA,CAAA,EAAyB;EAAA,IAAvBC,cAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EACrD,OAAQrB,OAAY,IAAK,CAAEoB,cAAc,GAAGzB,eAAe,GAAGC,gBAAgB,EAAUI,OAAO,CAAC;AAClG;AAEA,OAAO,SAASwB,yBAAyBA,CAKtCpB,KAAmB,EAAEqB,MAAS,EAAwE;EACvGA,MAAM,CAACrB,KAAK,GAAGA,KAAY;EAC3B,OAAOqB,MAAM;AACf"}
1
+ {"version":3,"file":"defineComponent.mjs","names":["injectDefaults","internalUseDefaults","defineComponent","_defineComponent","consoleWarn","pick","propsFactory","options","_setup","setup","name","props","propKeys","Object","keys","filter","key","filterProps","_as","String","ctx","defaults","value","_props","provideSubDefaults","setupBindings","genericComponent","exposeDefaults","arguments","length","undefined","defineFunctionalComponent","render"],"sources":["../../src/util/defineComponent.tsx"],"sourcesContent":["// Composables\nimport { injectDefaults, internalUseDefaults } from '@/composables/defaults'\n\n// Utilities\nimport {\n defineComponent as _defineComponent, // eslint-disable-line no-restricted-imports\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { pick } from '@/util/helpers'\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type {\n AllowedComponentProps,\n ComponentCustomProps,\n ComponentInjectOptions,\n ComponentObjectPropsOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentOptionsWithoutProps,\n ComponentPropsOptions,\n ComputedOptions,\n DefineComponent,\n EmitsOptions,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n MethodOptions,\n ObjectEmitsOptions,\n SlotsType,\n VNode,\n VNodeChild,\n VNodeProps,\n} from 'vue'\n\n// No props\nexport function defineComponent<\n Props = {},\n RawBindings = {},\n D = {},\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithoutProps<\n Props,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<Props, RawBindings, D, C, M, Mixin, Extends, E, EE>\n\n// Object Props\nexport function defineComponent<\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE> & FilterPropsOptions<PropsOptions>\n\n// Implementation\nexport function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)()\n const propKeys = Object.keys(options.props).filter(key => key !== 'class' && key !== 'style')\n options.filterProps = function filterProps (props: Record<string, any>) {\n return pick(props, propKeys)\n }\n\n options.props._as = String\n options.setup = function setup (props: Record<string, any>, ctx) {\n const defaults = injectDefaults()\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx)\n\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, props._as ?? options.name, defaults)\n\n const setupBindings = options._setup(_props, ctx)\n\n provideSubDefaults()\n\n return setupBindings\n }\n }\n\n return options\n}\n\ntype ToListeners<T extends string | number | symbol> = { [K in T]: K extends `on${infer U}` ? Uncapitalize<U> : K }[T]\n\nexport type SlotsToProps<\n U extends RawSlots,\n T = MakeInternalSlots<U>\n> = {\n $children?: (\n | VNodeChild\n | (T extends { default: infer V } ? V : {})\n | { [K in keyof T]?: T[K] }\n )\n 'v-slots'?: { [K in keyof T]?: T[K] | false }\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false\n}\n\ntype RawSlots = Record<string, unknown>\ntype Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild\ntype VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[]\ntype MakeInternalSlots<T extends RawSlots> = {\n [K in keyof T]: Slot<T[K]>\n}\ntype MakeSlots<T extends RawSlots> = {\n [K in keyof T]: VueSlot<T[K]>\n}\n\nexport type GenericProps<Props, Slots extends Record<string, unknown>> = {\n $props: Props & SlotsToProps<Slots>\n $slots: MakeSlots<Slots>\n}\n\ntype DefineComponentWithGenericProps<T extends (new (props: Record<string, any>, slots: RawSlots) => {\n $props?: Record<string, any>\n})> = <\n PropsOptions extends Readonly<ComponentObjectPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n // Slots extends RawSlots = ConstructorParameters<T> extends [any, infer SS extends RawSlots | undefined] ? Exclude<SS, undefined> : {},\n Slots extends RawSlots = ConstructorParameters<T>[1],\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n III = InstanceType<T>,\n P = III extends Record<'$props', any>\n ? Omit<PropsOptions, keyof III['$props']>\n : PropsOptions,\n EEE extends EmitsOptions = E extends any[]\n ? E\n : III extends Record<'$props', any>\n ? Omit<E, ToListeners<keyof III['$props']>>\n : E,\n Base = DefineComponent<\n P,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n EEE,\n EE,\n PublicProps,\n ExtractPropTypes<P> & ({} extends E ? {} : EmitsToProps<EEE>),\n ExtractDefaultPropTypes<P>,\n S\n >\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => Base & T & FilterPropsOptions<PropsOptions>\n\ntype DefineComponentWithSlots<Slots extends RawSlots> = <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n S extends SlotsType = SlotsType<Partial<MakeSlots<Slots>>>,\n>(\n options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II, S>\n) => DefineComponent<\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots>,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n PublicProps,\n ExtractPropTypes<PropsOptions> & SlotsToProps<Slots> & ({} extends E ? {} : EmitsToProps<E>),\n ExtractDefaultPropTypes<PropsOptions>,\n S\n> & FilterPropsOptions<PropsOptions>\n\n// No argument - simple default slot\nexport function genericComponent (exposeDefaults?: boolean): DefineComponentWithSlots<{ default: never }>\n\n// Generic constructor argument - generic props and slots\nexport function genericComponent<T extends (new (props: Record<string, any>, slots: any) => {\n $props?: Record<string, any>\n})> (exposeDefaults?: boolean): DefineComponentWithGenericProps<T>\n\n// Slots argument - simple slots\nexport function genericComponent<\n Slots extends RawSlots\n> (exposeDefaults?: boolean): DefineComponentWithSlots<Slots>\n\n// Implementation\nexport function genericComponent (exposeDefaults = true) {\n return (options: any) => ((exposeDefaults ? defineComponent : _defineComponent) as any)(options)\n}\n\nexport function defineFunctionalComponent<\n T extends FunctionalComponent<Props>,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes<PropsOptions>,\n Props = Readonly<ExtractPropTypes<PropsOptions>>,\n> (props: PropsOptions, render: T): FunctionalComponent<Partial<Defaults> & Omit<Props, keyof Defaults>> {\n render.props = props as any\n return render as any\n}\n\ntype EmitsToProps<T extends EmitsOptions> = T extends string[]\n ? {\n [K in string & `on${Capitalize<T[number]>}`]?: (...args: any[]) => any\n }\n : T extends ObjectEmitsOptions\n ? {\n [K in string &\n `on${Capitalize<string & keyof T>}`]?: K extends `on${infer C}`\n ? T[Uncapitalize<C>] extends null\n ? (...args: any[]) => any\n : (\n ...args: T[Uncapitalize<C>] extends (...args: infer P) => any\n ? P\n : never\n ) => any\n : never\n }\n : {}\n\ntype PublicProps =\n & VNodeProps\n & AllowedComponentProps\n & ComponentCustomProps\n\n// Adds a filterProps method to the component options\nexport interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {\n filterProps<\n T extends Partial<Props>,\n U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>\n > (props: T): Partial<Pick<T, U>>\n}\n"],"mappings":"AAAA;AAAA,SACSA,cAAc,EAAEC,mBAAmB,uCAE5C;AACA,SACEC,eAAe,IAAIC,gBAAgB,CAAE;AAAA,OAChC,KAAK;AAAA,SACHC,WAAW;AAAA,SACXC,IAAI;AAAA,SACJC,YAAY,8BAErB;AAuFA;AACA,OAAO,SAASJ,eAAeA,CAAEK,OAAyB,EAAE;EAC1DA,OAAO,CAACC,MAAM,GAAGD,OAAO,CAACC,MAAM,IAAID,OAAO,CAACE,KAAK;EAEhD,IAAI,CAACF,OAAO,CAACG,IAAI,EAAE;IACjBN,WAAW,CAAC,kFAAkF,CAAC;IAE/F,OAAOG,OAAO;EAChB;EAEA,IAAIA,OAAO,CAACC,MAAM,EAAE;IAClBD,OAAO,CAACI,KAAK,GAAGL,YAAY,CAACC,OAAO,CAACI,KAAK,IAAI,CAAC,CAAC,EAAEJ,OAAO,CAACG,IAAI,CAAC,EAAE;IACjE,MAAME,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACP,OAAO,CAACI,KAAK,CAAC,CAACI,MAAM,CAACC,GAAG,IAAIA,GAAG,KAAK,OAAO,IAAIA,GAAG,KAAK,OAAO,CAAC;IAC7FT,OAAO,CAACU,WAAW,GAAG,SAASA,WAAWA,CAAEN,KAA0B,EAAE;MACtE,OAAON,IAAI,CAACM,KAAK,EAAEC,QAAQ,CAAC;IAC9B,CAAC;IAEDL,OAAO,CAACI,KAAK,CAACO,GAAG,GAAGC,MAAM;IAC1BZ,OAAO,CAACE,KAAK,GAAG,SAASA,KAAKA,CAAEE,KAA0B,EAAES,GAAG,EAAE;MAC/D,MAAMC,QAAQ,GAAGrB,cAAc,EAAE;;MAEjC;MACA,IAAI,CAACqB,QAAQ,CAACC,KAAK,EAAE,OAAOf,OAAO,CAACC,MAAM,CAACG,KAAK,EAAES,GAAG,CAAC;MAEtD,MAAM;QAAET,KAAK,EAAEY,MAAM;QAAEC;MAAmB,CAAC,GAAGvB,mBAAmB,CAACU,KAAK,EAAEA,KAAK,CAACO,GAAG,IAAIX,OAAO,CAACG,IAAI,EAAEW,QAAQ,CAAC;MAE7G,MAAMI,aAAa,GAAGlB,OAAO,CAACC,MAAM,CAACe,MAAM,EAAEH,GAAG,CAAC;MAEjDI,kBAAkB,EAAE;MAEpB,OAAOC,aAAa;IACtB,CAAC;EACH;EAEA,OAAOlB,OAAO;AAChB;AA0HA;AACA,OAAO,SAASmB,gBAAgBA,CAAA,EAAyB;EAAA,IAAvBC,cAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EACrD,OAAQrB,OAAY,IAAK,CAAEoB,cAAc,GAAGzB,eAAe,GAAGC,gBAAgB,EAAUI,OAAO,CAAC;AAClG;AAEA,OAAO,SAASwB,yBAAyBA,CAKtCpB,KAAmB,EAAEqB,MAAS,EAAwE;EACvGA,MAAM,CAACrB,KAAK,GAAGA,KAAY;EAC3B,OAAOqB,MAAM;AACf"}