@vuetify/nightly 3.6.3-master.2024-05-07 → 3.6.4-master.2024-05-09

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 (93) hide show
  1. package/CHANGELOG.md +7 -13
  2. package/dist/json/attributes.json +31 -31
  3. package/dist/json/importMap-labs.json +8 -8
  4. package/dist/json/importMap.json +124 -124
  5. package/dist/json/web-types.json +64 -64
  6. package/dist/vuetify-labs.css +2434 -2363
  7. package/dist/vuetify-labs.d.ts +995 -966
  8. package/dist/vuetify-labs.esm.js +104 -70
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +103 -69
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +775 -708
  13. package/dist/vuetify.d.ts +965 -936
  14. package/dist/vuetify.esm.js +104 -70
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +103 -69
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +981 -976
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/index.d.mts +169 -140
  22. package/lib/components/VBottomSheet/index.d.mts +33 -27
  23. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
  24. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  25. package/lib/components/VCombobox/index.d.mts +169 -140
  26. package/lib/components/VDataIterator/index.d.mts +1 -1
  27. package/lib/components/VDataTable/VDataTable.css +1 -1
  28. package/lib/components/VDataTable/VDataTable.sass +2 -1
  29. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  30. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  31. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  32. package/lib/components/VDataTable/composables/select.mjs +2 -1
  33. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  34. package/lib/components/VDataTable/index.d.mts +10 -5
  35. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
  36. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  37. package/lib/components/VDialog/index.d.mts +99 -93
  38. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  39. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  40. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  41. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  42. package/lib/components/VList/VList.mjs.map +1 -1
  43. package/lib/components/VList/index.d.mts +70 -46
  44. package/lib/components/VMenu/index.d.mts +99 -93
  45. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  46. package/lib/components/VOverlay/index.d.mts +33 -27
  47. package/lib/components/VOverlay/useActivator.mjs +5 -5
  48. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  49. package/lib/components/VSelect/index.d.mts +169 -140
  50. package/lib/components/VSheet/VSheet.css +1 -1
  51. package/lib/components/VSheet/_variables.scss +1 -1
  52. package/lib/components/VSlideGroup/VSlideGroup.mjs +25 -25
  53. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  54. package/lib/components/VSlider/VSliderThumb.css +5 -0
  55. package/lib/components/VSlider/VSliderThumb.sass +3 -0
  56. package/lib/components/VSlider/VSliderTrack.css +15 -0
  57. package/lib/components/VSlider/VSliderTrack.sass +9 -0
  58. package/lib/components/VSnackbar/index.d.mts +85 -79
  59. package/lib/components/VSpeedDial/index.d.mts +33 -27
  60. package/lib/components/VStepper/VStepper.mjs +12 -6
  61. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  62. package/lib/components/VStepper/VStepperItem.css +47 -0
  63. package/lib/components/VStepper/VStepperItem.mjs +5 -3
  64. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  65. package/lib/components/VStepper/VStepperItem.sass +18 -0
  66. package/lib/components/VStepper/VStepperWindow.mjs +2 -1
  67. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  68. package/lib/components/VStepper/VStepperWindowItem.mjs +2 -1
  69. package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
  70. package/lib/components/VTabs/VTabsWindow.mjs +2 -1
  71. package/lib/components/VTabs/VTabsWindow.mjs.map +1 -1
  72. package/lib/components/VTooltip/index.d.mts +99 -93
  73. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  74. package/lib/components/index.d.mts +926 -897
  75. package/lib/composables/nested/activeStrategies.mjs +16 -10
  76. package/lib/composables/nested/activeStrategies.mjs.map +1 -1
  77. package/lib/composables/nested/nested.mjs +7 -5
  78. package/lib/composables/nested/nested.mjs.map +1 -1
  79. package/lib/composables/resizeObserver.mjs +5 -5
  80. package/lib/composables/resizeObserver.mjs.map +1 -1
  81. package/lib/entry-bundler.mjs +1 -1
  82. package/lib/framework.mjs +1 -1
  83. package/lib/index.d.mts +39 -39
  84. package/lib/labs/VCalendar/VCalendar.css +5 -1
  85. package/lib/labs/VCalendar/VCalendar.sass +3 -2
  86. package/lib/labs/VCalendar/_variables.scss +8 -0
  87. package/lib/labs/VSnackbarQueue/index.d.mts +97 -91
  88. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  89. package/lib/labs/VTreeview/index.d.mts +82 -58
  90. package/lib/labs/components.d.mts +178 -149
  91. package/lib/util/helpers.mjs +16 -0
  92. package/lib/util/helpers.mjs.map +1 -1
  93. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentPropsOptions, ExtractPropTypes, Ref, EffectScope } from 'vue';
2
+ import { ComponentPropsOptions, ExtractPropTypes, ComponentPublicInstance, Ref, EffectScope } from 'vue';
3
3
 
4
4
  declare const block: readonly ["top", "bottom"];
5
5
  declare const inline: readonly ["start", "end", "left", "right"];
@@ -28,6 +28,12 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
28
28
  filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
29
29
  }
30
30
 
