@vuetify/nightly 3.2.0-dev-20230407.0 → 3.2.0-dev-20230415.0

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 (93) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/dist/json/attributes.json +24 -8
  3. package/dist/json/importMap.json +14 -14
  4. package/dist/json/tags.json +5 -1
  5. package/dist/json/web-types.json +83 -47
  6. package/dist/vuetify-labs.css +2299 -2280
  7. package/dist/vuetify-labs.d.ts +548 -498
  8. package/dist/vuetify-labs.esm.js +92 -50
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +92 -50
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +23 -4
  13. package/dist/vuetify.d.ts +430 -406
  14. package/dist/vuetify.esm.js +74 -33
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +74 -33
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +280 -270
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs +5 -2
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  23. package/lib/components/VAutocomplete/index.d.ts +38 -32
  24. package/lib/components/VCheckbox/index.d.ts +14 -14
  25. package/lib/components/VChip/VChip.mjs +2 -2
  26. package/lib/components/VChip/VChip.mjs.map +1 -1
  27. package/lib/components/VChip/index.d.ts +14 -14
  28. package/lib/components/VCombobox/VCombobox.mjs +6 -3
  29. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  30. package/lib/components/VCombobox/index.d.ts +38 -32
  31. package/lib/components/VField/VField.mjs +3 -3
  32. package/lib/components/VField/VField.mjs.map +1 -1
  33. package/lib/components/VField/index.d.ts +20 -20
  34. package/lib/components/VFileInput/VFileInput.mjs +0 -1
  35. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  36. package/lib/components/VFileInput/index.d.ts +50 -56
  37. package/lib/components/VImg/VImg.mjs +3 -3
  38. package/lib/components/VImg/VImg.mjs.map +1 -1
  39. package/lib/components/VImg/index.d.ts +19 -19
  40. package/lib/components/VInput/VInput.mjs +2 -2
  41. package/lib/components/VInput/VInput.mjs.map +1 -1
  42. package/lib/components/VInput/index.d.ts +14 -14
  43. package/lib/components/VList/VList.mjs +2 -1
  44. package/lib/components/VList/VList.mjs.map +1 -1
  45. package/lib/components/VList/VListItem.css +12 -0
  46. package/lib/components/VList/VListItem.mjs +2 -2
  47. package/lib/components/VList/VListItem.mjs.map +1 -1
  48. package/lib/components/VList/VListItem.sass +5 -0
  49. package/lib/components/VList/index.d.ts +14 -14
  50. package/lib/components/VOverlay/useActivator.mjs +1 -0
  51. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  52. package/lib/components/VProgressCircular/VProgressCircular.css +3 -1
  53. package/lib/components/VProgressCircular/VProgressCircular.sass +3 -1
  54. package/lib/components/VProgressCircular/_variables.scss +1 -0
  55. package/lib/components/VProgressLinear/VProgressLinear.css +5 -2
  56. package/lib/components/VProgressLinear/VProgressLinear.sass +3 -0
  57. package/lib/components/VProgressLinear/_variables.scss +1 -1
  58. package/lib/components/VRadioGroup/index.d.ts +14 -14
  59. package/lib/components/VRangeSlider/index.d.ts +14 -14
  60. package/lib/components/VSelect/VSelect.mjs +31 -2
  61. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  62. package/lib/components/VSelect/index.d.ts +38 -32
  63. package/lib/components/VSlider/index.d.ts +14 -14
  64. package/lib/components/VSwitch/index.d.ts +14 -14
  65. package/lib/components/VTextField/VTextField.mjs +2 -2
  66. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  67. package/lib/components/VTextField/index.d.ts +83 -77
  68. package/lib/components/VTextarea/VTextarea.mjs +8 -5
  69. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  70. package/lib/components/VTextarea/index.d.ts +56 -50
  71. package/lib/components/VToolbar/VToolbar.css +2 -0
  72. package/lib/components/VToolbar/VToolbar.sass +2 -0
  73. package/lib/components/index.d.ts +426 -402
  74. package/lib/composables/proxiedModel.mjs +2 -1
  75. package/lib/composables/proxiedModel.mjs.map +1 -1
  76. package/lib/composables/theme.mjs +1 -1
  77. package/lib/composables/theme.mjs.map +1 -1
  78. package/lib/entry-bundler.mjs +1 -1
  79. package/lib/framework.mjs +1 -1
  80. package/lib/index.d.ts +4 -4
  81. package/lib/labs/VDataTable/VDataTable.mjs +4 -4
  82. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  83. package/lib/labs/VDataTable/VDataTableRows.mjs +5 -7
  84. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  85. package/lib/labs/VDataTable/VDataTableServer.mjs +4 -3
  86. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  87. package/lib/labs/VDataTable/VDataTableVirtual.mjs +5 -3
  88. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  89. package/lib/labs/VDataTable/index.d.ts +122 -96
  90. package/lib/labs/components.d.ts +122 -96
  91. package/lib/util/helpers.mjs +1 -1
  92. package/lib/util/helpers.mjs.map +1 -1
  93. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.2.0-dev-20230407.0
