@vuetify/nightly 3.6.4-master.2024-05-09 → 3.6.5-master.2024-05-11

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 (65) hide show
  1. package/CHANGELOG.md +2 -11
  2. package/dist/_component-variables-labs.sass +1 -0
  3. package/dist/json/attributes.json +292 -4
  4. package/dist/json/importMap-labs.json +28 -16
  5. package/dist/json/importMap.json +120 -120
  6. package/dist/json/tags.json +87 -0
  7. package/dist/json/web-types.json +1313 -6
  8. package/dist/vuetify-labs.css +1683 -1615
  9. package/dist/vuetify-labs.d.ts +1669 -28
  10. package/dist/vuetify-labs.esm.js +310 -16
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +310 -16
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.css +963 -963
  15. package/dist/vuetify.d.ts +147 -69
  16. package/dist/vuetify.esm.js +50 -16
  17. package/dist/vuetify.esm.js.map +1 -1
  18. package/dist/vuetify.js +50 -16
  19. package/dist/vuetify.js.map +1 -1
  20. package/dist/vuetify.min.css +2 -2
  21. package/dist/vuetify.min.js +51 -52
  22. package/dist/vuetify.min.js.map +1 -1
  23. package/lib/components/VBtn/index.d.mts +2 -0
  24. package/lib/components/VDataTable/VDataTable.mjs +6 -2
  25. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  26. package/lib/components/VDataTable/VDataTableServer.mjs +3 -2
  27. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  28. package/lib/components/VDataTable/VDataTableVirtual.mjs +3 -1
  29. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  30. package/lib/components/VDataTable/index.d.mts +54 -0
  31. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +3 -1
  32. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  33. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -4
  34. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  35. package/lib/components/VExpansionPanel/index.d.mts +82 -27
  36. package/lib/components/VSlideGroup/index.d.mts +2 -0
  37. package/lib/components/VStepper/VStepper.mjs +5 -2
  38. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  39. package/lib/components/VStepper/VStepperItem.mjs +5 -2
  40. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  41. package/lib/components/VStepper/index.d.mts +1 -1
  42. package/lib/components/VTabs/index.d.mts +2 -0
  43. package/lib/components/VWindow/index.d.mts +2 -0
  44. package/lib/components/index.d.mts +102 -27
  45. package/lib/composables/group.mjs +8 -0
  46. package/lib/composables/group.mjs.map +1 -1
  47. package/lib/entry-bundler.mjs +1 -1
  48. package/lib/framework.mjs +1 -1
  49. package/lib/index.d.mts +45 -42
  50. package/lib/labs/VStepperVertical/VStepperVertical.mjs +106 -0
  51. package/lib/labs/VStepperVertical/VStepperVertical.mjs.map +1 -0
  52. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs +38 -0
  53. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs.map +1 -0
  54. package/lib/labs/VStepperVertical/VStepperVerticalItem.css +69 -0
  55. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +134 -0
  56. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs.map +1 -0
  57. package/lib/labs/VStepperVertical/VStepperVerticalItem.sass +74 -0
  58. package/lib/labs/VStepperVertical/_variables.scss +3 -0
  59. package/lib/labs/VStepperVertical/index.d.mts +1590 -0
  60. package/lib/labs/VStepperVertical/index.mjs +4 -0
  61. package/lib/labs/VStepperVertical/index.mjs.map +1 -0
  62. package/lib/labs/components.d.mts +1599 -20
  63. package/lib/labs/components.mjs +1 -0
  64. package/lib/labs/components.mjs.map +1 -1
  65. package/package.json +1 -1