31
+ type TemplateRef = {
32
+ (target: Element | ComponentPublicInstance | null): void;
33
+ value: HTMLElement | ComponentPublicInstance | null | undefined;
34
+ readonly el: HTMLElement | undefined;
35
+ };
36
+
31
37
  interface ScrollStrategyData {
32
38
  root: Ref<HTMLElement | undefined>;
33
39
  contentEl: Ref<HTMLElement | undefined>;
@@ -120,13 +126,13 @@ declare const VSpeedDial: {
120
126
  width?: string | number | undefined;
121
127
  height?: string | number | undefined;
122
128
  theme?: string | undefined;
123
- target?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
129
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
124
130
  contentClass?: any;
125
131
  opacity?: string | number | undefined;
126
132
  maxHeight?: string | number | undefined;
127
133
  maxWidth?: string | number | undefined;
128
134
  minHeight?: string | number | undefined;
129
- activator?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined;
135
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
130
136
  openOnClick?: boolean | undefined;
131
137
  openOnFocus?: boolean | undefined;
132
138
  contentProps?: any;
@@ -139,7 +145,7 @@ declare const VSpeedDial: {
139
145
  activator?: ((arg: {
140
146
  isActive: boolean;
141
147
  props: Record<string, any>;
142
- targetRef: vue.Ref<any>;
148
+ targetRef: TemplateRef;
143
149
  }) => vue.VNodeChild) | undefined;
144
150
  } | ((arg: {
145
151
  isActive: vue.Ref<boolean>;
@@ -151,7 +157,7 @@ declare const VSpeedDial: {
151
157
  activator?: false | ((arg: {
152
158
  isActive: boolean;
153
159
  props: Record<string, any>;
154
- targetRef: vue.Ref<any>;
160
+ targetRef: TemplateRef;
155
161
  }) => vue.VNodeChild) | undefined;
156
162
  } | undefined;
157
163
  } & {
@@ -161,7 +167,7 @@ declare const VSpeedDial: {
161
167
  "v-slot:activator"?: false | ((arg: {
162
168
  isActive: boolean;
163
169
  props: Record<string, any>;
164
- targetRef: vue.Ref<any>;
170
+ targetRef: TemplateRef;
165
171
  }) => vue.VNodeChild) | undefined;
166
172
  } & {
167
173
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -202,13 +208,13 @@ declare const VSpeedDial: {
202
208
  width?: string | number | undefined;
203
209
  height?: string | number | undefined;
204
210
  theme?: string | undefined;
205
- target?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
211
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
206
212
  contentClass?: any;
207
213
  opacity?: string | number | undefined;
208
214
  maxHeight?: string | number | undefined;
209
215
  maxWidth?: string | number | undefined;
210
216
  minHeight?: string | number | undefined;
211
- activator?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined;
217
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
212
218
  openOnClick?: boolean | undefined;
213
219
  openOnFocus?: boolean | undefined;
214
220
  contentProps?: any;
@@ -221,7 +227,7 @@ declare const VSpeedDial: {
221
227
  activator?: ((arg: {
222
228
  isActive: boolean;
223
229
  props: Record<string, any>;
224
- targetRef: vue.Ref<any>;
230
+ targetRef: TemplateRef;
225
231
  }) => vue.VNodeChild) | undefined;
226
232
  } | ((arg: {
227
233
  isActive: vue.Ref<boolean>;
@@ -233,7 +239,7 @@ declare const VSpeedDial: {
233
239
  activator?: false | ((arg: {
234
240
  isActive: boolean;
235
241
  props: Record<string, any>;
236
- targetRef: vue.Ref<any>;
242
+ targetRef: TemplateRef;
237
243
  }) => vue.VNodeChild) | undefined;
238
244
  } | undefined;
239
245
  } & {
@@ -243,7 +249,7 @@ declare const VSpeedDial: {
243
249
  "v-slot:activator"?: false | ((arg: {
244
250
  isActive: boolean;
245
251
  props: Record<string, any>;
246
- targetRef: vue.Ref<any>;
252
+ targetRef: TemplateRef;
247
253
  }) => vue.VNodeChild) | undefined;
248
254
  } & {
249
255
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -287,7 +293,7 @@ declare const VSpeedDial: {
287
293
  activator: (arg: {
288
294
  isActive: boolean;
289
295
  props: Record<string, any>;
290
- targetRef: vue.Ref<any>;
296
+ targetRef: TemplateRef;
291
297
  }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
292
298
  [key: string]: any;
293
299
  }>[];
@@ -333,13 +339,13 @@ declare const VSpeedDial: {
333
339
  width?: string | number | undefined;
334
340
  height?: string | number | undefined;
335
341
  theme?: string | undefined;
336
- target?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
342
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
337
343
  contentClass?: any;
338
344
  opacity?: string | number | undefined;
339
345
  maxHeight?: string | number | undefined;
340
346
  maxWidth?: string | number | undefined;
341
347
  minHeight?: string | number | undefined;
342
- activator?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined;
348
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
343
349
  openOnClick?: boolean | undefined;
344
350
  openOnFocus?: boolean | undefined;
345
351
  contentProps?: any;
@@ -352,7 +358,7 @@ declare const VSpeedDial: {
352
358
  activator?: ((arg: {
353
359
  isActive: boolean;
354
360
  props: Record<string, any>;
355
- targetRef: vue.Ref<any>;
361
+ targetRef: TemplateRef;
356
362
  }) => vue.VNodeChild) | undefined;
357
363
  } | ((arg: {
358
364
  isActive: vue.Ref<boolean>;
@@ -364,7 +370,7 @@ declare const VSpeedDial: {
364
370
  activator?: false | ((arg: {
365
371
  isActive: boolean;
366
372
  props: Record<string, any>;
367
- targetRef: vue.Ref<any>;
373
+ targetRef: TemplateRef;
368
374
  }) => vue.VNodeChild) | undefined;
369
375
  } | undefined;
370
376
  } & {
@@ -374,7 +380,7 @@ declare const VSpeedDial: {
374
380
  "v-slot:activator"?: false | ((arg: {
375
381
  isActive: boolean;
376
382
  props: Record<string, any>;
377
- targetRef: vue.Ref<any>;
383
+ targetRef: TemplateRef;
378
384
  }) => vue.VNodeChild) | undefined;
379
385
  } & {
380
386
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -448,13 +454,13 @@ declare const VSpeedDial: {
448
454
  width?: string | number | undefined;
449
455
  height?: string | number | undefined;
450
456
  theme?: string | undefined;
451
- target?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
457
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
452
458
  contentClass?: any;
453
459
  opacity?: string | number | undefined;
454
460
  maxHeight?: string | number | undefined;
455
461
  maxWidth?: string | number | undefined;
456
462
  minHeight?: string | number | undefined;
457
- activator?: Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined;
463
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
458
464
  openOnClick?: boolean | undefined;
459
465
  openOnFocus?: boolean | undefined;
460
466
  contentProps?: any;
@@ -467,7 +473,7 @@ declare const VSpeedDial: {
467
473
  activator?: ((arg: {
468
474
  isActive: boolean;
469
475
  props: Record<string, any>;
470
- targetRef: vue.Ref<any>;
476
+ targetRef: TemplateRef;
471
477
  }) => vue.VNodeChild) | undefined;
472
478
  } | ((arg: {
473
479
  isActive: vue.Ref<boolean>;
@@ -479,7 +485,7 @@ declare const VSpeedDial: {
479
485
  activator?: false | ((arg: {
480
486
  isActive: boolean;
481
487
  props: Record<string, any>;
482
- targetRef: vue.Ref<any>;
488
+ targetRef: TemplateRef;
483
489
  }) => vue.VNodeChild) | undefined;
484
490
  } | undefined;
485
491
  } & {
@@ -489,7 +495,7 @@ declare const VSpeedDial: {
489
495
  "v-slot:activator"?: false | ((arg: {
490
496
  isActive: boolean;
491
497
  props: Record<string, any>;
492
- targetRef: vue.Ref<any>;
498
+ targetRef: TemplateRef;
493
499
  }) => vue.VNodeChild) | undefined;
494
500
  } & {
495
501
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -535,7 +541,7 @@ declare const VSpeedDial: {
535
541
  activator: (arg: {
536
542
  isActive: boolean;
537
543
  props: Record<string, any>;
538
- targetRef: vue.Ref<any>;
544
+ targetRef: TemplateRef;
539
545
  }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
540
546
  [key: string]: any;
541
547
  }>[];
@@ -548,7 +554,7 @@ declare const VSpeedDial: {
548
554
  width: (StringConstructor | NumberConstructor)[];
549
555
  height: (StringConstructor | NumberConstructor)[];
550
556
  theme: StringConstructor;
551
- target: vue.PropType<Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined>;
557
+ target: vue.PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined>;
552
558
  disabled: BooleanConstructor;
553
559
  offset: {
554
560
  type: vue.PropType<NonNullable<string | number | number[] | undefined>>;
@@ -609,7 +615,7 @@ declare const VSpeedDial: {
609
615
  type: vue.PropType<NonNullable<Anchor>>;
610
616
  default: NonNullable<Anchor>;
611
617
  };
612
- activator: vue.PropType<Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined>;
618
+ activator: vue.PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined>;
613
619
  locationStrategy: Omit<{
614
620
  type: vue.PropType<"static" | ((data: LocationStrategyData, props: StrategyProps, contentStyles: vue.Ref<Record<string, string>>) => {
615
621
  updateLocation: (e: Event) => void;
@@ -689,7 +695,7 @@ declare const VSpeedDial: {
689
695
  width: (StringConstructor | NumberConstructor)[];
690
696
  height: (StringConstructor | NumberConstructor)[];
691
697
  theme: StringConstructor;
692
- target: vue.PropType<Element | (string & {}) | vue.ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined>;
698
+ target: vue.PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined>;
693
699
  disabled: BooleanConstructor;
694
700
  offset: {
695
701
  type: vue.PropType<NonNullable<string | number | number[] | undefined>>;
@@ -750,7 +756,7 @@ declare const VSpeedDial: {
750
756
  type: vue.PropType<NonNullable<Anchor>>;
751
757
  default: NonNullable<Anchor>;
752
758
  };
753
- activator: vue.PropType<Element | (string & {}) | vue.ComponentPublicInstance | "parent" | undefined>;
759
+ activator: vue.PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined>;
754
760
  locationStrategy: Omit<{
755
761
  type: vue.PropType<"static" | ((data: LocationStrategyData, props: StrategyProps, contentStyles: vue.Ref<Record<string, string>>) => {
756
762
  updateLocation: (e: Event) => void;
@@ -113,12 +113,18 @@ export const VStepper = genericComponent()({
113
113
  default: () => [hasHeader && _createVNode(VStepperHeader, {
114
114
  "key": "stepper-header"
115
115
  }, {
116
- default: () => [items.value.map((item, index) => _createVNode(_Fragment, null, [!!index && _createVNode(VDivider, null, null), _createVNode(VStepperItem, item, {
117
- default: slots[`header-item.${item.value}`] ?? slots.header,
118
- icon: slots.icon,
119
- title: slots.title,
120
- subtitle: slots.subtitle
121
- })]))]
116
+ default: () => [items.value.map((_ref2, index) => {
117
+ let {
118
+ raw,
119
+ ...item
120
+ } = _ref2;
121
+ return _createVNode(_Fragment, null, [!!index && _createVNode(VDivider, null, null), _createVNode(VStepperItem, item, {
122
+ default: slots[`header-item.${item.value}`] ?? slots.header,
123
+ icon: slots.icon,
124
+ title: slots.title,
125
+ subtitle: slots.subtitle
126
+ })]);
127
+ })]
122
128
  }), hasWindow && _createVNode(VStepperWindow, {
123
129
  "key": "stepper-window"
124
130
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"VStepper.mjs","names":["makeVStepperActionsProps","VStepperActions","VStepperHeader","VStepperItem","VStepperWindow","VStepperWindowItem","VDivider","makeVSheetProps","VSheet","provideDefaults","makeGroupProps","useGroup","computed","toRefs","genericComponent","getPropertyFromItem","only","propsFactory","useRender","VStepperSymbol","Symbol","for","makeVStepperProps","altLabels","Boolean","bgColor","String","editable","hideActions","items","type","Array","default","itemTitle","itemValue","mobile","nonLinear","flat","mandatory","selectedClass","VStepper","name","props","emits","v","setup","_ref","slots","_items","next","prev","selected","color","prevText","nextText","map","item","index","title","value","raw","activeIndex","findIndex","includes","id","disabled","length","sheetProps","filterProps","hasHeader","header","hasWindow","hasActions","actions","_createVNode","_mergeProps","class","style","_Fragment","icon","subtitle"],"sources":["../../../src/components/VStepper/VStepper.tsx"],"sourcesContent":["// Styles\nimport './VStepper.sass'\n\n// Components\nimport { makeVStepperActionsProps, VStepperActions } from './VStepperActions'\nimport { VStepperHeader } from './VStepperHeader'\nimport { VStepperItem } from './VStepperItem'\nimport { VStepperWindow } from './VStepperWindow'\nimport { VStepperWindowItem } from './VStepperWindowItem'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { computed, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { StepperItemSlot } from './VStepperItem'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VStepperSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-stepper')\n\nexport type StepperItem = string | Record<string, any>\n\nexport type VStepperSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VStepperSlots = {\n actions: VStepperSlot\n default: VStepperSlot\n header: StepperItem\n 'header-item': StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: never\n next: never\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeVStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n editable: Boolean,\n hideActions: Boolean,\n items: {\n type: Array as PropType<readonly StepperItem[]>,\n default: () => ([]),\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n mobile: Boolean,\n nonLinear: Boolean,\n flat: Boolean,\n\n ...makeGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-stepper-item--selected',\n }),\n ...makeVSheetProps(),\n ...only(makeVStepperActionsProps(), ['prevText', 'nextText']),\n}, 'VStepper')\n\nexport const VStepper = genericComponent<VStepperSlots>()({\n name: 'VStepper',\n\n props: makeVStepperProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const { items: _items, next, prev, selected } = useGroup(props, VStepperSymbol)\n const { color, editable, prevText, nextText } = toRefs(props)\n\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id))\n })\n const disabled = computed(() => {\n if (props.disabled) return props.disabled\n if (activeIndex.value === 0) return 'prev'\n if (activeIndex.value === _items.value.length - 1) return 'next'\n\n return false\n })\n\n provideDefaults({\n VStepperItem: {\n editable,\n prevText,\n nextText,\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n const hasHeader = !!(slots.header || props.items.length)\n const hasWindow = props.items.length > 0\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions)\n\n return (\n <VSheet\n { ...sheetProps }\n color={ props.bgColor }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': props.mobile,\n },\n props.class,\n ]}\n style={ props.style }\n >\n { hasHeader && (\n <VStepperHeader key=\"stepper-header\">\n { items.value.map((item, index) => (\n <>\n { !!index && (<VDivider />) }\n\n <VStepperItem\n { ...item }\n v-slots={{\n default: slots[`header-item.${item.value}`] ?? slots.header,\n icon: slots.icon,\n title: slots.title,\n subtitle: slots.subtitle,\n }}\n />\n </>\n ))}\n </VStepperHeader>\n )}\n\n { hasWindow && (\n <VStepperWindow key=\"stepper-window\">\n { items.value.map(item => (\n <VStepperWindowItem\n value={ item.value }\n v-slots={{\n default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item),\n }}\n />\n ))}\n </VStepperWindow>\n )}\n\n { slots.default?.({ prev, next }) }\n\n { hasActions && (\n slots.actions?.({ next, prev }) ?? (\n <VStepperActions\n key=\"stepper-actions\"\n onClick:prev={ prev }\n onClick:next={ next }\n v-slots={ slots }\n />\n )\n )}\n </VSheet>\n )\n })\n\n return {\n prev,\n next,\n }\n },\n})\n\nexport type VStepper = InstanceType<typeof VStepper>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VStepper.mjs","names":["makeVStepperActionsProps","VStepperActions","VStepperHeader","VStepperItem","VStepperWindow","VStepperWindowItem","VDivider","makeVSheetProps","VSheet","provideDefaults","makeGroupProps","useGroup","computed","toRefs","genericComponent","getPropertyFromItem","only","propsFactory","useRender","VStepperSymbol","Symbol","for","makeVStepperProps","altLabels","Boolean","bgColor","String","editable","hideActions","items","type","Array","default","itemTitle","itemValue","mobile","nonLinear","flat","mandatory","selectedClass","VStepper","name","props","emits","v","setup","_ref","slots","_items","next","prev","selected","color","prevText","nextText","map","item","index","title","value","raw","activeIndex","findIndex","includes","id","disabled","length","sheetProps","filterProps","hasHeader","header","hasWindow","hasActions","actions","_createVNode","_mergeProps","class","style","_ref2","_Fragment","icon","subtitle"],"sources":["../../../src/components/VStepper/VStepper.tsx"],"sourcesContent":["// Styles\nimport './VStepper.sass'\n\n// Components\nimport { makeVStepperActionsProps, VStepperActions } from './VStepperActions'\nimport { VStepperHeader } from './VStepperHeader'\nimport { VStepperItem } from './VStepperItem'\nimport { VStepperWindow } from './VStepperWindow'\nimport { VStepperWindowItem } from './VStepperWindowItem'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { computed, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { StepperItemSlot } from './VStepperItem'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VStepperSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-stepper')\n\nexport type StepperItem = string | Record<string, any>\n\nexport type VStepperSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VStepperSlots = {\n actions: VStepperSlot\n default: VStepperSlot\n header: StepperItem\n 'header-item': StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: never\n next: never\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeVStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n editable: Boolean,\n hideActions: Boolean,\n items: {\n type: Array as PropType<readonly StepperItem[]>,\n default: () => ([]),\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n mobile: Boolean,\n nonLinear: Boolean,\n flat: Boolean,\n\n ...makeGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-stepper-item--selected',\n }),\n ...makeVSheetProps(),\n ...only(makeVStepperActionsProps(), ['prevText', 'nextText']),\n}, 'VStepper')\n\nexport const VStepper = genericComponent<VStepperSlots>()({\n name: 'VStepper',\n\n props: makeVStepperProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const { items: _items, next, prev, selected } = useGroup(props, VStepperSymbol)\n const { color, editable, prevText, nextText } = toRefs(props)\n\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id))\n })\n const disabled = computed(() => {\n if (props.disabled) return props.disabled\n if (activeIndex.value === 0) return 'prev'\n if (activeIndex.value === _items.value.length - 1) return 'next'\n\n return false\n })\n\n provideDefaults({\n VStepperItem: {\n editable,\n prevText,\n nextText,\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n const hasHeader = !!(slots.header || props.items.length)\n const hasWindow = props.items.length > 0\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions)\n\n return (\n <VSheet\n { ...sheetProps }\n color={ props.bgColor }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': props.mobile,\n },\n props.class,\n ]}\n style={ props.style }\n >\n { hasHeader && (\n <VStepperHeader key=\"stepper-header\">\n { items.value.map(({ raw, ...item }, index) => (\n <>\n { !!index && (<VDivider />) }\n\n <VStepperItem\n { ...item }\n v-slots={{\n default: slots[`header-item.${item.value}`] ?? slots.header,\n icon: slots.icon,\n title: slots.title,\n subtitle: slots.subtitle,\n }}\n />\n </>\n ))}\n </VStepperHeader>\n )}\n\n { hasWindow && (\n <VStepperWindow key=\"stepper-window\">\n { items.value.map(item => (\n <VStepperWindowItem\n value={ item.value }\n v-slots={{\n default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item),\n }}\n />\n ))}\n </VStepperWindow>\n )}\n\n { slots.default?.({ prev, next }) }\n\n { hasActions && (\n slots.actions?.({ next, prev }) ?? (\n <VStepperActions\n key=\"stepper-actions\"\n onClick:prev={ prev }\n onClick:next={ next }\n v-slots={ slots }\n />\n )\n )}\n </VSheet>\n )\n })\n\n return {\n prev,\n next,\n }\n },\n})\n\nexport type VStepper = InstanceType<typeof VStepper>\n"],"mappings":"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","ignoreList":[]}
@@ -3,12 +3,42 @@
3
3
  align-self: stretch;
4
4
  display: inline-flex;
5
5
  flex: none;
6
+ outline: none;
6
7
  opacity: var(--v-medium-emphasis-opacity);
7
8
  padding: 1.5rem;
9
+ position: relative;
8
10
  transition-duration: 0.2s;
9
11
  transition-property: opacity;
10
12
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
11
13
  }
14
+ .v-stepper-item:hover > .v-stepper-item__overlay {
15
+ opacity: calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier));
16
+ }
17
+ .v-stepper-item:focus-visible > .v-stepper-item__overlay {
18
+ opacity: calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier));
19
+ }
20
+ @supports not selector(:focus-visible) {
21
+ .v-stepper-item:focus > .v-stepper-item__overlay {
22
+ opacity: calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier));
23
+ }
24
+ }
25
+ .v-stepper-item--active > .v-stepper-item__overlay, .v-stepper-item[aria-haspopup=menu][aria-expanded=true] > .v-stepper-item__overlay {
26
+ opacity: calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier));
27
+ }
28
+ .v-stepper-item--active:hover > .v-stepper-item__overlay, .v-stepper-item[aria-haspopup=menu][aria-expanded=true]:hover > .v-stepper-item__overlay {
29
+ opacity: calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier));
30
+ }
31
+ .v-stepper-item--active:focus-visible > .v-stepper-item__overlay, .v-stepper-item[aria-haspopup=menu][aria-expanded=true]:focus-visible > .v-stepper-item__overlay {
32
+ opacity: calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier));
33
+ }
34
+ @supports not selector(:focus-visible) {
35
+ .v-stepper-item--active:focus > .v-stepper-item__overlay, .v-stepper-item[aria-haspopup=menu][aria-expanded=true]:focus > .v-stepper-item__overlay {
36
+ opacity: calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier));
37
+ }
38
+ }
39
+ .v-stepper--non-linear .v-stepper-item {
40
+ opacity: var(--v-high-emphasis-opacity);
41
+ }
12
42
  .v-stepper-item--selected {
13
43
  opacity: 1;
14
44
  }
@@ -64,4 +94,21 @@
64
94
  }
65
95
  .v-stepper--mobile .v-stepper-item__subtitle {
66
96
  display: none;
97
+ }
98
+
99
+ .v-stepper-item__overlay {
100
+ background-color: currentColor;
101
+ border-radius: inherit;
102
+ opacity: 0;
103
+ transition: opacity 0.2s ease-in-out;
104
+ }
105
+
106
+ .v-stepper-item__overlay,
107
+ .v-stepper-item__underlay {
108
+ position: absolute;
109
+ top: 0;
110
+ left: 0;
111
+ width: 100%;
112
+ height: 100%;
113
+ pointer-events: none;
67
114
  }
@@ -5,7 +5,8 @@ import "./VStepperItem.css";
5
5
  // Components
6
6
  import { VAvatar } from "../VAvatar/VAvatar.mjs";
7
7
  import { VIcon } from "../VIcon/VIcon.mjs"; // Composables
8
- import { makeGroupItemProps, useGroupItem } from "../../composables/group.mjs"; // Directives
8
+ import { makeGroupItemProps, useGroupItem } from "../../composables/group.mjs";
9
+ import { genOverlays } from "../../composables/variant.mjs"; // Directives
9
10
  import { Ripple } from "../../directives/ripple/index.mjs"; // Utilities
10
11
  import { computed } from 'vue';
11
12
  import { VStepperSymbol } from "./VStepper.mjs";
@@ -56,13 +57,14 @@ export const VStepperItem = genericComponent()({
56
57
  const group = useGroupItem(props, VStepperSymbol, true);
57
58
  const step = computed(() => group?.value.value ?? props.value);
58
59
  const isValid = computed(() => props.rules.every(handler => handler() === true));
60
+ const isClickable = computed(() => !props.disabled && props.editable);
59
61
  const canEdit = computed(() => !props.disabled && props.editable);
60
62
  const hasError = computed(() => props.error || !isValid.value);
61
63
  const hasCompleted = computed(() => props.complete || props.rules.length > 0 && isValid.value);
62
64
  const icon = computed(() => {
63
65
  if (hasError.value) return props.errorIcon;
64
66
  if (hasCompleted.value) return props.completeIcon;
65
- if (props.editable) return props.editIcon;
67
+ if (group.isSelected.value && props.editable) return props.editIcon;
66
68
  return props.icon;
67
69
  });
68
70
  const slotProps = computed(() => ({
@@ -89,7 +91,7 @@ export const VStepperItem = genericComponent()({
89
91
  }, group?.selectedClass.value],
90
92
  "disabled": !props.editable,
91
93
  "onClick": onClick
92
- }, [_createVNode(VAvatar, {
94
+ }, [isClickable.value && genOverlays(true, 'v-stepper-item'), _createVNode(VAvatar, {
93
95
  "key": "stepper-avatar",
94
96
  "class": "v-stepper-item__avatar",
95
97
  "color": hasColor ? props.color : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"VStepperItem.mjs","names":["VAvatar","VIcon","makeGroupItemProps","useGroupItem","Ripple","computed","VStepperSymbol","genericComponent","propsFactory","useRender","makeVStepperItemProps","color","String","title","subtitle","complete","Boolean","completeIcon","type","default","editable","editIcon","error","errorIcon","icon","ripple","Object","rules","Array","VStepperItem","name","directives","props","emits","val","setup","_ref","slots","group","step","value","isValid","every","handler","canEdit","disabled","hasError","hasCompleted","length","slotProps","hasColor","isSelected","hasTitle","hasSubtitle","onClick","toggle","_withDirectives","_createVNode","selectedClass","undefined","_resolveDirective"],"sources":["../../../src/components/VStepper/VStepperItem.tsx"],"sourcesContent":["// Styles\nimport './VStepperItem.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VIcon } from '@/components/VIcon/VIcon'\n\n// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { VStepperSymbol } from './VStepper'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type StepperItemSlot = {\n canEdit: boolean\n hasError: boolean\n hasCompleted: boolean\n title?: string | number\n subtitle?: string | number\n step: any\n}\n\nexport type VStepperItemSlots = {\n default: StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n}\n\nexport type ValidationRule = () => string | boolean\n\nexport const makeVStepperItemProps = propsFactory({\n color: String,\n title: String,\n subtitle: String,\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete',\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit',\n },\n error: Boolean,\n errorIcon: {\n type: String,\n default: '$error',\n },\n icon: String,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n default: () => ([]),\n },\n\n ...makeGroupItemProps(),\n}, 'VStepperItem')\n\nexport const VStepperItem = genericComponent<VStepperItemSlots>()({\n name: 'VStepperItem',\n\n directives: { Ripple },\n\n props: makeVStepperItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const group = useGroupItem(props, VStepperSymbol, true)\n const step = computed(() => group?.value.value ?? props.value)\n const isValid = computed(() => props.rules.every(handler => handler() === true))\n const canEdit = computed(() => !props.disabled && props.editable)\n const hasError = computed(() => props.error || !isValid.value)\n const hasCompleted = computed(() => props.complete || (props.rules.length > 0 && isValid.value))\n const icon = computed(() => {\n if (hasError.value) return props.errorIcon\n if (hasCompleted.value) return props.completeIcon\n if (props.editable) return props.editIcon\n\n return props.icon\n })\n const slotProps = computed(() => ({\n canEdit: canEdit.value,\n hasError: hasError.value,\n hasCompleted: hasCompleted.value,\n title: props.title,\n subtitle: props.subtitle,\n step: step.value,\n value: props.value,\n }))\n\n useRender(() => {\n const hasColor = (\n !group ||\n group.isSelected.value ||\n hasCompleted.value ||\n canEdit.value\n ) && (\n !hasError.value &&\n !props.disabled\n )\n const hasTitle = !!(props.title != null || slots.title)\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle)\n\n function onClick () {\n group?.toggle()\n }\n\n return (\n <button\n class={[\n 'v-stepper-item',\n {\n 'v-stepper-item--complete': hasCompleted.value,\n 'v-stepper-item--disabled': props.disabled,\n 'v-stepper-item--error': hasError.value,\n },\n group?.selectedClass.value,\n ]}\n disabled={ !props.editable }\n v-ripple={[\n props.ripple && props.editable,\n null,\n null,\n ]}\n onClick={ onClick }\n >\n <VAvatar\n key=\"stepper-avatar\"\n class=\"v-stepper-item__avatar\"\n color={ hasColor ? props.color : undefined }\n size={ 24 }\n >\n { slots.icon?.(slotProps.value) ?? (\n icon.value ? (\n <VIcon icon={ icon.value }></VIcon>\n ) : step.value\n )}\n </VAvatar>\n\n <div class=\"v-stepper-item__content\">\n { hasTitle && (\n <div\n key=\"title\"\n class=\"v-stepper-item__title\"\n >\n { slots.title?.(slotProps.value) ?? props.title }\n </div>\n )}\n\n { hasSubtitle && (\n <div\n key=\"subtitle\"\n class=\"v-stepper-item__subtitle\"\n >\n { slots.subtitle?.(slotProps.value) ?? props.subtitle }\n </div>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n </button>\n )\n })\n return {}\n },\n})\n\nexport type VStepperItem = InstanceType<typeof VStepperItem>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VStepperItem.mjs","names":["VAvatar","VIcon","makeGroupItemProps","useGroupItem","genOverlays","Ripple","computed","VStepperSymbol","genericComponent","propsFactory","useRender","makeVStepperItemProps","color","String","title","subtitle","complete","Boolean","completeIcon","type","default","editable","editIcon","error","errorIcon","icon","ripple","Object","rules","Array","VStepperItem","name","directives","props","emits","val","setup","_ref","slots","group","step","value","isValid","every","handler","isClickable","disabled","canEdit","hasError","hasCompleted","length","isSelected","slotProps","hasColor","hasTitle","hasSubtitle","onClick","toggle","_withDirectives","_createVNode","selectedClass","undefined","_resolveDirective"],"sources":["../../../src/components/VStepper/VStepperItem.tsx"],"sourcesContent":["// Styles\nimport './VStepperItem.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VIcon } from '@/components/VIcon/VIcon'\n\n// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { genOverlays } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { VStepperSymbol } from './VStepper'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type StepperItemSlot = {\n canEdit: boolean\n hasError: boolean\n hasCompleted: boolean\n title?: string | number\n subtitle?: string | number\n step: any\n}\n\nexport type VStepperItemSlots = {\n default: StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n}\n\nexport type ValidationRule = () => string | boolean\n\nexport const makeVStepperItemProps = propsFactory({\n color: String,\n title: String,\n subtitle: String,\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete',\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit',\n },\n error: Boolean,\n errorIcon: {\n type: String,\n default: '$error',\n },\n icon: String,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n default: () => ([]),\n },\n\n ...makeGroupItemProps(),\n}, 'VStepperItem')\n\nexport const VStepperItem = genericComponent<VStepperItemSlots>()({\n name: 'VStepperItem',\n\n directives: { Ripple },\n\n props: makeVStepperItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const group = useGroupItem(props, VStepperSymbol, true)\n const step = computed(() => group?.value.value ?? props.value)\n const isValid = computed(() => props.rules.every(handler => handler() === true))\n const isClickable = computed(() => !props.disabled && props.editable)\n const canEdit = computed(() => !props.disabled && props.editable)\n const hasError = computed(() => props.error || !isValid.value)\n const hasCompleted = computed(() => props.complete || (props.rules.length > 0 && isValid.value))\n const icon = computed(() => {\n if (hasError.value) return props.errorIcon\n if (hasCompleted.value) return props.completeIcon\n if (group.isSelected.value && props.editable) return props.editIcon\n\n return props.icon\n })\n const slotProps = computed(() => ({\n canEdit: canEdit.value,\n hasError: hasError.value,\n hasCompleted: hasCompleted.value,\n title: props.title,\n subtitle: props.subtitle,\n step: step.value,\n value: props.value,\n }))\n\n useRender(() => {\n const hasColor = (\n !group ||\n group.isSelected.value ||\n hasCompleted.value ||\n canEdit.value\n ) && (\n !hasError.value &&\n !props.disabled\n )\n const hasTitle = !!(props.title != null || slots.title)\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle)\n\n function onClick () {\n group?.toggle()\n }\n\n return (\n <button\n class={[\n 'v-stepper-item',\n {\n 'v-stepper-item--complete': hasCompleted.value,\n 'v-stepper-item--disabled': props.disabled,\n 'v-stepper-item--error': hasError.value,\n },\n group?.selectedClass.value,\n ]}\n disabled={ !props.editable }\n v-ripple={[\n props.ripple && props.editable,\n null,\n null,\n ]}\n onClick={ onClick }\n >\n { isClickable.value && genOverlays(true, 'v-stepper-item') }\n\n <VAvatar\n key=\"stepper-avatar\"\n class=\"v-stepper-item__avatar\"\n color={ hasColor ? props.color : undefined }\n size={ 24 }\n >\n { slots.icon?.(slotProps.value) ?? (\n icon.value ? (\n <VIcon icon={ icon.value }></VIcon>\n ) : step.value\n )}\n </VAvatar>\n\n <div class=\"v-stepper-item__content\">\n { hasTitle && (\n <div\n key=\"title\"\n class=\"v-stepper-item__title\"\n >\n { slots.title?.(slotProps.value) ?? props.title }\n </div>\n )}\n\n { hasSubtitle && (\n <div\n key=\"subtitle\"\n class=\"v-stepper-item__subtitle\"\n >\n { slots.subtitle?.(slotProps.value) ?? props.subtitle }\n </div>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n </button>\n )\n })\n return {}\n },\n})\n\nexport type VStepperItem = InstanceType<typeof VStepperItem>\n"],"mappings":"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","ignoreList":[]}
@@ -8,12 +8,19 @@
8
8
  align-self: stretch
9
9
  display: inline-flex
10
10
  flex: none
11
+ outline: none
11
12
  opacity: $stepper-item-opacity
12
13
  padding: $stepper-item-padding
14
+ position: relative
13
15
  transition-duration: $stepper-item-transition-duration
14
16
  transition-property: $stepper-item-transition-property
15
17
  transition-timing-function: $stepper-item-transition-timing-function
16
18
 
19
+ @include tools.states('.v-stepper-item__overlay')
20
+
21
+ .v-stepper--non-linear &
22
+ opacity: var(--v-high-emphasis-opacity)
23
+
17
24
  &--selected
18
25
  opacity: 1
19
26
 
@@ -71,3 +78,14 @@
71
78
 
72
79
  .v-stepper--mobile &
73
80
  display: none
81
+
82
+ .v-stepper-item__overlay
83
+ background-color: currentColor
84
+ border-radius: inherit
85
+ opacity: 0
86
+ transition: opacity .2s ease-in-out
87
+
88
+ .v-stepper-item__overlay,
89
+ .v-stepper-item__underlay
90
+ @include tools.absolute()
91
+ pointer-events: none
@@ -41,7 +41,8 @@ export const VStepperWindow = genericComponent()({
41
41
  }, windowProps, {
42
42
  "modelValue": model.value,
43
43
  "onUpdate:modelValue": $event => model.value = $event,
44
- "class": "v-stepper-window",
44
+ "class": ['v-stepper-window', props.class],
45
+ "style": props.style,
45
46
  "mandatory": false,
46
47
  "touch": false
47
48
  }), slots);
@@ -1 +1 @@
1
- {"version":3,"file":"VStepperWindow.mjs","names":["makeVWindowProps","VWindow","useProxiedModel","computed","inject","genericComponent","omit","propsFactory","useRender","VStepperSymbol","Symbol","for","makeVStepperWindowProps","VStepperWindow","name","props","emits","v","setup","_ref","slots","group","_model","model","get","value","items","find","item","selected","includes","id","set","val","windowProps","filterProps","_createVNode","_mergeProps","$event"],"sources":["../../../src/components/VStepper/VStepperWindow.tsx"],"sourcesContent":["// Components\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VStepperSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-stepper')\n\nexport const makeVStepperWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory']),\n}, 'VStepperWindow')\n\nexport const VStepperWindow = genericComponent()({\n name: 'VStepperWindow',\n\n props: makeVStepperWindowProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const group = inject(VStepperSymbol, null)\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get () {\n // Always return modelValue if defined\n // or if not within a VStepper group\n if (_model.value != null || !group) return _model.value\n\n // If inside of a VStepper, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value\n },\n set (val) {\n _model.value = val\n },\n })\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n <VWindow\n _as=\"VStepperWindow\"\n { ...windowProps }\n v-model={ model.value }\n class=\"v-stepper-window\"\n mandatory={ false }\n touch={ false }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperWindow = InstanceType<typeof VStepperWindow>\n"],"mappings":";AAAA;AAAA,SACSA,gBAAgB,EAAEC,OAAO,kCAElC;AAAA,SACSC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAExD;AAIA,OAAO,MAAMC,cAA0C,GAAGC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAEzF,OAAO,MAAMC,uBAAuB,GAAGL,YAAY,CAAC;EAClD,GAAGD,IAAI,CAACN,gBAAgB,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC;AACxG,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAMa,cAAc,GAAGR,gBAAgB,CAAC,CAAC,CAAC;EAC/CS,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAEH,uBAAuB,CAAC,CAAC;EAEhCI,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGjB,MAAM,CAACK,cAAc,EAAE,IAAI,CAAC;IAC1C,MAAMa,MAAM,GAAGpB,eAAe,CAACa,KAAK,EAAE,YAAY,CAAC;IAEnD,MAAMQ,KAAK,GAAGpB,QAAQ,CAAC;MACrBqB,GAAGA,CAAA,EAAI;QACL;QACA;QACA,IAAIF,MAAM,CAACG,KAAK,IAAI,IAAI,IAAI,CAACJ,KAAK,EAAE,OAAOC,MAAM,CAACG,KAAK;;QAEvD;QACA;QACA,OAAOJ,KAAK,CAACK,KAAK,CAACD,KAAK,CAACE,IAAI,CAACC,IAAI,IAAIP,KAAK,CAACQ,QAAQ,CAACJ,KAAK,CAACK,QAAQ,CAACF,IAAI,CAACG,EAAE,CAAC,CAAC,EAAEN,KAAK;MACtF,CAAC;MACDO,GAAGA,CAAEC,GAAG,EAAE;QACRX,MAAM,CAACG,KAAK,GAAGQ,GAAG;MACpB;IACF,CAAC,CAAC;IAEFzB,SAAS,CAAC,MAAM;MACd,MAAM0B,WAAW,GAAGjC,OAAO,CAACkC,WAAW,CAACpB,KAAK,CAAC;MAE9C,OAAAqB,YAAA,CAAAnC,OAAA,EAAAoC,WAAA;QAAA;MAAA,GAGSH,WAAW;QAAA,cACNX,KAAK,CAACE,KAAK;QAAA,uBAAAa,MAAA,IAAXf,KAAK,CAACE,KAAK,GAAAa,MAAA;QAAA;QAAA,aAET,KAAK;QAAA,SACT;MAAK,IACHlB,KAAK;IAGrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VStepperWindow.mjs","names":["makeVWindowProps","VWindow","useProxiedModel","computed","inject","genericComponent","omit","propsFactory","useRender","VStepperSymbol","Symbol","for","makeVStepperWindowProps","VStepperWindow","name","props","emits","v","setup","_ref","slots","group","_model","model","get","value","items","find","item","selected","includes","id","set","val","windowProps","filterProps","_createVNode","_mergeProps","$event","class","style"],"sources":["../../../src/components/VStepper/VStepperWindow.tsx"],"sourcesContent":["// Components\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VStepperSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-stepper')\n\nexport const makeVStepperWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory']),\n}, 'VStepperWindow')\n\nexport const VStepperWindow = genericComponent()({\n name: 'VStepperWindow',\n\n props: makeVStepperWindowProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const group = inject(VStepperSymbol, null)\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get () {\n // Always return modelValue if defined\n // or if not within a VStepper group\n if (_model.value != null || !group) return _model.value\n\n // If inside of a VStepper, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value\n },\n set (val) {\n _model.value = val\n },\n })\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n <VWindow\n _as=\"VStepperWindow\"\n { ...windowProps }\n v-model={ model.value }\n class={[\n 'v-stepper-window',\n props.class,\n ]}\n style={ props.style }\n mandatory={ false }\n touch={ false }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperWindow = InstanceType<typeof VStepperWindow>\n"],"mappings":";AAAA;AAAA,SACSA,gBAAgB,EAAEC,OAAO,kCAElC;AAAA,SACSC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAExD;AAIA,OAAO,MAAMC,cAA0C,GAAGC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAEzF,OAAO,MAAMC,uBAAuB,GAAGL,YAAY,CAAC;EAClD,GAAGD,IAAI,CAACN,gBAAgB,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC;AACxG,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAMa,cAAc,GAAGR,gBAAgB,CAAC,CAAC,CAAC;EAC/CS,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAEH,uBAAuB,CAAC,CAAC;EAEhCI,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGjB,MAAM,CAACK,cAAc,EAAE,IAAI,CAAC;IAC1C,MAAMa,MAAM,GAAGpB,eAAe,CAACa,KAAK,EAAE,YAAY,CAAC;IAEnD,MAAMQ,KAAK,GAAGpB,QAAQ,CAAC;MACrBqB,GAAGA,CAAA,EAAI;QACL;QACA;QACA,IAAIF,MAAM,CAACG,KAAK,IAAI,IAAI,IAAI,CAACJ,KAAK,EAAE,OAAOC,MAAM,CAACG,KAAK;;QAEvD;QACA;QACA,OAAOJ,KAAK,CAACK,KAAK,CAACD,KAAK,CAACE,IAAI,CAACC,IAAI,IAAIP,KAAK,CAACQ,QAAQ,CAACJ,KAAK,CAACK,QAAQ,CAACF,IAAI,CAACG,EAAE,CAAC,CAAC,EAAEN,KAAK;MACtF,CAAC;MACDO,GAAGA,CAAEC,GAAG,EAAE;QACRX,MAAM,CAACG,KAAK,GAAGQ,GAAG;MACpB;IACF,CAAC,CAAC;IAEFzB,SAAS,CAAC,MAAM;MACd,MAAM0B,WAAW,GAAGjC,OAAO,CAACkC,WAAW,CAACpB,KAAK,CAAC;MAE9C,OAAAqB,YAAA,CAAAnC,OAAA,EAAAoC,WAAA;QAAA;MAAA,GAGSH,WAAW;QAAA,cACNX,KAAK,CAACE,KAAK;QAAA,uBAAAa,MAAA,IAAXf,KAAK,CAACE,KAAK,GAAAa,MAAA;QAAA,SACd,CACL,kBAAkB,EAClBvB,KAAK,CAACwB,KAAK,CACZ;QAAA,SACOxB,KAAK,CAACyB,KAAK;QAAA,aACP,KAAK;QAAA,SACT;MAAK,IACHpB,KAAK;IAGrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -17,7 +17,8 @@ export const VStepperWindowItem = genericComponent()({
17
17
  return _createVNode(VWindowItem, _mergeProps({
18
18
  "_as": "VStepperWindowItem"
19
19
  }, windowItemProps, {
20
- "class": "v-stepper-window-item"
20
+ "class": ['v-stepper-window-item', props.class],
21
+ "style": props.style
21
22
  }), slots);
22
23
  });
23
24
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"VStepperWindowItem.mjs","names":["makeVWindowItemProps","VWindowItem","genericComponent","propsFactory","useRender","makeVStepperWindowItemProps","VStepperWindowItem","name","props","setup","_ref","slots","windowItemProps","filterProps","_createVNode","_mergeProps"],"sources":["../../../src/components/VStepper/VStepperWindowItem.tsx"],"sourcesContent":["// Components\nimport { makeVWindowItemProps, VWindowItem } from '@/components/VWindow/VWindowItem'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVStepperWindowItemProps = propsFactory({\n ...makeVWindowItemProps(),\n}, 'VStepperWindowItem')\n\nexport const VStepperWindowItem = genericComponent()({\n name: 'VStepperWindowItem',\n\n props: makeVStepperWindowItemProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props)\n\n return (\n <VWindowItem\n _as=\"VStepperWindowItem\"\n { ...windowItemProps }\n class=\"v-stepper-window-item\"\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperWindowItem = InstanceType<typeof VStepperWindowItem>\n"],"mappings":";AAAA;AAAA,SACSA,oBAAoB,EAAEC,WAAW,sCAE1C;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,2BAA2B,GAAGF,YAAY,CAAC;EACtD,GAAGH,oBAAoB,CAAC;AAC1B,CAAC,EAAE,oBAAoB,CAAC;AAExB,OAAO,MAAMM,kBAAkB,GAAGJ,gBAAgB,CAAC,CAAC,CAAC;EACnDK,IAAI,EAAE,oBAAoB;EAE1BC,KAAK,EAAEH,2BAA2B,CAAC,CAAC;EAEpCI,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBN,SAAS,CAAC,MAAM;MACd,MAAMQ,eAAe,GAAGX,WAAW,CAACY,WAAW,CAACL,KAAK,CAAC;MAEtD,OAAAM,YAAA,CAAAb,WAAA,EAAAc,WAAA;QAAA;MAAA,GAGSH,eAAe;QAAA;MAAA,IAEVD,KAAK;IAGrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VStepperWindowItem.mjs","names":["makeVWindowItemProps","VWindowItem","genericComponent","propsFactory","useRender","makeVStepperWindowItemProps","VStepperWindowItem","name","props","setup","_ref","slots","windowItemProps","filterProps","_createVNode","_mergeProps","class","style"],"sources":["../../../src/components/VStepper/VStepperWindowItem.tsx"],"sourcesContent":["// Components\nimport { makeVWindowItemProps, VWindowItem } from '@/components/VWindow/VWindowItem'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVStepperWindowItemProps = propsFactory({\n ...makeVWindowItemProps(),\n}, 'VStepperWindowItem')\n\nexport const VStepperWindowItem = genericComponent()({\n name: 'VStepperWindowItem',\n\n props: makeVStepperWindowItemProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props)\n\n return (\n <VWindowItem\n _as=\"VStepperWindowItem\"\n { ...windowItemProps }\n class={[\n 'v-stepper-window-item',\n props.class,\n ]}\n style={ props.style }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperWindowItem = InstanceType<typeof VStepperWindowItem>\n"],"mappings":";AAAA;AAAA,SACSA,oBAAoB,EAAEC,WAAW,sCAE1C;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,2BAA2B,GAAGF,YAAY,CAAC;EACtD,GAAGH,oBAAoB,CAAC;AAC1B,CAAC,EAAE,oBAAoB,CAAC;AAExB,OAAO,MAAMM,kBAAkB,GAAGJ,gBAAgB,CAAC,CAAC,CAAC;EACnDK,IAAI,EAAE,oBAAoB;EAE1BC,KAAK,EAAEH,2BAA2B,CAAC,CAAC;EAEpCI,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBN,SAAS,CAAC,MAAM;MACd,MAAMQ,eAAe,GAAGX,WAAW,CAACY,WAAW,CAACL,KAAK,CAAC;MAEtD,OAAAM,YAAA,CAAAb,WAAA,EAAAc,WAAA;QAAA;MAAA,GAGSH,eAAe;QAAA,SACb,CACL,uBAAuB,EACvBJ,KAAK,CAACQ,KAAK,CACZ;QAAA,SACOR,KAAK,CAACS;MAAK,IACTN,KAAK;IAGrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -41,7 +41,8 @@ export const VTabsWindow = genericComponent()({
41
41
  }, windowProps, {
42
42
  "modelValue": model.value,
43
43
  "onUpdate:modelValue": $event => model.value = $event,
44
- "class": "v-tabs-window",
44
+ "class": ['v-tabs-window', props.class],
45
+ "style": props.style,
45
46
  "mandatory": false,
46
47
  "touch": false
47
48
  }), slots);
@@ -1 +1 @@
1
- {"version":3,"file":"VTabsWindow.mjs","names":["makeVWindowProps","VWindow","useProxiedModel","computed","inject","genericComponent","omit","propsFactory","useRender","VTabsSymbol","makeVTabsWindowProps","VTabsWindow","name","props","emits","v","setup","_ref","slots","group","_model","model","get","value","items","find","item","selected","includes","id","set","val","windowProps","filterProps","_createVNode","_mergeProps","$event"],"sources":["../../../src/components/VTabs/VTabsWindow.tsx"],"sourcesContent":["// Components\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTabsSymbol } from './shared'\n\nexport const makeVTabsWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory']),\n}, 'VTabsWindow')\n\nexport const VTabsWindow = genericComponent()({\n name: 'VTabsWindow',\n\n props: makeVTabsWindowProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const group = inject(VTabsSymbol, null)\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get () {\n // Always return modelValue if defined\n // or if not within a VTabs group\n if (_model.value != null || !group) return _model.value\n\n // If inside of a VTabs, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value\n },\n set (val) {\n _model.value = val\n },\n })\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n <VWindow\n _as=\"VTabsWindow\"\n { ...windowProps }\n v-model={ model.value }\n class=\"v-tabs-window\"\n mandatory={ false }\n touch={ false }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VTabsWindow = InstanceType<typeof VTabsWindow>\n"],"mappings":";AAAA;AAAA,SACSA,gBAAgB,EAAEC,OAAO,kCAElC;AAAA,SACSC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAExD;AAAA,SACSC,WAAW;AAEpB,OAAO,MAAMC,oBAAoB,GAAGH,YAAY,CAAC;EAC/C,GAAGD,IAAI,CAACN,gBAAgB,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC;AACxG,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,MAAMW,WAAW,GAAGN,gBAAgB,CAAC,CAAC,CAAC;EAC5CO,IAAI,EAAE,aAAa;EAEnBC,KAAK,EAAEH,oBAAoB,CAAC,CAAC;EAE7BI,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGf,MAAM,CAACK,WAAW,EAAE,IAAI,CAAC;IACvC,MAAMW,MAAM,GAAGlB,eAAe,CAACW,KAAK,EAAE,YAAY,CAAC;IAEnD,MAAMQ,KAAK,GAAGlB,QAAQ,CAAC;MACrBmB,GAAGA,CAAA,EAAI;QACL;QACA;QACA,IAAIF,MAAM,CAACG,KAAK,IAAI,IAAI,IAAI,CAACJ,KAAK,EAAE,OAAOC,MAAM,CAACG,KAAK;;QAEvD;QACA;QACA,OAAOJ,KAAK,CAACK,KAAK,CAACD,KAAK,CAACE,IAAI,CAACC,IAAI,IAAIP,KAAK,CAACQ,QAAQ,CAACJ,KAAK,CAACK,QAAQ,CAACF,IAAI,CAACG,EAAE,CAAC,CAAC,EAAEN,KAAK;MACtF,CAAC;MACDO,GAAGA,CAAEC,GAAG,EAAE;QACRX,MAAM,CAACG,KAAK,GAAGQ,GAAG;MACpB;IACF,CAAC,CAAC;IAEFvB,SAAS,CAAC,MAAM;MACd,MAAMwB,WAAW,GAAG/B,OAAO,CAACgC,WAAW,CAACpB,KAAK,CAAC;MAE9C,OAAAqB,YAAA,CAAAjC,OAAA,EAAAkC,WAAA;QAAA;MAAA,GAGSH,WAAW;QAAA,cACNX,KAAK,CAACE,KAAK;QAAA,uBAAAa,MAAA,IAAXf,KAAK,CAACE,KAAK,GAAAa,MAAA;QAAA;QAAA,aAET,KAAK;QAAA,SACT;MAAK,IACHlB,KAAK;IAGrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VTabsWindow.mjs","names":["makeVWindowProps","VWindow","useProxiedModel","computed","inject","genericComponent","omit","propsFactory","useRender","VTabsSymbol","makeVTabsWindowProps","VTabsWindow","name","props","emits","v","setup","_ref","slots","group","_model","model","get","value","items","find","item","selected","includes","id","set","val","windowProps","filterProps","_createVNode","_mergeProps","$event","class","style"],"sources":["../../../src/components/VTabs/VTabsWindow.tsx"],"sourcesContent":["// Components\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTabsSymbol } from './shared'\n\nexport const makeVTabsWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory']),\n}, 'VTabsWindow')\n\nexport const VTabsWindow = genericComponent()({\n name: 'VTabsWindow',\n\n props: makeVTabsWindowProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const group = inject(VTabsSymbol, null)\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get () {\n // Always return modelValue if defined\n // or if not within a VTabs group\n if (_model.value != null || !group) return _model.value\n\n // If inside of a VTabs, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value\n },\n set (val) {\n _model.value = val\n },\n })\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n <VWindow\n _as=\"VTabsWindow\"\n { ...windowProps }\n v-model={ model.value }\n class={[\n 'v-tabs-window',\n props.class,\n ]}\n style={ props.style }\n mandatory={ false }\n touch={ false }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VTabsWindow = InstanceType<typeof VTabsWindow>\n"],"mappings":";AAAA;AAAA,SACSA,gBAAgB,EAAEC,OAAO,kCAElC;AAAA,SACSC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAExD;AAAA,SACSC,WAAW;AAEpB,OAAO,MAAMC,oBAAoB,GAAGH,YAAY,CAAC;EAC/C,GAAGD,IAAI,CAACN,gBAAgB,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC;AACxG,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,MAAMW,WAAW,GAAGN,gBAAgB,CAAC,CAAC,CAAC;EAC5CO,IAAI,EAAE,aAAa;EAEnBC,KAAK,EAAEH,oBAAoB,CAAC,CAAC;EAE7BI,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGf,MAAM,CAACK,WAAW,EAAE,IAAI,CAAC;IACvC,MAAMW,MAAM,GAAGlB,eAAe,CAACW,KAAK,EAAE,YAAY,CAAC;IAEnD,MAAMQ,KAAK,GAAGlB,QAAQ,CAAC;MACrBmB,GAAGA,CAAA,EAAI;QACL;QACA;QACA,IAAIF,MAAM,CAACG,KAAK,IAAI,IAAI,IAAI,CAACJ,KAAK,EAAE,OAAOC,MAAM,CAACG,KAAK;;QAEvD;QACA;QACA,OAAOJ,KAAK,CAACK,KAAK,CAACD,KAAK,CAACE,IAAI,CAACC,IAAI,IAAIP,KAAK,CAACQ,QAAQ,CAACJ,KAAK,CAACK,QAAQ,CAACF,IAAI,CAACG,EAAE,CAAC,CAAC,EAAEN,KAAK;MACtF,CAAC;MACDO,GAAGA,CAAEC,GAAG,EAAE;QACRX,MAAM,CAACG,KAAK,GAAGQ,GAAG;MACpB;IACF,CAAC,CAAC;IAEFvB,SAAS,CAAC,MAAM;MACd,MAAMwB,WAAW,GAAG/B,OAAO,CAACgC,WAAW,CAACpB,KAAK,CAAC;MAE9C,OAAAqB,YAAA,CAAAjC,OAAA,EAAAkC,WAAA;QAAA;MAAA,GAGSH,WAAW;QAAA,cACNX,KAAK,CAACE,KAAK;QAAA,uBAAAa,MAAA,IAAXf,KAAK,CAACE,KAAK,GAAAa,MAAA;QAAA,SACd,CACL,eAAe,EACfvB,KAAK,CAACwB,KAAK,CACZ;QAAA,SACOxB,KAAK,CAACyB,KAAK;QAAA,aACP,KAAK;QAAA,SACT;MAAK,IACHpB,KAAK;IAGrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}