vuetify 3.0.7 → 3.1.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 (175) hide show
  1. package/_settings.scss +1 -0
  2. package/dist/_component-variables-labs.sass +1 -0
  3. package/dist/json/attributes.json +452 -4
  4. package/dist/json/importMap-labs.json +28 -0
  5. package/dist/json/importMap.json +50 -50
  6. package/dist/json/tags.json +154 -8
  7. package/dist/json/web-types.json +1514 -18
  8. package/dist/vuetify-labs.d.ts +875 -0
  9. package/dist/vuetify-labs.js +9748 -0
  10. package/dist/vuetify.css +34 -55
  11. package/dist/vuetify.d.ts +169 -192
  12. package/dist/vuetify.esm.js +141 -103
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +140 -102
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +783 -777
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/blueprints/index.d.ts +3 -2
  20. package/lib/blueprints/md1.d.ts +3 -2
  21. package/lib/blueprints/md2.d.ts +3 -2
  22. package/lib/blueprints/md3.d.ts +3 -2
  23. package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
  24. package/lib/components/VAlert/index.d.ts +1 -0
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs +8 -10
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/index.d.ts +3 -12
  28. package/lib/components/VAvatar/VAvatar.mjs +2 -1
  29. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  30. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +23 -20
  31. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  32. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +21 -2
  33. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  34. package/lib/components/VBreadcrumbs/index.d.ts +4 -15
  35. package/lib/components/VCombobox/VCombobox.mjs +8 -10
  36. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  37. package/lib/components/VCombobox/index.d.ts +3 -12
  38. package/lib/components/VDivider/VDivider.css +1 -1
  39. package/lib/components/VDivider/VDivider.sass +1 -0
  40. package/lib/components/VDivider/_variables.scss +2 -1
  41. package/lib/components/VIcon/VIcon.mjs +25 -20
  42. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  43. package/lib/components/VIcon/index.d.ts +4 -8
  44. package/lib/components/VList/VListItem.css +0 -4
  45. package/lib/components/VList/VListItem.sass +12 -6
  46. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +10 -2
  47. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  48. package/lib/components/VNavigationDrawer/index.d.ts +11 -3
  49. package/lib/components/VSelect/VSelect.mjs +11 -8
  50. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  51. package/lib/components/VTable/VTable.css +12 -29
  52. package/lib/components/VTable/VTable.mjs +3 -3
  53. package/lib/components/VTable/VTable.mjs.map +1 -1
  54. package/lib/components/VTable/VTable.sass +10 -17
  55. package/lib/components/VTable/_variables.scss +4 -2
  56. package/lib/components/index.d.ts +26 -50
  57. package/lib/composables/filter.mjs +18 -10
  58. package/lib/composables/filter.mjs.map +1 -1
  59. package/lib/composables/icons.mjs +12 -7
  60. package/lib/composables/icons.mjs.map +1 -1
  61. package/lib/entry-bundler.mjs +1 -1
  62. package/lib/framework.mjs +1 -1
  63. package/lib/iconsets/fa-svg.d.ts +3 -2
  64. package/lib/iconsets/fa.d.ts +3 -2
  65. package/lib/iconsets/fa.mjs +2 -1
  66. package/lib/iconsets/fa.mjs.map +1 -1
  67. package/lib/iconsets/fa4.d.ts +3 -2
  68. package/lib/iconsets/fa4.mjs +2 -1
  69. package/lib/iconsets/fa4.mjs.map +1 -1
  70. package/lib/iconsets/md.d.ts +3 -2
  71. package/lib/iconsets/md.mjs +2 -1
  72. package/lib/iconsets/md.mjs.map +1 -1
  73. package/lib/iconsets/mdi-svg.d.ts +3 -2
  74. package/lib/iconsets/mdi-svg.mjs +2 -1
  75. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  76. package/lib/iconsets/mdi.d.ts +3 -2
  77. package/lib/iconsets/mdi.mjs +2 -1
  78. package/lib/iconsets/mdi.mjs.map +1 -1
  79. package/lib/index.d.ts +16 -15
  80. package/lib/labs/VDataTable/VDataTable.css +119 -0
  81. package/lib/labs/VDataTable/VDataTable.mjs +146 -0
  82. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -0
  83. package/lib/labs/VDataTable/VDataTable.sass +106 -0
  84. package/lib/labs/VDataTable/VDataTableColumn.mjs +37 -0
  85. package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -0
  86. package/lib/labs/VDataTable/VDataTableFooter.css +22 -0
  87. package/lib/labs/VDataTable/VDataTableFooter.mjs +105 -0
  88. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -0
  89. package/lib/labs/VDataTable/VDataTableFooter.sass +23 -0
  90. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +88 -0
  91. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -0
  92. package/lib/labs/VDataTable/VDataTableHeaders.mjs +143 -0
  93. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -0
  94. package/lib/labs/VDataTable/VDataTableRow.mjs +75 -0
  95. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -0
  96. package/lib/labs/VDataTable/VDataTableRows.mjs +87 -0
  97. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -0
  98. package/lib/labs/VDataTable/VDataTableServer.mjs +124 -0
  99. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -0
  100. package/lib/labs/VDataTable/VDataTableVirtual.mjs +154 -0
  101. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -0
  102. package/lib/labs/VDataTable/_variables.scss +6 -0
  103. package/lib/labs/VDataTable/composables/expand.mjs +51 -0
  104. package/lib/labs/VDataTable/composables/expand.mjs.map +1 -0
  105. package/lib/labs/VDataTable/composables/group.mjs +124 -0
  106. package/lib/labs/VDataTable/composables/group.mjs.map +1 -0
  107. package/lib/labs/VDataTable/composables/headers.mjs +152 -0
  108. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -0
  109. package/lib/labs/VDataTable/composables/items.mjs +30 -0
  110. package/lib/labs/VDataTable/composables/items.mjs.map +1 -0
  111. package/lib/labs/VDataTable/composables/options.mjs +44 -0
  112. package/lib/labs/VDataTable/composables/options.mjs.map +1 -0
  113. package/lib/labs/VDataTable/composables/paginate.mjs +62 -0
  114. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -0
  115. package/lib/labs/VDataTable/composables/select.mjs +57 -0
  116. package/lib/labs/VDataTable/composables/select.mjs.map +1 -0
  117. package/lib/labs/VDataTable/composables/sort.mjs +109 -0
  118. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -0
  119. package/lib/labs/VDataTable/composables/virtual.mjs +77 -0
  120. package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -0
  121. package/lib/labs/VDataTable/index.d.ts +705 -0
  122. package/lib/labs/VDataTable/index.mjs +6 -0
  123. package/lib/labs/VDataTable/index.mjs.map +1 -0
  124. package/lib/labs/VDataTable/types.mjs +2 -0
  125. package/lib/labs/VDataTable/types.mjs.map +1 -0
  126. package/lib/labs/VVirtualScroll/VVirtualScroll.css +11 -0
  127. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +118 -0
  128. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -0
  129. package/lib/{components → labs}/VVirtualScroll/VVirtualScroll.sass +0 -5
  130. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs +35 -0
  131. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -0
  132. package/lib/labs/VVirtualScroll/index.d.ts +154 -0
  133. package/lib/labs/VVirtualScroll/index.mjs +2 -0
  134. package/lib/labs/VVirtualScroll/index.mjs.map +1 -0
  135. package/lib/labs/components.d.ts +856 -0
  136. package/lib/labs/components.mjs +3 -0
  137. package/lib/labs/components.mjs.map +1 -0
  138. package/lib/labs/index.mjs +3 -0
  139. package/lib/labs/index.mjs.map +1 -0
  140. package/lib/util/defineComponent.mjs +4 -0
  141. package/lib/util/defineComponent.mjs.map +1 -1
  142. package/lib/util/helpers.mjs +0 -38
  143. package/lib/util/helpers.mjs.map +1 -1
  144. package/package.json +4 -2
  145. package/lib/components/VDataTable/MobileRow.mjs +0 -63
  146. package/lib/components/VDataTable/MobileRow.mjs.map +0 -1
  147. package/lib/components/VDataTable/Row.mjs +0 -57
  148. package/lib/components/VDataTable/Row.mjs.map +0 -1
  149. package/lib/components/VDataTable/RowGroup.mjs +0 -48
  150. package/lib/components/VDataTable/RowGroup.mjs.map +0 -1
  151. package/lib/components/VDataTable/VDataTable.mjs +0 -577
  152. package/lib/components/VDataTable/VDataTable.mjs.map +0 -1
  153. package/lib/components/VDataTable/VDataTable.sass +0 -98
  154. package/lib/components/VDataTable/VDataTableHeader.mjs +0 -42
  155. package/lib/components/VDataTable/VDataTableHeader.mjs.map +0 -1
  156. package/lib/components/VDataTable/VDataTableHeader.sass +0 -80
  157. package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs +0 -96
  158. package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +0 -1
  159. package/lib/components/VDataTable/VDataTableHeaderMobile.mjs +0 -89
  160. package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +0 -1
  161. package/lib/components/VDataTable/VEditDialog.mjs +0 -127
  162. package/lib/components/VDataTable/VEditDialog.mjs.map +0 -1
  163. package/lib/components/VDataTable/VEditDialog.sass +0 -22
  164. package/lib/components/VDataTable/VVirtualTable.mjs +0 -132
  165. package/lib/components/VDataTable/VVirtualTable.mjs.map +0 -1
  166. package/lib/components/VDataTable/VVirtualTable.sass +0 -13
  167. package/lib/components/VDataTable/_variables.scss +0 -24
  168. package/lib/components/VDataTable/index.mjs +0 -21
  169. package/lib/components/VDataTable/index.mjs.map +0 -1
  170. package/lib/components/VDataTable/mixins/header.mjs +0 -71
  171. package/lib/components/VDataTable/mixins/header.mjs.map +0 -1
  172. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +0 -108
  173. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +0 -1
  174. package/lib/components/VVirtualScroll/index.mjs +0 -4
  175. package/lib/components/VVirtualScroll/index.mjs.map +0 -1
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.0.7
2
+ * Vuetify v3.1.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -260,15 +260,6 @@
260
260
  }
261
261
  return out;
262
262
  }
263
- function flattenFragments(nodes) {
264
- return nodes.map(node => {
265
- if (node.type === vue.Fragment) {
266
- return flattenFragments(node.children);
267
- } else {
268
- return node;
269
- }
270
- }).flat();
271
- }
272
263
  function toKebabCase() {
273
264
  let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
274
265
  return str.replace(/[^a-z]/gi, '-').replace(/\B([A-Z])/g, '-$1').toLowerCase();
@@ -3699,7 +3690,8 @@
3699
3690
  checkboxIndeterminate: 'mdi-minus-box',
3700
3691
  delimiter: 'mdi-circle',
3701
3692
  // for carousel
3702
- sort: 'mdi-arrow-up',
3693
+ sortAsc: 'mdi-arrow-up',
3694
+ sortDesc: 'mdi-arrow-down',
3703
3695
  expand: 'mdi-chevron-down',
3704
3696
  menu: 'mdi-menu',
3705
3697
  subgroup: 'mdi-menu-down',
@@ -3732,8 +3724,7 @@
3732
3724
  const IconSymbol = Symbol.for('vuetify:icons');
3733
3725
  const makeIconProps = propsFactory({
3734
3726
  icon: {
3735
- type: IconValue,
3736
- required: true
3727
+ type: IconValue
3737
3728
  },
3738
3729
  // Could not remove this and use makeTagProps, types complained because it is not required
3739
3730
  tag: {
@@ -3744,10 +3735,14 @@
3744
3735
  const VComponentIcon = defineComponent({
3745
3736
  name: 'VComponentIcon',
3746
3737
  props: makeIconProps(),
3747
- setup(props) {
3738
+ setup(props, _ref) {
3739
+ let {
3740
+ slots
3741
+ } = _ref;
3748
3742
  return () => {
3743
+ var _slots$default;
3749
3744
  return vue.createVNode(props.tag, null, {
3750
- default: () => [vue.createVNode(props.icon, null, null)]
3745
+ default: () => [props.icon ? vue.createVNode(props.icon, null, null) : (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]
3751
3746
  });
3752
3747
  };
3753
3748
  }
@@ -3756,10 +3751,10 @@
3756
3751
  name: 'VSvgIcon',
3757
3752
  inheritAttrs: false,
3758
3753
  props: makeIconProps(),
3759
- setup(props, _ref) {
3754
+ setup(props, _ref2) {
3760
3755
  let {
3761
3756
  attrs
3762
- } = _ref;
3757
+ } = _ref2;
3763
3758
  return () => {
3764
3759
  return vue.createVNode(props.tag, vue.mergeProps(attrs, {
3765
3760
  "style": null
@@ -3824,7 +3819,9 @@
3824
3819
  if (!icons) throw new Error('Missing Vuetify Icons provide!');
3825
3820
  const iconData = vue.computed(() => {
3826
3821
  const iconAlias = vue.isRef(props) ? props.value : props.icon;
3827
- if (!iconAlias) throw new Error('Icon value is undefined or null');
3822
+ if (!iconAlias) return {
3823
+ component: VComponentIcon
3824
+ };
3828
3825
  let icon = iconAlias;
3829
3826
  if (typeof icon === 'string') {
3830
3827
  icon = icon.trim();
@@ -3908,10 +3905,10 @@
3908
3905
  let slotIcon;
3909
3906
  if (slots.default) {
3910
3907
  slotIcon = vue.computed(() => {
3911
- var _slots$default, _flattenFragments$fil;
3908
+ var _slots$default, _slot$filter$;
3912
3909
  const slot = (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots);
3913
3910
  if (!slot) return;
3914
- return (_flattenFragments$fil = flattenFragments(slot).filter(node => node.children && typeof node.children === 'string')[0]) == null ? void 0 : _flattenFragments$fil.children;
3911
+ return (_slot$filter$ = slot.filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]) == null ? void 0 : _slot$filter$.children;
3915
3912
  });
3916
3913
  }
3917
3914
  const {
@@ -3927,22 +3924,27 @@
3927
3924
  textColorClasses,
3928
3925
  textColorStyles
3929
3926
  } = useTextColor(vue.toRef(props, 'color'));
3930
- useRender(() => vue.createVNode(iconData.value.component, {
3931
- "tag": props.tag,
3932
- "icon": iconData.value.icon,
3933
- "class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
3934
- 'v-icon--clickable': !!attrs.onClick,
3935
- 'v-icon--start': props.start,
3936
- 'v-icon--end': props.end
3937
- }],
3938
- "style": [!sizeClasses.value ? {
3939
- fontSize: convertToUnit(props.size),
3940
- height: convertToUnit(props.size),
3941
- width: convertToUnit(props.size)
3942
- } : undefined, textColorStyles.value],
3943
- "role": attrs.onClick ? 'button' : undefined,
3944
- "aria-hidden": !attrs.onClick
3945
- }, null));
3927
+ useRender(() => {
3928
+ var _slots$default2;
3929
+ return vue.createVNode(iconData.value.component, {
3930
+ "tag": props.tag,
3931
+ "icon": iconData.value.icon,
3932
+ "class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
3933
+ 'v-icon--clickable': !!attrs.onClick,
3934
+ 'v-icon--start': props.start,
3935
+ 'v-icon--end': props.end
3936
+ }],
3937
+ "style": [!sizeClasses.value ? {
3938
+ fontSize: convertToUnit(props.size),
3939
+ height: convertToUnit(props.size),
3940
+ width: convertToUnit(props.size)
3941
+ } : undefined, textColorStyles.value],
3942
+ "role": attrs.onClick ? 'button' : undefined,
3943
+ "aria-hidden": !attrs.onClick
3944
+ }, {
3945
+ default: () => [(_slots$default2 = slots.default) == null ? void 0 : _slots$default2.call(slots)]
3946
+ });
3947
+ });
3946
3948
  return {};
3947
3949
  }
3948
3950
  });
@@ -6643,7 +6645,8 @@
6643
6645
  default: () => [props.image ? vue.createVNode(VImg, {
6644
6646
  "key": "image",
6645
6647
  "src": props.image,
6646
- "alt": ""
6648
+ "alt": "",
6649
+ "cover": true
6647
6650
  }, null) : props.icon ? vue.createVNode(VIcon, {
6648
6651
  "key": "icon",
6649
6652
  "icon": props.icon
@@ -9924,14 +9927,17 @@
9924
9927
  default: () => [!items.value.length && !props.hideNoData && (((_slots$noData = slots['no-data']) == null ? void 0 : _slots$noData.call(slots)) ?? vue.createVNode(VListItem, {
9925
9928
  "title": t(props.noDataText)
9926
9929
  }, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), items.value.map((item, index) => {
9927
- var _slots$item;
9928
- return ((_slots$item = slots.item) == null ? void 0 : _slots$item.call(slots, {
9929
- item,
9930
- index,
9931
- props: vue.mergeProps(item.props, {
9932
- onClick: () => select(item)
9933
- })
9934
- })) ?? vue.createVNode(VListItem, vue.mergeProps({
9930
+ if (slots.item) {
9931
+ var _slots$item;
9932
+ return (_slots$item = slots.item) == null ? void 0 : _slots$item.call(slots, {
9933
+ item,
9934
+ index,
9935
+ props: vue.mergeProps(item.props, {
9936
+ onClick: () => select(item)
9937
+ })
9938
+ });
9939
+ }
9940
+ return vue.createVNode(VListItem, vue.mergeProps({
9935
9941
  "key": index
9936
9942
  }, item.props, {
9937
9943
  "onClick": () => select(item)
@@ -10022,7 +10028,7 @@
10022
10028
  const customFiltersLength = Object.keys((options == null ? void 0 : options.customKeyFilter) ?? {}).length;
10023
10029
  if (!(items != null && items.length)) return array;
10024
10030
  loop: for (let i = 0; i < items.length; i++) {
10025
- const item = items[i];
10031
+ const item = items[i].raw;
10026
10032
  const customMatches = {};
10027
10033
  const defaultMatches = {};
10028
10034
  let match = -1;
@@ -10064,34 +10070,43 @@
10064
10070
  }
10065
10071
  function useFilter(props, items, query) {
10066
10072
  const strQuery = vue.computed(() => typeof (query == null ? void 0 : query.value) !== 'string' && typeof (query == null ? void 0 : query.value) !== 'number' ? '' : String(query.value));
10067
- const filteredItems = vue.computed(() => {
10073
+ const filteredItems = vue.ref([]);
10074
+ const filteredMatches = vue.ref(new Map());
10075
+ vue.watchEffect(() => {
10076
+ filteredItems.value = [];
10077
+ filteredMatches.value = new Map();
10068
10078
  const transformedItems = vue.unref(items);
10069
- const matches = filterItems(transformedItems, strQuery.value, {
10079
+ const results = filterItems(transformedItems, strQuery.value, {
10070
10080
  customKeyFilter: props.customKeyFilter,
10071
10081
  default: props.customFilter,
10072
10082
  filterKeys: props.filterKeys,
10073
10083
  filterMode: props.filterMode,
10074
10084
  noFilter: props.noFilter
10075
10085
  });
10076
- return matches.map(_ref => {
10086
+ results.forEach(_ref => {
10077
10087
  let {
10078
10088
  index,
10079
10089
  matches
10080
10090
  } = _ref;
10081
- return {
10082
- item: transformedItems[index],
10083
- matches
10084
- };
10091
+ const item = transformedItems[index];
10092
+ filteredItems.value.push(item);
10093
+ filteredMatches.value.set(item.value, matches);
10085
10094
  });
10086
10095
  });
10096
+ function getMatches(item) {
10097
+ return filteredMatches.value.get(item.value);
10098
+ }
10087
10099
  return {
10088
- filteredItems
10100
+ filteredItems,
10101
+ filteredMatches,
10102
+ getMatches
10089
10103
  };
10090
10104
  }
10091
10105
 
10092
10106
  // Types
10093
10107
 
10094
10108
  function highlightResult$1(text, matches, length) {
10109
+ if (matches == null) return text;
10095
10110
  if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');
10096
10111
  return typeof matches === 'number' && ~matches ? vue.createVNode(vue.Fragment, null, [vue.createVNode("span", {
10097
10112
  "class": "v-autocomplete__unmask"
@@ -10145,7 +10160,8 @@
10145
10160
  return props.multiple ? transformed : transformed[0] ?? null;
10146
10161
  });
10147
10162
  const {
10148
- filteredItems
10163
+ filteredItems,
10164
+ getMatches
10149
10165
  } = useFilter(props, items, vue.computed(() => isPristine.value ? undefined : search.value));
10150
10166
  const selections = vue.computed(() => {
10151
10167
  return model.value.map(v => {
@@ -10293,12 +10309,8 @@
10293
10309
  }, {
10294
10310
  default: () => [!filteredItems.value.length && !props.hideNoData && (((_slots$noData = slots['no-data']) == null ? void 0 : _slots$noData.call(slots)) ?? vue.createVNode(VListItem, {
10295
10311
  "title": t(props.noDataText)
10296
- }, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), filteredItems.value.map((_ref2, index) => {
10312
+ }, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), filteredItems.value.map((item, index) => {
10297
10313
  var _slots$item;
10298
- let {
10299
- item,
10300
- matches
10301
- } = _ref2;
10302
10314
  return ((_slots$item = slots.item) == null ? void 0 : _slots$item.call(slots, {
10303
10315
  item,
10304
10316
  index,
@@ -10310,18 +10322,18 @@
10310
10322
  }, item.props, {
10311
10323
  "onClick": () => select(item)
10312
10324
  }), {
10313
- prepend: _ref3 => {
10325
+ prepend: _ref2 => {
10314
10326
  let {
10315
10327
  isSelected
10316
- } = _ref3;
10328
+ } = _ref2;
10317
10329
  return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
10318
10330
  "modelValue": isSelected,
10319
10331
  "ripple": false
10320
10332
  }, null) : undefined;
10321
10333
  },
10322
10334
  title: () => {
10323
- var _search$value;
10324
- return isPristine.value ? item.title : highlightResult$1(item.title, matches.title, ((_search$value = search.value) == null ? void 0 : _search$value.length) ?? 0);
10335
+ var _getMatches, _search$value;
10336
+ return isPristine.value ? item.title : highlightResult$1(item.title, (_getMatches = getMatches(item)) == null ? void 0 : _getMatches.title, ((_search$value = search.value) == null ? void 0 : _search$value.length) ?? 0);
10325
10337
  }
10326
10338
  });
10327
10339
  }), (_slots$appendItem = slots['append-item']) == null ? void 0 : _slots$appendItem.call(slots)]
@@ -10705,7 +10717,24 @@
10705
10717
  }
10706
10718
  });
10707
10719
 
10708
- const VBreadcrumbsDivider = createSimpleFunctional('v-breadcrumbs-divider', 'li');
10720
+ const VBreadcrumbsDivider = defineComponent({
10721
+ name: 'VBreadcrumbsDivider',
10722
+ props: {
10723
+ divider: [Number, String]
10724
+ },
10725
+ setup(props, _ref) {
10726
+ let {
10727
+ slots
10728
+ } = _ref;
10729
+ useRender(() => {
10730
+ var _slots$default;
10731
+ return vue.createVNode("li", {
10732
+ "class": "v-breadcrumbs-divider"
10733
+ }, [(slots == null ? void 0 : (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)) ?? props.divider]);
10734
+ });
10735
+ return {};
10736
+ }
10737
+ });
10709
10738
 
10710
10739
  const VBreadcrumbsItem = defineComponent({
10711
10740
  name: 'VBreadcrumbsItem',
@@ -10798,6 +10827,9 @@
10798
10827
  roundedClasses
10799
10828
  } = useRounded(props);
10800
10829
  provideDefaults({
10830
+ VBreadcrumbsDivider: {
10831
+ divider: vue.toRef(props, 'divider')
10832
+ },
10801
10833
  VBreadcrumbsItem: {
10802
10834
  activeClass: vue.toRef(props, 'activeClass'),
10803
10835
  activeColor: vue.toRef(props, 'activeColor'),
@@ -10824,28 +10856,28 @@
10824
10856
  default: () => [vue.createVNode("div", {
10825
10857
  "class": "v-breadcrumbs__prepend"
10826
10858
  }, [slots.prepend ? slots.prepend() : props.icon && vue.createVNode(VIcon, null, null)])]
10827
- }), props.items.map((item, index, array) => {
10828
- var _slots$divider;
10829
- return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
10830
- "key": index,
10831
- "disabled": index >= array.length - 1
10832
- }, typeof item === 'string' ? {
10833
- title: item
10834
- } : item), {
10835
- default: slots.title ? () => {
10836
- var _slots$title;
10837
- return (_slots$title = slots.title) == null ? void 0 : _slots$title.call(slots, {
10838
- item,
10839
- index
10840
- });
10841
- } : undefined
10842
- }), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
10843
- default: () => [((_slots$divider = slots.divider) == null ? void 0 : _slots$divider.call(slots, {
10859
+ }), props.items.map((item, index, array) => vue.createVNode(vue.Fragment, null, [vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
10860
+ "key": index,
10861
+ "disabled": index >= array.length - 1
10862
+ }, typeof item === 'string' ? {
10863
+ title: item
10864
+ } : item), {
10865
+ default: slots.title ? () => {
10866
+ var _slots$title;
10867
+ return (_slots$title = slots.title) == null ? void 0 : _slots$title.call(slots, {
10844
10868
  item,
10845
10869
  index
10846
- })) ?? props.divider]
10847
- })]);
10848
- }), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]
10870
+ });
10871
+ } : undefined
10872
+ }), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
10873
+ default: slots.divider ? () => {
10874
+ var _slots$divider;
10875
+ return (_slots$divider = slots.divider) == null ? void 0 : _slots$divider.call(slots, {
10876
+ item,
10877
+ index
10878
+ });
10879
+ } : undefined
10880
+ })])), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]
10849
10881
  });
10850
10882
  });
10851
10883
  return {};
@@ -13349,6 +13381,7 @@
13349
13381
  // Types
13350
13382
 
13351
13383
  function highlightResult(text, matches, length) {
13384
+ if (matches == null) return text;
13352
13385
  if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');
13353
13386
  return typeof matches === 'number' && ~matches ? vue.createVNode(vue.Fragment, null, [vue.createVNode("span", {
13354
13387
  "class": "v-combobox__unmask"
@@ -13450,7 +13483,8 @@
13450
13483
  }
13451
13484
  });
13452
13485
  const {
13453
- filteredItems
13486
+ filteredItems,
13487
+ getMatches
13454
13488
  } = useFilter(props, items, vue.computed(() => isPristine.value ? undefined : search.value));
13455
13489
  const selections = vue.computed(() => {
13456
13490
  return model.value.map(v => {
@@ -13627,12 +13661,8 @@
13627
13661
  }, {
13628
13662
  default: () => [!filteredItems.value.length && !props.hideNoData && (((_slots$noData = slots['no-data']) == null ? void 0 : _slots$noData.call(slots)) ?? vue.createVNode(VListItem, {
13629
13663
  "title": t(props.noDataText)
13630
- }, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), filteredItems.value.map((_ref2, index) => {
13664
+ }, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), filteredItems.value.map((item, index) => {
13631
13665
  var _slots$item;
13632
- let {
13633
- item,
13634
- matches
13635
- } = _ref2;
13636
13666
  return ((_slots$item = slots.item) == null ? void 0 : _slots$item.call(slots, {
13637
13667
  item,
13638
13668
  index,
@@ -13644,18 +13674,18 @@
13644
13674
  }, item.props, {
13645
13675
  "onClick": () => select(item)
13646
13676
  }), {
13647
- prepend: _ref3 => {
13677
+ prepend: _ref2 => {
13648
13678
  let {
13649
13679
  isSelected
13650
- } = _ref3;
13680
+ } = _ref2;
13651
13681
  return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
13652
13682
  "modelValue": isSelected,
13653
13683
  "ripple": false
13654
13684
  }, null) : undefined;
13655
13685
  },
13656
13686
  title: () => {
13657
- var _search$value;
13658
- return isPristine.value ? item.title : highlightResult(item.title, matches.title, ((_search$value = search.value) == null ? void 0 : _search$value.length) ?? 0);
13687
+ var _getMatches, _search$value;
13688
+ return isPristine.value ? item.title : highlightResult(item.title, (_getMatches = getMatches(item)) == null ? void 0 : _getMatches.title, ((_search$value = search.value) == null ? void 0 : _search$value.length) ?? 0);
13659
13689
  }
13660
13690
  });
13661
13691
  }), (_slots$appendItem = slots['append-item']) == null ? void 0 : _slots$appendItem.call(slots)]
@@ -15261,7 +15291,10 @@
15261
15291
  default: null
15262
15292
  },
15263
15293
  permanent: Boolean,
15264
- rail: Boolean,
15294
+ rail: {
15295
+ type: Boolean,
15296
+ default: null
15297
+ },
15265
15298
  railWidth: {
15266
15299
  type: [Number, String],
15267
15300
  default: 56
@@ -15293,11 +15326,13 @@
15293
15326
  ...makeThemeProps()
15294
15327
  },
15295
15328
  emits: {
15296
- 'update:modelValue': val => true
15329
+ 'update:modelValue': val => true,
15330
+ 'update:rail': val => true
15297
15331
  },
15298
15332
  setup(props, _ref) {
15299
15333
  let {
15300
15334
  attrs,
15335
+ emit,
15301
15336
  slots
15302
15337
  } = _ref;
15303
15338
  const {
@@ -15337,6 +15372,9 @@
15337
15372
  });
15338
15373
  const isTemporary = vue.computed(() => !props.permanent && (mobile.value || props.temporary));
15339
15374
  const isSticky = vue.computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');
15375
+ if (props.expandOnHover && props.rail != null) {
15376
+ vue.watch(isHovering, val => emit('update:rail', !val));
15377
+ }
15340
15378
  if (!props.disableResizeWatcher) {
15341
15379
  vue.watch(isTemporary, val => !props.permanent && vue.nextTick(() => isActive.value = !val));
15342
15380
  }
@@ -17317,7 +17355,7 @@
17317
17355
  densityClasses
17318
17356
  } = useDensity(props);
17319
17357
  useRender(() => {
17320
- var _slots$top, _slots$bottom;
17358
+ var _slots$top, _slots$wrapper, _slots$bottom;
17321
17359
  return vue.createVNode(props.tag, {
17322
17360
  "class": ['v-table', {
17323
17361
  'v-table--fixed-height': !!props.height,
@@ -17328,12 +17366,12 @@
17328
17366
  'v-table--hover': props.hover
17329
17367
  }, themeClasses.value, densityClasses.value]
17330
17368
  }, {
17331
- default: () => [(_slots$top = slots.top) == null ? void 0 : _slots$top.call(slots), slots.default && vue.createVNode("div", {
17369
+ default: () => [(_slots$top = slots.top) == null ? void 0 : _slots$top.call(slots), slots.default ? vue.createVNode("div", {
17332
17370
  "class": "v-table__wrapper",
17333
17371
  "style": {
17334
17372
  height: convertToUnit(props.height)
17335
17373
  }
17336
- }, [vue.createVNode("table", null, [slots.default()])]), (_slots$bottom = slots.bottom) == null ? void 0 : _slots$bottom.call(slots)]
17374
+ }, [vue.createVNode("table", null, [slots.default()])]) : (_slots$wrapper = slots.wrapper) == null ? void 0 : _slots$wrapper.call(slots), (_slots$bottom = slots.bottom) == null ? void 0 : _slots$bottom.call(slots)]
17337
17375
  });
17338
17376
  });
17339
17377
  return {};
@@ -18272,7 +18310,7 @@
18272
18310
  locale
18273
18311
  };
18274
18312
  }
18275
- const version$1 = "3.0.7";
18313
+ const version$1 = "3.1.0";
18276
18314
  createVuetify$1.version = version$1;
18277
18315
 
18278
18316
  // Vue's inject() can only be used in setup
@@ -18293,7 +18331,7 @@
18293
18331
  ...options
18294
18332
  });
18295
18333
  };
18296
- const version = "3.0.7";
18334
+ const version = "3.1.0";
18297
18335
  createVuetify.version = version;
18298
18336
 
18299
18337
  exports.components = components;