@vuetify/nightly 3.8.7-master.2025-06-02 → 3.8.8-dev.2025-06-04

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 (180) hide show
  1. package/CHANGELOG.md +33 -11
  2. package/dist/json/attributes.json +2042 -1942
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +146 -146
  5. package/dist/json/tags.json +25 -0
  6. package/dist/json/web-types.json +3842 -3510
  7. package/dist/vuetify-labs.cjs +380 -152
  8. package/dist/vuetify-labs.css +5726 -5686
  9. package/dist/vuetify-labs.d.ts +2393 -1889
  10. package/dist/vuetify-labs.esm.js +381 -153
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +380 -152
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +374 -141
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +2674 -2634
  17. package/dist/vuetify.d.ts +1548 -1084
  18. package/dist/vuetify.esm.js +375 -142
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +374 -141
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +1226 -1208
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAlert/VAlert.css +6 -1
  26. package/lib/components/VAlert/VAlert.d.ts +35 -0
  27. package/lib/components/VAlert/VAlert.js +15 -10
  28. package/lib/components/VAlert/VAlert.js.map +1 -1
  29. package/lib/components/VAlert/VAlert.sass +7 -1
  30. package/lib/components/VAppBar/VAppBar.d.ts +15 -3
  31. package/lib/components/VAppBar/VAppBarNavIcon.d.ts +20 -10
  32. package/lib/components/VAutocomplete/VAutocomplete.css +6 -6
  33. package/lib/components/VAutocomplete/VAutocomplete.d.ts +154 -103
  34. package/lib/components/VAutocomplete/VAutocomplete.js +21 -3
  35. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  36. package/lib/components/VAutocomplete/VAutocomplete.sass +3 -9
  37. package/lib/components/VBtn/VBtn.d.ts +20 -10
  38. package/lib/components/VBtnGroup/VBtnGroup.css +30 -7
  39. package/lib/components/VBtnGroup/VBtnGroup.d.ts +58 -32
  40. package/lib/components/VBtnGroup/VBtnGroup.js +7 -3
  41. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  42. package/lib/components/VBtnGroup/VBtnGroup.sass +44 -17
  43. package/lib/components/VBtnToggle/VBtnToggle.d.ts +25 -0
  44. package/lib/components/VCard/VCard.d.ts +20 -10
  45. package/lib/components/VCheckbox/VCheckbox.d.ts +23 -13
  46. package/lib/components/VCheckbox/VCheckboxBtn.d.ts +20 -10
  47. package/lib/components/VChip/VChip.d.ts +20 -10
  48. package/lib/components/VChip/VChip.js +1 -0
  49. package/lib/components/VChip/VChip.js.map +1 -1
  50. package/lib/components/VChipGroup/VChipGroup.d.ts +10 -0
  51. package/lib/components/VCombobox/VCombobox.css +6 -6
  52. package/lib/components/VCombobox/VCombobox.d.ts +154 -103
  53. package/lib/components/VCombobox/VCombobox.js +22 -3
  54. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  55. package/lib/components/VCombobox/VCombobox.sass +3 -9
  56. package/lib/components/VDataTable/VDataTable.d.ts +60 -0
  57. package/lib/components/VDataTable/VDataTableHeaders.d.ts +13 -0
  58. package/lib/components/VDataTable/VDataTableHeaders.js +4 -2
  59. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  60. package/lib/components/VDataTable/VDataTableServer.d.ts +42 -0
  61. package/lib/components/VDataTable/VDataTableVirtual.d.ts +42 -0
  62. package/lib/components/VDatePicker/VDatePicker.d.ts +10 -0
  63. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +10 -0
  64. package/lib/components/VDatePicker/VDatePickerMonth.js +1 -1
  65. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  66. package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +20 -10
  67. package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +20 -10
  68. package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +20 -10
  69. package/lib/components/VFab/VFab.d.ts +20 -10
  70. package/lib/components/VField/VField.d.ts +3 -3
  71. package/lib/components/VFileInput/VFileInput.d.ts +15 -15
  72. package/lib/components/VInput/VInput.d.ts +4 -4
  73. package/lib/components/VList/VList.d.ts +13 -0
  74. package/lib/components/VList/VList.js +4 -1
  75. package/lib/components/VList/VList.js.map +1 -1
  76. package/lib/components/VList/VListChildren.js.map +1 -1
  77. package/lib/components/VList/VListItem.d.ts +23 -10
  78. package/lib/components/VList/VListItem.js +7 -3
  79. package/lib/components/VList/VListItem.js.map +1 -1
  80. package/lib/components/VList/list.d.ts +9 -2
  81. package/lib/components/VList/list.js +7 -0
  82. package/lib/components/VList/list.js.map +1 -1
  83. package/lib/components/VNumberInput/VNumberInput.d.ts +103 -89
  84. package/lib/components/VNumberInput/VNumberInput.js +19 -4
  85. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  86. package/lib/components/VOtpInput/VOtpInput.js +2 -1
  87. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  88. package/lib/components/VOverlay/VOverlay.css +1 -1
  89. package/lib/components/VOverlay/_variables.scss +1 -1
  90. package/lib/components/VRadio/VRadio.d.ts +20 -10
  91. package/lib/components/VRadioGroup/VRadioGroup.d.ts +23 -13
  92. package/lib/components/VRangeSlider/VRangeSlider.d.ts +3 -3
  93. package/lib/components/VSelect/VSelect.css +6 -0
  94. package/lib/components/VSelect/VSelect.d.ts +171 -107
  95. package/lib/components/VSelect/VSelect.js +21 -3
  96. package/lib/components/VSelect/VSelect.js.map +1 -1
  97. package/lib/components/VSelect/VSelect.sass +3 -0
  98. package/lib/components/VSelect/_mixins.scss +14 -0
  99. package/lib/components/VSelectionControl/VSelectionControl.d.ts +20 -10
  100. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +28 -14
  101. package/lib/components/VSlideGroup/VSlideGroup.d.ts +10 -0
  102. package/lib/components/VSlideGroup/VSlideGroup.js +2 -1
  103. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  104. package/lib/components/VSlider/VSlider.d.ts +3 -3
  105. package/lib/components/VSlider/VSliderThumb.d.ts +20 -10
  106. package/lib/components/VSlider/VSliderThumb.js +12 -6
  107. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  108. package/lib/components/VSlider/slider.js +4 -1
  109. package/lib/components/VSlider/slider.js.map +1 -1
  110. package/lib/components/VStepper/VStepperItem.d.ts +28 -14
  111. package/lib/components/VSwitch/VSwitch.d.ts +23 -13
  112. package/lib/components/VTable/VTable.css +6 -0
  113. package/lib/components/VTable/VTable.d.ts +55 -24
  114. package/lib/components/VTable/VTable.js +9 -2
  115. package/lib/components/VTable/VTable.js.map +1 -1
  116. package/lib/components/VTable/VTable.sass +14 -0
  117. package/lib/components/VTable/_variables.scss +1 -0
  118. package/lib/components/VTabs/VTab.d.ts +56 -28
  119. package/lib/components/VTabs/VTabs.d.ts +10 -0
  120. package/lib/components/VTextField/VTextField.d.ts +27 -27
  121. package/lib/components/VTextarea/VTextarea.d.ts +15 -15
  122. package/lib/components/VToolbar/VToolbar.d.ts +15 -3
  123. package/lib/components/VToolbar/VToolbar.js +6 -3
  124. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  125. package/lib/composables/calendar.d.ts +6 -0
  126. package/lib/composables/calendar.js +2 -1
  127. package/lib/composables/calendar.js.map +1 -1
  128. package/lib/composables/date/DateAdapter.d.ts +3 -3
  129. package/lib/composables/date/DateAdapter.js.map +1 -1
  130. package/lib/composables/date/adapters/string.d.ts +54 -0
  131. package/lib/composables/date/adapters/string.js +153 -0
  132. package/lib/composables/date/adapters/string.js.map +1 -0
  133. package/lib/composables/date/adapters/vuetify.d.ts +1 -1
  134. package/lib/composables/date/adapters/vuetify.js +4 -4
  135. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  136. package/lib/composables/date/date.d.ts +3 -3
  137. package/lib/composables/date/index.d.ts +1 -0
  138. package/lib/composables/date/index.js +1 -0
  139. package/lib/composables/date/index.js.map +1 -1
  140. package/lib/composables/filter.js +3 -0
  141. package/lib/composables/filter.js.map +1 -1
  142. package/lib/composables/iconSizes.d.ts +28 -0
  143. package/lib/composables/iconSizes.js +23 -0
  144. package/lib/composables/iconSizes.js.map +1 -0
  145. package/lib/composables/list-items.js +2 -2
  146. package/lib/composables/list-items.js.map +1 -1
  147. package/lib/composables/theme.d.ts +6 -1
  148. package/lib/composables/theme.js +94 -26
  149. package/lib/composables/theme.js.map +1 -1
  150. package/lib/composables/virtual.js +6 -1
  151. package/lib/composables/virtual.js.map +1 -1
  152. package/lib/directives/ripple/index.d.ts +2 -1
  153. package/lib/directives/ripple/index.js +12 -7
  154. package/lib/directives/ripple/index.js.map +1 -1
  155. package/lib/entry-bundler.d.ts +3 -3
  156. package/lib/entry-bundler.js +1 -1
  157. package/lib/entry-bundler.js.map +1 -1
  158. package/lib/framework.d.ts +73 -58
  159. package/lib/framework.js +1 -1
  160. package/lib/framework.js.map +1 -1
  161. package/lib/labs/VCalendar/VCalendar.d.ts +10 -0
  162. package/lib/labs/VColorInput/VColorInput.d.ts +3 -3
  163. package/lib/labs/VDateInput/VDateInput.d.ts +97 -87
  164. package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
  165. package/lib/labs/VFileUpload/VFileUploadItem.d.ts +20 -10
  166. package/lib/labs/VIconBtn/VIconBtn.d.ts +29 -29
  167. package/lib/labs/VIconBtn/VIconBtn.js +7 -11
  168. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  169. package/lib/labs/VStepperVertical/VStepperVertical.d.ts +20 -10
  170. package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +20 -10
  171. package/lib/labs/VTreeview/VTreeview.d.ts +13 -0
  172. package/lib/labs/VTreeview/VTreeviewItem.d.ts +20 -10
  173. package/lib/labs/entry-bundler.d.ts +3 -3
  174. package/lib/util/globals.d.ts +1 -0
  175. package/lib/util/globals.js +1 -0
  176. package/lib/util/globals.js.map +1 -1
  177. package/lib/util/helpers.d.ts +1 -0
  178. package/lib/util/helpers.js +9 -1
  179. package/lib/util/helpers.js.map +1 -1
  180. package/package.json +3 -1
