@vuetify/nightly 3.7.15-dev.2025-03-06 → 3.7.15-dev.2025-03-07

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.
package/dist/vuetify.d.ts CHANGED
@@ -3635,12 +3635,15 @@ declare const VField: {
3635
3635
  type VField = InstanceType<typeof VField>;
3636
3636
 
3637
3637
  /**
3638
- * - match without highlight
3639
- * - single match (index), length already known
3640
- * - single match (start, end)
3641
- * - multiple matches (start, end), probably shouldn't overlap
3638
+ * - boolean: match without highlight
3639
+ * - number: single match (index), length already known
3640
+ * - []: single match (start, end)
3641
+ * - [][]: multiple matches (start, end), shouldn't overlap
3642
3642
  */
3643
- type FilterMatch = boolean | number | [number, number] | [number, number][];
3643
+ type FilterMatchArraySingle = readonly [number, number];
3644
+ type FilterMatchArrayMultiple = readonly FilterMatchArraySingle[];
3645
+ type FilterMatchArray = FilterMatchArraySingle | FilterMatchArrayMultiple;
3646
+ type FilterMatch = boolean | number | FilterMatchArray;
3644
3647
  type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch;
3645
3648
  type FilterKeyFunctions = Record<string, FilterFunction>;
3646
3649
  type FilterKeys = string | string[];
@@ -57888,19 +57891,20 @@ declare module 'vue' {
57888
57891
  VAppBar: VAppBar
57889
57892
  VAppBarNavIcon: VAppBarNavIcon
57890
57893
  VAppBarTitle: VAppBarTitle
57891
- VAlert: VAlert
57892
- VAlertTitle: VAlertTitle
57893
- VAutocomplete: VAutocomplete
57894
57894
  VApp: VApp
57895
- VBottomNavigation: VBottomNavigation
57896
- VAvatar: VAvatar
57895
+ VAutocomplete: VAutocomplete
57897
57896
  VBadge: VBadge
57897
+ VAlert: VAlert
57898
+ VAlertTitle: VAlertTitle
57898
57899
  VBottomSheet: VBottomSheet
57899
57900
  VBanner: VBanner
57900
57901
  VBannerActions: VBannerActions
57901
57902
  VBannerText: VBannerText
57902
- VBtn: VBtn
57903
+ VAvatar: VAvatar
57903
57904
  VBtnToggle: VBtnToggle
57905
+ VBottomNavigation: VBottomNavigation
57906
+ VCheckbox: VCheckbox
57907
+ VCheckboxBtn: VCheckboxBtn
57904
57908
  VBreadcrumbs: VBreadcrumbs
57905
57909
  VBreadcrumbsItem: VBreadcrumbsItem
57906
57910
  VBreadcrumbsDivider: VBreadcrumbsDivider
@@ -57910,15 +57914,21 @@ declare module 'vue' {
57910
57914
  VCardSubtitle: VCardSubtitle
57911
57915
  VCardText: VCardText
57912
57916
  VCardTitle: VCardTitle
57917
+ VBtnGroup: VBtnGroup
57918
+ VBtn: VBtn
57919
+ VColorPicker: VColorPicker
57913
57920
  VChip: VChip
57914
- VCheckbox: VCheckbox
57915
- VCheckboxBtn: VCheckboxBtn
57916
57921
  VCarousel: VCarousel
57917
57922
  VCarouselItem: VCarouselItem
57918
- VBtnGroup: VBtnGroup
57919
- VCombobox: VCombobox
57920
57923
  VChipGroup: VChipGroup
57921
- VCode: VCode
57924
+ VCounter: VCounter
57925
+ VDialog: VDialog
57926
+ VDivider: VDivider
57927
+ VCombobox: VCombobox
57928
+ VExpansionPanels: VExpansionPanels
57929
+ VExpansionPanel: VExpansionPanel
57930
+ VExpansionPanelText: VExpansionPanelText
57931
+ VExpansionPanelTitle: VExpansionPanelTitle
57922
57932
  VDataTable: VDataTable
57923
57933
  VDataTableHeaders: VDataTableHeaders
57924
57934
  VDataTableFooter: VDataTableFooter
@@ -57926,10 +57936,6 @@ declare module 'vue' {
57926
57936
  VDataTableRow: VDataTableRow
57927
57937
  VDataTableVirtual: VDataTableVirtual
57928
57938
  VDataTableServer: VDataTableServer
57929
- VCounter: VCounter
57930
- VColorPicker: VColorPicker
57931
- VDialog: VDialog
57932
- VDivider: VDivider
57933
57939
  VDatePicker: VDatePicker
57934
57940
  VDatePickerControls: VDatePickerControls
57935
57941
  VDatePickerHeader: VDatePickerHeader
@@ -57937,26 +57943,26 @@ declare module 'vue' {
57937
57943
  VDatePickerMonths: VDatePickerMonths
57938
57944
  VDatePickerYears: VDatePickerYears
57939
57945
  VEmptyState: VEmptyState
57940
- VFab: VFab
57941
- VExpansionPanels: VExpansionPanels
57942
- VExpansionPanel: VExpansionPanel
57943
- VExpansionPanelText: VExpansionPanelText
57944
- VExpansionPanelTitle: VExpansionPanelTitle
57945
- VFooter: VFooter
57946
- VFileInput: VFileInput
57947
57946
  VField: VField
57948
57947
  VFieldLabel: VFieldLabel
57949
- VInfiniteScroll: VInfiniteScroll
57948
+ VFooter: VFooter
57949
+ VFileInput: VFileInput
57950
+ VFab: VFab
57950
57951
  VIcon: VIcon
57951
57952
  VComponentIcon: VComponentIcon
57952
57953
  VSvgIcon: VSvgIcon
57953
57954
  VLigatureIcon: VLigatureIcon
57954
57955
  VClassIcon: VClassIcon
57955
57956
  VImg: VImg
57957
+ VInfiniteScroll: VInfiniteScroll
57958
+ VLabel: VLabel
57956
57959
  VItemGroup: VItemGroup
57957
57960
  VItem: VItem
57961
+ VMain: VMain
57958
57962
  VKbd: VKbd
57959
57963
  VInput: VInput
57964
+ VMessages: VMessages
57965
+ VMenu: VMenu
57960
57966
  VList: VList
57961
57967
  VListGroup: VListGroup
57962
57968
  VListImg: VListImg
@@ -57966,73 +57972,70 @@ declare module 'vue' {
57966
57972
  VListItemSubtitle: VListItemSubtitle
57967
57973
  VListItemTitle: VListItemTitle
57968
57974
  VListSubheader: VListSubheader
57969
- VMain: VMain
57970
- VLabel: VLabel
57971
57975
  VNavigationDrawer: VNavigationDrawer
57972
- VMenu: VMenu
57973
- VMessages: VMessages
57974
57976
  VOtpInput: VOtpInput
57975
57977
  VPagination: VPagination
57976
57978
  VOverlay: VOverlay
57979
+ VProgressCircular: VProgressCircular
57977
57980
  VRadioGroup: VRadioGroup
57978
57981
  VProgressLinear: VProgressLinear
57982
+ VSelect: VSelect
57983
+ VCode: VCode
57979
57984
  VRating: VRating
57980
- VProgressCircular: VProgressCircular
57981
57985
  VSelectionControlGroup: VSelectionControlGroup
57982
- VSelect: VSelect
57983
- VSelectionControl: VSelectionControl
57984
- VSlideGroup: VSlideGroup
57985
- VSlideGroupItem: VSlideGroupItem
57986
- VSnackbar: VSnackbar
57986
+ VSheet: VSheet
57987
57987
  VSkeletonLoader: VSkeletonLoader
57988
+ VSelectionControl: VSelectionControl
57988
57989
  VSlider: VSlider
57990
+ VSnackbar: VSnackbar
57991
+ VSystemBar: VSystemBar
57989
57992
  VSwitch: VSwitch
57993
+ VSlideGroup: VSlideGroup
57994
+ VSlideGroupItem: VSlideGroupItem
57990
57995
  VTab: VTab
57991
57996
  VTabs: VTabs
57992
57997
  VTabsWindow: VTabsWindow
57993
57998
  VTabsWindowItem: VTabsWindowItem
57999
+ VTextarea: VTextarea
57994
58000
  VStepper: VStepper
57995
58001
  VStepperActions: VStepperActions
57996
58002
  VStepperHeader: VStepperHeader
57997
58003
  VStepperItem: VStepperItem
57998
58004
  VStepperWindow: VStepperWindow
57999
58005
  VStepperWindowItem: VStepperWindowItem
58000
- VSystemBar: VSystemBar
58001
- VTextarea: VTextarea
58002
58006
  VTable: VTable
58003
58007
  VTextField: VTextField
58004
58008
  VTimeline: VTimeline
58005
58009
  VTimelineItem: VTimelineItem
58010
+ VTooltip: VTooltip
58006
58011
  VToolbar: VToolbar
58007
58012
  VToolbarTitle: VToolbarTitle
58008
58013
  VToolbarItems: VToolbarItems
58009
- VTooltip: VTooltip
58010
58014
  VWindow: VWindow
58011
58015
  VWindowItem: VWindowItem
58012
58016
  VConfirmEdit: VConfirmEdit
58013
58017
  VDataIterator: VDataIterator
58014
58018
  VDefaultsProvider: VDefaultsProvider
58015
- VForm: VForm
58016
58019
  VContainer: VContainer
58017
58020
  VCol: VCol
58018
58021
  VRow: VRow
58019
58022
  VSpacer: VSpacer
58023
+ VForm: VForm
58020
58024
  VHover: VHover
58021
- VLazy: VLazy
58022
58025
  VLayout: VLayout
58023
58026
  VLayoutItem: VLayoutItem
58027
+ VLazy: VLazy
58024
58028
  VLocaleProvider: VLocaleProvider
58029
+ VNoSsr: VNoSsr
58025
58030
  VParallax: VParallax
58026
58031
  VRadio: VRadio
58027
58032
  VRangeSlider: VRangeSlider
58028
58033
  VResponsive: VResponsive
58029
- VNoSsr: VNoSsr
58030
58034
  VSparkline: VSparkline
58031
58035
  VSpeedDial: VSpeedDial
58032
58036
  VThemeProvider: VThemeProvider
58033
- VVirtualScroll: VVirtualScroll
58034
58037
  VValidation: VValidation
58035
- VSheet: VSheet
58038
+ VVirtualScroll: VVirtualScroll
58036
58039
  VFabTransition: VFabTransition
58037
58040
  VDialogBottomTransition: VDialogBottomTransition
58038
58041
  VDialogTopTransition: VDialogTopTransition
@@ -58049,26 +58052,26 @@ declare module 'vue' {
58049
58052
  VExpandTransition: VExpandTransition
58050
58053
  VExpandXTransition: VExpandXTransition
58051
58054
  VDialogTransition: VDialogTransition
58055
+ VFileUpload: VFileUpload
58056
+ VFileUploadItem: VFileUploadItem
58057
+ VNumberInput: VNumberInput
58052
58058
  VCalendar: VCalendar
58053
58059
  VCalendarDay: VCalendarDay
58054
58060
  VCalendarHeader: VCalendarHeader
58055
58061
  VCalendarInterval: VCalendarInterval
58056
58062
  VCalendarIntervalEvent: VCalendarIntervalEvent
58057
58063
  VCalendarMonthDay: VCalendarMonthDay
58058
- VPicker: VPicker
58059
- VPickerTitle: VPickerTitle
58060
- VFileUpload: VFileUpload
58061
- VFileUploadItem: VFileUploadItem
58062
58064
  VStepperVertical: VStepperVertical
58063
58065
  VStepperVerticalItem: VStepperVerticalItem
58064
58066
  VStepperVerticalActions: VStepperVerticalActions
58065
- VTreeview: VTreeview
58066
- VTreeviewItem: VTreeviewItem
58067
- VTreeviewGroup: VTreeviewGroup
58068
- VNumberInput: VNumberInput
58067
+ VPicker: VPicker
58068
+ VPickerTitle: VPickerTitle
58069
58069
  VTimePicker: VTimePicker
58070
58070
  VTimePickerClock: VTimePickerClock
58071
58071
  VTimePickerControls: VTimePickerControls
58072
+ VTreeview: VTreeview
58073
+ VTreeviewItem: VTreeviewItem
58074
+ VTreeviewGroup: VTreeviewGroup
58072
58075
  VDateInput: VDateInput
58073
58076
  VPullToRefresh: VPullToRefresh
58074
58077
  VSnackbarQueue: VSnackbarQueue
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.15-dev.2025-03-06
2
+ * Vuetify v3.7.15-dev.2025-03-07
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -13157,17 +13157,31 @@ const VSelect = genericComponent()({
13157
13157
  // Types
13158
13158
 
13159
13159
  /**
13160
- * - match without highlight
13161
- * - single match (index), length already known
13162
- * - single match (start, end)
13163
- * - multiple matches (start, end), probably shouldn't overlap
13160
+ * - boolean: match without highlight
13161
+ * - number: single match (index), length already known
13162
+ * - []: single match (start, end)
13163
+ * - [][]: multiple matches (start, end), shouldn't overlap
13164
13164
  */
13165
13165
 
13166
13166
  // Composables
13167
13167
  const defaultFilter = (value, query, item) => {
13168
13168
  if (value == null || query == null) return -1;
13169
- return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase());
13169
+ value = value.toString().toLocaleLowerCase();
13170
+ query = query.toString().toLocaleLowerCase();
13171
+ const result = [];
13172
+ let idx = value.indexOf(query);
13173
+ while (~idx) {
13174
+ result.push([idx, idx + query.length]);
13175
+ idx = value.indexOf(query, idx + query.length);
13176
+ }
13177
+ return result.length ? result : -1;
13170
13178
  };
13179
+ function normaliseMatch(match, query) {
13180
+ if (match == null || typeof match === 'boolean' || match === -1) return;
13181
+ if (typeof match === 'number') return [[match, query.length]];
13182
+ if (Array.isArray(match[0])) return match;
13183
+ return [match];
13184
+ }
13171
13185
  const makeFilterProps = propsFactory({
13172
13186
  customFilter: Function,
13173
13187
  customKeyFilter: Object,
@@ -13198,7 +13212,7 @@ function filterItems(items, query, options) {
13198
13212
  const keyFilter = options?.customKeyFilter?.[key];
13199
13213
  match = keyFilter ? keyFilter(value, query, item) : filter(value, query, item);
13200
13214
  if (match !== -1 && match !== false) {
13201
- if (keyFilter) customMatches[key] = match;else defaultMatches[key] = match;
13215
+ if (keyFilter) customMatches[key] = normaliseMatch(match, query);else defaultMatches[key] = normaliseMatch(match, query);
13202
13216
  } else if (options?.filterMode === 'every') {
13203
13217
  continue loop;
13204
13218
  }
@@ -13206,7 +13220,7 @@ function filterItems(items, query, options) {
13206
13220
  } else {
13207
13221
  match = filter(item, query, item);
13208
13222
  if (match !== -1 && match !== false) {
13209
- defaultMatches.title = match;
13223
+ defaultMatches.title = normaliseMatch(match, query);
13210
13224
  }
13211
13225
  }
13212
13226
  const defaultMatchesLength = Object.keys(defaultMatches).length;
@@ -13266,20 +13280,26 @@ function useFilter(props, items, query, options) {
13266
13280
  getMatches
13267
13281
  };
13268
13282
  }
13283
+ function highlightResult(name, text, matches) {
13284
+ if (matches == null || !matches.length) return text;
13285
+ return matches.map((match, i) => {
13286
+ const start = i === 0 ? 0 : matches[i - 1][1];
13287
+ const result = [createVNode("span", {
13288
+ "class": `${name}__unmask`
13289
+ }, [text.slice(start, match[0])]), createVNode("span", {
13290
+ "class": `${name}__mask`
13291
+ }, [text.slice(match[0], match[1])])];
13292
+ if (i === matches.length - 1) {
13293
+ result.push(createVNode("span", {
13294
+ "class": `${name}__unmask`
13295
+ }, [text.slice(match[1])]));
13296
+ }
13297
+ return createVNode(Fragment, null, [result]);
13298
+ });
13299
+ }
13269
13300
 
13270
13301
  // Types
13271
13302
 
13272
- function highlightResult$1(text, matches, length) {
13273
- if (matches == null) return text;
13274
- if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');
13275
- return typeof matches === 'number' && ~matches ? createVNode(Fragment, null, [createVNode("span", {
13276
- "class": "v-autocomplete__unmask"
13277
- }, [text.substr(0, matches)]), createVNode("span", {
13278
- "class": "v-autocomplete__mask"
13279
- }, [text.substr(matches, length)]), createVNode("span", {
13280
- "class": "v-autocomplete__unmask"
13281
- }, [text.substr(matches + length)])]) : text;
13282
- }
13283
13303
  const makeVAutocompleteProps = propsFactory({
13284
13304
  autoSelectFirst: {
13285
13305
  type: [Boolean, String]
@@ -13651,7 +13671,7 @@ const VAutocomplete = genericComponent()({
13651
13671
  }, null)]);
13652
13672
  },
13653
13673
  title: () => {
13654
- return isPristine.value ? item.title : highlightResult$1(item.title, getMatches(item)?.title, search.value?.length ?? 0);
13674
+ return isPristine.value ? item.title : highlightResult('v-autocomplete', item.title, getMatches(item)?.title);
13655
13675
  }
13656
13676
  });
13657
13677
  }
@@ -17144,17 +17164,6 @@ const VColorPicker = defineComponent({
17144
17164
 
17145
17165
  // Types
17146
17166
 
17147
- function highlightResult(text, matches, length) {
17148
- if (matches == null) return text;
17149
- if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');
17150
- return typeof matches === 'number' && ~matches ? createVNode(Fragment, null, [createVNode("span", {
17151
- "class": "v-combobox__unmask"
17152
- }, [text.substr(0, matches)]), createVNode("span", {
17153
- "class": "v-combobox__mask"
17154
- }, [text.substr(matches, length)]), createVNode("span", {
17155
- "class": "v-combobox__unmask"
17156
- }, [text.substr(matches + length)])]) : text;
17157
- }
17158
17167
  const makeVComboboxProps = propsFactory({
17159
17168
  autoSelectFirst: {
17160
17169
  type: [Boolean, String]
@@ -17568,7 +17577,7 @@ const VCombobox = genericComponent()({
17568
17577
  }, null)]);
17569
17578
  },
17570
17579
  title: () => {
17571
- return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);
17580
+ return isPristine.value ? item.title : highlightResult('v-combobox', item.title, getMatches(item)?.title);
17572
17581
  }
17573
17582
  });
17574
17583
  }
@@ -28517,7 +28526,7 @@ function createVuetify$1() {
28517
28526
  };
28518
28527
  });
28519
28528
  }
28520
- const version$1 = "3.7.15-dev.2025-03-06";
28529
+ const version$1 = "3.7.15-dev.2025-03-07";
28521
28530
  createVuetify$1.version = version$1;
28522
28531
 
28523
28532
  // Vue's inject() can only be used in setup
@@ -28542,7 +28551,7 @@ const createVuetify = function () {
28542
28551
  ...options
28543
28552
  });
28544
28553
  };
28545
- const version = "3.7.15-dev.2025-03-06";
28554
+ const version = "3.7.15-dev.2025-03-07";
28546
28555
  createVuetify.version = version;
28547
28556
 
28548
28557
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };