vuetify 3.5.3 → 3.5.5

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 (159) hide show
  1. package/dist/json/attributes.json +2771 -2523
  2. package/dist/json/importMap-labs.json +12 -8
  3. package/dist/json/importMap.json +100 -100
  4. package/dist/json/tags.json +236 -169
  5. package/dist/json/web-types.json +3218 -2563
  6. package/dist/vuetify-labs.css +2265 -2242
  7. package/dist/vuetify-labs.d.ts +1234 -152
  8. package/dist/vuetify-labs.esm.js +582 -88
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +582 -88
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +1316 -1293
  13. package/dist/vuetify.d.ts +894 -187
  14. package/dist/vuetify.esm.js +148 -87
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +148 -87
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +652 -647
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/index.d.mts +9 -0
  22. package/lib/components/VAppBar/index.d.mts +18 -0
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -4
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  25. package/lib/components/VAutocomplete/index.d.mts +33 -6
  26. package/lib/components/VAvatar/VAvatar.mjs +2 -2
  27. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  28. package/lib/components/VAvatar/index.d.mts +9 -0
  29. package/lib/components/VBadge/index.d.mts +9 -0
  30. package/lib/components/VBanner/index.d.mts +9 -0
  31. package/lib/components/VBottomNavigation/index.d.mts +9 -0
  32. package/lib/components/VBreadcrumbs/index.d.mts +9 -0
  33. package/lib/components/VBtn/index.d.mts +9 -0
  34. package/lib/components/VBtnGroup/index.d.mts +9 -0
  35. package/lib/components/VBtnToggle/index.d.mts +9 -0
  36. package/lib/components/VCard/index.d.mts +9 -0
  37. package/lib/components/VCarousel/index.d.mts +9 -0
  38. package/lib/components/VChip/index.d.mts +9 -0
  39. package/lib/components/VColorPicker/VColorPicker.mjs +24 -12
  40. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  41. package/lib/components/VColorPicker/index.d.mts +9 -0
  42. package/lib/components/VCombobox/index.d.mts +33 -6
  43. package/lib/components/VDataIterator/index.d.mts +3 -3
  44. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  45. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  46. package/lib/components/VDataTable/index.d.mts +355 -117
  47. package/lib/components/VDataTable/types.mjs.map +1 -1
  48. package/lib/components/VDatePicker/VDatePicker.css +2 -21
  49. package/lib/components/VDatePicker/VDatePicker.mjs +15 -11
  50. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  51. package/lib/components/VDatePicker/VDatePicker.sass +3 -18
  52. package/lib/components/VDatePicker/VDatePickerHeader.css +2 -0
  53. package/lib/components/VDatePicker/VDatePickerHeader.sass +3 -0
  54. package/lib/components/VDatePicker/VDatePickerMonth.css +11 -5
  55. package/lib/components/VDatePicker/VDatePickerMonth.mjs +2 -1
  56. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  57. package/lib/components/VDatePicker/VDatePickerMonth.sass +13 -5
  58. package/lib/components/VDatePicker/VDatePickerMonths.css +2 -3
  59. package/lib/components/VDatePicker/VDatePickerMonths.mjs +6 -3
  60. package/lib/components/VDatePicker/VDatePickerMonths.mjs.map +1 -1
  61. package/lib/components/VDatePicker/VDatePickerMonths.sass +4 -3
  62. package/lib/components/VDatePicker/VDatePickerYears.css +2 -2
  63. package/lib/components/VDatePicker/VDatePickerYears.mjs +8 -1
  64. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  65. package/lib/components/VDatePicker/VDatePickerYears.sass +4 -2
  66. package/lib/components/VDatePicker/_variables.scss +14 -34
  67. package/lib/components/VDatePicker/index.d.mts +13 -4
  68. package/lib/components/VExpansionPanel/VExpansionPanel.css +14 -0
  69. package/lib/components/VExpansionPanel/VExpansionPanel.sass +14 -0
  70. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +9 -2
  71. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  72. package/lib/components/VExpansionPanel/index.d.mts +27 -0
  73. package/lib/components/VField/VField.css +20 -1
  74. package/lib/components/VField/VField.sass +19 -1
  75. package/lib/components/VField/index.d.mts +9 -0
  76. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  77. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  78. package/lib/components/VFileInput/index.d.mts +9 -0
  79. package/lib/components/VFooter/index.d.mts +9 -0
  80. package/lib/components/VImg/index.d.mts +9 -0
  81. package/lib/components/VList/VListItem.css +2 -1
  82. package/lib/components/VList/VListItem.sass +1 -0
  83. package/lib/components/VList/_variables.scss +2 -1
  84. package/lib/components/VList/index.d.mts +18 -0
  85. package/lib/components/VMenu/VMenu.mjs +5 -5
  86. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  87. package/lib/components/VMenu/shared.mjs.map +1 -1
  88. package/lib/components/VNavigationDrawer/index.d.mts +9 -0
  89. package/lib/components/VPagination/index.d.mts +9 -0
  90. package/lib/components/VProgressLinear/index.d.mts +9 -0
  91. package/lib/components/VRangeSlider/index.d.mts +9 -0
  92. package/lib/components/VSelect/VSelect.mjs +4 -3
  93. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  94. package/lib/components/VSelect/index.d.mts +33 -6
  95. package/lib/components/VSheet/index.d.mts +9 -0
  96. package/lib/components/VSlider/index.d.mts +9 -0
  97. package/lib/components/VSnackbar/VSnackbar.mjs +1 -2
  98. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  99. package/lib/components/VSnackbar/index.d.mts +9 -0
  100. package/lib/components/VStepper/index.d.mts +9 -0
  101. package/lib/components/VSystemBar/index.d.mts +9 -0
  102. package/lib/components/VTabs/index.d.mts +33 -6
  103. package/lib/components/VTextField/index.d.mts +33 -6
  104. package/lib/components/VTextarea/index.d.mts +9 -0
  105. package/lib/components/VTimeline/index.d.mts +9 -0
  106. package/lib/components/VToolbar/index.d.mts +9 -0
  107. package/lib/components/VTooltip/VTooltip.css +1 -0
  108. package/lib/components/VTooltip/VTooltip.sass +1 -0
  109. package/lib/components/VTooltip/_variables.scss +1 -0
  110. package/lib/components/index.d.mts +857 -151
  111. package/lib/composables/form.mjs +2 -1
  112. package/lib/composables/form.mjs.map +1 -1
  113. package/lib/composables/goto.mjs +16 -18
  114. package/lib/composables/goto.mjs.map +1 -1
  115. package/lib/composables/group.mjs +2 -0
  116. package/lib/composables/group.mjs.map +1 -1
  117. package/lib/composables/icons.mjs +17 -13
  118. package/lib/composables/icons.mjs.map +1 -1
  119. package/lib/composables/rounded.mjs +5 -1
  120. package/lib/composables/rounded.mjs.map +1 -1
  121. package/lib/composables/virtual.mjs +11 -3
  122. package/lib/composables/virtual.mjs.map +1 -1
  123. package/lib/entry-bundler.mjs +1 -1
  124. package/lib/framework.mjs +1 -1
  125. package/lib/iconsets/fa-svg.mjs +2 -1
  126. package/lib/iconsets/fa-svg.mjs.map +1 -1
  127. package/lib/index.d.mts +37 -36
  128. package/lib/labs/VCalendar/VCalendar.mjs +1 -1
  129. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
  130. package/lib/labs/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs +1 -1
  131. package/lib/labs/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs.map +1 -1
  132. package/lib/labs/VPicker/VPicker.css +2 -2
  133. package/lib/labs/VPicker/VPicker.sass +2 -2
  134. package/lib/labs/VPicker/_variables.scss +2 -4
  135. package/lib/labs/VPicker/index.d.mts +9 -0
  136. package/lib/labs/VSparkline/VBarline.mjs +138 -0
  137. package/lib/labs/VSparkline/VBarline.mjs.map +1 -0
  138. package/lib/labs/VSparkline/VSparkline.mjs +49 -0
  139. package/lib/labs/VSparkline/VSparkline.mjs.map +1 -0
  140. package/lib/labs/VSparkline/VTrendline.mjs +143 -0
  141. package/lib/labs/VSparkline/VTrendline.mjs.map +1 -0
  142. package/lib/labs/VSparkline/index.d.mts +374 -0
  143. package/lib/labs/VSparkline/index.mjs +2 -0
  144. package/lib/labs/VSparkline/index.mjs.map +1 -0
  145. package/lib/labs/VSparkline/util/line.mjs +52 -0
  146. package/lib/labs/VSparkline/util/line.mjs.map +1 -0
  147. package/lib/labs/VSparkline/util/path.mjs +60 -0
  148. package/lib/labs/VSparkline/util/path.mjs.map +1 -0
  149. package/lib/labs/components.d.mts +376 -1
  150. package/lib/labs/components.mjs +1 -0
  151. package/lib/labs/components.mjs.map +1 -1
  152. package/lib/locale/nl.mjs +1 -1
  153. package/lib/locale/nl.mjs.map +1 -1
  154. package/lib/util/helpers.mjs +10 -0
  155. package/lib/util/helpers.mjs.map +1 -1
  156. package/package.json +2 -2
  157. package/lib/components/VDatePicker/VDatePickerTitle.mjs +0 -81
  158. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +0 -1
  159. package/lib/components/VDatePicker/VDatePickerTitle.sass +0 -33
