vuetify 3.2.3 → 3.2.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 (204) hide show
  1. package/dist/json/attributes.json +9 -9
  2. package/dist/json/web-types.json +11 -11
  3. package/dist/vuetify-labs.css +505 -502
  4. package/dist/vuetify-labs.d.ts +4918 -437
  5. package/dist/vuetify-labs.esm.js +142 -124
  6. package/dist/vuetify-labs.esm.js.map +1 -1
  7. package/dist/vuetify-labs.js +142 -124
  8. package/dist/vuetify-labs.min.css +2 -2
  9. package/dist/vuetify.css +10 -7
  10. package/dist/vuetify.d.ts +3796 -248
  11. package/dist/vuetify.esm.js +131 -115
  12. package/dist/vuetify.esm.js.map +1 -1
  13. package/dist/vuetify.js +131 -115
  14. package/dist/vuetify.js.map +1 -1
  15. package/dist/vuetify.min.css +2 -2
  16. package/dist/vuetify.min.js +469 -469
  17. package/dist/vuetify.min.js.map +1 -1
  18. package/lib/components/VAlert/VAlert.mjs +1 -2
  19. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  20. package/lib/components/VAlert/index.d.ts +52 -0
  21. package/lib/components/VApp/index.d.ts +16 -0
  22. package/lib/components/VAppBar/VAppBar.mjs +2 -2
  23. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  24. package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -2
  25. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  26. package/lib/components/VAppBar/VAppBarTitle.mjs +1 -2
  27. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  28. package/lib/components/VAppBar/index.d.ts +84 -0
  29. package/lib/components/VAutocomplete/VAutocomplete.mjs +5 -5
  30. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  31. package/lib/components/VAutocomplete/index.d.ts +76 -12
  32. package/lib/components/VAvatar/index.d.ts +16 -0
  33. package/lib/components/VBadge/index.d.ts +20 -0
  34. package/lib/components/VBanner/index.d.ts +60 -0
  35. package/lib/components/VBottomNavigation/index.d.ts +16 -0
  36. package/lib/components/VBreadcrumbs/index.d.ts +39 -3
  37. package/lib/components/VBtn/index.d.ts +28 -0
  38. package/lib/components/VBtnGroup/index.d.ts +16 -0
  39. package/lib/components/VBtnToggle/index.d.ts +16 -0
  40. package/lib/components/VCard/index.d.ts +144 -0
  41. package/lib/components/VCarousel/index.d.ts +128 -0
  42. package/lib/components/VCheckbox/index.d.ts +84 -0
  43. package/lib/components/VChip/VChip.css +4 -3
  44. package/lib/components/VChip/VChip.sass +3 -3
  45. package/lib/components/VChip/index.d.ts +28 -0
  46. package/lib/components/VChipGroup/index.d.ts +16 -0
  47. package/lib/components/VCode/index.d.ts +16 -0
  48. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -5
  49. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  50. package/lib/components/VCombobox/VCombobox.mjs +5 -5
  51. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  52. package/lib/components/VCombobox/index.d.ts +76 -12
  53. package/lib/components/VCounter/index.d.ts +16 -0
  54. package/lib/components/VDefaultsProvider/index.d.ts +16 -0
  55. package/lib/components/VDialog/index.d.ts +133 -3
  56. package/lib/components/VDivider/index.d.ts +16 -0
  57. package/lib/components/VExpansionPanel/index.d.ts +76 -0
  58. package/lib/components/VField/index.d.ts +23 -3
  59. package/lib/components/VFileInput/index.d.ts +118 -3
  60. package/lib/components/VFooter/VFooter.mjs +2 -2
  61. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  62. package/lib/components/VFooter/index.d.ts +16 -0
  63. package/lib/components/VForm/index.d.ts +19 -3
  64. package/lib/components/VGrid/index.d.ts +64 -0
  65. package/lib/components/VHover/index.d.ts +28 -0
  66. package/lib/components/VIcon/index.d.ts +32 -0
  67. package/lib/components/VImg/VImg.mjs +6 -6
  68. package/lib/components/VImg/VImg.mjs.map +1 -1
  69. package/lib/components/VImg/index.d.ts +40 -12
  70. package/lib/components/VInput/index.d.ts +28 -0
  71. package/lib/components/VItemGroup/index.d.ts +32 -0
  72. package/lib/components/VKbd/index.d.ts +16 -0
  73. package/lib/components/VLabel/index.d.ts +16 -0
  74. package/lib/components/VLayout/index.d.ts +32 -0
  75. package/lib/components/VLazy/index.d.ts +16 -0
  76. package/lib/components/VList/VList.mjs +2 -2
  77. package/lib/components/VList/VList.mjs.map +1 -1
  78. package/lib/components/VList/index.d.ts +176 -12
  79. package/lib/components/VList/list.mjs +4 -4
  80. package/lib/components/VList/list.mjs.map +1 -1
  81. package/lib/components/VLocaleProvider/index.d.ts +16 -0
  82. package/lib/components/VMain/index.d.ts +16 -0
  83. package/lib/components/VMenu/VMenu.mjs +3 -3
  84. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  85. package/lib/components/VMenu/index.d.ts +136 -6
  86. package/lib/components/VMessages/index.d.ts +16 -0
  87. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +2 -0
  88. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +2 -2
  89. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  90. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +2 -0
  91. package/lib/components/VNavigationDrawer/index.d.ts +31 -3
  92. package/lib/components/VNavigationDrawer/sticky.mjs +5 -4
  93. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  94. package/lib/components/VNavigationDrawer/touch.mjs +4 -4
  95. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  96. package/lib/components/VOverlay/index.d.ts +40 -0
  97. package/lib/components/VOverlay/locationStrategies.mjs +1 -1
  98. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  99. package/lib/components/VPagination/VPagination.mjs +2 -2
  100. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  101. package/lib/components/VPagination/index.d.ts +32 -0
  102. package/lib/components/VParallax/index.d.ts +28 -0
  103. package/lib/components/VProgressCircular/index.d.ts +16 -0
  104. package/lib/components/VProgressLinear/index.d.ts +28 -0
  105. package/lib/components/VRadio/index.d.ts +36 -0
  106. package/lib/components/VRadioGroup/index.d.ts +48 -0
  107. package/lib/components/VRangeSlider/index.d.ts +36 -0
  108. package/lib/components/VRating/VRating.mjs +6 -3
  109. package/lib/components/VRating/VRating.mjs.map +1 -1
  110. package/lib/components/VRating/index.d.ts +20 -0
  111. package/lib/components/VResponsive/index.d.ts +20 -0
  112. package/lib/components/VSelect/VSelect.mjs +2 -2
  113. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  114. package/lib/components/VSelect/index.d.ts +76 -12
  115. package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -3
  116. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  117. package/lib/components/VSelectionControl/index.d.ts +10 -6
  118. package/lib/components/VSelectionControlGroup/index.d.ts +16 -0
  119. package/lib/components/VSheet/index.d.ts +16 -0
  120. package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
  121. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  122. package/lib/components/VSlideGroup/index.d.ts +63 -3
  123. package/lib/components/VSlider/index.d.ts +36 -0
  124. package/lib/components/VSlider/slider.mjs +3 -3
  125. package/lib/components/VSlider/slider.mjs.map +1 -1
  126. package/lib/components/VSnackbar/index.d.ts +129 -3
  127. package/lib/components/VSwitch/VSwitch.css +3 -3
  128. package/lib/components/VSwitch/VSwitch.sass +4 -3
  129. package/lib/components/VSwitch/index.d.ts +52 -0
  130. package/lib/components/VSystemBar/VSystemBar.mjs +2 -2
  131. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  132. package/lib/components/VSystemBar/index.d.ts +16 -0
  133. package/lib/components/VTable/index.d.ts +28 -0
  134. package/lib/components/VTabs/VTab.mjs +4 -5
  135. package/lib/components/VTabs/VTab.mjs.map +1 -1
  136. package/lib/components/VTabs/index.d.ts +32 -0
  137. package/lib/components/VTextField/index.d.ts +121 -6
  138. package/lib/components/VTextarea/VTextarea.mjs +6 -3
  139. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  140. package/lib/components/VTextarea/index.d.ts +110 -3
  141. package/lib/components/VThemeProvider/index.d.ts +16 -0
  142. package/lib/components/VTimeline/VTimelineItem.mjs +2 -2
  143. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  144. package/lib/components/VTimeline/index.d.ts +40 -0
  145. package/lib/components/VToolbar/VToolbar.mjs +2 -2
  146. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  147. package/lib/components/VToolbar/index.d.ts +72 -0
  148. package/lib/components/VTooltip/index.d.ts +133 -3
  149. package/lib/components/VValidation/index.d.ts +16 -0
  150. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +3 -3
  151. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  152. package/lib/components/VVirtualScroll/index.d.ts +7 -3
  153. package/lib/components/VWindow/VWindow.mjs +3 -3
  154. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  155. package/lib/components/VWindow/VWindowItem.mjs +3 -3
  156. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  157. package/lib/components/VWindow/index.d.ts +76 -0
  158. package/lib/components/index.d.ts +3786 -245
  159. package/lib/components/transitions/index.d.ts +256 -0
  160. package/lib/composables/display.mjs +3 -3
  161. package/lib/composables/display.mjs.map +1 -1
  162. package/lib/composables/form.mjs +4 -4
  163. package/lib/composables/form.mjs.map +1 -1
  164. package/lib/composables/hydration.mjs +6 -6
  165. package/lib/composables/hydration.mjs.map +1 -1
  166. package/lib/composables/intersectionObserver.mjs +2 -2
  167. package/lib/composables/intersectionObserver.mjs.map +1 -1
  168. package/lib/composables/layout.mjs +3 -3
  169. package/lib/composables/layout.mjs.map +1 -1
  170. package/lib/composables/lazy.mjs +2 -2
  171. package/lib/composables/lazy.mjs.map +1 -1
  172. package/lib/composables/nested/nested.mjs +5 -4
  173. package/lib/composables/nested/nested.mjs.map +1 -1
  174. package/lib/composables/scroll.mjs +6 -6
  175. package/lib/composables/scroll.mjs.map +1 -1
  176. package/lib/composables/ssrBoot.mjs +2 -2
  177. package/lib/composables/ssrBoot.mjs.map +1 -1
  178. package/lib/composables/stack.mjs +5 -4
  179. package/lib/composables/stack.mjs.map +1 -1
  180. package/lib/composables/transition.mjs +5 -2
  181. package/lib/composables/transition.mjs.map +1 -1
  182. package/lib/composables/validation.mjs +3 -3
  183. package/lib/composables/validation.mjs.map +1 -1
  184. package/lib/entry-bundler.mjs +1 -1
  185. package/lib/framework.mjs +1 -1
  186. package/lib/index.d.ts +9 -2
  187. package/lib/labs/VDataTable/VDataTable.mjs +2 -1
  188. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  189. package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
  190. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  191. package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -6
  192. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  193. package/lib/labs/VDataTable/composables/virtual.mjs +3 -3
  194. package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
  195. package/lib/labs/VDataTable/index.d.ts +894 -2
  196. package/lib/labs/VInfiniteScroll/index.d.ts +32 -0
  197. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  198. package/lib/labs/VSkeletonLoader/index.d.ts +25 -9
  199. package/lib/labs/components.d.ts +951 -11
  200. package/lib/locale/adapters/vuetify.mjs +8 -5
  201. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  202. package/lib/styles/settings/_variables.scss +3 -3
  203. package/lib/util/defineComponent.mjs.map +1 -1
  204. package/package.json +2 -2
@@ -35,6 +35,13 @@ declare const VParallax: {
35
35
  "v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
36
36
  "v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
37
37
  "v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
38
+ } & {
39
+ $slots?: {
40
+ default?: (() => vue.VNodeChild) | undefined;
41
+ placeholder?: (() => vue.VNodeChild) | undefined;
42
+ error?: (() => vue.VNodeChild) | undefined;
43
+ sources?: (() => vue.VNodeChild) | undefined;
44
+ } | undefined;
38
45
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "scale" | "style">;
39
46
  $attrs: {
40
47
  [x: string]: unknown;
@@ -72,6 +79,13 @@ declare const VParallax: {
72
79
  "v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
73
80
  "v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
74
81
  "v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
82
+ } & {
83
+ $slots?: {
84
+ default?: (() => vue.VNodeChild) | undefined;
85
+ placeholder?: (() => vue.VNodeChild) | undefined;
86
+ error?: (() => vue.VNodeChild) | undefined;
87
+ sources?: (() => vue.VNodeChild) | undefined;
88
+ } | undefined;
75
89
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
76
90
  scale: string | number;
77
91
  style: vue.StyleValue;
@@ -118,6 +132,13 @@ declare const VParallax: {
118
132
  "v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
119
133
  "v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
120
134
  "v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
135
+ } & {
136
+ $slots?: {
137
+ default?: (() => vue.VNodeChild) | undefined;
138
+ placeholder?: (() => vue.VNodeChild) | undefined;
139
+ error?: (() => vue.VNodeChild) | undefined;
140
+ sources?: (() => vue.VNodeChild) | undefined;
141
+ } | undefined;
121
142
  } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
122
143
  __isFragment?: undefined;
123
144
  __isTeleport?: undefined;
@@ -145,6 +166,13 @@ declare const VParallax: {
145
166
  "v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
146
167
  "v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
147
168
  "v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
169
+ } & {
170
+ $slots?: {
171
+ default?: (() => vue.VNodeChild) | undefined;
172
+ placeholder?: (() => vue.VNodeChild) | undefined;
173
+ error?: (() => vue.VNodeChild) | undefined;
174
+ sources?: (() => vue.VNodeChild) | undefined;
175
+ } | undefined;
148
176
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
149
177
  scale: string | number;
150
178
  style: vue.StyleValue;
@@ -38,6 +38,10 @@ declare const VProgressCircular: {
38
38
  } | undefined;
39
39
  } & {
40
40
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
41
+ } & {
42
+ $slots?: {
43
+ default?: (() => vue.VNodeChild) | undefined;
44
+ } | undefined;
41
45
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "width" | "rotate" | "style" | "size" | "tag" | "modelValue">;
42
46
  $attrs: {
43
47
  [x: string]: unknown;
@@ -74,6 +78,10 @@ declare const VProgressCircular: {
74
78
  } | undefined;
75
79
  } & {
76
80
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
81
+ } & {
82
+ $slots?: {
83
+ default?: (() => vue.VNodeChild) | undefined;
84
+ } | undefined;
77
85
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
78
86
  width: string | number;
79
87
  rotate: string | number;
@@ -123,6 +131,10 @@ declare const VProgressCircular: {
123
131
  } | undefined;
124
132
  } & {
125
133
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
134
+ } & {
135
+ $slots?: {
136
+ default?: (() => vue.VNodeChild) | undefined;
137
+ } | undefined;
126
138
  } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
127
139
  __isFragment?: undefined;
128
140
  __isTeleport?: undefined;
@@ -149,6 +161,10 @@ declare const VProgressCircular: {
149
161
  } | undefined;
150
162
  } & {
151
163
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
164
+ } & {
165
+ $slots?: {
166
+ default?: (() => vue.VNodeChild) | undefined;
167
+ } | undefined;
152
168
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
153
169
  width: string | number;
154
170
  rotate: string | number;
@@ -76,6 +76,13 @@ declare const VProgressLinear: {
76
76
  value: number;
77
77
  buffer: number;
78
78
  }) => vue.VNodeChild) | undefined;
79
+ } & {
80
+ $slots?: {
81
+ default?: ((args_0: {
82
+ value: number;
83
+ buffer: number;
84
+ }) => vue.VNodeChild) | undefined;
85
+ } | undefined;
79
86
  } & {
80
87
  "onUpdate:modelValue"?: ((value: number) => any) | undefined;
81
88
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "max" | "absolute" | "location" | "height" | "active" | "style" | "tag" | "indeterminate" | "rounded" | "modelValue" | "bufferValue" | "clickable" | "stream" | "striped" | "roundedBar">;
@@ -136,6 +143,13 @@ declare const VProgressLinear: {
136
143
  value: number;
137
144
  buffer: number;
138
145
  }) => vue.VNodeChild) | undefined;
