vuetify 3.1.5 → 3.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/dist/json/attributes.json +562 -34
  2. package/dist/json/importMap.json +36 -36
  3. package/dist/json/tags.json +136 -2
  4. package/dist/json/web-types.json +2163 -85
  5. package/dist/vuetify-labs.css +30 -25
  6. package/dist/vuetify-labs.d.ts +3455 -146
  7. package/dist/vuetify-labs.esm.js +123 -73
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +123 -73
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +89 -84
  12. package/dist/vuetify.d.ts +1928 -77
  13. package/dist/vuetify.esm.js +102 -63
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +102 -63
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +674 -669
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAlert/index.d.ts +22 -0
  21. package/lib/components/VApp/index.d.ts +6 -0
  22. package/lib/components/VAppBar/index.d.ts +36 -0
  23. package/lib/components/VAutocomplete/index.d.ts +117 -6
  24. package/lib/components/VAvatar/index.d.ts +6 -0
  25. package/lib/components/VBadge/index.d.ts +8 -0
  26. package/lib/components/VBanner/index.d.ts +24 -0
  27. package/lib/components/VBottomNavigation/index.d.ts +6 -0
  28. package/lib/components/VBreadcrumbs/index.d.ts +28 -4
  29. package/lib/components/VBtn/index.d.ts +12 -0
  30. package/lib/components/VBtnGroup/index.d.ts +6 -0
  31. package/lib/components/VBtnToggle/index.d.ts +6 -0
  32. package/lib/components/VCard/index.d.ts +60 -0
  33. package/lib/components/VCarousel/index.d.ts +60 -0
  34. package/lib/components/VCheckbox/index.d.ts +38 -0
  35. package/lib/components/VChip/index.d.ts +12 -0
  36. package/lib/components/VChipGroup/index.d.ts +6 -0
  37. package/lib/components/VCode/index.d.ts +6 -0
  38. package/lib/components/VColorPicker/VColorPicker.mjs +9 -1
  39. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  40. package/lib/components/VColorPicker/VColorPickerCanvas.css +2 -1
  41. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +36 -18
  42. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  43. package/lib/components/VColorPicker/VColorPickerCanvas.sass +2 -1
  44. package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -4
  45. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  46. package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
  47. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  48. package/lib/components/VColorPicker/util/index.mjs +2 -5
  49. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  50. package/lib/components/VCombobox/index.d.ts +117 -6
  51. package/lib/components/VCounter/index.d.ts +24 -0
  52. package/lib/components/VDefaultsProvider/index.d.ts +6 -0
  53. package/lib/components/VDialog/index.d.ts +64 -1
  54. package/lib/components/VDivider/index.d.ts +6 -0
  55. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  56. package/lib/components/VExpansionPanel/index.d.ts +49 -12
  57. package/lib/components/VField/index.d.ts +20 -6
  58. package/lib/components/VFileInput/index.d.ts +43 -1
  59. package/lib/components/VFooter/index.d.ts +7 -1
  60. package/lib/components/VForm/index.d.ts +6 -0
  61. package/lib/components/VGrid/index.d.ts +24 -0
  62. package/lib/components/VHover/index.d.ts +12 -0
  63. package/lib/components/VIcon/index.d.ts +12 -0
  64. package/lib/components/VImg/index.d.ts +12 -0
  65. package/lib/components/VInput/index.d.ts +12 -0
  66. package/lib/components/VItemGroup/index.d.ts +12 -0
  67. package/lib/components/VKbd/index.d.ts +6 -0
  68. package/lib/components/VLabel/index.d.ts +6 -0
  69. package/lib/components/VLayout/index.d.ts +12 -0
  70. package/lib/components/VLazy/index.d.ts +6 -0
  71. package/lib/components/VList/index.d.ts +77 -6
  72. package/lib/components/VLocaleProvider/index.d.ts +6 -0
  73. package/lib/components/VMain/index.d.ts +6 -0
  74. package/lib/components/VMenu/index.d.ts +64 -1
  75. package/lib/components/VMessages/index.d.ts +24 -0
  76. package/lib/components/VNavigationDrawer/index.d.ts +12 -0
  77. package/lib/components/VNoSsr/index.d.ts +6 -0
  78. package/lib/components/VOverlay/index.d.ts +18 -0
  79. package/lib/components/VOverlay/scrollStrategies.mjs +1 -1
  80. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  81. package/lib/components/VPagination/index.d.ts +14 -0
  82. package/lib/components/VParallax/index.d.ts +12 -0
  83. package/lib/components/VProgressCircular/index.d.ts +6 -0
  84. package/lib/components/VProgressLinear/index.d.ts +12 -0
  85. package/lib/components/VRadio/index.d.ts +16 -0
  86. package/lib/components/VRadioGroup/index.d.ts +22 -0
  87. package/lib/components/VRangeSlider/index.d.ts +16 -0
  88. package/lib/components/VRating/index.d.ts +8 -0
  89. package/lib/components/VResponsive/index.d.ts +8 -0
  90. package/lib/components/VSelect/index.d.ts +183 -6
  91. package/lib/components/VSelectionControl/index.d.ts +14 -6
  92. package/lib/components/VSelectionControlGroup/index.d.ts +6 -0
  93. package/lib/components/VSheet/VSheet.mjs +22 -12
  94. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  95. package/lib/components/VSheet/index.d.ts +7 -1
  96. package/lib/components/VSlideGroup/index.d.ts +26 -0
  97. package/lib/components/VSlider/index.d.ts +16 -0
  98. package/lib/components/VSnackbar/index.d.ts +44 -1
  99. package/lib/components/VSwitch/index.d.ts +22 -0
  100. package/lib/components/VSystemBar/VSystemBar.css +5 -1
  101. package/lib/components/VSystemBar/VSystemBar.sass +5 -1
  102. package/lib/components/VSystemBar/_variables.scss +4 -1
  103. package/lib/components/VSystemBar/index.d.ts +6 -0
  104. package/lib/components/VTable/index.d.ts +12 -0
  105. package/lib/components/VTabs/index.d.ts +12 -0
  106. package/lib/components/VTextField/index.d.ts +54 -6
  107. package/lib/components/VTextarea/index.d.ts +39 -1
  108. package/lib/components/VThemeProvider/index.d.ts +6 -0
  109. package/lib/components/VTimeline/index.d.ts +16 -0
  110. package/lib/components/VToolbar/index.d.ts +30 -0
  111. package/lib/components/VTooltip/index.d.ts +46 -1
  112. package/lib/components/VValidation/index.d.ts +6 -0
  113. package/lib/components/VWindow/index.d.ts +34 -0
  114. package/lib/components/index.d.ts +1918 -67
  115. package/lib/components/transitions/index.d.ts +96 -0
  116. package/lib/composables/nested/nested.mjs +2 -2
  117. package/lib/composables/nested/nested.mjs.map +1 -1
  118. package/lib/composables/nested/selectStrategies.mjs +7 -1
  119. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  120. package/lib/composables/proxiedModel.mjs +1 -1
  121. package/lib/composables/proxiedModel.mjs.map +1 -1
  122. package/lib/composables/resizeObserver.mjs.map +1 -1
  123. package/lib/composables/theme.mjs +21 -13
  124. package/lib/composables/theme.mjs.map +1 -1
  125. package/lib/entry-bundler.mjs +1 -1
  126. package/lib/framework.mjs +1 -1
  127. package/lib/index.d.ts +9 -9
  128. package/lib/labs/VDataTable/VDataTableRows.mjs +4 -6
  129. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  130. package/lib/labs/VDataTable/VDataTableServer.mjs +2 -2
  131. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  132. package/lib/labs/VDataTable/index.d.ts +1503 -48
  133. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +18 -5
  134. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  135. package/lib/labs/VVirtualScroll/index.d.ts +9 -6
  136. package/lib/labs/components.d.ts +1512 -54
  137. package/lib/util/colorUtils.mjs +4 -5
  138. package/lib/util/colorUtils.mjs.map +1 -1
  139. package/lib/util/defineComponent.mjs.map +1 -1
  140. package/package.json +4 -4
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.1.5
2
+ * Vuetify v3.1.7
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -780,11 +780,12 @@ function RGBtoHex(_ref2) {
780
780
  b,
781
781
  a
782
782
  } = _ref2;
783
- return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : 'FF'].join('')}`;
783
+ return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : ''].join('')}`;
784
784
  }
785
785
  function HexToRGB(hex) {
786
+ hex = parseHex(hex);
786
787
  let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));
787
- a = a === undefined ? a : Math.round(a / 255 * 100) / 100;
788
+ a = a === undefined ? a : a / 255;
788
789
  return {
789
790
  r,
790
791
  g,
@@ -807,9 +808,7 @@ function parseHex(hex) {
807
808
  if (hex.length === 3 || hex.length === 4) {
808
809
  hex = hex.split('').map(x => x + x).join('');
809
810
  }
810
- if (hex.length === 6) {
811
- hex = padEnd(hex, 8, 'F');
812
- } else {
811
+ if (hex.length !== 6) {
813
812
  hex = padEnd(padEnd(hex, 6), 8, 'F');
814
813
  }
815
814
  return hex;
@@ -1699,22 +1698,30 @@ function createTheme(options) {
1699
1698
  lines.push(...bgLines, ...fgLines);
1700
1699
  return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
1701
1700
  });
1701
+ function getHead() {
1702
+ return {
1703
+ style: [{
1704
+ children: styles.value,
1705
+ id: 'vuetify-theme-stylesheet',
1706
+ nonce: parsedOptions.cspNonce || false
1707
+ }]
1708
+ };
1709
+ }
1702
1710
  function install(app) {
1703
1711
  const head = app._context.provides.usehead;
1704
1712
  if (head) {
1705
- head.addHeadObjs(computed(() => {
1706
- const style = {
1707
- children: styles.value,
1708
- type: 'text/css',
1709
- id: 'vuetify-theme-stylesheet'
1710
- };
1711
- if (parsedOptions.cspNonce) style.nonce = parsedOptions.cspNonce;
1712
- return {
1713
- style: [style]
1714
- };
1715
- }));
1716
- if (IN_BROWSER) {
1717
- watchEffect(() => head.updateDOM());
1713
+ if (head.push) {
1714
+ const entry = head.push(getHead);
1715
+ watch(styles, () => {
1716
+ entry.patch(getHead);
1717
+ });
1718
+ } else {
1719
+ if (IN_BROWSER) {
1720
+ head.addHeadObjs(computed(getHead));
1721
+ watchEffect(() => head.updateDOM());
1722
+ } else {
1723
+ head.addHeadObjs(getHead());
1724
+ }
1718
1725
  }
1719
1726
  } else {
1720
1727
  let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;
@@ -1816,7 +1823,7 @@ function useProxiedModel(props, prop, defaultValue) {
1816
1823
  });
1817
1824
  const model = computed({
1818
1825
  get() {
1819
- return transformIn(toRaw(isControlled.value ? props[prop] : internal.value));
1826
+ return transformIn(isControlled.value ? props[prop] : internal.value);
1820
1827
  },
1821
1828
  set(internalValue) {
1822
1829
  const newValue = transformOut(internalValue);
@@ -7072,7 +7079,6 @@ const listOpenStrategy = {
7072
7079
  };
7073
7080
 
7074
7081
  /* eslint-disable sonarjs/no-identical-functions */
7075
-
7076
7082
  const independentSelectStrategy = mandatory => {
7077
7083
  const strategy = {
7078
7084
  select: _ref => {
@@ -7081,6 +7087,8 @@ const independentSelectStrategy = mandatory => {
7081
7087
  value,
7082
7088
  selected
7083
7089
  } = _ref;
7090
+ id = toRaw(id);
7091
+
7084
7092
  // When mandatory and we're trying to deselect when id
7085
7093
  // is the only currently selected item then do nothing
7086
7094
  if (mandatory && !value) {
@@ -7125,6 +7133,7 @@ const independentSingleSelectStrategy = mandatory => {
7125
7133
  id,
7126
7134
  ...rest
7127
7135
  } = _ref3;
7136
+ id = toRaw(id);
7128
7137
  const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();
7129
7138
  return parentStrategy.select({
7130
7139
  ...rest,
@@ -7155,6 +7164,7 @@ const leafSelectStrategy = mandatory => {
7155
7164
  children,
7156
7165
  ...rest
7157
7166
  } = _ref4;
7167
+ id = toRaw(id);
7158
7168
  if (children.has(id)) return selected;
7159
7169
  return parentStrategy.select({
7160
7170
  id,
@@ -7178,6 +7188,7 @@ const leafSingleSelectStrategy = mandatory => {
7178
7188
  children,
7179
7189
  ...rest
7180
7190
  } = _ref5;
7191
+ id = toRaw(id);
7181
7192
  if (children.has(id)) return selected;
7182
7193
  return parentStrategy.select({
7183
7194
  id,
@@ -7201,6 +7212,7 @@ const classicSelectStrategy = mandatory => {
7201
7212
  children,
7202
7213
  parents
7203
7214
  } = _ref6;
7215
+ id = toRaw(id);
7204
7216
  const original = new Map(selected);
7205
7217
  const items = [id];
7206
7218
  while (items.length) {
@@ -7422,7 +7434,7 @@ const useNestedItem = (id, isGroup) => {
7422
7434
  isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
7423
7435
  parent: computed(() => parent.root.parents.value.get(computedId.value)),
7424
7436
  select: (selected, e) => parent.root.select(computedId.value, selected, e),
7425
- isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),
7437
+ isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),
7426
7438
  isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),
7427
7439
  isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),
7428
7440
  isGroupActivator: parent.isGroupActivator
@@ -9065,7 +9077,7 @@ function repositionScrollStrategy(data, props, scope) {
9065
9077
  });
9066
9078
  });
9067
9079
  onScopeDispose(() => {
9068
- cancelIdleCallback(ric);
9080
+ typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric);
9069
9081
  cancelAnimationFrame(raf);
9070
9082
  });
9071
9083
  }
@@ -11701,6 +11713,19 @@ const VColorPickerCanvas = defineComponent({
11701
11713
  };
11702
11714
  });
11703
11715
  const canvasRef = ref();
11716
+ const canvasWidth = ref(parseFloat(props.width));
11717
+ const canvasHeight = ref(parseFloat(props.height));
11718
+ const {
11719
+ resizeRef
11720
+ } = useResizeObserver(entries => {
11721
+ if (!resizeRef.value?.offsetParent) return;
11722
+ const {
11723
+ width,
11724
+ height
11725
+ } = entries[0].contentRect;
11726
+ canvasWidth.value = width;
11727
+ canvasHeight.value = height;
11728
+ });
11704
11729
  function updateDotPosition(x, y, rect) {
11705
11730
  const {
11706
11731
  left,
@@ -11745,18 +11770,14 @@ const VColorPickerCanvas = defineComponent({
11745
11770
  return;
11746
11771
  }
11747
11772
  if (!canvasRef.value) return;
11748
- const {
11749
- width,
11750
- height
11751
- } = canvasRef.value.getBoundingClientRect();
11752
11773
  const {
11753
11774
  x,
11754
11775
  y
11755
11776
  } = dotPosition.value;
11756
11777
  emit('update:color', {
11757
11778
  h: props.color?.h ?? 0,
11758
- s: clamp(x, 0, width) / width,
11759
- v: 1 - clamp(y, 0, height) / height,
11779
+ s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,
11780
+ v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,
11760
11781
  a: props.color?.a ?? 1
11761
11782
  });
11762
11783
  });
@@ -11779,16 +11800,27 @@ const VColorPickerCanvas = defineComponent({
11779
11800
  watch(() => props.color?.h, updateCanvas, {
11780
11801
  immediate: true
11781
11802
  });
11803
+ watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {
11804
+ updateCanvas();
11805
+ dotPosition.value = {
11806
+ x: dotPosition.value.x * newVal[0] / oldVal[0],
11807
+ y: dotPosition.value.y * newVal[1] / oldVal[1]
11808
+ };
11809
+ }, {
11810
+ flush: 'post'
11811
+ });
11782
11812
  watch(() => props.color, () => {
11783
11813
  if (isInteracting.value) {
11784
11814
  isInteracting.value = false;
11785
11815
  return;
11786
11816
  }
11787
- if (!props.color) return;
11788
11817
  isOutsideUpdate.value = true;
11789
- dotPosition.value = {
11790
- x: props.color.s * parseInt(props.width, 10),
11791
- y: (1 - props.color.v) * parseInt(props.height, 10)
11818
+ dotPosition.value = props.color ? {
11819
+ x: props.color.s * canvasWidth.value,
11820
+ y: (1 - props.color.v) * canvasHeight.value
11821
+ } : {
11822
+ x: 0,
11823
+ y: 0
11792
11824
  };
11793
11825
  }, {
11794
11826
  deep: true,
@@ -11796,19 +11828,16 @@ const VColorPickerCanvas = defineComponent({
11796
11828
  });
11797
11829
  onMounted(() => updateCanvas());
11798
11830
  useRender(() => createVNode("div", {
11831
+ "ref": resizeRef,
11799
11832
  "class": "v-color-picker-canvas",
11800
- "style": {
11801
- width: convertToUnit(props.width),
11802
- height: convertToUnit(props.height)
11803
- },
11804
11833
  "onClick": handleClick,
11805
11834
  "onMousedown": handleMouseDown,
11806
11835
  "onTouchstart": handleMouseDown
11807
11836
  }, [createVNode("canvas", {
11808
11837
  "ref": canvasRef,
11809
- "width": props.width,
11810
- "height": props.height
11811
- }, null), createVNode("div", {
11838
+ "width": canvasWidth.value,
11839
+ "height": canvasHeight.value
11840
+ }, null), props.color && createVNode("div", {
11812
11841
  "class": ['v-color-picker-canvas__dot', {
11813
11842
  'v-color-picker-canvas__dot--disabled': props.disabled
11814
11843
  }],
@@ -11841,10 +11870,7 @@ function parseColor(color) {
11841
11870
  hsva = color;
11842
11871
  }
11843
11872
  }
11844
- return hsva != null ? {
11845
- ...hsva,
11846
- a: hsva.a ?? 1
11847
- } : null;
11873
+ return hsva;
11848
11874
  }
11849
11875
  function stripAlpha(color, stripAlpha) {
11850
11876
  if (stripAlpha) {
@@ -11864,7 +11890,7 @@ function extractColor(color, input) {
11864
11890
  if (typeof input === 'object') {
11865
11891
  let converted;
11866
11892
  if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color);else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color);else if (has(input, ['h', 's', 'v'])) converted = color;
11867
- return stripAlpha(converted, !has(input, ['a']));
11893
+ return stripAlpha(converted, !has(input, ['a']) && color.a === 1);
11868
11894
  }
11869
11895
  return color;
11870
11896
  }
@@ -12055,7 +12081,7 @@ const VColorPickerEdit = defineComponent({
12055
12081
  const inputs = computed(() => {
12056
12082
  const mode = enabledModes.value.find(m => m.name === props.mode);
12057
12083
  if (!mode) return [];
12058
- const color = props.color ? mode.to(props.color) : {};
12084
+ const color = props.color ? mode.to(props.color) : null;
12059
12085
  return mode.inputs?.map(_ref3 => {
12060
12086
  let {
12061
12087
  getValue,
@@ -12066,11 +12092,11 @@ const VColorPickerEdit = defineComponent({
12066
12092
  ...mode.inputProps,
12067
12093
  ...inputProps,
12068
12094
  disabled: props.disabled,
12069
- value: getValue(color),
12095
+ value: color && getValue(color),
12070
12096
  onChange: e => {
12071
12097
  const target = e.target;
12072
12098
  if (!target) return;
12073
- emit('update:color', mode.from(getColor(color, target.value)));
12099
+ emit('update:color', mode.from(getColor(color ?? nullColor, target.value)));
12074
12100
  }
12075
12101
  };
12076
12102
  });
@@ -12769,12 +12795,12 @@ const VColorPickerPreview = defineComponent({
12769
12795
  "hideDetails": true
12770
12796
  }, null), !props.hideAlpha && createVNode(VSlider, {
12771
12797
  "class": "v-color-picker-preview__track v-color-picker-preview__alpha",
12772
- "modelValue": props.color?.a,
12798
+ "modelValue": props.color?.a ?? 1,
12773
12799
  "onUpdate:modelValue": a => emit('update:color', {
12774
12800
  ...(props.color ?? nullColor),
12775
12801
  a
12776
12802
  }),
12777
- "step": 0,
12803
+ "step": 1 / 256,
12778
12804
  "min": 0,
12779
12805
  "max": 1,
12780
12806
  "disabled": props.disabled,
@@ -13159,18 +13185,23 @@ const VColorPickerSwatches = defineComponent({
13159
13185
  }
13160
13186
  });
13161
13187
 
13188
+ // Types
13189
+
13190
+ const makeVSheetProps = propsFactory({
13191
+ color: String,
13192
+ ...makeBorderProps(),
13193
+ ...makeDimensionProps(),
13194
+ ...makeElevationProps(),
13195
+ ...makeLocationProps(),
13196
+ ...makePositionProps(),
13197
+ ...makeRoundedProps(),
13198
+ ...makeTagProps(),
13199
+ ...makeThemeProps()
13200
+ }, 'v-sheet');
13162
13201
  const VSheet = genericComponent()({
13163
13202
  name: 'VSheet',
13164
13203
  props: {
13165
- color: String,
13166
- ...makeBorderProps(),
13167
- ...makeDimensionProps(),
13168
- ...makeElevationProps(),
13169
- ...makeLocationProps(),
13170
- ...makePositionProps(),
13171
- ...makeRoundedProps(),
13172
- ...makeTagProps(),
13173
- ...makeThemeProps()
13204
+ ...makeVSheetProps()
13174
13205
  },
13175
13206
  setup(props, _ref) {
13176
13207
  let {
@@ -13201,10 +13232,11 @@ const VSheet = genericComponent()({
13201
13232
  const {
13202
13233
  roundedClasses
13203
13234
  } = useRounded(props);
13204
- return () => createVNode(props.tag, {
13235
+ useRender(() => createVNode(props.tag, {
13205
13236
  "class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
13206
13237
  "style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
13207
- }, slots);
13238
+ }, slots));
13239
+ return {};
13208
13240
  }
13209
13241
  });
13210
13242
 
@@ -13281,6 +13313,13 @@ const VColorPicker = defineComponent({
13281
13313
  onMounted(() => {
13282
13314
  if (!props.modes.includes(mode.value)) mode.value = props.modes[0];
13283
13315
  });
13316
+ provideDefaults({
13317
+ VSlider: {
13318
+ color: undefined,
13319
+ trackColor: undefined,
13320
+ trackFillColor: undefined
13321
+ }
13322
+ });
13284
13323
  useRender(() => createVNode(VSheet, {
13285
13324
  "rounded": props.rounded,
13286
13325
  "elevation": props.elevation,
@@ -18721,7 +18760,7 @@ const VDataTableRows = genericComponent()({
18721
18760
  "item": item
18722
18761
  }, slots);
18723
18762
  }
18724
- return createVNode(Fragment, null, [slots.item ? slots.item({
18763
+ const slotProps = {
18725
18764
  index,
18726
18765
  item,
18727
18766
  columns: columns.value,
@@ -18729,7 +18768,8 @@ const VDataTableRows = genericComponent()({
18729
18768
  toggleExpand,
18730
18769
  isSelected,
18731
18770
  toggleSelect
18732
- }) : createVNode(VDataTableRow, {
18771
+ };
18772
+ return createVNode(Fragment, null, [slots.item ? slots.item(slotProps) : createVNode(VDataTableRow, {
18733
18773
  "key": `item_${item.value}`,
18734
18774
  "onClick": event => {
18735
18775
  if (expandOnClick.value) {
@@ -18740,10 +18780,7 @@ const VDataTableRows = genericComponent()({
18740
18780
  });
18741
18781
  },
18742
18782
  "item": item
18743
- }, slots), isExpanded(item) && slots['expanded-row']?.({
18744
- item,
18745
- columns: columns.value
18746
- })]);
18783
+ }, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
18747
18784
  })]));
18748
18785
  return {};
18749
18786
  }
@@ -19444,7 +19481,7 @@ const VDataTableServer = genericComponent()({
19444
19481
  "sticky": props.fixedHeader,
19445
19482
  "loading": props.loading,
19446
19483
  "color": props.color
19447
- }, null)]), slots.thead?.(), createVNode("tbody", {
19484
+ }, slots)]), slots.thead?.(), createVNode("tbody", {
19448
19485
  "class": "v-data-table__tbody",
19449
19486
  "role": "rowgroup"
19450
19487
  }, [slots.body ? slots.body() : createVNode(VDataTableRows, {
@@ -19529,13 +19566,15 @@ const VVirtualScroll = genericComponent()({
19529
19566
  resizeRef.value = rootEl.value;
19530
19567
  });
19531
19568
  const display = useDisplay();
19532
- const sizes = createRange(props.items.length).map(() => itemHeight.value);
19569
+ const sizeMap = new Map();
19570
+ let sizes = createRange(props.items.length).map(() => itemHeight.value);
19533
19571
  const visibleItems = computed(() => {
19534
19572
  return props.visibleItems ? parseInt(props.visibleItems, 10) : Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
19535
19573
  });
19536
19574
  function handleItemResize(index, height) {
19537
19575
  itemHeight.value = Math.max(itemHeight.value, height);
19538
19576
  sizes[index] = height;
19577
+ sizeMap.set(props.items[index], height);
19539
19578
  }
19540
19579
  function calculateOffset(index) {
19541
19580
  return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
@@ -19565,9 +19604,9 @@ const VVirtualScroll = genericComponent()({
19565
19604
  const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
19566
19605
  const buffer = Math.round(visibleItems.value / 3);
19567
19606
  if (direction === UP && midPointIndex <= first.value + buffer * 2 - 1) {
19568
- first.value = Math.max(midPointIndex - buffer, 0);
19607
+ first.value = clamp(midPointIndex - buffer, 0, props.items.length);
19569
19608
  } else if (direction === DOWN && midPointIndex >= first.value + buffer * 2 - 1) {
19570
- first.value = Math.min(Math.max(0, midPointIndex - buffer), props.items.length - visibleItems.value);
19609
+ first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
19571
19610
  }
19572
19611
  lastScrollTop = rootEl.value.scrollTop;
19573
19612
  }
@@ -19589,6 +19628,17 @@ const VVirtualScroll = genericComponent()({
19589
19628
  itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
19590
19629
  }
19591
19630
  });
19631
+ watch(() => props.items.length, () => {
19632
+ sizes = createRange(props.items.length).map(() => itemHeight.value);
19633
+ sizeMap.forEach((height, item) => {
19634
+ const index = props.items.indexOf(item);
19635
+ if (index === -1) {
19636
+ sizeMap.delete(item);
19637
+ } else {
19638
+ sizes[index] = height;
19639
+ }
19640
+ });
19641
+ });
19592
19642
  useRender(() => createVNode("div", {
19593
19643
  "ref": rootEl,
19594
19644
  "class": "v-virtual-scroll",
@@ -19967,7 +20017,7 @@ function createVuetify$1() {
19967
20017
  locale
19968
20018
  };
19969
20019
  }
19970
- const version$1 = "3.1.5";
20020
+ const version$1 = "3.1.7";
19971
20021
  createVuetify$1.version = version$1;
19972
20022
 
19973
20023
  // Vue's inject() can only be used in setup
@@ -19979,7 +20029,7 @@ function inject(key) {
19979
20029
  }
19980
20030
  }
19981
20031
 
19982
- const version = "3.1.5";
20032
+ const version = "3.1.7";
19983
20033
 
19984
20034
  const createVuetify = function () {
19985
20035
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};