vuetify 3.1.11 → 3.1.12

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 (58) hide show
  1. package/dist/json/attributes.json +8 -12
  2. package/dist/json/importMap.json +84 -84
  3. package/dist/json/tags.json +0 -1
  4. package/dist/json/web-types.json +19 -25
  5. package/dist/vuetify-labs.css +129 -135
  6. package/dist/vuetify-labs.d.ts +73 -66
  7. package/dist/vuetify-labs.esm.js +65 -36
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +64 -35
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +53 -59
  12. package/dist/vuetify.d.ts +66 -75
  13. package/dist/vuetify.esm.js +44 -30
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +44 -30
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +326 -325
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VBadge/VBadge.css +1 -0
  21. package/lib/components/VBadge/VBadge.sass +1 -0
  22. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  23. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  24. package/lib/components/VCheckbox/index.d.ts +41 -50
  25. package/lib/components/VCombobox/VCombobox.mjs +9 -1
  26. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  27. package/lib/components/VDialog/VDialog.css +11 -18
  28. package/lib/components/VDialog/VDialog.mjs +2 -2
  29. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  30. package/lib/components/VDialog/VDialog.sass +8 -15
  31. package/lib/components/VField/VField.mjs +5 -1
  32. package/lib/components/VField/VField.mjs.map +1 -1
  33. package/lib/components/VGrid/VCol.mjs +2 -2
  34. package/lib/components/VGrid/VCol.mjs.map +1 -1
  35. package/lib/components/VGrid/VRow.mjs +2 -2
  36. package/lib/components/VGrid/VRow.mjs.map +1 -1
  37. package/lib/components/VOverlay/VOverlay.css +1 -1
  38. package/lib/components/VOverlay/VOverlay.sass +1 -1
  39. package/lib/components/VTextField/VTextField.mjs +11 -6
  40. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  41. package/lib/components/index.d.ts +41 -50
  42. package/lib/composables/forwardRefs.mjs +12 -15
  43. package/lib/composables/forwardRefs.mjs.map +1 -1
  44. package/lib/entry-bundler.mjs +1 -1
  45. package/lib/framework.mjs +1 -1
  46. package/lib/index.d.ts +25 -25
  47. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  48. package/lib/labs/VDataTable/VDataTableRow.mjs +5 -4
  49. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  50. package/lib/labs/VDataTable/VDataTableServer.mjs +3 -1
  51. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  52. package/lib/labs/VDataTable/composables/items.mjs +14 -1
  53. package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
  54. package/lib/labs/VDataTable/index.d.ts +32 -16
  55. package/lib/labs/components.d.ts +32 -16
  56. package/lib/util/globals.mjs +1 -1
  57. package/lib/util/globals.mjs.map +1 -1
  58. package/package.json +2 -2
@@ -1,15 +1,15 @@
1
1
  /*!
2
- * Vuetify v3.1.11
2
+ * Vuetify v3.1.12
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize, getCurrentInstance as getCurrentInstance$1, unref, provide, inject as inject$1, onScopeDispose, effectScope, shallowRef, defineComponent as defineComponent$1, camelize, h, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, Fragment, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, cloneVNode, warn, toHandlers, Teleport, createTextVNode, onBeforeUpdate, vModelText, onUpdated } from 'vue';
7
+ import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize, getCurrentInstance as getCurrentInstance$1, unref, provide, inject as inject$1, onScopeDispose, effectScope, shallowRef, defineComponent as defineComponent$1, camelize, h, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, Fragment, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, cloneVNode, warn, toHandlers, Teleport, createTextVNode, onBeforeUpdate, vModelText, withModifiers, onUpdated } from 'vue';
8
8
 
9
9
  const IN_BROWSER = typeof window !== 'undefined';
10
10
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
11
11
  const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
12
- const SUPPORTS_FOCUS_VISIBLE = IN_BROWSER && typeof CSS !== 'undefined' && CSS.supports('selector(:focus-visible)');
12
+ const SUPPORTS_FOCUS_VISIBLE = IN_BROWSER && typeof CSS !== 'undefined' && typeof CSS.supports !== 'undefined' && CSS.supports('selector(:focus-visible)');
13
13
 
14
14
  // Utilities
15
15
  function useResizeObserver(callback) {
@@ -5509,7 +5509,11 @@ const VField = genericComponent()({
5509
5509
  "key": "clear"
5510
5510
  }, {
5511
5511
  default: () => [withDirectives(createVNode("div", {
5512
- "class": "v-field__clearable"
5512
+ "class": "v-field__clearable",
5513
+ "onMousedown": e => {
5514
+ e.preventDefault();
5515
+ e.stopPropagation();
5516
+ }
5513
5517
  }, [slots.clear ? slots.clear() : createVNode(InputIcon, {
5514
5518
  "name": "clear"
5515
5519
  }, null)]), [[vShow, props.dirty]])]
@@ -6015,6 +6019,15 @@ const Refs = Symbol('Forwarded refs');
6015
6019
 
6016
6020
  /** Omit properties starting with P */
6017
6021
 