2
+ * Vuetify v3.2.0-dev-20230415.0
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,
@@ -17435,6 +17473,7 @@ const VTextarea = genericComponent()({
17435
17473
  validator: v => !isNaN(parseFloat(v))
17436
17474
  },
17437
17475
  suffix: String,
17476
+ modelModifiers: Object,
17438
17477
  ...makeVInputProps(),
17439
17478
  ...makeVFieldProps()
17440
17479
  },
@@ -17499,12 +17538,14 @@ const VTextarea = genericComponent()({
17499
17538
  }
17500
17539
  function onInput(e) {
17501
17540
  const el = e.target;
17502
- const caretPosition = [el.selectionStart, el.selectionEnd];
17503
17541
  model.value = el.value;
17504
- nextTick(() => {
17505
- el.selectionStart = caretPosition[0];
17506
- el.selectionEnd = caretPosition[1];
17507
- });
17542
+ if (props.modelModifiers?.trim) {
17543
+ const caretPosition = [el.selectionStart, el.selectionEnd];
17544
+ nextTick(() => {
17545
+ el.selectionStart = caretPosition[0];
17546
+ el.selectionEnd = caretPosition[1];
17547
+ });
17548
+ }
17508
17549
  }
17509
17550
  const sizerRef = ref();
17510
17551
  function calculateInputHeight() {
@@ -19019,10 +19060,8 @@ const VDataTableRows = genericComponent()({
19019
19060
  type: String,
19020
19061
  default: '$vuetify.noDataText'
19021
19062
  },
19022
- rowHeight: Number
19023
- },
19024
- emits: {
19025
- 'click:row': (event, value) => true
19063
+ rowHeight: Number,
19064
+ 'onClick:row': Function
19026
19065
  },
19027
19066
  setup(props, _ref) {
19028
19067
  let {
@@ -19086,14 +19125,14 @@ const VDataTableRows = genericComponent()({
19086
19125
  };
19087
19126
  return createVNode(Fragment, null, [slots.item ? slots.item(slotProps) : createVNode(VDataTableRow, {
19088
19127
  "key": `item_${item.value}`,
19089
- "onClick": event => {
19128
+ "onClick": expandOnClick.value || props['onClick:row'] ? event => {
19090
19129
  if (expandOnClick.value) {
19091
19130
  toggleExpand(item);
19092
19131
  }
19093
- emit('click:row', event, {
19132
+ props['onClick:row']?.(event, {
19094
19133
  item
19095
19134
  });
19096
- },
19135
+ } : undefined,
19097
19136
  "index": index,
19098
19137
  "item": item
19099
19138
  }, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
@@ -19404,7 +19443,8 @@ const makeVDataTableProps = propsFactory({
19404
19443
  height: [String, Number],
19405
19444
  width: [String, Number],
19406
19445
  fixedHeader: Boolean,
19407
- fixedFooter: Boolean
19446
+ fixedFooter: Boolean,
19447
+ 'onClick:row': Function
19408
19448
  }, 'v-data-table');
19409
19449
  const VDataTable = genericComponent()({
19410
19450
  name: 'VDataTable',
@@ -19425,8 +19465,7 @@ const VDataTable = genericComponent()({
19425
19465
  'update:sortBy': value => true,
19426
19466
  'update:options': value => true,
19427
19467
  'update:groupBy': value => true,
19428
- 'update:expanded': value => true,
19429
- 'click:row': (event, value) => true
19468
+ 'update:expanded': value => true
19430
19469
  },
19431
19470
  setup(props, _ref) {
19432
19471
  let {
@@ -19532,7 +19571,7 @@ const VDataTable = genericComponent()({
19532
19571
  "multiSort": props.multiSort
19533
19572
  }, slots)]), slots.thead?.(), createVNode("tbody", null, [slots.body ? slots.body() : createVNode(VDataTableRows, {
19534
19573
  "items": paginatedItems.value,
19535
- "onClick:row": (event, value) => emit('click:row', event, value)
19574
+ "onClick:row": props['onClick:row']
19536
19575
  }, slots)]), slots.tbody?.(), slots.tfoot?.()])),
19537
19576
  bottom: slots.bottom ?? (() => createVNode(VDataTableFooter, null, {
19538
19577
  prepend: slots['footer.prepend']
@@ -19643,7 +19682,7 @@ const VDataTableVirtual = genericComponent()({
19643
19682
  'update:options': value => true,
19644
19683
  'update:groupBy': value => true,
19645
19684
  'update:expanded': value => true,
19646
- 'click:row': (event, value) => true
19685
+ 'click:row': (e, value) => true
19647
19686
  },
19648
19687
  setup(props, _ref) {
19649
19688
  let {
@@ -19727,8 +19766,10 @@ const VDataTableVirtual = genericComponent()({
19727
19766
  "style": {
19728
19767
  '--v-table-row-height': convertToUnit(itemHeight.value)
19729
19768
  },
19769
+ "fixedHeader": props.fixedHeader,
19770
+ "fixedFooter": props.fixedFooter,
19730
19771
  "height": props.height,
19731
- "fixedHeader": props.fixedHeader
19772
+ "hover": props.hover
19732
19773
  }, {
19733
19774
  top: slots.top,
19734
19775
  wrapper: () => createVNode("div", {
@@ -19754,7 +19795,7 @@ const VDataTableVirtual = genericComponent()({
19754
19795
  }
19755
19796
  }, null)]), createVNode(VDataTableRows, {
19756
19797
  "items": visibleItems.value,
19757
- "onClick:row": (event, value) => emit('click:row', event, value)
19798
+ "onClick:row": props['onClick:row']
19758
19799
  }, slots), createVNode("tr", {
19759
19800
  "style": {
19760
19801
  height: convertToUnit(paddingBottom.value),
@@ -19804,7 +19845,7 @@ const VDataTableServer = genericComponent()({
19804
19845
  'update:options': options => true,
19805
19846
  'update:expanded': options => true,
19806
19847
  'update:groupBy': value => true,
19807
- 'click:row': (event, value) => true
19848
+ 'click:row': (e, value) => true
19808
19849
  },
19809
19850
  setup(props, _ref) {
19810
19851
  let {
@@ -19882,7 +19923,8 @@ const VDataTableServer = genericComponent()({
19882
19923
  }],
19883
19924
  "fixedHeader": props.fixedHeader,
19884
19925
  "fixedFooter": props.fixedFooter,
19885
- "height": props.height
19926
+ "height": props.height,
19927
+ "hover": props.hover
19886
19928
  }, {
19887
19929
  top: slots.top,
19888
19930
  default: slots.default ?? (() => createVNode(Fragment, null, [slots.colgroup?.({
@@ -19899,7 +19941,7 @@ const VDataTableServer = genericComponent()({
19899
19941
  "role": "rowgroup"
19900
19942
  }, [slots.body ? slots.body() : createVNode(VDataTableRows, {
19901
19943
  "items": flatItems.value,
19902
- "onClick:row": (event, value) => emit('click:row', event, value)
19944
+ "onClick:row": props['onClick:row']
19903
19945
  }, slots)]), slots.tbody?.(), slots.tfoot?.()])),
19904
19946
  bottom: slots.bottom ?? (() => createVNode(VDataTableFooter, null, {
19905
19947
  prepend: slots['footer.prepend']
@@ -20391,7 +20433,7 @@ function createVuetify$1() {
20391
20433
  locale
20392
20434
  };
20393
20435
  }
20394
- const version$1 = "3.2.0-dev-20230407.0";
20436
+ const version$1 = "3.2.0-dev-20230415.0";
20395
20437
  createVuetify$1.version = version$1;
20396
20438
 
20397
20439
  // Vue's inject() can only be used in setup
@@ -20403,7 +20445,7 @@ function inject(key) {
20403
20445
  }
20404
20446
  }
20405
20447
 
20406
- const version = "3.2.0-dev-20230407.0";
20448
+ const version = "3.2.0-dev-20230415.0";
20407
20449
 
20408
20450
  const createVuetify = function () {
20409
20451
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};