vuetify 3.7.8 → 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 (56) hide show
  1. package/dist/json/attributes.json +855 -851
  2. package/dist/json/importMap-labs.json +28 -28
  3. package/dist/json/importMap.json +182 -182
  4. package/dist/json/tags.json +1 -0
  5. package/dist/json/web-types.json +1675 -1665
  6. package/dist/vuetify-labs.css +4564 -4564
  7. package/dist/vuetify-labs.d.ts +41 -118
  8. package/dist/vuetify-labs.esm.js +75 -10
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +74 -9
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +5268 -5268
  13. package/dist/vuetify.d.ts +90 -182
  14. package/dist/vuetify.esm.js +64 -9
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +63 -8
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +463 -460
  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/display.mjs +3 -1
  36. package/lib/composables/display.mjs.map +1 -1
  37. package/lib/composables/mousedown.mjs +30 -0
  38. package/lib/composables/mousedown.mjs.map +1 -0
  39. package/lib/entry-bundler.mjs +1 -1
  40. package/lib/entry-bundler.mjs.map +1 -1
  41. package/lib/framework.mjs +1 -1
  42. package/lib/framework.mjs.map +1 -1
  43. package/lib/index.d.mts +64 -64
  44. package/lib/labs/VTreeview/VTreeview.mjs +1 -1
  45. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  46. package/lib/labs/VTreeview/VTreeviewChildren.mjs +13 -2
  47. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  48. package/lib/labs/VTreeview/index.d.mts +15 -0
  49. package/lib/labs/components.d.mts +15 -0
  50. package/lib/locale/da.mjs +5 -5
  51. package/lib/locale/da.mjs.map +1 -1
  52. package/lib/locale/de.mjs +3 -3
  53. package/lib/locale/de.mjs.map +1 -1
  54. package/lib/locale/fi.mjs +5 -5
  55. package/lib/locale/fi.mjs.map +1 -1
  56. 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.8
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;
@@ -7201,7 +7203,9 @@ const makeDisplayProps = propsFactory({
7201
7203
  mobileBreakpoint: [Number, String]
7202
7204
  }, 'display');
7203
7205
  function useDisplay() {
7204
- let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7206
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
7207
+ mobile: null
7208
+ };
7205
7209
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
7206
7210
  const display = inject$1(DisplaySymbol);
7207
7211
  if (!display) throw new Error('Could not find Vuetify display injection');
@@ -12396,6 +12400,34 @@ function useScrolling(listRef, textFieldRef) {
12396
12400
  }; // typescript doesn't know about vue's event merging
12397
12401
  }
12398
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
+
12399
12431
  // Types
12400
12432
 
