vuetify 3.1.9 → 3.1.11

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 (208) hide show
  1. package/dist/json/attributes.json +203 -27
  2. package/dist/json/importMap.json +92 -92
  3. package/dist/json/tags.json +46 -2
  4. package/dist/json/web-types.json +481 -49
  5. package/dist/vuetify-labs.css +167 -147
  6. package/dist/vuetify-labs.d.ts +56923 -14294
  7. package/dist/vuetify-labs.esm.js +136 -152
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +136 -152
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +76 -68
  12. package/dist/vuetify.d.ts +54804 -15357
  13. package/dist/vuetify.esm.js +133 -152
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +133 -152
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +667 -669
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.ts +6 -9
  21. package/lib/blueprints/md1.d.ts +6 -9
  22. package/lib/blueprints/md2.d.ts +6 -9
  23. package/lib/blueprints/md3.d.ts +6 -9
  24. package/lib/blueprints/md3.mjs +6 -0
  25. package/lib/blueprints/md3.mjs.map +1 -1
  26. package/lib/components/VAlert/index.d.ts +509 -83
  27. package/lib/components/VApp/VApp.css +1 -0
  28. package/lib/components/VApp/VApp.sass +1 -0
  29. package/lib/components/VApp/index.d.ts +158 -20
  30. package/lib/components/VAppBar/VAppBar.mjs +2 -2
  31. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  32. package/lib/components/VAppBar/index.d.ts +616 -110
  33. package/lib/components/VAutocomplete/VAutocomplete.mjs +2 -2
  34. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  35. package/lib/components/VAutocomplete/index.d.ts +1656 -130
  36. package/lib/components/VAvatar/index.d.ts +205 -29
  37. package/lib/components/VBadge/index.d.ts +284 -42
  38. package/lib/components/VBanner/index.d.ts +478 -84
  39. package/lib/components/VBottomNavigation/index.d.ts +321 -40
  40. package/lib/components/VBreadcrumbs/index.d.ts +325 -45
  41. package/lib/components/VBtn/VBtn.css +0 -5
  42. package/lib/components/VBtn/VBtn.mjs +40 -39
  43. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  44. package/lib/components/VBtn/VBtn.sass +0 -7
  45. package/lib/components/VBtn/_variables.scss +0 -2
  46. package/lib/components/VBtn/index.d.ts +452 -69
  47. package/lib/components/VBtnGroup/VBtnGroup.mjs +1 -7
  48. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  49. package/lib/components/VBtnGroup/index.d.ts +185 -26
  50. package/lib/components/VBtnToggle/VBtnToggle.mjs +2 -2
  51. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  52. package/lib/components/VBtnToggle/index.d.ts +245 -35
  53. package/lib/components/VCard/index.d.ts +938 -172
  54. package/lib/components/VCarousel/index.d.ts +561 -123
  55. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  56. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  57. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -4
  58. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  59. package/lib/components/VCheckbox/index.d.ts +831 -147
  60. package/lib/components/VChip/index.d.ts +473 -75
  61. package/lib/components/VChipGroup/index.d.ts +227 -32
  62. package/lib/components/VCode/index.d.ts +109 -16
  63. package/lib/components/VColorPicker/index.d.ts +284 -20
  64. package/lib/components/VCombobox/VCombobox.mjs +2 -2
  65. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  66. package/lib/components/VCombobox/index.d.ts +1668 -130
  67. package/lib/components/VCounter/index.d.ts +1894 -87
  68. package/lib/components/VDefaultsProvider/index.d.ts +131 -22
  69. package/lib/components/VDialog/VDialog.css +31 -24
  70. package/lib/components/VDialog/VDialog.mjs +2 -2
  71. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  72. package/lib/components/VDialog/VDialog.sass +19 -12
  73. package/lib/components/VDialog/index.d.ts +2362 -146
  74. package/lib/components/VDivider/index.d.ts +130 -23
  75. package/lib/components/VExpansionPanel/index.d.ts +719 -119
  76. package/lib/components/VField/index.d.ts +163 -21
  77. package/lib/components/VFileInput/index.d.ts +1038 -104
  78. package/lib/components/VFooter/index.d.ts +203 -28
  79. package/lib/components/VForm/index.d.ts +204 -23
  80. package/lib/components/VGrid/VCol.mjs +6 -5
  81. package/lib/components/VGrid/VCol.mjs.map +1 -1
  82. package/lib/components/VGrid/VRow.mjs +4 -4
  83. package/lib/components/VGrid/VRow.mjs.map +1 -1
  84. package/lib/components/VGrid/index.d.ts +733 -76
  85. package/lib/components/VHover/index.d.ts +182 -35
  86. package/lib/components/VIcon/index.d.ts +494 -50
  87. package/lib/components/VImg/index.d.ts +275 -46
  88. package/lib/components/VInput/index.d.ts +315 -53
  89. package/lib/components/VItemGroup/index.d.ts +308 -52
  90. package/lib/components/VKbd/VKbd.css +1 -0
  91. package/lib/components/VKbd/VKbd.sass +1 -0
  92. package/lib/components/VKbd/_variables.scss +1 -0
  93. package/lib/components/VKbd/index.d.ts +109 -16
  94. package/lib/components/VLabel/index.d.ts +113 -20
  95. package/lib/components/VLayout/index.d.ts +296 -41
  96. package/lib/components/VLazy/VLazy.mjs +4 -1
  97. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  98. package/lib/components/VLazy/index.d.ts +219 -30
  99. package/lib/components/VList/VListChildren.mjs +2 -2
  100. package/lib/components/VList/VListChildren.mjs.map +1 -1
  101. package/lib/components/VList/VListGroup.mjs +1 -4
  102. package/lib/components/VList/VListGroup.mjs.map +1 -1
  103. package/lib/components/VList/VListItem.mjs +1 -1
  104. package/lib/components/VList/VListItem.mjs.map +1 -1
  105. package/lib/components/VList/index.d.ts +1461 -223
  106. package/lib/components/VLocaleProvider/index.d.ts +121 -20
  107. package/lib/components/VMain/index.d.ts +118 -17
  108. package/lib/components/VMenu/VMenu.css +4 -4
  109. package/lib/components/VMenu/VMenu.mjs +2 -2
  110. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  111. package/lib/components/VMenu/VMenu.sass +1 -1
  112. package/lib/components/VMenu/index.d.ts +2368 -142
  113. package/lib/components/VMessages/index.d.ts +1921 -98
  114. package/lib/components/VNavigationDrawer/index.d.ts +379 -56
  115. package/lib/components/VOverlay/VOverlay.css +2 -2
  116. package/lib/components/VOverlay/VOverlay.mjs +1 -4
  117. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  118. package/lib/components/VOverlay/VOverlay.sass +1 -1
  119. package/lib/components/VOverlay/_variables.scss +1 -1
  120. package/lib/components/VOverlay/index.d.ts +519 -85
  121. package/lib/components/VPagination/index.d.ts +502 -68
  122. package/lib/components/VParallax/VParallax.mjs +3 -3
  123. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  124. package/lib/components/VParallax/index.d.ts +141 -28
  125. package/lib/components/VProgressCircular/index.d.ts +186 -25
  126. package/lib/components/VProgressLinear/index.d.ts +319 -48
  127. package/lib/components/VRadio/index.d.ts +313 -57
  128. package/lib/components/VRadioGroup/VRadioGroup.mjs +4 -6
  129. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  130. package/lib/components/VRadioGroup/index.d.ts +463 -83
  131. package/lib/components/VRangeSlider/index.d.ts +528 -80
  132. package/lib/components/VRating/index.d.ts +305 -43
  133. package/lib/components/VResponsive/index.d.ts +142 -27
  134. package/lib/components/VSelect/VSelect.mjs +2 -2
  135. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  136. package/lib/components/VSelect/index.d.ts +3060 -328
  137. package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -4
  138. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  139. package/lib/components/VSelectionControl/index.d.ts +76 -4
  140. package/lib/components/VSelectionControlGroup/index.d.ts +242 -38
  141. package/lib/components/VSheet/VSheet.mjs +1 -7
  142. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  143. package/lib/components/VSheet/index.d.ts +194 -31
  144. package/lib/components/VSlideGroup/index.d.ts +475 -83
  145. package/lib/components/VSlider/index.d.ts +521 -79
  146. package/lib/components/VSlider/slider.mjs +2 -5
  147. package/lib/components/VSlider/slider.mjs.map +1 -1
  148. package/lib/components/VSnackbar/VSnackbar.mjs +2 -2
  149. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  150. package/lib/components/VSnackbar/index.d.ts +1219 -81
  151. package/lib/components/VSwitch/VSwitch.mjs +2 -2
  152. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  153. package/lib/components/VSwitch/index.d.ts +498 -92
  154. package/lib/components/VSystemBar/index.d.ts +184 -27
  155. package/lib/components/VTable/index.d.ts +190 -35
  156. package/lib/components/VTabs/VTab.mjs +7 -23
  157. package/lib/components/VTabs/VTab.mjs.map +1 -1
  158. package/lib/components/VTabs/VTabs.mjs +15 -23
  159. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  160. package/lib/components/VTabs/index.d.ts +623 -71
  161. package/lib/components/VTextField/VTextField.mjs +8 -5
  162. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  163. package/lib/components/VTextField/index.d.ts +1404 -106
  164. package/lib/components/VTextarea/VTextarea.mjs +7 -1
  165. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  166. package/lib/components/VTextarea/index.d.ts +1014 -102
  167. package/lib/components/VThemeProvider/index.d.ts +124 -19
  168. package/lib/components/VTimeline/index.d.ts +441 -71
  169. package/lib/components/VToolbar/VToolbar.mjs +1 -4
  170. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  171. package/lib/components/VToolbar/index.d.ts +542 -93
  172. package/lib/components/VTooltip/VTooltip.css +3 -3
  173. package/lib/components/VTooltip/VTooltip.mjs +2 -2
  174. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  175. package/lib/components/VTooltip/VTooltip.sass +1 -1
  176. package/lib/components/VTooltip/index.d.ts +1263 -81
  177. package/lib/components/VValidation/index.d.ts +201 -30
  178. package/lib/components/VWindow/index.d.ts +527 -95
  179. package/lib/components/index.d.ts +55131 -15681
  180. package/lib/components/transitions/index.d.ts +2097 -308
  181. package/lib/composables/defaults.mjs +1 -1
  182. package/lib/composables/defaults.mjs.map +1 -1
  183. package/lib/composables/display.mjs +2 -0
  184. package/lib/composables/display.mjs.map +1 -1
  185. package/lib/composables/form.mjs.map +1 -1
  186. package/lib/entry-bundler.mjs +1 -1
  187. package/lib/entry-bundler.mjs.map +1 -1
  188. package/lib/framework.mjs +1 -1
  189. package/lib/framework.mjs.map +1 -1
  190. package/lib/index.d.ts +31 -34
  191. package/lib/labs/VDataTable/VDataTable.css +12 -0
  192. package/lib/labs/VDataTable/VDataTable.sass +6 -0
  193. package/lib/labs/VDataTable/VDataTableRow.mjs +2 -0
  194. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  195. package/lib/labs/VDataTable/VDataTableRows.mjs +1 -0
  196. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  197. package/lib/labs/VDataTable/index.d.ts +4176 -1016
  198. package/lib/labs/VVirtualScroll/index.d.ts +32 -1
  199. package/lib/labs/components.d.ts +4212 -1026
  200. package/lib/styles/main.css +4 -0
  201. package/lib/styles/settings/_utilities.scss +7 -0
  202. package/lib/util/animation.mjs +8 -1
  203. package/lib/util/animation.mjs.map +1 -1
  204. package/lib/util/defineComponent.mjs +12 -5
  205. package/lib/util/defineComponent.mjs.map +1 -1
  206. package/lib/util/helpers.mjs +4 -0
  207. package/lib/util/helpers.mjs.map +1 -1
  208. package/package.json +3 -2