@@ -145,14 +145,18 @@ export declare const makeVSwitchProps: <Defaults extends {
145
145
  default: boolean;
146
146
  }, "type" | "default"> & {
147
147
  type: import("vue").PropType<unknown extends Defaults["ripple"] ? boolean | {
148
- class: string;
148
+ class?: string;
149
+ keys?: number[];
149
150
  } | undefined : boolean | {
150
- class: string;
151
+ class?: string;
152
+ keys?: number[];
151
153
  } | Defaults["ripple"] | undefined>;
152
154
  default: unknown extends Defaults["ripple"] ? boolean | {
153
- class: string;
155
+ class?: string;
156
+ keys?: number[];
154
157
  } | undefined : NonNullable<boolean | {
155
- class: string;
158
+ class?: string;
159
+ keys?: number[];
156
160
  } | undefined> | Defaults["ripple"];
157
161
  };
158
162
  multiple: unknown extends Defaults["multiple"] ? {
@@ -391,7 +395,8 @@ export declare const VSwitch: {
391
395
  valueComparator: typeof import("../../util/index.js").deepEqual;
392
396
  density: import("../../composables/density.js").Density;
393
397
  ripple: boolean | {
394
- class: string;
398
+ class?: string;
399
+ keys?: number[];
395
400
  } | undefined;
396
401
  centerAffix: boolean;
397
402
  glow: boolean;
@@ -415,6 +420,7 @@ export declare const VSwitch: {
415
420
  baseColor?: string | undefined;
416
421
  prependIcon?: IconValue | undefined;
417
422
  appendIcon?: IconValue | undefined;
423
+ iconColor?: string | boolean | undefined;
418
424
  defaultsTarget?: string | undefined;
419
425
  falseIcon?: IconValue | undefined;
420
426
  trueIcon?: IconValue | undefined;
@@ -422,7 +428,6 @@ export declare const VSwitch: {
422
428
  falseValue?: any;
423
429
  'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
424
430
  'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
425
- iconColor?: string | boolean | undefined;
426
431
  hint?: string | undefined;
427
432
  hideDetails?: boolean | "auto" | undefined;
428
433
  } & {
@@ -452,7 +457,8 @@ export declare const VSwitch: {
452
457
  valueComparator: typeof import("../../util/index.js").deepEqual;
453
458
  density: import("../../composables/density.js").Density;
454
459
  ripple: boolean | {
455
- class: string;
460
+ class?: string;
461
+ keys?: number[];
456
462
  } | undefined;
457
463
  centerAffix: boolean;
458
464
  glow: boolean;
@@ -505,7 +511,8 @@ export declare const VSwitch: {
505
511
  valueComparator: typeof import("../../util/index.js").deepEqual;
506
512
  density: import("../../composables/density.js").Density;
507
513
  ripple: boolean | {
508
- class: string;
514
+ class?: string;
515
+ keys?: number[];
509
516
  } | undefined;
510
517
  centerAffix: boolean;
511
518
  glow: boolean;
@@ -529,6 +536,7 @@ export declare const VSwitch: {
529
536
  baseColor?: string | undefined;
530
537
  prependIcon?: IconValue | undefined;
531
538
  appendIcon?: IconValue | undefined;
539
+ iconColor?: string | boolean | undefined;
532
540
  defaultsTarget?: string | undefined;
533
541
  falseIcon?: IconValue | undefined;
534
542
  trueIcon?: IconValue | undefined;
@@ -536,7 +544,6 @@ export declare const VSwitch: {
536
544
  falseValue?: any;
537
545
  'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
538
546
  'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
539
- iconColor?: string | boolean | undefined;
540
547
  hint?: string | undefined;
541
548
  hideDetails?: boolean | "auto" | undefined;
542
549
  } & {
@@ -562,7 +569,8 @@ export declare const VSwitch: {
562
569
  valueComparator: typeof import("../../util/index.js").deepEqual;
563
570
  density: import("../../composables/density.js").Density;
564
571
  ripple: boolean | {
565
- class: string;
572
+ class?: string;
573
+ keys?: number[];
566
574
  } | undefined;
567
575
  centerAffix: boolean;
568
576
  glow: boolean;
@@ -592,7 +600,8 @@ export declare const VSwitch: {
592
600
  valueComparator: typeof import("../../util/index.js").deepEqual;
593
601
  density: import("../../composables/density.js").Density;
594
602
  ripple: boolean | {
595
- class: string;
603
+ class?: string;
604
+ keys?: number[];
596
605
  } | undefined;
597
606
  centerAffix: boolean;
598
607
  glow: boolean;
@@ -616,6 +625,7 @@ export declare const VSwitch: {
616
625
  baseColor?: string | undefined;
617
626
  prependIcon?: IconValue | undefined;
618
627
  appendIcon?: IconValue | undefined;
628
+ iconColor?: string | boolean | undefined;
619
629
  defaultsTarget?: string | undefined;
620
630
  falseIcon?: IconValue | undefined;
621
631
  trueIcon?: IconValue | undefined;
@@ -623,7 +633,6 @@ export declare const VSwitch: {
623
633
  falseValue?: any;
624
634
  'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
625
635
  'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
626
- iconColor?: string | boolean | undefined;
627
636
  hint?: string | undefined;
628
637
  hideDetails?: boolean | "auto" | undefined;
629
638
  } & {
@@ -653,7 +662,8 @@ export declare const VSwitch: {
653
662
  valueComparator: typeof import("../../util/index.js").deepEqual;
654
663
  density: import("../../composables/density.js").Density;
655
664
  ripple: boolean | {
656
- class: string;
665
+ class?: string;
666
+ keys?: number[];
657
667
  } | undefined;
658
668
  centerAffix: boolean;
659
669
  glow: boolean;
@@ -37,6 +37,12 @@
37
37
  width: 100%;
38
38
  height: 100%;
39
39
  }
40
+ .v-table.v-table--striped-even > .v-table__wrapper > table > tbody > tr:nth-child(even) {
41
+ background-color: rgba(var(--v-border-color), var(--v-hover-opacity));
42
+ }
43
+ .v-table.v-table--striped-odd > .v-table__wrapper > table > tbody > tr:nth-child(odd) {
44
+ background-color: rgba(var(--v-border-color), var(--v-hover-opacity));
45
+ }
40
46
  .v-table.v-table--fixed-header > .v-table__wrapper > table > thead > tr > th {
41
47
  background: rgb(var(--v-theme-surface));
42
48
  box-shadow: inset 0 -1px 0 rgba(var(--v-border-color), var(--v-border-opacity));
@@ -1,9 +1,11 @@
1
+ import type { PropType } from 'vue';
1
2
  export type VTableSlots = {
2
3
  default: never;
3
4
  top: never;
4
5
  bottom: never;
5
6
  wrapper: never;
6
7
  };
8
+ export type Striped = null | 'odd' | 'even';
7
9
  export declare const makeVTableProps: <Defaults extends {
8
10
  theme?: unknown;
9
11
  tag?: unknown;
@@ -14,69 +16,83 @@ export declare const makeVTableProps: <Defaults extends {
14
16
  fixedFooter?: unknown;
15
17
  height?: unknown;
16
18
  hover?: unknown;
19
+ striped?: unknown;
17
20
  } = {}>(defaults?: Defaults | undefined) => {
18
21
  theme: unknown extends Defaults["theme"] ? StringConstructor : {
19
- type: import("vue").PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
22
+ type: PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
20
23
  default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
21
24
  };
22
25
  tag: unknown extends Defaults["tag"] ? {
23
- type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
26
+ type: PropType<string | import("../../util/index.js").JSXComponent>;
24
27
  default: string;
25
28
  } : Omit<{
26
- type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
29
+ type: PropType<string | import("../../util/index.js").JSXComponent>;
27
30
  default: string;
28
31
  }, "type" | "default"> & {
29
- type: import("vue").PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | import("../../util/index.js").JSXComponent | Defaults["tag"]>;
32
+ type: PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | import("../../util/index.js").JSXComponent | Defaults["tag"]>;
30
33
  default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : NonNullable<string | import("../../util/index.js").JSXComponent> | Defaults["tag"];
31
34
  };
32
35
  density: unknown extends Defaults["density"] ? {
33
- type: import("vue").PropType<import("../../composables/density.js").Density>;
36
+ type: PropType<import("../../composables/density.js").Density>;
34
37
  default: string;
35
38
  validator: (v: any) => boolean;
36
39
  } : Omit<{
37
- type: import("vue").PropType<import("../../composables/density.js").Density>;
40
+ type: PropType<import("../../composables/density.js").Density>;
38
41
  default: string;
39
42
  validator: (v: any) => boolean;
40
43
  }, "type" | "default"> & {
41
- type: import("vue").PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : import("../../composables/density.js").Density | Defaults["density"]>;
44
+ type: PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : import("../../composables/density.js").Density | Defaults["density"]>;
42
45
  default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : NonNullable<import("../../composables/density.js").Density> | Defaults["density"];
43
46
  };
44
- class: unknown extends Defaults["class"] ? import("vue").PropType<any> : {
45
- type: import("vue").PropType<unknown extends Defaults["class"] ? any : any>;
47
+ class: unknown extends Defaults["class"] ? PropType<any> : {
48
+ type: PropType<unknown extends Defaults["class"] ? any : any>;
46
49
  default: unknown extends Defaults["class"] ? any : any;
47
50
  };
48
51
  style: unknown extends Defaults["style"] ? {
49
- type: import("vue").PropType<import("vue").StyleValue>;
52
+ type: PropType<import("vue").StyleValue>;
50
53
  default: null;
51
54
  } : Omit<{
52
- type: import("vue").PropType<import("vue").StyleValue>;
55
+ type: PropType<import("vue").StyleValue>;
53
56
  default: null;
54
57
  }, "type" | "default"> & {
55
- type: import("vue").PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : import("vue").StyleValue | Defaults["style"]>;
58
+ type: PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : import("vue").StyleValue | Defaults["style"]>;
56
59
  default: unknown extends Defaults["style"] ? import("vue").StyleValue : NonNullable<import("vue").StyleValue> | Defaults["style"];
57
60
  };
58
61
  fixedHeader: unknown extends Defaults["fixedHeader"] ? BooleanConstructor : {
59
- type: import("vue").PropType<unknown extends Defaults["fixedHeader"] ? boolean : boolean | Defaults["fixedHeader"]>;
62
+ type: PropType<unknown extends Defaults["fixedHeader"] ? boolean : boolean | Defaults["fixedHeader"]>;
60
63
  default: unknown extends Defaults["fixedHeader"] ? boolean : boolean | Defaults["fixedHeader"];
61
64
  };
62
65
  fixedFooter: unknown extends Defaults["fixedFooter"] ? BooleanConstructor : {
63
- type: import("vue").PropType<unknown extends Defaults["fixedFooter"] ? boolean : boolean | Defaults["fixedFooter"]>;
66
+ type: PropType<unknown extends Defaults["fixedFooter"] ? boolean : boolean | Defaults["fixedFooter"]>;
64
67
  default: unknown extends Defaults["fixedFooter"] ? boolean : boolean | Defaults["fixedFooter"];
65
68
  };
66
69
  height: unknown extends Defaults["height"] ? (StringConstructor | NumberConstructor)[] : {
67
- type: import("vue").PropType<unknown extends Defaults["height"] ? string | number : string | number | Defaults["height"]>;
70
+ type: PropType<unknown extends Defaults["height"] ? string | number : string | number | Defaults["height"]>;
68
71
  default: unknown extends Defaults["height"] ? string | number : NonNullable<string | number> | Defaults["height"];
69
72
  };
70
73
  hover: unknown extends Defaults["hover"] ? BooleanConstructor : {
71
- type: import("vue").PropType<unknown extends Defaults["hover"] ? boolean : boolean | Defaults["hover"]>;
74
+ type: PropType<unknown extends Defaults["hover"] ? boolean : boolean | Defaults["hover"]>;
72
75
  default: unknown extends Defaults["hover"] ? boolean : boolean | Defaults["hover"];
73
76
  };
77
+ striped: unknown extends Defaults["striped"] ? {
78
+ type: PropType<Striped>;
79
+ default: null;
80
+ validator: (v: any) => boolean;
81
+ } : Omit<{
82
+ type: PropType<Striped>;
83
+ default: null;
84
+ validator: (v: any) => boolean;
85
+ }, "type" | "default"> & {
86
+ type: PropType<unknown extends Defaults["striped"] ? Striped : Striped | Defaults["striped"]>;
87
+ default: unknown extends Defaults["striped"] ? Striped : Defaults["striped"] | NonNullable<Striped>;
88
+ };
74
89
  };
75
90
  export declare const VTable: {
76
91
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
77
92
  style: import("vue").StyleValue;
78
93
  tag: string | import("../../util/index.js").JSXComponent;
79
94
  density: import("../../composables/density.js").Density;
95
+ striped: Striped;
80
96
  hover: boolean;
81
97
  fixedHeader: boolean;
82
98
  fixedFooter: boolean;
@@ -106,6 +122,7 @@ export declare const VTable: {
106
122
  style: import("vue").StyleValue;
107
123
  tag: string | import("../../util/index.js").JSXComponent;
108
124
  density: import("../../composables/density.js").Density;
125
+ striped: Striped;
109
126
  hover: boolean;
110
127
  fixedHeader: boolean;
111
128
  fixedFooter: boolean;
@@ -125,6 +142,7 @@ export declare const VTable: {
125
142
  style: import("vue").StyleValue;
126
143
  tag: string | import("../../util/index.js").JSXComponent;
127
144
  density: import("../../composables/density.js").Density;
145
+ striped: Striped;
128
146
  hover: boolean;
129
147
  fixedHeader: boolean;
130
148
  fixedFooter: boolean;
@@ -154,6 +172,7 @@ export declare const VTable: {
154
172
  style: import("vue").StyleValue;
155
173
  tag: string | import("../../util/index.js").JSXComponent;
156
174
  density: import("../../composables/density.js").Density;
175
+ striped: Striped;
157
176
  hover: boolean;
158
177
  fixedHeader: boolean;
159
178
  fixedFooter: boolean;
@@ -165,6 +184,7 @@ export declare const VTable: {
165
184
  style: import("vue").StyleValue;
166
185
  tag: string | import("../../util/index.js").JSXComponent;
167
186
  density: import("../../composables/density.js").Density;
187
+ striped: Striped;
168
188
  hover: boolean;
169
189
  fixedHeader: boolean;
170
190
  fixedFooter: boolean;
@@ -194,6 +214,7 @@ export declare const VTable: {
194
214
  style: import("vue").StyleValue;
195
215
  tag: string | import("../../util/index.js").JSXComponent;
196
216
  density: import("../../composables/density.js").Density;
217
+ striped: Striped;
197
218
  hover: boolean;
198
219
  fixedHeader: boolean;
199
220
  fixedFooter: boolean;
@@ -205,42 +226,52 @@ export declare const VTable: {
205
226
  }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
206
227
  theme: StringConstructor;
207
228
  tag: {
208
- type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
229
+ type: PropType<string | import("../../util/index.js").JSXComponent>;
209
230
  default: string;
210
231
  };
211
232
  density: {
212
- type: import("vue").PropType<import("../../composables/density.js").Density>;
233
+ type: PropType<import("../../composables/density.js").Density>;
213
234
  default: string;
214
235
  validator: (v: any) => boolean;
215
236
  };
216
- class: import("vue").PropType<import("../../composables/component.js").ClassValue>;
237
+ class: PropType<import("../../composables/component.js").ClassValue>;
217
238
  style: {
218
- type: import("vue").PropType<import("vue").StyleValue>;
239
+ type: PropType<import("vue").StyleValue>;
219
240
  default: null;
220
241
  };
221
242
  fixedHeader: BooleanConstructor;
222
243
  fixedFooter: BooleanConstructor;
223
244
  height: (StringConstructor | NumberConstructor)[];
224
245
  hover: BooleanConstructor;
246
+ striped: {
247
+ type: PropType<Striped>;
248
+ default: null;
249
+ validator: (v: any) => boolean;
250
+ };
225
251
  }, import("vue").ExtractPropTypes<{
226
252
  theme: StringConstructor;
227
253
  tag: {
228
- type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
254
+ type: PropType<string | import("../../util/index.js").JSXComponent>;
229
255
  default: string;
230
256
  };
231
257
  density: {
232
- type: import("vue").PropType<import("../../composables/density.js").Density>;
258
+ type: PropType<import("../../composables/density.js").Density>;
233
259
  default: string;
234
260
  validator: (v: any) => boolean;
235
261
  };
236
- class: import("vue").PropType<import("../../composables/component.js").ClassValue>;
262
+ class: PropType<import("../../composables/component.js").ClassValue>;
237
263
  style: {
238
- type: import("vue").PropType<import("vue").StyleValue>;
264
+ type: PropType<import("vue").StyleValue>;
239
265
  default: null;
240
266
  };
241
267
  fixedHeader: BooleanConstructor;
242
268
  fixedFooter: BooleanConstructor;
243
269
  height: (StringConstructor | NumberConstructor)[];
244
270
  hover: BooleanConstructor;
271
+ striped: {
272
+ type: PropType<Striped>;
273
+ default: null;
274
+ validator: (v: any) => boolean;
275
+ };
245
276
  }>>;
246
277
  export type VTable = InstanceType<typeof VTable>;
@@ -7,12 +7,17 @@ import { makeComponentProps } from "../../composables/component.js";
7
7
  import { makeDensityProps, useDensity } from "../../composables/density.js";
8
8
  import { makeTagProps } from "../../composables/tag.js";
9
9
  import { makeThemeProps, provideTheme } from "../../composables/theme.js"; // Utilities
10
- import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.js";
10
+ import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
11
11
  export const makeVTableProps = propsFactory({
12
12
  fixedHeader: Boolean,
13
13
  fixedFooter: Boolean,
14
14
  height: [Number, String],
15
15
  hover: Boolean,
16
+ striped: {
17
+ type: String,
18
+ default: null,
19
+ validator: v => ['even', 'odd'].includes(v)
20
+ },
16
21
  ...makeComponentProps(),
17
22
  ...makeDensityProps(),
18
23
  ...makeTagProps(),
@@ -39,7 +44,9 @@ export const VTable = genericComponent()({
39
44
  'v-table--fixed-footer': props.fixedFooter,
40
45
  'v-table--has-top': !!slots.top,
41
46
  'v-table--has-bottom': !!slots.bottom,
42
- 'v-table--hover': props.hover
47
+ 'v-table--hover': props.hover,
48
+ 'v-table--striped-even': props.striped === 'even',
49
+ 'v-table--striped-odd': props.striped === 'odd'
43
50
  }, themeClasses.value, densityClasses.value, props.class]),
44
51
  "style": _normalizeStyle(props.style)
45
52
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"VTable.js","names":["makeComponentProps","makeDensityProps","useDensity","makeTagProps","makeThemeProps","provideTheme","convertToUnit","genericComponent","propsFactory","useRender","makeVTableProps","fixedHeader","Boolean","fixedFooter","height","Number","String","hover","VTable","name","props","setup","_ref","slots","emit","themeClasses","densityClasses","_createVNode","tag","_normalizeClass","top","bottom","value","class","_normalizeStyle","style","default","_createElementVNode","wrapper"],"sources":["../../../src/components/VTable/VTable.tsx"],"sourcesContent":["// Styles\nimport './VTable.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VTableSlots = {\n default: never\n top: never\n bottom: never\n wrapper: never\n}\n\nexport const makeVTableProps = propsFactory({\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n hover: Boolean,\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VTable')\n\nexport const VTable = genericComponent<VTableSlots>()({\n name: 'VTable',\n\n props: makeVTableProps(),\n\n setup (props, { slots, emit }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-table',\n {\n 'v-table--fixed-height': !!props.height,\n 'v-table--fixed-header': props.fixedHeader,\n 'v-table--fixed-footer': props.fixedFooter,\n 'v-table--has-top': !!slots.top,\n 'v-table--has-bottom': !!slots.bottom,\n 'v-table--hover': props.hover,\n },\n themeClasses.value,\n densityClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { slots.top?.() }\n\n { slots.default ? (\n <div\n class=\"v-table__wrapper\"\n style={{ height: convertToUnit(props.height) }}\n >\n <table>\n { slots.default() }\n </table>\n </div>\n ) : slots.wrapper?.()}\n\n { slots.bottom?.() }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VTable = InstanceType<typeof VTable>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,sCAErC;AAAA,SACSC,aAAa,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AASjE,OAAO,MAAMC,eAAe,GAAGF,YAAY,CAAC;EAC1CG,WAAW,EAAEC,OAAO;EACpBC,WAAW,EAAED,OAAO;EACpBE,MAAM,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;EACxBC,KAAK,EAAEL,OAAO;EAEd,GAAGZ,kBAAkB,CAAC,CAAC;EACvB,GAAGC,gBAAgB,CAAC,CAAC;EACrB,GAAGE,YAAY,CAAC,CAAC;EACjB,GAAGC,cAAc,CAAC;AACpB,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,MAAMc,MAAM,GAAGX,gBAAgB,CAAc,CAAC,CAAC;EACpDY,IAAI,EAAE,QAAQ;EAEdC,KAAK,EAAEV,eAAe,CAAC,CAAC;EAExBW,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG;IAAa,CAAC,GAAGpB,YAAY,CAACe,KAAK,CAAC;IAC5C,MAAM;MAAEM;IAAe,CAAC,GAAGxB,UAAU,CAACkB,KAAK,CAAC;IAE5CX,SAAS,CAAC,MAAAkB,YAAA,CAAAP,KAAA,CAAAQ,GAAA;MAAA,SAAAC,eAAA,CAEC,CACL,SAAS,EACT;QACE,uBAAuB,EAAE,CAAC,CAACT,KAAK,CAACN,MAAM;QACvC,uBAAuB,EAAEM,KAAK,CAACT,WAAW;QAC1C,uBAAuB,EAAES,KAAK,CAACP,WAAW;QAC1C,kBAAkB,EAAE,CAAC,CAACU,KAAK,CAACO,GAAG;QAC/B,qBAAqB,EAAE,CAAC,CAACP,KAAK,CAACQ,MAAM;QACrC,gBAAgB,EAAEX,KAAK,CAACH;MAC1B,CAAC,EACDQ,YAAY,CAACO,KAAK,EAClBN,cAAc,CAACM,KAAK,EACpBZ,KAAK,CAACa,KAAK,CACZ;MAAA,SAAAC,eAAA,CACOd,KAAK,CAACe,KAAK;IAAA;MAAAC,OAAA,EAAAA,CAAA,MAEjBb,KAAK,CAACO,GAAG,GAAG,CAAC,EAEbP,KAAK,CAACa,OAAO,GAAAC,mBAAA;QAAA;QAAA,SAGJ;UAAEvB,MAAM,EAAER,aAAa,CAACc,KAAK,CAACN,MAAM;QAAE;MAAC,IAAAuB,mBAAA,iBAG1Cd,KAAK,CAACa,OAAO,CAAC,CAAC,OAGnBb,KAAK,CAACe,OAAO,GAAG,CAAC,EAEnBf,KAAK,CAACQ,MAAM,GAAG,CAAC;IAAA,EAErB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VTable.js","names":["makeComponentProps","makeDensityProps","useDensity","makeTagProps","makeThemeProps","provideTheme","convertToUnit","genericComponent","propsFactory","useRender","makeVTableProps","fixedHeader","Boolean","fixedFooter","height","Number","String","hover","striped","type","default","validator","v","includes","VTable","name","props","setup","_ref","slots","emit","themeClasses","densityClasses","_createVNode","tag","_normalizeClass","top","bottom","value","class","_normalizeStyle","style","_createElementVNode","wrapper"],"sources":["../../../src/components/VTable/VTable.tsx"],"sourcesContent":["// Styles\nimport './VTable.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VTableSlots = {\n default: never\n top: never\n bottom: never\n wrapper: never\n}\n\nexport type Striped = null | 'odd' | 'even'\n\nexport const makeVTableProps = propsFactory({\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n hover: Boolean,\n striped: {\n type: String as PropType<Striped>,\n default: null,\n validator: (v: any) => ['even', 'odd'].includes(v),\n },\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VTable')\n\nexport const VTable = genericComponent<VTableSlots>()({\n name: 'VTable',\n\n props: makeVTableProps(),\n\n setup (props, { slots, emit }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-table',\n {\n 'v-table--fixed-height': !!props.height,\n 'v-table--fixed-header': props.fixedHeader,\n 'v-table--fixed-footer': props.fixedFooter,\n 'v-table--has-top': !!slots.top,\n 'v-table--has-bottom': !!slots.bottom,\n 'v-table--hover': props.hover,\n 'v-table--striped-even': props.striped === 'even',\n 'v-table--striped-odd': props.striped === 'odd',\n },\n themeClasses.value,\n densityClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { slots.top?.() }\n\n { slots.default ? (\n <div\n class=\"v-table__wrapper\"\n style={{ height: convertToUnit(props.height) }}\n >\n <table>\n { slots.default() }\n </table>\n </div>\n ) : slots.wrapper?.()}\n\n { slots.bottom?.() }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VTable = InstanceType<typeof VTable>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,sCAErC;AAAA,SACSC,aAAa,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,+BAEjE;AAYA,OAAO,MAAMC,eAAe,GAAGF,YAAY,CAAC;EAC1CG,WAAW,EAAEC,OAAO;EACpBC,WAAW,EAAED,OAAO;EACpBE,MAAM,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;EACxBC,KAAK,EAAEL,OAAO;EACdM,OAAO,EAAE;IACPC,IAAI,EAAEH,MAA2B;IACjCI,OAAO,EAAE,IAAI;IACbC,SAAS,EAAGC,CAAM,IAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAACC,QAAQ,CAACD,CAAC;EACnD,CAAC;EAED,GAAGtB,kBAAkB,CAAC,CAAC;EACvB,GAAGC,gBAAgB,CAAC,CAAC;EACrB,GAAGE,YAAY,CAAC,CAAC;EACjB,GAAGC,cAAc,CAAC;AACpB,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,MAAMoB,MAAM,GAAGjB,gBAAgB,CAAc,CAAC,CAAC;EACpDkB,IAAI,EAAE,QAAQ;EAEdC,KAAK,EAAEhB,eAAe,CAAC,CAAC;EAExBiB,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG;IAAa,CAAC,GAAG1B,YAAY,CAACqB,KAAK,CAAC;IAC5C,MAAM;MAAEM;IAAe,CAAC,GAAG9B,UAAU,CAACwB,KAAK,CAAC;IAE5CjB,SAAS,CAAC,MAAAwB,YAAA,CAAAP,KAAA,CAAAQ,GAAA;MAAA,SAAAC,eAAA,CAEC,CACL,SAAS,EACT;QACE,uBAAuB,EAAE,CAAC,CAACT,KAAK,CAACZ,MAAM;QACvC,uBAAuB,EAAEY,KAAK,CAACf,WAAW;QAC1C,uBAAuB,EAAEe,KAAK,CAACb,WAAW;QAC1C,kBAAkB,EAAE,CAAC,CAACgB,KAAK,CAACO,GAAG;QAC/B,qBAAqB,EAAE,CAAC,CAACP,KAAK,CAACQ,MAAM;QACrC,gBAAgB,EAAEX,KAAK,CAACT,KAAK;QAC7B,uBAAuB,EAAES,KAAK,CAACR,OAAO,KAAK,MAAM;QACjD,sBAAsB,EAAEQ,KAAK,CAACR,OAAO,KAAK;MAC5C,CAAC,EACDa,YAAY,CAACO,KAAK,EAClBN,cAAc,CAACM,KAAK,EACpBZ,KAAK,CAACa,KAAK,CACZ;MAAA,SAAAC,eAAA,CACOd,KAAK,CAACe,KAAK;IAAA;MAAArB,OAAA,EAAAA,CAAA,MAEjBS,KAAK,CAACO,GAAG,GAAG,CAAC,EAEbP,KAAK,CAACT,OAAO,GAAAsB,mBAAA;QAAA;QAAA,SAGJ;UAAE5B,MAAM,EAAER,aAAa,CAACoB,KAAK,CAACZ,MAAM;QAAE;MAAC,IAAA4B,mBAAA,iBAG1Cb,KAAK,CAACT,OAAO,CAAC,CAAC,OAGnBS,KAAK,CAACc,OAAO,GAAG,CAAC,EAEnBd,KAAK,CAACQ,MAAM,GAAG,CAAC;IAAA,EAErB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -48,6 +48,20 @@
48
48
  background: $table-hover-color
49
49
  pointer-events: none
50
50
  @include tools.absolute(true)
51
+
52
+ &.v-table--striped-even
53
+ > .v-table__wrapper
54
+ > table
55
+ > tbody
56
+ > tr:nth-child(even)
57
+ background-color: $table-stripe-color
58
+
59
+ &.v-table--striped-odd
60
+ > .v-table__wrapper
61
+ > table
62
+ > tbody
63
+ > tr:nth-child(odd)
64
+ background-color: $table-stripe-color
51
65
 
52
66
  &.v-table--fixed-header
53
67
  > .v-table__wrapper
@@ -18,6 +18,7 @@ $table-border: thin solid $table-border-color !default;
18
18
  $table-hover-color: rgba(var(--v-border-color), var(--v-hover-opacity)) !default;
19
19
  $table-line-height: 1.5 !default;
20
20
  $table-column-padding: 0 16px !default;
21
+ $table-stripe-color: rgba(var(--v-border-color), var(--v-hover-opacity)) !default;
21
22
  $table-transition-duration: 0.28s !default;
22
23
  $table-transition-property: box-shadow, opacity, background, height !default;
23
24
  $table-transition-timing-function: settings.$standard-easing !default;