@vuetify/nightly 3.8.6-master.2025-05-21 → 3.8.6-master.2025-05-23

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
@@ -85877,74 +85877,74 @@ declare module 'vue' {
85877
85877
  $children?: VNodeChild
85878
85878
  }
85879
85879
  export interface GlobalComponents {
85880
- VApp: VApp
85881
- VAutocomplete: VAutocomplete
85882
- VAlert: VAlert
85883
- VAlertTitle: VAlertTitle
85884
- VBadge: VBadge
85885
85880
  VAppBar: VAppBar
85886
85881
  VAppBarNavIcon: VAppBarNavIcon
85887
85882
  VAppBarTitle: VAppBarTitle
85888
- VAvatar: VAvatar
85889
- VBreadcrumbs: VBreadcrumbs
85890
- VBreadcrumbsItem: VBreadcrumbsItem
85891
- VBreadcrumbsDivider: VBreadcrumbsDivider
85892
- VBottomNavigation: VBottomNavigation
85893
- VBtn: VBtn
85894
85883
  VBanner: VBanner
85895
85884
  VBannerActions: VBannerActions
85896
85885
  VBannerText: VBannerText
85897
- VBtnToggle: VBtnToggle
85898
- VCarousel: VCarousel
85899
- VCarouselItem: VCarouselItem
85886
+ VApp: VApp
85887
+ VAlert: VAlert
85888
+ VAlertTitle: VAlertTitle
85889
+ VAutocomplete: VAutocomplete
85890
+ VBadge: VBadge
85900
85891
  VBottomSheet: VBottomSheet
85892
+ VAvatar: VAvatar
85893
+ VBottomNavigation: VBottomNavigation
85894
+ VBtnGroup: VBtnGroup
85895
+ VBtn: VBtn
85901
85896
  VCard: VCard
85902
85897
  VCardActions: VCardActions
85903
85898
  VCardItem: VCardItem
85904
85899
  VCardSubtitle: VCardSubtitle
85905
85900
  VCardText: VCardText
85906
85901
  VCardTitle: VCardTitle
85902
+ VBtnToggle: VBtnToggle
85903
+ VCarousel: VCarousel
85904
+ VCarouselItem: VCarouselItem
85907
85905
  VChip: VChip
85906
+ VChipGroup: VChipGroup
85908
85907
  VCheckbox: VCheckbox
85909
85908
  VCheckboxBtn: VCheckboxBtn
85910
- VBtnGroup: VBtnGroup
85909
+ VBreadcrumbs: VBreadcrumbs
85910
+ VBreadcrumbsItem: VBreadcrumbsItem
85911
+ VBreadcrumbsDivider: VBreadcrumbsDivider
85911
85912
  VCode: VCode
85912
85913
  VCombobox: VCombobox
85913
85914
  VCounter: VCounter
85914
- VChipGroup: VChipGroup
85915
85915
  VColorPicker: VColorPicker
85916
- VDialog: VDialog
85916
+ VDataTable: VDataTable
85917
+ VDataTableHeaders: VDataTableHeaders
85918
+ VDataTableFooter: VDataTableFooter
85919
+ VDataTableRows: VDataTableRows
85920
+ VDataTableRow: VDataTableRow
85921
+ VDataTableVirtual: VDataTableVirtual
85922
+ VDataTableServer: VDataTableServer
85917
85923
  VDatePicker: VDatePicker
85918
85924
  VDatePickerControls: VDatePickerControls
85919
85925
  VDatePickerHeader: VDatePickerHeader
85920
85926
  VDatePickerMonth: VDatePickerMonth
85921
85927
  VDatePickerMonths: VDatePickerMonths
85922
85928
  VDatePickerYears: VDatePickerYears
85929
+ VDialog: VDialog
85923
85930
  VDivider: VDivider
85924
- VEmptyState: VEmptyState
85925
85931
  VExpansionPanels: VExpansionPanels
85926
85932
  VExpansionPanel: VExpansionPanel
85927
85933
  VExpansionPanelText: VExpansionPanelText
85928
85934
  VExpansionPanelTitle: VExpansionPanelTitle
85929
85935
  VField: VField
85930
85936
  VFieldLabel: VFieldLabel
85931
- VFab: VFab
85932
- VIcon: VIcon
85933
- VComponentIcon: VComponentIcon
85934
- VSvgIcon: VSvgIcon
85935
- VLigatureIcon: VLigatureIcon
85936
- VClassIcon: VClassIcon
85937
85937
  VFileInput: VFileInput
85938
85938
  VFooter: VFooter
85939
- VInfiniteScroll: VInfiniteScroll
85940
- VLabel: VLabel
85939
+ VEmptyState: VEmptyState
85940
+ VImg: VImg
85941
+ VFab: VFab
85941
85942
  VInput: VInput
85943
+ VKbd: VKbd
85944
+ VInfiniteScroll: VInfiniteScroll
85942
85945
  VItemGroup: VItemGroup
85943
85946
  VItem: VItem
85944
- VImg: VImg
85945
- VKbd: VKbd
85946
- VMessages: VMessages
85947
- VMenu: VMenu
85947
+ VLabel: VLabel
85948
85948
  VList: VList
85949
85949
  VListGroup: VListGroup
85950
85950
  VListImg: VListImg
@@ -85954,68 +85954,70 @@ declare module 'vue' {
85954
85954
  VListItemSubtitle: VListItemSubtitle
85955
85955
  VListItemTitle: VListItemTitle
85956
85956
  VListSubheader: VListSubheader
85957
+ VMessages: VMessages
85958
+ VMain: VMain
85959
+ VNumberInput: VNumberInput
85957
85960
  VNavigationDrawer: VNavigationDrawer
85958
85961
  VOtpInput: VOtpInput
85959
- VNumberInput: VNumberInput
85960
85962
  VOverlay: VOverlay
85963
+ VPagination: VPagination
85961
85964
  VProgressCircular: VProgressCircular
85962
85965
  VRadioGroup: VRadioGroup
85963
85966
  VProgressLinear: VProgressLinear
85964
- VPagination: VPagination
85965
- VSelectionControlGroup: VSelectionControlGroup
85966
85967
  VRating: VRating
85967
85968
  VSelect: VSelect
85968
85969
  VSelectionControl: VSelectionControl
85970
+ VSelectionControlGroup: VSelectionControlGroup
85969
85971
  VSkeletonLoader: VSkeletonLoader
85970
- VMain: VMain
85972
+ VMenu: VMenu
85973
+ VSheet: VSheet
85971
85974
  VSlideGroup: VSlideGroup
85972
85975
  VSlideGroupItem: VSlideGroupItem
85976
+ VSnackbar: VSnackbar
85977
+ VSlider: VSlider
85973
85978
  VStepper: VStepper
85974
85979
  VStepperActions: VStepperActions
85975
85980
  VStepperHeader: VStepperHeader
85976
85981
  VStepperItem: VStepperItem
85977
85982
  VStepperWindow: VStepperWindow
85978
85983
  VStepperWindowItem: VStepperWindowItem
85979
- VSlider: VSlider
85980
- VSheet: VSheet
85981
85984
  VSwitch: VSwitch
85982
- VSnackbar: VSnackbar
85983
- VTab: VTab
85984
- VTabs: VTabs
85985
- VTabsWindow: VTabsWindow
85986
- VTabsWindowItem: VTabsWindowItem
85987
- VTextField: VTextField
85988
85985
  VSystemBar: VSystemBar
85986
+ VTextarea: VTextarea
85987
+ VTextField: VTextField
85989
85988
  VTable: VTable
85990
- VTimeline: VTimeline
85991
- VTimelineItem: VTimelineItem
85992
85989
  VToolbar: VToolbar
85993
85990
  VToolbarTitle: VToolbarTitle
85994
85991
  VToolbarItems: VToolbarItems
85995
85992
  VTooltip: VTooltip
85996
- VTextarea: VTextarea
85993
+ VTimeline: VTimeline
85994
+ VTimelineItem: VTimelineItem
85995
+ VTab: VTab
85996
+ VTabs: VTabs
85997
+ VTabsWindow: VTabsWindow
85998
+ VTabsWindowItem: VTabsWindowItem
85997
85999
  VWindow: VWindow
85998
86000
  VWindowItem: VWindowItem
85999
86001
  VConfirmEdit: VConfirmEdit
86000
86002
  VDataIterator: VDataIterator
86001
- VDefaultsProvider: VDefaultsProvider
86002
86003
  VContainer: VContainer
86003
86004
  VCol: VCol
86004
86005
  VRow: VRow
86005
86006
  VSpacer: VSpacer
86007
+ VHover: VHover
86006
86008
  VForm: VForm
86009
+ VLazy: VLazy
86007
86010
  VLayout: VLayout
86008
86011
  VLayoutItem: VLayoutItem
86009
86012
  VLocaleProvider: VLocaleProvider
86010
- VHover: VHover
86011
86013
  VNoSsr: VNoSsr
86012
86014
  VParallax: VParallax
86013
86015
  VRadio: VRadio
86014
86016
  VRangeSlider: VRangeSlider
86015
86017
  VResponsive: VResponsive
86016
86018
  VSnackbarQueue: VSnackbarQueue
86017
- VSparkline: VSparkline
86018
86019
  VSpeedDial: VSpeedDial
86020
+ VValidation: VValidation
86019
86021
  VThemeProvider: VThemeProvider
86020
86022
  VVirtualScroll: VVirtualScroll
86021
86023
  VFabTransition: VFabTransition
@@ -86034,33 +86036,31 @@ declare module 'vue' {
86034
86036
  VExpandTransition: VExpandTransition
86035
86037
  VExpandXTransition: VExpandXTransition
86036
86038
  VDialogTransition: VDialogTransition
86037
- VDataTable: VDataTable
86038
- VDataTableHeaders: VDataTableHeaders
86039
- VDataTableFooter: VDataTableFooter
86040
- VDataTableRows: VDataTableRows
86041
- VDataTableRow: VDataTableRow
86042
- VDataTableVirtual: VDataTableVirtual
86043
- VDataTableServer: VDataTableServer
86044
- VValidation: VValidation
86045
- VLazy: VLazy
86039
+ VSparkline: VSparkline
86040
+ VIcon: VIcon
86041
+ VComponentIcon: VComponentIcon
86042
+ VSvgIcon: VSvgIcon
86043
+ VLigatureIcon: VLigatureIcon
86044
+ VClassIcon: VClassIcon
86045
+ VDefaultsProvider: VDefaultsProvider
86046
86046
  VCalendar: VCalendar
86047
86047
  VCalendarDay: VCalendarDay
86048
86048
  VCalendarHeader: VCalendarHeader
86049
86049
  VCalendarInterval: VCalendarInterval
86050
86050
  VCalendarIntervalEvent: VCalendarIntervalEvent
86051
86051
  VCalendarMonthDay: VCalendarMonthDay
86052
- VColorInput: VColorInput
86053
86052
  VIconBtn: VIconBtn
86054
- VPicker: VPicker
86055
- VPickerTitle: VPickerTitle
86056
86053
  VFileUpload: VFileUpload
86057
86054
  VFileUploadItem: VFileUploadItem
86058
- VTimePicker: VTimePicker
86059
- VTimePickerClock: VTimePickerClock
86060
- VTimePickerControls: VTimePickerControls
86055
+ VColorInput: VColorInput
86056
+ VPicker: VPicker
86057
+ VPickerTitle: VPickerTitle
86061
86058
  VStepperVertical: VStepperVertical
86062
86059
  VStepperVerticalItem: VStepperVerticalItem
86063
86060
  VStepperVerticalActions: VStepperVerticalActions
86061
+ VTimePicker: VTimePicker
86062
+ VTimePickerClock: VTimePickerClock
86063
+ VTimePickerControls: VTimePickerControls
86064
86064
  VTreeview: VTreeview
86065
86065
  VTreeviewItem: VTreeviewItem
86066
86066
  VTreeviewGroup: VTreeviewGroup
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.6-master.2025-05-21
2
+ * Vuetify v3.8.6-master.2025-05-23
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -510,6 +510,21 @@ function checkPrintable(e) {
510
510
  function isPrimitive(value) {
511
511
  return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';
512
512
  }
513
+ function extractNumber(text, decimalDigitsLimit) {
514
+ const cleanText = text.split('').filter(x => /[\d\-.]/.test(x)).filter((x, i, all) => i === 0 && /[-]/.test(x) ||
515
+ // sign allowed at the start
516
+ x === '.' && i === all.indexOf('.') ||
517
+ // decimal separator allowed only once
518
+ /\d/.test(x)).join('');
519
+ if (decimalDigitsLimit === 0) {
520
+ return cleanText.split('.')[0];
521
+ }
522
+ if (decimalDigitsLimit !== null && /\.\d/.test(cleanText)) {
523
+ const parts = cleanText.split('.');
524
+ return [parts[0], parts[1].substring(0, decimalDigitsLimit)].join('.');
525
+ }
526
+ return cleanText;
527
+ }
513
528
 
514
529
  // Utilities
515
530
  const block = ['top', 'bottom'];
@@ -614,6 +629,33 @@ function getTargetBox(target) {
614
629
  return target.getBoundingClientRect();
615
630
  }
616
631
  }
632
+ function getElementBox(el) {
633
+ if (el === document.documentElement) {
634
+ if (!visualViewport) {
635
+ return new Box({
636
+ x: 0,
637
+ y: 0,
638
+ width: document.documentElement.clientWidth,
639
+ height: document.documentElement.clientHeight
640
+ });
641
+ } else {
642
+ return new Box({
643
+ x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,
644
+ y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,
645
+ width: visualViewport.width * visualViewport.scale,
646
+ height: visualViewport.height * visualViewport.scale
647
+ });
648
+ }
649
+ } else {
650
+ const rect = el.getBoundingClientRect();
651
+ return new Box({
652
+ x: rect.x,
653
+ y: rect.y,
654
+ width: el.clientWidth,
655
+ height: el.clientHeight
656
+ });
657
+ }
658
+ }
617
659
 
618
660
  // Utilities
619
661
 
@@ -10274,11 +10316,19 @@ function useLocationStrategies(props, data) {
10274
10316
  watch(() => props.locationStrategy, reset);
10275
10317
  onScopeDispose(() => {
10276
10318
  window.removeEventListener('resize', onResize);
10319
+ visualViewport?.removeEventListener('resize', onVisualResize);
10320
+ visualViewport?.removeEventListener('scroll', onVisualScroll);
10277
10321
  updateLocation.value = undefined;
10278
10322
  });
10279
10323
  window.addEventListener('resize', onResize, {
10280
10324
  passive: true
10281
10325
  });
10326
+ visualViewport?.addEventListener('resize', onVisualResize, {
10327
+ passive: true
10328
+ });
10329
+ visualViewport?.addEventListener('scroll', onVisualScroll, {
10330
+ passive: true
10331
+ });
10282
10332
  if (typeof props.locationStrategy === 'function') {
10283
10333
  updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation;
10284
10334
  } else {
@@ -10289,6 +10339,12 @@ function useLocationStrategies(props, data) {
10289
10339
  function onResize(e) {
10290
10340
  updateLocation.value?.(e);
10291
10341
  }
10342
+ function onVisualResize(e) {
10343
+ updateLocation.value?.(e);
10344
+ }
10345
+ function onVisualScroll(e) {
10346
+ updateLocation.value?.(e);
10347
+ }
10292
10348
  return {
10293
10349
  contentStyles,
10294
10350
  updateLocation
@@ -10440,13 +10496,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
10440
10496
  }
10441
10497
  }
10442
10498
  const viewport = scrollParents.reduce((box, el) => {
10443
- const rect = el.getBoundingClientRect();
10444
- const scrollBox = new Box({
10445
- x: el === document.documentElement ? 0 : rect.x,
10446
- y: el === document.documentElement ? 0 : rect.y,
10447
- width: el.clientWidth,
10448
- height: el.clientHeight
10449
- });
10499
+ const scrollBox = getElementBox(el);
10450
10500
  if (box) {
10451
10501
  return new Box({
10452
10502
  x: Math.max(box.left, scrollBox.left),
@@ -25136,25 +25186,33 @@ const VNumberInput = genericComponent()({
25136
25186
  }
25137
25187
  function onBeforeinput(e) {
25138
25188
  if (!e.data) return;
25139
- const existingTxt = e.target?.value;
25140
- const selectionStart = e.target?.selectionStart;
25141
- const selectionEnd = e.target?.selectionEnd;
25189
+ const inputElement = e.target;
25190
+ const {
25191
+ value: existingTxt,
25192
+ selectionStart,
25193
+ selectionEnd
25194
+ } = inputElement ?? {};
25142
25195
  const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
25196
+ const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision);
25197
+
25143
25198
  // Only numbers, "-", "." are allowed
25144
25199
  // AND "-", "." are allowed only once
25145
25200
  // AND "-" is only allowed at the start
25146
25201
  if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
25147
25202
  e.preventDefault();
25203
+ inputElement.value = potentialNewNumber;
25148
25204
  }
25149
25205
  if (props.precision == null) return;
25150
25206
 
25151
25207
  // Ignore decimal digits above precision limit
25152
25208
  if (potentialNewInputVal.split('.')[1]?.length > props.precision) {
25153
25209
  e.preventDefault();
25210
+ inputElement.value = potentialNewNumber;
25154
25211
  }
25155
25212
  // Ignore decimal separator when precision = 0
25156
25213
  if (props.precision === 0 && potentialNewInputVal.includes('.')) {
25157
25214
  e.preventDefault();
25215
+ inputElement.value = potentialNewNumber;
25158
25216
  }
25159
25217
  }
25160
25218
  async function onKeydown(e) {
@@ -29255,7 +29313,7 @@ function createVuetify$1() {
29255
29313
  };
29256
29314
  });
29257
29315
  }
29258
- const version$1 = "3.8.6-master.2025-05-21";
29316
+ const version$1 = "3.8.6-master.2025-05-23";
29259
29317
  createVuetify$1.version = version$1;
29260
29318
 
29261
29319
  // Vue's inject() can only be used in setup
@@ -29280,7 +29338,7 @@ const createVuetify = function () {
29280
29338
  ...options
29281
29339
  });
29282
29340
  };
29283
- const version = "3.8.6-master.2025-05-21";
29341
+ const version = "3.8.6-master.2025-05-23";
29284
29342
  createVuetify.version = version;
29285
29343
 
29286
29344
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };