@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.
@@ -3622,12 +3622,15 @@ declare const VField: {
3622
3622
  type VField = InstanceType<typeof VField>;
3623
3623
 
3624
3624
  /**
3625
- * - match without highlight
3626
- * - single match (index), length already known
3627
- * - single match (start, end)
3628
- * - multiple matches (start, end), probably shouldn't overlap
3625
+ * - boolean: match without highlight
3626
+ * - number: single match (index), length already known
3627
+ * - []: single match (start, end)
3628
+ * - [][]: multiple matches (start, end), shouldn't overlap
3629
3629
  */
3630
- type FilterMatch = boolean | number | [number, number] | [number, number][];
3630
+ type FilterMatchArraySingle = readonly [number, number];
3631
+ type FilterMatchArrayMultiple = readonly FilterMatchArraySingle[];
3632
+ type FilterMatchArray = FilterMatchArraySingle | FilterMatchArrayMultiple;
3633
+ type FilterMatch = boolean | number | FilterMatchArray;
3631
3634
  type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch;
3632
3635
  type FilterKeyFunctions = Record<string, FilterFunction>;
3633
3636
  type FilterKeys = string | string[];
@@ -72335,19 +72338,20 @@ declare module 'vue' {
72335
72338
  VAppBar: VAppBar
72336
72339
  VAppBarNavIcon: VAppBarNavIcon
72337
72340
  VAppBarTitle: VAppBarTitle
72338
- VAlert: VAlert
72339
- VAlertTitle: VAlertTitle
72340
- VAutocomplete: VAutocomplete
72341
72341
  VApp: VApp
72342
- VBottomNavigation: VBottomNavigation
72343
- VAvatar: VAvatar
72342
+ VAutocomplete: VAutocomplete
72344
72343
  VBadge: VBadge
72344
+ VAlert: VAlert
72345
+ VAlertTitle: VAlertTitle
72345
72346
  VBottomSheet: VBottomSheet
72346
72347
  VBanner: VBanner
72347
72348
  VBannerActions: VBannerActions
72348
72349
  VBannerText: VBannerText
72349
- VBtn: VBtn
72350
+ VAvatar: VAvatar
72350
72351
  VBtnToggle: VBtnToggle
72352
+ VBottomNavigation: VBottomNavigation
72353
+ VCheckbox: VCheckbox
72354
+ VCheckboxBtn: VCheckboxBtn
72351
72355
  VBreadcrumbs: VBreadcrumbs
72352
72356
  VBreadcrumbsItem: VBreadcrumbsItem
72353
72357
  VBreadcrumbsDivider: VBreadcrumbsDivider
@@ -72357,15 +72361,21 @@ declare module 'vue' {
72357
72361
  VCardSubtitle: VCardSubtitle
72358
72362
  VCardText: VCardText
72359
72363
  VCardTitle: VCardTitle
72364
+ VBtnGroup: VBtnGroup
72365
+ VBtn: VBtn
72366
+ VColorPicker: VColorPicker
72360
72367
  VChip: VChip
72361
- VCheckbox: VCheckbox
72362
- VCheckboxBtn: VCheckboxBtn
72363
72368
  VCarousel: VCarousel
72364
72369
  VCarouselItem: VCarouselItem
72365
- VBtnGroup: VBtnGroup
72366
- VCombobox: VCombobox
72367
72370
  VChipGroup: VChipGroup
72368
- VCode: VCode
72371
+ VCounter: VCounter
72372
+ VDialog: VDialog
72373
+ VDivider: VDivider
72374
+ VCombobox: VCombobox
72375
+ VExpansionPanels: VExpansionPanels
72376
+ VExpansionPanel: VExpansionPanel
72377
+ VExpansionPanelText: VExpansionPanelText
72378
+ VExpansionPanelTitle: VExpansionPanelTitle
72369
72379
  VDataTable: VDataTable
72370
72380
  VDataTableHeaders: VDataTableHeaders
72371
72381
  VDataTableFooter: VDataTableFooter
@@ -72373,10 +72383,6 @@ declare module 'vue' {
72373
72383
  VDataTableRow: VDataTableRow
72374
72384
  VDataTableVirtual: VDataTableVirtual
72375
72385
  VDataTableServer: VDataTableServer
72376
- VCounter: VCounter
72377
- VColorPicker: VColorPicker
72378
- VDialog: VDialog
72379
- VDivider: VDivider
72380
72386
  VDatePicker: VDatePicker
72381
72387
  VDatePickerControls: VDatePickerControls
72382
72388
  VDatePickerHeader: VDatePickerHeader
@@ -72384,26 +72390,26 @@ declare module 'vue' {
72384
72390
  VDatePickerMonths: VDatePickerMonths
72385
72391
  VDatePickerYears: VDatePickerYears
72386
72392
  VEmptyState: VEmptyState
72387
- VFab: VFab
72388
- VExpansionPanels: VExpansionPanels
72389
- VExpansionPanel: VExpansionPanel
72390
- VExpansionPanelText: VExpansionPanelText
72391
- VExpansionPanelTitle: VExpansionPanelTitle
72392
- VFooter: VFooter
72393
- VFileInput: VFileInput
72394
72393
  VField: VField
72395
72394
  VFieldLabel: VFieldLabel
72396
- VInfiniteScroll: VInfiniteScroll
72395
+ VFooter: VFooter
72396
+ VFileInput: VFileInput
72397
+ VFab: VFab
72397
72398
  VIcon: VIcon
72398
72399
  VComponentIcon: VComponentIcon
72399
72400
  VSvgIcon: VSvgIcon
72400
72401
  VLigatureIcon: VLigatureIcon
72401
72402
  VClassIcon: VClassIcon
72402
72403
  VImg: VImg
72404
+ VInfiniteScroll: VInfiniteScroll
72405
+ VLabel: VLabel
72403
72406
  VItemGroup: VItemGroup
72404
72407
  VItem: VItem
72408
+ VMain: VMain
72405
72409
  VKbd: VKbd
72406
72410
  VInput: VInput
72411
+ VMessages: VMessages
72412
+ VMenu: VMenu
72407
72413
  VList: VList
72408
72414
  VListGroup: VListGroup
72409
72415
  VListImg: VListImg
@@ -72413,73 +72419,70 @@ declare module 'vue' {
72413
72419
  VListItemSubtitle: VListItemSubtitle
72414
72420
  VListItemTitle: VListItemTitle
72415
72421
  VListSubheader: VListSubheader
72416
- VMain: VMain
72417
- VLabel: VLabel
72418
72422
  VNavigationDrawer: VNavigationDrawer
72419
- VMenu: VMenu
72420
- VMessages: VMessages
72421
72423
  VOtpInput: VOtpInput
72422
72424
  VPagination: VPagination
72423
72425
  VOverlay: VOverlay
72426
+ VProgressCircular: VProgressCircular
72424
72427
  VRadioGroup: VRadioGroup
72425
72428
  VProgressLinear: VProgressLinear
72429
+ VSelect: VSelect
72430
+ VCode: VCode
72426
72431
  VRating: VRating
72427
- VProgressCircular: VProgressCircular
72428
72432
  VSelectionControlGroup: VSelectionControlGroup
72429
- VSelect: VSelect
72430
- VSelectionControl: VSelectionControl
72431
- VSlideGroup: VSlideGroup
72432
- VSlideGroupItem: VSlideGroupItem
72433
- VSnackbar: VSnackbar
72433
+ VSheet: VSheet
72434
72434
  VSkeletonLoader: VSkeletonLoader
72435
+ VSelectionControl: VSelectionControl
72435
72436
  VSlider: VSlider
72437
+ VSnackbar: VSnackbar
72438
+ VSystemBar: VSystemBar
72436
72439
  VSwitch: VSwitch
72440
+ VSlideGroup: VSlideGroup
72441
+ VSlideGroupItem: VSlideGroupItem
72437
72442
  VTab: VTab
72438
72443
  VTabs: VTabs
72439
72444
  VTabsWindow: VTabsWindow
72440
72445
  VTabsWindowItem: VTabsWindowItem
72446
+ VTextarea: VTextarea
72441
72447
  VStepper: VStepper
72442
72448
  VStepperActions: VStepperActions
72443
72449
  VStepperHeader: VStepperHeader
72444
72450
  VStepperItem: VStepperItem
72445
72451
  VStepperWindow: VStepperWindow
72446
72452
  VStepperWindowItem: VStepperWindowItem
72447
- VSystemBar: VSystemBar
72448
- VTextarea: VTextarea
72449
72453
  VTable: VTable
72450
72454
  VTextField: VTextField
72451
72455
  VTimeline: VTimeline
72452
72456
  VTimelineItem: VTimelineItem
72457
+ VTooltip: VTooltip
72453
72458
  VToolbar: VToolbar
72454
72459
  VToolbarTitle: VToolbarTitle
72455
72460
  VToolbarItems: VToolbarItems
72456
- VTooltip: VTooltip
72457
72461
  VWindow: VWindow
72458
72462
  VWindowItem: VWindowItem
72459
72463
  VConfirmEdit: VConfirmEdit
72460
72464
  VDataIterator: VDataIterator
72461
72465
  VDefaultsProvider: VDefaultsProvider
72462
- VForm: VForm
72463
72466
  VContainer: VContainer
72464
72467
  VCol: VCol
72465
72468
  VRow: VRow
72466
72469
  VSpacer: VSpacer
72470
+ VForm: VForm
72467
72471
  VHover: VHover
72468
- VLazy: VLazy
72469
72472
  VLayout: VLayout
72470
72473
  VLayoutItem: VLayoutItem
72474
+ VLazy: VLazy
72471
72475
  VLocaleProvider: VLocaleProvider
72476
+ VNoSsr: VNoSsr
72472
72477
  VParallax: VParallax
72473
72478
  VRadio: VRadio
72474
72479
  VRangeSlider: VRangeSlider
72475
72480
  VResponsive: VResponsive
72476
- VNoSsr: VNoSsr
72477
72481
  VSparkline: VSparkline
72478
72482
  VSpeedDial: VSpeedDial
72479
72483
  VThemeProvider: VThemeProvider
72480
- VVirtualScroll: VVirtualScroll
72481
72484
  VValidation: VValidation
72482
- VSheet: VSheet
72485
+ VVirtualScroll: VVirtualScroll
72483
72486
  VFabTransition: VFabTransition
72484
72487
  VDialogBottomTransition: VDialogBottomTransition
72485
72488
  VDialogTopTransition: VDialogTopTransition
@@ -72496,26 +72499,26 @@ declare module 'vue' {
72496
72499
  VExpandTransition: VExpandTransition
72497
72500
  VExpandXTransition: VExpandXTransition
72498
72501
  VDialogTransition: VDialogTransition
72502
+ VFileUpload: VFileUpload
72503
+ VFileUploadItem: VFileUploadItem
72504
+ VNumberInput: VNumberInput
72499
72505
  VCalendar: VCalendar
72500
72506
  VCalendarDay: VCalendarDay
72501
72507
  VCalendarHeader: VCalendarHeader
72502
72508
  VCalendarInterval: VCalendarInterval
72503
72509
  VCalendarIntervalEvent: VCalendarIntervalEvent
72504
72510
  VCalendarMonthDay: VCalendarMonthDay
72505
- VPicker: VPicker
72506
- VPickerTitle: VPickerTitle
72507
- VFileUpload: VFileUpload
72508
- VFileUploadItem: VFileUploadItem
72509
72511
  VStepperVertical: VStepperVertical
72510
72512
  VStepperVerticalItem: VStepperVerticalItem
72511
72513
  VStepperVerticalActions: VStepperVerticalActions
72512
- VTreeview: VTreeview
72513
- VTreeviewItem: VTreeviewItem
72514
- VTreeviewGroup: VTreeviewGroup
72515
- VNumberInput: VNumberInput
72514
+ VPicker: VPicker
72515
+ VPickerTitle: VPickerTitle
72516
72516
  VTimePicker: VTimePicker
72517
72517
  VTimePickerClock: VTimePickerClock
72518
72518
  VTimePickerControls: VTimePickerControls
72519
+ VTreeview: VTreeview
72520
+ VTreeviewItem: VTreeviewItem
72521
+ VTreeviewGroup: VTreeviewGroup
72519
72522
  VDateInput: VDateInput
72520
72523
  VPullToRefresh: VPullToRefresh
72521
72524
  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
  */
@@ -12924,17 +12924,31 @@ const VSelect = genericComponent()({
12924
12924
  // Types
12925
12925
 
12926
12926
  /**
12927
- * - match without highlight
12928
- * - single match (index), length already known
12929
- * - single match (start, end)
12930
- * - multiple matches (start, end), probably shouldn't overlap
12927
+ * - boolean: match without highlight
12928
+ * - number: single match (index), length already known
12929
+ * - []: single match (start, end)
12930
+ * - [][]: multiple matches (start, end), shouldn't overlap
12931
12931
  */
12932
12932
 
12933
12933
  // Composables
12934
12934
  const defaultFilter = (value, query, item) => {
12935
12935
  if (value == null || query == null) return -1;
12936
- return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase());
12936
+ value = value.toString().toLocaleLowerCase();
12937
+ query = query.toString().toLocaleLowerCase();
12938
+ const result = [];
12939
+ let idx = value.indexOf(query);
12940
+ while (~idx) {
12941
+ result.push([idx, idx + query.length]);
12942
+ idx = value.indexOf(query, idx + query.length);
12943
+ }
12944
+ return result.length ? result : -1;
12937
12945
  };
12946
+ function normaliseMatch(match, query) {
12947
+ if (match == null || typeof match === 'boolean' || match === -1) return;
12948
+ if (typeof match === 'number') return [[match, query.length]];
12949
+ if (Array.isArray(match[0])) return match;
12950
+ return [match];
12951
+ }
12938
12952
  const makeFilterProps = propsFactory({
12939
12953
  customFilter: Function,
12940
12954
  customKeyFilter: Object,
@@ -12965,7 +12979,7 @@ function filterItems(items, query, options) {
12965
12979
  const keyFilter = options?.customKeyFilter?.[key];
12966
12980
  match = keyFilter ? keyFilter(value, query, item) : filter(value, query, item);
12967
12981
  if (match !== -1 && match !== false) {
12968
- if (keyFilter) customMatches[key] = match;else defaultMatches[key] = match;
12982
+ if (keyFilter) customMatches[key] = normaliseMatch(match, query);else defaultMatches[key] = normaliseMatch(match, query);
12969
12983
  } else if (options?.filterMode === 'every') {
12970
12984
  continue loop;
12971
12985
  }
@@ -12973,7 +12987,7 @@ function filterItems(items, query, options) {
12973
12987
  } else {
12974
12988
  match = filter(item, query, item);
12975
12989
  if (match !== -1 && match !== false) {
12976
- defaultMatches.title = match;
12990
+ defaultMatches.title = normaliseMatch(match, query);
12977
12991
  }
12978
12992
  }
12979
12993
  const defaultMatchesLength = Object.keys(defaultMatches).length;
@@ -13033,20 +13047,26 @@ function useFilter(props, items, query, options) {
13033
13047
  getMatches
13034
13048
  };
13035
13049
  }
13050
+ function highlightResult(name, text, matches) {
13051
+ if (matches == null || !matches.length) return text;
13052
+ return matches.map((match, i) => {
13053
+ const start = i === 0 ? 0 : matches[i - 1][1];
13054
+ const result = [createVNode("span", {
13055
+ "class": `${name}__unmask`
13056
+ }, [text.slice(start, match[0])]), createVNode("span", {
13057
+ "class": `${name}__mask`
13058
+ }, [text.slice(match[0], match[1])])];
13059
+ if (i === matches.length - 1) {
13060
+ result.push(createVNode("span", {
13061
+ "class": `${name}__unmask`
13062
+ }, [text.slice(match[1])]));
13063
+ }
13064
+ return createVNode(Fragment, null, [result]);
13065
+ });
13066
+ }
13036
13067
 
13037
13068
  // Types
13038
13069
 
13039
- function highlightResult$1(text, matches, length) {
13040
- if (matches == null) return text;
13041
- if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');
13042
- return typeof matches === 'number' && ~matches ? createVNode(Fragment, null, [createVNode("span", {
13043
- "class": "v-autocomplete__unmask"
13044
- }, [text.substr(0, matches)]), createVNode("span", {
13045
- "class": "v-autocomplete__mask"
13046
- }, [text.substr(matches, length)]), createVNode("span", {
13047
- "class": "v-autocomplete__unmask"
13048
- }, [text.substr(matches + length)])]) : text;
13049
- }
13050
13070
  const makeVAutocompleteProps = propsFactory({
13051
13071
  autoSelectFirst: {
13052
13072
  type: [Boolean, String]
@@ -13418,7 +13438,7 @@ const VAutocomplete = genericComponent()({
13418
13438
  }, null)]);
13419
13439
  },
13420
13440
  title: () => {
13421
- return isPristine.value ? item.title : highlightResult$1(item.title, getMatches(item)?.title, search.value?.length ?? 0);
13441
+ return isPristine.value ? item.title : highlightResult('v-autocomplete', item.title, getMatches(item)?.title);
13422
13442
  }
13423
13443
  });
13424
13444
  }
@@ -16911,17 +16931,6 @@ const VColorPicker = defineComponent({
16911
16931
 
16912
16932
  // Types
16913
16933
 
16914
- function highlightResult(text, matches, length) {
16915
- if (matches == null) return text;
16916
- if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');
16917
- return typeof matches === 'number' && ~matches ? createVNode(Fragment, null, [createVNode("span", {
16918
- "class": "v-combobox__unmask"
16919
- }, [text.substr(0, matches)]), createVNode("span", {
16920
- "class": "v-combobox__mask"
16921
- }, [text.substr(matches, length)]), createVNode("span", {
16922
- "class": "v-combobox__unmask"
16923
- }, [text.substr(matches + length)])]) : text;
16924
- }
16925
16934
  const makeVComboboxProps = propsFactory({
16926
16935
  autoSelectFirst: {
16927
16936
  type: [Boolean, String]
@@ -17335,7 +17344,7 @@ const VCombobox = genericComponent()({
17335
17344
  }, null)]);
17336
17345
  },
17337
17346
  title: () => {
17338
- return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);
17347
+ return isPristine.value ? item.title : highlightResult('v-combobox', item.title, getMatches(item)?.title);
17339
17348
  }
17340
17349
  });
17341
17350
  }
@@ -31148,7 +31157,7 @@ function createVuetify$1() {
31148
31157
  };
31149
31158
  });
31150
31159
  }
31151
- const version$1 = "3.7.15-dev.2025-03-06";
31160
+ const version$1 = "3.7.15-dev.2025-03-07";
31152
31161
  createVuetify$1.version = version$1;
31153
31162
 
31154
31163
  // Vue's inject() can only be used in setup
@@ -31401,7 +31410,7 @@ var index = /*#__PURE__*/Object.freeze({
31401
31410
 
31402
31411
  /* eslint-disable local-rules/sort-imports */
31403
31412
 
31404
- const version = "3.7.15-dev.2025-03-06";
31413
+ const version = "3.7.15-dev.2025-03-07";
31405
31414
 
31406
31415
  /* eslint-disable local-rules/sort-imports */
31407
31416