package/lib/index.d.mts CHANGED
@@ -497,38 +497,37 @@ declare module '@vue/runtime-core' {
497
497
  VAppBar: typeof import('vuetify/components')['VAppBar']
498
498
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
499
499
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
500
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
500
501
  VAlert: typeof import('vuetify/components')['VAlert']
501
502
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
503
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
502
504
  VAvatar: typeof import('vuetify/components')['VAvatar']
503
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
504
505
  VBanner: typeof import('vuetify/components')['VBanner']
505
506
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
506
507
  VBannerText: typeof import('vuetify/components')['VBannerText']
507
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
508
- VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
509
508
  VBadge: typeof import('vuetify/components')['VBadge']
509
+ VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
510
510
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
511
511
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
512
512
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
513
513
  VBtn: typeof import('vuetify/components')['VBtn']
514
514
  VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
515
+ VCheckbox: typeof import('vuetify/components')['VCheckbox']
516
+ VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
515
517
  VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
518
+ VChip: typeof import('vuetify/components')['VChip']
516
519
  VCard: typeof import('vuetify/components')['VCard']
517
520
  VCardActions: typeof import('vuetify/components')['VCardActions']
518
521
  VCardItem: typeof import('vuetify/components')['VCardItem']
519
522
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
520
523
  VCardText: typeof import('vuetify/components')['VCardText']
521
524
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
522
- VCheckbox: typeof import('vuetify/components')['VCheckbox']
523
- VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
524
525
  VCarousel: typeof import('vuetify/components')['VCarousel']
525
526
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
526
- VCode: typeof import('vuetify/components')['VCode']
527
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
528
- VChip: typeof import('vuetify/components')['VChip']
529
527
  VCombobox: typeof import('vuetify/components')['VCombobox']
528
+ VCode: typeof import('vuetify/components')['VCode']
530
529
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
531
- VCounter: typeof import('vuetify/components')['VCounter']
530
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
532
531
  VDataTable: typeof import('vuetify/components')['VDataTable']
533
532
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
534
533
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -536,6 +535,7 @@ declare module '@vue/runtime-core' {
536
535
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
537
536
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
538
537
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
538
+ VCounter: typeof import('vuetify/components')['VCounter']
539
539
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
540
540
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
541
541
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
@@ -545,27 +545,27 @@ declare module '@vue/runtime-core' {
545
545
  VDialog: typeof import('vuetify/components')['VDialog']
546
546
  VDivider: typeof import('vuetify/components')['VDivider']
547
547
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
548
+ VField: typeof import('vuetify/components')['VField']
549
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
550
+ VFileInput: typeof import('vuetify/components')['VFileInput']
551
+ VFab: typeof import('vuetify/components')['VFab']
552
+ VFooter: typeof import('vuetify/components')['VFooter']
548
553
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
549
554
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
550
555
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
551
556
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
552
- VFab: typeof import('vuetify/components')['VFab']
553
- VFileInput: typeof import('vuetify/components')['VFileInput']
554
- VField: typeof import('vuetify/components')['VField']
555
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
556
- VFooter: typeof import('vuetify/components')['VFooter']
557
557
  VIcon: typeof import('vuetify/components')['VIcon']
558
558
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
559
559
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
560
560
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
561
561
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
562
562
  VInput: typeof import('vuetify/components')['VInput']
563
- VImg: typeof import('vuetify/components')['VImg']
564
- VLabel: typeof import('vuetify/components')['VLabel']
565
563
  VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
566
- VKbd: typeof import('vuetify/components')['VKbd']
564
+ VImg: typeof import('vuetify/components')['VImg']
567
565
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
568
566
  VItem: typeof import('vuetify/components')['VItem']
567
+ VLabel: typeof import('vuetify/components')['VLabel']
568
+ VKbd: typeof import('vuetify/components')['VKbd']
569
569
  VList: typeof import('vuetify/components')['VList']
570
570
  VListGroup: typeof import('vuetify/components')['VListGroup']
571
571
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -575,71 +575,71 @@ declare module '@vue/runtime-core' {
575
575
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
576
576
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
577
577
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
578
+ VMain: typeof import('vuetify/components')['VMain']
578
579
  VMenu: typeof import('vuetify/components')['VMenu']
579
580
  VMessages: typeof import('vuetify/components')['VMessages']
580
- VMain: typeof import('vuetify/components')['VMain']
581
- VOtpInput: typeof import('vuetify/components')['VOtpInput']
582
581
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
582
+ VOverlay: typeof import('vuetify/components')['VOverlay']
583
+ VOtpInput: typeof import('vuetify/components')['VOtpInput']
583
584
  VPagination: typeof import('vuetify/components')['VPagination']
584
585
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
585
- VOverlay: typeof import('vuetify/components')['VOverlay']
586
- VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
587
586
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
587
+ VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
588
588
  VRating: typeof import('vuetify/components')['VRating']
589
589
  VSelect: typeof import('vuetify/components')['VSelect']
590
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
590
+ VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
591
591
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
592
- VSheet: typeof import('vuetify/components')['VSheet']
592
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
593
593
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
594
594
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
595
+ VSheet: typeof import('vuetify/components')['VSheet']
596
+ VSlider: typeof import('vuetify/components')['VSlider']
597
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
598
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
599
+ VSwitch: typeof import('vuetify/components')['VSwitch']
595
600
  VStepper: typeof import('vuetify/components')['VStepper']
596
601
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
597
602
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
598
603
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
599
604
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
600
605
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
601
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
602
- VSlider: typeof import('vuetify/components')['VSlider']
603
- VSwitch: typeof import('vuetify/components')['VSwitch']
604
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
606
+ VTextField: typeof import('vuetify/components')['VTextField']
605
607
  VTab: typeof import('vuetify/components')['VTab']
606
608
  VTabs: typeof import('vuetify/components')['VTabs']
607
609
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
608
610
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
609
611
  VTable: typeof import('vuetify/components')['VTable']
610
612
  VTextarea: typeof import('vuetify/components')['VTextarea']
611
- VTimeline: typeof import('vuetify/components')['VTimeline']
612
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
613
- VTextField: typeof import('vuetify/components')['VTextField']
614
613
  VToolbar: typeof import('vuetify/components')['VToolbar']
615
614
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
616
615
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
617
- VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
618
616
  VTooltip: typeof import('vuetify/components')['VTooltip']
619
617
  VWindow: typeof import('vuetify/components')['VWindow']
620
618
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
619
+ VTimeline: typeof import('vuetify/components')['VTimeline']
620
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
621
621
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
622
622
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
623
623
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
624
- VForm: typeof import('vuetify/components')['VForm']
625
624
  VContainer: typeof import('vuetify/components')['VContainer']
626
625
  VCol: typeof import('vuetify/components')['VCol']
627
626
  VRow: typeof import('vuetify/components')['VRow']
628
627
  VSpacer: typeof import('vuetify/components')['VSpacer']
628
+ VForm: typeof import('vuetify/components')['VForm']
629
629
  VHover: typeof import('vuetify/components')['VHover']
630
- VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
630
+ VLazy: typeof import('vuetify/components')['VLazy']
631
631
  VLayout: typeof import('vuetify/components')['VLayout']
632
632
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
633
- VLazy: typeof import('vuetify/components')['VLazy']
633
+ VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
634
634
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
635
635
  VParallax: typeof import('vuetify/components')['VParallax']
636
636
  VRadio: typeof import('vuetify/components')['VRadio']
637
637
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
638
638
  VResponsive: typeof import('vuetify/components')['VResponsive']
639
- VSparkline: typeof import('vuetify/components')['VSparkline']
640
639
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
641
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
640
+ VSparkline: typeof import('vuetify/components')['VSparkline']
642
641
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
642
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
643
643
  VValidation: typeof import('vuetify/components')['VValidation']
644
644
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
645
645
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
@@ -657,23 +657,26 @@ declare module '@vue/runtime-core' {
657
657
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
658
658
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
659
659
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
660
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
661
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
660
662
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
661
663
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
662
664
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
663
665
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
664
666
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
665
667
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
666
- VPicker: typeof import('vuetify/labs/components')['VPicker']
667
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
668
668
  VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
669
- VTreeview: typeof import('vuetify/labs/components')['VTreeview']
670
- VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
671
- VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
669
+ VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
670
+ VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
671
+ VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
672
672
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
673
673
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
674
674
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
675
- VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
675
+ VTreeview: typeof import('vuetify/labs/components')['VTreeview']
676
+ VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
677
+ VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
676
678
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
677
679
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
680
+ VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
678
681
  }
679
682
  }
@@ -0,0 +1,106 @@
1
+ import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
+ // Components
3
+ import { VStepperVerticalItem } from "./VStepperVerticalItem.mjs";
4
+ import { makeVExpansionPanelsProps, VExpansionPanels } from "../../components/VExpansionPanel/VExpansionPanels.mjs";
5
+ import { makeStepperProps } from "../../components/VStepper/VStepper.mjs"; // Composables
6
+ import { provideDefaults } from "../../composables/defaults.mjs";
7
+ import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
8
+ import { computed, ref, toRefs } from 'vue';
9
+ import { genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
10
+ export const makeVStepperVerticalProps = propsFactory({
11
+ prevText: {
12
+ type: String,
13
+ default: '$vuetify.stepper.prev'
14
+ },
15
+ nextText: {
16
+ type: String,
17
+ default: '$vuetify.stepper.next'
18
+ },
19
+ ...makeStepperProps(),
20
+ ...omit(makeVExpansionPanelsProps({
21
+ mandatory: 'force',
22
+ variant: 'accordion'
23
+ }), ['static'])
24
+ }, 'VStepperVertical');
25
+ export const VStepperVertical = genericComponent()({
26
+ name: 'VStepperVertical',
27
+ props: makeVStepperVerticalProps(),
28
+ emits: {
29
+ 'update:modelValue': val => true
30
+ },
31
+ setup(props, _ref) {
32
+ let {
33
+ slots
34
+ } = _ref;
35
+ const vExpansionPanelsRef = ref();
36
+ const {
37
+ color,
38
+ editable,
39
+ prevText,
40
+ nextText,
41
+ hideActions
42
+ } = toRefs(props);
43
+ const model = useProxiedModel(props, 'modelValue');
44
+ const items = computed(() => props.items.map((item, index) => {
45
+ const title = getPropertyFromItem(item, props.itemTitle, item);
46
+ const value = getPropertyFromItem(item, props.itemValue, index + 1);
47
+ return {
48
+ title,
49
+ value,
50
+ raw: item
51
+ };
52
+ }));
53
+ provideDefaults({
54
+ VStepperVerticalItem: {
55
+ color,
56
+ editable,
57
+ prevText,
58
+ nextText,
59
+ hideActions,
60
+ static: true
61
+ },
62
+ VStepperActions: {
63
+ color
64
+ }
65
+ });
66
+ useRender(() => {
67
+ const expansionPanelProps = VExpansionPanels.filterProps(props);
68
+ return _createVNode(VExpansionPanels, _mergeProps(expansionPanelProps, {
69
+ "modelValue": model.value,
70
+ "onUpdate:modelValue": $event => model.value = $event,
71
+ "ref": vExpansionPanelsRef,
72
+ "class": ['v-stepper', {
73
+ 'v-stepper--alt-labels': props.altLabels,
74
+ 'v-stepper--flat': props.flat,
75
+ 'v-stepper--non-linear': props.nonLinear,
76
+ 'v-stepper--mobile': props.mobile
77
+ }, props.class],
78
+ "style": props.style
79
+ }), {
80
+ ...slots,
81
+ default: _ref2 => {
82
+ let {
83
+ prev,
84
+ next
85
+ } = _ref2;
86
+ return _createVNode(_Fragment, null, [items.value.map(_ref3 => {
87
+ let {
88
+ raw,
89
+ ...item
90
+ } = _ref3;
91
+ return _createVNode(VStepperVerticalItem, item, {
92
+ ...slots,
93
+ default: slots[`item.${item.value}`]
94
+ });
95
+ }), slots.default?.({
96
+ prev,
97
+ next,
98
+ step: model.value
99
+ })]);
100
+ }
101
+ });
102
+ });
103
+ return {};
104
+ }
105
+ });
106
+ //# sourceMappingURL=VStepperVertical.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VStepperVertical.mjs","names":["VStepperVerticalItem","makeVExpansionPanelsProps","VExpansionPanels","makeStepperProps","provideDefaults","useProxiedModel","computed","ref","toRefs","genericComponent","getPropertyFromItem","omit","propsFactory","useRender","makeVStepperVerticalProps","prevText","type","String","default","nextText","mandatory","variant","VStepperVertical","name","props","emits","val","setup","_ref","slots","vExpansionPanelsRef","color","editable","hideActions","model","items","map","item","index","title","itemTitle","value","itemValue","raw","static","VStepperActions","expansionPanelProps","filterProps","_createVNode","_mergeProps","$event","altLabels","flat","nonLinear","mobile","class","style","_ref2","prev","next","_Fragment","_ref3","step"],"sources":["../../../src/labs/VStepperVertical/VStepperVertical.tsx"],"sourcesContent":["// Components\nimport { VStepperVerticalItem } from './VStepperVerticalItem'\nimport { makeVExpansionPanelsProps, VExpansionPanels } from '@/components/VExpansionPanel/VExpansionPanels'\nimport { makeStepperProps } from '@/components/VStepper/VStepper'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VStepperSlot } from '@/components/VStepper/VStepper'\nimport type { StepperItem, StepperItemSlot } from '@/components/VStepper/VStepperItem'\n\nexport type VStepperVerticalSlots = {\n actions: StepperItemSlot\n default: VStepperSlot & { step: unknown }\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: StepperItemSlot\n next: StepperItemSlot\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeVStepperVerticalProps = propsFactory({\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev',\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next',\n },\n\n ...makeStepperProps(),\n ...omit(makeVExpansionPanelsProps({\n mandatory: 'force' as const,\n variant: 'accordion' as const,\n }), ['static']),\n}, 'VStepperVertical')\n\nexport const VStepperVertical = genericComponent<VStepperVerticalSlots>()({\n name: 'VStepperVertical',\n\n props: makeVStepperVerticalProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const vExpansionPanelsRef = ref<typeof VExpansionPanels>()\n const { color, editable, prevText, nextText, hideActions } = toRefs(props)\n\n const model = useProxiedModel(props, 'modelValue')\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\n provideDefaults({\n VStepperVerticalItem: {\n color,\n editable,\n prevText,\n nextText,\n hideActions,\n static: true,\n },\n VStepperActions: {\n color,\n },\n })\n\n useRender(() => {\n const expansionPanelProps = VExpansionPanels.filterProps(props)\n\n return (\n <VExpansionPanels\n { ...expansionPanelProps }\n v-model={ model.value }\n ref={ vExpansionPanelsRef }\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 {{\n ...slots,\n default: ({\n prev,\n next,\n }) => {\n return (\n <>\n { items.value.map(({ raw, ...item }) => (\n <VStepperVerticalItem { ...item }>\n {{\n ...slots,\n default: slots[`item.${item.value}`],\n }}\n </VStepperVerticalItem>\n ))}\n\n { slots.default?.({ prev, next, step: model.value }) }\n </>\n )\n },\n }}\n </VExpansionPanels>\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperVertical = InstanceType<typeof VStepperVertical>\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
2
+ // Components
3
+ import { makeVStepperActionsProps, VStepperActions } from "../../components/VStepper/VStepperActions.mjs"; // Utilities
4
+ import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
5
+ export const makeVStepperVerticalActionsProps = propsFactory({
6
+ ...makeVStepperActionsProps()
7
+ }, 'VStepperActions');
8
+ export const VStepperVerticalActions = genericComponent()({
9
+ name: 'VStepperVerticalActions',
10
+ props: makeVStepperVerticalActionsProps(),
11
+ emits: {
12
+ 'click:prev': () => true,
13
+ 'click:next': () => true
14
+ },
15
+ setup(props, _ref) {
16
+ let {
17
+ emit,
18
+ slots
19
+ } = _ref;
20
+ function onClickPrev() {
21
+ emit('click:prev');
22
+ }
23
+ function onClickNext() {
24
+ emit('click:next');
25
+ }
26
+ useRender(() => {
27
+ const stepperActionsProps = VStepperActions.filterProps(props);
28
+ return _createVNode(VStepperActions, _mergeProps({
29
+ "class": "v-stepper-vertical-actions"
30
+ }, stepperActionsProps, {
31
+ "onClick:prev": onClickPrev,
32
+ "onClick:next": onClickNext
33
+ }), slots);
34
+ });
35
+ return {};
36
+ }
37
+ });
38
+ //# sourceMappingURL=VStepperVerticalActions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VStepperVerticalActions.mjs","names":["makeVStepperActionsProps","VStepperActions","genericComponent","propsFactory","useRender","makeVStepperVerticalActionsProps","VStepperVerticalActions","name","props","emits","click:prev","click:next","setup","_ref","emit","slots","onClickPrev","onClickNext","stepperActionsProps","filterProps","_createVNode","_mergeProps"],"sources":["../../../src/labs/VStepperVertical/VStepperVerticalActions.tsx"],"sourcesContent":["// Components\nimport { makeVStepperActionsProps, VStepperActions } from '@/components/VStepper/VStepperActions'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VStepperActionsSlots } from '@/components/VStepper/VStepperActions'\n\nexport const makeVStepperVerticalActionsProps = propsFactory({\n ...makeVStepperActionsProps(),\n}, 'VStepperActions')\n\nexport const VStepperVerticalActions = genericComponent<VStepperActionsSlots>()({\n name: 'VStepperVerticalActions',\n\n props: makeVStepperVerticalActionsProps(),\n\n emits: {\n 'click:prev': () => true,\n 'click:next': () => true,\n },\n\n setup (props, { emit, slots }) {\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n useRender(() => {\n const stepperActionsProps = VStepperActions.filterProps(props)\n\n return (\n <VStepperActions\n class=\"v-stepper-vertical-actions\"\n { ...stepperActionsProps }\n onClick:prev={ onClickPrev }\n onClick:next={ onClickNext }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperVerticalActions = InstanceType<typeof VStepperVerticalActions>\n"],"mappings":";AAAA;AAAA,SACSA,wBAAwB,EAAEC,eAAe,yDAElD;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAGA,OAAO,MAAMC,gCAAgC,GAAGF,YAAY,CAAC;EAC3D,GAAGH,wBAAwB,CAAC;AAC9B,CAAC,EAAE,iBAAiB,CAAC;AAErB,OAAO,MAAMM,uBAAuB,GAAGJ,gBAAgB,CAAuB,CAAC,CAAC;EAC9EK,IAAI,EAAE,yBAAyB;EAE/BC,KAAK,EAAEH,gCAAgC,CAAC,CAAC;EAEzCI,KAAK,EAAE;IACL,YAAY,EAAEC,CAAA,KAAM,IAAI;IACxB,YAAY,EAAEC,CAAA,KAAM;EACtB,CAAC;EAEDC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,SAASG,WAAWA,CAAA,EAAI;MACtBF,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA,SAASG,WAAWA,CAAA,EAAI;MACtBH,IAAI,CAAC,YAAY,CAAC;IACpB;IAEAV,SAAS,CAAC,MAAM;MACd,MAAMc,mBAAmB,GAAGjB,eAAe,CAACkB,WAAW,CAACX,KAAK,CAAC;MAE9D,OAAAY,YAAA,CAAAnB,eAAA,EAAAoB,WAAA;QAAA;MAAA,GAGSH,mBAAmB;QAAA,gBACTF,WAAW;QAAA,gBACXC;MAAW,IAChBF,KAAK;IAGrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ .v-stepper-vertical-item {
2
+ position: relative;
3
+ transition-duration: 0.2s;
4
+ transition-property: opacity;
5
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
6
+ }
7
+ .v-stepper-vertical-item__title {
8
+ font-size: 1rem;
9
+ }
10
+ .v-stepper-vertical-item__subtitle {
11
+ font-size: 0.75rem;
12
+ }
13
+ .v-stepper-vertical-item .v-expansion-panel-text {
14
+ padding-inline-start: 32px;
15
+ }
16
+ .v-stepper-vertical-item:not(:last-child):before {
17
+ content: "";
18
+ position: absolute;
19
+ width: 2px;
20
+ height: calc(100% - 30px);
21
+ background: rgba(var(--v-border-color), var(--v-border-opacity));
22
+ left: 35px;
23
+ top: 44px;
24
+ z-index: 1;
25
+ transition-duration: 300ms;
26
+ transition-property: height;
27
+ }
28
+ .v-stepper-vertical-item:after {
29
+ display: none;
30
+ }
31
+ .v-stepper-vertical-item.v-expansion-panel--disabled .v-expansion-panel-title, .v-stepper-vertical-item:not(.v-stepper-vertical-item--editable) .v-expansion-panel-title {
32
+ pointer-events: none;
33
+ }
34
+ .v-stepper-vertical-item.v-expansion-panel--disabled .v-expansion-panel-title .v-expansion-panel-title__overlay, .v-stepper-vertical-item:not(.v-stepper-vertical-item--editable) .v-expansion-panel-title .v-expansion-panel-title__overlay {
35
+ opacity: 0;
36
+ }
37
+
38
+ .v-stepper-vertical-item__avatar.v-avatar {
39
+ background: rgba(var(--v-theme-surface-variant), var(--v-medium-emphasis-opacity));
40
+ color: rgb(var(--v-theme-on-surface-variant));
41
+ transition-property: background;
42
+ }
43
+ .v-stepper-vertical-item__avatar.v-avatar .v-icon {
44
+ font-size: 0.875rem;
45
+ }
46
+ .v-expansion-panel--active .v-stepper-vertical-item__avatar.v-avatar {
47
+ background: rgb(var(--v-theme-surface-variant));
48
+ }
49
+ .v-stepper-vertical-item--error .v-stepper-vertical-item__avatar.v-avatar {
50
+ background: rgb(var(--v-theme-error));
51
+ color: rgb(var(--v-theme-on-error));
52
+ }
53
+
54
+ .v-stepper-vertical-item--error .v-stepper-vertical-item__title {
55
+ color: rgb(var(--v-theme-error));
56
+ }
57
+
58
+ .v-stepper-vertical-item--error .v-stepper-vertical-item__subtitle {
59
+ color: rgb(var(--v-theme-error));
60
+ }
61
+
62
+ .v-stepper-vertical-actions.v-stepper-actions .v-btn {
63
+ margin-inline-end: 8px;
64
+ }
65
+ .v-stepper .v-stepper-vertical-actions.v-stepper-actions {
66
+ justify-content: flex-end;
67
+ padding: 24px 0 0;
68
+ flex-direction: row-reverse;
69
+ }
@@ -0,0 +1,134 @@
1
+ import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
+ // Styles
3
+ import "./VStepperVerticalItem.css";
4
+
5
+ // Components
6
+ import { VStepperVerticalActions } from "./VStepperVerticalActions.mjs";
7
+ import { VAvatar } from "../../components/VAvatar/VAvatar.mjs";
8
+ import { VDefaultsProvider } from "../../components/VDefaultsProvider/VDefaultsProvider.mjs";
9
+ import { VExpansionPanel } from "../../components/VExpansionPanel/index.mjs";
10
+ import { makeVExpansionPanelProps } from "../../components/VExpansionPanel/VExpansionPanel.mjs";
11
+ import { VIcon } from "../../components/VIcon/VIcon.mjs";
12
+ import { makeStepperItemProps } from "../../components/VStepper/VStepperItem.mjs"; // Utilities
13
+ import { computed, ref } from 'vue';
14
+ import { genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
15
+ export const makeVStepperVerticalItemProps = propsFactory({
16
+ hideActions: Boolean,
17
+ ...makeStepperItemProps(),
18
+ ...omit(makeVExpansionPanelProps({
19
+ expandIcon: '',
20
+ collapseIcon: ''
21
+ }), ['hideActions'])
22
+ }, 'VStepperVerticalItem');
23
+ export const VStepperVerticalItem = genericComponent()({
24
+ name: 'VStepperVerticalItem',
25
+ props: makeVStepperVerticalItemProps(),
26
+ emits: {
27
+ 'click:next': () => true,
28
+ 'click:prev': () => true,
29
+ 'click:finish': () => true
30
+ },
31
+ setup(props, _ref) {
32
+ let {
33
+ emit,
34
+ slots
35
+ } = _ref;
36
+ const vExpansionPanelRef = ref();
37
+ const step = computed(() => !isNaN(parseInt(props.value)) ? Number(props.value) : props.value);
38
+ const groupItem = computed(() => vExpansionPanelRef.value?.groupItem);
39
+ const isSelected = computed(() => groupItem.value?.isSelected.value ?? false);
40
+ const isValid = computed(() => isSelected.value ? props.rules.every(handler => handler() === true) : null);
41
+ const canEdit = computed(() => !props.disabled && props.editable);
42
+ const hasError = computed(() => props.error || isSelected.value && !isValid.value);
43
+ const hasCompleted = computed(() => props.complete || props.rules.length > 0 && isValid.value === true);
44
+ const disabled = computed(() => {
45
+ if (props.disabled) return props.disabled;
46
+ if (groupItem.value?.isFirst.value) return 'prev';
47
+ return false;
48
+ });
49
+ const icon = computed(() => {
50
+ if (hasError.value) return props.errorIcon;
51
+ if (hasCompleted.value) return props.completeIcon;
52
+ if (groupItem.value?.isSelected.value && props.editable) return props.editIcon;
53
+ return props.icon;
54
+ });
55
+ const slotProps = computed(() => ({
56
+ canEdit: canEdit.value,
57
+ hasError: hasError.value,
58
+ hasCompleted: hasCompleted.value,
59
+ title: props.title,
60
+ subtitle: props.subtitle,
61
+ step: step.value,
62
+ value: props.value
63
+ }));
64
+ const actionProps = computed(() => ({
65
+ ...slotProps.value,
66
+ prev: onClickPrev,
67
+ next: onClickNext
68
+ }));
69
+ function onClickNext() {
70
+ emit('click:next');
71
+ if (groupItem.value?.isLast.value) return;
72
+ groupItem.value.group.next();
73
+ }
74
+ function onClickPrev() {
75
+ emit('click:prev');
76
+ groupItem.value.group.prev();
77
+ }
78
+ useRender(() => {
79
+ const hasColor = (hasCompleted.value || groupItem.value?.isSelected.value) && !hasError.value && !props.disabled;
80
+ const hasActions = !props.hideActions || !!slots.actions;
81
+ const expansionPanelProps = VExpansionPanel.filterProps(props);
82
+ return _createVNode(VExpansionPanel, _mergeProps({
83
+ "_as": "VStepperVerticalItem",
84
+ "ref": vExpansionPanelRef
85
+ }, expansionPanelProps, {
86
+ "class": ['v-stepper-vertical-item', {
87
+ 'v-stepper-vertical-item--complete': hasCompleted.value,
88
+ 'v-stepper-vertical-item--disabled': props.disabled,
89
+ 'v-stepper-vertical-item--editable': canEdit.value,
90
+ 'v-stepper-vertical-item--error': hasError.value
91
+ }, props.class],
92
+ "readonly": !props.editable,
93
+ "style": props.style,
94
+ "color": "",
95
+ "hide-actions": false,
96
+ "value": step.value
97
+ }), {
98
+ title: () => _createVNode(_Fragment, null, [_createVNode(VAvatar, {
99
+ "key": "stepper-avatar",
100
+ "class": "v-stepper-vertical-item__avatar",
101
+ "color": hasColor ? props.color : undefined,
102
+ "size": 24,
103
+ "start": true
104
+ }, {
105
+ default: () => [slots.icon?.(slotProps.value) ?? (icon.value ? _createVNode(VIcon, {
106
+ "icon": icon.value
107
+ }, null) : step.value)]
108
+ }), _createVNode("div", null, [_createVNode("div", {
109
+ "class": "v-stepper-vertical-item__title"
110
+ }, [slots.title?.(slotProps.value) ?? props.title]), _createVNode("div", {
111
+ "class": "v-stepper-vertical-item__subtitle"
112
+ }, [slots.subtitle?.(slotProps.value) ?? props.subtitle])])]),
113
+ text: () => _createVNode(_Fragment, null, [slots.default?.(slotProps.value) ?? props.text, hasActions && _createVNode(VDefaultsProvider, {
114
+ "defaults": {
115
+ VStepperVerticalActions: {
116
+ disabled: disabled.value,
117
+ finish: groupItem.value?.isLast.value
118
+ }
119
+ }
120
+ }, {
121
+ default: () => [slots.actions?.(actionProps.value) ?? _createVNode(VStepperVerticalActions, {
122
+ "onClick:next": onClickNext,
123
+ "onClick:prev": onClickPrev
124
+ }, {
125
+ prev: slots.prev ? () => slots.prev?.(actionProps.value) : undefined,
126
+ next: slots.next ? () => slots.next?.(actionProps.value) : undefined
127
+ })]
128
+ })])
129
+ });
130
+ });
131
+ return {};
132
+ }
133
+ });
134
+ //# sourceMappingURL=VStepperVerticalItem.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VStepperVerticalItem.mjs","names":["VStepperVerticalActions","VAvatar","VDefaultsProvider","VExpansionPanel","makeVExpansionPanelProps","VIcon","makeStepperItemProps","computed","ref","genericComponent","omit","propsFactory","useRender","makeVStepperVerticalItemProps","hideActions","Boolean","expandIcon","collapseIcon","VStepperVerticalItem","name","props","emits","click:next","click:prev","click:finish","setup","_ref","emit","slots","vExpansionPanelRef","step","isNaN","parseInt","value","Number","groupItem","isSelected","isValid","rules","every","handler","canEdit","disabled","editable","hasError","error","hasCompleted","complete","length","isFirst","icon","errorIcon","completeIcon","editIcon","slotProps","title","subtitle","actionProps","prev","onClickPrev","next","onClickNext","isLast","group","hasColor","hasActions","actions","expansionPanelProps","filterProps","_createVNode","_mergeProps","class","style","_Fragment","color","undefined","default","text","finish"],"sources":["../../../src/labs/VStepperVertical/VStepperVerticalItem.tsx"],"sourcesContent":["// Styles\nimport './VStepperVerticalItem.sass'\n\n// Components\nimport { VStepperVerticalActions } from './VStepperVerticalActions'\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { VExpansionPanel } from '@/components/VExpansionPanel'\nimport { makeVExpansionPanelProps } from '@/components/VExpansionPanel/VExpansionPanel'\nimport { VIcon } from '@/components/VIcon/VIcon'\nimport { makeStepperItemProps } from '@/components/VStepper/VStepperItem'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { StepperItemSlot } from '@/components/VStepper/VStepperItem'\n\nexport type VStepperVerticalItemSlots = {\n default: StepperItemSlot\n icon: StepperItemSlot\n subtitle: StepperItemSlot\n title: StepperItemSlot\n text: StepperItemSlot\n prev: StepperItemSlot\n next: StepperItemSlot\n actions: StepperItemSlot & {\n next: () => void\n prev: () => void\n }\n}\n\nexport const makeVStepperVerticalItemProps = propsFactory({\n hideActions: Boolean,\n\n ...makeStepperItemProps(),\n ...omit(makeVExpansionPanelProps({\n expandIcon: '',\n collapseIcon: '',\n }), ['hideActions']),\n}, 'VStepperVerticalItem')\n\nexport const VStepperVerticalItem = genericComponent<VStepperVerticalItemSlots>()({\n name: 'VStepperVerticalItem',\n\n props: makeVStepperVerticalItemProps(),\n\n emits: {\n 'click:next': () => true,\n 'click:prev': () => true,\n 'click:finish': () => true,\n },\n\n setup (props, { emit, slots }) {\n const vExpansionPanelRef = ref<typeof VExpansionPanel>()\n const step = computed(() => !isNaN(parseInt(props.value)) ? Number(props.value) : props.value)\n const groupItem = computed(() => vExpansionPanelRef.value?.groupItem)\n const isSelected = computed(() => groupItem.value?.isSelected.value ?? false)\n const isValid = computed(() => isSelected.value ? props.rules.every(handler => handler() === true) : null)\n const canEdit = computed(() => !props.disabled && props.editable)\n const hasError = computed(() => props.error || (isSelected.value && !isValid.value))\n const hasCompleted = computed(() => props.complete || (props.rules.length > 0 && isValid.value === true))\n\n const disabled = computed(() => {\n if (props.disabled) return props.disabled\n if (groupItem.value?.isFirst.value) return 'prev'\n\n return false\n })\n const icon = computed(() => {\n if (hasError.value) return props.errorIcon\n if (hasCompleted.value) return props.completeIcon\n if (groupItem.value?.isSelected.value && props.editable) return props.editIcon\n\n return props.icon\n })\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 const actionProps = computed(() => ({\n ...slotProps.value,\n prev: onClickPrev,\n next: onClickNext,\n }))\n\n function onClickNext () {\n emit('click:next')\n\n if (groupItem.value?.isLast.value) return\n\n groupItem.value.group.next()\n }\n\n function onClickPrev () {\n emit('click:prev')\n\n groupItem.value.group.prev()\n }\n\n useRender(() => {\n const hasColor = (\n hasCompleted.value ||\n groupItem.value?.isSelected.value\n ) && (\n !hasError.value &&\n !props.disabled\n )\n\n const hasActions = !props.hideActions || !!slots.actions\n const expansionPanelProps = VExpansionPanel.filterProps(props)\n\n return (\n <VExpansionPanel\n _as=\"VStepperVerticalItem\"\n ref={ vExpansionPanelRef }\n { ...expansionPanelProps }\n class={[\n 'v-stepper-vertical-item',\n {\n 'v-stepper-vertical-item--complete': hasCompleted.value,\n 'v-stepper-vertical-item--disabled': props.disabled,\n 'v-stepper-vertical-item--editable': canEdit.value,\n 'v-stepper-vertical-item--error': hasError.value,\n },\n props.class,\n ]}\n readonly={ !props.editable }\n style={ props.style }\n color=\"\"\n hide-actions={ false }\n value={ step.value }\n >\n {{\n title: () => (\n <>\n <VAvatar\n key=\"stepper-avatar\"\n class=\"v-stepper-vertical-item__avatar\"\n color={ hasColor ? props.color : undefined }\n size={ 24 }\n start\n >\n { slots.icon?.(slotProps.value) ?? (\n icon.value ? (\n <VIcon icon={ icon.value }></VIcon>\n ) : step.value\n )}\n </VAvatar>\n\n <div>\n <div class=\"v-stepper-vertical-item__title\">\n { slots.title?.(slotProps.value) ?? props.title }\n </div>\n\n <div class=\"v-stepper-vertical-item__subtitle\">\n { slots.subtitle?.(slotProps.value) ?? props.subtitle }\n </div>\n </div>\n </>\n ),\n text: () => (\n <>\n { slots.default?.(slotProps.value) ?? props.text }\n\n { hasActions && (\n <VDefaultsProvider\n defaults={{\n VStepperVerticalActions: {\n disabled: disabled.value,\n finish: groupItem.value?.isLast.value,\n },\n }}\n >\n { slots.actions?.(actionProps.value) ?? (\n <VStepperVerticalActions\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n v-slots={{\n prev: slots.prev ? () => slots.prev?.(actionProps.value) : undefined,\n next: slots.next ? () => slots.next?.(actionProps.value) : undefined,\n }}\n />\n )}\n </VDefaultsProvider>\n )}\n </>\n ),\n }}\n </VExpansionPanel>\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperVerticalItem = InstanceType<typeof VStepperVerticalItem>\n"],"mappings":"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","ignoreList":[]}