146
+ } & {
147
+ $slots?: {
148
+ default?: ((args_0: {
149
+ value: number;
150
+ buffer: number;
151
+ }) => vue.VNodeChild) | undefined;
152
+ } | undefined;
139
153
  } & {
140
154
  "onUpdate:modelValue"?: ((value: number) => any) | undefined;
141
155
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
@@ -221,6 +235,13 @@ declare const VProgressLinear: {
221
235
  value: number;
222
236
  buffer: number;
223
237
  }) => vue.VNodeChild) | undefined;
238
+ } & {
239
+ $slots?: {
240
+ default?: ((args_0: {
241
+ value: number;
242
+ buffer: number;
243
+ }) => vue.VNodeChild) | undefined;
244
+ } | undefined;
224
245
  } & {
225
246
  "onUpdate:modelValue"?: ((value: number) => any) | undefined;
226
247
  } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
@@ -271,6 +292,13 @@ declare const VProgressLinear: {
271
292
  value: number;
272
293
  buffer: number;
273
294
  }) => vue.VNodeChild) | undefined;
295
+ } & {
296
+ $slots?: {
297
+ default?: ((args_0: {
298
+ value: number;
299
+ buffer: number;
300
+ }) => vue.VNodeChild) | undefined;
301
+ } | undefined;
274
302
  } & {
275
303
  "onUpdate:modelValue"?: ((value: number) => any) | undefined;
276
304
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
@@ -88,6 +88,15 @@ declare const VRadio: {
88
88
  props: Record<string, unknown>;
89
89
  }) => vue.VNodeChild) | undefined;
