vuetify 3.7.9 → 3.7.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 (54) hide show
  1. package/dist/json/attributes.json +1041 -1037
  2. package/dist/json/importMap-labs.json +14 -14
  3. package/dist/json/importMap.json +154 -154
  4. package/dist/json/tags.json +1 -0
  5. package/dist/json/web-types.json +2437 -2427
  6. package/dist/vuetify-labs.css +4911 -4911
  7. package/dist/vuetify-labs.d.ts +41 -118
  8. package/dist/vuetify-labs.esm.js +72 -9
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +71 -8
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +4741 -4741
  13. package/dist/vuetify.d.ts +81 -173
  14. package/dist/vuetify.esm.js +61 -8
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +60 -7
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +462 -459
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs +10 -1
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  23. package/lib/components/VCombobox/VCombobox.mjs +11 -1
  24. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  25. package/lib/components/VDatePicker/VDatePicker.mjs +2 -1
  26. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  27. package/lib/components/VSelect/VSelect.mjs +5 -1
  28. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  29. package/lib/components/VTabs/VTabs.mjs +1 -1
  30. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  31. package/lib/components/VTabs/index.d.mts +52 -119
  32. package/lib/components/index.d.mts +26 -118
  33. package/lib/components/transitions/expand-transition.mjs +2 -0
  34. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  35. package/lib/composables/mousedown.mjs +30 -0
  36. package/lib/composables/mousedown.mjs.map +1 -0
  37. package/lib/entry-bundler.mjs +1 -1
  38. package/lib/entry-bundler.mjs.map +1 -1
  39. package/lib/framework.mjs +1 -1
  40. package/lib/framework.mjs.map +1 -1
  41. package/lib/index.d.mts +55 -55
  42. package/lib/labs/VTreeview/VTreeview.mjs +1 -1
  43. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  44. package/lib/labs/VTreeview/VTreeviewChildren.mjs +13 -2
  45. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  46. package/lib/labs/VTreeview/index.d.mts +15 -0
  47. package/lib/labs/components.d.mts +15 -0
  48. package/lib/locale/da.mjs +5 -5
  49. package/lib/locale/da.mjs.map +1 -1
  50. package/lib/locale/de.mjs +3 -3
  51. package/lib/locale/de.mjs.map +1 -1
  52. package/lib/locale/fi.mjs +5 -5
  53. package/lib/locale/fi.mjs.map +1 -1
  54. package/package.json +2 -2
