vuetify 3.5.5 → 3.5.6

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 (45) hide show
  1. package/dist/json/attributes.json +40 -0
  2. package/dist/json/importMap-labs.json +8 -8
  3. package/dist/json/importMap.json +132 -128
  4. package/dist/json/tags.json +15 -0
  5. package/dist/json/web-types.json +292 -1
  6. package/dist/vuetify-labs.css +1632 -1635
  7. package/dist/vuetify-labs.d.ts +242 -1
  8. package/dist/vuetify-labs.esm.js +24 -13
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +24 -13
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +711 -714
  13. package/dist/vuetify.d.ts +281 -39
  14. package/dist/vuetify.esm.js +24 -13
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +24 -13
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +22 -21
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs +7 -4
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  23. package/lib/components/VCombobox/VCombobox.mjs +3 -1
  24. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  25. package/lib/components/VDataTable/index.d.mts +214 -1
  26. package/lib/components/VDataTable/index.mjs +1 -0
  27. package/lib/components/VDataTable/index.mjs.map +1 -1
  28. package/lib/components/VExpansionPanel/VExpansionPanel.css +4 -7
  29. package/lib/components/VExpansionPanel/VExpansionPanel.sass +4 -3
  30. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +2 -0
  31. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  32. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +2 -0
  33. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  34. package/lib/components/VExpansionPanel/index.d.mts +27 -0
  35. package/lib/components/VSelect/VSelect.mjs +4 -3
  36. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  37. package/lib/components/index.d.mts +241 -1
  38. package/lib/composables/filter.mjs +1 -1
  39. package/lib/composables/filter.mjs.map +1 -1
  40. package/lib/composables/goto.mjs +2 -2
  41. package/lib/composables/goto.mjs.map +1 -1
  42. package/lib/entry-bundler.mjs +1 -1
  43. package/lib/framework.mjs +1 -1
  44. package/lib/index.d.mts +39 -38
  45. package/package.json +2 -2
@@ -239,6 +239,219 @@ type VDataTableHeadersSlots = {
239
239
  } & {
240
240
  [key: `header.${string}`]: VDataTableHeaderCellColumnSlotProps;
241
241
  };
242
+ declare const VDataTableHeaders: {
243
+ new (...args: any[]): vue.CreateComponentPublicInstance<{
244
+ sticky: boolean;
245
+ multiSort: boolean;
246
+ sortAscIcon: IconValue;
247
+ sortDescIcon: IconValue;
248
+ } & {
249
+ color?: string | undefined;
250
+ loading?: string | boolean | undefined;
251
+ headerProps?: Record<string, any> | undefined;
252
+ } & {
253
+ $children?: {} | vue.VNodeChild | {
254
+ [x: `header.${string}`]: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
255
+ headers?: ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
256
+ loader?: ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
257
+ 'header.data-table-select'?: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
258
+ 'header.data-table-expand'?: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
259
+ };
260
+ 'v-slots'?: {
261
+ [x: `header.${string}`]: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
262
+ headers?: false | ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
263
+ loader?: false | ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
264
+ 'header.data-table-select'?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
265
+ 'header.data-table-expand'?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
266
+ } | undefined;
267
+ } & {
268
+ [x: `v-slot:header.${string}`]: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
269
+ "v-slot:headers"?: false | ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
270
+ "v-slot:loader"?: false | ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
271
+ "v-slot:header.data-table-select"?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
272
+ "v-slot:header.data-table-expand"?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
273
+ }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
274
+ sticky: boolean;
275
+ multiSort: boolean;
276
+ sortAscIcon: IconValue;
277
+ sortDescIcon: IconValue;
278
+ } & {
279
+ color?: string | undefined;
280
+ loading?: string | boolean | undefined;
281
+ headerProps?: Record<string, any> | undefined;
282
+ } & {
283
+ $children?: {} | vue.VNodeChild | {
284
+ [x: `header.${string}`]: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
285
+ headers?: ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
286
+ loader?: ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
287
+ 'header.data-table-select'?: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
288
+ 'header.data-table-expand'?: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
289
+ };
290
+ 'v-slots'?: {
291
+ [x: `header.${string}`]: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
292
+ headers?: false | ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
293
+ loader?: false | ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
294
+ 'header.data-table-select'?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
295
+ 'header.data-table-expand'?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
296
+ } | undefined;
297
+ } & {
298
+ [x: `v-slot:header.${string}`]: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
299
+ "v-slot:headers"?: false | ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
300
+ "v-slot:loader"?: false | ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
301
+ "v-slot:header.data-table-select"?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
302
+ "v-slot:header.data-table-expand"?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
303
+ }, {
304
+ sticky: boolean;
305
+ multiSort: boolean;
306
+ sortAscIcon: IconValue;
307
+ sortDescIcon: IconValue;
308
+ }, true, {}, vue.SlotsType<Partial<{
309
+ [x: `header.${string}`]: (arg: VDataTableHeaderCellColumnSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
310
+ [key: string]: any;
311
+ }>[];
312
+ headers: (arg: HeadersSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
313
+ [key: string]: any;
314
+ }>[];
315
+ loader: (arg: LoaderSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
316
+ [key: string]: any;
317
+ }>[];
318
+ 'header.data-table-select': (arg: VDataTableHeaderCellColumnSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
319
+ [key: string]: any;
320
+ }>[];
321
+ 'header.data-table-expand': (arg: VDataTableHeaderCellColumnSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
322
+ [key: string]: any;
323
+ }>[];
324
+ }>>, {
325
+ P: {};
326
+ B: {};
327
+ D: {};
328
+ C: {};
329
+ M: {};
330
+ Defaults: {};
331
+ }, {
332
+ sticky: boolean;
333
+ multiSort: boolean;
334
+ sortAscIcon: IconValue;
335
+ sortDescIcon: IconValue;
336
+ } & {
337
+ color?: string | undefined;
338
+ loading?: string | boolean | undefined;
339
+ headerProps?: Record<string, any> | undefined;
340
+ } & {
341
+ $children?: {} | vue.VNodeChild | {
342
+ [x: `header.${string}`]: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
343
+ headers?: ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
344
+ loader?: ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
345
+ 'header.data-table-select'?: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
346
+ 'header.data-table-expand'?: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
347
+ };
348
+ 'v-slots'?: {
349
+ [x: `header.${string}`]: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
350
+ headers?: false | ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
351
+ loader?: false | ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
352
+ 'header.data-table-select'?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
353
+ 'header.data-table-expand'?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
354
+ } | undefined;
355
+ } & {
356
+ [x: `v-slot:header.${string}`]: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
357
+ "v-slot:headers"?: false | ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
358
+ "v-slot:loader"?: false | ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
359
+ "v-slot:header.data-table-select"?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
360
+ "v-slot:header.data-table-expand"?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
361
+ }, {}, {}, {}, {}, {
362
+ sticky: boolean;
363
+ multiSort: boolean;
364
+ sortAscIcon: IconValue;
365
+ sortDescIcon: IconValue;
366
+ }>;
367
+ __isFragment?: undefined;
368
+ __isTeleport?: undefined;
369
+ __isSuspense?: undefined;
370
+ } & vue.ComponentOptionsBase<{
371
+ sticky: boolean;
372
+ multiSort: boolean;
373
+ sortAscIcon: IconValue;
374
+ sortDescIcon: IconValue;
375
+ } & {
376
+ color?: string | undefined;
377
+ loading?: string | boolean | undefined;
378
+ headerProps?: Record<string, any> | undefined;
379
+ } & {
380
+ $children?: {} | vue.VNodeChild | {
381
+ [x: `header.${string}`]: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
382
+ headers?: ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
383
+ loader?: ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
384
+ 'header.data-table-select'?: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
385
+ 'header.data-table-expand'?: ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
386
+ };
387
+ 'v-slots'?: {
388
+ [x: `header.${string}`]: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
389
+ headers?: false | ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
390
+ loader?: false | ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
391
+ 'header.data-table-select'?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
392
+ 'header.data-table-expand'?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
393
+ } | undefined;
394
+ } & {
395
+ [x: `v-slot:header.${string}`]: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
396
+ "v-slot:headers"?: false | ((arg: HeadersSlotProps) => vue.VNodeChild) | undefined;
397
+ "v-slot:loader"?: false | ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
398
+ "v-slot:header.data-table-select"?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
399
+ "v-slot:header.data-table-expand"?: false | ((arg: VDataTableHeaderCellColumnSlotProps) => vue.VNodeChild) | undefined;
400
+ }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
401
+ sticky: boolean;
402
+ multiSort: boolean;
403
+ sortAscIcon: IconValue;
404
+ sortDescIcon: IconValue;
405
+ }, {}, string, vue.SlotsType<Partial<{
406
+ [x: `header.${string}`]: (arg: VDataTableHeaderCellColumnSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
407
+ [key: string]: any;
408
+ }>[];
409
+ headers: (arg: HeadersSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
410
+ [key: string]: any;
411
+ }>[];
412
+ loader: (arg: LoaderSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
413
+ [key: string]: any;
414
+ }>[];
415
+ 'header.data-table-select': (arg: VDataTableHeaderCellColumnSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
416
+ [key: string]: any;
417
+ }>[];
418
+ 'header.data-table-expand': (arg: VDataTableHeaderCellColumnSlotProps) => vue.VNode<vue.RendererNode, vue.RendererElement, {
419
+ [key: string]: any;
420
+ }>[];
421
+ }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
422
+ loading: (StringConstructor | BooleanConstructor)[];
423
+ color: StringConstructor;
424
+ sticky: BooleanConstructor;
425
+ multiSort: BooleanConstructor;
426
+ sortAscIcon: {
427
+ type: PropType<IconValue>;
428
+ default: string;
429
+ };
430
+ sortDescIcon: {
431
+ type: PropType<IconValue>;
432
+ default: string;
433
+ };
434
+ headerProps: {
435
+ type: PropType<Record<string, any>>;
436
+ };
437
+ }, vue.ExtractPropTypes<{
438
+ loading: (StringConstructor | BooleanConstructor)[];
439
+ color: StringConstructor;
440
+ sticky: BooleanConstructor;
441
+ multiSort: BooleanConstructor;
442
+ sortAscIcon: {
443
+ type: PropType<IconValue>;
444
+ default: string;
445
+ };
446
+ sortDescIcon: {
447
+ type: PropType<IconValue>;
448
+ default: string;
449
+ };
450
+ headerProps: {
451
+ type: PropType<Record<string, any>>;
452
+ };
453
+ }>>;
454
+ type VDataTableHeaders = InstanceType<typeof VDataTableHeaders>;
242
455
 
