@vuetify/nightly 3.8.6-master.2025-05-22 → 3.8.6-master.2025-05-24

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 (37) hide show
  1. package/CHANGELOG.md +15 -3
  2. package/dist/json/attributes.json +3419 -3419
  3. package/dist/json/importMap-labs.json +32 -32
  4. package/dist/json/importMap.json +162 -162
  5. package/dist/json/web-types.json +6126 -6126
  6. package/dist/vuetify-labs.cjs +37 -11
  7. package/dist/vuetify-labs.css +3740 -3740
  8. package/dist/vuetify-labs.d.ts +60 -60
  9. package/dist/vuetify-labs.esm.js +37 -11
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +37 -11
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +37 -11
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +2094 -2094
  16. package/dist/vuetify.d.ts +60 -60
  17. package/dist/vuetify.esm.js +37 -11
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +37 -11
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +11 -8
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VField/VField.js +4 -2
  25. package/lib/components/VField/VField.js.map +1 -1
  26. package/lib/components/VInput/InputIcon.d.ts +1 -1
  27. package/lib/components/VInput/InputIcon.js +5 -4
  28. package/lib/components/VInput/InputIcon.js.map +1 -1
  29. package/lib/components/VNumberInput/VNumberInput.js +12 -4
  30. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  31. package/lib/entry-bundler.js +1 -1
  32. package/lib/framework.d.ts +60 -60
  33. package/lib/framework.js +1 -1
  34. package/lib/util/helpers.d.ts +1 -0
  35. package/lib/util/helpers.js +15 -0
  36. package/lib/util/helpers.js.map +1 -1
  37. package/package.json +1 -1
package/dist/vuetify.d.ts CHANGED
@@ -85877,48 +85877,50 @@ declare module 'vue' {
85877
85877
  $children?: VNodeChild
85878
85878
  }