@@ -56563,8 +56563,17 @@ declare const VTab: {
56563
56563
  type VTab = InstanceType<typeof VTab>;
56564
56564
 
56565
56565
  type TabItem = string | number | Record<string, any>;
56566
- type VTabsSlot = {
56567
- item: TabItem;
56566
+ type VTabsSlot<T> = {
56567
+ item: T;
56568
+ };
56569
+ type VTabsSlots<T> = {
56570
+ default: never;
56571
+ tab: VTabsSlot<T>;
56572
+ item: VTabsSlot<T>;
56573
+ window: never;
56574
+ } & {
56575
+ [key: `tab.${string}`]: VTabsSlot<T>;
56576
+ [key: `item.${string}`]: VTabsSlot<T>;
56568
56577
  };
56569
56578
  declare const VTabs: {
56570
56579
  new (...args: any[]): vue.CreateComponentPublicInstance<{
@@ -56576,7 +56585,6 @@ declare const VTabs: {
56576
56585
  multiple: boolean;
56577
56586
  tag: string;
56578
56587
  mandatory: boolean | "force";
56579
- items: readonly TabItem[];
56580
56588
  density: Density;
56581
56589
  selectedClass: string;
56582
56590
  stacked: boolean;
@@ -56597,35 +56605,11 @@ declare const VTabs: {
56597
56605
  bgColor?: string | undefined;
56598
56606
  showArrows?: string | boolean | undefined;
56599
56607
  sliderColor?: string | undefined;
56600
- } & {
56601
- $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
56602
- [x: `tab.${string}`]: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56603
- [x: `item.${string}`]: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56604
- default?: (() => vue.VNodeChild) | undefined;
56605
- tab?: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56606
- item?: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56607
- window?: (() => vue.VNodeChild) | undefined;
56608
- };
56609
- 'v-slots'?: {
56610
- [x: `tab.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56611
- [x: `item.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56612
- default?: false | (() => vue.VNodeChild) | undefined;
56613
- tab?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56614
- item?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56615
- window?: false | (() => vue.VNodeChild) | undefined;
56616
- } | undefined;
56617
- } & {
56618
- [x: `v-slot:tab.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56619
- [x: `v-slot:item.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56620
- "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
56621
- "v-slot:tab"?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56622
- "v-slot:item"?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56623
- "v-slot:window"?: false | (() => vue.VNodeChild) | undefined;
56624
56608
  } & {
56625
56609
  "onUpdate:modelValue"?: ((v: unknown) => any) | undefined;
56626
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
56610
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
56627
56611
  'update:modelValue': (v: unknown) => true;
56628
- }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
56612
+ }, "$children" | "v-slots" | "v-slot:default" | "items" | "v-slot:item" | `v-slot:item.${string}` | "v-slot:window" | "v-slot:tab" | `v-slot:tab.${string}`>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
56629
56613
  symbol: any;
56630
56614
  direction: "horizontal" | "vertical";
56631
56615
  style: vue.StyleValue;
@@ -56634,7 +56618,6 @@ declare const VTabs: {
56634
56618
  multiple: boolean;
56635
56619
  tag: string;
56636
56620
  mandatory: boolean | "force";
56637
- items: readonly TabItem[];
56638
56621
  density: Density;
56639
56622
  selectedClass: string;
56640
56623
  stacked: boolean;
@@ -56655,30 +56638,6 @@ declare const VTabs: {
56655
56638
  bgColor?: string | undefined;
56656
56639
  showArrows?: string | boolean | undefined;
56657
56640
  sliderColor?: string | undefined;
56658
- } & {
56659
- $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
56660
- [x: `tab.${string}`]: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56661
- [x: `item.${string}`]: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56662
- default?: (() => vue.VNodeChild) | undefined;
56663
- tab?: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56664
- item?: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56665
- window?: (() => vue.VNodeChild) | undefined;
56666
- };
56667
- 'v-slots'?: {
56668
- [x: `tab.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56669
- [x: `item.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56670
- default?: false | (() => vue.VNodeChild) | undefined;
56671
- tab?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56672
- item?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56673
- window?: false | (() => vue.VNodeChild) | undefined;
56674
- } | undefined;
56675
- } & {
56676
- [x: `v-slot:tab.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56677
- [x: `v-slot:item.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56678
- "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
56679
- "v-slot:tab"?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56680
- "v-slot:item"?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56681
- "v-slot:window"?: false | (() => vue.VNodeChild) | undefined;
56682
56641
  } & {
56683
56642
  "onUpdate:modelValue"?: ((v: unknown) => any) | undefined;
56684
56643
  }, {
@@ -56692,7 +56651,6 @@ declare const VTabs: {
56692
56651
  tag: string;
56693
56652
  mandatory: boolean | "force";
56694
56653
  modelValue: any;
56695
- items: readonly TabItem[];
56696
56654
  density: Density;
56697
56655
  selectedClass: string;
56698
56656
  stacked: boolean;
@@ -56704,11 +56662,11 @@ declare const VTabs: {
56704
56662
  alignTabs: "center" | "end" | "start" | "title";
56705
56663
  fixedTabs: boolean;
56706
56664
  }, true, {}, vue.SlotsType<Partial<{
56707
- [x: `tab.${string}`]: (arg: VTabsSlot) => vue.VNode[];
56708
- [x: `item.${string}`]: (arg: VTabsSlot) => vue.VNode[];
56665
+ [x: `tab.${string}`]: (arg: VTabsSlot<unknown>) => vue.VNode[];
56666
+ [x: `item.${string}`]: (arg: VTabsSlot<unknown>) => vue.VNode[];
56709
56667
  default: () => vue.VNode[];
56710
- tab: (arg: VTabsSlot) => vue.VNode[];
56711
- item: (arg: VTabsSlot) => vue.VNode[];
56668
+ tab: (arg: VTabsSlot<unknown>) => vue.VNode[];
56669
+ item: (arg: VTabsSlot<unknown>) => vue.VNode[];
56712
56670
  window: () => vue.VNode[];
56713
56671
  }>>, {
56714
56672
  P: {};
@@ -56726,7 +56684,6 @@ declare const VTabs: {
56726
56684
  multiple: boolean;
56727
56685
  tag: string;
56728
56686
  mandatory: boolean | "force";
56729
- items: readonly TabItem[];
56730
56687
  density: Density;
56731
56688
  selectedClass: string;
56732
56689
  stacked: boolean;
@@ -56747,30 +56704,6 @@ declare const VTabs: {
56747
56704
  bgColor?: string | undefined;
56748
56705
  showArrows?: string | boolean | undefined;
56749
56706
  sliderColor?: string | undefined;
56750
- } & {
56751
- $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
56752
- [x: `tab.${string}`]: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56753
- [x: `item.${string}`]: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56754
- default?: (() => vue.VNodeChild) | undefined;
56755
- tab?: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56756
- item?: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56757
- window?: (() => vue.VNodeChild) | undefined;
56758
- };
56759
- 'v-slots'?: {
56760
- [x: `tab.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56761
- [x: `item.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56762
- default?: false | (() => vue.VNodeChild) | undefined;
56763
- tab?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56764
- item?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56765
- window?: false | (() => vue.VNodeChild) | undefined;
56766
- } | undefined;
56767
- } & {
56768
- [x: `v-slot:tab.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56769
- [x: `v-slot:item.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56770
- "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
56771
- "v-slot:tab"?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56772
- "v-slot:item"?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56773
- "v-slot:window"?: false | (() => vue.VNodeChild) | undefined;
56774
56707
  } & {
56775
56708
  "onUpdate:modelValue"?: ((v: unknown) => any) | undefined;
56776
56709
  }, {}, {}, {}, {}, {
@@ -56784,7 +56717,6 @@ declare const VTabs: {
56784
56717
  tag: string;
56785
56718
  mandatory: boolean | "force";
56786
56719
  modelValue: any;
56787
- items: readonly TabItem[];
56788
56720
  density: Density;
56789
56721
  selectedClass: string;
56790
56722
  stacked: boolean;
@@ -56808,7 +56740,6 @@ declare const VTabs: {
56808
56740
  multiple: boolean;
56809
56741
  tag: string;
56810
56742
  mandatory: boolean | "force";
56811
- items: readonly TabItem[];
56812
56743
  density: Density;
56813
56744
  selectedClass: string;
56814
56745
  stacked: boolean;
@@ -56829,35 +56760,11 @@ declare const VTabs: {
56829
56760
  bgColor?: string | undefined;
56830
56761
  showArrows?: string | boolean | undefined;
56831
56762
  sliderColor?: string | undefined;
56832
- } & {
56833
- $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
56834
- [x: `tab.${string}`]: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56835
- [x: `item.${string}`]: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56836
- default?: (() => vue.VNodeChild) | undefined;
56837
- tab?: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56838
- item?: ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56839
- window?: (() => vue.VNodeChild) | undefined;
56840
- };
56841
- 'v-slots'?: {
56842
- [x: `tab.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56843
- [x: `item.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56844
- default?: false | (() => vue.VNodeChild) | undefined;
56845
- tab?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56846
- item?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56847
- window?: false | (() => vue.VNodeChild) | undefined;
56848
- } | undefined;
56849
- } & {
56850
- [x: `v-slot:tab.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56851
- [x: `v-slot:item.${string}`]: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56852
- "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
56853
- "v-slot:tab"?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56854
- "v-slot:item"?: false | ((arg: VTabsSlot) => vue.VNodeChild) | undefined;
56855
- "v-slot:window"?: false | (() => vue.VNodeChild) | undefined;
56856
56763
  } & {
56857
56764
  "onUpdate:modelValue"?: ((v: unknown) => any) | undefined;
56858
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
56765
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
56859
56766
  'update:modelValue': (v: unknown) => true;
56860
- }, string, {
56767
+ }, "$children" | "v-slots" | "v-slot:default" | "items" | "v-slot:item" | `v-slot:item.${string}` | "v-slot:window" | "v-slot:tab" | `v-slot:tab.${string}`>, string, {
56861
56768
  symbol: any;
56862
56769
  height: string | number;
56863
56770
  direction: "horizontal" | "vertical";
@@ -56868,7 +56775,6 @@ declare const VTabs: {
56868
56775
  tag: string;
56869
56776
  mandatory: boolean | "force";
56870
56777
  modelValue: any;
56871
- items: readonly TabItem[];
56872
56778
  density: Density;
56873
56779
  selectedClass: string;
56874
56780
  stacked: boolean;
@@ -56880,13 +56786,15 @@ declare const VTabs: {
56880
56786
  alignTabs: "center" | "end" | "start" | "title";
56881
56787
  fixedTabs: boolean;
56882
56788
  }, {}, string, vue.SlotsType<Partial<{
56883
- [x: `tab.${string}`]: (arg: VTabsSlot) => vue.VNode[];
56884
- [x: `item.${string}`]: (arg: VTabsSlot) => vue.VNode[];
56789
+ [x: `tab.${string}`]: (arg: VTabsSlot<unknown>) => vue.VNode[];
56790
+ [x: `item.${string}`]: (arg: VTabsSlot<unknown>) => vue.VNode[];
56885
56791
  default: () => vue.VNode[];
56886
- tab: (arg: VTabsSlot) => vue.VNode[];
56887
- item: (arg: VTabsSlot) => vue.VNode[];
56792
+ tab: (arg: VTabsSlot<unknown>) => vue.VNode[];
56793
+ item: (arg: VTabsSlot<unknown>) => vue.VNode[];
56888
56794
  window: () => vue.VNode[];
56889
- }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
56795
+ }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T = TabItem>(props: {
56796
+ items?: T;
56797
+ }, slots: VTabsSlots<T>) => GenericProps<typeof props, typeof slots>) & FilterPropsOptions<{
56890
56798
  tag: {
56891
56799
  type: StringConstructor;
56892
56800
  default: string;
@@ -81142,6 +81050,7 @@ declare const VTreeview: {
81142
81050
  itemValue: SelectItemKey;
81143
81051
  itemChildren: SelectItemKey;
81144
81052
  itemProps: SelectItemKey;
81053
+ itemType: string;
81145
81054
  loadingIcon: string;
81146
81055
  openAll: boolean;
81147
81056
  } & {
@@ -81240,6 +81149,7 @@ declare const VTreeview: {
81240
81149
  itemValue: SelectItemKey;
81241
81150
  itemChildren: SelectItemKey;
81242
81151
  itemProps: SelectItemKey;
81152
+ itemType: string;
81243
81153
  loadingIcon: string;
81244
81154
  openAll: boolean;
81245
81155
  } & {
@@ -81324,6 +81234,7 @@ declare const VTreeview: {
81324
81234
  itemValue: SelectItemKey;
81325
81235
  itemChildren: SelectItemKey;
81326
81236
  itemProps: SelectItemKey;
81237
+ itemType: string;
81327
81238
  openOnClick: boolean;
81328
81239
  loadingIcon: string;
81329
81240
  openAll: boolean;
@@ -81386,6 +81297,7 @@ declare const VTreeview: {
81386
81297
  itemValue: SelectItemKey;
81387
81298
  itemChildren: SelectItemKey;
81388
81299
  itemProps: SelectItemKey;
81300
+ itemType: string;
81389
81301
  loadingIcon: string;
81390
81302
  openAll: boolean;
81391
81303
  } & {
@@ -81470,6 +81382,7 @@ declare const VTreeview: {
81470
81382
  itemValue: SelectItemKey;
81471
81383
  itemChildren: SelectItemKey;
81472
81384
  itemProps: SelectItemKey;
81385
+ itemType: string;
81473
81386
  openOnClick: boolean;
81474
81387
  loadingIcon: string;
81475
81388
  openAll: boolean;
@@ -81503,6 +81416,7 @@ declare const VTreeview: {
81503
81416
  itemValue: SelectItemKey;
81504
81417
  itemChildren: SelectItemKey;
81505
81418
  itemProps: SelectItemKey;
81419
+ itemType: string;
81506
81420
  loadingIcon: string;
81507
81421
  openAll: boolean;
81508
81422
  } & {
@@ -81602,6 +81516,7 @@ declare const VTreeview: {
81602
81516
  itemValue: SelectItemKey;
81603
81517
  itemChildren: SelectItemKey;
81604
81518
  itemProps: SelectItemKey;
81519
+ itemType: string;
81605
81520
  openOnClick: boolean;
81606
81521
  loadingIcon: string;
81607
81522
  openAll: boolean;
@@ -81746,6 +81661,10 @@ declare const VTreeview: {
81746
81661
  value: boolean;
81747
81662
  path: unknown[];
81748
81663
  }) => void>;
81664
+ itemType: {
81665
+ type: StringConstructor;
81666
+ default: string;
81667
+ };
81749
81668
  loadChildren: vue.PropType<(item: unknown) => Promise<void>>;
81750
81669
  loadingIcon: {
81751
81670
  type: StringConstructor;
@@ -81888,6 +81807,10 @@ declare const VTreeview: {
81888
81807
  value: boolean;
81889
81808
  path: unknown[];
81890
81809
  }) => void>;
81810
+ itemType: {
81811
+ type: StringConstructor;
81812
+ default: string;
81813
+ };
81891
81814
  loadChildren: vue.PropType<(item: unknown) => Promise<void>>;
81892
81815
  loadingIcon: {
81893
81816
  type: StringConstructor;
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.7.9
2
+ * Vuetify v3.7.10
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { shallowRef, Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, unref, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, toDisplayString, vModelText, resolveComponent, render } from 'vue';
7
+ import { shallowRef, Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, unref, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode, onUnmounted, createTextVNode, onBeforeUpdate, withModifiers, toDisplayString, vModelText, resolveComponent, render } from 'vue';
8
8
 
9
9
  // Types
10
10
  // eslint-disable-line vue/prefer-import-from-vue
@@ -2767,6 +2767,7 @@ function ExpandTransitionGenerator () {
2767
2767
  },
2768
2768
  onEnter(el) {
2769
2769
  const initialStyle = el._initialStyle;
2770
+ if (!initialStyle) return;
2770
2771
  el.style.setProperty('transition', 'none', 'important');
2771
2772
  // Hide overflow to account for collapsed margins in the calculated height
2772
2773
  el.style.overflow = 'hidden';
@@ -2806,6 +2807,7 @@ function ExpandTransitionGenerator () {
2806
2807
  resetStyles(el);
2807
2808
  }
2808
2809
  function resetStyles(el) {
2810
+ if (!el._initialStyle) return;
2809
2811
  const size = el._initialStyle[sizeProperty];
2810
2812
  el.style.overflow = el._initialStyle.overflow;
2811
2813
  if (size != null) el.style[sizeProperty] = size;
@@ -12398,6 +12400,34 @@ function useScrolling(listRef, textFieldRef) {
12398
12400
  }; // typescript doesn't know about vue's event merging
12399
12401
  }
12400
12402
 
12403
+ // https://github.com/vuetifyjs/vuetify/issues/20003
12404
+ /**
12405
+ * This composable is designed to track whether the mouse is in a mousedown state at any given time. The original motivation is that
12406
+ * it is impossible to distinguish whether a blur event is triggered by mousedown, keydown, or via JavaScript.
12407
+ * This composable allows for conditional logic when a blur is triggered by mousedown.
12408
+ */
12409
+
12410
+ function useIsMousedown() {
12411
+ const isMousedown = shallowRef(false);
12412
+ function mousedown() {
12413
+ isMousedown.value = true;
12414
+ }
12415
+ function mouseup() {
12416
+ isMousedown.value = false;
12417
+ }
12418
+ onMounted(() => {
12419
+ document.body.addEventListener('mousedown', mousedown);
12420
+ document.body.addEventListener('mouseup', mouseup);
12421
+ });
12422
+ onUnmounted(() => {
12423
+ document.body.removeEventListener('mousedown', mousedown);
12424
+ document.body.removeEventListener('mouseup', mouseup);
12425
+ });
12426
+ return {
12427
+ isMousedown
12428
+ };
12429
+ }
12430
+
12401
12431
  // Types
12402
12432
 
12403
12433
  const makeSelectProps = propsFactory({
@@ -12487,6 +12517,9 @@ const VSelect = genericComponent()({
12487
12517
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12488
12518
  });
12489
12519
  const form = useForm(props);
12520
+ const {
12521
+ isMousedown
12522
+ } = useIsMousedown();
12490
12523
  const selectedValues = computed(() => model.value.map(selection => selection.value));
12491
12524
  const isFocused = shallowRef(false);
12492
12525
  const label = computed(() => menu.value ? props.closeText : props.openText);
@@ -12584,7 +12617,7 @@ const VSelect = genericComponent()({
12584
12617
  }
12585
12618
  }
12586
12619
  function onBlur(e) {
12587
- if (!listRef.value?.$el.contains(e.relatedTarget)) {
12620
+ if (!listRef.value?.$el.contains(e.relatedTarget) && !isMousedown.value) {
12588
12621
  menu.value = false;
12589
12622
  }
12590
12623
  }
@@ -12996,6 +13029,9 @@ const VAutocomplete = genericComponent()({
12996
13029
  textColorClasses,
12997
13030
  textColorStyles
12998
13031
  } = useTextColor(color);
13032
+ const {
13033
+ isMousedown
13034
+ } = useIsMousedown();
12999
13035
  const search = useProxiedModel(props, 'search', '');
13000
13036
  const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
13001
13037
  const transformed = transformOut(v);
@@ -13169,6 +13205,11 @@ const VAutocomplete = genericComponent()({
13169
13205
  });
13170
13206
  }
13171
13207
  }
13208
+ function onBlur(e) {
13209
+ if (!isMousedown.value) {
13210
+ menu.value = false;
13211
+ }
13212
+ }
13172
13213
  watch(isFocused, (val, oldVal) => {
13173
13214
  if (val === oldVal) return;
13174
13215
  if (val) {
@@ -13178,7 +13219,6 @@ const VAutocomplete = genericComponent()({
13178
13219
  nextTick(() => isSelecting.value = false);
13179
13220
  } else {
13180
13221
  if (!props.multiple && search.value == null) model.value = [];
13181
- menu.value = false;
13182
13222
  if (!model.value.some(_ref3 => {
13183
13223
  let {
13184
13224
  title
@@ -13232,6 +13272,7 @@ const VAutocomplete = genericComponent()({
13232
13272
  "readonly": form.isReadonly.value,
13233
13273
  "placeholder": isDirty ? undefined : props.placeholder,
13234
13274
  "onClick:clear": onClear,
13275
+ "onBlur": onBlur,
13235
13276
  "onMousedown:control": onMousedownControl,
13236
13277
  "onKeydown": onKeydown
13237
13278
  }), {
@@ -16851,6 +16892,9 @@ const VCombobox = genericComponent()({
16851
16892
  return props.multiple ? transformed : transformed[0] ?? null;
16852
16893
  });
16853
16894
  const form = useForm(props);
16895
+ const {
16896
+ isMousedown
16897
+ } = useIsMousedown();
16854
16898
  const hasChips = computed(() => !!(props.chips || slots.chip));
16855
16899
  const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);
16856
16900
  const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
@@ -17014,6 +17058,12 @@ const VCombobox = genericComponent()({
17014
17058
  vTextFieldRef.value?.focus();
17015
17059
  }
17016
17060
  }
17061
+ function onBlur(e) {
17062
+ if (!isMousedown.value) {
17063
+ menu.value = false;
17064
+ }
17065
+ }
17066
+
17017
17067
  /** @param set - null means toggle */
17018
17068
  function select(item) {
17019
17069
  let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
@@ -17058,7 +17108,6 @@ const VCombobox = genericComponent()({
17058
17108
  watch(isFocused, (val, oldVal) => {
17059
17109
  if (val || val === oldVal) return;
17060
17110
  selectionIndex.value = -1;
17061
- menu.value = false;
17062
17111
  if (search.value) {
17063
17112
  if (props.multiple) {
17064
17113
  select(transformItem$3(props, search.value));
@@ -17116,6 +17165,7 @@ const VCombobox = genericComponent()({
17116
17165
  "readonly": form.isReadonly.value,
17117
17166
  "placeholder": isDirty ? undefined : props.placeholder,
17118
17167
  "onClick:clear": onClear,
17168
+ "onBlur": onBlur,
17119
17169
  "onMousedown:control": onMousedownControl,
17120
17170
  "onKeydown": onKeydown
17121
17171
  }), {
@@ -22202,8 +22252,9 @@ const VDatePicker = genericComponent()({
22202
22252
  targets.push(...['prev', 'next']);
22203
22253
  } else {
22204
22254
  let _date = adapter.date();
22205
- _date = adapter.setYear(_date, year.value);
22255
+ _date = adapter.startOfMonth(_date);
22206
22256
  _date = adapter.setMonth(_date, month.value);
22257
+ _date = adapter.setYear(_date, year.value);
22207
22258
  if (minDate.value) {
22208
22259
  const date = adapter.addDays(adapter.startOfMonth(_date), -1);
22209
22260
  adapter.isAfter(minDate.value, date) && targets.push('prev');
@@ -26853,6 +26904,8 @@ const VTabsWindowItem = genericComponent()({
26853
26904
  }
26854
26905
  });
26855
26906
 
26907
+ // Types
26908
+
26856
26909
  function parseItems(items) {
26857
26910
  if (!items) return [];
26858
26911
  return items.map(item => {
@@ -30089,6 +30142,11 @@ const VTreeviewChildren = genericComponent()({
30089
30142
  }
30090
30143
  }
30091
30144
  return () => slots.default?.() ?? props.items?.map(item => {
30145
+ if (item.type === 'divider') {
30146
+ return slots.divider?.({
30147
+ props: item.props
30148
+ }) ?? createVNode(VDivider, item.props, null);
30149
+ }
30092
30150
  const {
30093
30151
  children,
30094
30152
  props: itemProps
@@ -30125,6 +30183,11 @@ const VTreeviewChildren = genericComponent()({
30125
30183
  ...slotProps,
30126
30184
  item: item.raw,
30127
30185
  internalItem: item
30186
+ }) : undefined,
30187
+ subtitle: slots.subtitle ? slotProps => slots.subtitle?.({
30188
+ ...slotProps,
30189
+ item: item.raw,
30190
+ internalItem: item
30128
30191
  }) : undefined
30129
30192
  };
30130
30193
  const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
@@ -30182,7 +30245,7 @@ const makeVTreeviewProps = propsFactory({
30182
30245
  collapseIcon: '$treeviewCollapse',
30183
30246
  expandIcon: '$treeviewExpand',
30184
30247
  slim: true
30185
- }), ['itemType', 'nav', 'openStrategy']),
30248
+ }), ['nav', 'openStrategy']),
30186
30249
  modelValue: {
30187
30250
  type: Array,
30188
30251
  default: () => []
@@ -30802,7 +30865,7 @@ function createVuetify$1() {
30802
30865
  goTo
30803
30866
  };
30804
30867
  }
30805
- const version$1 = "3.7.9";
30868
+ const version$1 = "3.7.10";
30806
30869
  createVuetify$1.version = version$1;
30807
30870
 
30808
30871
  // Vue's inject() can only be used in setup
@@ -31055,7 +31118,7 @@ var index = /*#__PURE__*/Object.freeze({
31055
31118
 
31056
31119
  /* eslint-disable local-rules/sort-imports */
31057
31120
 
31058
- const version = "3.7.9";
31121
+ const version = "3.7.10";
31059
31122
 
31060
31123
  /* eslint-disable local-rules/sort-imports */
31061
31124