@vuetify/nightly 3.8.3-master.2025-05-05 → 3.8.4-master.2025-05-07

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 (62) hide show
  1. package/CHANGELOG.md +3 -35
  2. package/dist/json/attributes.json +3324 -3324
  3. package/dist/json/importMap-labs.json +28 -28
  4. package/dist/json/importMap.json +162 -162
  5. package/dist/json/web-types.json +6199 -6199
  6. package/dist/vuetify-labs.cjs +54 -44
  7. package/dist/vuetify-labs.css +3363 -3359
  8. package/dist/vuetify-labs.d.ts +98 -98
  9. package/dist/vuetify-labs.esm.js +54 -44
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +54 -44
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +33 -11
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4003 -3999
  16. package/dist/vuetify.d.ts +127 -127
  17. package/dist/vuetify.esm.js +33 -11
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +33 -11
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +17 -14
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.d.ts +3 -3
  25. package/lib/components/VAutocomplete/VAutocomplete.js +5 -0
  26. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  27. package/lib/components/VBottomNavigation/VBottomNavigation.d.ts +6 -6
  28. package/lib/components/VCombobox/VCombobox.d.ts +3 -3
  29. package/lib/components/VDataTable/VDataTable.d.ts +110 -110
  30. package/lib/components/VDataTable/VDataTableHeaders.js +1 -2
  31. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  32. package/lib/components/VDataTable/VDataTableServer.d.ts +55 -55
  33. package/lib/components/VDataTable/VDataTableVirtual.d.ts +55 -55
  34. package/lib/components/VDataTable/composables/headers.d.ts +75 -75
  35. package/lib/components/VDatePicker/VDatePicker.d.ts +3 -3
  36. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +6 -6
  37. package/lib/components/VFileInput/VFileInput.css +4 -0
  38. package/lib/components/VFileInput/VFileInput.js +21 -3
  39. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  40. package/lib/components/VFileInput/VFileInput.sass +4 -0
  41. package/lib/components/VNumberInput/VNumberInput.d.ts +3 -3
  42. package/lib/components/VOverlay/locationStrategies.js +1 -1
  43. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  44. package/lib/components/VSelect/VSelect.d.ts +3 -3
  45. package/lib/components/VTabs/VTabs.d.ts +6 -6
  46. package/lib/components/transitions/dialog-transition.js +3 -3
  47. package/lib/components/transitions/dialog-transition.js.map +1 -1
  48. package/lib/entry-bundler.d.ts +6 -6
  49. package/lib/entry-bundler.js +1 -1
  50. package/lib/framework.d.ts +57 -57
  51. package/lib/framework.js +1 -1
  52. package/lib/labs/VCalendar/VCalendar.d.ts +3 -3
  53. package/lib/labs/VCalendar/VCalendarDay.d.ts +3 -3
  54. package/lib/labs/VCalendar/VCalendarInterval.d.ts +3 -3
  55. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +3 -3
  56. package/lib/labs/VDateInput/VDateInput.d.ts +9 -9
  57. package/lib/labs/VFileUpload/VFileUpload.js +19 -31
  58. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  59. package/lib/labs/VTimePicker/VTimePickerClock.js +2 -2
  60. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  61. package/lib/util/helpers.js.map +1 -1
  62. package/package.json +6 -6
@@ -6,14 +6,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
6
6
  headers?: unknown;