85879
85879
  export interface GlobalComponents {
85880
- VAppBar: VAppBar
85881
- VAppBarNavIcon: VAppBarNavIcon
85882
- VAppBarTitle: VAppBarTitle
85883
- VAutocomplete: VAutocomplete
85884
- VAvatar: VAvatar
85885
85880
  VAlert: VAlert
85886
85881
  VAlertTitle: VAlertTitle
85887
85882
  VApp: VApp
85883
+ VAutocomplete: VAutocomplete
85884
+ VAvatar: VAvatar
85888
85885
  VBadge: VBadge
85886
+ VAppBar: VAppBar
85887
+ VAppBarNavIcon: VAppBarNavIcon
85888
+ VAppBarTitle: VAppBarTitle
85889
+ VBreadcrumbs: VBreadcrumbs
85890
+ VBreadcrumbsItem: VBreadcrumbsItem
85891
+ VBreadcrumbsDivider: VBreadcrumbsDivider
85892
+ VBottomSheet: VBottomSheet
85889
85893
  VBottomNavigation: VBottomNavigation
85894
+ VBtnToggle: VBtnToggle
85890
85895
  VBanner: VBanner
85891
85896
  VBannerActions: VBannerActions
85892
85897
  VBannerText: VBannerText
85893
- VBottomSheet: VBottomSheet
85898
+ VBtn: VBtn
85894
85899
  VBtnGroup: VBtnGroup
85895
- VBreadcrumbs: VBreadcrumbs
85896
- VBreadcrumbsItem: VBreadcrumbsItem
85897
- VBreadcrumbsDivider: VBreadcrumbsDivider
85900
+ VChipGroup: VChipGroup
85901
+ VCarousel: VCarousel
85902
+ VCarouselItem: VCarouselItem
85903
+ VChip: VChip
85898
85904
  VCard: VCard
85899
85905
  VCardActions: VCardActions
85900
85906
  VCardItem: VCardItem
85901
85907
  VCardSubtitle: VCardSubtitle
85902
85908
  VCardText: VCardText
85903
85909
  VCardTitle: VCardTitle
85904
- VBtnToggle: VBtnToggle
85905
- VCarousel: VCarousel
85906
- VCarouselItem: VCarouselItem
85907
- VBtn: VBtn
85908
85910
  VCheckbox: VCheckbox
85909
85911
  VCheckboxBtn: VCheckboxBtn
85912
+ VColorPicker: VColorPicker
85910
85913
  VCode: VCode
85911
- VChip: VChip
85912
85914
  VCombobox: VCombobox
85913
- VColorPicker: VColorPicker
85914
- VCounter: VCounter
85915
85915
  VDatePicker: VDatePicker
85916
85916
  VDatePickerControls: VDatePickerControls
85917
85917
  VDatePickerHeader: VDatePickerHeader
85918
85918
  VDatePickerMonth: VDatePickerMonth
85919
85919
  VDatePickerMonths: VDatePickerMonths
85920
85920
  VDatePickerYears: VDatePickerYears
85921
- VChipGroup: VChipGroup
85921
+ VDialog: VDialog
85922
+ VDivider: VDivider
85923
+ VCounter: VCounter
85922
85924
  VDataTable: VDataTable
85923
85925
  VDataTableHeaders: VDataTableHeaders
85924
85926
  VDataTableFooter: VDataTableFooter
@@ -85927,27 +85929,26 @@ declare module 'vue' {
85927
85929
  VDataTableVirtual: VDataTableVirtual
85928
85930
  VDataTableServer: VDataTableServer
85929
85931
  VEmptyState: VEmptyState
85930
- VDivider: VDivider
85931
- VFab: VFab
85932
- VField: VField
85933
- VFieldLabel: VFieldLabel
85934
85932
  VExpansionPanels: VExpansionPanels
85935
85933
  VExpansionPanel: VExpansionPanel
85936
85934
  VExpansionPanelText: VExpansionPanelText
85937
85935
  VExpansionPanelTitle: VExpansionPanelTitle
85938
- VFileInput: VFileInput
85939
- VDialog: VDialog
85936
+ VFab: VFab
85937
+ VField: VField
85938
+ VFieldLabel: VFieldLabel
85939
+ VFooter: VFooter
85940
85940
  VIcon: VIcon
85941
85941
  VComponentIcon: VComponentIcon
85942
85942
  VSvgIcon: VSvgIcon
85943
85943
  VLigatureIcon: VLigatureIcon
85944
85944
  VClassIcon: VClassIcon
85945
- VImg: VImg
85946
- VInput: VInput
85947
85945
  VInfiniteScroll: VInfiniteScroll
85948
- VKbd: VKbd
85949
- VFooter: VFooter
85946
+ VFileInput: VFileInput
85947
+ VInput: VInput
85948
+ VItemGroup: VItemGroup
85949
+ VItem: VItem
85950
85950
  VLabel: VLabel
85951
+ VKbd: VKbd
85951
85952
  VList: VList
85952
85953
  VListGroup: VListGroup
85953
85954
  VListImg: VListImg
@@ -85957,73 +85958,74 @@ declare module 'vue' {
85957
85958
  VListItemSubtitle: VListItemSubtitle
85958
85959
  VListItemTitle: VListItemTitle
85959
85960
  VListSubheader: VListSubheader
85960
- VItemGroup: VItemGroup
85961
- VItem: VItem
85962
85961
  VMenu: VMenu
85962
+ VImg: VImg
85963
85963
  VMessages: VMessages
85964
- VNumberInput: VNumberInput
85964
+ VNavigationDrawer: VNavigationDrawer
85965
+ VMain: VMain
85965
85966
  VOtpInput: VOtpInput
85966
85967
  VOverlay: VOverlay
85968
+ VProgressLinear: VProgressLinear
85969
+ VNumberInput: VNumberInput
85967
85970
  VPagination: VPagination
85968
- VNavigationDrawer: VNavigationDrawer
85969
85971
  VProgressCircular: VProgressCircular
85970
- VProgressLinear: VProgressLinear
85971
85972
  VRadioGroup: VRadioGroup
85972
85973
  VRating: VRating
85973
- VSelect: VSelect
85974
- VSheet: VSheet
85974
+ VSelectionControl: VSelectionControl
85975
85975
  VSelectionControlGroup: VSelectionControlGroup
85976
- VSnackbar: VSnackbar
85977
- VSlider: VSlider
85976
+ VSkeletonLoader: VSkeletonLoader
85978
85977
  VSlideGroup: VSlideGroup
85979
85978
  VSlideGroupItem: VSlideGroupItem
85980
- VSkeletonLoader: VSkeletonLoader
85979
+ VSheet: VSheet
85980
+ VSlider: VSlider
85981
+ VSelect: VSelect
85982
+ VSnackbar: VSnackbar
85983
+ VSystemBar: VSystemBar
85981
85984
  VStepper: VStepper
85982
85985
  VStepperActions: VStepperActions
85983
85986
  VStepperHeader: VStepperHeader
85984
85987
  VStepperItem: VStepperItem
85985
85988
  VStepperWindow: VStepperWindow
85986
85989
  VStepperWindowItem: VStepperWindowItem
85987
- VSelectionControl: VSelectionControl
85988
85990
  VSwitch: VSwitch
85989
85991
  VTab: VTab
85990
85992
  VTabs: VTabs
85991
85993
  VTabsWindow: VTabsWindow
85992
85994
  VTabsWindowItem: VTabsWindowItem
85993
- VSystemBar: VSystemBar
85994
- VTable: VTable
85995
- VTextarea: VTextarea
85996
85995
  VTextField: VTextField
85996
+ VTextarea: VTextarea
85997
85997
  VTimeline: VTimeline
85998
85998
  VTimelineItem: VTimelineItem
85999
- VTooltip: VTooltip
86000
85999
  VToolbar: VToolbar
86001
86000
  VToolbarTitle: VToolbarTitle
86002
86001
  VToolbarItems: VToolbarItems
86003
86002
  VWindow: VWindow
86004
86003
  VWindowItem: VWindowItem
86004
+ VDataIterator: VDataIterator
86005
86005
  VConfirmEdit: VConfirmEdit
86006
86006
  VDefaultsProvider: VDefaultsProvider
86007
- VDataIterator: VDataIterator
86008
- VForm: VForm
86009
86007
  VContainer: VContainer
86010
86008
  VCol: VCol
86011
86009
  VRow: VRow
86012
86010
  VSpacer: VSpacer
86011
+ VForm: VForm
86013
86012
  VHover: VHover
86014
86013
  VLayout: VLayout
86015
86014
  VLayoutItem: VLayoutItem
86015
+ VLazy: VLazy
86016
+ VLocaleProvider: VLocaleProvider
86016
86017
  VNoSsr: VNoSsr
86017
86018
  VParallax: VParallax
86018
- VRangeSlider: VRangeSlider
86019
- VResponsive: VResponsive
86020
86019
  VRadio: VRadio
86021
- VSparkline: VSparkline
86020
+ VRangeSlider: VRangeSlider
86022
86021
  VSpeedDial: VSpeedDial
86022
+ VResponsive: VResponsive
86023
86023
  VSnackbarQueue: VSnackbarQueue
86024
- VValidation: VValidation
86025
- VVirtualScroll: VVirtualScroll
86024
+ VSparkline: VSparkline
86026
86025
  VThemeProvider: VThemeProvider
86026
+ VValidation: VValidation
86027
+ VTooltip: VTooltip
86028
+ VTable: VTable
86027
86029
  VFabTransition: VFabTransition
86028
86030
  VDialogBottomTransition: VDialogBottomTransition
86029
86031
  VDialogTopTransition: VDialogTopTransition
@@ -86040,9 +86042,9 @@ declare module 'vue' {
86040
86042
  VExpandTransition: VExpandTransition
86041
86043
  VExpandXTransition: VExpandXTransition
86042
86044
  VDialogTransition: VDialogTransition
86043
- VMain: VMain
86044
- VLocaleProvider: VLocaleProvider
86045
- VLazy: VLazy
86045
+ VVirtualScroll: VVirtualScroll
86046
+ VIconBtn: VIconBtn
86047
+ VColorInput: VColorInput
86046
86048
  VCalendar: VCalendar
86047
86049
  VCalendarDay: VCalendarDay
86048
86050
  VCalendarHeader: VCalendarHeader
@@ -86051,20 +86053,18 @@ declare module 'vue' {
86051
86053
  VCalendarMonthDay: VCalendarMonthDay
86052
86054
  VFileUpload: VFileUpload
86053
86055
  VFileUploadItem: VFileUploadItem
86054
- VStepperVertical: VStepperVertical
86055
- VStepperVerticalItem: VStepperVerticalItem
86056
- VStepperVerticalActions: VStepperVerticalActions
86057
- VColorInput: VColorInput
86058
- VIconBtn: VIconBtn
86059
- VPicker: VPicker
86060
- VPickerTitle: VPickerTitle
86061
86056
  VTreeview: VTreeview
86062
86057
  VTreeviewItem: VTreeviewItem
86063
86058
  VTreeviewGroup: VTreeviewGroup
86064
- VDateInput: VDateInput
86065
86059
  VTimePicker: VTimePicker
86066
86060
  VTimePickerClock: VTimePickerClock
86067
86061
  VTimePickerControls: VTimePickerControls
86062
+ VStepperVertical: VStepperVertical
86063
+ VStepperVerticalItem: VStepperVerticalItem
86064
+ VStepperVerticalActions: VStepperVerticalActions
86065
+ VDateInput: VDateInput
86068
86066
  VPullToRefresh: VPullToRefresh
86067
+ VPicker: VPicker
86068
+ VPickerTitle: VPickerTitle
86069
86069
  }
86070
86070
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.6-master.2025-05-22
2
+ * Vuetify v3.8.6-master.2025-05-24
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'];
@@ -6820,7 +6835,8 @@ function useInputIcon(props) {
6820
6835
  function InputIcon(_ref) {
6821
6836
  let {
6822
6837
  name,
6823
- color
6838
+ color,
6839
+ ...attrs
6824
6840
  } = _ref;
6825
6841
  const localeKey = {
6826
6842
  prepend: 'prependAction',
@@ -6837,13 +6853,13 @@ function useInputIcon(props) {
6837
6853
  callEvent(listener, new PointerEvent('click', e));
6838
6854
  }
6839
6855
  const label = listener && localeKey ? t(`$vuetify.input.${localeKey}`, props.label ?? '') : undefined;
6840
- return createVNode(VIcon, {
6856
+ return createVNode(VIcon, mergeProps({
6841
6857
  "icon": props[`${name}Icon`],
6842
6858
  "aria-label": label,
6843
6859
  "onClick": listener,
6844
6860
  "onKeydown": onKeydown,
6845
6861
  "color": color
6846
- }, null);
6862
+ }, attrs), null);
6847
6863
  }
6848
6864
  return {
6849
6865
  InputIcon
@@ -12256,12 +12272,14 @@ const VField = genericComponent()({
12256
12272
  props: {
12257
12273
  onFocus: focus,
12258
12274
  onBlur: blur,
12259
- onClick: props['onClick:clear']
12275
+ onClick: props['onClick:clear'],
12276
+ tabindex: -1
12260
12277
  }
12261
12278
  }) : createVNode(InputIcon, {
12262
12279
  "name": "clear",
12263
12280
  "onFocus": focus,
12264
- "onBlur": blur
12281
+ "onBlur": blur,
12282
+ "tabindex": -1
12265
12283
  }, null)]
12266
12284
  })]), [[vShow, props.dirty]])]