6022
+ function getDescriptor(obj, key) {
6023
+ let currentObj = obj;
6024
+ while (currentObj) {
6025
+ const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key);
6026
+ if (descriptor) return descriptor;
6027
+ currentObj = Object.getPrototypeOf(currentObj);
6028
+ }
6029
+ return undefined;
6030
+ }
6018
6031
  function forwardRefs(target) {
6019
6032
  for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
6020
6033
  refs[_key - 1] = arguments[_key];
@@ -6042,30 +6055,18 @@ function forwardRefs(target) {
6042
6055
  // Check each ref's own properties
6043
6056
  for (const ref of refs) {
6044
6057
  if (!ref.value) continue;
6045
- const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
6058
+ const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined);
6046
6059
  if (descriptor) return descriptor;
6047
- if ('_' in ref.value && 'setupState' in ref.value._) {
6048
- const descriptor = Reflect.getOwnPropertyDescriptor(ref.value._.setupState, key);
6049
- if (descriptor) return descriptor;
6050
- }
6051
6060
  }
6061
+
6052
6062
  // Recursive search up each ref's prototype
6053
- for (const ref of refs) {
6054
- let obj = ref.value && Object.getPrototypeOf(ref.value);
6055
- while (obj) {
6056
- const descriptor = Reflect.getOwnPropertyDescriptor(obj, key);
6057
- if (descriptor) return descriptor;
6058
- obj = Object.getPrototypeOf(obj);
6059
- }
6060
- }
6061
- // Call forwarded refs' proxies
6062
6063
  for (const ref of refs) {
6063
6064
  const childRefs = ref.value && ref.value[Refs];
6064
6065
  if (!childRefs) continue;
6065
6066
  const queue = childRefs.slice();
6066
6067
  while (queue.length) {
6067
6068
  const ref = queue.shift();
6068
- const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
6069
+ const descriptor = getDescriptor(ref.value, key);
6069
6070
  if (descriptor) return descriptor;
6070
6071
  const childRefs = ref.value && ref.value[Refs];
6071
6072
  if (childRefs) queue.push(...childRefs);
@@ -6167,12 +6168,14 @@ const VTextField = genericComponent()({
6167
6168
  }
6168
6169
  function onInput(e) {
6169
6170
  const el = e.target;
6170
- const caretPosition = [el.selectionStart, el.selectionEnd];
6171
6171
  model.value = el.value;
6172
- nextTick(() => {
6173
- el.selectionStart = caretPosition[0];
6174
- el.selectionEnd = caretPosition[1];
6175
- });
6172
+ if (['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {
6173
+ const caretPosition = [el.selectionStart, el.selectionEnd];
6174
+ nextTick(() => {
6175
+ el.selectionStart = caretPosition[0];
6176
+ el.selectionEnd = caretPosition[1];
6177
+ });
6178
+ }
6176
6179
  }
6177
6180
  useRender(() => {
6178
6181
  const hasCounter = !!(slots.counter || props.counter || props.counterValue);
@@ -6231,6 +6234,9 @@ const VTextField = genericComponent()({
6231
6234
  ...slotProps
6232
6235
  }
6233
6236
  } = _ref3;
6237
+ const placeholder = computed(() => {
6238
+ return (props.persistentPlaceholder || isFocused.value) && !isDirty.value ? props.placeholder : '';
6239
+ });
6234
6240
  const inputNode = withDirectives(createVNode("input", mergeProps({
6235
6241
  "ref": inputRef,
6236
6242
  "value": model.value,
@@ -6239,7 +6245,7 @@ const VTextField = genericComponent()({
6239
6245
  "readonly": isReadonly.value,
6240
6246
  "disabled": isDisabled.value,
6241
6247
  "name": props.name,
6242
- "placeholder": props.placeholder,
6248
+ "placeholder": placeholder.value,
6243
6249
  "size": 1,
6244
6250
  "type": props.type,
6245
6251
  "onFocus": onFocus,
@@ -6586,7 +6592,7 @@ const VCheckbox = genericComponent()({
6586
6592
  inheritAttrs: false,
6587
6593
  props: {
6588
6594
  ...makeVInputProps(),
6589
- ...makeVCheckboxBtnProps()
6595
+ ...omit(makeVCheckboxBtnProps(), ['inline'])
6590
6596
  },
6591
6597
  emits: {
6592
6598
  'update:focused': focused => true
@@ -13516,6 +13522,7 @@ const VCombobox = genericComponent()({
13516
13522
  }
13517
13523
  });
13518
13524
  const selectionIndex = ref(-1);
13525
+ let cleared = false;
13519
13526
  const color = computed(() => vTextFieldRef.value?.color);
13520
13527
  const {
13521
13528
  items,
@@ -13552,11 +13559,17 @@ const VCombobox = genericComponent()({
13552
13559
  }
13553
13560
  }
13554
13561
  if (!val) selectionIndex.value = -1;
13555
- if (isFocused.value) menu.value = true;
13556
13562
  isPristine.value = !val;
13557
13563
  }
13558
13564
  });
13559
13565
  watch(_search, value => {
13566
+ if (cleared) {
13567
+ // wait for clear to finish, VTextField sets _search to null
13568
+ // then search computed triggers and updates _search to ''
13569
+ nextTick(() => cleared = false);
13570
+ } else if (isFocused.value && !menu.value) {
13571
+ menu.value = true;
13572
+ }
13560
13573
  emit('update:search', value);
13561
13574
  });
13562
13575
  watch(model, value => {
@@ -13583,6 +13596,7 @@ const VCombobox = genericComponent()({
13583
13596
  const selection = computed(() => selections.value[selectionIndex.value]);
13584
13597
  const listRef = ref();
13585
13598
  function onClear(e) {
13599
+ cleared = true;
13586
13600
  if (props.openOnClear) {
13587
13601
  menu.value = true;
13588
13602
  }
@@ -13915,9 +13929,9 @@ const VDialog = genericComponent()({
13915
13929
  }, overlayProps, {
13916
13930
  "modelValue": isActive.value,
13917
13931
  "onUpdate:modelValue": $event => isActive.value = $event,
13918
- "aria-role": "dialog",
13919
13932
  "aria-modal": "true",
13920
- "activatorProps": activatorProps.value
13933
+ "activatorProps": activatorProps.value,
13934
+ "role": "dialog"
13921
13935
  }, scopeId), {
13922
13936
  activator: slots.activator,
13923
13937
  default: function () {
@@ -18792,7 +18806,7 @@ const VDataTableRow = defineComponent({
18792
18806
  if (column.key === 'data-table-select') {
18793
18807
  return slots['item.data-table-select']?.(slotProps) ?? createVNode(VCheckboxBtn, {
18794
18808
  "modelValue": isSelected([item]),
18795
- "onClick": () => toggleSelect(item)
18809
+ "onClick": withModifiers(() => toggleSelect(item), ['stop'])
18796
18810
  }, null);
18797
18811
  }
18798
18812
  if (column.key === 'data-table-expand') {
@@ -18800,10 +18814,10 @@ const VDataTableRow = defineComponent({
18800
18814
  "icon": isExpanded(item) ? '$collapse' : '$expand',
18801
18815
  "size": "small",
18802
18816
  "variant": "text",
18803
- "onClick": () => toggleExpand(item)
18817
+ "onClick": withModifiers(() => toggleExpand(item), ['stop'])
18804
18818
  }, null);
18805
18819
  }
18806
- return item.columns[column.key];
18820
+ return getPropertyFromItem(item.columns, column.key);
18807
18821
  }
18808
18822
  }))]));
18809
18823
  }
@@ -19132,6 +19146,19 @@ const makeDataTableItemProps = propsFactory({
19132
19146
  itemValue: 'id'
19133
19147
  })
19134
19148
  }, 'v-data-table-item');
19149
+ function add(obj, key, value) {
19150
+ const path = key.split('.');
19151
+ while (path.length > 1) {
19152
+ const part = path.shift();
19153
+ if (obj[part] == null) {
19154
+ obj[part] = {};
19155
+ }
19156
+ if (typeof obj[part] === 'object') {
19157
+ obj = obj[part];
19158
+ }
19159
+ }
19160
+ obj[path[0]] = value;
19161
+ }
19135
19162
  function useDataTableItems(props, columns) {
19136
19163
  const {
19137
19164
  items
@@ -19141,7 +19168,7 @@ function useDataTableItems(props, columns) {
19141
19168
  ...item,
19142
19169
  type: 'item',
19143
19170
  columns: columns.value.reduce((obj, column) => {
19144
- obj[column.key] = getPropertyFromItem(item.raw, column.value ?? column.key);
19171
+ add(obj, column.key, getPropertyFromItem(item.raw, column.value ?? column.key));
19145
19172
  return obj;
19146
19173
  }, {})
19147
19174
  };
@@ -19679,7 +19706,9 @@ const VDataTableServer = genericComponent()({
19679
19706
  "height": props.height
19680
19707
  }, {
19681
19708
  top: slots.top,
19682
- default: slots.default ?? (() => createVNode(Fragment, null, [createVNode("thead", {
19709
+ default: slots.default ?? (() => createVNode(Fragment, null, [slots.colgroup?.({
19710
+ columns
19711
+ }), createVNode("thead", {
19683
19712
  "class": "v-data-table__thead",
19684
19713
  "role": "rowgroup"
19685
19714
  }, [slots.headers ? slots.headers() : createVNode(VDataTableHeaders, {
@@ -20222,7 +20251,7 @@ function createVuetify$1() {
20222
20251
  locale
20223
20252
  };
20224
20253
  }
20225
- const version$1 = "3.1.11";
20254
+ const version$1 = "3.1.12";
20226
20255
  createVuetify$1.version = version$1;
20227
20256
 
20228
20257
  // Vue's inject() can only be used in setup
@@ -20234,7 +20263,7 @@ function inject(key) {
20234
20263
  }
20235
20264
  }
20236
20265
 
20237
- const version = "3.1.11";
20266
+ const version = "3.1.12";
20238
20267
 
20239
20268
  const createVuetify = function () {
20240
20269
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};