vuetify 3.1.13 → 3.1.14

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 (92) hide show
  1. package/dist/json/attributes.json +24 -8
  2. package/dist/json/importMap.json +4 -4
  3. package/dist/json/tags.json +5 -1
  4. package/dist/json/web-types.json +83 -47
  5. package/dist/vuetify-labs.css +439 -420
  6. package/dist/vuetify-labs.d.ts +548 -498
  7. package/dist/vuetify-labs.esm.js +92 -50
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +92 -50
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +53 -34
  12. package/dist/vuetify.d.ts +427 -403
  13. package/dist/vuetify.esm.js +74 -33
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +74 -33
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +46 -36
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAutocomplete/VAutocomplete.mjs +5 -2
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  22. package/lib/components/VAutocomplete/index.d.ts +38 -32
  23. package/lib/components/VCheckbox/index.d.ts +14 -14
  24. package/lib/components/VChip/VChip.mjs +2 -2
  25. package/lib/components/VChip/VChip.mjs.map +1 -1
  26. package/lib/components/VChip/index.d.ts +14 -14
  27. package/lib/components/VCombobox/VCombobox.mjs +6 -3
  28. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  29. package/lib/components/VCombobox/index.d.ts +38 -32
  30. package/lib/components/VField/VField.mjs +3 -3
  31. package/lib/components/VField/VField.mjs.map +1 -1
  32. package/lib/components/VField/index.d.ts +20 -20
  33. package/lib/components/VFileInput/VFileInput.mjs +0 -1
  34. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  35. package/lib/components/VFileInput/index.d.ts +50 -56
  36. package/lib/components/VImg/VImg.mjs +3 -3
  37. package/lib/components/VImg/VImg.mjs.map +1 -1
  38. package/lib/components/VImg/index.d.ts +19 -19
  39. package/lib/components/VInput/VInput.mjs +2 -2
  40. package/lib/components/VInput/VInput.mjs.map +1 -1
  41. package/lib/components/VInput/index.d.ts +14 -14
  42. package/lib/components/VList/VList.mjs +2 -1
  43. package/lib/components/VList/VList.mjs.map +1 -1
  44. package/lib/components/VList/VListItem.css +12 -0
  45. package/lib/components/VList/VListItem.mjs +2 -2
  46. package/lib/components/VList/VListItem.mjs.map +1 -1
  47. package/lib/components/VList/VListItem.sass +5 -0
  48. package/lib/components/VList/index.d.ts +14 -14
  49. package/lib/components/VOverlay/useActivator.mjs +1 -0
  50. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  51. package/lib/components/VProgressCircular/VProgressCircular.css +3 -1
  52. package/lib/components/VProgressCircular/VProgressCircular.sass +3 -1
  53. package/lib/components/VProgressCircular/_variables.scss +1 -0
  54. package/lib/components/VProgressLinear/VProgressLinear.css +5 -2
  55. package/lib/components/VProgressLinear/VProgressLinear.sass +3 -0
  56. package/lib/components/VProgressLinear/_variables.scss +1 -1
  57. package/lib/components/VRadioGroup/index.d.ts +14 -14
  58. package/lib/components/VRangeSlider/index.d.ts +14 -14
  59. package/lib/components/VSelect/VSelect.mjs +31 -2
  60. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  61. package/lib/components/VSelect/index.d.ts +38 -32
  62. package/lib/components/VSlider/index.d.ts +14 -14
  63. package/lib/components/VSwitch/index.d.ts +14 -14
  64. package/lib/components/VTextField/VTextField.mjs +2 -2
  65. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  66. package/lib/components/VTextField/index.d.ts +83 -77
  67. package/lib/components/VTextarea/VTextarea.mjs +8 -5
  68. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  69. package/lib/components/VTextarea/index.d.ts +56 -50
  70. package/lib/components/VToolbar/VToolbar.css +2 -0
  71. package/lib/components/VToolbar/VToolbar.sass +2 -0
  72. package/lib/components/index.d.ts +426 -402
  73. package/lib/composables/proxiedModel.mjs +2 -1
  74. package/lib/composables/proxiedModel.mjs.map +1 -1
  75. package/lib/composables/theme.mjs +1 -1
  76. package/lib/composables/theme.mjs.map +1 -1
  77. package/lib/entry-bundler.mjs +1 -1
  78. package/lib/framework.mjs +1 -1
  79. package/lib/index.d.ts +1 -1
  80. package/lib/labs/VDataTable/VDataTable.mjs +4 -4
  81. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  82. package/lib/labs/VDataTable/VDataTableRows.mjs +5 -7
  83. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  84. package/lib/labs/VDataTable/VDataTableServer.mjs +4 -3
  85. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  86. package/lib/labs/VDataTable/VDataTableVirtual.mjs +5 -3
  87. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  88. package/lib/labs/VDataTable/index.d.ts +122 -96
  89. package/lib/labs/components.d.ts +122 -96
  90. package/lib/util/helpers.mjs +1 -1
  91. package/lib/util/helpers.mjs.map +1 -1
  92. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.1.13
2
+ * Vuetify v3.1.14
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -339,7 +339,7 @@ function includes(arr, val) {
339
339
  }
340
340
  const onRE = /^on[^a-z]/;
341
341
  const isOn = key => onRE.test(key);
342
- const EventProp = [Function, Array];
342
+ const EventProp = () => [Function, Array];
343
343
  function hasEvent(props, name) {
344
344
  name = 'on' + capitalize(name);
345
345
  return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);
@@ -1703,7 +1703,7 @@ function createTheme(options) {
1703
1703
  if (/^on-[a-z]/.test(key)) {
1704
1704
  createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
1705
1705
  } else {
1706
- createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`]);
1706
+ createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`]);
1707
1707
  createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
1708
1708
  createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);
1709
1709
  }
@@ -1841,7 +1841,8 @@ function useProxiedModel(props, prop, defaultValue) {
1841
1841
  });
1842
1842
  const model = computed({
1843
1843
  get() {
1844
- return transformIn(isControlled.value ? props[prop] : internal.value);
1844
+ const externalValue = props[prop];
1845
+ return transformIn(isControlled.value ? externalValue : internal.value);
1845
1846
  },
1846
1847
  set(internalValue) {
1847
1848
  const newValue = transformOut(internalValue);
@@ -2715,9 +2716,9 @@ const VImg = genericComponent()({
2715
2716
  ...makeTransitionProps()
2716
2717
  },
2717
2718
  emits: {
2718
- loadstart: event => true,
2719
- load: event => true,
2720
- error: event => true
2719
+ loadstart: value => true,
2720
+ load: value => true,
2721
+ error: value => true
2721
2722
  },
2722
2723
  setup(props, _ref) {
2723
2724
  let {
@@ -5342,9 +5343,9 @@ const makeVFieldProps = propsFactory({
5342
5343
  default: 'filled',
5343
5344
  validator: v => allowedVariants$1.includes(v)
5344
5345
  },
5345
- 'onClick:clear': EventProp,
5346
- 'onClick:appendInner': EventProp,
5347
- 'onClick:prependInner': EventProp,
5346
+ 'onClick:clear': EventProp(),
5347
+ 'onClick:appendInner': EventProp(),
5348
+ 'onClick:prependInner': EventProp(),
5348
5349
  ...makeThemeProps(),
5349
5350
  ...makeLoaderProps()
5350
5351
  }, 'v-field');
@@ -5890,8 +5891,8 @@ const makeVInputProps = propsFactory({
5890
5891
  default: 'horizontal',
5891
5892
  validator: v => ['horizontal', 'vertical'].includes(v)
5892
5893
  },
5893
- 'onClick:prepend': EventProp,
5894
- 'onClick:append': EventProp,
5894
+ 'onClick:prepend': EventProp(),
5895
+ 'onClick:append': EventProp(),
5895
5896
  ...makeDensityProps(),
5896
5897
  ...makeValidationProps()
5897
5898
  }, 'v-input');
@@ -6122,6 +6123,7 @@ const makeVTextFieldProps = propsFactory({
6122
6123
  type: String,
6123
6124
  default: 'text'
6124
6125
  },
6126
+ modelModifiers: Object,
6125
6127
  ...makeVInputProps(),
6126
6128
  ...makeVFieldProps()
6127
6129
  }, 'v-text-field');
@@ -6196,7 +6198,7 @@ const VTextField = genericComponent()({
6196
6198
  function onInput(e) {
6197
6199
  const el = e.target;
6198
6200
  model.value = el.value;
6199
- if (['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {
6201
+ if (props.modelModifiers?.trim && ['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {
6200
6202
  const caretPosition = [el.selectionStart, el.selectionEnd];
6201
6203
  nextTick(() => {
6202
6204
  el.selectionStart = caretPosition[0];
@@ -6833,8 +6835,8 @@ const VChip = genericComponent()({
6833
6835
  type: Boolean,
6834
6836
  default: true
6835
6837
  },
6836
- onClick: EventProp,
6837
- onClickOnce: EventProp,
6838
+ onClick: EventProp(),
6839
+ onClickOnce: EventProp(),
6838
6840
  ...makeBorderProps(),
6839
6841
  ...makeDensityProps(),
6840
6842
  ...makeElevationProps(),
@@ -7678,8 +7680,8 @@ const VListItem = genericComponent()({
7678
7680
  subtitle: [String, Number, Boolean],
7679
7681
  title: [String, Number, Boolean],
7680
7682
  value: null,
7681
- onClick: EventProp,
7682
- onClickOnce: EventProp,
7683
+ onClick: EventProp(),
7684
+ onClickOnce: EventProp(),
7683
7685
  ...makeBorderProps(),
7684
7686
  ...makeDensityProps(),
7685
7687
  ...makeDimensionProps(),
@@ -8221,7 +8223,8 @@ const VList = genericComponent()({
8221
8223
  }
8222
8224
  function focus(location) {
8223
8225
  if (!contentRef.value) return;
8224
- const focusable = [...contentRef.value.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')].filter(el => !el.hasAttribute('disabled'));
8226
+ const targets = ['button', '[href]', 'input', 'select', 'textarea', '[tabindex]'].map(s => `${s}:not([tabindex="-1"])`).join(', ');
8227
+ const focusable = [...contentRef.value.querySelectorAll(targets)].filter(el => !el.hasAttribute('disabled'));
8225
8228
  const idx = focusable.indexOf(document.activeElement);
8226
8229
  if (!location) {
8227
8230
  if (!contentRef.value.contains(document.activeElement)) {
@@ -8402,6 +8405,7 @@ function useActivator(props, _ref) {
8402
8405
  isActive.value = !isActive.value;
8403
8406
  },
8404
8407
  mouseenter: e => {
8408
+ if (e.sourceCapabilities?.firesTouchEvents) return;
8405
8409
  isHovered = true;
8406
8410
  activatorEl.value = e.currentTarget || e.target;
8407
8411
  runOpenDelay();
@@ -9928,6 +9932,9 @@ const VSelect = genericComponent()({
9928
9932
  });
9929
9933
  });
9930
9934
  const selected = computed(() => selections.value.map(selection => selection.props.value));
9935
+ const isFocused = ref(false);
9936
+ let keyboardLookupPrefix = '';
9937
+ let keyboardLookupLastTime;
9931
9938
  const displayItems = computed(() => {
9932
9939
  if (props.hideSelected) {
9933
9940
  return items.value.filter(item => !selections.value.some(s => s === item));
@@ -9964,6 +9971,26 @@ const VSelect = genericComponent()({
9964
9971
  } else if (e.key === 'End') {
9965
9972
  listRef.value?.focus('last');
9966
9973
  }
9974
+
9975
+ // html select hotkeys
9976
+ const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
9977
+
9978
+ function checkPrintable(e) {
9979
+ const isPrintableChar = e.key.length === 1;
9980
+ const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
9981
+ return isPrintableChar && noModifier;
9982
+ }
9983
+ if (props.multiple || !checkPrintable(e)) return;
9984
+ const now = performance.now();
9985
+ if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
9986
+ keyboardLookupPrefix = '';
9987
+ }
9988
+ keyboardLookupPrefix += e.key.toLowerCase();
9989
+ keyboardLookupLastTime = now;
9990
+ const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));
9991
+ if (item !== undefined) {
9992
+ model.value = [item];
9993
+ }
9967
9994
  }
9968
9995
  function select(item) {
9969
9996
  if (props.multiple) {
@@ -9993,7 +10020,9 @@ const VSelect = genericComponent()({
9993
10020
  useRender(() => {
9994
10021
  const hasChips = !!(props.chips || slots.chip);
9995
10022
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
10023
+ const isDirty = model.value.length > 0;
9996
10024
  const [textFieldProps] = VTextField.filterProps(props);
10025
+ const placeholder = isDirty || !isFocused.value && props.label && !props.persistentPlaceholder ? undefined : props.placeholder;
9997
10026
  return createVNode(VTextField, mergeProps({
9998
10027
  "ref": vTextFieldRef
9999
10028
  }, textFieldProps, {
@@ -10001,8 +10030,10 @@ const VSelect = genericComponent()({
10001
10030
  "onUpdate:modelValue": v => {
10002
10031
  if (v == null) model.value = [];
10003
10032
  },
10033
+ "focused": isFocused.value,
10034
+ "onUpdate:focused": $event => isFocused.value = $event,
10004
10035
  "validationValue": model.externalValue,
10005
- "dirty": model.value.length > 0,
10036
+ "dirty": isDirty,
10006
10037
  "class": ['v-select', {
10007
10038
  'v-select--active-menu': menu.value,
10008
10039
  'v-select--chips': !!props.chips,
@@ -10011,6 +10042,7 @@ const VSelect = genericComponent()({
10011
10042
  }],
10012
10043
  "appendInnerIcon": props.menuIcon,
10013
10044
  "readonly": true,
10045
+ "placeholder": placeholder,
10014
10046
  "onClick:clear": onClear,
10015
10047
  "onMousedown:control": onMousedownControl,
10016
10048
  "onBlur": onBlur,
@@ -10059,7 +10091,8 @@ const VSelect = genericComponent()({
10059
10091
  } = _ref2;
10060
10092
  return props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
10061
10093
  "modelValue": isSelected,
10062
- "ripple": false
10094
+ "ripple": false,
10095
+ "tabindex": "-1"
10063
10096
  }, null) : undefined;
10064
10097
  }
10065
10098
  });
@@ -10386,6 +10419,7 @@ const VAutocomplete = genericComponent()({
10386
10419
  useRender(() => {
10387
10420
  const hasChips = !!(props.chips || slots.chip);
10388
10421
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
10422
+ const isDirty = model.value.length > 0;
10389
10423
  const [textFieldProps] = VTextField.filterProps(props);
10390
10424
  return createVNode(VTextField, mergeProps({
10391
10425
  "ref": vTextFieldRef
@@ -10395,7 +10429,7 @@ const VAutocomplete = genericComponent()({
10395
10429
  if (v == null) model.value = [];
10396
10430
  },
10397
10431
  "validationValue": model.externalValue,
10398
- "dirty": model.value.length > 0,
10432
+ "dirty": isDirty,
10399
10433
  "onInput": onInput,
10400
10434
  "class": ['v-autocomplete', {
10401
10435
  'v-autocomplete--active-menu': menu.value,
@@ -10405,6 +10439,7 @@ const VAutocomplete = genericComponent()({
10405
10439
  }],
10406
10440
  "appendInnerIcon": props.menuIcon,
10407
10441
  "readonly": props.readonly,
10442
+ "placeholder": isDirty ? undefined : props.placeholder,
10408
10443
  "onClick:clear": onClear,
10409
10444
  "onMousedown:control": onMousedownControl,
10410
10445
  "onFocus": () => isFocused.value = true,
@@ -10451,7 +10486,8 @@ const VAutocomplete = genericComponent()({
10451
10486
  } = _ref2;
10452
10487
  return props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
10453
10488
  "modelValue": isSelected,
10454
- "ripple": false
10489
+ "ripple": false,
10490
+ "tabindex": "-1"
10455
10491
  }, null) : undefined;
10456
10492
  },
10457
10493
  title: () => {
@@ -13567,7 +13603,7 @@ const VCombobox = genericComponent()({
13567
13603
  textColorClasses,
13568
13604
  textColorStyles
13569
13605
  } = useTextColor(color);
13570
- const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v || [])), v => {
13606
+ const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
13571
13607
  const transformed = transformOut(v);
13572
13608
  return props.multiple ? transformed : transformed[0] ?? null;
13573
13609
  });
@@ -13745,6 +13781,7 @@ const VCombobox = genericComponent()({
13745
13781
  useRender(() => {
13746
13782
  const hasChips = !!(props.chips || slots.chip);
13747
13783
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
13784
+ const isDirty = model.value.length > 0;
13748
13785
  const [textFieldProps] = VTextField.filterProps(props);
13749
13786
  return createVNode(VTextField, mergeProps({
13750
13787
  "ref": vTextFieldRef
@@ -13754,7 +13791,7 @@ const VCombobox = genericComponent()({
13754
13791
  if (v == null) model.value = [];
13755
13792
  }],
13756
13793
  "validationValue": model.externalValue,
13757
- "dirty": model.value.length > 0,
13794
+ "dirty": isDirty,
13758
13795
  "class": ['v-combobox', {
13759
13796
  'v-combobox--active-menu': menu.value,
13760
13797
  'v-combobox--chips': !!props.chips,
@@ -13763,6 +13800,7 @@ const VCombobox = genericComponent()({
13763
13800
  }],
13764
13801
  "appendInnerIcon": props.items.length ? props.menuIcon : undefined,
13765
13802
  "readonly": props.readonly,
13803
+ "placeholder": isDirty ? undefined : props.placeholder,
13766
13804
  "onClick:clear": onClear,
13767
13805
  "onMousedown:control": onMousedownControl,
13768
13806
  "onFocus": () => isFocused.value = true,
@@ -13809,7 +13847,8 @@ const VCombobox = genericComponent()({
13809
13847
  } = _ref2;
13810
13848
  return props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
13811
13849
  "modelValue": isSelected,
13812
- "ripple": false
13850
+ "ripple": false,
13851
+ "tabindex": "-1"
13813
13852
  }, null) : undefined;
13814
13853
  },
13815
13854
  title: () => {
@@ -14219,7 +14258,6 @@ const VFileInput = genericComponent()({
14219
14258
  multiple: Boolean,
14220
14259
  hint: String,
14221
14260
  persistentHint: Boolean,
14222
- placeholder: String,
14223
14261
  showSize: {
14224
14262
  type: [Boolean, Number],
14225
14263
  default: false,
@@ -17464,6 +17502,7 @@ const VTextarea = genericComponent()({
17464
17502
  validator: v => !isNaN(parseFloat(v))
17465
17503
  },
17466
17504
  suffix: String,
17505
+ modelModifiers: Object,
17467
17506
  ...makeVInputProps(),
17468
17507
  ...makeVFieldProps()
17469
17508
  },
@@ -17528,12 +17567,14 @@ const VTextarea = genericComponent()({
17528
17567
  }
17529
17568
  function onInput(e) {
17530
17569
  const el = e.target;
17531
- const caretPosition = [el.selectionStart, el.selectionEnd];
17532
17570
  model.value = el.value;
17533
- nextTick(() => {
17534
- el.selectionStart = caretPosition[0];
17535
- el.selectionEnd = caretPosition[1];
17536
- });
17571
+ if (props.modelModifiers?.trim) {
17572
+ const caretPosition = [el.selectionStart, el.selectionEnd];
17573
+ nextTick(() => {
17574
+ el.selectionStart = caretPosition[0];
17575
+ el.selectionEnd = caretPosition[1];
17576
+ });
17577
+ }
17537
17578
  }
17538
17579
  const sizerRef = ref();
17539
17580
  function calculateInputHeight() {
@@ -18877,10 +18918,8 @@ const VDataTableRows = genericComponent()({
18877
18918
  type: String,
18878
18919
  default: '$vuetify.noDataText'
18879
18920
  },
18880
- rowHeight: Number
18881
- },
18882
- emits: {
18883
- 'click:row': (event, value) => true
18921
+ rowHeight: Number,
18922
+ 'onClick:row': Function
18884
18923
  },
18885
18924
  setup(props, _ref) {
18886
18925
  let {
@@ -18944,14 +18983,14 @@ const VDataTableRows = genericComponent()({
18944
18983
  };
18945
18984
  return createVNode(Fragment, null, [slots.item ? slots.item(slotProps) : createVNode(VDataTableRow, {
18946
18985
  "key": `item_${item.value}`,
18947
- "onClick": event => {
18986
+ "onClick": expandOnClick.value || props['onClick:row'] ? event => {
18948
18987
  if (expandOnClick.value) {
18949
18988
  toggleExpand(item);
18950
18989
  }
18951
- emit('click:row', event, {
18990
+ props['onClick:row']?.(event, {
18952
18991
  item
18953
18992
  });
18954
- },
18993
+ } : undefined,
18955
18994
  "index": index,
18956
18995
  "item": item
18957
18996
  }, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
@@ -19262,7 +19301,8 @@ const makeVDataTableProps = propsFactory({
19262
19301
  height: [String, Number],
19263
19302
  width: [String, Number],
19264
19303
  fixedHeader: Boolean,
19265
- fixedFooter: Boolean
19304
+ fixedFooter: Boolean,
19305
+ 'onClick:row': Function
19266
19306
  }, 'v-data-table');
19267
19307
  const VDataTable = genericComponent()({
19268
19308
  name: 'VDataTable',
@@ -19283,8 +19323,7 @@ const VDataTable = genericComponent()({
19283
19323
  'update:sortBy': value => true,
19284
19324
  'update:options': value => true,
19285
19325
  'update:groupBy': value => true,
19286
- 'update:expanded': value => true,
19287
- 'click:row': (event, value) => true
19326
+ 'update:expanded': value => true
19288
19327
  },
19289
19328
  setup(props, _ref) {
19290
19329
  let {
@@ -19390,7 +19429,7 @@ const VDataTable = genericComponent()({
19390
19429
  "multiSort": props.multiSort
19391
19430
  }, slots)]), slots.thead?.(), createVNode("tbody", null, [slots.body ? slots.body() : createVNode(VDataTableRows, {
19392
19431
  "items": paginatedItems.value,
19393
- "onClick:row": (event, value) => emit('click:row', event, value)
19432
+ "onClick:row": props['onClick:row']
19394
19433
  }, slots)]), slots.tbody?.(), slots.tfoot?.()])),
19395
19434
  bottom: slots.bottom ?? (() => createVNode(VDataTableFooter, null, {
19396
19435
  prepend: slots['footer.prepend']
@@ -19501,7 +19540,7 @@ const VDataTableVirtual = genericComponent()({
19501
19540
  'update:options': value => true,
19502
19541
  'update:groupBy': value => true,
19503
19542
  'update:expanded': value => true,
19504
- 'click:row': (event, value) => true
19543
+ 'click:row': (e, value) => true
19505
19544
  },
19506
19545
  setup(props, _ref) {
19507
19546
  let {
@@ -19585,8 +19624,10 @@ const VDataTableVirtual = genericComponent()({
19585
19624
  "style": {
19586
19625
  '--v-table-row-height': convertToUnit(itemHeight.value)
19587
19626
  },
19627
+ "fixedHeader": props.fixedHeader,
19628
+ "fixedFooter": props.fixedFooter,
19588
19629
  "height": props.height,
19589
- "fixedHeader": props.fixedHeader
19630
+ "hover": props.hover
19590
19631
  }, {
19591
19632
  top: slots.top,
19592
19633
  wrapper: () => createVNode("div", {
@@ -19612,7 +19653,7 @@ const VDataTableVirtual = genericComponent()({
19612
19653
  }
19613
19654
  }, null)]), createVNode(VDataTableRows, {
19614
19655
  "items": visibleItems.value,
19615
- "onClick:row": (event, value) => emit('click:row', event, value)
19656
+ "onClick:row": props['onClick:row']
19616
19657
  }, slots), createVNode("tr", {
19617
19658
  "style": {
19618
19659
  height: convertToUnit(paddingBottom.value),
@@ -19662,7 +19703,7 @@ const VDataTableServer = genericComponent()({
19662
19703
  'update:options': options => true,
19663
19704
  'update:expanded': options => true,
19664
19705
  'update:groupBy': value => true,
19665
- 'click:row': (event, value) => true
19706
+ 'click:row': (e, value) => true
19666
19707
  },
19667
19708
  setup(props, _ref) {
19668
19709
  let {
@@ -19740,7 +19781,8 @@ const VDataTableServer = genericComponent()({
19740
19781
  }],
19741
19782
  "fixedHeader": props.fixedHeader,
19742
19783
  "fixedFooter": props.fixedFooter,
19743
- "height": props.height
19784
+ "height": props.height,
19785
+ "hover": props.hover
19744
19786
  }, {
19745
19787
  top: slots.top,
19746
19788
  default: slots.default ?? (() => createVNode(Fragment, null, [slots.colgroup?.({
@@ -19757,7 +19799,7 @@ const VDataTableServer = genericComponent()({
19757
19799
  "role": "rowgroup"
19758
19800
  }, [slots.body ? slots.body() : createVNode(VDataTableRows, {
19759
19801
  "items": flatItems.value,
19760
- "onClick:row": (event, value) => emit('click:row', event, value)
19802
+ "onClick:row": props['onClick:row']
19761
19803
  }, slots)]), slots.tbody?.(), slots.tfoot?.()])),
19762
19804
  bottom: slots.bottom ?? (() => createVNode(VDataTableFooter, null, {
19763
19805
  prepend: slots['footer.prepend']
@@ -20420,7 +20462,7 @@ function createVuetify$1() {
20420
20462
  locale
20421
20463
  };
20422
20464
  }
20423
- const version$1 = "3.1.13";
20465
+ const version$1 = "3.1.14";
20424
20466
  createVuetify$1.version = version$1;
20425
20467
 
20426
20468
  // Vue's inject() can only be used in setup
@@ -20432,7 +20474,7 @@ function inject(key) {
20432
20474
  }
20433
20475
  }
20434
20476
 
20435
- const version = "3.1.13";
20477
+ const version = "3.1.14";
20436
20478
 
20437
20479
  const createVuetify = function () {
20438
20480
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};