12267
12285
  }), hasAppend && createVNode("div", {
@@ -25171,25 +25189,33 @@ const VNumberInput = genericComponent()({
25171
25189
  }
25172
25190
  function onBeforeinput(e) {
25173
25191
  if (!e.data) return;
25174
- const existingTxt = e.target?.value;
25175
- const selectionStart = e.target?.selectionStart;
25176
- const selectionEnd = e.target?.selectionEnd;
25192
+ const inputElement = e.target;
25193
+ const {
25194
+ value: existingTxt,
25195
+ selectionStart,
25196
+ selectionEnd
25197
+ } = inputElement ?? {};
25177
25198
  const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
25199
+ const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision);
25200
+
25178
25201
  // Only numbers, "-", "." are allowed
25179
25202
  // AND "-", "." are allowed only once
25180
25203
  // AND "-" is only allowed at the start
25181
25204
  if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
25182
25205
  e.preventDefault();
25206
+ inputElement.value = potentialNewNumber;
25183
25207
  }
25184
25208
  if (props.precision == null) return;
25185
25209
 
25186
25210
  // Ignore decimal digits above precision limit
25187
25211
  if (potentialNewInputVal.split('.')[1]?.length > props.precision) {
25188
25212
  e.preventDefault();
25213
+ inputElement.value = potentialNewNumber;
25189
25214
  }
25190
25215
  // Ignore decimal separator when precision = 0
25191
25216
  if (props.precision === 0 && potentialNewInputVal.includes('.')) {
25192
25217
  e.preventDefault();
25218
+ inputElement.value = potentialNewNumber;
25193
25219
  }
25194
25220
  }
25195
25221
  async function onKeydown(e) {
@@ -29290,7 +29316,7 @@ function createVuetify$1() {
29290
29316
  };
29291
29317
  });
29292
29318
  }
29293
- const version$1 = "3.8.6-master.2025-05-22";
29319
+ const version$1 = "3.8.6-master.2025-05-24";
29294
29320
  createVuetify$1.version = version$1;
29295
29321
 
29296
29322
  // Vue's inject() can only be used in setup
@@ -29315,7 +29341,7 @@ const createVuetify = function () {
29315
29341
  ...options
29316
29342
  });
29317
29343
  };
29318
- const version = "3.8.6-master.2025-05-22";
29344
+ const version = "3.8.6-master.2025-05-24";
29319
29345
  createVuetify.version = version;
29320
29346
 
29321
29347
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };