@vuetify/nightly 3.8.7-dev.2025-05-27 → 3.8.7-dev.2025-06-03
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.
- package/CHANGELOG.md +12 -3
- package/dist/json/attributes.json +3213 -3189
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +176 -176
- package/dist/json/tags.json +6 -0
- package/dist/json/web-types.json +5962 -5902
- package/dist/vuetify-labs.cjs +52 -19
- package/dist/vuetify-labs.css +5727 -5721
- package/dist/vuetify-labs.d.ts +677 -402
- package/dist/vuetify-labs.esm.js +52 -19
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +52 -19
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +52 -19
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4233 -4227
- package/dist/vuetify.d.ts +621 -378
- package/dist/vuetify.esm.js +52 -19
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +52 -19
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +29 -24
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.d.ts +15 -3
- package/lib/components/VAppBar/VAppBarNavIcon.d.ts +20 -10
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +21 -7
- package/lib/components/VAutocomplete/VAutocomplete.js +2 -1
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBtn/VBtn.d.ts +20 -10
- package/lib/components/VCard/VCard.d.ts +20 -10
- package/lib/components/VCheckbox/VCheckbox.d.ts +20 -10
- package/lib/components/VCheckbox/VCheckboxBtn.d.ts +20 -10
- package/lib/components/VChip/VChip.d.ts +20 -10
- package/lib/components/VCombobox/VCombobox.d.ts +21 -7
- package/lib/components/VCombobox/VCombobox.js +2 -1
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +42 -0
- package/lib/components/VDataTable/VDataTableServer.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +29 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +20 -10
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +20 -10
- package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +20 -10
- package/lib/components/VFab/VFab.d.ts +20 -10
- package/lib/components/VList/VList.d.ts +13 -0
- package/lib/components/VList/VList.js +4 -1
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListItem.d.ts +23 -10
- package/lib/components/VList/VListItem.js +7 -3
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/list.d.ts +9 -2
- package/lib/components/VList/list.js +7 -0
- package/lib/components/VList/list.js.map +1 -1
- package/lib/components/VRadio/VRadio.d.ts +20 -10
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +20 -10
- package/lib/components/VSelect/VSelect.d.ts +33 -11
- package/lib/components/VSelectionControl/VSelectionControl.d.ts +20 -10
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +28 -14
- package/lib/components/VSlider/VSliderThumb.d.ts +20 -10
- package/lib/components/VStepper/VStepperItem.d.ts +28 -14
- package/lib/components/VSwitch/VSwitch.d.ts +20 -10
- package/lib/components/VTable/VTable.css +6 -0
- package/lib/components/VTable/VTable.d.ts +55 -24
- package/lib/components/VTable/VTable.js +9 -2
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTable/VTable.sass +14 -0
- package/lib/components/VTable/_variables.scss +1 -0
- package/lib/components/VTabs/VTab.d.ts +56 -28
- package/lib/components/VToolbar/VToolbar.d.ts +15 -3
- package/lib/components/VToolbar/VToolbar.js +6 -3
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +2 -2
- package/lib/composables/date/DateAdapter.js.map +1 -1
- package/lib/composables/date/adapters/string.d.ts +54 -0
- package/lib/composables/date/adapters/string.js +153 -0
- package/lib/composables/date/adapters/string.js.map +1 -0
- package/lib/composables/date/date.d.ts +2 -2
- package/lib/directives/ripple/index.d.ts +2 -1
- package/lib/directives/ripple/index.js +12 -7
- package/lib/directives/ripple/index.js.map +1 -1
- package/lib/entry-bundler.d.ts +2 -2
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +75 -65
- package/lib/framework.js +1 -1
- package/lib/labs/VFileUpload/VFileUploadItem.d.ts +20 -10
- package/lib/labs/VStepperVertical/VStepperVertical.d.ts +20 -10
- package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +20 -10
- package/lib/labs/VTreeview/VTreeview.d.ts +13 -0
- package/lib/labs/VTreeview/VTreeviewItem.d.ts +20 -10
- package/lib/labs/entry-bundler.d.ts +2 -2
- package/package.json +1 -1
@@ -113,14 +113,18 @@ export declare const makeVExpansionPanelProps: <Defaults extends {
|
|
113
113
|
default: boolean;
|
114
114
|
}, "type" | "default"> & {
|
115
115
|
type: import("vue").PropType<unknown extends Defaults["ripple"] ? boolean | {
|
116
|
-
class
|
116
|
+
class?: string;
|
117
|
+
keys?: number[];
|
117
118
|
} | undefined : boolean | {
|
118
|
-
class
|
119
|
+
class?: string;
|
120
|
+
keys?: number[];
|
119
121
|
} | Defaults["ripple"] | undefined>;
|
120
122
|
default: unknown extends Defaults["ripple"] ? boolean | {
|
121
|
-
class
|
123
|
+
class?: string;
|
124
|
+
keys?: number[];
|
122
125
|
} | undefined : NonNullable<boolean | {
|
123
|
-
class
|
126
|
+
class?: string;
|
127
|
+
keys?: number[];
|
124
128
|
} | undefined> | Defaults["ripple"];
|
125
129
|
};
|
126
130
|
readonly: unknown extends Defaults["readonly"] ? BooleanConstructor : {
|
@@ -202,7 +206,8 @@ export declare const VExpansionPanel: {
|
|
202
206
|
focusable: boolean;
|
203
207
|
tile: boolean;
|
204
208
|
ripple: boolean | {
|
205
|
-
class
|
209
|
+
class?: string;
|
210
|
+
keys?: number[];
|
206
211
|
} | undefined;
|
207
212
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
208
213
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -259,7 +264,8 @@ export declare const VExpansionPanel: {
|
|
259
264
|
rounded: string | number | boolean;
|
260
265
|
tile: boolean;
|
261
266
|
ripple: boolean | {
|
262
|
-
class
|
267
|
+
class?: string;
|
268
|
+
keys?: number[];
|
263
269
|
} | undefined;
|
264
270
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
265
271
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -285,7 +291,8 @@ export declare const VExpansionPanel: {
|
|
285
291
|
focusable: boolean;
|
286
292
|
tile: boolean;
|
287
293
|
ripple: boolean | {
|
288
|
-
class
|
294
|
+
class?: string;
|
295
|
+
keys?: number[];
|
289
296
|
} | undefined;
|
290
297
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
291
298
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -338,7 +345,8 @@ export declare const VExpansionPanel: {
|
|
338
345
|
rounded: string | number | boolean;
|
339
346
|
tile: boolean;
|
340
347
|
ripple: boolean | {
|
341
|
-
class
|
348
|
+
class?: string;
|
349
|
+
keys?: number[];
|
342
350
|
} | undefined;
|
343
351
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
344
352
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -357,7 +365,8 @@ export declare const VExpansionPanel: {
|
|
357
365
|
focusable: boolean;
|
358
366
|
tile: boolean;
|
359
367
|
ripple: boolean | {
|
360
|
-
class
|
368
|
+
class?: string;
|
369
|
+
keys?: number[];
|
361
370
|
} | undefined;
|
362
371
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
363
372
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -414,7 +423,8 @@ export declare const VExpansionPanel: {
|
|
414
423
|
rounded: string | number | boolean;
|
415
424
|
tile: boolean;
|
416
425
|
ripple: boolean | {
|
417
|
-
class
|
426
|
+
class?: string;
|
427
|
+
keys?: number[];
|
418
428
|
} | undefined;
|
419
429
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
420
430
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -112,14 +112,18 @@ export declare const makeVExpansionPanelTitleProps: <Defaults extends {
|
|
112
112
|
default: boolean;
|
113
113
|
}, "type" | "default"> & {
|
114
114
|
type: PropType<unknown extends Defaults["ripple"] ? boolean | {
|
115
|
-
class
|
115
|
+
class?: string;
|
116
|
+
keys?: number[];
|
116
117
|
} | undefined : boolean | {
|
117
|
-
class
|
118
|
+
class?: string;
|
119
|
+
keys?: number[];
|
118
120
|
} | Defaults["ripple"] | undefined>;
|
119
121
|
default: unknown extends Defaults["ripple"] ? boolean | {
|
120
|
-
class
|
122
|
+
class?: string;
|
123
|
+
keys?: number[];
|
121
124
|
} | undefined : NonNullable<boolean | {
|
122
|
-
class
|
125
|
+
class?: string;
|
126
|
+
keys?: number[];
|
123
127
|
} | undefined> | Defaults["ripple"];
|
124
128
|
};
|
125
129
|
readonly: unknown extends Defaults["readonly"] ? BooleanConstructor : {
|
@@ -134,7 +138,8 @@ export declare const VExpansionPanelTitle: {
|
|
134
138
|
static: boolean;
|
135
139
|
focusable: boolean;
|
136
140
|
ripple: boolean | {
|
137
|
-
class
|
141
|
+
class?: string;
|
142
|
+
keys?: number[];
|
138
143
|
} | undefined;
|
139
144
|
collapseIcon: IconValue;
|
140
145
|
expandIcon: IconValue;
|
@@ -166,7 +171,8 @@ export declare const VExpansionPanelTitle: {
|
|
166
171
|
static: boolean;
|
167
172
|
focusable: boolean;
|
168
173
|
ripple: boolean | {
|
169
|
-
class
|
174
|
+
class?: string;
|
175
|
+
keys?: number[];
|
170
176
|
} | undefined;
|
171
177
|
collapseIcon: IconValue;
|
172
178
|
expandIcon: IconValue;
|
@@ -187,7 +193,8 @@ export declare const VExpansionPanelTitle: {
|
|
187
193
|
static: boolean;
|
188
194
|
focusable: boolean;
|
189
195
|
ripple: boolean | {
|
190
|
-
class
|
196
|
+
class?: string;
|
197
|
+
keys?: number[];
|
191
198
|
} | undefined;
|
192
199
|
collapseIcon: IconValue;
|
193
200
|
expandIcon: IconValue;
|
@@ -219,7 +226,8 @@ export declare const VExpansionPanelTitle: {
|
|
219
226
|
static: boolean;
|
220
227
|
focusable: boolean;
|
221
228
|
ripple: boolean | {
|
222
|
-
class
|
229
|
+
class?: string;
|
230
|
+
keys?: number[];
|
223
231
|
} | undefined;
|
224
232
|
collapseIcon: IconValue;
|
225
233
|
expandIcon: IconValue;
|
@@ -234,7 +242,8 @@ export declare const VExpansionPanelTitle: {
|
|
234
242
|
static: boolean;
|
235
243
|
focusable: boolean;
|
236
244
|
ripple: boolean | {
|
237
|
-
class
|
245
|
+
class?: string;
|
246
|
+
keys?: number[];
|
238
247
|
} | undefined;
|
239
248
|
collapseIcon: IconValue;
|
240
249
|
expandIcon: IconValue;
|
@@ -266,7 +275,8 @@ export declare const VExpansionPanelTitle: {
|
|
266
275
|
static: boolean;
|
267
276
|
focusable: boolean;
|
268
277
|
ripple: boolean | {
|
269
|
-
class
|
278
|
+
class?: string;
|
279
|
+
keys?: number[];
|
270
280
|
} | undefined;
|
271
281
|
collapseIcon: IconValue;
|
272
282
|
expandIcon: IconValue;
|
@@ -131,14 +131,18 @@ export declare const makeVExpansionPanelsProps: <Defaults extends {
|
|
131
131
|
default: boolean;
|
132
132
|
}, "type" | "default"> & {
|
133
133
|
type: PropType<unknown extends Defaults["ripple"] ? boolean | {
|
134
|
-
class
|
134
|
+
class?: string;
|
135
|
+
keys?: number[];
|
135
136
|
} | undefined : boolean | {
|
136
|
-
class
|
137
|
+
class?: string;
|
138
|
+
keys?: number[];
|
137
139
|
} | Defaults["ripple"] | undefined>;
|
138
140
|
default: unknown extends Defaults["ripple"] ? boolean | {
|
139
|
-
class
|
141
|
+
class?: string;
|
142
|
+
keys?: number[];
|
140
143
|
} | undefined : NonNullable<boolean | {
|
141
|
-
class
|
144
|
+
class?: string;
|
145
|
+
keys?: number[];
|
142
146
|
} | undefined> | Defaults["ripple"];
|
143
147
|
};
|
144
148
|
collapseIcon: unknown extends Defaults["collapseIcon"] ? {
|
@@ -214,7 +218,8 @@ export declare const VExpansionPanels: {
|
|
214
218
|
focusable: boolean;
|
215
219
|
tile: boolean;
|
216
220
|
ripple: boolean | {
|
217
|
-
class
|
221
|
+
class?: string;
|
222
|
+
keys?: number[];
|
218
223
|
} | undefined;
|
219
224
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
220
225
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -261,7 +266,8 @@ export declare const VExpansionPanels: {
|
|
261
266
|
rounded: string | number | boolean;
|
262
267
|
tile: boolean;
|
263
268
|
ripple: boolean | {
|
264
|
-
class
|
269
|
+
class?: string;
|
270
|
+
keys?: number[];
|
265
271
|
} | undefined;
|
266
272
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
267
273
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -288,7 +294,8 @@ export declare const VExpansionPanels: {
|
|
288
294
|
focusable: boolean;
|
289
295
|
tile: boolean;
|
290
296
|
ripple: boolean | {
|
291
|
-
class
|
297
|
+
class?: string;
|
298
|
+
keys?: number[];
|
292
299
|
} | undefined;
|
293
300
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
294
301
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -333,7 +340,8 @@ export declare const VExpansionPanels: {
|
|
333
340
|
rounded: string | number | boolean;
|
334
341
|
tile: boolean;
|
335
342
|
ripple: boolean | {
|
336
|
-
class
|
343
|
+
class?: string;
|
344
|
+
keys?: number[];
|
337
345
|
} | undefined;
|
338
346
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
339
347
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -355,7 +363,8 @@ export declare const VExpansionPanels: {
|
|
355
363
|
focusable: boolean;
|
356
364
|
tile: boolean;
|
357
365
|
ripple: boolean | {
|
358
|
-
class
|
366
|
+
class?: string;
|
367
|
+
keys?: number[];
|
359
368
|
} | undefined;
|
360
369
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
361
370
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -402,7 +411,8 @@ export declare const VExpansionPanels: {
|
|
402
411
|
rounded: string | number | boolean;
|
403
412
|
tile: boolean;
|
404
413
|
ripple: boolean | {
|
405
|
-
class
|
414
|
+
class?: string;
|
415
|
+
keys?: number[];
|
406
416
|
} | undefined;
|
407
417
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
408
418
|
expandIcon: import("../../composables/icons.js").IconValue;
|
@@ -360,14 +360,18 @@ export declare const makeVFabProps: <Defaults extends {
|
|
360
360
|
default: boolean;
|
361
361
|
}, "type" | "default"> & {
|
362
362
|
type: import("vue").PropType<unknown extends Defaults["ripple"] ? boolean | {
|
363
|
-
class
|
363
|
+
class?: string;
|
364
|
+
keys?: number[];
|
364
365
|
} | undefined : boolean | {
|
365
|
-
class
|
366
|
+
class?: string;
|
367
|
+
keys?: number[];
|
366
368
|
} | Defaults["ripple"] | undefined>;
|
367
369
|
default: unknown extends Defaults["ripple"] ? boolean | {
|
368
|
-
class
|
370
|
+
class?: string;
|
371
|
+
keys?: number[];
|
369
372
|
} | undefined : NonNullable<boolean | {
|
370
|
-
class
|
373
|
+
class?: string;
|
374
|
+
keys?: number[];
|
371
375
|
} | undefined> | Defaults["ripple"];
|
372
376
|
};
|
373
377
|
app: unknown extends Defaults["app"] ? BooleanConstructor : {
|
@@ -430,7 +434,8 @@ export declare const VFab: {
|
|
430
434
|
slim: boolean;
|
431
435
|
stacked: boolean;
|
432
436
|
ripple: boolean | {
|
433
|
-
class
|
437
|
+
class?: string;
|
438
|
+
keys?: number[];
|
434
439
|
} | undefined;
|
435
440
|
extended: boolean;
|
436
441
|
} & {
|
@@ -503,7 +508,8 @@ export declare const VFab: {
|
|
503
508
|
slim: boolean;
|
504
509
|
stacked: boolean;
|
505
510
|
ripple: boolean | {
|
506
|
-
class
|
511
|
+
class?: string;
|
512
|
+
keys?: number[];
|
507
513
|
} | undefined;
|
508
514
|
extended: boolean;
|
509
515
|
}, true, {}, import("vue").SlotsType<Partial<{
|
@@ -543,7 +549,8 @@ export declare const VFab: {
|
|
543
549
|
slim: boolean;
|
544
550
|
stacked: boolean;
|
545
551
|
ripple: boolean | {
|
546
|
-
class
|
552
|
+
class?: string;
|
553
|
+
keys?: number[];
|
547
554
|
} | undefined;
|
548
555
|
extended: boolean;
|
549
556
|
} & {
|
@@ -614,7 +621,8 @@ export declare const VFab: {
|
|
614
621
|
slim: boolean;
|
615
622
|
stacked: boolean;
|
616
623
|
ripple: boolean | {
|
617
|
-
class
|
624
|
+
class?: string;
|
625
|
+
keys?: number[];
|
618
626
|
} | undefined;
|
619
627
|
extended: boolean;
|
620
628
|
}>;
|
@@ -649,7 +657,8 @@ export declare const VFab: {
|
|
649
657
|
slim: boolean;
|
650
658
|
stacked: boolean;
|
651
659
|
ripple: boolean | {
|
652
|
-
class
|
660
|
+
class?: string;
|
661
|
+
keys?: number[];
|
653
662
|
} | undefined;
|
654
663
|
extended: boolean;
|
655
664
|
} & {
|
@@ -722,7 +731,8 @@ export declare const VFab: {
|
|
722
731
|
slim: boolean;
|
723
732
|
stacked: boolean;
|
724
733
|
ripple: boolean | {
|
725
|
-
class
|
734
|
+
class?: string;
|
735
|
+
keys?: number[];
|
726
736
|
} | undefined;
|
727
737
|
extended: boolean;
|
728
738
|
}, {}, string, import("vue").SlotsType<Partial<{
|
@@ -51,6 +51,7 @@ export declare const makeVListProps: <Defaults extends {
|
|
51
51
|
activeClass?: unknown;
|
52
52
|
bgColor?: unknown;
|
53
53
|
disabled?: unknown;
|
54
|
+
filterable?: unknown;
|
54
55
|
expandIcon?: unknown;
|
55
56
|
collapseIcon?: unknown;
|
56
57
|
lines?: unknown;
|
@@ -310,6 +311,10 @@ export declare const makeVListProps: <Defaults extends {
|
|
310
311
|
type: PropType<unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]>;
|
311
312
|
default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"];
|
312
313
|
};
|
314
|
+
filterable: unknown extends Defaults["filterable"] ? BooleanConstructor : {
|
315
|
+
type: PropType<unknown extends Defaults["filterable"] ? boolean : boolean | Defaults["filterable"]>;
|
316
|
+
default: unknown extends Defaults["filterable"] ? boolean : boolean | Defaults["filterable"];
|
317
|
+
};
|
313
318
|
expandIcon: unknown extends Defaults["expandIcon"] ? PropType<IconValue> : {
|
314
319
|
type: PropType<unknown extends Defaults["expandIcon"] ? IconValue : IconValue | Defaults["expandIcon"]>;
|
315
320
|
default: unknown extends Defaults["expandIcon"] ? IconValue : NonNullable<IconValue> | Defaults["expandIcon"];
|
@@ -404,6 +409,7 @@ export declare const VList: {
|
|
404
409
|
density: import("../../composables/density.js").Density;
|
405
410
|
tile: boolean;
|
406
411
|
slim: boolean;
|
412
|
+
filterable: boolean;
|
407
413
|
activatable: boolean;
|
408
414
|
selectable: boolean;
|
409
415
|
openStrategy: import("../../composables/nested/nested.js").OpenStrategyProp;
|
@@ -477,6 +483,7 @@ export declare const VList: {
|
|
477
483
|
rounded: string | number | boolean;
|
478
484
|
tile: boolean;
|
479
485
|
slim: boolean;
|
486
|
+
filterable: boolean;
|
480
487
|
activatable: boolean;
|
481
488
|
selectable: boolean;
|
482
489
|
openStrategy: import("../../composables/nested/nested.js").OpenStrategyProp;
|
@@ -527,6 +534,7 @@ export declare const VList: {
|
|
527
534
|
density: import("../../composables/density.js").Density;
|
528
535
|
tile: boolean;
|
529
536
|
slim: boolean;
|
537
|
+
filterable: boolean;
|
530
538
|
activatable: boolean;
|
531
539
|
selectable: boolean;
|
532
540
|
openStrategy: import("../../composables/nested/nested.js").OpenStrategyProp;
|
@@ -581,6 +589,7 @@ export declare const VList: {
|
|
581
589
|
rounded: string | number | boolean;
|
582
590
|
tile: boolean;
|
583
591
|
slim: boolean;
|
592
|
+
filterable: boolean;
|
584
593
|
activatable: boolean;
|
585
594
|
selectable: boolean;
|
586
595
|
openStrategy: import("../../composables/nested/nested.js").OpenStrategyProp;
|
@@ -602,6 +611,7 @@ export declare const VList: {
|
|
602
611
|
density: import("../../composables/density.js").Density;
|
603
612
|
tile: boolean;
|
604
613
|
slim: boolean;
|
614
|
+
filterable: boolean;
|
605
615
|
activatable: boolean;
|
606
616
|
selectable: boolean;
|
607
617
|
openStrategy: import("../../composables/nested/nested.js").OpenStrategyProp;
|
@@ -675,6 +685,7 @@ export declare const VList: {
|
|
675
685
|
rounded: string | number | boolean;
|
676
686
|
tile: boolean;
|
677
687
|
slim: boolean;
|
688
|
+
filterable: boolean;
|
678
689
|
activatable: boolean;
|
679
690
|
selectable: boolean;
|
680
691
|
openStrategy: import("../../composables/nested/nested.js").OpenStrategyProp;
|
@@ -812,6 +823,7 @@ export declare const VList: {
|
|
812
823
|
activeClass: StringConstructor;
|
813
824
|
bgColor: StringConstructor;
|
814
825
|
disabled: BooleanConstructor;
|
826
|
+
filterable: BooleanConstructor;
|
815
827
|
expandIcon: PropType<IconValue>;
|
816
828
|
collapseIcon: PropType<IconValue>;
|
817
829
|
lines: {
|
@@ -918,6 +930,7 @@ export declare const VList: {
|
|
918
930
|
activeClass: StringConstructor;
|
919
931
|
bgColor: StringConstructor;
|
920
932
|
disabled: BooleanConstructor;
|
933
|
+
filterable: BooleanConstructor;
|
921
934
|
expandIcon: PropType<IconValue>;
|
922
935
|
collapseIcon: PropType<IconValue>;
|
923
936
|
lines: {
|
@@ -61,6 +61,7 @@ export const makeVListProps = propsFactory({
|
|
61
61
|
activeClass: String,
|
62
62
|
bgColor: String,
|
63
63
|
disabled: Boolean,
|
64
|
+
filterable: Boolean,
|
64
65
|
expandIcon: IconValue,
|
65
66
|
collapseIcon: IconValue,
|
66
67
|
lines: {
|
@@ -144,7 +145,9 @@ export const VList = genericComponent()({
|
|
144
145
|
const activeColor = toRef(() => props.activeColor);
|
145
146
|
const baseColor = toRef(() => props.baseColor);
|
146
147
|
const color = toRef(() => props.color);
|
147
|
-
createList(
|
148
|
+
createList({
|
149
|
+
filterable: props.filterable
|
150
|
+
});
|
148
151
|
provideDefaults({
|
149
152
|
VListGroup: {
|
150
153
|
activeColor,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VList.js","names":["VListChildren","createList","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","makeItemsProps","makeNestedProps","useNested","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","computed","ref","shallowRef","toRef","EventProp","focusChild","genericComponent","getPropertyFromItem","isPrimitive","omit","propsFactory","useRender","transformItem","props","item","type","itemType","title","itemTitle","value","itemValue","undefined","children","itemChildren","itemProps","_props","transformItems","raw","items","array","push","useListItems","makeVListProps","baseColor","String","activeColor","activeClass","bgColor","disabled","Boolean","expandIcon","collapseIcon","lines","default","slim","nav","selectStrategy","openStrategy","variant","VList","name","emits","setup","_ref","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","parents","select","getPath","lineClasses","color","VListGroup","VListItem","density","isFocused","contentRef","onFocusin","e","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","target","includes","tagName","key","preventDefault","onMousedown","location","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style","returnObject"],"sources":["../../../src/components/VList/VList.tsx"],"sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps } from '@/composables/list-items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue'\nimport {\n EventProp,\n focusChild,\n genericComponent,\n getPropertyFromItem,\n isPrimitive,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { ItemProps, ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport interface InternalListItem<T = any> extends ListItem<T> {\n type?: 'item' | 'subheader' | 'divider'\n}\n\nfunction transformItem (props: ItemProps & { itemType?: string }, item: any): InternalListItem {\n const type = getPropertyFromItem(item, props.itemType, 'item')\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? omit(item, ['children'])\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps & { itemType?: string }, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useListItems (props: ItemProps & { itemType?: string }) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n expandIcon: IconValue,\n collapseIcon: IconValue,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n slim: Boolean,\n nav: Boolean,\n\n 'onClick:open': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onClick:select': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onUpdate:opened': EventProp<[]>(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type',\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VList')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VList = genericComponent<new <\n T extends readonly any[],\n S = unknown,\n O = unknown\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemChildren?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n selected?: S\n 'onUpdate:selected'?: (value: S) => void\n 'onClick:open'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n 'onClick:select'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n opened?: O\n 'onUpdate:opened'?: (value: O) => void\n },\n slots: VListChildrenSlots<ItemType<T>>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (value: unknown) => true,\n 'update:activated': (value: unknown) => true,\n 'update:opened': (value: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:activate': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.bgColor)\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { children, open, parents, select, getPath } = useNested(props)\n const lineClasses = toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(() => props.activeColor)\n const baseColor = toRef(() => props.baseColor)\n const color = toRef(() => props.color)\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(() => props.expandIcon),\n collapseIcon: toRef(() => props.collapseIcon),\n },\n VListItem: {\n activeClass: toRef(() => props.activeClass),\n activeColor,\n baseColor,\n color,\n density: toRef(() => props.density),\n disabled: toRef(() => props.disabled),\n lines: toRef(() => props.lines),\n nav: toRef(() => props.nav),\n slim: toRef(() => props.slim),\n variant: toRef(() => props.variant),\n },\n })\n\n const isFocused = shallowRef(false)\n const contentRef = ref<HTMLElement>()\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return\n\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n } else {\n return\n }\n\n e.preventDefault()\n }\n\n function onMousedown (e: MouseEvent) {\n isFocused.value = true\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last' | number) {\n if (contentRef.value) {\n return focusChild(contentRef.value, location)\n }\n }\n\n useRender(() => {\n return (\n <props.tag\n ref={ contentRef }\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ props.disabled ? -1 : 0 }\n role=\"listbox\"\n aria-activedescendant={ undefined }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onFocus={ onFocus }\n onKeydown={ onKeydown }\n onMousedown={ onMousedown }\n >\n <VListChildren\n items={ items.value }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VList.js","names":["VListChildren","createList","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","makeItemsProps","makeNestedProps","useNested","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","computed","ref","shallowRef","toRef","EventProp","focusChild","genericComponent","getPropertyFromItem","isPrimitive","omit","propsFactory","useRender","transformItem","props","item","type","itemType","title","itemTitle","value","itemValue","undefined","children","itemChildren","itemProps","_props","transformItems","raw","items","array","push","useListItems","makeVListProps","baseColor","String","activeColor","activeClass","bgColor","disabled","Boolean","filterable","expandIcon","collapseIcon","lines","default","slim","nav","selectStrategy","openStrategy","variant","VList","name","emits","setup","_ref","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","parents","select","getPath","lineClasses","color","VListGroup","VListItem","density","isFocused","contentRef","onFocusin","e","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","target","includes","tagName","key","preventDefault","onMousedown","location","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style","returnObject"],"sources":["../../../src/components/VList/VList.tsx"],"sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps } from '@/composables/list-items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue'\nimport {\n EventProp,\n focusChild,\n genericComponent,\n getPropertyFromItem,\n isPrimitive,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { ItemProps, ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport interface InternalListItem<T = any> extends ListItem<T> {\n type?: 'item' | 'subheader' | 'divider'\n}\n\nfunction transformItem (props: ItemProps & { itemType?: string }, item: any): InternalListItem {\n const type = getPropertyFromItem(item, props.itemType, 'item')\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? omit(item, ['children'])\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps & { itemType?: string }, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useListItems (props: ItemProps & { itemType?: string }) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n filterable: Boolean,\n expandIcon: IconValue,\n collapseIcon: IconValue,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n slim: Boolean,\n nav: Boolean,\n\n 'onClick:open': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onClick:select': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onUpdate:opened': EventProp<[]>(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type',\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VList')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VList = genericComponent<new <\n T extends readonly any[],\n S = unknown,\n O = unknown\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemChildren?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n selected?: S\n 'onUpdate:selected'?: (value: S) => void\n 'onClick:open'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n 'onClick:select'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n opened?: O\n 'onUpdate:opened'?: (value: O) => void\n },\n slots: VListChildrenSlots<ItemType<T>>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (value: unknown) => true,\n 'update:activated': (value: unknown) => true,\n 'update:opened': (value: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:activate': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.bgColor)\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { children, open, parents, select, getPath } = useNested(props)\n const lineClasses = toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(() => props.activeColor)\n const baseColor = toRef(() => props.baseColor)\n const color = toRef(() => props.color)\n\n createList({\n filterable: props.filterable,\n })\n\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(() => props.expandIcon),\n collapseIcon: toRef(() => props.collapseIcon),\n },\n VListItem: {\n activeClass: toRef(() => props.activeClass),\n activeColor,\n baseColor,\n color,\n density: toRef(() => props.density),\n disabled: toRef(() => props.disabled),\n lines: toRef(() => props.lines),\n nav: toRef(() => props.nav),\n slim: toRef(() => props.slim),\n variant: toRef(() => props.variant),\n },\n })\n\n const isFocused = shallowRef(false)\n const contentRef = ref<HTMLElement>()\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return\n\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n } else {\n return\n }\n\n e.preventDefault()\n }\n\n function onMousedown (e: MouseEvent) {\n isFocused.value = true\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last' | number) {\n if (contentRef.value) {\n return focusChild(contentRef.value, location)\n }\n }\n\n useRender(() => {\n return (\n <props.tag\n ref={ contentRef }\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ props.disabled ? -1 : 0 }\n role=\"listbox\"\n aria-activedescendant={ undefined }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onFocus={ onFocus }\n onKeydown={ onKeydown }\n onMousedown={ onMousedown }\n >\n <VListChildren\n items={ items.value }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,aAAa,8BAEtB;AAAA,SACSC,UAAU;AAAA,SACVC,eAAe,EAAEC,SAAS;AAAA,SAC1BC,kBAAkB;AAAA,SAClBC,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,SAAS;AAAA,SACTC,cAAc;AAAA,SACdC,eAAe,EAAEC,SAAS;AAAA,SAC1BC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,gBAAgB,wCAEzB;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAEpDC,SAAS,EACTC,UAAU,EACVC,gBAAgB,EAChBC,mBAAmB,EACnBC,WAAW,EACXC,IAAI,EACJC,YAAY,EACZC,SAAS,+BAGX;AAUA,SAASC,aAAaA,CAAEC,KAAwC,EAAEC,IAAS,EAAoB;EAC7F,MAAMC,IAAI,GAAGR,mBAAmB,CAACO,IAAI,EAAED,KAAK,CAACG,QAAQ,EAAE,MAAM,CAAC;EAC9D,MAAMC,KAAK,GAAGT,WAAW,CAACM,IAAI,CAAC,GAAGA,IAAI,GAAGP,mBAAmB,CAACO,IAAI,EAAED,KAAK,CAACK,SAAS,CAAC;EACnF,MAAMC,KAAK,GAAGZ,mBAAmB,CAACO,IAAI,EAAED,KAAK,CAACO,SAAS,EAAEC,SAAS,CAAC;EACnE,MAAMC,QAAQ,GAAGf,mBAAmB,CAACO,IAAI,EAAED,KAAK,CAACU,YAAY,CAAC;EAC9D,MAAMC,SAAS,GAAGX,KAAK,CAACW,SAAS,KAAK,IAAI,GACtCf,IAAI,CAACK,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,GACxBP,mBAAmB,CAACO,IAAI,EAAED,KAAK,CAACW,SAAS,CAAC;EAE9C,MAAMC,MAAM,GAAG;IACbR,KAAK;IACLE,KAAK;IACL,GAAGK;EACL,CAAC;EAED,OAAO;IACLT,IAAI;IACJE,KAAK,EAAEQ,MAAM,CAACR,KAAK;IACnBE,KAAK,EAAEM,MAAM,CAACN,KAAK;IACnBN,KAAK,EAAEY,MAAM;IACbH,QAAQ,EAAEP,IAAI,KAAK,MAAM,IAAIO,QAAQ,GAAGI,cAAc,CAACb,KAAK,EAAES,QAAQ,CAAC,GAAGD,SAAS;IACnFM,GAAG,EAAEb;EACP,CAAC;AACH;AAEA,SAASY,cAAcA,CAAEb,KAAwC,EAAEe,KAA0B,EAAE;EAC7F,MAAMC,KAAyB,GAAG,EAAE;EAEpC,KAAK,MAAMf,IAAI,IAAIc,KAAK,EAAE;IACxBC,KAAK,CAACC,IAAI,CAAClB,aAAa,CAACC,KAAK,EAAEC,IAAI,CAAC,CAAC;EACxC;EAEA,OAAOe,KAAK;AACd;AAEA,OAAO,SAASE,YAAYA,CAAElB,KAAwC,EAAE;EACtE,MAAMe,KAAK,GAAG5B,QAAQ,CAAC,MAAM0B,cAAc,CAACb,KAAK,EAAEA,KAAK,CAACe,KAAK,CAAC,CAAC;EAEhE,OAAO;IAAEA;EAAM,CAAC;AAClB;AAEA,OAAO,MAAMI,cAAc,GAAGtB,YAAY,CAAC;EACzCuB,SAAS,EAAEC,MAAM;EACjB;EACAC,WAAW,EAAED,MAAM;EACnBE,WAAW,EAAEF,MAAM;EACnBG,OAAO,EAAEH,MAAM;EACfI,QAAQ,EAAEC,OAAO;EACjBC,UAAU,EAAED,OAAO;EACnBE,UAAU,EAAEnD,SAAS;EACrBoD,YAAY,EAAEpD,SAAS;EACvBqD,KAAK,EAAE;IACL5B,IAAI,EAAE,CAACwB,OAAO,EAAEL,MAAM,CAA8C;IACpEU,OAAO,EAAE;EACX,CAAC;EACDC,IAAI,EAAEN,OAAO;EACbO,GAAG,EAAEP,OAAO;EAEZ,cAAc,EAAEnC,SAAS,CAAqD,CAAC;EAC/E,gBAAgB,EAAEA,SAAS,CAAqD,CAAC;EACjF,iBAAiB,EAAEA,SAAS,CAAK,CAAC;EAClC,GAAGZ,eAAe,CAAC;IACjBuD,cAAc,EAAE,aAAsB;IACtCC,YAAY,EAAE;EAChB,CAAC,CAAC;EACF,GAAGrE,eAAe,CAAC,CAAC;EACpB,GAAGG,kBAAkB,CAAC,CAAC;EACvB,GAAGE,gBAAgB,CAAC,CAAC;EACrB,GAAGE,kBAAkB,CAAC,CAAC;EACvB,GAAGE,kBAAkB,CAAC,CAAC;EACvB4B,QAAQ,EAAE;IACRD,IAAI,EAAEmB,MAAM;IACZU,OAAO,EAAE;EACX,CAAC;EACD,GAAGrD,cAAc,CAAC,CAAC;EACnB,GAAGG,gBAAgB,CAAC,CAAC;EACrB,GAAGE,YAAY,CAAC,CAAC;EACjB,GAAGC,cAAc,CAAC,CAAC;EACnB,GAAGE,gBAAgB,CAAC;IAAEkD,OAAO,EAAE;EAAO,CAAU;AAClD,CAAC,EAAE,OAAO,CAAC;AAIX,OAAO,MAAMC,KAAK,GAAG5C,gBAAgB,CAmBU,CAAC,CAAC;EAC/C6C,IAAI,EAAE,OAAO;EAEbtC,KAAK,EAAEmB,cAAc,CAAC,CAAC;EAEvBoB,KAAK,EAAE;IACL,iBAAiB,EAAGjC,KAAc,IAAK,IAAI;IAC3C,kBAAkB,EAAGA,KAAc,IAAK,IAAI;IAC5C,eAAe,EAAGA,KAAc,IAAK,IAAI;IACzC,YAAY,EAAGA,KAAuD,IAAK,IAAI;IAC/E,gBAAgB,EAAGA,KAAuD,IAAK,IAAI;IACnF,cAAc,EAAGA,KAAuD,IAAK;EAC/E,CAAC;EAEDkC,KAAKA,CAAExC,KAAK,EAAAyC,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAE1B;IAAM,CAAC,GAAGG,YAAY,CAAClB,KAAK,CAAC;IACrC,MAAM;MAAE2C;IAAa,CAAC,GAAG1D,YAAY,CAACe,KAAK,CAAC;IAC5C,MAAM;MAAE4C,sBAAsB;MAAEC;IAAsB,CAAC,GAAG7E,kBAAkB,CAAC,MAAMgC,KAAK,CAACwB,OAAO,CAAC;IACjG,MAAM;MAAEsB;IAAc,CAAC,GAAG/E,SAAS,CAACiC,KAAK,CAAC;IAC1C,MAAM;MAAE+C;IAAe,CAAC,GAAG3E,UAAU,CAAC4B,KAAK,CAAC;IAC5C,MAAM;MAAEgD;IAAgB,CAAC,GAAG1E,YAAY,CAAC0B,KAAK,CAAC;IAC/C,MAAM;MAAEiD;IAAiB,CAAC,GAAGzE,YAAY,CAACwB,KAAK,CAAC;IAChD,MAAM;MAAEkD;IAAe,CAAC,GAAGpE,UAAU,CAACkB,KAAK,CAAC;IAC5C,MAAM;MAAES,QAAQ;MAAE0C,IAAI;MAAEC,OAAO;MAAEC,MAAM;MAAEC;IAAQ,CAAC,GAAG1E,SAAS,CAACoB,KAAK,CAAC;IACrE,MAAMuD,WAAW,GAAGjE,KAAK,CAAC,MAAMU,KAAK,CAAC8B,KAAK,GAAG,WAAW9B,KAAK,CAAC8B,KAAK,OAAO,GAAGtB,SAAS,CAAC;IACxF,MAAMc,WAAW,GAAGhC,KAAK,CAAC,MAAMU,KAAK,CAACsB,WAAW,CAAC;IAClD,MAAMF,SAAS,GAAG9B,KAAK,CAAC,MAAMU,KAAK,CAACoB,SAAS,CAAC;IAC9C,MAAMoC,KAAK,GAAGlE,KAAK,CAAC,MAAMU,KAAK,CAACwD,KAAK,CAAC;IAEtC3F,UAAU,CAAC;MACT8D,UAAU,EAAE3B,KAAK,CAAC2B;IACpB,CAAC,CAAC;IAEFzD,eAAe,CAAC;MACduF,UAAU,EAAE;QACVnC,WAAW;QACXF,SAAS;QACToC,KAAK;QACL5B,UAAU,EAAEtC,KAAK,CAAC,MAAMU,KAAK,CAAC4B,UAAU,CAAC;QACzCC,YAAY,EAAEvC,KAAK,CAAC,MAAMU,KAAK,CAAC6B,YAAY;MAC9C,CAAC;MACD6B,SAAS,EAAE;QACTnC,WAAW,EAAEjC,KAAK,CAAC,MAAMU,KAAK,CAACuB,WAAW,CAAC;QAC3CD,WAAW;QACXF,SAAS;QACToC,KAAK;QACLG,OAAO,EAAErE,KAAK,CAAC,MAAMU,KAAK,CAAC2D,OAAO,CAAC;QACnClC,QAAQ,EAAEnC,KAAK,CAAC,MAAMU,KAAK,CAACyB,QAAQ,CAAC;QACrCK,KAAK,EAAExC,KAAK,CAAC,MAAMU,KAAK,CAAC8B,KAAK,CAAC;QAC/BG,GAAG,EAAE3C,KAAK,CAAC,MAAMU,KAAK,CAACiC,GAAG,CAAC;QAC3BD,IAAI,EAAE1C,KAAK,CAAC,MAAMU,KAAK,CAACgC,IAAI,CAAC;QAC7BI,OAAO,EAAE9C,KAAK,CAAC,MAAMU,KAAK,CAACoC,OAAO;MACpC;IACF,CAAC,CAAC;IAEF,MAAMwB,SAAS,GAAGvE,UAAU,CAAC,KAAK,CAAC;IACnC,MAAMwE,UAAU,GAAGzE,GAAG,CAAc,CAAC;IACrC,SAAS0E,SAASA,CAAEC,CAAa,EAAE;MACjCH,SAAS,CAACtD,KAAK,GAAG,IAAI;IACxB;IAEA,SAAS0D,UAAUA,CAAED,CAAa,EAAE;MAClCH,SAAS,CAACtD,KAAK,GAAG,KAAK;IACzB;IAEA,SAAS2D,OAAOA,CAAEF,CAAa,EAAE;MAC/B,IACE,CAACH,SAAS,CAACtD,KAAK,IAChB,EAAEyD,CAAC,CAACG,aAAa,IAAIL,UAAU,CAACvD,KAAK,EAAE6D,QAAQ,CAACJ,CAAC,CAACG,aAAqB,CAAC,CAAC,EACzEE,KAAK,CAAC,CAAC;IACX;IAEA,SAASC,SAASA,CAAEN,CAAgB,EAAE;MACpC,MAAMO,MAAM,GAAGP,CAAC,CAACO,MAAqB;MAEtC,IAAI,CAACT,UAAU,CAACvD,KAAK,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAACiE,QAAQ,CAACD,MAAM,CAACE,OAAO,CAAC,EAAE;MAEzE,IAAIT,CAAC,CAACU,GAAG,KAAK,WAAW,EAAE;QACzBL,KAAK,CAAC,MAAM,CAAC;MACf,CAAC,MAAM,IAAIL,CAAC,CAACU,GAAG,KAAK,SAAS,EAAE;QAC9BL,KAAK,CAAC,MAAM,CAAC;MACf,CAAC,MAAM,IAAIL,CAAC,CAACU,GAAG,KAAK,MAAM,EAAE;QAC3BL,KAAK,CAAC,OAAO,CAAC;MAChB,CAAC,MAAM,IAAIL,CAAC,CAACU,GAAG,KAAK,KAAK,EAAE;QAC1BL,KAAK,CAAC,MAAM,CAAC;MACf,CAAC,MAAM;QACL;MACF;MAEAL,CAAC,CAACW,cAAc,CAAC,CAAC;IACpB;IAEA,SAASC,WAAWA,CAAEZ,CAAa,EAAE;MACnCH,SAAS,CAACtD,KAAK,GAAG,IAAI;IACxB;IAEA,SAAS8D,KAAKA,CAAEQ,QAAsD,EAAE;MACtE,IAAIf,UAAU,CAACvD,KAAK,EAAE;QACpB,OAAOd,UAAU,CAACqE,UAAU,CAACvD,KAAK,EAAEsE,QAAQ,CAAC;MAC/C;IACF;IAEA9E,SAAS,CAAC,MAAM;MACd,OAAA+E,YAAA,CAAA7E,KAAA,CAAA8E,GAAA;QAAA,OAEUjB,UAAU;QAAA,SAAAkB,eAAA,CACT,CACL,QAAQ,EACR;UACE,kBAAkB,EAAE/E,KAAK,CAACyB,QAAQ;UAClC,aAAa,EAAEzB,KAAK,CAACiC,GAAG;UACxB,cAAc,EAAEjC,KAAK,CAACgC;QACxB,CAAC,EACDW,YAAY,CAACrC,KAAK,EAClBsC,sBAAsB,CAACtC,KAAK,EAC5BwC,aAAa,CAACxC,KAAK,EACnByC,cAAc,CAACzC,KAAK,EACpB2C,gBAAgB,CAAC3C,KAAK,EACtBiD,WAAW,CAACjD,KAAK,EACjB4C,cAAc,CAAC5C,KAAK,EACpBN,KAAK,CAACgF,KAAK,CACZ;QAAA,SAAAC,eAAA,CACM,CACLpC,qBAAqB,CAACvC,KAAK,EAC3B0C,eAAe,CAAC1C,KAAK,EACrBN,KAAK,CAACkF,KAAK,CACZ;QAAA,YACUlF,KAAK,CAACyB,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;QAAA;QAAA,yBAEVjB,SAAS;QAAA,aACrBsD,SAAS;QAAA,cACRE,UAAU;QAAA,WACbC,OAAO;QAAA,aACLI,SAAS;QAAA,eACPM;MAAW;QAAA5C,OAAA,EAAAA,CAAA,MAAA8C,YAAA,CAAAjH,aAAA;UAAA,SAGfmD,KAAK,CAACT,KAAK;UAAA,gBACJN,KAAK,CAACmF;QAAY,GACvBzC,KAAK;MAAA;IAIvB,CAAC,CAAC;IAEF,OAAO;MACLS,IAAI;MACJE,MAAM;MACNe,KAAK;MACL3D,QAAQ;MACR2C,OAAO;MACPE;IACF,CAAC;EACH;AACF,CAAC,CAAC","ignoreList":[]}
|
@@ -261,14 +261,18 @@ export declare const makeVListItemProps: <Defaults extends {
|
|
261
261
|
default: boolean;
|
262
262
|
}, "type" | "default"> & {
|
263
263
|
type: PropType<unknown extends Defaults["ripple"] ? boolean | {
|
264
|
-
class
|
264
|
+
class?: string;
|
265
|
+
keys?: number[];
|
265
266
|
} | undefined : boolean | {
|
266
|
-
class
|
267
|
+
class?: string;
|
268
|
+
keys?: number[];
|
267
269
|
} | Defaults["ripple"] | undefined>;
|
268
270
|
default: unknown extends Defaults["ripple"] ? boolean | {
|
269
|
-
class
|
271
|
+
class?: string;
|
272
|
+
keys?: number[];
|
270
273
|
} | undefined : NonNullable<boolean | {
|
271
|
-
class
|
274
|
+
class?: string;
|
275
|
+
keys?: number[];
|
272
276
|
} | undefined> | Defaults["ripple"];
|
273
277
|
};
|
274
278
|
slim: unknown extends Defaults["slim"] ? BooleanConstructor : {
|
@@ -321,7 +325,8 @@ export declare const VListItem: {
|
|
321
325
|
tile: boolean;
|
322
326
|
slim: boolean;
|
323
327
|
ripple: boolean | {
|
324
|
-
class
|
328
|
+
class?: string;
|
329
|
+
keys?: number[];
|
325
330
|
} | undefined;
|
326
331
|
} & {
|
327
332
|
link?: boolean | undefined;
|
@@ -382,6 +387,7 @@ export declare const VListItem: {
|
|
382
387
|
isGroupActivator: boolean | undefined;
|
383
388
|
isSelected: import("vue").ComputedRef<boolean>;
|
384
389
|
list: {
|
390
|
+
filterable: import("vue").MaybeRefOrGetter<boolean>;
|
385
391
|
hasPrepend: import("vue").Ref<boolean>;
|
386
392
|
updateHasPrepend: (value: boolean) => void;
|
387
393
|
} | null;
|
@@ -423,7 +429,8 @@ export declare const VListItem: {
|
|
423
429
|
tile: boolean;
|
424
430
|
slim: boolean;
|
425
431
|
ripple: boolean | {
|
426
|
-
class
|
432
|
+
class?: string;
|
433
|
+
keys?: number[];
|
427
434
|
} | undefined;
|
428
435
|
subtitle: string | number | boolean;
|
429
436
|
}, true, {}, import("vue").SlotsType<Partial<{
|
@@ -451,7 +458,8 @@ export declare const VListItem: {
|
|
451
458
|
tile: boolean;
|
452
459
|
slim: boolean;
|
453
460
|
ripple: boolean | {
|
454
|
-
class
|
461
|
+
class?: string;
|
462
|
+
keys?: number[];
|
455
463
|
} | undefined;
|
456
464
|
} & {
|
457
465
|
link?: boolean | undefined;
|
@@ -512,6 +520,7 @@ export declare const VListItem: {
|
|
512
520
|
isGroupActivator: boolean | undefined;
|
513
521
|
isSelected: import("vue").ComputedRef<boolean>;
|
514
522
|
list: {
|
523
|
+
filterable: import("vue").MaybeRefOrGetter<boolean>;
|
515
524
|
hasPrepend: import("vue").Ref<boolean>;
|
516
525
|
updateHasPrepend: (value: boolean) => void;
|
517
526
|
} | null;
|
@@ -551,7 +560,8 @@ export declare const VListItem: {
|
|
551
560
|
tile: boolean;
|
552
561
|
slim: boolean;
|
553
562
|
ripple: boolean | {
|
554
|
-
class
|
563
|
+
class?: string;
|
564
|
+
keys?: number[];
|
555
565
|
} | undefined;
|
556
566
|
subtitle: string | number | boolean;
|
557
567
|
}>;
|
@@ -570,7 +580,8 @@ export declare const VListItem: {
|
|
570
580
|
tile: boolean;
|
571
581
|
slim: boolean;
|
572
582
|
ripple: boolean | {
|
573
|
-
class
|
583
|
+
class?: string;
|
584
|
+
keys?: number[];
|
574
585
|
} | undefined;
|
575
586
|
} & {
|
576
587
|
link?: boolean | undefined;
|
@@ -631,6 +642,7 @@ export declare const VListItem: {
|
|
631
642
|
isGroupActivator: boolean | undefined;
|
632
643
|
isSelected: import("vue").ComputedRef<boolean>;
|
633
644
|
list: {
|
645
|
+
filterable: import("vue").MaybeRefOrGetter<boolean>;
|
634
646
|
hasPrepend: import("vue").Ref<boolean>;
|
635
647
|
updateHasPrepend: (value: boolean) => void;
|
636
648
|
} | null;
|
@@ -672,7 +684,8 @@ export declare const VListItem: {
|
|
672
684
|
tile: boolean;
|
673
685
|
slim: boolean;
|
674
686
|
ripple: boolean | {
|
675
|
-
class
|
687
|
+
class?: string;
|
688
|
+
keys?: number[];
|
676
689
|
} | undefined;
|
677
690
|
subtitle: string | number | boolean;
|
678
691
|
}, {}, string, import("vue").SlotsType<Partial<{
|
@@ -23,7 +23,7 @@ import { makeThemeProps, provideTheme } from "../../composables/theme.js";
|
|
23
23
|
import { genOverlays, makeVariantProps, useVariant } from "../../composables/variant.js"; // Directives
|
24
24
|
import vRipple from "../../directives/ripple/index.js"; // Utilities
|
25
25
|
import { computed, onBeforeMount, toDisplayString, toRef, watch } from 'vue';
|
26
|
-
import { deprecate, EventProp, genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
|
26
|
+
import { deprecate, EventProp, genericComponent, keyCodes, propsFactory, useRender } from "../../util/index.js"; // Types
|
27
27
|
export const makeVListItemProps = propsFactory({
|
28
28
|
active: {
|
29
29
|
type: Boolean,
|
@@ -154,6 +154,9 @@ export const VListItem = genericComponent()({
|
|
154
154
|
roundedClasses
|
155
155
|
} = useRounded(roundedProps);
|
156
156
|
const lineClasses = toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
|
157
|
+
const rippleOptions = toRef(() => props.ripple !== undefined && !!props.ripple && list?.filterable ? {
|
158
|
+
keys: [keyCodes.enter]
|
159
|
+
} : props.ripple);
|
157
160
|
const slotProps = computed(() => ({
|
158
161
|
isActive: isActive.value,
|
159
162
|
select,
|
@@ -178,8 +181,9 @@ export const VListItem = genericComponent()({
|
|
178
181
|
function onKeyDown(e) {
|
179
182
|
const target = e.target;
|
180
183
|
if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
|
181
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
184
|
+
if (e.key === 'Enter' || e.key === ' ' && !list?.filterable) {
|
182
185
|
e.preventDefault();
|
186
|
+
e.stopPropagation();
|
183
187
|
e.target.dispatchEvent(new MouseEvent('click', e));
|
184
188
|
}
|
185
189
|
}
|
@@ -289,7 +293,7 @@ export const VListItem = genericComponent()({
|
|
289
293
|
}), _createElementVNode("div", {
|
290
294
|
"class": "v-list-item__spacer"
|
291
295
|
}, null)])]
|
292
|
-
}), [[vRipple, isClickable.value &&
|
296
|
+
}), [[vRipple, isClickable.value && rippleOptions.value]]);
|
293
297
|
});
|
294
298
|
return {
|
295
299
|
activate,
|