12401
12433
  const makeSelectProps = propsFactory({
@@ -12485,6 +12517,9 @@ const VSelect = genericComponent()({
12485
12517
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12486
12518
  });
12487
12519
  const form = useForm(props);
12520
+ const {
12521
+ isMousedown
12522
+ } = useIsMousedown();
12488
12523
  const selectedValues = computed(() => model.value.map(selection => selection.value));
12489
12524
  const isFocused = shallowRef(false);
12490
12525
  const label = computed(() => menu.value ? props.closeText : props.openText);
@@ -12582,7 +12617,7 @@ const VSelect = genericComponent()({
12582
12617
  }
12583
12618
  }
12584
12619
  function onBlur(e) {
12585
- if (!listRef.value?.$el.contains(e.relatedTarget)) {
12620
+ if (!listRef.value?.$el.contains(e.relatedTarget) && !isMousedown.value) {
12586
12621
  menu.value = false;
12587
12622
  }
12588
12623
  }
@@ -12994,6 +13029,9 @@ const VAutocomplete = genericComponent()({
12994
13029
  textColorClasses,
12995
13030
  textColorStyles
12996
13031
  } = useTextColor(color);
13032
+ const {
13033
+ isMousedown
13034
+ } = useIsMousedown();
12997
13035
  const search = useProxiedModel(props, 'search', '');
12998
13036
  const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
12999
13037
  const transformed = transformOut(v);
@@ -13167,6 +13205,11 @@ const VAutocomplete = genericComponent()({
13167
13205
  });
13168
13206
  }
13169
13207
  }
13208
+ function onBlur(e) {
13209
+ if (!isMousedown.value) {
13210
+ menu.value = false;
13211
+ }
13212
+ }
13170
13213
  watch(isFocused, (val, oldVal) => {
13171
13214
  if (val === oldVal) return;
13172
13215
  if (val) {
@@ -13176,7 +13219,6 @@ const VAutocomplete = genericComponent()({
13176
13219
  nextTick(() => isSelecting.value = false);
13177
13220
  } else {
13178
13221
  if (!props.multiple && search.value == null) model.value = [];
13179
- menu.value = false;
13180
13222
  if (!model.value.some(_ref3 => {
13181
13223
  let {
13182
13224
  title
@@ -13230,6 +13272,7 @@ const VAutocomplete = genericComponent()({
13230
13272
  "readonly": form.isReadonly.value,
13231
13273
  "placeholder": isDirty ? undefined : props.placeholder,
13232
13274
  "onClick:clear": onClear,
13275
+ "onBlur": onBlur,
13233
13276
  "onMousedown:control": onMousedownControl,
13234
13277
  "onKeydown": onKeydown
13235
13278
  }), {
@@ -16849,6 +16892,9 @@ const VCombobox = genericComponent()({
16849
16892
  return props.multiple ? transformed : transformed[0] ?? null;
16850
16893
  });
16851
16894
  const form = useForm(props);
16895
+ const {
16896
+ isMousedown
16897
+ } = useIsMousedown();
16852
16898
  const hasChips = computed(() => !!(props.chips || slots.chip));
16853
16899
  const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);
16854
16900
  const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
@@ -17012,6 +17058,12 @@ const VCombobox = genericComponent()({
17012
17058
  vTextFieldRef.value?.focus();
17013
17059
  }
17014
17060
  }
17061
+ function onBlur(e) {
17062
+ if (!isMousedown.value) {
17063
+ menu.value = false;
17064
+ }
17065
+ }
17066
+
17015
17067
  /** @param set - null means toggle */
17016
17068
  function select(item) {
17017
17069
  let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
@@ -17056,7 +17108,6 @@ const VCombobox = genericComponent()({
17056
17108
  watch(isFocused, (val, oldVal) => {
17057
17109
  if (val || val === oldVal) return;
17058
17110
  selectionIndex.value = -1;
17059
- menu.value = false;
17060
17111
  if (search.value) {
17061
17112
  if (props.multiple) {
17062
17113
  select(transformItem$3(props, search.value));
@@ -17114,6 +17165,7 @@ const VCombobox = genericComponent()({
17114
17165
  "readonly": form.isReadonly.value,
17115
17166
  "placeholder": isDirty ? undefined : props.placeholder,
17116
17167
  "onClick:clear": onClear,
17168
+ "onBlur": onBlur,
17117
17169
  "onMousedown:control": onMousedownControl,
17118
17170
  "onKeydown": onKeydown
17119
17171
  }), {
@@ -22200,8 +22252,9 @@ const VDatePicker = genericComponent()({
22200
22252
  targets.push(...['prev', 'next']);
22201
22253
  } else {
22202
22254
  let _date = adapter.date();
22203
- _date = adapter.setYear(_date, year.value);
22255
+ _date = adapter.startOfMonth(_date);
22204
22256
  _date = adapter.setMonth(_date, month.value);
22257
+ _date = adapter.setYear(_date, year.value);
22205
22258
  if (minDate.value) {
22206
22259
  const date = adapter.addDays(adapter.startOfMonth(_date), -1);
22207
22260
  adapter.isAfter(minDate.value, date) && targets.push('prev');
@@ -26851,6 +26904,8 @@ const VTabsWindowItem = genericComponent()({
26851
26904
  }
26852
26905
  });
26853
26906
 
26907
+ // Types
26908
+
26854
26909
  function parseItems(items) {
26855
26910
  if (!items) return [];
26856
26911
  return items.map(item => {
@@ -30087,6 +30142,11 @@ const VTreeviewChildren = genericComponent()({
30087
30142
  }
30088
30143
  }
30089
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
+ }
30090
30150
  const {
30091
30151
  children,
30092
30152
  props: itemProps
@@ -30123,6 +30183,11 @@ const VTreeviewChildren = genericComponent()({
30123
30183
  ...slotProps,
30124
30184
  item: item.raw,
30125
30185
  internalItem: item
30186
+ }) : undefined,
30187
+ subtitle: slots.subtitle ? slotProps => slots.subtitle?.({
30188
+ ...slotProps,
30189
+ item: item.raw,
30190
+ internalItem: item
30126
30191
  }) : undefined
30127
30192
  };
30128
30193
  const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
@@ -30180,7 +30245,7 @@ const makeVTreeviewProps = propsFactory({
30180
30245
  collapseIcon: '$treeviewCollapse',
30181
30246
  expandIcon: '$treeviewExpand',
30182
30247
  slim: true
30183
- }), ['itemType', 'nav', 'openStrategy']),
30248
+ }), ['nav', 'openStrategy']),
30184
30249
  modelValue: {
30185
30250
  type: Array,
30186
30251
  default: () => []
@@ -30800,7 +30865,7 @@ function createVuetify$1() {
30800
30865
  goTo
30801
30866
  };
30802
30867
  }
30803
- const version$1 = "3.7.8";
30868
+ const version$1 = "3.7.10";
30804
30869
  createVuetify$1.version = version$1;
30805
30870
 
30806
30871
  // Vue's inject() can only be used in setup
@@ -31053,7 +31118,7 @@ var index = /*#__PURE__*/Object.freeze({
31053
31118
 
31054
31119
  /* eslint-disable local-rules/sort-imports */
31055
31120
 
31056
- const version = "3.7.8";
31121
+ const version = "3.7.10";
31057
31122
 
31058
31123
  /* eslint-disable local-rules/sort-imports */
31059
31124