vuetify 3.3.0 → 3.3.1

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 (203) hide show
  1. package/dist/json/attributes.json +51 -19
  2. package/dist/json/importMap.json +22 -22
  3. package/dist/json/tags.json +8 -0
  4. package/dist/json/web-types.json +528 -448
  5. package/dist/vuetify-labs.css +84 -83
  6. package/dist/vuetify-labs.d.ts +5572 -10787
  7. package/dist/vuetify-labs.esm.js +173 -29
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +173 -29
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +113 -112
  12. package/dist/vuetify.d.ts +3683 -7528
  13. package/dist/vuetify.esm.js +4 -4
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +4 -4
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +4 -4
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  21. package/lib/components/VAlert/_variables.scss +2 -2
  22. package/lib/components/VAlert/index.d.mts +15 -73
  23. package/lib/components/VApp/index.d.mts +0 -15
  24. package/lib/components/VAppBar/index.d.mts +0 -81
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.mts +117 -171
  27. package/lib/components/VAvatar/_variables.scss +1 -1
  28. package/lib/components/VAvatar/index.d.mts +0 -15
  29. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  30. package/lib/components/VBadge/index.d.mts +0 -19
  31. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  32. package/lib/components/VBanner/index.d.mts +0 -57
  33. package/lib/components/VBottomNavigation/index.d.mts +0 -15
  34. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  35. package/lib/components/VBreadcrumbs/index.d.mts +30 -60
  36. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  37. package/lib/components/VBtn/_variables.scss +15 -15
  38. package/lib/components/VBtn/index.d.mts +0 -27
  39. package/lib/components/VBtnGroup/index.d.mts +0 -15
  40. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  41. package/lib/components/VBtnToggle/index.d.mts +19 -34
  42. package/lib/components/VCard/VCard.mjs.map +1 -1
  43. package/lib/components/VCard/VCard.sass +2 -2
  44. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  45. package/lib/components/VCard/_variables.scss +10 -11
  46. package/lib/components/VCard/index.d.mts +15 -157
  47. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  48. package/lib/components/VCarousel/index.d.mts +79 -237
  49. package/lib/components/VCheckbox/index.d.mts +143 -229
  50. package/lib/components/VChip/VChip.mjs.map +1 -1
  51. package/lib/components/VChip/index.d.mts +19 -82
  52. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  53. package/lib/components/VChipGroup/index.d.mts +19 -58
  54. package/lib/components/VCode/index.d.mts +0 -15
  55. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  56. package/lib/components/VCombobox/index.d.mts +117 -171
  57. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  58. package/lib/components/VCounter/index.d.mts +19 -34
  59. package/lib/components/VDefaultsProvider/index.d.mts +0 -15
  60. package/lib/components/VDialog/index.d.mts +112 -238
  61. package/lib/components/VDivider/index.d.mts +0 -15
  62. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  63. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  64. package/lib/components/VExpansionPanel/index.d.mts +34 -106
  65. package/lib/components/VField/VField.mjs.map +1 -1
  66. package/lib/components/VField/VField.sass +0 -1
  67. package/lib/components/VField/_variables.scss +1 -0
  68. package/lib/components/VField/index.d.mts +34 -49
  69. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  70. package/lib/components/VFileInput/index.d.mts +331 -487
  71. package/lib/components/VFooter/_variables.scss +1 -1
  72. package/lib/components/VFooter/index.d.mts +0 -15
  73. package/lib/components/VForm/VForm.mjs.map +1 -1
  74. package/lib/components/VForm/index.d.mts +19 -146
  75. package/lib/components/VGrid/index.d.mts +0 -60
  76. package/lib/components/VHover/VHover.mjs.map +1 -1
  77. package/lib/components/VHover/index.d.mts +19 -46
  78. package/lib/components/VIcon/index.d.mts +0 -30
  79. package/lib/components/VImg/VImg.mjs.map +1 -1
  80. package/lib/components/VImg/index.d.mts +0 -27
  81. package/lib/components/VInput/VInput.mjs +1 -1
  82. package/lib/components/VInput/VInput.mjs.map +1 -1
  83. package/lib/components/VInput/_variables.scss +1 -1
  84. package/lib/components/VInput/index.d.mts +79 -110
  85. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  86. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  87. package/lib/components/VItemGroup/index.d.mts +38 -120
  88. package/lib/components/VKbd/index.d.mts +0 -15
  89. package/lib/components/VLabel/index.d.mts +0 -15
  90. package/lib/components/VLayout/index.d.mts +0 -30
  91. package/lib/components/VLazy/index.d.mts +0 -15
  92. package/lib/components/VList/VListChildren.mjs.map +1 -1
  93. package/lib/components/VList/VListGroup.mjs.map +1 -1
  94. package/lib/components/VList/VListItem.mjs.map +1 -1
  95. package/lib/components/VList/_variables.scss +6 -6
  96. package/lib/components/VList/index.d.mts +164 -316
  97. package/lib/components/VLocaleProvider/index.d.mts +0 -15
  98. package/lib/components/VMain/index.d.mts +0 -15
  99. package/lib/components/VMenu/index.d.mts +112 -238
  100. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  101. package/lib/components/VMessages/index.d.mts +15 -30
  102. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  103. package/lib/components/VNavigationDrawer/index.d.mts +15 -42
  104. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  105. package/lib/components/VOverlay/index.d.mts +34 -73
  106. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  107. package/lib/components/VPagination/index.d.mts +75 -106
  108. package/lib/components/VParallax/index.d.mts +0 -27
  109. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  110. package/lib/components/VProgressCircular/index.d.mts +19 -42
  111. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  112. package/lib/components/VProgressLinear/index.d.mts +19 -46
  113. package/lib/components/VRadio/index.d.mts +30 -65
  114. package/lib/components/VRadioGroup/index.d.mts +109 -160
  115. package/lib/components/VRangeSlider/index.d.mts +94 -137
  116. package/lib/components/VRating/VRating.mjs.map +1 -1
  117. package/lib/components/VRating/index.d.mts +30 -49
  118. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  119. package/lib/components/VResponsive/index.d.mts +0 -19
  120. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  121. package/lib/components/VSelect/index.d.mts +117 -171
  122. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  123. package/lib/components/VSelectionControl/index.d.mts +22 -22
  124. package/lib/components/VSelectionControlGroup/index.d.mts +0 -15
  125. package/lib/components/VSheet/index.d.mts +0 -15
  126. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  127. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  128. package/lib/components/VSlideGroup/index.d.mts +68 -126
  129. package/lib/components/VSlider/VSlider.css +5 -4
  130. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  131. package/lib/components/VSlider/VSlider.sass +5 -4
  132. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  133. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  134. package/lib/components/VSlider/index.d.mts +94 -137
  135. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  136. package/lib/components/VSnackbar/_variables.scss +1 -1
  137. package/lib/components/VSnackbar/index.d.mts +93 -215
  138. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  139. package/lib/components/VSwitch/index.d.mts +124 -179
  140. package/lib/components/VSystemBar/_variables.scss +2 -2
  141. package/lib/components/VSystemBar/index.d.mts +0 -15
  142. package/lib/components/VTable/VTable.mjs.map +1 -1
  143. package/lib/components/VTable/_variables.scss +1 -1
  144. package/lib/components/VTable/index.d.mts +0 -27
  145. package/lib/components/VTabs/index.d.mts +0 -30
  146. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  147. package/lib/components/VTextField/index.d.mts +361 -497
  148. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  149. package/lib/components/VTextarea/index.d.mts +312 -444
  150. package/lib/components/VThemeProvider/index.d.mts +0 -15
  151. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  152. package/lib/components/VTimeline/index.d.mts +0 -38
  153. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  154. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  155. package/lib/components/VToolbar/_variables.scss +2 -2
  156. package/lib/components/VToolbar/index.d.mts +0 -69
  157. package/lib/components/VTooltip/index.d.mts +112 -238
  158. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  159. package/lib/components/VValidation/index.d.mts +19 -90
  160. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  161. package/lib/components/VVirtualScroll/index.d.mts +17 -17
  162. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  163. package/lib/components/VWindow/index.d.mts +64 -138
  164. package/lib/components/index.d.mts +3269 -7114
  165. package/lib/components/transitions/index.d.mts +0 -240
  166. package/lib/composables/loader.mjs.map +1 -1
  167. package/lib/entry-bundler.mjs +1 -1
  168. package/lib/framework.mjs +1 -1
  169. package/lib/index.d.mts +6 -6
  170. package/lib/labs/VBottomSheet/index.d.mts +34 -73
  171. package/lib/labs/VDataIterator/VDataIterator.mjs +6 -3
  172. package/lib/labs/VDataIterator/VDataIterator.mjs.map +1 -1
  173. package/lib/labs/VDataIterator/composables/items.mjs +7 -1
  174. package/lib/labs/VDataIterator/composables/items.mjs.map +1 -1
  175. package/lib/labs/VDataIterator/index.d.mts +115 -105
  176. package/lib/labs/VDataTable/VDataTable.mjs +6 -3
  177. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  178. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  179. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  180. package/lib/labs/VDataTable/VDataTableHeaders.mjs +4 -3
  181. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  182. package/lib/labs/VDataTable/VDataTableRow.mjs +1 -0
  183. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  184. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  185. package/lib/labs/VDataTable/VDataTableServer.mjs +8 -3
  186. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  187. package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -3
  188. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  189. package/lib/labs/VDataTable/composables/items.mjs +7 -1
  190. package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
  191. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  192. package/lib/labs/VDataTable/composables/select.mjs +124 -8
  193. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  194. package/lib/labs/VDataTable/index.d.mts +1630 -2916
  195. package/lib/labs/VDataTable/types.mjs.map +1 -1
  196. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  197. package/lib/labs/VInfiniteScroll/index.d.mts +60 -91
  198. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  199. package/lib/labs/VSkeletonLoader/index.d.mts +0 -15
  200. package/lib/labs/components.d.mts +1882 -3252
  201. package/lib/styles/settings/_colors.scss +18 -15
  202. package/lib/util/defineComponent.mjs.map +1 -1
  203. package/package.json +4 -3
@@ -1,7 +1,7 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, PropType, JSXComponent, Ref } from 'vue';
2
+ import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, PropType, JSXComponent, Ref } from 'vue';
3
3
 
4
- type SlotsToProps<U extends RawSlots, Generic extends boolean = false, T = U extends Record<string, any[]> ? MakeSlots<U> : U> = {
4
+ type SlotsToProps<U extends RawSlots, T = MakeInternalSlots<U>> = {
5
5
  $children?: (VNodeChild | (T extends {
6
6
  default: infer V;
7
7
  } ? V : {}) | {
@@ -12,18 +12,18 @@ type SlotsToProps<U extends RawSlots, Generic extends boolean = false, T = U ext
12
12
  };
13
13
  } & {
14
14
  [K in keyof T as `v-slot:${K & string}`]?: T[K] | false;
15
- } & (Generic extends false ? {
16
- $slots?: {
17
- [K in keyof T]?: T[K];
18
- };
19
- } : {});
20
- type RawSlots = Record<string, any[]> | Record<string, Slot>;
21
- type Slot<T extends any[] = any[]> = (...args: T) => VNodeChild;
15
+ };
16
+ type RawSlots = Record<string, unknown>;
17
+ type Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild;
18
+ type VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[];
19
+ type MakeInternalSlots<T extends RawSlots> = {
20
+ [K in keyof T]: Slot<T[K]>;
21
+ };
22
22
  type MakeSlots<T extends RawSlots> = {
23
- [K in keyof T]: T[K] extends any[] ? Slot<T[K]> : T[K];
23
+ [K in keyof T]: VueSlot<T[K]>;
24
24
  };
25
- type GenericProps<Props, Slots extends Record<string, any[]>> = {
26
- $props: Props & SlotsToProps<Slots, true>;
25
+ type GenericProps<Props, Slots extends Record<string, unknown>> = {
26
+ $props: Props & SlotsToProps<Slots>;
27
27
  $slots: MakeSlots<Slots>;
28
28
  };
29
29
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
@@ -52,15 +52,15 @@ interface VFieldSlot extends DefaultInputSlot {
52
52
  props: Record<string, unknown>;
53
53
  }
54
54
  type VFieldSlots = {
55
- clear: [];
56
- 'prepend-inner': [DefaultInputSlot];
57
- 'append-inner': [DefaultInputSlot];
58
- label: [DefaultInputSlot & {
55
+ clear: never;
56
+ 'prepend-inner': DefaultInputSlot;
57
+ 'append-inner': DefaultInputSlot;
58
+ label: DefaultInputSlot & {
59
59
  label: string | undefined;
60
60
  props: Record<string, any>;
61
- }];
62
- loader: [LoaderSlotProps];
63
- default: [VFieldSlot];
61
+ };
62
+ loader: LoaderSlotProps;
63
+ default: VFieldSlot;
64
64
  };
65
65
  declare const VField: {
66
66
  new (...args: any[]): {
@@ -150,22 +150,22 @@ declare const VField: {
150
150
  clear?: (() => vue.VNode<vue.RendererNode, vue.RendererElement, {
151
151
  [key: string]: any;
152
152
  }>[]) | undefined;
153
- 'prepend-inner'?: ((args_0: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
153
+ 'prepend-inner'?: ((arg: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
154
154
  [key: string]: any;
155
155
  }>[]) | undefined;
156
- 'append-inner'?: ((args_0: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
156
+ 'append-inner'?: ((arg: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
157
157
  [key: string]: any;
158
158
  }>[]) | undefined;
159
- label?: ((args_0: DefaultInputSlot & {
159
+ label?: ((arg: DefaultInputSlot & {
160
160
  label: string | undefined;
161
161
  props: Record<string, any>;
162
162
  }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
163
163
  [key: string]: any;
164
164
  }>[]) | undefined;
165
- loader?: ((args_0: LoaderSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
165
+ loader?: ((arg: LoaderSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
166
166
  [key: string]: any;
167
167
  }>[]) | undefined;
168
- default?: ((args_0: VFieldSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
168
+ default?: ((arg: VFieldSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
169
169
  [key: string]: any;
170
170
  }>[]) | undefined;
171
171
  }>;
@@ -232,22 +232,22 @@ declare const VField: {
232
232
  clear: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
233
233
  [key: string]: any;
234
234
  }>[];
235
- 'prepend-inner': (args_0: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
235
+ 'prepend-inner': (arg: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
236
236
  [key: string]: any;
237
237
  }>[];
238
- 'append-inner': (args_0: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
238
+ 'append-inner': (arg: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
239
239
  [key: string]: any;
240
240
  }>[];
241
- label: (args_0: DefaultInputSlot & {
241
+ label: (arg: DefaultInputSlot & {
242
242
  label: string | undefined;
243
243
  props: Record<string, any>;
244
244
  }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
245
245
  [key: string]: any;
246
246
  }>[];
247
- loader: (args_0: LoaderSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
247
+ loader: (arg: LoaderSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
248
248
  [key: string]: any;
249
249
  }>[];
250
- default: (args_0: VFieldSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
250
+ default: (arg: VFieldSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
251
251
  [key: string]: any;
252
252
  }>[];
253
253
  }>>> & {
@@ -369,22 +369,22 @@ declare const VField: {
369
369
  clear: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
370
370
  [key: string]: any;
371
371
  }>[];
372
- 'prepend-inner': (args_0: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
372
+ 'prepend-inner': (arg: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
373
373
  [key: string]: any;
374
374
  }>[];
375
- 'append-inner': (args_0: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
375
+ 'append-inner': (arg: DefaultInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
376
376
  [key: string]: any;
377
377
  }>[];
378
- label: (args_0: DefaultInputSlot & {
378
+ label: (arg: DefaultInputSlot & {
379
379
  label: string | undefined;
380
380
  props: Record<string, any>;
381
381
  }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
382
382
  [key: string]: any;
383
383
  }>[];
384
- loader: (args_0: LoaderSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
384
+ loader: (arg: LoaderSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
385
385
  [key: string]: any;
386
386
  }>[];
387
- default: (args_0: VFieldSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
387
+ default: (arg: VFieldSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
388
388
  [key: string]: any;
389
389
  }>[];
390
390
  }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T_1>(props: {
@@ -513,9 +513,6 @@ declare const VFieldLabel: {
513
513
  'v-slots'?: {
514
514
  default?: false | (() => vue.VNodeChild) | undefined;
515
515
  } | undefined;
516
- $slots?: {
517
- default?: (() => vue.VNodeChild) | undefined;
518
- } | undefined;
519
516
  onVnodeBeforeMount?: ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
520
517
  [key: string]: any;
521
518
  }>) => void) | ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
@@ -584,10 +581,6 @@ declare const VFieldLabel: {
584
581
  } | undefined;
585
582
  } & {
586
583
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
587
- } & {
588
- $slots?: {
589
- default?: (() => vue.VNodeChild) | undefined;
590
- } | undefined;
591
584
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
592
585
  style: vue.StyleValue;
593
586
  floating: boolean;
@@ -629,10 +622,6 @@ declare const VFieldLabel: {
629
622
  } | undefined;
630
623
  } & {
631
624
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
632
- } & {
633
- $slots?: {
634
- default?: (() => vue.VNodeChild) | undefined;
635
- } | undefined;
636
625
  } & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
637
626
  __isFragment?: undefined;
638
627
  __isTeleport?: undefined;
@@ -651,10 +640,6 @@ declare const VFieldLabel: {
651
640
  } | undefined;
652
641
  } & {
653
642
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
654
- } & {
655
- $slots?: {
656
- default?: (() => vue.VNodeChild) | undefined;
657
- } | undefined;
658
643
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
659
644
  style: vue.StyleValue;
660
645
  floating: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"VFileInput.mjs","names":["filterFieldProps","makeVFieldProps","makeVInputProps","VInput","VChip","VCounter","VField","forwardRefs","useFocus","useLocale","useProxiedModel","computed","nextTick","ref","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","val","every","clearable","VFileInput","name","inheritAttrs","props","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","onFocus","document","activeElement","onClickPrepend","onControlClick","onControlMousedown","click","onClear","stopPropagation","newValue","hasModelReset","isArray","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","selection","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","_ref4","fieldClass","slotProps","_Fragment","target","text","color","join"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useFocus } from '@/composables/focus'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: []\n selection: [{\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }]\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: Array as PropType<File[]>,\n default: () => ([]),\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'v-file-input')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.active\n ))\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n onControlClick(e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = VInput.filterProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--selection-slot': !!slots.selection,\n 'v-text-field--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n color={ props.color }\n >{ text }</VChip>\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VFileInput.mjs","names":["filterFieldProps","makeVFieldProps","makeVInputProps","VInput","VChip","VCounter","VField","forwardRefs","useFocus","useLocale","useProxiedModel","computed","nextTick","ref","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","val","every","clearable","VFileInput","name","inheritAttrs","props","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","onFocus","document","activeElement","onClickPrepend","onControlClick","onControlMousedown","click","onClear","stopPropagation","newValue","hasModelReset","isArray","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","selection","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","_ref4","fieldClass","slotProps","_Fragment","target","text","color","join"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useFocus } from '@/composables/focus'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: Array as PropType<File[]>,\n default: () => ([]),\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'v-file-input')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.active\n ))\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n onControlClick(e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = VInput.filterProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--selection-slot': !!slots.selection,\n 'v-text-field--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n color={ props.color }\n >{ text }</VChip>\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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"}