243
456
  type Density = null | 'default' | 'comfortable' | 'compact';
244
457
 
@@ -4176,4 +4389,4 @@ declare const VDataTableServer: {
4176
4389
  }>>;
4177
4390
  type VDataTableServer = InstanceType<typeof VDataTableServer>;
4178
4391
 
4179
- export { VDataTable, VDataTableFooter, VDataTableRow, VDataTableRows, VDataTableServer, VDataTableVirtual };
4392
+ export { VDataTable, VDataTableFooter, VDataTableHeaders, VDataTableRow, VDataTableRows, VDataTableServer, VDataTableVirtual };
@@ -1,4 +1,5 @@
1
1
  export { VDataTable } from "./VDataTable.mjs";
2
+ export { VDataTableHeaders } from "./VDataTableHeaders.mjs";
2
3
  export { VDataTableFooter } from "./VDataTableFooter.mjs";
3
4
  export { VDataTableRows } from "./VDataTableRows.mjs";
4
5
  export { VDataTableRow } from "./VDataTableRow.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["VDataTable","VDataTableFooter","VDataTableRows","VDataTableRow","VDataTableVirtual","VDataTableServer"],"sources":["../../../src/components/VDataTable/index.ts"],"sourcesContent":["export { VDataTable } from './VDataTable'\nexport { VDataTableFooter } from './VDataTableFooter'\nexport { VDataTableRows } from './VDataTableRows'\nexport { VDataTableRow } from './VDataTableRow'\nexport { VDataTableVirtual } from './VDataTableVirtual'\nexport { VDataTableServer } from './VDataTableServer'\n"],"mappings":"SAASA,UAAU;AAAA,SACVC,gBAAgB;AAAA,SAChBC,cAAc;AAAA,SACdC,aAAa;AAAA,SACbC,iBAAiB;AAAA,SACjBC,gBAAgB"}
1
+ {"version":3,"file":"index.mjs","names":["VDataTable","VDataTableHeaders","VDataTableFooter","VDataTableRows","VDataTableRow","VDataTableVirtual","VDataTableServer"],"sources":["../../../src/components/VDataTable/index.ts"],"sourcesContent":["export { VDataTable } from './VDataTable'\nexport { VDataTableHeaders } from './VDataTableHeaders'\nexport { VDataTableFooter } from './VDataTableFooter'\nexport { VDataTableRows } from './VDataTableRows'\nexport { VDataTableRow } from './VDataTableRow'\nexport { VDataTableVirtual } from './VDataTableVirtual'\nexport { VDataTableServer } from './VDataTableServer'\n"],"mappings":"SAASA,UAAU;AAAA,SACVC,iBAAiB;AAAA,SACjBC,gBAAgB;AAAA,SAChBC,cAAc;AAAA,SACdC,aAAa;AAAA,SACbC,iBAAiB;AAAA,SACjBC,gBAAgB"}
@@ -131,23 +131,20 @@
131
131
  opacity: calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier));
132
132
  }
133
133
  }
134
- .v-expansion-panel-title--active > .v-expansion-panel-title__overlay, .v-expansion-panel-title[aria-haspopup=menu][aria-expanded=true] > .v-expansion-panel-title__overlay {
134
+ .v-expansion-panel-title--focusable.v-expansion-panel-title--active .v-expansion-panel-title__overlay {
135
135
  opacity: calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier));
136
136
  }
137
- .v-expansion-panel-title--active:hover > .v-expansion-panel-title__overlay, .v-expansion-panel-title[aria-haspopup=menu][aria-expanded=true]:hover > .v-expansion-panel-title__overlay {
137
+ .v-expansion-panel-title--focusable.v-expansion-panel-title--active:hover .v-expansion-panel-title__overlay {
138
138
  opacity: calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier));
139
139
  }
140
- .v-expansion-panel-title--active:focus-visible > .v-expansion-panel-title__overlay, .v-expansion-panel-title[aria-haspopup=menu][aria-expanded=true]:focus-visible > .v-expansion-panel-title__overlay {
140
+ .v-expansion-panel-title--focusable.v-expansion-panel-title--active:focus-visible .v-expansion-panel-title__overlay {
141
141
  opacity: calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier));
142
142
  }
143
143
  @supports not selector(:focus-visible) {
144
- .v-expansion-panel-title--active:focus > .v-expansion-panel-title__overlay, .v-expansion-panel-title[aria-haspopup=menu][aria-expanded=true]:focus > .v-expansion-panel-title__overlay {
144
+ .v-expansion-panel-title--focusable.v-expansion-panel-title--active:focus .v-expansion-panel-title__overlay {
145
145
  opacity: calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier));
146
146
  }
147
147
  }
148
- .v-expansion-panel-title--active::before {
149
- opacity: 0.12;
150
- }
151
148
 
