vuetify 3.8.9 → 3.8.10

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 (83) hide show
  1. package/dist/json/attributes.json +3370 -3362
  2. package/dist/json/importMap-labs.json +24 -24
  3. package/dist/json/importMap.json +160 -160
  4. package/dist/json/tags.json +2 -0
  5. package/dist/json/web-types.json +5992 -5974
  6. package/dist/vuetify-labs.cjs +89 -40
  7. package/dist/vuetify-labs.css +5399 -5390
  8. package/dist/vuetify-labs.d.ts +69 -59
  9. package/dist/vuetify-labs.esm.js +89 -40
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +89 -40
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +83 -39
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +5526 -5517
  16. package/dist/vuetify.d.ts +64 -59
  17. package/dist/vuetify.esm.js +83 -39
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +83 -39
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +390 -387
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VBtn/VBtn.css +3 -0
  25. package/lib/components/VBtn/VBtn.sass +3 -0
  26. package/lib/components/VBtnGroup/VBtnGroup.css +2 -1
  27. package/lib/components/VBtnGroup/VBtnGroup.sass +2 -1
  28. package/lib/components/VDataTable/VDataTable.css +6 -3
  29. package/lib/components/VDataTable/VDataTable.sass +4 -2
  30. package/lib/components/VDatePicker/VDatePicker.js +19 -13
  31. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  32. package/lib/components/VDatePicker/VDatePickerYears.js +1 -3
  33. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  34. package/lib/components/VField/VField.js +10 -2
  35. package/lib/components/VField/VField.js.map +1 -1
  36. package/lib/components/VList/VListChildren.js +4 -3
  37. package/lib/components/VList/VListChildren.js.map +1 -1
  38. package/lib/components/VList/VListGroup.d.ts +10 -0
  39. package/lib/components/VList/VListGroup.js +2 -2
  40. package/lib/components/VList/VListGroup.js.map +1 -1
  41. package/lib/components/VList/VListItem.css +2 -0
  42. package/lib/components/VList/VListItem.sass +2 -0
  43. package/lib/components/VList/_variables.scss +1 -0
  44. package/lib/components/VOtpInput/VOtpInput.js +17 -1
  45. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  46. package/lib/components/VSpeedDial/VSpeedDial.css +1 -1
  47. package/lib/components/VSpeedDial/VSpeedDial.sass +3 -1
  48. package/lib/components/VTextField/VTextField.js +4 -4
  49. package/lib/components/VTextField/VTextField.js.map +1 -1
  50. package/lib/components/VTextarea/VTextarea.js +4 -4
  51. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  52. package/lib/composables/autofocus.d.ts +7 -0
  53. package/lib/composables/autofocus.js +10 -0
  54. package/lib/composables/autofocus.js.map +1 -0
  55. package/lib/composables/group.js +1 -0
  56. package/lib/composables/group.js.map +1 -1
  57. package/lib/composables/hotkey.d.ts +9 -0
  58. package/lib/composables/hotkey.js +131 -0
  59. package/lib/composables/hotkey.js.map +1 -0
  60. package/lib/composables/intersectionObserver.js +2 -2
  61. package/lib/composables/intersectionObserver.js.map +1 -1
  62. package/lib/composables/selectLink.js +2 -2
  63. package/lib/composables/selectLink.js.map +1 -1
  64. package/lib/composables/transition.js +3 -3
  65. package/lib/composables/transition.js.map +1 -1
  66. package/lib/entry-bundler.js +1 -1
  67. package/lib/entry-bundler.js.map +1 -1
  68. package/lib/framework.d.ts +59 -59
  69. package/lib/framework.js +1 -1
  70. package/lib/framework.js.map +1 -1
  71. package/lib/labs/VFileUpload/VFileUploadItem.js +1 -0
  72. package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
  73. package/lib/labs/VTimePicker/VTimePickerClock.js +3 -1
  74. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  75. package/lib/labs/VTreeview/VTreeviewChildren.js +2 -1
  76. package/lib/labs/VTreeview/VTreeviewChildren.js.map +1 -1
  77. package/lib/labs/VTreeview/VTreeviewGroup.d.ts +10 -0
  78. package/lib/labs/VTreeview/VTreeviewItem.js +1 -0
  79. package/lib/labs/VTreeview/VTreeviewItem.js.map +1 -1
  80. package/lib/util/helpers.d.ts +3 -0
  81. package/lib/util/helpers.js +7 -0
  82. package/lib/util/helpers.js.map +1 -1
  83. package/package.json +8 -8