7
7
  } = {}>(defaults?: Defaults | undefined) => {
8
8
  headers: unknown extends Defaults["headers"] ? PropType<readonly {
9
- readonly key?: ("data-table-group" | "data-table-select" | "data-table-expand" | (string & {})) | undefined;
9
+ readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
10
10
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
11
11
  readonly title?: string | undefined;
12
12
  readonly fixed?: boolean | undefined;
13
- readonly align?: ("start" | "end" | "center") | undefined;
14
- readonly width?: (number | string) | undefined;
15
- readonly minWidth?: (number | string) | undefined;
16
- readonly maxWidth?: (number | string) | undefined;
13
+ readonly align?: "start" | "end" | "center" | undefined;
14
+ readonly width?: number | string | undefined;
15
+ readonly minWidth?: number | string | undefined;
16
+ readonly maxWidth?: number | string | undefined;
17
17
  readonly nowrap?: boolean | undefined;
18
18
  readonly headerProps?: {
19
19
  readonly [x: string]: any;
@@ -26,14 +26,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
26
26
  readonly sortRaw?: DataTableCompareFunction | undefined;
27
27
  readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
28
28
  readonly children?: readonly {
29
- readonly key?: ("data-table-group" | "data-table-select" | "data-table-expand" | (string & {})) | undefined;
29
+ readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
30
30
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
31
31
  readonly title?: string | undefined;
32
32
  readonly fixed?: boolean | undefined;
33
- readonly align?: ("start" | "end" | "center") | undefined;
34
- readonly width?: (number | string) | undefined;
35
- readonly minWidth?: (number | string) | undefined;
36
- readonly maxWidth?: (number | string) | undefined;
33
+ readonly align?: "start" | "end" | "center" | undefined;
34
+ readonly width?: number | string | undefined;
35
+ readonly minWidth?: number | string | undefined;
36
+ readonly maxWidth?: number | string | undefined;
37
37
  readonly nowrap?: boolean | undefined;
38
38
  readonly headerProps?: {
39
39
  readonly [x: string]: any;
@@ -45,18 +45,18 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
45
45
  readonly sort?: DataTableCompareFunction | undefined;
46
46
  readonly sortRaw?: DataTableCompareFunction | undefined;
47
47
  readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
48
- readonly children?: readonly any[] | undefined;
48
+ readonly children?: readonly /*elided*/ any[] | undefined;
49
49
  }[] | undefined;
50
50
  }[]> : {
51
51
  type: PropType<unknown extends Defaults["headers"] ? readonly {
52
- readonly key?: ("data-table-group" | "data-table-select" | "data-table-expand" | (string & {})) | undefined;
52
+ readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
53
53
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
54
54
  readonly title?: string | undefined;
55
55
  readonly fixed?: boolean | undefined;
56
- readonly align?: ("start" | "end" | "center") | undefined;
57
- readonly width?: (number | string) | undefined;
58
- readonly minWidth?: (number | string) | undefined;
59
- readonly maxWidth?: (number | string) | undefined;
56
+ readonly align?: "start" | "end" | "center" | undefined;
57
+ readonly width?: number | string | undefined;
58
+ readonly minWidth?: number | string | undefined;
59
+ readonly maxWidth?: number | string | undefined;
60
60
  readonly nowrap?: boolean | undefined;
61
61
  readonly headerProps?: {
62
62
  readonly [x: string]: any;
@@ -69,14 +69,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
69
69
  readonly sortRaw?: DataTableCompareFunction | undefined;
70
70
  readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
71
71
  readonly children?: readonly {
72
- readonly key?: ("data-table-group" | "data-table-select" | "data-table-expand" | (string & {})) | undefined;
72
+ readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
73
73
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
74
74
  readonly title?: string | undefined;
75
75
  readonly fixed?: boolean | undefined;
76
- readonly align?: ("start" | "end" | "center") | undefined;
77
- readonly width?: (number | string) | undefined;
78
- readonly minWidth?: (number | string) | undefined;
79
- readonly maxWidth?: (number | string) | undefined;
76
+ readonly align?: "start" | "end" | "center" | undefined;
77
+ readonly width?: number | string | undefined;
78
+ readonly minWidth?: number | string | undefined;
79
+ readonly maxWidth?: number | string | undefined;
80
80
  readonly nowrap?: boolean | undefined;
81
81
  readonly headerProps?: {
82
82
  readonly [x: string]: any;
@@ -88,17 +88,17 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
88
88
  readonly sort?: DataTableCompareFunction | undefined;
89
89
  readonly sortRaw?: DataTableCompareFunction | undefined;
90
90
  readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
91
- readonly children?: readonly any[] | undefined;
91
+ readonly children?: readonly /*elided*/ any[] | undefined;
92
92
  }[] | undefined;
93
93
  }[] : readonly {
94
- readonly key?: ("data-table-group" | "data-table-select" | "data-table-expand" | (string & {})) | undefined;
94
+ readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
95
95
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
96
96
  readonly title?: string | undefined;
97
97
  readonly fixed?: boolean | undefined;
98
- readonly align?: ("start" | "end" | "center") | undefined;
99
- readonly width?: (number | string) | undefined;
100
- readonly minWidth?: (number | string) | undefined;
101
- readonly maxWidth?: (number | string) | undefined;
98
+ readonly align?: "start" | "end" | "center" | undefined;
99
+ readonly width?: number | string | undefined;
100
+ readonly minWidth?: number | string | undefined;
101
+ readonly maxWidth?: number | string | undefined;
102
102
  readonly nowrap?: boolean | undefined;
103
103
  readonly headerProps?: {
104
104
  readonly [x: string]: any;
@@ -111,14 +111,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
111
111
  readonly sortRaw?: DataTableCompareFunction | undefined;
112
112
  readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
113
113
  readonly children?: readonly {
114
- readonly key?: ("data-table-group" | "data-table-select" | "data-table-expand" | (string & {})) | undefined;
114
+ readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
115
115
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
116
116
  readonly title?: string | undefined;
117
117
  readonly fixed?: boolean | undefined;
118
- readonly align?: ("start" | "end" | "center") | undefined;
119
- readonly width?: (number | string) | undefined;
120
- readonly minWidth?: (number | string) | undefined;
121
- readonly maxWidth?: (number | string) | undefined;
118
+ readonly align?: "start" | "end" | "center" | undefined;
119
+ readonly width?: number | string | undefined;
120
+ readonly minWidth?: number | string | undefined;
121
+ readonly maxWidth?: number | string | undefined;
122
122
  readonly nowrap?: boolean | undefined;
123
123
  readonly headerProps?: {
124
124
  readonly [x: string]: any;
@@ -130,18 +130,18 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
130
130
  readonly sort?: DataTableCompareFunction | undefined;
131
131
  readonly sortRaw?: DataTableCompareFunction | undefined;
132
132
  readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
133
- readonly children?: readonly any[] | undefined;
133
+ readonly children?: readonly /*elided*/ any[] | undefined;
134
134
  }[] | undefined;
135
135
  }[] | Defaults["headers"]>;
136
136
  default: unknown extends Defaults["headers"] ? readonly {
137
- readonly key?: ("data-table-group" | "data-table-select" | "data-table-expand" | (string & {})) | undefined;
137
+ readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
138
138
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
139
139
  readonly title?: string | undefined;
140
140
  readonly fixed?: boolean | undefined;
141
- readonly align?: ("start" | "end" | "center") | undefined;
142
- readonly width?: (number | string) | undefined;
143
- readonly minWidth?: (number | string) | undefined;
144
- readonly maxWidth?: (number | string) | undefined;
141
+ readonly align?: "start" | "end" | "center" | undefined;
142
+ readonly width?: number | string | undefined;
143
+ readonly minWidth?: number | string | undefined;
144
+ readonly maxWidth?: number | string | undefined;
145
145
  readonly nowrap?: boolean | undefined;
146
146
  readonly headerProps?: {
147
147
  readonly [x: string]: any;
@@ -154,14 +154,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
154
154
  readonly sortRaw?: DataTableCompareFunction | undefined;
155
155
  readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
156
156
  readonly children?: readonly {
157
- readonly key?: ("data-table-group" | "data-table-select" | "data-table-expand" | (string & {})) | undefined;
157
+ readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
158
158
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
159
159
  readonly title?: string | undefined;
160
160
  readonly fixed?: boolean | undefined;
161
- readonly align?: ("start" | "end" | "center") | undefined;
162
- readonly width?: (number | string) | undefined;
163
- readonly minWidth?: (number | string) | undefined;
164
- readonly maxWidth?: (number | string) | undefined;
161
+ readonly align?: "start" | "end" | "center" | undefined;
162
+ readonly width?: number | string | undefined;
163
+ readonly minWidth?: number | string | undefined;
164
+ readonly maxWidth?: number | string | undefined;
165
165
  readonly nowrap?: boolean | undefined;
166
166
  readonly headerProps?: {
167
167
  readonly [x: string]: any;
@@ -173,17 +173,17 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
173
173
  readonly sort?: DataTableCompareFunction | undefined;
174
174
  readonly sortRaw?: DataTableCompareFunction | undefined;
175
175
  readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
176
- readonly children?: readonly any[] | undefined;
176
+ readonly children?: readonly /*elided*/ any[] | undefined;
177
177
  }[] | undefined;
178
178
  }[] : readonly {
179
- readonly key?: ("data-table-group" | "data-table-select" | "data-table-expand" | (string & {})) | undefined;
179
+ readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
180
180
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
181
181
  readonly title?: string | undefined;
182
182
  readonly fixed?: boolean | undefined;
183
- readonly align?: ("start" | "end" | "center") | undefined;
184
- readonly width?: (number | string) | undefined;
185
- readonly minWidth?: (number | string) | undefined;
186
- readonly maxWidth?: (number | string) | undefined;
183
+ readonly align?: "start" | "end" | "center" | undefined;
184
+ readonly width?: number | string | undefined;
185
+ readonly minWidth?: number | string | undefined;
186
+ readonly maxWidth?: number | string | undefined;
187
187
  readonly nowrap?: boolean | undefined;
188
188
  readonly headerProps?: {
189
189
  readonly [x: string]: any;
@@ -196,14 +196,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
196
196
  readonly sortRaw?: DataTableCompareFunction | undefined;
197
197
  readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
198
198
  readonly children?: readonly {
199
- readonly key?: ("data-table-group" | "data-table-select" | "data-table-expand" | (string & {})) | undefined;
199
+ readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
200
200
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
201
201
  readonly title?: string | undefined;
202
202
  readonly fixed?: boolean | undefined;
203
- readonly align?: ("start" | "end" | "center") | undefined;
204
- readonly width?: (number | string) | undefined;
205
- readonly minWidth?: (number | string) | undefined;
206
- readonly maxWidth?: (number | string) | undefined;
203
+ readonly align?: "start" | "end" | "center" | undefined;
204
+ readonly width?: number | string | undefined;
205
+ readonly minWidth?: number | string | undefined;
206
+ readonly maxWidth?: number | string | undefined;
207
207
  readonly nowrap?: boolean | undefined;
208
208
  readonly headerProps?: {
209
209
  readonly [x: string]: any;
@@ -215,7 +215,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
215
215
  readonly sort?: DataTableCompareFunction | undefined;
216
216
  readonly sortRaw?: DataTableCompareFunction | undefined;
217
217
  readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
218
- readonly children?: readonly any[] | undefined;
218
+ readonly children?: readonly /*elided*/ any[] | undefined;
219
219
  }[] | undefined;
220
220
  }[] | Defaults["headers"];
221
221
  };
@@ -237,12 +237,12 @@ export declare function createHeaders(props: HeaderProps, options?: {
237
237
  fixed?: boolean | undefined;
238
238
  filter?: import("../../../composables/filter.js").FilterFunction | undefined;
239
239
  sort?: DataTableCompareFunction | undefined;
240
- width?: (number | string) | undefined;
241
- maxWidth?: (number | string) | undefined;
242
- minWidth?: (number | string) | undefined;
240
+ width?: number | string | undefined;
241
+ maxWidth?: number | string | undefined;
242
+ minWidth?: number | string | undefined;
243
243
  title?: string | undefined;
244
244
  nowrap?: boolean | undefined;
245
- align?: ("start" | "end" | "center") | undefined;
245
+ align?: "start" | "end" | "center" | undefined;
246
246
  headerProps?: Record<string, any> | undefined;
247
247
  cellProps?: import("../types.js").HeaderCellProps | undefined;
248
248
  sortable: boolean;
@@ -253,17 +253,17 @@ export declare function createHeaders(props: HeaderProps, options?: {
253
253
  lastFixed?: boolean | undefined;
254
254
  colspan?: number | undefined;
255
255
  rowspan?: number | undefined;
256
- children?: any[] | undefined;
256
+ children?: /*elided*/ any[] | undefined;
257
257
  }[][], InternalDataTableHeader[][] | {
258
258
  fixed?: boolean | undefined;
259
259
  filter?: import("../../../composables/filter.js").FilterFunction | undefined;
260
260
  sort?: DataTableCompareFunction | undefined;
261
- width?: (number | string) | undefined;
262
- maxWidth?: (number | string) | undefined;
263
- minWidth?: (number | string) | undefined;
261
+ width?: number | string | undefined;
262
+ maxWidth?: number | string | undefined;
263
+ minWidth?: number | string | undefined;
264
264
  title?: string | undefined;
265
265
  nowrap?: boolean | undefined;
266
- align?: ("start" | "end" | "center") | undefined;
266
+ align?: "start" | "end" | "center" | undefined;
267
267
  headerProps?: Record<string, any> | undefined;
268
268
  cellProps?: import("../types.js").HeaderCellProps | undefined;
269
269
  sortable: boolean;
@@ -274,18 +274,18 @@ export declare function createHeaders(props: HeaderProps, options?: {
274
274
  lastFixed?: boolean | undefined;
275
275
  colspan?: number | undefined;
276
276
  rowspan?: number | undefined;
277
- children?: any[] | undefined;
277
+ children?: /*elided*/ any[] | undefined;
278
278
  }[][]>;
279
279
  columns: Ref<{
280
280
  fixed?: boolean | undefined;
281
281
  filter?: import("../../../composables/filter.js").FilterFunction | undefined;
282
282
  sort?: DataTableCompareFunction | undefined;
283
- width?: (number | string) | undefined;
284
- maxWidth?: (number | string) | undefined;
285
- minWidth?: (number | string) | undefined;
283
+ width?: number | string | undefined;
284
+ maxWidth?: number | string | undefined;
285
+ minWidth?: number | string | undefined;
286
286
  title?: string | undefined;
287
287
  nowrap?: boolean | undefined;
288
- align?: ("start" | "end" | "center") | undefined;
288
+ align?: "start" | "end" | "center" | undefined;
289
289
  headerProps?: Record<string, any> | undefined;
290
290
  cellProps?: import("../types.js").HeaderCellProps | undefined;
291
291
  sortable: boolean;
@@ -296,17 +296,17 @@ export declare function createHeaders(props: HeaderProps, options?: {
296
296
  lastFixed?: boolean | undefined;
297
297
  colspan?: number | undefined;
298
298
  rowspan?: number | undefined;
299
- children?: any[] | undefined;
299
+ children?: /*elided*/ any[] | undefined;
300
300
  }[], InternalDataTableHeader[] | {
301
301
  fixed?: boolean | undefined;
302
302
  filter?: import("../../../composables/filter.js").FilterFunction | undefined;
303
303
  sort?: DataTableCompareFunction | undefined;
304
- width?: (number | string) | undefined;
305
- maxWidth?: (number | string) | undefined;
306
- minWidth?: (number | string) | undefined;
304
+ width?: number | string | undefined;
305
+ maxWidth?: number | string | undefined;
306
+ minWidth?: number | string | undefined;
307
307
  title?: string | undefined;
308
308
  nowrap?: boolean | undefined;
309
- align?: ("start" | "end" | "center") | undefined;
309
+ align?: "start" | "end" | "center" | undefined;
310
310
  headerProps?: Record<string, any> | undefined;
311
311
  cellProps?: import("../types.js").HeaderCellProps | undefined;
312
312
  sortable: boolean;
@@ -317,7 +317,7 @@ export declare function createHeaders(props: HeaderProps, options?: {
317
317
  lastFixed?: boolean | undefined;
318
318
  colspan?: number | undefined;
319
319
  rowspan?: number | undefined;
320
- children?: any[] | undefined;
320
+ children?: /*elided*/ any[] | undefined;
321
321
  }[]>;
322
322
  sortFunctions: Ref<Record<string, DataTableCompareFunction>, Record<string, DataTableCompareFunction>>;
323
323
  sortRawFunctions: Ref<Record<string, DataTableCompareFunction>, Record<string, DataTableCompareFunction>>;
@@ -257,9 +257,9 @@ export declare const makeVDatePickerProps: <Defaults extends {
257
257
  type: import("vue").PropType<unknown extends Defaults["hideWeekdays"] ? boolean : boolean | Defaults["hideWeekdays"]>;
258
258
  default: unknown extends Defaults["hideWeekdays"] ? boolean : boolean | Defaults["hideWeekdays"];
259
259
  };
260
- multiple: unknown extends Defaults["multiple"] ? import("vue").PropType<number | boolean | "range" | (string & {})> : {
261
- type: import("vue").PropType<unknown extends Defaults["multiple"] ? number | boolean | "range" | (string & {}) : number | boolean | "range" | (string & {}) | Defaults["multiple"]>;
262
- default: unknown extends Defaults["multiple"] ? number | boolean | "range" | (string & {}) : NonNullable<number | boolean | "range" | (string & {})> | Defaults["multiple"];
260
+ multiple: unknown extends Defaults["multiple"] ? import("vue").PropType<number | boolean | (string & {}) | "range"> : {
261
+ type: import("vue").PropType<unknown extends Defaults["multiple"] ? number | boolean | (string & {}) | "range" : number | boolean | (string & {}) | "range" | Defaults["multiple"]>;
262
+ default: unknown extends Defaults["multiple"] ? number | boolean | (string & {}) | "range" : NonNullable<number | boolean | (string & {}) | "range"> | Defaults["multiple"];
263
263
  };
264
264
  showWeek: unknown extends Defaults["showWeek"] ? BooleanConstructor : {
265
265
  type: import("vue").PropType<unknown extends Defaults["showWeek"] ? boolean : boolean | Defaults["showWeek"]>;
@@ -103,9 +103,9 @@ export declare const makeVDatePickerMonthProps: <Defaults extends {
103
103
  type: PropType<unknown extends Defaults["hideWeekdays"] ? boolean : boolean | Defaults["hideWeekdays"]>;
104
104
  default: unknown extends Defaults["hideWeekdays"] ? boolean : boolean | Defaults["hideWeekdays"];
105
105
  };
106
- multiple: unknown extends Defaults["multiple"] ? PropType<number | boolean | "range" | (string & {})> : {
107
- type: PropType<unknown extends Defaults["multiple"] ? number | boolean | "range" | (string & {}) : number | boolean | "range" | (string & {}) | Defaults["multiple"]>;
108
- default: unknown extends Defaults["multiple"] ? number | boolean | "range" | (string & {}) : Defaults["multiple"] | NonNullable<number | boolean | "range" | (string & {})>;
106
+ multiple: unknown extends Defaults["multiple"] ? PropType<number | boolean | (string & {}) | "range"> : {
107
+ type: PropType<unknown extends Defaults["multiple"] ? number | boolean | (string & {}) | "range" : number | boolean | (string & {}) | "range" | Defaults["multiple"]>;
108
+ default: unknown extends Defaults["multiple"] ? number | boolean | (string & {}) | "range" : Defaults["multiple"] | NonNullable<number | boolean | (string & {}) | "range">;
109
109
  };
110
110
  showWeek: unknown extends Defaults["showWeek"] ? BooleanConstructor : {
111
111
  type: PropType<unknown extends Defaults["showWeek"] ? boolean : boolean | Defaults["showWeek"]>;
@@ -146,7 +146,7 @@ export declare const VDatePickerMonth: {
146
146
  max?: unknown;
147
147
  min?: unknown;
148
148
  color?: string | undefined;
149
- multiple?: number | boolean | "range" | (string & {}) | undefined;
149
+ multiple?: number | boolean | (string & {}) | "range" | undefined;
150
150
  month?: string | number | undefined;
151
151
  year?: string | number | undefined;
152
152
  modelValue?: unknown[] | undefined;
@@ -225,7 +225,7 @@ export declare const VDatePickerMonth: {
225
225
  max?: unknown;
226
226
  min?: unknown;
227
227
  color?: string | undefined;
228
- multiple?: number | boolean | "range" | (string & {}) | undefined;
228
+ multiple?: number | boolean | (string & {}) | "range" | undefined;
229
229
  month?: string | number | undefined;
230
230
  year?: string | number | undefined;
231
231
  modelValue?: unknown[] | undefined;
@@ -289,7 +289,7 @@ export declare const VDatePickerMonth: {
289
289
  max?: unknown;
290
290
  min?: unknown;
291
291
  color?: string | undefined;
292
- multiple?: number | boolean | "range" | (string & {}) | undefined;
292
+ multiple?: number | boolean | (string & {}) | "range" | undefined;
293
293
  month?: string | number | undefined;
294
294
  year?: string | number | undefined;
295
295
  modelValue?: unknown[] | undefined;
@@ -20,6 +20,10 @@
20
20
  position: absolute;
21
21
  top: 0;
22
22
  width: 100%;
23
+ z-index: 0;
24
+ }
25
+ .v-file-input--dragging input[type=file] {
26
+ z-index: 1;
23
27
  }
24
28
  .v-file-input .v-input__details {
25
29
  padding-inline: 16px;
@@ -12,7 +12,7 @@ import { useFocus } from "../../composables/focus.js";
12
12
  import { forwardRefs } from "../../composables/forwardRefs.js";
13
13
  import { useLocale } from "../../composables/locale.js";
14
14
  import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
15
- import { computed, nextTick, ref, toRef, watch } from 'vue';
15
+ import { computed, nextTick, ref, shallowRef, toRef, watch } from 'vue';
16
16
  import { callEvent, filterInputAttrs, genericComponent, humanReadableFileSize, propsFactory, useRender, wrapInArray } from "../../util/index.js"; // Types
17
17
  export const makeVFileInputProps = propsFactory({
18
18
  chips: Boolean,
@@ -97,6 +97,7 @@ export const VFileInput = genericComponent()({
97
97
  const inputRef = ref();
98
98
  const isActive = toRef(() => isFocused.value || props.active);
99
99
  const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
100
+ const isDragging = shallowRef(false);
100
101
  function onFocus() {
101
102
  if (inputRef.value !== document.activeElement) {
102
103
  inputRef.value?.focus();
@@ -123,11 +124,26 @@ export const VFileInput = genericComponent()({
123
124
  }
124
125
  function onDragover(e) {
125
126
  e.preventDefault();
127
+ e.stopImmediatePropagation();
128
+ isDragging.value = true;
129
+ }
130
+ function onDragleave(e) {
131
+ e.preventDefault();
132
+ isDragging.value = false;
126
133
  }
127
134
  function onDrop(e) {
128
135
  e.preventDefault();
129
- if (!e.dataTransfer) return;
130
- model.value = [...(e.dataTransfer.files ?? [])];
136
+ e.stopImmediatePropagation();
137
+ isDragging.value = false;
138
+ if (!e.dataTransfer?.files?.length || !inputRef.value) return;
139
+ const dataTransfer = new DataTransfer();
140
+ for (const file of e.dataTransfer.files) {
141
+ dataTransfer.items.add(file);
142
+ }
143
+ inputRef.value.files = dataTransfer.files;
144
+ inputRef.value.dispatchEvent(new Event('change', {
145
+ bubbles: true
146
+ }));
131
147
  }
132
148
  watch(model, newValue => {
133
149
  const hasModelReset = !Array.isArray(newValue) || !newValue.length;
@@ -149,6 +165,7 @@ export const VFileInput = genericComponent()({
149
165
  "modelValue": props.multiple ? model.value : model.value[0],
150
166
  "class": ['v-file-input', {
151
167
  'v-file-input--chips': !!props.chips,
168
+ 'v-file-input--dragging': isDragging.value,
152
169
  'v-file-input--hide': props.hideInput,
153
170
  'v-input--plain-underlined': isPlainOrUnderlined.value
154
171
  }, props.class],
@@ -210,6 +227,7 @@ export const VFileInput = genericComponent()({
210
227
  const target = e.target;
211
228
  model.value = [...(target.files ?? [])];
212
229
  },
230
+ "onDragleave": onDragleave,
213
231
  "onFocus": onFocus,
214
232
  "onBlur": blur
215
233
  }, slotProps, inputAttrs), null), _createVNode("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"VFileInput.js","names":["VChip","VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","toRef","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","hideInput","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","Object","props","val","every","clearable","VFileInput","name","inheritAttrs","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isArray","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","click","onControlMousedown","onControlClick","onClear","stopPropagation","onDragover","preventDefault","onDrop","dataTransfer","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","_Fragment","target","selection","text","join","disabled"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, toRef, 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 hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType<File[] | File | null>,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\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 | File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\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 = toRef(() => isFocused.value || props.active)\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 inputRef.value?.click()\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 function onDragover (e: DragEvent) {\n e.preventDefault()\n }\n function onDrop (e: DragEvent) {\n e.preventDefault()\n\n if (!e.dataTransfer) return\n\n model.value = [...e.dataTransfer.files ?? []]\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 = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n modelValue={ props.multiple ? model.value : model.value[0] }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--hide': props.hideInput,\n 'v-input--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 || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n onDragover={ onDragover }\n onDrop={ onDrop }\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 if (isReadonly.value) e.preventDefault()\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 && !props.hideInput && (\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 text={ text }\n />\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 disabled={ props.disabled }\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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","ignoreList":[]}
1
+ {"version":3,"file":"VFileInput.js","names":["VChip","VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","shallowRef","toRef","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","hideInput","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","Object","props","val","every","clearable","VFileInput","name","inheritAttrs","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isArray","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","isDragging","onFocus","document","activeElement","onClickPrepend","click","onControlMousedown","onControlClick","onClear","stopPropagation","onDragover","preventDefault","stopImmediatePropagation","onDragleave","onDrop","dataTransfer","DataTransfer","items","add","dispatchEvent","Event","bubbles","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","_Fragment","target","selection","text","join","disabled"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, shallowRef, toRef, 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 hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType<File[] | File | null>,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\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 | File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\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 = toRef(() => isFocused.value || props.active)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n const isDragging = shallowRef(false)\n\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 inputRef.value?.click()\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 function onDragover (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = true\n }\n function onDragleave (e: DragEvent) {\n e.preventDefault()\n isDragging.value = false\n }\n function onDrop (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = false\n\n if (!e.dataTransfer?.files?.length || !inputRef.value) return\n\n const dataTransfer = new DataTransfer()\n\n for (const file of e.dataTransfer.files) {\n dataTransfer.items.add(file)\n }\n\n inputRef.value.files = dataTransfer.files\n inputRef.value.dispatchEvent(new Event('change', { bubbles: true }))\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 = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n modelValue={ props.multiple ? model.value : model.value[0] }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--dragging': isDragging.value,\n 'v-file-input--hide': props.hideInput,\n 'v-input--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 || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n onDragover={ onDragover }\n onDrop={ onDrop }\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 if (isReadonly.value) e.preventDefault()\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 onDragleave={ onDragleave }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && !props.hideInput && (\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 text={ text }\n />\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 disabled={ props.disabled }\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":";AAAA;AACA;;AAEA;AAAA,SACSA,KAAK;AAAA,SACLC,QAAQ;AAAA,SACRC,MAAM;AAAA,SACNC,eAAe;AAAA,SACfC,eAAe,EAAEC,MAAM,+BAEhC;AAAA,SACSC,QAAQ;AAAA,SACRC,WAAW;AAAA,SACXC,SAAS;AAAA,SACTC,eAAe,6CAExB;AACA,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAErEC,SAAS,EACTC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,SAAS,EACTC,WAAW,+BAGb;AAcA,OAAO,MAAMC,mBAAmB,GAAGH,YAAY,CAAC;EAC9CI,KAAK,EAAEC,OAAO;EACdC,OAAO,EAAED,OAAO;EAChBE,iBAAiB,EAAE;IACjBC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDC,aAAa,EAAE;IACbH,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDE,SAAS,EAAEP,OAAO;EAClBQ,QAAQ,EAAER,OAAO;EACjBS,QAAQ,EAAE;IACRN,IAAI,EAAE,CAACH,OAAO,EAAEU,MAAM,EAAEN,MAAM,CAAoC;IAClEC,OAAO,EAAE,KAAK;IACdM,SAAS,EAAGC,CAAmB,IAAK;MAClC,OACE,OAAOA,CAAC,KAAK,SAAS,IACtB,CAAC,IAAI,EAAE,IAAI,CAAC,CAACC,QAAQ,CAACH,MAAM,CAACE,CAAC,CAAC,CAAC;IAEpC;EACF,CAAC;EAED,GAAGjC,eAAe,CAAC;IAAEmC,WAAW,EAAE;EAAQ,CAAC,CAAC;EAE5CC,UAAU,EAAE;IACVZ,IAAI,EAAE,CAACa,KAAK,EAAEC,MAAM,CAAmC;IACvDZ,OAAO,EAAGa,KAAU,IAAKA,KAAK,CAACV,QAAQ,GAAG,EAAE,GAAG,IAAI;IACnDG,SAAS,EAAGQ,GAAQ,IAAK;MACvB,OAAOtB,WAAW,CAACsB,GAAG,CAAC,CAACC,KAAK,CAACR,CAAC,IAAIA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,CAAC;IACxE;EACF,CAAC;EAED,GAAGlC,eAAe,CAAC;IAAE2C,SAAS,EAAE;EAAK,CAAC;AACxC,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,MAAMC,UAAU,GAAG7B,gBAAgB,CAAkB,CAAC,CAAC;EAC5D8B,IAAI,EAAE,YAAY;EAElBC,YAAY,EAAE,KAAK;EAEnBN,KAAK,EAAEpB,mBAAmB,CAAC,CAAC;EAE5B2B,KAAK,EAAE;IACL,eAAe,EAAGC,CAAa,IAAK,IAAI;IACxC,mBAAmB,EAAGA,CAAa,IAAK,IAAI;IAC5C,gBAAgB,EAAGC,OAAgB,IAAK,IAAI;IAC5C,mBAAmB,EAAGC,KAAoB,IAAK;EACjD,CAAC;EAEDC,KAAKA,CAAEX,KAAK,EAAAY,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAH,IAAA;IAClC,MAAM;MAAEI;IAAE,CAAC,GAAGnD,SAAS,CAAC,CAAC;IACzB,MAAMoD,KAAK,GAAGnD,eAAe,CAC3BkC,KAAK,EACL,YAAY,EACZA,KAAK,CAACH,UAAU,EAChBI,GAAG,IAAItB,WAAW,CAACsB,GAAG,CAAC,EACvBA,GAAG,IAAK,CAACD,KAAK,CAACV,QAAQ,IAAIQ,KAAK,CAACoB,OAAO,CAACjB,GAAG,CAAC,GAAIA,GAAG,CAAC,CAAC,CAAC,GAAGA,GAC5D,CAAC;IACD,MAAM;MAAEkB,SAAS;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAG1D,QAAQ,CAACqC,KAAK,CAAC;IAClD,MAAMsB,IAAI,GAAGvD,QAAQ,CAAC,MAAM,OAAOiC,KAAK,CAACT,QAAQ,KAAK,SAAS,GAAGS,KAAK,CAACT,QAAQ,GAAGgC,SAAS,CAAC;IAC7F,MAAMC,UAAU,GAAGzD,QAAQ,CAAC,MAAM,CAACkD,KAAK,CAACQ,KAAK,IAAI,EAAE,EAAEC,MAAM,CAAC,CAACC,KAAK,EAAAC,KAAA;MAAA,IAAE;QAAEC,IAAI,GAAG;MAAE,CAAC,GAAAD,KAAA;MAAA,OAAKD,KAAK,GAAGE,IAAI;IAAA,GAAE,CAAC,CAAC,CAAC;IACvG,MAAMC,kBAAkB,GAAG/D,QAAQ,CAAC,MAAMS,qBAAqB,CAACgD,UAAU,CAACC,KAAK,EAAEH,IAAI,CAACG,KAAK,CAAC,CAAC;IAE9F,MAAMM,SAAS,GAAGhE,QAAQ,CAAC,MAAM,CAACkD,KAAK,CAACQ,KAAK,IAAI,EAAE,EAAEO,GAAG,CAACC,IAAI,IAAI;MAC/D,MAAM;QAAE5B,IAAI,GAAG,EAAE;QAAEwB,IAAI,GAAG;MAAE,CAAC,GAAGI,IAAI;MAEpC,OAAO,CAACjC,KAAK,CAACT,QAAQ,GAClBc,IAAI,GACJ,GAAGA,IAAI,KAAK7B,qBAAqB,CAACqD,IAAI,EAAEP,IAAI,CAACG,KAAK,CAAC,GAAG;IAC5D,CAAC,CAAC,CAAC;IAEH,MAAMS,YAAY,GAAGnE,QAAQ,CAAC,MAAM;MAClC,MAAMoE,SAAS,GAAGlB,KAAK,CAACQ,KAAK,EAAEW,MAAM,IAAI,CAAC;MAC1C,IAAIpC,KAAK,CAACT,QAAQ,EAAE,OAAOyB,CAAC,CAAChB,KAAK,CAAChB,iBAAiB,EAAEmD,SAAS,EAAEL,kBAAkB,CAACL,KAAK,CAAC,MACrF,OAAOT,CAAC,CAAChB,KAAK,CAACZ,aAAa,EAAE+C,SAAS,CAAC;IAC/C,CAAC,CAAC;IACF,MAAME,SAAS,GAAGpE,GAAG,CAAS,CAAC;IAC/B,MAAMqE,SAAS,GAAGrE,GAAG,CAAS,CAAC;IAC/B,MAAMsE,QAAQ,GAAGtE,GAAG,CAAmB,CAAC;IACxC,MAAMuE,QAAQ,GAAGrE,KAAK,CAAC,MAAMgD,SAAS,CAACM,KAAK,IAAIzB,KAAK,CAACyC,MAAM,CAAC;IAC7D,MAAMC,mBAAmB,GAAG3E,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC4B,QAAQ,CAACK,KAAK,CAAC2C,OAAO,CAAC,CAAC;IAC3F,MAAMC,UAAU,GAAG1E,UAAU,CAAC,KAAK,CAAC;IAEpC,SAAS2E,OAAOA,CAAA,EAAI;MAClB,IAAIN,QAAQ,CAACd,KAAK,KAAKqB,QAAQ,CAACC,aAAa,EAAE;QAC7CR,QAAQ,CAACd,KAAK,EAAEL,KAAK,CAAC,CAAC;MACzB;MAEA,IAAI,CAACD,SAAS,CAACM,KAAK,EAAEL,KAAK,CAAC,CAAC;IAC/B;IACA,SAAS4B,cAAcA,CAAExC,CAAa,EAAE;MACtC+B,QAAQ,CAACd,KAAK,EAAEwB,KAAK,CAAC,CAAC;IACzB;IACA,SAASC,kBAAkBA,CAAE1C,CAAa,EAAE;MAC1CM,IAAI,CAAC,mBAAmB,EAAEN,CAAC,CAAC;IAC9B;IACA,SAAS2C,cAAcA,CAAE3C,CAAa,EAAE;MACtC+B,QAAQ,CAACd,KAAK,EAAEwB,KAAK,CAAC,CAAC;MAEvBnC,IAAI,CAAC,eAAe,EAAEN,CAAC,CAAC;IAC1B;IACA,SAAS4C,OAAOA,CAAE5C,CAAa,EAAE;MAC/BA,CAAC,CAAC6C,eAAe,CAAC,CAAC;MAEnBR,OAAO,CAAC,CAAC;MAET7E,QAAQ,CAAC,MAAM;QACbiD,KAAK,CAACQ,KAAK,GAAG,EAAE;QAEhBpD,SAAS,CAAC2B,KAAK,CAAC,eAAe,CAAC,EAAEQ,CAAC,CAAC;MACtC,CAAC,CAAC;IACJ;IACA,SAAS8C,UAAUA,CAAE9C,CAAY,EAAE;MACjCA,CAAC,CAAC+C,cAAc,CAAC,CAAC;MAClB/C,CAAC,CAACgD,wBAAwB,CAAC,CAAC;MAC5BZ,UAAU,CAACnB,KAAK,GAAG,IAAI;IACzB;IACA,SAASgC,WAAWA,CAAEjD,CAAY,EAAE;MAClCA,CAAC,CAAC+C,cAAc,CAAC,CAAC;MAClBX,UAAU,CAACnB,KAAK,GAAG,KAAK;IAC1B;IACA,SAASiC,MAAMA,CAAElD,CAAY,EAAE;MAC7BA,CAAC,CAAC+C,cAAc,CAAC,CAAC;MAClB/C,CAAC,CAACgD,wBAAwB,CAAC,CAAC;MAC5BZ,UAAU,CAACnB,KAAK,GAAG,KAAK;MAExB,IAAI,CAACjB,CAAC,CAACmD,YAAY,EAAEjD,KAAK,EAAE0B,MAAM,IAAI,CAACG,QAAQ,CAACd,KAAK,EAAE;MAEvD,MAAMkC,YAAY,GAAG,IAAIC,YAAY,CAAC,CAAC;MAEvC,KAAK,MAAM3B,IAAI,IAAIzB,CAAC,CAACmD,YAAY,CAACjD,KAAK,EAAE;QACvCiD,YAAY,CAACE,KAAK,CAACC,GAAG,CAAC7B,IAAI,CAAC;MAC9B;MAEAM,QAAQ,CAACd,KAAK,CAACf,KAAK,GAAGiD,YAAY,CAACjD,KAAK;MACzC6B,QAAQ,CAACd,KAAK,CAACsC,aAAa,CAAC,IAAIC,KAAK,CAAC,QAAQ,EAAE;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC,CAAC;IACtE;IAEA7F,KAAK,CAAC6C,KAAK,EAAEiD,QAAQ,IAAI;MACvB,MAAMC,aAAa,GAAG,CAACrE,KAAK,CAACoB,OAAO,CAACgD,QAAQ,CAAC,IAAI,CAACA,QAAQ,CAAC9B,MAAM;MAElE,IAAI+B,aAAa,IAAI5B,QAAQ,CAACd,KAAK,EAAE;QACnCc,QAAQ,CAACd,KAAK,CAACA,KAAK,GAAG,EAAE;MAC3B;IACF,CAAC,CAAC;IAEF/C,SAAS,CAAC,MAAM;MACd,MAAM0F,UAAU,GAAG,CAAC,EAAErD,KAAK,CAAChC,OAAO,IAAIiB,KAAK,CAACjB,OAAO,CAAC;MACrD,MAAMsF,UAAU,GAAG,CAAC,EAAED,UAAU,IAAIrD,KAAK,CAACuD,OAAO,CAAC;MAClD,MAAM,CAACC,SAAS,EAAEC,UAAU,CAAC,GAAGlG,gBAAgB,CAACuC,KAAK,CAAC;MACvD,MAAM;QAAEhB,UAAU,EAAE4E,CAAC;QAAE,GAAGC;MAAW,CAAC,GAAGhH,MAAM,CAACiH,WAAW,CAAC3E,KAAK,CAAC;MAClE,MAAM4E,UAAU,GAAGrH,MAAM,CAACoH,WAAW,CAAC3E,KAAK,CAAC;MAE5C,OAAA6E,YAAA,CAAAnH,MAAA,EAAAoH,WAAA;QAAA,OAEUzC,SAAS;QAAA,cACFrC,KAAK,CAACV,QAAQ,GAAG2B,KAAK,CAACQ,KAAK,GAAGR,KAAK,CAACQ,KAAK,CAAC,CAAC,CAAC;QAAA,SACnD,CACL,cAAc,EACd;UACE,qBAAqB,EAAE,CAAC,CAACzB,KAAK,CAACnB,KAAK;UACpC,wBAAwB,EAAE+D,UAAU,CAACnB,KAAK;UAC1C,oBAAoB,EAAEzB,KAAK,CAACX,SAAS;UACrC,2BAA2B,EAAEqD,mBAAmB,CAACjB;QACnD,CAAC,EACDzB,KAAK,CAAC+E,KAAK,CACZ;QAAA,SACO/E,KAAK,CAACgF,KAAK;QAAA,mBACDhC;MAAc,GAC3BuB,SAAS,EACTG,UAAU;QAAA,eACD,CAAChC,mBAAmB,CAACjB,KAAK;QAAA,WAC9BN,SAAS,CAACM;MAAK;QAGvB,GAAGV,KAAK;QACR5B,OAAO,EAAE8F,KAAA;UAAA,IAAC;YACRC,EAAE;YACFC,UAAU;YACVC,OAAO;YACPC,UAAU;YACVC;UACF,CAAC,GAAAL,KAAA;UAAA,OAAAJ,YAAA,CAAAtH,MAAA,EAAAuH,WAAA;YAAA,OAESxC,SAAS;YAAA,gBACAtC,KAAK,CAACJ,WAAW;YAAA,eAClBsD,kBAAkB;YAAA,WACtBC,cAAc;YAAA,iBACRC,OAAO;YAAA,wBACApD,KAAK,CAAC,sBAAsB,CAAC;YAAA,uBAC9BA,KAAK,CAAC,qBAAqB;UAAC,GAC7C4E,UAAU;YAAA,MACVM,EAAE,CAACzD,KAAK;YAAA,UACJe,QAAQ,CAACf,KAAK,IAAI2D,OAAO,CAAC3D,KAAK;YAAA,SAChC2D,OAAO,CAAC3D,KAAK,IAAIzB,KAAK,CAACuF,KAAK;YAAA,YACzBJ,UAAU,CAAC1D,KAAK;YAAA,WACjBN,SAAS,CAACM,KAAK;YAAA,SACjB6D,OAAO,CAAC7D,KAAK,KAAK,KAAK;YAAA,cAClB6B,UAAU;YAAA,UACdI;UAAM;YAGb,GAAG3C,KAAK;YACR5B,OAAO,EAAEqG,KAAA;cAAA,IAAC;gBACRxF,KAAK,EAAE;kBAAE+E,KAAK,EAAEU,UAAU;kBAAE,GAAGC;gBAAU;cAC3C,CAAC,GAAAF,KAAA;cAAA,OAAAX,YAAA,CAAAc,SAAA,SAAAd,YAAA,UAAAC,WAAA;gBAAA,OAGWvC,QAAQ;gBAAA;gBAAA,YAEH8C,UAAU,CAAC5D,KAAK;gBAAA,YAChB0D,UAAU,CAAC1D,KAAK;gBAAA,YAChBzB,KAAK,CAACV,QAAQ;gBAAA,QAClBU,KAAK,CAACK,IAAI;gBAAA,WACPG,CAAC,IAAI;kBACbA,CAAC,CAAC6C,eAAe,CAAC,CAAC;kBAEnB,IAAIgC,UAAU,CAAC5D,KAAK,EAAEjB,CAAC,CAAC+C,cAAc,CAAC,CAAC;kBAExCV,OAAO,CAAC,CAAC;gBACX,CAAC;gBAAA,YACUrC,CAAC,IAAI;kBACd,IAAI,CAACA,CAAC,CAACoF,MAAM,EAAE;kBAEf,MAAMA,MAAM,GAAGpF,CAAC,CAACoF,MAA0B;kBAC3C3E,KAAK,CAACQ,KAAK,GAAG,CAAC,IAAGmE,MAAM,CAAClF,KAAK,IAAI,EAAE,EAAC;gBACvC,CAAC;gBAAA,eACa+C,WAAW;gBAAA,WACfZ,OAAO;gBAAA,UACRxB;cAAI,GACRqE,SAAS,EACTlB,UAAU,UAAAK,YAAA;gBAAA,SAGJY;cAAU,IACnB,CAAC,CAACxE,KAAK,CAACQ,KAAK,EAAEW,MAAM,IAAI,CAACpC,KAAK,CAACX,SAAS,KACzC0B,KAAK,CAAC8E,SAAS,GAAG9E,KAAK,CAAC8E,SAAS,CAAC;gBAChC9D,SAAS,EAAEA,SAAS,CAACN,KAAK;gBAC1BD,UAAU,EAAEA,UAAU,CAACC,KAAK;gBAC5BK,kBAAkB,EAAEA,kBAAkB,CAACL;cACzC,CAAC,CAAC,GACAzB,KAAK,CAACnB,KAAK,GAAGkD,SAAS,CAACN,KAAK,CAACO,GAAG,CAAC8D,IAAI,IAAAjB,YAAA,CAAAxH,KAAA;gBAAA,OAE9ByI,IAAI;gBAAA;gBAAA,QAEHA;cAAI,QAEd,CAAC,GACA/D,SAAS,CAACN,KAAK,CAACsE,IAAI,CAAC,IAAI,CAAC,CAC7B;YAAA;UAGN;QAAA,CAGN;QACDzB,OAAO,EAAED,UAAU,GAAGqB,SAAS,IAAAb,YAAA,CAAAc,SAAA,SAEzB5E,KAAK,CAACuD,OAAO,GAAGoB,SAAS,CAAC,EAE1BtB,UAAU,IAAAS,YAAA,CAAAc,SAAA,SAAAd,YAAA,sBAAAA,YAAA,CAAAvH,QAAA;UAAA,UAKG,CAAC,CAAC2D,KAAK,CAACQ,KAAK,EAAEW,MAAM;UAAA,SACtBF,YAAY,CAACT,KAAK;UAAA,YACfzB,KAAK,CAACgG;QAAQ,GACPjF,KAAK,CAAChC,OAAO,GAGpC,EAEJ,GAAGwC;MAAS;IAIrB,CAAC,CAAC;IAEF,OAAO3D,WAAW,CAAC,CAAC,CAAC,EAAEyE,SAAS,EAAEC,SAAS,EAAEC,QAAQ,CAAC;EACxD;AACF,CAAC,CAAC","ignoreList":[]}
@@ -31,6 +31,10 @@
31
31
  position: absolute
32
32
  top: 0
33
33
  width: 100%
34
+ z-index: 0
35
+
36
+ &--dragging input[type="file"]
37
+ z-index: 1
34
38
 
35
39
  .v-input__details
36
40
  padding-inline: $file-input-details-padding-inline