90
90
  "v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
91
+ } & {
92
+ $slots?: {
93
+ default?: (() => vue.VNodeChild) | undefined;
94
+ label?: ((args_0: {
95
+ label: string | undefined;
96
+ props: Record<string, unknown>;
97
+ }) => vue.VNodeChild) | undefined;
98
+ input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
99
+ } | undefined;
91
100
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "inline" | "error" | "style" | "disabled" | "multiple" | "readonly" | "density" | "ripple" | "falseIcon" | "trueIcon" | "valueComparator">;
92
101
  $attrs: {
93
102
  [x: string]: unknown;
@@ -151,6 +160,15 @@ declare const VRadio: {
151
160
  props: Record<string, unknown>;
152
161
  }) => vue.VNodeChild) | undefined;
153
162
  "v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
163
+ } & {
164
+ $slots?: {
165
+ default?: (() => vue.VNodeChild) | undefined;
166
+ label?: ((args_0: {
167
+ label: string | undefined;
168
+ props: Record<string, unknown>;
169
+ }) => vue.VNodeChild) | undefined;
170
+ input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
171
+ } | undefined;
154
172
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
155
173
  inline: boolean;
156
174
  error: boolean;
@@ -232,6 +250,15 @@ declare const VRadio: {
232
250
  props: Record<string, unknown>;
233
251
  }) => vue.VNodeChild) | undefined;
234
252
  "v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
253
+ } & {
254
+ $slots?: {
255
+ default?: (() => vue.VNodeChild) | undefined;
256
+ label?: ((args_0: {
257
+ label: string | undefined;
258
+ props: Record<string, unknown>;
259
+ }) => vue.VNodeChild) | undefined;
260
+ input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
261
+ } | undefined;
235
262
  } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
236
263
  __isFragment?: undefined;
237
264
  __isTeleport?: undefined;
@@ -285,6 +312,15 @@ declare const VRadio: {
285
312
  props: Record<string, unknown>;
286
313
  }) => vue.VNodeChild) | undefined;
287
314
  "v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
315
+ } & {
316
+ $slots?: {
317
+ default?: (() => vue.VNodeChild) | undefined;
318
+ label?: ((args_0: {
319
+ label: string | undefined;
320
+ props: Record<string, unknown>;
321
+ }) => vue.VNodeChild) | undefined;
322
+ input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
323
+ } | undefined;
288
324
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
289
325
  inline: boolean;
290
326
  error: boolean;
@@ -137,6 +137,18 @@ declare const VRadioGroup: {
137
137
  props: Record<string, unknown>;
138
138
  }) => vue.VNodeChild) | undefined;
139
139
  "v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
140
+ } & {
141
+ $slots?: {
142
+ default?: ((...args: never) => vue.VNodeChild) | undefined;
143
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
144
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
145
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
146
+ label?: ((args_0: {
147
+ label: string | undefined;
148
+ props: Record<string, unknown>;
149
+ }) => vue.VNodeChild) | undefined;
150
+ input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
151
+ } | undefined;
140
152
  } & {
141
153
  "onUpdate:modelValue"?: ((val: any) => any) | undefined;
142
154
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "type" | "inline" | "error" | "height" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "ripple" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint" | "falseIcon" | "trueIcon" | "valueComparator">;
@@ -224,6 +236,18 @@ declare const VRadioGroup: {
224
236
  props: Record<string, unknown>;
225
237
  }) => vue.VNodeChild) | undefined;
226
238
  "v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
239
+ } & {
240
+ $slots?: {
241
+ default?: ((...args: never) => vue.VNodeChild) | undefined;
242
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
243
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
244
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
245
+ label?: ((args_0: {
246
+ label: string | undefined;
247
+ props: Record<string, unknown>;
248
+ }) => vue.VNodeChild) | undefined;
249
+ input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
250
+ } | undefined;
227
251
  } & {
228
252
  "onUpdate:modelValue"?: ((val: any) => any) | undefined;
229
253
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
@@ -339,6 +363,18 @@ declare const VRadioGroup: {
339
363
  props: Record<string, unknown>;
340
364
  }) => vue.VNodeChild) | undefined;
341
365
  "v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
366
+ } & {
367
+ $slots?: {
368
+ default?: ((...args: never) => vue.VNodeChild) | undefined;
369
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
370
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
371
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
372
+ label?: ((args_0: {
373
+ label: string | undefined;
374
+ props: Record<string, unknown>;
375
+ }) => vue.VNodeChild) | undefined;
376
+ input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
377
+ } | undefined;
342
378
  } & {
343
379
  "onUpdate:modelValue"?: ((val: any) => any) | undefined;
344
380
  } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
@@ -416,6 +452,18 @@ declare const VRadioGroup: {
416
452
  props: Record<string, unknown>;
417
453
  }) => vue.VNodeChild) | undefined;
418
454
  "v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
455
+ } & {
456
+ $slots?: {
457
+ default?: ((...args: never) => vue.VNodeChild) | undefined;
458
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
459
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
460
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
461
+ label?: ((args_0: {
462
+ label: string | undefined;
463
+ props: Record<string, unknown>;
464
+ }) => vue.VNodeChild) | undefined;
465
+ input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
466
+ } | undefined;
419
467
  } & {
420
468
  "onUpdate:modelValue"?: ((val: any) => any) | undefined;
421
469
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
@@ -129,6 +129,15 @@ declare const VRangeSlider: {
129
129
  "v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
130
130
  "v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
131
131
  "v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
132
+ } & {
133
+ $slots?: {
134
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
135
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
136
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
137
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
138
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
139
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
140
+ } | undefined;
132
141
  } & {
133
142
  "onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
134
143
  "onUpdate:focused"?: ((value: boolean) => any) | undefined;
@@ -217,6 +226,15 @@ declare const VRangeSlider: {
217
226
  "v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
218
227
  "v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
219
228
  "v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
229
+ } & {
230
+ $slots?: {
231
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
232
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
233
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
234
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
235
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
236
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
237
+ } | undefined;
220
238
  } & {
221
239
  "onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
222
240
  "onUpdate:focused"?: ((value: boolean) => any) | undefined;
@@ -342,6 +360,15 @@ declare const VRangeSlider: {
342
360
  "v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
343
361
  "v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
344
362
  "v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
363
+ } & {
364
+ $slots?: {
365
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
366
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
367
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
368
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
369
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
370
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
371
+ } | undefined;
345
372
  } & {
346
373
  "onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
347
374
  "onUpdate:focused"?: ((value: boolean) => any) | undefined;
@@ -420,6 +447,15 @@ declare const VRangeSlider: {
420
447
  "v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
421
448
  "v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
422
449
  "v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
450
+ } & {
451
+ $slots?: {
452
+ default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
453
+ prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
454
+ append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
455
+ details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
456
+ 'tick-label'?: (() => vue.VNodeChild) | undefined;
457
+ 'thumb-label'?: (() => vue.VNodeChild) | undefined;
458
+ } | undefined;
423
459
  } & {
424
460
  "onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
425
461
  "onUpdate:focused"?: ((value: boolean) => any) | undefined;
@@ -12,8 +12,11 @@ import { makeTagProps } from "../../composables/tag.mjs";
12
12
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
13
13
  import { useLocale } from "../../composables/locale.mjs";
14
14
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
15
- import { computed, ref } from 'vue';
16
- import { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from "../../util/index.mjs"; // Types
15
+ import { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from "../../util/index.mjs";
16
+ import { computed, shallowRef } from 'vue';
17
+
18
+ // Types
19
+
17
20
  export const makeVRatingProps = propsFactory({
18
21
  name: String,
19
22
  itemAriaLabel: {
@@ -76,7 +79,7 @@ export const VRating = genericComponent()({
76
79
  const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length));
77
80
  const range = computed(() => createRange(Number(props.length), 1));
78
81
  const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
79
- const hoverIndex = ref(-1);
82
+ const hoverIndex = shallowRef(-1);
80
83
  const itemState = computed(() => increments.value.map(value => {
81
84
  const isHovering = props.hover && hoverIndex.value > -1;
82
85
  const isFilled = normalizedValue.value >= value;
@@ -1 +1 @@
1
- {"version":3,"file":"VRating.mjs","names":["VBtn","IconValue","makeComponentProps","makeDensityProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","useLocale","useProxiedModel","computed","ref","clamp","createRange","genericComponent","getUid","propsFactory","useRender","makeVRatingProps","name","String","itemAriaLabel","type","default","activeColor","color","clearable","Boolean","disabled","emptyIcon","fullIcon","halfIncrements","hover","length","Number","readonly","modelValue","itemLabels","Array","itemLabelPosition","validator","v","includes","ripple","VRating","props","emits","value","setup","_ref","slots","t","themeClasses","rating","normalizedValue","parseFloat","range","increments","flatMap","hoverIndex","itemState","map","isHovering","isFilled","isHovered","isFullIcon","icon","eventState","onMouseenter","onMouseleave","onClick","undefined","VRatingItem","_ref2","index","showStar","id","replace","btnProps","density","size","variant","_createVNode","_Fragment","item","createLabel","labelProps","label","_createTextVNode","hasLabels","tag","class","style","i"],"sources":["../../../src/components/VRating/VRating.tsx"],"sourcesContent":["// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: IconValue\n color?: string\n props: Record<string, unknown>\n rating: number\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\ntype VRatingSlots = {\n item: [VRatingItemSlot]\n 'item-label': [VRatingItemLabelSlot]\n}\n\nexport const makeVRatingProps = propsFactory({\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: IconValue,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: IconValue,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n itemLabels: Array as Prop<string[]>,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'v-rating')\n\nexport const VRating = genericComponent<VRatingSlots>()({\n name: 'VRating',\n\n props: makeVRatingProps(),\n\n emits: {\n 'update:modelValue': (value: number | string) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length))\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = ref(-1)\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = normalizedValue.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = normalizedValue.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onClick,\n }\n }))\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n <label\n for={ id }\n class={{\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n onClick={ onClick }\n >\n <span class=\"v-rating__hidden\">{ t(props.itemAriaLabel, value, props.length) }</span>\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n rating: normalizedValue.value,\n })\n : (\n <VBtn { ...btnProps } />\n )\n }\n </label>\n\n <input\n class=\"v-rating__hidden\"\n name={ name.value }\n id={ id }\n type=\"radio\"\n value={ value }\n checked={ normalizedValue.value === value }\n tabindex={ -1 }\n readonly={ props.readonly }\n disabled={ props.disabled }\n />\n </>\n )\n }\n\n function createLabel (labelProps: { value: number, index: number, label?: string }) {\n if (slots['item-label']) return slots['item-label'](labelProps)\n\n if (labelProps.label) return <span>{ labelProps.label }</span>\n\n return <span>&nbsp;</span>\n }\n\n useRender(() => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n <props.tag\n class={[\n 'v-rating',\n {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly,\n },\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n <VRatingItem value={ 0 } index={ -1 } showStar={ false } />\n\n { range.value.map((value, i) => (\n <div class=\"v-rating__wrapper\">\n {\n hasLabels && props.itemLabelPosition === 'top'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n <div class=\"v-rating__item\">\n { props.halfIncrements ? (\n <>\n <VRatingItem value={ value - 0.5 } index={ i * 2 } />\n <VRatingItem value={ value } index={ (i * 2) + 1 } />\n </>\n ) : (\n <VRatingItem value={ value } index={ i } />\n )}\n </div>\n {\n hasLabels && props.itemLabelPosition === 'bottom'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n </div>\n ))}\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VRating = InstanceType<typeof VRating>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VRating.mjs","names":["VBtn","IconValue","makeComponentProps","makeDensityProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","useLocale","useProxiedModel","clamp","createRange","genericComponent","getUid","propsFactory","useRender","computed","shallowRef","makeVRatingProps","name","String","itemAriaLabel","type","default","activeColor","color","clearable","Boolean","disabled","emptyIcon","fullIcon","halfIncrements","hover","length","Number","readonly","modelValue","itemLabels","Array","itemLabelPosition","validator","v","includes","ripple","VRating","props","emits","value","setup","_ref","slots","t","themeClasses","rating","normalizedValue","parseFloat","range","increments","flatMap","hoverIndex","itemState","map","isHovering","isFilled","isHovered","isFullIcon","icon","eventState","onMouseenter","onMouseleave","onClick","undefined","VRatingItem","_ref2","index","showStar","id","replace","btnProps","density","size","variant","_createVNode","_Fragment","item","createLabel","labelProps","label","_createTextVNode","hasLabels","tag","class","style","i"],"sources":["../../../src/components/VRating/VRating.tsx"],"sourcesContent":["// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from '@/util'\nimport { computed, shallowRef } from 'vue'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: IconValue\n color?: string\n props: Record<string, unknown>\n rating: number\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\ntype VRatingSlots = {\n item: [VRatingItemSlot]\n 'item-label': [VRatingItemLabelSlot]\n}\n\nexport const makeVRatingProps = propsFactory({\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: IconValue,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: IconValue,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n itemLabels: Array as Prop<string[]>,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'v-rating')\n\nexport const VRating = genericComponent<VRatingSlots>()({\n name: 'VRating',\n\n props: makeVRatingProps(),\n\n emits: {\n 'update:modelValue': (value: number | string) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length))\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = shallowRef(-1)\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = normalizedValue.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = normalizedValue.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onClick,\n }\n }))\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n <label\n for={ id }\n class={{\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n onClick={ onClick }\n >\n <span class=\"v-rating__hidden\">{ t(props.itemAriaLabel, value, props.length) }</span>\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n rating: normalizedValue.value,\n })\n : (\n <VBtn { ...btnProps } />\n )\n }\n </label>\n\n <input\n class=\"v-rating__hidden\"\n name={ name.value }\n id={ id }\n type=\"radio\"\n value={ value }\n checked={ normalizedValue.value === value }\n tabindex={ -1 }\n readonly={ props.readonly }\n disabled={ props.disabled }\n />\n </>\n )\n }\n\n function createLabel (labelProps: { value: number, index: number, label?: string }) {\n if (slots['item-label']) return slots['item-label'](labelProps)\n\n if (labelProps.label) return <span>{ labelProps.label }</span>\n\n return <span>&nbsp;</span>\n }\n\n useRender(() => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n <props.tag\n class={[\n 'v-rating',\n {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly,\n },\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n <VRatingItem value={ 0 } index={ -1 } showStar={ false } />\n\n { range.value.map((value, i) => (\n <div class=\"v-rating__wrapper\">\n {\n hasLabels && props.itemLabelPosition === 'top'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n <div class=\"v-rating__item\">\n { props.halfIncrements ? (\n <>\n <VRatingItem value={ value - 0.5 } index={ i * 2 } />\n <VRatingItem value={ value } index={ (i * 2) + 1 } />\n </>\n ) : (\n <VRatingItem value={ value } index={ i } />\n )}\n </div>\n {\n hasLabels && props.itemLabelPosition === 'bottom'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n </div>\n ))}\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VRating = InstanceType<typeof VRating>\n"],"mappings":"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"}
@@ -82,6 +82,11 @@ declare const VRating: {
82
82
  } & {
83
83
  "v-slot:item"?: false | ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
84
84
  "v-slot:item-label"?: false | ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
85
+ } & {
86
+ $slots?: {
87
+ item?: ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
88
+ 'item-label'?: ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
89
+ } | undefined;
85
90
  } & {
86
91
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
87
92
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "length" | "style" | "disabled" | "size" | "readonly" | "tag" | "density" | "modelValue" | "ripple" | "clearable" | "hover" | "itemAriaLabel" | "emptyIcon" | "fullIcon" | "halfIncrements" | "itemLabelPosition">;
@@ -134,6 +139,11 @@ declare const VRating: {
134
139
  } & {
135
140
  "v-slot:item"?: false | ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
136
141
  "v-slot:item-label"?: false | ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
142
+ } & {
143
+ $slots?: {
144
+ item?: ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
145
+ 'item-label'?: ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
146
+ } | undefined;
137
147
  } & {
138
148
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
139
149
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
@@ -211,6 +221,11 @@ declare const VRating: {
211
221
  } & {
212
222
  "v-slot:item"?: false | ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
213
223
  "v-slot:item-label"?: false | ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
224
+ } & {
225
+ $slots?: {
226
+ item?: ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
227
+ 'item-label'?: ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
228
+ } | undefined;
214
229
  } & {
215
230
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
216
231
  } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
@@ -253,6 +268,11 @@ declare const VRating: {
253
268
  } & {
254
269
  "v-slot:item"?: false | ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
255
270
  "v-slot:item-label"?: false | ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
271
+ } & {
272
+ $slots?: {
273
+ item?: ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
274
+ 'item-label'?: ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
275
+ } | undefined;
256
276
  } & {
257
277
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
258
278
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
@@ -35,6 +35,11 @@ declare const VResponsive: {
35
35
  } & {
36
36
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
37
37
  "v-slot:additional"?: false | (() => vue.VNodeChild) | undefined;
38
+ } & {
39
+ $slots?: {
40
+ default?: (() => vue.VNodeChild) | undefined;
41
+ additional?: (() => vue.VNodeChild) | undefined;
42
+ } | undefined;
38
43
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "style">;
39
44
  $attrs: {
40
45
  [x: string]: unknown;
@@ -73,6 +78,11 @@ declare const VResponsive: {
73
78
  } & {
74
79
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
75
80
  "v-slot:additional"?: false | (() => vue.VNodeChild) | undefined;
81
+ } & {
82
+ $slots?: {
83
+ default?: (() => vue.VNodeChild) | undefined;
84
+ additional?: (() => vue.VNodeChild) | undefined;
85
+ } | undefined;
76
86
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
77
87
  style: vue.StyleValue;
78
88
  }, {}, string> & {
@@ -119,6 +129,11 @@ declare const VResponsive: {
119
129
  } & {
120
130
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
121
131
  "v-slot:additional"?: false | (() => vue.VNodeChild) | undefined;
132
+ } & {
133
+ $slots?: {
134
+ default?: (() => vue.VNodeChild) | undefined;
135
+ additional?: (() => vue.VNodeChild) | undefined;
136
+ } | undefined;
122
137
  } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
123
138
  __isFragment?: undefined;
124
139
  __isTeleport?: undefined;
@@ -147,6 +162,11 @@ declare const VResponsive: {
147
162
  } & {
148
163
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
149
164
  "v-slot:additional"?: false | (() => vue.VNodeChild) | undefined;
165
+ } & {
166
+ $slots?: {
167
+ default?: (() => vue.VNodeChild) | undefined;
168
+ additional?: (() => vue.VNodeChild) | undefined;
169
+ } | undefined;
150
170
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
151
171
  style: vue.StyleValue;
152
172
  }, {}, string> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
@@ -19,7 +19,7 @@ import { makeTransitionProps } from "../../composables/transition.mjs";
19
19
  import { useForm } from "../../composables/form.mjs";
20
20
  import { useLocale } from "../../composables/locale.mjs";
21
21
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utility
22
- import { computed, mergeProps, ref } from 'vue';
22
+ import { computed, mergeProps, ref, shallowRef } from 'vue';
23
23
  import { deepEqual, genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.mjs"; // Types
24
24
  export const makeSelectProps = propsFactory({
25
25
  chips: Boolean,
@@ -101,7 +101,7 @@ export const VSelect = genericComponent()({
101
101
  });
102
102
  });
103
103
  const selected = computed(() => selections.value.map(selection => selection.props.value));
104
- const isFocused = ref(false);
104
+ const isFocused = shallowRef(false);
105
105
  let keyboardLookupPrefix = '';
106
106
  let keyboardLookupLastTime;
107
107
  const displayItems = computed(() => {