@@ -63,6 +63,7 @@ declare const VBtn: {
63
63
  disabled: boolean;
64
64
  size: string | number;
65
65
  tag: string;
66
+ tile: boolean;
66
67
  density: Density;
67
68
  slim: boolean;
68
69
  stacked: boolean;
@@ -133,6 +134,7 @@ declare const VBtn: {
133
134
  disabled: boolean;
134
135
  size: string | number;
135
136
  tag: string;
137
+ tile: boolean;
136
138
  density: Density;
137
139
  slim: boolean;
138
140
  stacked: boolean;
@@ -199,6 +201,7 @@ declare const VBtn: {
199
201
  size: string | number;
200
202
  tag: string;
201
203
  rounded: string | number | boolean;
204
+ tile: boolean;
202
205
  density: Density;
203
206
  slim: boolean;
204
207
  stacked: boolean;
@@ -236,6 +239,7 @@ declare const VBtn: {
236
239
  disabled: boolean;
237
240
  size: string | number;
238
241
  tag: string;
242
+ tile: boolean;
239
243
  density: Density;
240
244
  slim: boolean;
241
245
  stacked: boolean;
@@ -304,6 +308,7 @@ declare const VBtn: {
304
308
  size: string | number;
305
309
  tag: string;
306
310
  rounded: string | number | boolean;
311
+ tile: boolean;
307
312
  density: Density;
308
313
  slim: boolean;
309
314
  stacked: boolean;
@@ -325,6 +330,7 @@ declare const VBtn: {
325
330
  disabled: boolean;
326
331
  size: string | number;
327
332
  tag: string;
333
+ tile: boolean;
328
334
  density: Density;
329
335
  slim: boolean;
330
336
  stacked: boolean;
@@ -397,6 +403,7 @@ declare const VBtn: {
397
403
  size: string | number;
398
404
  tag: string;
399
405
  rounded: string | number | boolean;
406
+ tile: boolean;
400
407
  density: Density;
401
408
  slim: boolean;
402
409
  stacked: boolean;
@@ -446,6 +453,7 @@ declare const VBtn: {
446
453
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
447
454
  default: undefined;
448
455
  };
456
+ tile: BooleanConstructor;
449
457
  position: {
450
458
  type: PropType<"fixed" | "absolute" | "static" | "sticky" | "relative">;
451
459
  validator: (v: any) => boolean;
@@ -528,6 +536,7 @@ declare const VBtn: {
528
536
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
529
537
  default: undefined;
530
538
  };
539
+ tile: BooleanConstructor;
531
540
  position: {
532
541
  type: PropType<"fixed" | "absolute" | "static" | "sticky" | "relative">;
533
542
  validator: (v: any) => boolean;
@@ -12,6 +12,7 @@ declare const VBtnGroup: {
12
12
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
13
13
  style: vue.StyleValue;
14
14
  tag: string;
15
+ tile: boolean;
15
16
  density: Density;
16
17
  divided: boolean;
17
18
  } & {
@@ -34,6 +35,7 @@ declare const VBtnGroup: {
34
35
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
35
36
  style: vue.StyleValue;
36
37
  tag: string;
38
+ tile: boolean;
37
39
  density: Density;
38
40
  divided: boolean;
39
41
  } & {
@@ -57,6 +59,7 @@ declare const VBtnGroup: {
57
59
  style: vue.StyleValue;
58
60
  tag: string;
59
61
  rounded: string | number | boolean;
62
+ tile: boolean;
60
63
  density: Density;
61
64
  divided: boolean;
62
65
  }, true, {}, vue.SlotsType<Partial<{
@@ -74,6 +77,7 @@ declare const VBtnGroup: {
74
77
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
75
78
  style: vue.StyleValue;
76
79
  tag: string;
80
+ tile: boolean;
77
81
  density: Density;
78
82
  divided: boolean;
79
83
  } & {
@@ -97,6 +101,7 @@ declare const VBtnGroup: {
97
101
  style: vue.StyleValue;
98
102
  tag: string;
99
103
  rounded: string | number | boolean;
104
+ tile: boolean;
100
105
  density: Density;
101
106
  divided: boolean;
102
107
  }>;
@@ -107,6 +112,7 @@ declare const VBtnGroup: {
107
112
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
108
113
  style: vue.StyleValue;
109
114
  tag: string;
115
+ tile: boolean;
110
116
  density: Density;
111
117
  divided: boolean;
112
118
  } & {
@@ -130,6 +136,7 @@ declare const VBtnGroup: {
130
136
  style: vue.StyleValue;
131
137
  tag: string;
132
138
  rounded: string | number | boolean;
139
+ tile: boolean;
133
140
  density: Density;
134
141
  divided: boolean;
135
142
  }, {}, string, vue.SlotsType<Partial<{
@@ -152,6 +159,7 @@ declare const VBtnGroup: {
152
159
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
153
160
  default: undefined;
154
161
  };
162
+ tile: BooleanConstructor;
155
163
  elevation: {
156
164
  type: (StringConstructor | NumberConstructor)[];
157
165
  validator(v: any): boolean;
@@ -184,6 +192,7 @@ declare const VBtnGroup: {
184
192
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
185
193
  default: undefined;
186
194
  };
195
+ tile: BooleanConstructor;
187
196
  elevation: {
188
197
  type: (StringConstructor | NumberConstructor)[];
189
198
  validator(v: any): boolean;
@@ -68,6 +68,7 @@ declare const VBtnToggle: {
68
68
  disabled: boolean;
69
69
  multiple: boolean;
70
70
  tag: string;
71
+ tile: boolean;
71
72
  density: Density;
72
73
  divided: boolean;
73
74
  } & {
@@ -92,6 +93,7 @@ declare const VBtnToggle: {
92
93
  disabled: boolean;
93
94
  multiple: boolean;
94
95
  tag: string;
96
+ tile: boolean;
95
97
  density: Density;
96
98
  divided: boolean;
97
99
  } & {
@@ -111,6 +113,7 @@ declare const VBtnToggle: {
111
113
  multiple: boolean;
112
114
  tag: string;
113
115
  rounded: string | number | boolean;
116
+ tile: boolean;
114
117
  density: Density;
115
118
  divided: boolean;
116
119
  }, true, {}, vue.SlotsType<Partial<{
@@ -130,6 +133,7 @@ declare const VBtnToggle: {
130
133
  disabled: boolean;
131
134
  multiple: boolean;
132
135
  tag: string;
136
+ tile: boolean;
133
137
  density: Density;
134
138
  divided: boolean;
135
139
  } & {
@@ -153,6 +157,7 @@ declare const VBtnToggle: {
153
157
  multiple: boolean;
154
158
  tag: string;
155
159
  rounded: string | number | boolean;
160
+ tile: boolean;
156
161
  density: Density;
157
162
  divided: boolean;
158
163
  }>;
@@ -165,6 +170,7 @@ declare const VBtnToggle: {
165
170
  disabled: boolean;
166
171
  multiple: boolean;
167
172
  tag: string;
173
+ tile: boolean;
168
174
  density: Density;
169
175
  divided: boolean;
170
176
  } & {
@@ -190,6 +196,7 @@ declare const VBtnToggle: {
190
196
  multiple: boolean;
191
197
  tag: string;
192
198
  rounded: string | number | boolean;
199
+ tile: boolean;
193
200
  density: Density;
194
201
  divided: boolean;
195
202
  }, {}, string, vue.SlotsType<Partial<{
@@ -227,6 +234,7 @@ declare const VBtnToggle: {
227
234
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
228
235
  default: undefined;
229
236
  };
237
+ tile: BooleanConstructor;
230
238
  elevation: {
231
239
  type: (StringConstructor | NumberConstructor)[];
232
240
  validator(v: any): boolean;
@@ -268,6 +276,7 @@ declare const VBtnToggle: {
268
276
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
269
277
  default: undefined;
270
278
  };
279
+ tile: BooleanConstructor;
271
280
  elevation: {
272
281
  type: (StringConstructor | NumberConstructor)[];
273
282
  validator(v: any): boolean;
@@ -250,6 +250,7 @@ declare const VCard: {
250
250
  style: vue.StyleValue;
251
251
  disabled: boolean;
252
252
  tag: string;
253
+ tile: boolean;
253
254
  density: Density;
254
255
  ripple: boolean | {
255
256
  class: string;
@@ -326,6 +327,7 @@ declare const VCard: {
326
327
  style: vue.StyleValue;
327
328
  disabled: boolean;
328
329
  tag: string;
330
+ tile: boolean;
329
331
  density: Density;
330
332
  ripple: boolean | {
331
333
  class: string;
@@ -404,6 +406,7 @@ declare const VCard: {
404
406
  disabled: boolean;
405
407
  tag: string;
406
408
  rounded: string | number | boolean;
409
+ tile: boolean;
407
410
  density: Density;
408
411
  ripple: boolean | {
409
412
  class: string;
@@ -455,6 +458,7 @@ declare const VCard: {
455
458
  style: vue.StyleValue;
456
459
  disabled: boolean;
457
460
  tag: string;
461
+ tile: boolean;
458
462
  density: Density;
459
463
  ripple: boolean | {
460
464
  class: string;
@@ -533,6 +537,7 @@ declare const VCard: {
533
537
  disabled: boolean;
534
538
  tag: string;
535
539
  rounded: string | number | boolean;
540
+ tile: boolean;
536
541
  density: Density;
537
542
  ripple: boolean | {
538
543
  class: string;
@@ -550,6 +555,7 @@ declare const VCard: {
550
555
  style: vue.StyleValue;
551
556
  disabled: boolean;
552
557
  tag: string;
558
+ tile: boolean;
553
559
  density: Density;
554
560
  ripple: boolean | {
555
561
  class: string;
@@ -628,6 +634,7 @@ declare const VCard: {
628
634
  disabled: boolean;
629
635
  tag: string;
630
636
  rounded: string | number | boolean;
637
+ tile: boolean;
631
638
  density: Density;
632
639
  ripple: boolean | {
633
640
  class: string;
@@ -687,6 +694,7 @@ declare const VCard: {
687
694
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
688
695
  default: undefined;
689
696
  };
697
+ tile: BooleanConstructor;
690
698
  position: {
691
699
  type: PropType<"fixed" | "absolute" | "static" | "sticky" | "relative">;
692
700
  validator: (v: any) => boolean;
@@ -758,6 +766,7 @@ declare const VCard: {
758
766
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
759
767
  default: undefined;
760
768
  };
769
+ tile: BooleanConstructor;
761
770
  position: {
762
771
  type: PropType<"fixed" | "absolute" | "static" | "sticky" | "relative">;
763
772
  validator: (v: any) => boolean;
@@ -535,6 +535,7 @@ declare const VCarouselItem: {
535
535
  options: IntersectionObserverInit;
536
536
  cover: boolean;
537
537
  src: string | srcObject;
538
+ tile: boolean;
538
539
  } & {
539
540
  height?: string | number | undefined;
540
541
  width?: string | number | undefined;
@@ -586,6 +587,7 @@ declare const VCarouselItem: {
586
587
  options: IntersectionObserverInit;
587
588
  cover: boolean;
588
589
  src: string | srcObject;
590
+ tile: boolean;
589
591
  } & {
590
592
  height?: string | number | undefined;
591
593
  width?: string | number | undefined;
@@ -640,6 +642,7 @@ declare const VCarouselItem: {
640
642
  cover: boolean;
641
643
  src: string | srcObject;
642
644
  rounded: string | number | boolean;
645
+ tile: boolean;
643
646
  reverseTransition: string | boolean;
644
647
  }, true, {}, vue.SlotsType<Partial<{
645
648
  default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
@@ -669,6 +672,7 @@ declare const VCarouselItem: {
669
672
  options: IntersectionObserverInit;
670
673
  cover: boolean;
671
674
  src: string | srcObject;
675
+ tile: boolean;
672
676
  } & {
673
677
  height?: string | number | undefined;
674
678
  width?: string | number | undefined;
@@ -723,6 +727,7 @@ declare const VCarouselItem: {
723
727
  cover: boolean;
724
728
  src: string | srcObject;
725
729
  rounded: string | number | boolean;
730
+ tile: boolean;
726
731
  reverseTransition: string | boolean;
727
732
  }>;
728
733
  __isFragment?: undefined;
@@ -736,6 +741,7 @@ declare const VCarouselItem: {
736
741
  options: IntersectionObserverInit;
737
742
  cover: boolean;
738
743
  src: string | srcObject;
744
+ tile: boolean;
739
745
  } & {
740
746
  height?: string | number | undefined;
741
747
  width?: string | number | undefined;
@@ -790,6 +796,7 @@ declare const VCarouselItem: {
790
796
  cover: boolean;
791
797
  src: string | srcObject;
792
798
  rounded: string | number | boolean;
799
+ tile: boolean;
793
800
  reverseTransition: string | boolean;
794
801
  }, {}, string, vue.SlotsType<Partial<{
795
802
  default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
@@ -826,6 +833,7 @@ declare const VCarouselItem: {
826
833
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
827
834
  default: undefined;
828
835
  };
836
+ tile: BooleanConstructor;
829
837
  height: (StringConstructor | NumberConstructor)[];
830
838
  maxHeight: (StringConstructor | NumberConstructor)[];
831
839
  maxWidth: (StringConstructor | NumberConstructor)[];
@@ -883,6 +891,7 @@ declare const VCarouselItem: {
883
891
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
884
892
  default: undefined;
885
893
  };
894
+ tile: BooleanConstructor;
886
895
  height: (StringConstructor | NumberConstructor)[];
887
896
  maxHeight: (StringConstructor | NumberConstructor)[];
888
897
  maxWidth: (StringConstructor | NumberConstructor)[];
@@ -24,6 +24,7 @@ declare const VChip: {
24
24
  disabled: boolean;
25
25
  size: string | number;
26
26
  tag: string;
27
+ tile: boolean;
27
28
  density: Density;
28
29
  modelValue: boolean;
29
30
  ripple: boolean | {
@@ -131,6 +132,7 @@ declare const VChip: {
131
132
  disabled: boolean;
132
133
  size: string | number;
133
134
  tag: string;
135
+ tile: boolean;
134
136
  density: Density;
135
137
  modelValue: boolean;
136
138
  ripple: boolean | {
@@ -233,6 +235,7 @@ declare const VChip: {
233
235
  size: string | number;
234
236
  tag: string;
235
237
  rounded: string | number | boolean;
238
+ tile: boolean;
236
239
  density: Density;
237
240
  modelValue: boolean;
238
241
  ripple: boolean | {
@@ -287,6 +290,7 @@ declare const VChip: {
287
290
  disabled: boolean;
288
291
  size: string | number;
289
292
  tag: string;
293
+ tile: boolean;
290
294
  density: Density;
291
295
  modelValue: boolean;
292
296
  ripple: boolean | {
@@ -389,6 +393,7 @@ declare const VChip: {
389
393
  size: string | number;
390
394
  tag: string;
391
395
  rounded: string | number | boolean;
396
+ tile: boolean;
392
397
  density: Density;
393
398
  modelValue: boolean;
394
399
  ripple: boolean | {
@@ -414,6 +419,7 @@ declare const VChip: {
414
419
  disabled: boolean;
415
420
  size: string | number;
416
421
  tag: string;
422
+ tile: boolean;
417
423
  density: Density;
418
424
  modelValue: boolean;
419
425
  ripple: boolean | {
@@ -523,6 +529,7 @@ declare const VChip: {
523
529
  size: string | number;
524
530
  tag: string;
525
531
  rounded: string | number | boolean;
532
+ tile: boolean;
526
533
  density: Density;
527
534
  modelValue: boolean;
528
535
  ripple: boolean | {
@@ -589,6 +596,7 @@ declare const VChip: {
589
596
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
590
597
  default: undefined;
591
598
  };
599
+ tile: BooleanConstructor;
592
600
  value: null;
593
601
  disabled: BooleanConstructor;
594
602
  selectedClass: StringConstructor;
@@ -676,6 +684,7 @@ declare const VChip: {
676
684
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
677
685
  default: undefined;
678
686
  };
687
+ tile: BooleanConstructor;
679
688
  value: null;
680
689
  disabled: BooleanConstructor;
681
690
  selectedClass: StringConstructor;
@@ -11,7 +11,7 @@ import { makeVSheetProps, VSheet } from "../VSheet/VSheet.mjs"; // Composables
11
11
  import { provideDefaults } from "../../composables/defaults.mjs";
12
12
  import { useRtl } from "../../composables/locale.mjs";
13
13
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
14
- import { onMounted, ref } from 'vue';
14
+ import { computed, onMounted, ref, watch } from 'vue';
15
15
  import { extractColor, modes, nullColor } from "./util/index.mjs";
16
16
  import { consoleWarn, defineComponent, HSVtoCSS, omit, parseColor, propsFactory, RGBtoHSV, useRender } from "../../util/index.mjs"; // Types
17
17
  export const makeVColorPickerProps = propsFactory({
@@ -59,8 +59,8 @@ export const VColorPicker = defineComponent({
59
59
  },
60
60
  setup(props) {
61
61
  const mode = useProxiedModel(props, 'mode');
62
- const lastPickedColor = ref(null);
63
- const currentColor = useProxiedModel(props, 'modelValue', undefined, v => {
62
+ const hue = ref(null);
63
+ const model = useProxiedModel(props, 'modelValue', undefined, v => {
64
64
  if (v == null || v === '') return null;
65
65
  let c;
66
66
  try {
@@ -69,24 +69,36 @@ export const VColorPicker = defineComponent({
69
69
  consoleWarn(err);
70
70
  return null;
71
71
  }
72
- if (lastPickedColor.value) {
73
- c = {
74
- ...c,
75
- h: lastPickedColor.value.h
76
- };
77
- lastPickedColor.value = null;
78
- }
79
72
  return c;
80
73
  }, v => {
81
74
  if (!v) return null;
82
75
  return extractColor(v, props.modelValue);
83
76
  });
77
+ const currentColor = computed(() => {
78
+ return model.value ? {
79
+ ...model.value,
80
+ h: hue.value ?? model.value.h
81
+ } : null;
82
+ });
84
83
  const {
85
84
  rtlClasses
86
85
  } = useRtl();
86
+ let externalChange = true;
87
+ watch(model, v => {
88
+ if (!externalChange) {
89
+ // prevent hue shift from rgb conversion inaccuracy
90
+ externalChange = true;
91
+ return;
92
+ }
93
+ if (!v) return;
94
+ hue.value = v.h;
95
+ }, {
96
+ immediate: true
97
+ });
87
98
  const updateColor = hsva => {
88
- currentColor.value = hsva;
89
- lastPickedColor.value = hsva;
99
+ externalChange = false;
100
+ hue.value = hsva.h;
101
+ model.value = hsva;
90
102
  };
91
103
  onMounted(() => {
92
104
  if (!props.modes.includes(mode.value)) mode.value = props.modes[0];
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPicker.mjs","names":["VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","makeVSheetProps","VSheet","provideDefaults","useRtl","useProxiedModel","onMounted","ref","extractColor","modes","nullColor","consoleWarn","defineComponent","HSVtoCSS","omit","parseColor","propsFactory","RGBtoHSV","useRender","makeVColorPickerProps","canvasHeight","type","String","Number","default","disabled","Boolean","dotSize","hideCanvas","hideSliders","hideInputs","mode","validator","v","Object","keys","includes","Array","isArray","every","m","showSwatches","swatches","swatchesMaxHeight","modelValue","width","VColorPicker","name","props","emits","color","setup","lastPickedColor","currentColor","undefined","c","err","value","h","rtlClasses","updateColor","hsva","VSlider","trackColor","trackFillColor","sheetProps","filterProps","_createVNode","_mergeProps","rounded","elevation","theme","class","a","style","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { onMounted, ref } from 'vue'\nimport { extractColor, modes, nullColor } from './util'\nimport { consoleWarn, defineComponent, HSVtoCSS, omit, parseColor, propsFactory, RGBtoHSV, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly, PropType } from 'vue'\nimport type { Color, HSV } from '@/util'\n\nexport const makeVColorPickerProps = propsFactory({\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String as PropType<keyof typeof modes>,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<readonly (keyof typeof modes)[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<DeepReadonly<Color[][]>>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType<Record<string, unknown> | string | undefined | null>,\n },\n\n ...omit(makeVSheetProps({ width: 300 }), [\n 'height',\n 'location',\n 'minHeight',\n 'maxHeight',\n 'minWidth',\n 'maxWidth',\n ]),\n}, 'VColorPicker')\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n props: makeVColorPickerProps(),\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: keyof typeof modes) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const lastPickedColor = ref<HSV | null>(null)\n const currentColor = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n if (v == null || v === '') return null\n\n let c: HSV\n try {\n c = RGBtoHSV(parseColor(v as any))\n } catch (err) {\n consoleWarn(err as any)\n return null\n }\n\n if (lastPickedColor.value) {\n c = { ...c, h: lastPickedColor.value.h }\n lastPickedColor.value = null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n const { rtlClasses } = useRtl()\n\n const updateColor = (hsva: HSV) => {\n currentColor.value = hsva\n lastPickedColor.value = hsva\n }\n\n onMounted(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n provideDefaults({\n VSlider: {\n color: undefined,\n trackColor: undefined,\n trackFillColor: undefined,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n return (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n rtlClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-color-picker-color-hsv': HSVtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n },\n props.style,\n ]}\n { ...sheetProps }\n maxWidth={ props.width }\n >\n { !props.hideCanvas && (\n <VColorPickerCanvas\n key=\"canvas\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n dotSize={ props.dotSize }\n width={ props.width }\n height={ props.canvasHeight }\n />\n )}\n\n { (!props.hideSliders || !props.hideInputs) && (\n <div key=\"controls\" class=\"v-color-picker__controls\">\n { !props.hideSliders && (\n <VColorPickerPreview\n key=\"preview\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n hideAlpha={ !mode.value.endsWith('a') }\n disabled={ props.disabled }\n />\n )}\n\n { !props.hideInputs && (\n <VColorPickerEdit\n key=\"edit\"\n modes={ props.modes }\n mode={ mode.value }\n onUpdate:mode={ m => mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n )}\n </div>\n )}\n\n { props.showSwatches && (\n <VColorPickerSwatches\n key=\"swatches\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n maxHeight={ props.swatchesMaxHeight }\n swatches={ props.swatches }\n disabled={ props.disabled }\n />\n )}\n </VSheet>\n )\n })\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VColorPicker.mjs","names":["VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","makeVSheetProps","VSheet","provideDefaults","useRtl","useProxiedModel","computed","onMounted","ref","watch","extractColor","modes","nullColor","consoleWarn","defineComponent","HSVtoCSS","omit","parseColor","propsFactory","RGBtoHSV","useRender","makeVColorPickerProps","canvasHeight","type","String","Number","default","disabled","Boolean","dotSize","hideCanvas","hideSliders","hideInputs","mode","validator","v","Object","keys","includes","Array","isArray","every","m","showSwatches","swatches","swatchesMaxHeight","modelValue","width","VColorPicker","name","props","emits","color","setup","hue","model","undefined","c","err","currentColor","value","h","rtlClasses","externalChange","immediate","updateColor","hsva","VSlider","trackColor","trackFillColor","sheetProps","filterProps","_createVNode","_mergeProps","rounded","elevation","theme","class","a","style","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, onMounted, ref, watch } from 'vue'\nimport { extractColor, modes, nullColor } from './util'\nimport { consoleWarn, defineComponent, HSVtoCSS, omit, parseColor, propsFactory, RGBtoHSV, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly, PropType } from 'vue'\nimport type { Color, HSV } from '@/util'\n\nexport const makeVColorPickerProps = propsFactory({\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String as PropType<keyof typeof modes>,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<readonly (keyof typeof modes)[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<DeepReadonly<Color[][]>>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType<Record<string, unknown> | string | undefined | null>,\n },\n\n ...omit(makeVSheetProps({ width: 300 }), [\n 'height',\n 'location',\n 'minHeight',\n 'maxHeight',\n 'minWidth',\n 'maxWidth',\n ]),\n}, 'VColorPicker')\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n props: makeVColorPickerProps(),\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: keyof typeof modes) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const hue = ref<number | null>(null)\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n if (v == null || v === '') return null\n\n let c: HSV\n try {\n c = RGBtoHSV(parseColor(v as any))\n } catch (err) {\n consoleWarn(err as any)\n return null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n const currentColor = computed(() => {\n return model.value\n ? { ...model.value, h: hue.value ?? model.value.h }\n : null\n })\n const { rtlClasses } = useRtl()\n\n let externalChange = true\n watch(model, v => {\n if (!externalChange) {\n // prevent hue shift from rgb conversion inaccuracy\n externalChange = true\n return\n }\n if (!v) return\n hue.value = v.h\n }, { immediate: true })\n\n const updateColor = (hsva: HSV) => {\n externalChange = false\n hue.value = hsva.h\n model.value = hsva\n }\n\n onMounted(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n provideDefaults({\n VSlider: {\n color: undefined,\n trackColor: undefined,\n trackFillColor: undefined,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n return (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n rtlClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-color-picker-color-hsv': HSVtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n },\n props.style,\n ]}\n { ...sheetProps }\n maxWidth={ props.width }\n >\n { !props.hideCanvas && (\n <VColorPickerCanvas\n key=\"canvas\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n dotSize={ props.dotSize }\n width={ props.width }\n height={ props.canvasHeight }\n />\n )}\n\n { (!props.hideSliders || !props.hideInputs) && (\n <div key=\"controls\" class=\"v-color-picker__controls\">\n { !props.hideSliders && (\n <VColorPickerPreview\n key=\"preview\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n hideAlpha={ !mode.value.endsWith('a') }\n disabled={ props.disabled }\n />\n )}\n\n { !props.hideInputs && (\n <VColorPickerEdit\n key=\"edit\"\n modes={ props.modes }\n mode={ mode.value }\n onUpdate:mode={ m => mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n )}\n </div>\n )}\n\n { props.showSwatches && (\n <VColorPickerSwatches\n key=\"swatches\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n maxHeight={ props.swatchesMaxHeight }\n swatches={ props.swatches }\n disabled={ props.disabled }\n />\n )}\n </VSheet>\n )\n })\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}
@@ -88,6 +88,7 @@ declare const VColorPicker: {
88
88
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
89
89
  default: undefined;
90
90
  };
91
+ tile: BooleanConstructor;
91
92
  canvasHeight: {
92
93
  type: (StringConstructor | NumberConstructor)[];
93
94
  default: number;
@@ -169,6 +170,7 @@ declare const VColorPicker: {
169
170
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
170
171
  default: undefined;
171
172
  };
173
+ tile: BooleanConstructor;
172
174
  canvasHeight: {
173
175
  type: (StringConstructor | NumberConstructor)[];
174
176
  default: number;
@@ -225,6 +227,7 @@ declare const VColorPicker: {
225
227
  tag: string;
226
228
  mode: "rgb" | "rgba" | "hsl" | "hsla" | "hex" | "hexa";
227
229
  rounded: string | number | boolean;
230
+ tile: boolean;
228
231
  dotSize: string | number;
229
232
  modes: readonly ("rgb" | "rgba" | "hsl" | "hsla" | "hex" | "hexa")[];
230
233
  canvasHeight: string | number;
@@ -269,6 +272,7 @@ declare const VColorPicker: {
269
272
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
270
273
  default: undefined;
271
274
  };
275
+ tile: BooleanConstructor;
272
276
  canvasHeight: {
273
277
  type: (StringConstructor | NumberConstructor)[];
274
278
  default: number;
@@ -325,6 +329,7 @@ declare const VColorPicker: {
325
329
  tag: string;
326
330
  mode: "rgb" | "rgba" | "hsl" | "hsla" | "hex" | "hexa";
327
331
  rounded: string | number | boolean;
332
+ tile: boolean;
328
333
  dotSize: string | number;
329
334
  modes: readonly ("rgb" | "rgba" | "hsl" | "hsla" | "hex" | "hexa")[];
330
335
  canvasHeight: string | number;
@@ -366,6 +371,7 @@ declare const VColorPicker: {
366
371
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
367
372
  default: undefined;
368
373
  };
374
+ tile: BooleanConstructor;
369
375
  canvasHeight: {
370
376
  type: (StringConstructor | NumberConstructor)[];
371
377
  default: number;
@@ -425,6 +431,7 @@ declare const VColorPicker: {
425
431
  tag: string;
426
432
  mode: "rgb" | "rgba" | "hsl" | "hsla" | "hex" | "hexa";
427
433
  rounded: string | number | boolean;
434
+ tile: boolean;
428
435
  dotSize: string | number;
429
436
  modes: readonly ("rgb" | "rgba" | "hsl" | "hsla" | "hex" | "hexa")[];
430
437
  canvasHeight: string | number;
@@ -462,6 +469,7 @@ declare const VColorPicker: {
462
469
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
463
470
  default: undefined;
464
471
  };
472
+ tile: BooleanConstructor;
465
473
  canvasHeight: {
466
474
  type: (StringConstructor | NumberConstructor)[];
467
475
  default: number;
@@ -537,6 +545,7 @@ declare const VColorPicker: {
537
545
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
538
546
  default: undefined;
539
547
  };
548
+ tile: BooleanConstructor;
540
549
  canvasHeight: {
541
550
  type: (StringConstructor | NumberConstructor)[];
542
551
  default: number;