@@ -7556,6 +7556,7 @@ declare const VListGroup: {
7556
7556
  activeColor?: string | undefined;
7557
7557
  prependIcon?: IconValue | undefined;
7558
7558
  appendIcon?: IconValue | undefined;
7559
+ rawId?: string | number | undefined;
7559
7560
  } & {
7560
7561
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
7561
7562
  default?: (() => vue.VNodeChild) | undefined;
@@ -7615,6 +7616,7 @@ declare const VListGroup: {
7615
7616
  activeColor?: string | undefined;
7616
7617
  prependIcon?: IconValue | undefined;
7617
7618
  appendIcon?: IconValue | undefined;
7619
+ rawId?: string | number | undefined;
7618
7620
  } & {
7619
7621
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
7620
7622
  default?: (() => vue.VNodeChild) | undefined;
@@ -7665,6 +7667,7 @@ declare const VListGroup: {
7665
7667
  activeColor?: string | undefined;
7666
7668
  prependIcon?: IconValue | undefined;
7667
7669
  appendIcon?: IconValue | undefined;
7670
+ rawId?: string | number | undefined;
7668
7671
  } & {
7669
7672
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
7670
7673
  default?: (() => vue.VNodeChild) | undefined;
@@ -7722,6 +7725,7 @@ declare const VListGroup: {
7722
7725
  type: vue.PropType<IconValue>;
7723
7726
  default: string;
7724
7727
  };
7728
+ rawId: (StringConstructor | NumberConstructor)[];
7725
7729
  prependIcon: vue.PropType<IconValue>;
7726
7730
  appendIcon: vue.PropType<IconValue>;
7727
7731
  fluid: BooleanConstructor;
@@ -7749,6 +7753,7 @@ declare const VListGroup: {
7749
7753
  type: vue.PropType<IconValue>;
7750
7754
  default: string;
7751
7755
  };
7756
+ rawId: (StringConstructor | NumberConstructor)[];
7752
7757
  prependIcon: vue.PropType<IconValue>;
7753
7758
  appendIcon: vue.PropType<IconValue>;
7754
7759
  fluid: BooleanConstructor;
@@ -101142,6 +101147,7 @@ declare const VTreeviewGroup: {
101142
101147
  activeColor?: string | undefined;
101143
101148
  prependIcon?: IconValue | undefined;
101144
101149
  appendIcon?: IconValue | undefined;
101150
+ rawId?: string | number | undefined;
101145
101151
  } & {
101146
101152
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
101147
101153
  default?: (() => vue.VNodeChild) | undefined;
@@ -101197,6 +101203,7 @@ declare const VTreeviewGroup: {
101197
101203
  activeColor?: string | undefined;
101198
101204
  prependIcon?: IconValue | undefined;
101199
101205
  appendIcon?: IconValue | undefined;
101206
+ rawId?: string | number | undefined;
101200
101207
  } & {
101201
101208
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
101202
101209
  default?: (() => vue.VNodeChild) | undefined;
@@ -101243,6 +101250,7 @@ declare const VTreeviewGroup: {
101243
101250
  activeColor?: string | undefined;
101244
101251
  prependIcon?: IconValue | undefined;
101245
101252
  appendIcon?: IconValue | undefined;
101253
+ rawId?: string | number | undefined;
101246
101254
  } & {
101247
101255
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
101248
101256
  default?: (() => vue.VNodeChild) | undefined;
@@ -101307,6 +101315,7 @@ declare const VTreeviewGroup: {
101307
101315
  type: vue.PropType<IconValue>;
101308
101316
  default: NonNullable<IconValue>;
101309
101317
  };
101318
+ rawId: (StringConstructor | NumberConstructor)[];
101310
101319
  fluid: BooleanConstructor;
101311
101320
  }, vue.ExtractPropTypes<{
101312
101321
  color: StringConstructor;
@@ -101339,6 +101348,7 @@ declare const VTreeviewGroup: {
101339
101348
  type: vue.PropType<IconValue>;
101340
101349
  default: NonNullable<IconValue>;
101341
101350
  };
101351
+ rawId: (StringConstructor | NumberConstructor)[];
101342
101352
  fluid: BooleanConstructor;
101343
101353
  }>>;
101344
101354
  type VTreeviewGroup = InstanceType<typeof VTreeviewGroup>;
@@ -101795,48 +101805,41 @@ declare module 'vue' {
101795
101805
  $children?: VNodeChild
101796
101806
  }
101797
101807
  export interface GlobalComponents {
101798
- VApp: VApp
101799
101808
  VAlert: VAlert
101800
101809
  VAlertTitle: VAlertTitle
101801
- VAutocomplete: VAutocomplete
101802
- VAvatar: VAvatar
101810
+ VApp: VApp
101803
101811
  VAppBar: VAppBar
101804
101812
  VAppBarNavIcon: VAppBarNavIcon
101805
101813
  VAppBarTitle: VAppBarTitle
101806
- VBadge: VBadge
101814
+ VAvatar: VAvatar
101815
+ VAutocomplete: VAutocomplete
101807
101816
  VBanner: VBanner
101808
101817
  VBannerActions: VBannerActions
101809
101818
  VBannerText: VBannerText
101810
101819
  VBottomSheet: VBottomSheet
101820
+ VBadge: VBadge
101821
+ VBottomNavigation: VBottomNavigation
101822
+ VBtnGroup: VBtnGroup
101811
101823
  VBreadcrumbs: VBreadcrumbs
101812
101824
  VBreadcrumbsItem: VBreadcrumbsItem
101813
101825
  VBreadcrumbsDivider: VBreadcrumbsDivider
101814
- VBtn: VBtn
101815
- VBottomNavigation: VBottomNavigation
101816
101826
  VBtnToggle: VBtnToggle
101817
- VCarousel: VCarousel
101818
- VCarouselItem: VCarouselItem
101819
- VCheckbox: VCheckbox
101820
- VCheckboxBtn: VCheckboxBtn
101821
- VBtnGroup: VBtnGroup
101822
- VChipGroup: VChipGroup
101823
- VCode: VCode
101824
101827
  VCard: VCard
101825
101828
  VCardActions: VCardActions
101826
101829
  VCardItem: VCardItem
101827
101830
  VCardSubtitle: VCardSubtitle
101828
101831
  VCardText: VCardText
101829
101832
  VCardTitle: VCardTitle
101830
- VColorPicker: VColorPicker
101831
- VCounter: VCounter
101832
- VDataTable: VDataTable
101833
- VDataTableHeaders: VDataTableHeaders
101834
- VDataTableFooter: VDataTableFooter
101835
- VDataTableRows: VDataTableRows
101836
- VDataTableRow: VDataTableRow
101837
- VDataTableVirtual: VDataTableVirtual
101838
- VDataTableServer: VDataTableServer
101833
+ VCheckbox: VCheckbox
101834
+ VCheckboxBtn: VCheckboxBtn
101835
+ VChipGroup: VChipGroup
101836
+ VCode: VCode
101837
+ VCarousel: VCarousel
101838
+ VCarouselItem: VCarouselItem
101839
+ VChip: VChip
101839
101840
  VCombobox: VCombobox
101841
+ VCounter: VCounter
101842
+ VColorPicker: VColorPicker
101840
101843
  VDatePicker: VDatePicker
101841
101844
  VDatePickerControls: VDatePickerControls
101842
101845
  VDatePickerHeader: VDatePickerHeader
@@ -101844,21 +101847,35 @@ declare module 'vue' {
101844
101847
  VDatePickerMonths: VDatePickerMonths
101845
101848
  VDatePickerYears: VDatePickerYears
101846
101849
  VDialog: VDialog
101850
+ VBtn: VBtn
101851
+ VDataTable: VDataTable
101852
+ VDataTableHeaders: VDataTableHeaders
101853
+ VDataTableFooter: VDataTableFooter
101854
+ VDataTableRows: VDataTableRows
101855
+ VDataTableRow: VDataTableRow
101856
+ VDataTableVirtual: VDataTableVirtual
101857
+ VDataTableServer: VDataTableServer
101847
101858
  VDivider: VDivider
101848
101859
  VEmptyState: VEmptyState
101860
+ VField: VField
101861
+ VFieldLabel: VFieldLabel
101862
+ VFileInput: VFileInput
101849
101863
  VExpansionPanels: VExpansionPanels
101850
101864
  VExpansionPanel: VExpansionPanel
101851
101865
  VExpansionPanelText: VExpansionPanelText
101852
101866
  VExpansionPanelTitle: VExpansionPanelTitle
101853
101867
  VFab: VFab
101854
- VFileInput: VFileInput
101855
- VFooter: VFooter
101856
- VField: VField
101857
- VFieldLabel: VFieldLabel
101858
101868
  VItemGroup: VItemGroup
101859
101869
  VItem: VItem
101860
101870
  VImg: VImg
101861
101871
  VInput: VInput
101872
+ VIcon: VIcon
101873
+ VComponentIcon: VComponentIcon
101874
+ VSvgIcon: VSvgIcon
101875
+ VLigatureIcon: VLigatureIcon
101876
+ VClassIcon: VClassIcon
101877
+ VInfiniteScroll: VInfiniteScroll
101878
+ VFooter: VFooter
101862
101879
  VLabel: VLabel
101863
101880
  VKbd: VKbd
101864
101881
  VList: VList
@@ -101870,26 +101887,25 @@ declare module 'vue' {
101870
101887
  VListItemSubtitle: VListItemSubtitle
101871
101888
  VListItemTitle: VListItemTitle
101872
101889
  VListSubheader: VListSubheader
101873
- VMenu: VMenu
101874
- VMessages: VMessages
101875
- VNavigationDrawer: VNavigationDrawer
101876
101890
  VMain: VMain
101877
- VNumberInput: VNumberInput
101891
+ VMessages: VMessages
101892
+ VMenu: VMenu
101878
101893
  VOtpInput: VOtpInput
101894
+ VNavigationDrawer: VNavigationDrawer
101879
101895
  VOverlay: VOverlay
101880
- VProgressLinear: VProgressLinear
101881
- VProgressCircular: VProgressCircular
101882
101896
  VPagination: VPagination
101897
+ VProgressCircular: VProgressCircular
101898
+ VNumberInput: VNumberInput
101883
101899
  VRadioGroup: VRadioGroup
101900
+ VProgressLinear: VProgressLinear
101901
+ VRating: VRating
101884
101902
  VSelect: VSelect
101903
+ VSheet: VSheet
101885
101904
  VSelectionControl: VSelectionControl
101886
101905
  VSelectionControlGroup: VSelectionControlGroup
101887
- VRating: VRating
101888
- VSheet: VSheet
101906
+ VSkeletonLoader: VSkeletonLoader
101889
101907
  VSlideGroup: VSlideGroup
101890
101908
  VSlideGroupItem: VSlideGroupItem
101891
- VSnackbar: VSnackbar
101892
- VSkeletonLoader: VSkeletonLoader
101893
101909
  VSlider: VSlider
101894
101910
  VStepper: VStepper
101895
101911
  VStepperActions: VStepperActions
@@ -101897,38 +101913,33 @@ declare module 'vue' {
101897
101913
  VStepperItem: VStepperItem
101898
101914
  VStepperWindow: VStepperWindow
101899
101915
  VStepperWindowItem: VStepperWindowItem
101916
+ VSnackbar: VSnackbar
101900
101917
  VSwitch: VSwitch
101901
- VSystemBar: VSystemBar
101918
+ VTable: VTable
101919
+ VTextField: VTextField
101902
101920
  VTab: VTab
101903
101921
  VTabs: VTabs
101904
101922
  VTabsWindow: VTabsWindow
101905
101923
  VTabsWindowItem: VTabsWindowItem
101924
+ VSystemBar: VSystemBar
101906
101925
  VTextarea: VTextarea
101907
- VTextField: VTextField
101908
101926
  VToolbar: VToolbar
101909
101927
  VToolbarTitle: VToolbarTitle
101910
101928
  VToolbarItems: VToolbarItems
101911
101929
  VTimeline: VTimeline
101912
101930
  VTimelineItem: VTimelineItem
101913
101931
  VTooltip: VTooltip
101914
- VTable: VTable
101915
101932
  VWindow: VWindow
101916
101933
  VWindowItem: VWindowItem
101917
- VChip: VChip
101918
101934
  VConfirmEdit: VConfirmEdit
101919
101935
  VDataIterator: VDataIterator
101920
101936
  VDefaultsProvider: VDefaultsProvider
101921
- VHover: VHover
101937
+ VForm: VForm
101922
101938
  VContainer: VContainer
101923
101939
  VCol: VCol
101924
101940
  VRow: VRow
101925
101941
  VSpacer: VSpacer
101926
- VIcon: VIcon
101927
- VComponentIcon: VComponentIcon
101928
- VSvgIcon: VSvgIcon
101929
- VLigatureIcon: VLigatureIcon
101930
- VClassIcon: VClassIcon
101931
- VForm: VForm
101942
+ VHover: VHover
101932
101943
  VLayout: VLayout
101933
101944
  VLayoutItem: VLayoutItem
101934
101945
  VLazy: VLazy
@@ -101942,8 +101953,8 @@ declare module 'vue' {
101942
101953
  VSnackbarQueue: VSnackbarQueue
101943
101954
  VSpeedDial: VSpeedDial
101944
101955
  VThemeProvider: VThemeProvider
101945
- VValidation: VValidation
101946
101956
  VVirtualScroll: VVirtualScroll
101957
+ VValidation: VValidation
101947
101958
  VFabTransition: VFabTransition
101948
101959
  VDialogBottomTransition: VDialogBottomTransition
101949
101960
  VDialogTopTransition: VDialogTopTransition
@@ -101960,29 +101971,28 @@ declare module 'vue' {
101960
101971
  VExpandTransition: VExpandTransition
101961
101972
  VExpandXTransition: VExpandXTransition
101962
101973
  VDialogTransition: VDialogTransition
101963
- VInfiniteScroll: VInfiniteScroll
101964
101974
  VCalendar: VCalendar
101965
101975
  VCalendarDay: VCalendarDay
101966
101976
  VCalendarHeader: VCalendarHeader
101967
101977
  VCalendarInterval: VCalendarInterval
101968
101978
  VCalendarIntervalEvent: VCalendarIntervalEvent
101969
101979
  VCalendarMonthDay: VCalendarMonthDay
101970
- VFileUpload: VFileUpload
101971
- VFileUploadItem: VFileUploadItem
101972
- VIconBtn: VIconBtn
101973
- VStepperVertical: VStepperVertical
101974
- VStepperVerticalItem: VStepperVerticalItem
101975
- VStepperVerticalActions: VStepperVerticalActions
101980
+ VColorInput: VColorInput
101976
101981
  VPicker: VPicker
101977
101982
  VPickerTitle: VPickerTitle
101978
- VTimePicker: VTimePicker
101979
- VTimePickerClock: VTimePickerClock
101980
- VTimePickerControls: VTimePickerControls
101983
+ VIconBtn: VIconBtn
101981
101984
  VTreeview: VTreeview
101982
101985
  VTreeviewItem: VTreeviewItem
101983
101986
  VTreeviewGroup: VTreeviewGroup
101987
+ VFileUpload: VFileUpload
101988
+ VFileUploadItem: VFileUploadItem
101989
+ VTimePicker: VTimePicker
101990
+ VTimePickerClock: VTimePickerClock
101991
+ VTimePickerControls: VTimePickerControls
101992
+ VStepperVertical: VStepperVertical
101993
+ VStepperVerticalItem: VStepperVerticalItem
101994
+ VStepperVerticalActions: VStepperVerticalActions
101984
101995
  VDateInput: VDateInput
101985
- VColorInput: VColorInput
101986
101996
  VPullToRefresh: VPullToRefresh
101987
101997
  }
101988
101998
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.9
2
+ * Vuetify v3.8.10
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -609,6 +609,13 @@ function camelizeProps(props) {
609
609
  }
610
610
  return out;
611
611
  }
612
+ function onlyDefinedProps(props) {
613
+ const booleanAttributes = ['checked', 'disabled'];
614
+ return Object.fromEntries(Object.entries(props).filter(_ref => {
615
+ let [key, v] = _ref;
616
+ return booleanAttributes.includes(key) ? !!v : v !== undefined;
617
+ }));
618
+ }
612
619
 
613
620
  // Utilities
614
621
  const block = ['top', 'bottom'];
@@ -933,7 +940,7 @@ function APCAcontrast(text, background) {
933
940
  // WoB should always return negative value.
934
941
 
935
942
  const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB;
936
- outputContrast = SAPC > -1e-3 ? 0.0 : SAPC > -0.078 ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;
943
+ outputContrast = SAPC > -loClip ? 0.0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;
937
944
  }
938
945
  return outputContrast * 100;
939
946
  }
@@ -3321,10 +3328,10 @@ const MaybeTransition = (props, _ref) => {
3321
3328
  } = isObject(transition) ? transition : {};
3322
3329
  let transitionProps;
3323
3330
  if (isObject(transition)) {
3324
- transitionProps = mergeProps(customProps, JSON.parse(JSON.stringify({
3331
+ transitionProps = mergeProps(customProps, onlyDefinedProps({
3325
3332
  disabled,
3326
3333
  group
3327
- })), rest);
3334
+ }), rest);
3328
3335
  } else {
3329
3336
  transitionProps = mergeProps({
3330
3337
  name: disabled || !transition ? '' : transition
@@ -4393,6 +4400,7 @@ function useGroup(props, injectKey) {
4393
4400
  } else {
4394
4401
  const isSelected = selected.value.includes(id);
4395
4402
  if (props.mandatory && isSelected) return;
4403
+ if (!isSelected && !value) return;
4396
4404
  selected.value = value ?? !isSelected ? [id] : [];
4397
4405
  }
4398
4406
  }
@@ -4827,7 +4835,7 @@ function useIntersectionObserver(callback, options) {
4827
4835
  const observer = new IntersectionObserver(entries => {
4828
4836
  isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
4829
4837
  }, options);
4830
- onBeforeUnmount(() => {
4838
+ onScopeDispose(() => {
4831
4839
  observer.disconnect();
4832
4840
  });
4833
4841
  watch(intersectionRef, (newValue, oldValue) => {
@@ -5358,9 +5366,9 @@ function useBackButton(router, cb) {
5358
5366
 
5359
5367
  function useSelectLink(link, select) {
5360
5368
  watch(() => link.isActive?.value, isActive => {
5361
- if (link.isLink.value && isActive && select) {
5369
+ if (link.isLink.value && isActive != null && select) {
5362
5370
  nextTick(() => {
5363
- select(true);
5371
+ select(isActive);
5364
5372
  });
5365
5373
  }
5366
5374
  }, {
@@ -8974,6 +8982,7 @@ const makeVListGroupProps = propsFactory({
8974
8982
  type: IconValue,
8975
8983
  default: '$expand'
8976
8984
  },
8985
+ rawId: [String, Number],
8977
8986
  prependIcon: IconValue,
8978
8987
  appendIcon: IconValue,
8979
8988
  fluid: Boolean,
@@ -8995,13 +9004,12 @@ const VListGroup = genericComponent()({
8995
9004
  open,
8996
9005
  id: _id
8997
9006
  } = useNestedItem(() => props.value, true);
8998
- const id = computed(() => `v-list-group--id-${String(_id.value)}`);
9007
+ const id = computed(() => `v-list-group--id-${String(props.rawId ?? _id.value)}`);
8999
9008
  const list = useList();
9000
9009
  const {
9001
9010
  isBooted
9002
9011
  } = useSsrBoot();
9003
9012
  function onClick(e) {
9004
- e.stopPropagation();
9005
9013
  if (['INPUT', 'TEXTAREA'].includes(e.target?.tagName)) return;
9006
9014
  open(!isOpen.value, e);
9007
9015
  }
@@ -9519,9 +9527,10 @@ const VListChildren = genericComponent()({
9519
9527
  }) : undefined
9520
9528
  };
9521
9529
  const listGroupProps = VListGroup.filterProps(itemProps);
9522
- return children ? createVNode(VListGroup, mergeProps({
9523
- "value": itemProps?.value
9524
- }, listGroupProps), {
9530
+ return children ? createVNode(VListGroup, mergeProps(listGroupProps, {
9531
+ "value": props.returnObject ? item : itemProps?.value,
9532
+ "rawId": itemProps?.value
9533
+ }), {
9525
9534
  activator: _ref3 => {
9526
9535
  let {
9527
9536
  props: activatorProps
@@ -11945,7 +11954,11 @@ const VField = genericComponent()({
11945
11954
  default: slots.loader
11946
11955
  }), hasPrepend && createElementVNode("div", {
11947
11956
  "key": "prepend",
11948
- "class": "v-field__prepend-inner"
11957
+ "class": "v-field__prepend-inner",
11958
+ "onMousedown": e => {
11959
+ e.preventDefault();
11960
+ e.stopPropagation();
11961
+ }
11949
11962
  }, [props.prependInnerIcon && createVNode(InputIcon, {
11950
11963
  "key": "prepend-icon",
11951
11964
  "name": "prependInner",
@@ -12014,7 +12027,11 @@ const VField = genericComponent()({
12014
12027
  })]), [[vShow, props.dirty]])]
12015
12028
  }), hasAppend && createElementVNode("div", {
12016
12029
  "key": "append",
12017
- "class": "v-field__append-inner"
12030
+ "class": "v-field__append-inner",
12031
+ "onMousedown": e => {
12032
+ e.preventDefault();
12033
+ e.stopPropagation();
12034
+ }
12018
12035
  }, [slots['append-inner']?.(slotProps.value), props.appendInnerIcon && createVNode(InputIcon, {
12019
12036
  "key": "append-icon",
12020
12037
  "name": "appendInner",
@@ -12049,6 +12066,16 @@ const VField = genericComponent()({
12049
12066
  }
12050
12067
  });
12051
12068
 
12069
+ function useAutofocus(props) {
12070
+ function onIntersect(isIntersecting, entries) {
12071
+ if (!props.autofocus || !isIntersecting) return;
12072
+ entries[0].target?.focus?.();
12073
+ }
12074
+ return {
12075
+ onIntersect
12076
+ };
12077
+ }
12078
+
12052
12079
  // Types
12053
12080
 
12054
12081
  const activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];
@@ -12095,6 +12122,9 @@ const VTextField = genericComponent()({
12095
12122
  focus,
12096
12123
  blur
12097
12124
  } = useFocus(props);
12125
+ const {
12126
+ onIntersect
12127
+ } = useAutofocus(props);
12098
12128
  const counterValue = computed(() => {
12099
12129
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;
12100
12130
  });
@@ -12104,10 +12134,6 @@ const VTextField = genericComponent()({
12104
12134
  return props.counter;
12105
12135
  });
12106
12136
  const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
12107
- function onIntersect(isIntersecting, entries) {
12108
- if (!props.autofocus || !isIntersecting) return;
12109
- entries[0].target?.focus?.();
12110
- }
12111
12137
  const vInputRef = ref();
12112
12138
  const vFieldRef = ref();
12113
12139
  const inputRef = ref();
@@ -22473,9 +22499,7 @@ const VDatePickerYears = genericComponent()({
22473
22499
  const yearRef = templateRef();
22474
22500
  onMounted(async () => {
22475
22501
  await nextTick();
22476
- yearRef.el?.scrollIntoView({
22477
- block: 'center'
22478
- });
22502
+ yearRef.el?.focus();
22479
22503
  });
22480
22504
  function isYearAllowed(year) {
22481
22505
  if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
@@ -22611,8 +22635,16 @@ const VDatePicker = genericComponent()({
22611
22635
  return value && adapter.isValid(value) ? value : today;
22612
22636
  });
22613
22637
  const headerColor = toRef(() => props.headerColor ?? props.color);
22614
- const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));
22615
- const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
22638
+ const _month = useProxiedModel(props, 'month');
22639
+ const month = computed({
22640
+ get: () => Number(_month.value ?? adapter.getMonth(adapter.startOfMonth(internal.value))),
22641
+ set: v => _month.value = v
22642
+ });
22643
+ const _year = useProxiedModel(props, 'year');
22644
+ const year = computed({
22645
+ get: () => Number(_year.value ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))),
22646
+ set: v => _year.value = v
22647
+ });
22616
22648
  const isReversing = shallowRef(false);
22617
22649
  const header = computed(() => {
22618
22650
  if (props.multiple && model.value.length > 1) {
@@ -22696,9 +22728,9 @@ const VDatePicker = genericComponent()({
22696
22728
  } else {
22697
22729
  year.value++;
22698
22730
  month.value = 0;
22699
- onUpdateYear(year.value);
22731
+ onUpdateYear();
22700
22732
  }
22701
- onUpdateMonth(month.value);
22733
+ onUpdateMonth();
22702
22734
  }
22703
22735
  function onClickPrev() {
22704
22736
  if (month.value > 0) {
@@ -22706,9 +22738,9 @@ const VDatePicker = genericComponent()({
22706
22738
  } else {
22707
22739
  year.value--;
22708
22740
  month.value = 11;
22709
- onUpdateYear(year.value);
22741
+ onUpdateYear();
22710
22742
  }
22711
- onUpdateMonth(month.value);
22743
+ onUpdateMonth();
22712
22744
  }
22713
22745
  function onClickDate() {
22714
22746
  viewMode.value = 'month';
@@ -22719,13 +22751,11 @@ const VDatePicker = genericComponent()({
22719
22751
  function onClickYear() {
22720
22752
  viewMode.value = viewMode.value === 'year' ? 'month' : 'year';
22721
22753
  }
22722
- function onUpdateMonth(value) {
22754
+ function onUpdateMonth() {
22723
22755
  if (viewMode.value === 'months') onClickMonth();
22724
- emit('update:month', value);
22725
22756
  }
22726
- function onUpdateYear(value) {
22757
+ function onUpdateYear() {
22727
22758
  if (viewMode.value === 'year') onClickYear();
22728
- emit('update:year', value);
22729
22759
  }
22730
22760
  watch(model, (val, oldVal) => {
22731
22761
  const arrBefore = wrapInArray(oldVal);
@@ -22737,11 +22767,11 @@ const VDatePicker = genericComponent()({
22737
22767
  const newYear = adapter.getYear(after);
22738
22768
  if (newMonth !== month.value) {
22739
22769
  month.value = newMonth;
22740
- onUpdateMonth(month.value);
22770
+ onUpdateMonth();
22741
22771
  }
22742
22772
  if (newYear !== year.value) {
22743
22773
  year.value = newYear;
22744
- onUpdateYear(year.value);
22774
+ onUpdateYear();
22745
22775
  }
22746
22776
  isReversing.value = adapter.isBefore(before, after);
22747
22777
  });
@@ -25349,6 +25379,21 @@ const VOtpInput = genericComponent()({
25349
25379
  const contentRef = ref();
25350
25380
  const inputRef = ref([]);
25351
25381
  const current = computed(() => inputRef.value[focusIndex.value]);
25382
+ const intersectScope = effectScope();
25383
+ intersectScope.run(() => {
25384
+ const {
25385
+ intersectionRef,
25386
+ isIntersecting
25387
+ } = useIntersectionObserver();
25388
+ watch(isIntersecting, v => {
25389
+ if (!v) return;
25390
+ intersectionRef.value?.focus();
25391
+ intersectScope.stop();
25392
+ });
25393
+ watchEffect(() => {
25394
+ intersectionRef.value = inputRef.value[0];
25395
+ });
25396
+ });
25352
25397
  function onInput() {
25353
25398
  // The maxlength attribute doesn't work for the number type input, so the text type is used.
25354
25399
  // The following logic simulates the behavior of a number input.
@@ -28095,6 +28140,9 @@ const VTextarea = genericComponent()({
28095
28140
  focus,
28096
28141
  blur
28097
28142
  } = useFocus(props);
28143
+ const {
28144
+ onIntersect
28145
+ } = useAutofocus(props);
28098
28146
  const counterValue = computed(() => {
28099
28147
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : (model.value || '').toString().length;
28100
28148
  });
@@ -28103,10 +28151,6 @@ const VTextarea = genericComponent()({
28103
28151
  if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;
28104
28152
  return props.counter;
28105
28153
  });
28106
- function onIntersect(isIntersecting, entries) {
28107
- if (!props.autofocus || !isIntersecting) return;
28108
- entries[0].target?.focus?.();
28109
- }
28110
28154
  const vInputRef = ref();
28111
28155
  const vFieldRef = ref();
28112
28156
  const controlHeight = shallowRef('');
@@ -29823,6 +29867,7 @@ const VFileUploadItem = genericComponent()({
29823
29867
  "class": "v-file-upload-item"
29824
29868
  }), {
29825
29869
  ...slots,
29870
+ title: () => props?.title ?? props.file?.name,
29826
29871
  prepend: slotProps => createElementVNode(Fragment, null, [!slots.prepend ? createVNode(VAvatar, {
29827
29872
  "icon": props.fileIcon,
29828
29873
  "image": preview.value,
@@ -30671,6 +30716,7 @@ const VTimePickerClock = genericComponent()({
30671
30716
  const isDragging = ref(false);
30672
30717
  const valueOnMouseDown = ref(null);
30673
30718
  const valueOnMouseUp = ref(null);
30719
+ const emitChangeDebounced = debounce(value => emit('change', value), 750);
30674
30720
  const {
30675
30721
  textColorClasses,
30676
30722
  textColorStyles
@@ -30716,6 +30762,7 @@ const VTimePickerClock = genericComponent()({
30716
30762
  if (value !== props.displayedValue) {
30717
30763
  update(value);
30718
30764
  }
30765
+ emitChangeDebounced(value);
30719
30766
  }
30720
30767
  function isInner(value) {
30721
30768
  return props.double && value - props.min >= roundCount.value;
@@ -31316,6 +31363,7 @@ const VTreeviewItem = genericComponent()({
31316
31363
  }
31317
31364
  function onClickAction(e) {
31318
31365
  e.preventDefault();
31366
+ e.stopPropagation();
31319
31367
  emit('toggleExpand', e);
31320
31368
  }
31321
31369
  useRender(() => {
@@ -31461,7 +31509,8 @@ const VTreeviewChildren = genericComponent()({
31461
31509
  const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
31462
31510
  const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
31463
31511
  return children ? createVNode(VTreeviewGroup, mergeProps(treeviewGroupProps, {
31464
- "value": props.returnObject ? item.raw : treeviewGroupProps?.value
31512
+ "value": props.returnObject ? item.raw : treeviewGroupProps?.value,
31513
+ "rawId": treeviewGroupProps?.value
31465
31514
  }), {
31466
31515
  activator: _ref2 => {
31467
31516
  let {
@@ -32149,7 +32198,7 @@ function createVuetify$1() {
32149
32198
  };
32150
32199
  });
32151
32200
  }
32152
- const version$1 = "3.8.9";
32201
+ const version$1 = "3.8.10";
32153
32202
  createVuetify$1.version = version$1;
32154
32203
 
32155
32204
  // Vue's inject() can only be used in setup
@@ -32447,7 +32496,7 @@ var index = /*#__PURE__*/Object.freeze({
32447
32496
 
32448
32497
  /* eslint-disable local-rules/sort-imports */
32449
32498
 
32450
- const version = "3.8.9";
32499
+ const version = "3.8.10";
32451
32500
 
32452
32501
  /* eslint-disable local-rules/sort-imports */
32453
32502