152
149
  .v-expansion-panel-title__overlay {
153
150
  position: absolute;
@@ -126,10 +126,11 @@
126
126
  transition: .3s min-height settings.$standard-easing
127
127
  width: 100%
128
128
  justify-content: space-between
129
- @include tools.states('.v-expansion-panel-title__overlay', true)
130
129
 
131
- &--active::before
132
- opacity: 0.12
130
+ @include tools.states('.v-expansion-panel-title__overlay', false)
131
+
132
+ &--focusable.v-expansion-panel-title--active
133
+ @include tools.active-states('.v-expansion-panel-title__overlay')
133
134
 
134
135
  .v-expansion-panel-title__overlay
135
136
  @include tools.absolute()
@@ -19,6 +19,7 @@ export const makeVExpansionPanelTitleProps = propsFactory({
19
19
  default: '$collapse'
20
20
  },
21
21
  hideActions: Boolean,
22
+ focusable: Boolean,
22
23
  static: Boolean,
23
24
  ripple: {
24
25
  type: [Boolean, Object],
@@ -53,6 +54,7 @@ export const VExpansionPanelTitle = genericComponent()({
53
54
  useRender(() => _withDirectives(_createVNode("button", {
54
55
  "class": ['v-expansion-panel-title', {
55
56
  'v-expansion-panel-title--active': expansionPanel.isSelected.value,
57
+ 'v-expansion-panel-title--focusable': props.focusable,
56
58
  'v-expansion-panel-title--static': props.static
57
59
  }, backgroundColorClasses.value, props.class],
58
60
  "style": [backgroundColorStyles.value, props.style],
@@ -1 +1 @@
1
- {"version":3,"file":"VExpansionPanelTitle.mjs","names":["VExpansionPanelSymbol","VIcon","useBackgroundColor","makeComponentProps","IconValue","Ripple","computed","inject","genericComponent","propsFactory","useRender","makeVExpansionPanelTitleProps","color","String","expandIcon","type","default","collapseIcon","hideActions","Boolean","static","ripple","Object","readonly","VExpansionPanelTitle","name","directives","props","setup","_ref","slots","expansionPanel","Error","backgroundColorClasses","backgroundColorStyles","slotProps","disabled","value","expanded","isSelected","_withDirectives","_createVNode","class","style","undefined","toggle","actions","_resolveDirective"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanelTitle.tsx"],"sourcesContent":["// Components\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\ninterface ExpansionPanelTitleSlot {\n collapseIcon: IconValue\n disabled: boolean | undefined\n expanded: boolean\n expandIcon: IconValue\n readonly: boolean\n}\n\nexport type VExpansionPanelTitleSlots = {\n default: ExpansionPanelTitleSlot\n actions: ExpansionPanelTitleSlot\n}\n\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n hideActions: Boolean,\n static: Boolean,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: false,\n },\n readonly: Boolean,\n\n ...makeComponentProps(),\n}, 'VExpansionPanelTitle')\n\nexport const VExpansionPanelTitle = genericComponent<VExpansionPanelTitleSlots>()({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: makeVExpansionPanelTitleProps(),\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n useRender(() => (\n <button\n class={[\n 'v-expansion-panel-title',\n {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n 'v-expansion-panel-title--static': props.static,\n },\n backgroundColorClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n props.style,\n ]}\n type=\"button\"\n tabindex={ expansionPanel.disabled.value ? -1 : undefined }\n disabled={ expansionPanel.disabled.value }\n aria-expanded={ expansionPanel.isSelected.value }\n onClick={ !props.readonly ? expansionPanel.toggle : undefined }\n v-ripple={ props.ripple }\n >\n <span class=\"v-expansion-panel-title__overlay\" />\n\n { slots.default?.(slotProps.value) }\n\n { !props.hideActions && (\n <span class=\"v-expansion-panel-title__icon\">\n {\n slots.actions ? slots.actions(slotProps.value)\n : <VIcon icon={ expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon } />\n }\n </span>\n )}\n </button>\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelTitle = InstanceType<typeof VExpansionPanelTitle>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VExpansionPanelTitle.mjs","names":["VExpansionPanelSymbol","VIcon","useBackgroundColor","makeComponentProps","IconValue","Ripple","computed","inject","genericComponent","propsFactory","useRender","makeVExpansionPanelTitleProps","color","String","expandIcon","type","default","collapseIcon","hideActions","Boolean","focusable","static","ripple","Object","readonly","VExpansionPanelTitle","name","directives","props","setup","_ref","slots","expansionPanel","Error","backgroundColorClasses","backgroundColorStyles","slotProps","disabled","value","expanded","isSelected","_withDirectives","_createVNode","class","style","undefined","toggle","actions","_resolveDirective"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanelTitle.tsx"],"sourcesContent":["// Components\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\ninterface ExpansionPanelTitleSlot {\n collapseIcon: IconValue\n disabled: boolean | undefined\n expanded: boolean\n expandIcon: IconValue\n readonly: boolean\n}\n\nexport type VExpansionPanelTitleSlots = {\n default: ExpansionPanelTitleSlot\n actions: ExpansionPanelTitleSlot\n}\n\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n hideActions: Boolean,\n focusable: Boolean,\n static: Boolean,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: false,\n },\n readonly: Boolean,\n\n ...makeComponentProps(),\n}, 'VExpansionPanelTitle')\n\nexport const VExpansionPanelTitle = genericComponent<VExpansionPanelTitleSlots>()({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: makeVExpansionPanelTitleProps(),\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n useRender(() => (\n <button\n class={[\n 'v-expansion-panel-title',\n {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n 'v-expansion-panel-title--focusable': props.focusable,\n 'v-expansion-panel-title--static': props.static,\n },\n backgroundColorClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n props.style,\n ]}\n type=\"button\"\n tabindex={ expansionPanel.disabled.value ? -1 : undefined }\n disabled={ expansionPanel.disabled.value }\n aria-expanded={ expansionPanel.isSelected.value }\n onClick={ !props.readonly ? expansionPanel.toggle : undefined }\n v-ripple={ props.ripple }\n >\n <span class=\"v-expansion-panel-title__overlay\" />\n\n { slots.default?.(slotProps.value) }\n\n { !props.hideActions && (\n <span class=\"v-expansion-panel-title__icon\">\n {\n slots.actions ? slots.actions(slotProps.value)\n : <VIcon icon={ expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon } />\n }\n </span>\n )}\n </button>\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelTitle = InstanceType<typeof VExpansionPanelTitle>\n"],"mappings":"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"}
@@ -15,6 +15,7 @@ const allowedVariants = ['default', 'accordion', 'inset', 'popout'];
15
15
  export const makeVExpansionPanelsProps = propsFactory({
16
16
  color: String,
17
17
  flat: Boolean,
18
+ focusable: Boolean,
18
19
  static: Boolean,
19
20
  tile: Boolean,
20
21
  variant: {
@@ -49,6 +50,7 @@ export const VExpansionPanels = genericComponent()({
49
50
  readonly: toRef(props, 'readonly')
50
51
  },
51
52
  VExpansionPanelTitle: {
53
+ focusable: toRef(props, 'focusable'),
52
54
  static: toRef(props, 'static')
53
55
  }
54
56
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VExpansionPanels.mjs","names":["makeComponentProps","provideDefaults","makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","computed","toRef","genericComponent","propsFactory","useRender","VExpansionPanelSymbol","Symbol","for","allowedVariants","makeVExpansionPanelsProps","color","String","flat","Boolean","static","tile","variant","type","default","validator","v","includes","readonly","VExpansionPanels","name","props","emits","val","setup","_ref","slots","themeClasses","variantClass","VExpansionPanel","VExpansionPanelTitle","_createVNode","tag","value","class","style"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanels.tsx"],"sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VExpansionPanelSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-expansion-panel')\n\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'] as const\n\ntype Variant = typeof allowedVariants[number]\n\nexport const makeVExpansionPanelsProps = propsFactory({\n color: String,\n flat: Boolean,\n static: Boolean,\n tile: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'default',\n validator: (v: any) => allowedVariants.includes(v),\n },\n readonly: Boolean,\n\n ...makeComponentProps(),\n ...makeGroupProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VExpansionPanels')\n\nexport const VExpansionPanels = genericComponent()({\n name: 'VExpansionPanels',\n\n props: makeVExpansionPanelsProps(),\n\n emits: {\n 'update:modelValue': (val: unknown) => true,\n },\n\n setup (props, { slots }) {\n useGroup(props, VExpansionPanelSymbol)\n\n const { themeClasses } = provideTheme(props)\n\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`)\n\n provideDefaults({\n VExpansionPanel: {\n color: toRef(props, 'color'),\n readonly: toRef(props, 'readonly'),\n },\n VExpansionPanelTitle: {\n static: toRef(props, 'static'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-expansion-panels',\n {\n 'v-expansion-panels--flat': props.flat,\n 'v-expansion-panels--tile': props.tile,\n },\n themeClasses.value,\n variantClass.value,\n props.class,\n ]}\n style={ props.style }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanels = InstanceType<typeof VExpansionPanels>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAIA,OAAO,MAAMC,qBAAqD,GAAGC,MAAM,CAACC,GAAG,CAAC,2BAA2B,CAAC;AAE5G,MAAMC,eAAe,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAU;AAI5E,OAAO,MAAMC,yBAAyB,GAAGN,YAAY,CAAC;EACpDO,KAAK,EAAEC,MAAM;EACbC,IAAI,EAAEC,OAAO;EACbC,MAAM,EAAED,OAAO;EACfE,IAAI,EAAEF,OAAO;EACbG,OAAO,EAAE;IACPC,IAAI,EAAEN,MAA2B;IACjCO,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAGC,CAAM,IAAKZ,eAAe,CAACa,QAAQ,CAACD,CAAC;EACnD,CAAC;EACDE,QAAQ,EAAET,OAAO;EAEjB,GAAGpB,kBAAkB,CAAC,CAAC;EACvB,GAAGE,cAAc,CAAC,CAAC;EACnB,GAAGE,YAAY,CAAC,CAAC;EACjB,GAAGC,cAAc,CAAC;AACpB,CAAC,EAAE,kBAAkB,CAAC;AAEtB,OAAO,MAAMyB,gBAAgB,GAAGrB,gBAAgB,CAAC,CAAC,CAAC;EACjDsB,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAEhB,yBAAyB,CAAC,CAAC;EAElCiB,KAAK,EAAE;IACL,mBAAmB,EAAGC,GAAY,IAAK;EACzC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBjC,QAAQ,CAAC6B,KAAK,EAAEpB,qBAAqB,CAAC;IAEtC,MAAM;MAAE0B;IAAa,CAAC,GAAGhC,YAAY,CAAC0B,KAAK,CAAC;IAE5C,MAAMO,YAAY,GAAGhC,QAAQ,CAAC,MAAMyB,KAAK,CAACT,OAAO,IAAK,+BAA8BS,KAAK,CAACT,OAAQ,EAAC,CAAC;IAEpGtB,eAAe,CAAC;MACduC,eAAe,EAAE;QACfvB,KAAK,EAAET,KAAK,CAACwB,KAAK,EAAE,OAAO,CAAC;QAC5BH,QAAQ,EAAErB,KAAK,CAACwB,KAAK,EAAE,UAAU;MACnC,CAAC;MACDS,oBAAoB,EAAE;QACpBpB,MAAM,EAAEb,KAAK,CAACwB,KAAK,EAAE,QAAQ;MAC/B;IACF,CAAC,CAAC;IAEFrB,SAAS,CAAC,MAAA+B,YAAA,CAAAV,KAAA,CAAAW,GAAA;MAAA,SAEC,CACL,oBAAoB,EACpB;QACE,0BAA0B,EAAEX,KAAK,CAACb,IAAI;QACtC,0BAA0B,EAAEa,KAAK,CAACV;MACpC,CAAC,EACDgB,YAAY,CAACM,KAAK,EAClBL,YAAY,CAACK,KAAK,EAClBZ,KAAK,CAACa,KAAK,CACZ;MAAA,SACOb,KAAK,CAACc;IAAK,GACTT,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VExpansionPanels.mjs","names":["makeComponentProps","provideDefaults","makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","computed","toRef","genericComponent","propsFactory","useRender","VExpansionPanelSymbol","Symbol","for","allowedVariants","makeVExpansionPanelsProps","color","String","flat","Boolean","focusable","static","tile","variant","type","default","validator","v","includes","readonly","VExpansionPanels","name","props","emits","val","setup","_ref","slots","themeClasses","variantClass","VExpansionPanel","VExpansionPanelTitle","_createVNode","tag","value","class","style"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanels.tsx"],"sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VExpansionPanelSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-expansion-panel')\n\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'] as const\n\ntype Variant = typeof allowedVariants[number]\n\nexport const makeVExpansionPanelsProps = propsFactory({\n color: String,\n flat: Boolean,\n focusable: Boolean,\n static: Boolean,\n tile: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'default',\n validator: (v: any) => allowedVariants.includes(v),\n },\n readonly: Boolean,\n\n ...makeComponentProps(),\n ...makeGroupProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VExpansionPanels')\n\nexport const VExpansionPanels = genericComponent()({\n name: 'VExpansionPanels',\n\n props: makeVExpansionPanelsProps(),\n\n emits: {\n 'update:modelValue': (val: unknown) => true,\n },\n\n setup (props, { slots }) {\n useGroup(props, VExpansionPanelSymbol)\n\n const { themeClasses } = provideTheme(props)\n\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`)\n\n provideDefaults({\n VExpansionPanel: {\n color: toRef(props, 'color'),\n readonly: toRef(props, 'readonly'),\n },\n VExpansionPanelTitle: {\n focusable: toRef(props, 'focusable'),\n static: toRef(props, 'static'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-expansion-panels',\n {\n 'v-expansion-panels--flat': props.flat,\n 'v-expansion-panels--tile': props.tile,\n },\n themeClasses.value,\n variantClass.value,\n props.class,\n ]}\n style={ props.style }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanels = InstanceType<typeof VExpansionPanels>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAIA,OAAO,MAAMC,qBAAqD,GAAGC,MAAM,CAACC,GAAG,CAAC,2BAA2B,CAAC;AAE5G,MAAMC,eAAe,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAU;AAI5E,OAAO,MAAMC,yBAAyB,GAAGN,YAAY,CAAC;EACpDO,KAAK,EAAEC,MAAM;EACbC,IAAI,EAAEC,OAAO;EACbC,SAAS,EAAED,OAAO;EAClBE,MAAM,EAAEF,OAAO;EACfG,IAAI,EAAEH,OAAO;EACbI,OAAO,EAAE;IACPC,IAAI,EAAEP,MAA2B;IACjCQ,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAGC,CAAM,IAAKb,eAAe,CAACc,QAAQ,CAACD,CAAC;EACnD,CAAC;EACDE,QAAQ,EAAEV,OAAO;EAEjB,GAAGpB,kBAAkB,CAAC,CAAC;EACvB,GAAGE,cAAc,CAAC,CAAC;EACnB,GAAGE,YAAY,CAAC,CAAC;EACjB,GAAGC,cAAc,CAAC;AACpB,CAAC,EAAE,kBAAkB,CAAC;AAEtB,OAAO,MAAM0B,gBAAgB,GAAGtB,gBAAgB,CAAC,CAAC,CAAC;EACjDuB,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAEjB,yBAAyB,CAAC,CAAC;EAElCkB,KAAK,EAAE;IACL,mBAAmB,EAAGC,GAAY,IAAK;EACzC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBlC,QAAQ,CAAC8B,KAAK,EAAErB,qBAAqB,CAAC;IAEtC,MAAM;MAAE2B;IAAa,CAAC,GAAGjC,YAAY,CAAC2B,KAAK,CAAC;IAE5C,MAAMO,YAAY,GAAGjC,QAAQ,CAAC,MAAM0B,KAAK,CAACT,OAAO,IAAK,+BAA8BS,KAAK,CAACT,OAAQ,EAAC,CAAC;IAEpGvB,eAAe,CAAC;MACdwC,eAAe,EAAE;QACfxB,KAAK,EAAET,KAAK,CAACyB,KAAK,EAAE,OAAO,CAAC;QAC5BH,QAAQ,EAAEtB,KAAK,CAACyB,KAAK,EAAE,UAAU;MACnC,CAAC;MACDS,oBAAoB,EAAE;QACpBrB,SAAS,EAAEb,KAAK,CAACyB,KAAK,EAAE,WAAW,CAAC;QACpCX,MAAM,EAAEd,KAAK,CAACyB,KAAK,EAAE,QAAQ;MAC/B;IACF,CAAC,CAAC;IAEFtB,SAAS,CAAC,MAAAgC,YAAA,CAAAV,KAAA,CAAAW,GAAA;MAAA,SAEC,CACL,oBAAoB,EACpB;QACE,0BAA0B,EAAEX,KAAK,CAACd,IAAI;QACtC,0BAA0B,EAAEc,KAAK,CAACV;MACpC,CAAC,EACDgB,YAAY,CAACM,KAAK,EAClBL,YAAY,CAACK,KAAK,EAClBZ,KAAK,CAACa,KAAK,CACZ;MAAA,SACOb,KAAK,CAACc;IAAK,GACTT,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -15,6 +15,7 @@ declare const VExpansionPanels: {
15
15
  readonly: boolean;
16
16
  static: boolean;
17
17
  tag: string;
18
+ focusable: boolean;
18
19
  tile: boolean;
19
20
  } & {
20
21
  max?: number | undefined;
@@ -46,6 +47,7 @@ declare const VExpansionPanels: {
46
47
  readonly: boolean;
47
48
  static: boolean;
48
49
  tag: string;
50
+ focusable: boolean;
49
51
  tile: boolean;
50
52
  } & {
51
53
  max?: number | undefined;
@@ -75,6 +77,7 @@ declare const VExpansionPanels: {
75
77
  readonly: boolean;
76
78
  static: boolean;
77
79
  tag: string;
80
+ focusable: boolean;
78
81
  tile: boolean;
79
82
  modelValue: any;
80
83
  }, true, {}, vue.SlotsType<Partial<{
@@ -97,6 +100,7 @@ declare const VExpansionPanels: {
97
100
  readonly: boolean;
98
101
  static: boolean;
99
102
  tag: string;
103
+ focusable: boolean;
100
104
  tile: boolean;
101
105
  } & {
102
106
  max?: number | undefined;
@@ -126,6 +130,7 @@ declare const VExpansionPanels: {
126
130
  readonly: boolean;
127
131
  static: boolean;
128
132
  tag: string;
133
+ focusable: boolean;
129
134
  tile: boolean;
130
135
  modelValue: any;
131
136
  }>;
@@ -141,6 +146,7 @@ declare const VExpansionPanels: {
141
146
  readonly: boolean;
142
147
  static: boolean;
143
148
  tag: string;
149
+ focusable: boolean;
144
150
  tile: boolean;
145
151
  } & {
146
152
  max?: number | undefined;
@@ -172,6 +178,7 @@ declare const VExpansionPanels: {
172
178
  readonly: boolean;
173
179
  static: boolean;
174
180
  tag: string;
181
+ focusable: boolean;
175
182
  tile: boolean;
176
183
  modelValue: any;
177
184
  }, {}, string, vue.SlotsType<Partial<{
@@ -200,6 +207,7 @@ declare const VExpansionPanels: {
200
207
  };
201
208
  color: StringConstructor;
202
209
  flat: BooleanConstructor;
210
+ focusable: BooleanConstructor;
203
211
  static: BooleanConstructor;
204
212
  tile: BooleanConstructor;
205
213
  variant: {
@@ -230,6 +238,7 @@ declare const VExpansionPanels: {
230
238
  };
231
239
  color: StringConstructor;
232
240
  flat: BooleanConstructor;
241
+ focusable: BooleanConstructor;
233
242
  static: BooleanConstructor;
234
243
  tile: BooleanConstructor;
235
244
  variant: {
@@ -252,6 +261,7 @@ declare const VExpansionPanel: {
252
261
  readonly: boolean;
253
262
  static: boolean;
254
263
  tag: string;
264
+ focusable: boolean;
255
265
  tile: boolean;
256
266
  ripple: boolean | {
257
267
  class: string;
@@ -299,6 +309,7 @@ declare const VExpansionPanel: {
299
309
  readonly: boolean;
300
310
  static: boolean;
301
311
  tag: string;
312
+ focusable: boolean;
302
313
  tile: boolean;
303
314
  ripple: boolean | {
304
315
  class: string;
@@ -342,6 +353,7 @@ declare const VExpansionPanel: {
342
353
  readonly: boolean;
343
354
  static: boolean;
344
355
  tag: string;
356
+ focusable: boolean;
345
357
  rounded: string | number | boolean;
346
358
  tile: boolean;
347
359
  ripple: boolean | {
@@ -374,6 +386,7 @@ declare const VExpansionPanel: {
374
386
  readonly: boolean;
375
387
  static: boolean;
376
388
  tag: string;
389
+ focusable: boolean;
377
390
  tile: boolean;
378
391
  ripple: boolean | {
379
392
  class: string;
@@ -417,6 +430,7 @@ declare const VExpansionPanel: {
417
430
  readonly: boolean;
418
431
  static: boolean;
419
432
  tag: string;
433
+ focusable: boolean;
420
434
  rounded: string | number | boolean;
421
435
  tile: boolean;
422
436
  ripple: boolean | {
@@ -436,6 +450,7 @@ declare const VExpansionPanel: {
436
450
  readonly: boolean;
437
451
  static: boolean;
438
452
  tag: string;
453
+ focusable: boolean;
439
454
  tile: boolean;
440
455
  ripple: boolean | {
441
456
  class: string;
@@ -483,6 +498,7 @@ declare const VExpansionPanel: {
483
498
  readonly: boolean;
484
499
  static: boolean;
485
500
  tag: string;
501
+ focusable: boolean;
486
502
  rounded: string | number | boolean;
487
503
  tile: boolean;
488
504
  ripple: boolean | {
@@ -517,6 +533,7 @@ declare const VExpansionPanel: {
517
533
  default: string;
518
534
  };
519
535
  hideActions: BooleanConstructor;
536
+ focusable: BooleanConstructor;
520
537
  static: BooleanConstructor;
521
538
  ripple: {
522
539
  type: vue.PropType<boolean | {
@@ -561,6 +578,7 @@ declare const VExpansionPanel: {
561
578
  default: string;
562
579
  };
563
580
  hideActions: BooleanConstructor;
581
+ focusable: BooleanConstructor;
564
582
  static: BooleanConstructor;
565
583
  ripple: {
566
584
  type: vue.PropType<boolean | {
@@ -706,6 +724,7 @@ declare const VExpansionPanelTitle: {
706
724
  style: vue.StyleValue;
707
725
  readonly: boolean;
708
726
  static: boolean;
727
+ focusable: boolean;
709
728
  ripple: boolean | {
710
729
  class: string;
711
730
  } | undefined;
@@ -731,6 +750,7 @@ declare const VExpansionPanelTitle: {
731
750
  style: vue.StyleValue;
732
751
  readonly: boolean;
733
752
  static: boolean;
753
+ focusable: boolean;
734
754
  ripple: boolean | {
735
755
  class: string;
736
756
  } | undefined;
@@ -756,6 +776,7 @@ declare const VExpansionPanelTitle: {
756
776
  style: vue.StyleValue;
757
777
  readonly: boolean;
758
778
  static: boolean;
779
+ focusable: boolean;
759
780
  ripple: boolean | {
760
781
  class: string;
761
782
  } | undefined;
@@ -780,6 +801,7 @@ declare const VExpansionPanelTitle: {
780
801
  style: vue.StyleValue;
781
802
  readonly: boolean;
782
803
  static: boolean;
804
+ focusable: boolean;
783
805
  ripple: boolean | {
784
806
  class: string;
785
807
  } | undefined;
@@ -805,6 +827,7 @@ declare const VExpansionPanelTitle: {
805
827
  style: vue.StyleValue;
806
828
  readonly: boolean;
807
829
  static: boolean;
830
+ focusable: boolean;
808
831
  ripple: boolean | {
809
832
  class: string;
810
833
  } | undefined;
@@ -819,6 +842,7 @@ declare const VExpansionPanelTitle: {
819
842
  style: vue.StyleValue;
820
843
  readonly: boolean;
821
844
  static: boolean;
845
+ focusable: boolean;
822
846
  ripple: boolean | {
823
847
  class: string;
824
848
  } | undefined;
@@ -844,6 +868,7 @@ declare const VExpansionPanelTitle: {
844
868
  style: vue.StyleValue;
845
869
  readonly: boolean;
846
870
  static: boolean;
871
+ focusable: boolean;
847
872
  ripple: boolean | {
848
873
  class: string;
849
874
  } | undefined;
@@ -873,6 +898,7 @@ declare const VExpansionPanelTitle: {
873
898
  default: string;
874
899
  };
875
900
  hideActions: BooleanConstructor;
901
+ focusable: BooleanConstructor;
876
902
  static: BooleanConstructor;
877
903
  ripple: {
878
904
  type: PropType<boolean | {
@@ -897,6 +923,7 @@ declare const VExpansionPanelTitle: {
897
923
  default: string;
898
924
  };
899
925
  hideActions: BooleanConstructor;
926
+ focusable: BooleanConstructor;
900
927
  static: BooleanConstructor;
901
928
  ripple: {
902
929
  type: PropType<boolean | {
@@ -183,9 +183,10 @@ export const VSelect = genericComponent()({
183
183
  }
184
184
  }
185
185
  function select(item) {
186
- const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
187
- const add = index === -1;
186
+ let add = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
188
187
  if (props.multiple) {
188
+ const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
189
+ add = index === -1;
189
190
  if (add) {
190
191
  model.value = [...model.value, item];
191
192
  } else {
@@ -346,7 +347,7 @@ export const VSelect = genericComponent()({
346
347
  function onChipClose(e) {
347
348
  e.stopPropagation();
348
349
  e.preventDefault();
349
- select(item);
350
+ select(item, false);
350
351
  }
351
352
  const slotProps = {
352
353
  'onClick:close': onChipClose,