@@ -1,11 +1,15 @@
1
1
  import * as vue from 'vue';
2
- import { PropType, JSXComponent, ComputedRef, Ref } from 'vue';
2
+ import { ComponentPropsOptions, ExtractPropTypes, PropType, JSXComponent, ComputedRef, Ref } from 'vue';
3
3
 
4
- type Density = null | 'default' | 'comfortable' | 'compact';
4
+ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
6
+ }
5
7
 
6
8
  type EventProp<T = (...args: any[]) => any> = T | T[];
7
9
  declare const EventProp: PropType<EventProp<(...args: any[]) => any>>;
8
10
 
11
+ type Density = null | 'default' | 'comfortable' | 'compact';
12
+
9
13
  type ValidationResult = string | boolean;
10
14
  type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>);
11
15
 
@@ -26,81 +30,320 @@ interface VInputSlot {
26
30
  validate: () => void;
27
31
  }
28
32
 
29
- declare const VSlider: vue.DefineComponent<{
30
- reverse: boolean;
31
- max: string | number;
32
- error: boolean;
33
- direction: "horizontal" | "vertical";
34
- disabled: boolean;
35
- readonly: boolean;
36
- step: string | number;
37
- min: string | number;
38
- elevation: NonNullable<string | number>;
39
- messages: string | string[];
40
- density: Density;
41
- modelValue: string | number;
42
- focused: boolean;
43
- errorMessages: string | string[];
44
- maxErrors: string | number;
45
- rules: ValidationRule[];
46
- showTicks: boolean | "always";
47
- tickSize: string | number;
48
- trackSize: string | number;
49
- thumbSize: string | number;
50
- } & {
51
- id?: string | undefined;
52
- name?: string | undefined;
53
- color?: string | undefined;
54
- label?: string | undefined;
55
- rounded?: string | number | boolean | undefined;
56
- prependIcon?: IconValue | undefined;
57
- appendIcon?: IconValue | undefined;
58
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
59
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
60
- validateOn?: "input" | "blur" | "submit" | undefined;
61
- validationValue?: any;
62
- hideDetails?: boolean | "auto" | undefined;
63
- trackColor?: string | undefined;
64
- trackFillColor?: string | undefined;
65
- thumbColor?: string | undefined;
66
- thumbLabel?: boolean | "always" | undefined;
67
- ticks?: number[] | Record<number, string> | undefined;
68
- } & {
69
- $children?: {} | vue.VNodeChild | {
70
- default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
71
- prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
72
- append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
73
- details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
74
- 'tick-label'?: (() => vue.VNodeChild) | undefined;
75
- 'thumb-label'?: (() => vue.VNodeChild) | undefined;
76
- };
77
- $slots?: {
78
- default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
79
- prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
80
- append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
81
- details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
82
- 'tick-label'?: (() => vue.VNodeChild) | undefined;
83
- 'thumb-label'?: (() => vue.VNodeChild) | undefined;
84
- } | undefined;
85
- 'v-slots'?: {
86
- default?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
87
- prepend?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
88
- append?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
89
- details?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
90
- 'tick-label'?: false | (() => vue.VNodeChild) | undefined;
91
- 'thumb-label'?: false | (() => vue.VNodeChild) | undefined;
92
- } | undefined;
93
- } & {
94
- "v-slot:default"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
95
- "v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
96
- "v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
97
- "v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
98
- "v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
99
- "v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
100
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
101
- 'update:focused': (value: boolean) => boolean;
102
- 'update:modelValue': (v: number) => boolean;
103
- }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
33
+ declare const VSlider: {
34
+ new (...args: any[]): {
35
+ $: vue.ComponentInternalInstance;
36
+ $data: {};
37
+ $props: Partial<{
38
+ reverse: boolean;
39
+ max: string | number;
40
+ error: boolean;
41
+ direction: "horizontal" | "vertical";
42
+ disabled: boolean;
43
+ readonly: boolean;
44
+ step: string | number;
45
+ min: string | number;
46
+ elevation: NonNullable<string | number>;
47
+ messages: string | string[];
48
+ rounded: string | number | boolean;
49
+ density: Density;
50
+ modelValue: string | number;
51
+ focused: boolean;
52
+ errorMessages: string | string[];
53
+ maxErrors: string | number;
54
+ rules: ValidationRule[];
55
+ showTicks: boolean | "always";
56
+ tickSize: string | number;
57
+ trackSize: string | number;
58
+ thumbLabel: boolean | "always" | undefined;
59
+ thumbSize: string | number;
60
+ }> & Omit<{
61
+ reverse: boolean;
62
+ max: string | number;
63
+ error: boolean;
64
+ direction: "horizontal" | "vertical";
65
+ disabled: boolean;
66
+ readonly: boolean;
67
+ step: string | number;
68
+ min: string | number;
69
+ elevation: NonNullable<string | number>;
70
+ messages: string | string[];
71
+ density: Density;
72
+ modelValue: string | number;
73
+ focused: boolean;
74
+ errorMessages: string | string[];
75
+ maxErrors: string | number;
76
+ rules: ValidationRule[];
77
+ showTicks: boolean | "always";
78
+ tickSize: string | number;
79
+ trackSize: string | number;
80
+ thumbSize: string | number;
81
+ } & {
82
+ id?: string | undefined;
83
+ name?: string | undefined;
84
+ color?: string | undefined;
85
+ label?: string | undefined;
86
+ rounded?: string | number | boolean | undefined;
87
+ prependIcon?: IconValue | undefined;
88
+ appendIcon?: IconValue | undefined;
89
+ 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
90
+ 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
91
+ validateOn?: "input" | "blur" | "submit" | undefined;
92
+ validationValue?: any;
93
+ hideDetails?: boolean | "auto" | undefined;
94
+ trackColor?: string | undefined;
95
+ trackFillColor?: string | undefined;
96
+ thumbColor?: string | undefined;
97
+ thumbLabel?: boolean | "always" | undefined;
98
+ ticks?: number[] | Record<number, string> | undefined;
99
+ } & {
100
+ $children?: {} | vue.VNodeChild | {
101
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
102
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
103
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
104
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
105
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
106
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
107
+ };
108
+ $slots?: {
109
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
110
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
111
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
112
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
113
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
114
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
115
+ } | undefined;
116
+ 'v-slots'?: {
117
+ default?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
118
+ prepend?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
119
+ append?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
120
+ details?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
121
+ 'tick-label'?: false | (() => vue.VNodeChild) | undefined;
122
+ 'thumb-label'?: false | (() => vue.VNodeChild) | undefined;
123
+ } | undefined;
124
+ } & {
125
+ "v-slot:default"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
126
+ "v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
127
+ "v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
128
+ "v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
129
+ "v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
130
+ "v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
131
+ } & {
132
+ "onUpdate:modelValue"?: ((v: number) => any) | undefined;
133
+ "onUpdate:focused"?: ((value: boolean) => any) | undefined;
134
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "max" | "error" | "direction" | "disabled" | "readonly" | "step" | "min" | "elevation" | "messages" | "rounded" | "density" | "modelValue" | "focused" | "errorMessages" | "maxErrors" | "rules" | "showTicks" | "tickSize" | "trackSize" | "thumbLabel" | "thumbSize">;
135
+ $attrs: {
136
+ [x: string]: unknown;
137
+ };
138
+ $refs: {
139
+ [x: string]: unknown;
140
+ };
141
+ $slots: Readonly<{
142
+ [name: string]: vue.Slot | undefined;
143
+ }>;
144
+ $root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
145
+ $parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
146
+ $emit: ((event: "update:modelValue", v: number) => void) & ((event: "update:focused", value: boolean) => void);
147
+ $el: any;
148
+ $options: vue.ComponentOptionsBase<{
149
+ reverse: boolean;
150
+ max: string | number;
151
+ error: boolean;
152
+ direction: "horizontal" | "vertical";
153
+ disabled: boolean;
154
+ readonly: boolean;
155
+ step: string | number;
156
+ min: string | number;
157
+ elevation: NonNullable<string | number>;
158
+ messages: string | string[];
159
+ density: Density;
160
+ modelValue: string | number;
161
+ focused: boolean;
162
+ errorMessages: string | string[];
163
+ maxErrors: string | number;
164
+ rules: ValidationRule[];
165
+ showTicks: boolean | "always";
166
+ tickSize: string | number;
167
+ trackSize: string | number;
168
+ thumbSize: string | number;
169
+ } & {
170
+ id?: string | undefined;
171
+ name?: string | undefined;
172
+ color?: string | undefined;
173
+ label?: string | undefined;
174
+ rounded?: string | number | boolean | undefined;
175
+ prependIcon?: IconValue | undefined;
176
+ appendIcon?: IconValue | undefined;
177
+ 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
178
+ 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
179
+ validateOn?: "input" | "blur" | "submit" | undefined;
180
+ validationValue?: any;
181
+ hideDetails?: boolean | "auto" | undefined;
182
+ trackColor?: string | undefined;
183
+ trackFillColor?: string | undefined;
184
+ thumbColor?: string | undefined;
185
+ thumbLabel?: boolean | "always" | undefined;
186
+ ticks?: number[] | Record<number, string> | undefined;
187
+ } & {
188
+ $children?: {} | vue.VNodeChild | {
189
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
190
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
191
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
192
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
193
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
194
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
195
+ };
196
+ $slots?: {
197
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
198
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
199
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
200
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
201
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
202
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
203
+ } | undefined;
204
+ 'v-slots'?: {
205
+ default?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
206
+ prepend?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
207
+ append?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
208
+ details?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
209
+ 'tick-label'?: false | (() => vue.VNodeChild) | undefined;
210
+ 'thumb-label'?: false | (() => vue.VNodeChild) | undefined;
211
+ } | undefined;
212
+ } & {
213
+ "v-slot:default"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
214
+ "v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
215
+ "v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
216
+ "v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
217
+ "v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
218
+ "v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
219
+ } & {
220
+ "onUpdate:modelValue"?: ((v: number) => any) | undefined;
221
+ "onUpdate:focused"?: ((value: boolean) => any) | undefined;
222
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
223
+ 'update:focused': (value: boolean) => boolean;
224
+ 'update:modelValue': (v: number) => boolean;
225
+ }, string, {
226
+ reverse: boolean;
227
+ max: string | number;
228
+ error: boolean;
229
+ direction: "horizontal" | "vertical";
230
+ disabled: boolean;
231
+ readonly: boolean;
232
+ step: string | number;
233
+ min: string | number;
234
+ elevation: NonNullable<string | number>;
235
+ messages: string | string[];
236
+ rounded: string | number | boolean;
237
+ density: Density;
238
+ modelValue: string | number;
239
+ focused: boolean;
240
+ errorMessages: string | string[];
241
+ maxErrors: string | number;
242
+ rules: ValidationRule[];
243
+ showTicks: boolean | "always";
244
+ tickSize: string | number;
245
+ trackSize: string | number;
246
+ thumbLabel: boolean | "always" | undefined;
247
+ thumbSize: string | number;
248
+ }, {}, string> & {
249
+ beforeCreate?: ((() => void) | (() => void)[]) | undefined;
250
+ created?: ((() => void) | (() => void)[]) | undefined;
251
+ beforeMount?: ((() => void) | (() => void)[]) | undefined;
252
+ mounted?: ((() => void) | (() => void)[]) | undefined;
253
+ beforeUpdate?: ((() => void) | (() => void)[]) | undefined;
254
+ updated?: ((() => void) | (() => void)[]) | undefined;
255
+ activated?: ((() => void) | (() => void)[]) | undefined;
256
+ deactivated?: ((() => void) | (() => void)[]) | undefined;
257
+ beforeDestroy?: ((() => void) | (() => void)[]) | undefined;
258
+ beforeUnmount?: ((() => void) | (() => void)[]) | undefined;
259
+ destroyed?: ((() => void) | (() => void)[]) | undefined;
260
+ unmounted?: ((() => void) | (() => void)[]) | undefined;
261
+ renderTracked?: (((e: vue.DebuggerEvent) => void) | ((e: vue.DebuggerEvent) => void)[]) | undefined;
262
+ renderTriggered?: (((e: vue.DebuggerEvent) => void) | ((e: vue.DebuggerEvent) => void)[]) | undefined;
263
+ errorCaptured?: (((err: unknown, instance: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void)[]) | undefined;
264
+ };
265
+ $forceUpdate: () => void;
266
+ $nextTick: typeof vue.nextTick;
267
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: vue.WatchOptions<boolean> | undefined): vue.WatchStopHandle;
268
+ } & {
269
+ reverse: boolean;
270
+ max: string | number;
271
+ error: boolean;
272
+ direction: "horizontal" | "vertical";
273
+ disabled: boolean;
274
+ readonly: boolean;
275
+ step: string | number;
276
+ min: string | number;
277
+ elevation: NonNullable<string | number>;
278
+ messages: string | string[];
279
+ density: Density;
280
+ modelValue: string | number;
281
+ focused: boolean;
282
+ errorMessages: string | string[];
283
+ maxErrors: string | number;
284
+ rules: ValidationRule[];
285
+ showTicks: boolean | "always";
286
+ tickSize: string | number;
287
+ trackSize: string | number;
288
+ thumbSize: string | number;
289
+ } & {
290
+ id?: string | undefined;
291
+ name?: string | undefined;
292
+ color?: string | undefined;
293
+ label?: string | undefined;
294
+ rounded?: string | number | boolean | undefined;
295
+ prependIcon?: IconValue | undefined;
296
+ appendIcon?: IconValue | undefined;
297
+ 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
298
+ 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
299
+ validateOn?: "input" | "blur" | "submit" | undefined;
300
+ validationValue?: any;
301
+ hideDetails?: boolean | "auto" | undefined;
302
+ trackColor?: string | undefined;
303
+ trackFillColor?: string | undefined;
304
+ thumbColor?: string | undefined;
305
+ thumbLabel?: boolean | "always" | undefined;
306
+ ticks?: number[] | Record<number, string> | undefined;
307
+ } & {
308
+ $children?: {} | vue.VNodeChild | {
309
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
310
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
311
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
312
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
313
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
314
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
315
+ };
316
+ $slots?: {
317
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
318
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
319
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
320
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
321
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
322
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
323
+ } | undefined;
324
+ 'v-slots'?: {
325
+ default?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
326
+ prepend?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
327
+ append?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
328
+ details?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
329
+ 'tick-label'?: false | (() => vue.VNodeChild) | undefined;
330
+ 'thumb-label'?: false | (() => vue.VNodeChild) | undefined;
331
+ } | undefined;
332
+ } & {
333
+ "v-slot:default"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
334
+ "v-slot:prepend"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
335
+ "v-slot:append"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
336
+ "v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
337
+ "v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
338
+ "v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
339
+ } & {
340
+ "onUpdate:modelValue"?: ((v: number) => any) | undefined;
341
+ "onUpdate:focused"?: ((value: boolean) => any) | undefined;
342
+ } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
343
+ __isFragment?: undefined;
344
+ __isTeleport?: undefined;
345
+ __isSuspense?: undefined;
346
+ } & vue.ComponentOptionsBase<{
104
347
  reverse: boolean;
105
348
  max: string | number;
106
349
  error: boolean;
@@ -174,7 +417,10 @@ declare const VSlider: vue.DefineComponent<{
174
417
  } & {
175
418
  "onUpdate:modelValue"?: ((v: number) => any) | undefined;
176
419
  "onUpdate:focused"?: ((value: boolean) => any) | undefined;
177
- }, {
420
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
421
+ 'update:focused': (value: boolean) => boolean;
422
+ 'update:modelValue': (v: number) => boolean;
423
+ }, string, {
178
424
  reverse: boolean;
179
425
  max: string | number;
180
426
  error: boolean;
@@ -197,7 +443,203 @@ declare const VSlider: vue.DefineComponent<{
197
443
  trackSize: string | number;
198
444
  thumbLabel: boolean | "always" | undefined;
199
445
  thumbSize: string | number;
200
- }>;
446
+ }, {}, string> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
447
+ modelValue: {
448
+ type: (StringConstructor | NumberConstructor)[];
449
+ default: number;
450
+ };
451
+ focused: BooleanConstructor;
452
+ disabled: BooleanConstructor;
453
+ error: BooleanConstructor;
454
+ errorMessages: {
455
+ type: vue.PropType<string | string[]>;
456
+ default: () => never[];
457
+ };
458
+ maxErrors: {
459
+ type: (StringConstructor | NumberConstructor)[];
460
+ default: number;
461
+ };
462
+ name: StringConstructor;
463
+ label: StringConstructor;
464
+ readonly: BooleanConstructor;
465
+ rules: {
466
+ type: vue.PropType<ValidationRule[]>;
467
+ default: () => never[];
468
+ };
469
+ validateOn: vue.PropType<"input" | "blur" | "submit" | undefined>;
470
+ validationValue: null;
471
+ density: {
472
+ type: vue.PropType<Density>;
473
+ default: string;
474
+ validator: (v: any) => boolean;
475
+ };
476
+ id: StringConstructor;
477
+ appendIcon: vue.PropType<IconValue>;
478
+ prependIcon: vue.PropType<IconValue>;
479
+ hideDetails: vue.PropType<boolean | "auto">;
480
+ messages: {
481
+ type: vue.PropType<string | string[]>;
482
+ default: () => never[];
483
+ };
484
+ direction: {
485
+ type: vue.PropType<"horizontal" | "vertical">;
486
+ default: string;
487
+ validator: (v: any) => boolean;
488
+ };
489
+ 'onClick:prepend': vue.PropType<EventProp<(...args: any[]) => any>>;
490
+ 'onClick:append': vue.PropType<EventProp<(...args: any[]) => any>>;
491
+ elevation: Omit<{
492
+ type: (StringConstructor | NumberConstructor)[];
493
+ validator(v: any): boolean;
494
+ }, "type" | "default"> & {
495
+ type: vue.PropType<NonNullable<string | number>>;
496
+ default: NonNullable<string | number>;
497
+ };
498
+ rounded: {
499
+ type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
500
+ default: undefined;
501
+ };
502
+ max: {
503
+ type: (StringConstructor | NumberConstructor)[];
504
+ default: number;
505
+ };
506
+ min: {
507
+ type: (StringConstructor | NumberConstructor)[];
508
+ default: number;
509
+ };
510
+ step: {
511
+ type: (StringConstructor | NumberConstructor)[];
512
+ default: number;
513
+ };
514
+ thumbColor: StringConstructor;
515
+ thumbLabel: {
516
+ type: vue.PropType<boolean | "always" | undefined>;
517
+ default: undefined;
518
+ validator: (v: any) => boolean;
519
+ };
520
+ thumbSize: {
521
+ type: (StringConstructor | NumberConstructor)[];
522
+ default: number;
523
+ };
524
+ showTicks: {
525
+ type: vue.PropType<boolean | "always">;
526
+ default: boolean;
527
+ validator: (v: any) => boolean;
528
+ };
529
+ ticks: {
530
+ type: vue.PropType<number[] | Record<number, string>>;
531
+ };
532
+ tickSize: {
533
+ type: (StringConstructor | NumberConstructor)[];
534
+ default: number;
535
+ };
536
+ color: StringConstructor;
537
+ trackColor: StringConstructor;
538
+ trackFillColor: StringConstructor;
539
+ trackSize: {
540
+ type: (StringConstructor | NumberConstructor)[];
541
+ default: number;
542
+ };
543
+ reverse: BooleanConstructor;
544
+ }, vue.ExtractPropTypes<{
545
+ modelValue: {
546
+ type: (StringConstructor | NumberConstructor)[];
547
+ default: number;
548
+ };
549
+ focused: BooleanConstructor;
550
+ disabled: BooleanConstructor;
551
+ error: BooleanConstructor;
552
+ errorMessages: {
553
+ type: vue.PropType<string | string[]>;
554
+ default: () => never[];
555
+ };
556
+ maxErrors: {
557
+ type: (StringConstructor | NumberConstructor)[];
558
+ default: number;
559
+ };
560
+ name: StringConstructor;
561
+ label: StringConstructor;
562
+ readonly: BooleanConstructor;
563
+ rules: {
564
+ type: vue.PropType<ValidationRule[]>;
565
+ default: () => never[];
566
+ };
567
+ validateOn: vue.PropType<"input" | "blur" | "submit" | undefined>;
568
+ validationValue: null;
569
+ density: {
570
+ type: vue.PropType<Density>;
571
+ default: string;
572
+ validator: (v: any) => boolean;
573
+ };
574
+ id: StringConstructor;
575
+ appendIcon: vue.PropType<IconValue>;
576
+ prependIcon: vue.PropType<IconValue>;
577
+ hideDetails: vue.PropType<boolean | "auto">;
578
+ messages: {
579
+ type: vue.PropType<string | string[]>;
580
+ default: () => never[];
581
+ };
582
+ direction: {
583
+ type: vue.PropType<"horizontal" | "vertical">;
584
+ default: string;
585
+ validator: (v: any) => boolean;
586
+ };
587
+ 'onClick:prepend': vue.PropType<EventProp<(...args: any[]) => any>>;
588
+ 'onClick:append': vue.PropType<EventProp<(...args: any[]) => any>>;
589
+ elevation: Omit<{
590
+ type: (StringConstructor | NumberConstructor)[];
591
+ validator(v: any): boolean;
592
+ }, "type" | "default"> & {
593
+ type: vue.PropType<NonNullable<string | number>>;
594
+ default: NonNullable<string | number>;
595
+ };
596
+ rounded: {
597
+ type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
598
+ default: undefined;
599
+ };
600
+ max: {
601
+ type: (StringConstructor | NumberConstructor)[];
602
+ default: number;
603
+ };
604
+ min: {
605
+ type: (StringConstructor | NumberConstructor)[];
606
+ default: number;
607
+ };
608
+ step: {
609
+ type: (StringConstructor | NumberConstructor)[];
610
+ default: number;
611
+ };
612
+ thumbColor: StringConstructor;
613
+ thumbLabel: {
614
+ type: vue.PropType<boolean | "always" | undefined>;
615
+ default: undefined;
616
+ validator: (v: any) => boolean;
617
+ };
618
+ thumbSize: {
619
+ type: (StringConstructor | NumberConstructor)[];
620
+ default: number;
621
+ };
622
+ showTicks: {
623
+ type: vue.PropType<boolean | "always">;
624
+ default: boolean;
625
+ validator: (v: any) => boolean;
626
+ };
627
+ ticks: {
628
+ type: vue.PropType<number[] | Record<number, string>>;
629
+ };
630
+ tickSize: {
631
+ type: (StringConstructor | NumberConstructor)[];
632
+ default: number;
633
+ };
634
+ color: StringConstructor;
635
+ trackColor: StringConstructor;
636
+ trackFillColor: StringConstructor;
637
+ trackSize: {
638
+ type: (StringConstructor | NumberConstructor)[];
639
+ default: number;
640
+ };
641
+ reverse: BooleanConstructor;
642
+ }>>;
201
643
  type VSlider = InstanceType<typeof VSlider>;
202
644
 
203
645
  export { VSlider };
@@ -3,7 +3,7 @@
3
3
  import { makeElevationProps } from "../../composables/elevation.mjs";
4
4
  import { makeRoundedProps } from "../../composables/rounded.mjs";
5
5
  import { useRtl } from "../../composables/locale.mjs"; // Utilities
6
- import { clamp, createRange, propsFactory } from "../../util/index.mjs";
6
+ import { clamp, createRange, getDecimals, propsFactory } from "../../util/index.mjs";
7
7
  import { computed, provide, ref, toRef } from 'vue';
8
8
 
9
9
  // Types
@@ -95,10 +95,7 @@ export const useSlider = _ref => {
95
95
  const min = computed(() => parseFloat(props.min));
96
96
  const max = computed(() => parseFloat(props.max));
97
97
  const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0);
98
- const decimals = computed(() => {
99
- const trimmedStep = step.value.toString().trim();
100
- return trimmedStep.includes('.') ? trimmedStep.length - trimmedStep.indexOf('.') - 1 : 0;
101
- });
98
+ const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
102
99
  const thumbSize = computed(() => parseInt(props.thumbSize, 10));
103
100
  const tickSize = computed(() => parseInt(props.tickSize, 10));
104
101
  const trackSize = computed(() => parseInt(props.trackSize, 10));