vuetify 3.6.9 → 3.6.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 (41) hide show
  1. package/dist/json/attributes.json +2 -2
  2. package/dist/json/importMap-labs.json +16 -16
  3. package/dist/json/importMap.json +140 -140
  4. package/dist/json/web-types.json +6 -6
  5. package/dist/vuetify-labs.css +2443 -2443
  6. package/dist/vuetify-labs.d.ts +18 -30
  7. package/dist/vuetify-labs.esm.js +94 -85
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +94 -85
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +1862 -1862
  12. package/dist/vuetify.d.ts +48 -48
  13. package/dist/vuetify.esm.js +41 -20
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +41 -20
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +11 -9
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VDatePicker/VDatePicker.mjs +5 -2
  21. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  22. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +23 -11
  23. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  24. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +13 -5
  25. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  26. package/lib/components/VOverlay/VOverlay.mjs +1 -1
  27. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  28. package/lib/entry-bundler.mjs +1 -1
  29. package/lib/entry-bundler.mjs.map +1 -1
  30. package/lib/framework.mjs +1 -1
  31. package/lib/framework.mjs.map +1 -1
  32. package/lib/index.d.mts +48 -48
  33. package/lib/labs/VNumberInput/VNumberInput.mjs +48 -55
  34. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  35. package/lib/labs/VStepperVertical/VStepperVertical.mjs +2 -0
  36. package/lib/labs/VStepperVertical/VStepperVertical.mjs.map +1 -1
  37. package/lib/labs/VTreeview/VTreeview.mjs +5 -12
  38. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  39. package/lib/labs/VTreeview/index.d.mts +18 -30
  40. package/lib/labs/components.d.mts +18 -30
  41. package/package.json +2 -2
package/lib/index.d.mts CHANGED
@@ -492,38 +492,42 @@ declare module '@vue/runtime-core' {
492
492
  }
493
493
 
494
494
  export interface GlobalComponents {
495
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
495
496
  VApp: typeof import('vuetify/components')['VApp']
497
+ VAlert: typeof import('vuetify/components')['VAlert']
498
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
496
499
  VAppBar: typeof import('vuetify/components')['VAppBar']
497
500
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
498
501
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
499
- VAlert: typeof import('vuetify/components')['VAlert']
500
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
501
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
502
+ VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
502
503
  VAvatar: typeof import('vuetify/components')['VAvatar']
504
+ VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
505
+ VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
506
+ VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
503
507
  VBadge: typeof import('vuetify/components')['VBadge']
504
- VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
505
- VBtn: typeof import('vuetify/components')['VBtn']
506
508
  VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
509
+ VBtn: typeof import('vuetify/components')['VBtn']
507
510
  VBanner: typeof import('vuetify/components')['VBanner']
508
511
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
509
512
  VBannerText: typeof import('vuetify/components')['VBannerText']
510
- VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
511
- VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
512
- VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
513
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
513
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
514
514
  VCarousel: typeof import('vuetify/components')['VCarousel']
515
515
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
516
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
516
517
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
517
518
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
518
- VChip: typeof import('vuetify/components')['VChip']
519
519
  VCard: typeof import('vuetify/components')['VCard']
520
520
  VCardActions: typeof import('vuetify/components')['VCardActions']
521
521
  VCardItem: typeof import('vuetify/components')['VCardItem']
522
522
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
523
523
  VCardText: typeof import('vuetify/components')['VCardText']
524
524
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
525
+ VChip: typeof import('vuetify/components')['VChip']
526
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
527
+ VCounter: typeof import('vuetify/components')['VCounter']
528
+ VCode: typeof import('vuetify/components')['VCode']
525
529
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
526
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
530
+ VCombobox: typeof import('vuetify/components')['VCombobox']
527
531
  VDataTable: typeof import('vuetify/components')['VDataTable']
528
532
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
529
533
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -531,10 +535,6 @@ declare module '@vue/runtime-core' {
531
535
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
532
536
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
533
537
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
534
- VCode: typeof import('vuetify/components')['VCode']
535
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
536
- VCombobox: typeof import('vuetify/components')['VCombobox']
537
- VCounter: typeof import('vuetify/components')['VCounter']
538
538
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
539
539
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
540
540
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
@@ -542,28 +542,30 @@ declare module '@vue/runtime-core' {
542
542
  VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
543
543
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
544
544
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
545
+ VDialog: typeof import('vuetify/components')['VDialog']
546
+ VFab: typeof import('vuetify/components')['VFab']
547
+ VField: typeof import('vuetify/components')['VField']
548
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
545
549
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
546
550
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
547
551
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
548
552
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
549
- VDialog: typeof import('vuetify/components')['VDialog']
550
- VField: typeof import('vuetify/components')['VField']
551
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
552
553
  VDivider: typeof import('vuetify/components')['VDivider']
553
- VFab: typeof import('vuetify/components')['VFab']
554
554
  VFileInput: typeof import('vuetify/components')['VFileInput']
555
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
555
+ VImg: typeof import('vuetify/components')['VImg']
556
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
- VItemGroup: typeof import('vuetify/components')['VItemGroup']
563
- VItem: typeof import('vuetify/components')['VItem']
564
- VImg: typeof import('vuetify/components')['VImg']
565
562
  VKbd: typeof import('vuetify/components')['VKbd']
566
563
  VInput: typeof import('vuetify/components')['VInput']
564
+ VLabel: typeof import('vuetify/components')['VLabel']
565
+ VItemGroup: typeof import('vuetify/components')['VItemGroup']
566
+ VItem: typeof import('vuetify/components')['VItem']
567
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
568
+ VMessages: typeof import('vuetify/components')['VMessages']
567
569
  VList: typeof import('vuetify/components')['VList']
568
570
  VListGroup: typeof import('vuetify/components')['VListGroup']
569
571
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -573,73 +575,69 @@ declare module '@vue/runtime-core' {
573
575
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
574
576
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
575
577
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
576
- VLabel: typeof import('vuetify/components')['VLabel']
577
578
  VMain: typeof import('vuetify/components')['VMain']
578
579
  VMenu: typeof import('vuetify/components')['VMenu']
579
- VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
580
- VMessages: typeof import('vuetify/components')['VMessages']
580
+ VOtpInput: typeof import('vuetify/components')['VOtpInput']
581
581
  VOverlay: typeof import('vuetify/components')['VOverlay']
582
+ VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
583
+ VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
582
584
  VPagination: typeof import('vuetify/components')['VPagination']
583
585
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
584
- VOtpInput: typeof import('vuetify/components')['VOtpInput']
585
- VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
586
586
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
587
587
  VRating: typeof import('vuetify/components')['VRating']
588
- VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
589
588
  VSelect: typeof import('vuetify/components')['VSelect']
589
+ VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
590
590
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
591
591
  VSheet: typeof import('vuetify/components')['VSheet']
592
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
593
592
  VSlider: typeof import('vuetify/components')['VSlider']
594
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
593
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
595
594
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
596
595
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
596
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
597
597
  VStepper: typeof import('vuetify/components')['VStepper']
598
598
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
599
599
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
600
600
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
601
601
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
602
602
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
603
- VSwitch: typeof import('vuetify/components')['VSwitch']
604
603
  VTab: typeof import('vuetify/components')['VTab']
605
604
  VTabs: typeof import('vuetify/components')['VTabs']
606
605
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
607
606
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
608
- VTextField: typeof import('vuetify/components')['VTextField']
609
607
  VSystemBar: typeof import('vuetify/components')['VSystemBar']
608
+ VSwitch: typeof import('vuetify/components')['VSwitch']
609
+ VTable: typeof import('vuetify/components')['VTable']
610
+ VTextarea: typeof import('vuetify/components')['VTextarea']
611
+ VTextField: typeof import('vuetify/components')['VTextField']
610
612
  VToolbar: typeof import('vuetify/components')['VToolbar']
611
613
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
612
614
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
613
- VTextarea: typeof import('vuetify/components')['VTextarea']
614
- VTable: typeof import('vuetify/components')['VTable']
615
+ VTimeline: typeof import('vuetify/components')['VTimeline']
616
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
615
617
  VTooltip: typeof import('vuetify/components')['VTooltip']
616
618
  VWindow: typeof import('vuetify/components')['VWindow']
617
619
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
618
- VTimeline: typeof import('vuetify/components')['VTimeline']
619
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
620
620
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
621
621
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
622
622
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
623
+ VForm: typeof import('vuetify/components')['VForm']
623
624
  VContainer: typeof import('vuetify/components')['VContainer']
624
625
  VCol: typeof import('vuetify/components')['VCol']
625
626
  VRow: typeof import('vuetify/components')['VRow']
626
627
  VSpacer: typeof import('vuetify/components')['VSpacer']
627
- VForm: typeof import('vuetify/components')['VForm']
628
628
  VHover: typeof import('vuetify/components')['VHover']
629
629
  VLayout: typeof import('vuetify/components')['VLayout']
630
630
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
631
631
  VLazy: typeof import('vuetify/components')['VLazy']
632
632
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
633
633
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
634
- VRadio: typeof import('vuetify/components')['VRadio']
635
634
  VParallax: typeof import('vuetify/components')['VParallax']
635
+ VRadio: typeof import('vuetify/components')['VRadio']
636
636
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
637
637
  VResponsive: typeof import('vuetify/components')['VResponsive']
638
638
  VSparkline: typeof import('vuetify/components')['VSparkline']
639
639
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
640
640
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
641
- VValidation: typeof import('vuetify/components')['VValidation']
642
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
643
641
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
644
642
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
645
643
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -656,6 +654,8 @@ declare module '@vue/runtime-core' {
656
654
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
657
655
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
658
656
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
657
+ VValidation: typeof import('vuetify/components')['VValidation']
658
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
659
659
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
660
660
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
661
661
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
@@ -663,19 +663,19 @@ declare module '@vue/runtime-core' {
663
663
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
664
664
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
665
665
  VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
666
- VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
667
- VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
668
- VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
666
+ VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
667
+ VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
668
+ VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
669
669
  VPicker: typeof import('vuetify/labs/components')['VPicker']
670
670
  VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
671
671
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
672
672
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
673
673
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
674
- VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
675
- VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
676
- VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
674
+ VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
675
+ VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
676
+ VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
677
677
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
678
- VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
679
678
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
679
+ VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
680
680
  }
681
681
  }
@@ -70,6 +70,10 @@ export const VNumberInput = genericComponent()({
70
70
  const controlVariant = computed(() => {
71
71
  return props.hideInput ? 'stacked' : props.controlVariant;
72
72
  });
73
+ const incrementIcon = computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse');
74
+ const decrementIcon = computed(() => controlVariant.value === 'split' ? '$minus' : '$expand');
75
+ const controlNodeSize = computed(() => controlVariant.value === 'split' ? 'default' : 'small');
76
+ const controlNodeDefaultHeight = computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
73
77
  const incrementSlotProps = computed(() => ({
74
78
  click: onClickUp
75
79
  }));
@@ -127,18 +131,42 @@ export const VNumberInput = genericComponent()({
127
131
  modelValue: _,
128
132
  ...textFieldProps
129
133
  } = VTextField.filterProps(props);
130
- function controlNode() {
131
- const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%';
132
- return _createVNode("div", {
133
- "class": "v-number-input__control"
134
- }, [!slots.decrement ? _createVNode(VBtn, {
134
+ function incrementControlNode() {
135
+ return !slots.increment ? _createVNode(VBtn, {
136
+ "disabled": !canIncrease.value,
137
+ "flat": true,
138
+ "key": "increment-btn",
139
+ "height": controlNodeDefaultHeight.value,
140
+ "name": "increment-btn",
141
+ "icon": incrementIcon.value,
142
+ "onClick": onClickUp,
143
+ "onMousedown": onControlMousedown,
144
+ "size": controlNodeSize.value,
145
+ "tabindex": "-1"
146
+ }, null) : _createVNode(VDefaultsProvider, {
147
+ "key": "increment-defaults",
148
+ "defaults": {
149
+ VBtn: {
150
+ disabled: !canIncrease.value,
151
+ flat: true,
152
+ height: controlNodeDefaultHeight.value,
153
+ size: controlNodeSize.value,
154
+ icon: incrementIcon.value
155
+ }
156
+ }
157
+ }, {
158
+ default: () => [slots.increment(incrementSlotProps.value)]
159
+ });
160
+ }
161
+ function decrementControlNode() {
162
+ return !slots.decrement ? _createVNode(VBtn, {
135
163
  "disabled": !canDecrease.value,
136
164
  "flat": true,
137
165
  "key": "decrement-btn",
138
- "height": defaultHeight,
166
+ "height": controlNodeDefaultHeight.value,
139
167
  "name": "decrement-btn",
140
- "icon": "$expand",
141
- "size": "small",
168
+ "icon": decrementIcon.value,
169
+ "size": controlNodeSize.value,
142
170
  "tabindex": "-1",
143
171
  "onClick": onClickDown,
144
172
  "onMousedown": onControlMousedown
@@ -148,40 +176,21 @@ export const VNumberInput = genericComponent()({
148
176
  VBtn: {
149
177
  disabled: !canDecrease.value,
150
178
  flat: true,
151
- height: defaultHeight,
152
- size: 'small',
153
- icon: '$expand'
179
+ height: controlNodeDefaultHeight.value,
180
+ size: controlNodeSize.value,
181
+ icon: decrementIcon.value
154
182
  }
155
183
  }
156
184
  }, {
157
185
  default: () => [slots.decrement(decrementSlotProps.value)]
158
- }), _createVNode(VDivider, {
186
+ });
187
+ }
188
+ function controlNode() {
189
+ return _createVNode("div", {
190
+ "class": "v-number-input__control"
191
+ }, [decrementControlNode(), _createVNode(VDivider, {
159
192
  "vertical": controlVariant.value !== 'stacked'
160
- }, null), !slots.increment ? _createVNode(VBtn, {
161
- "disabled": !canIncrease.value,
162
- "flat": true,
163
- "key": "increment-btn",
164
- "height": defaultHeight,
165
- "name": "increment-btn",
166
- "icon": "$collapse",
167
- "onClick": onClickUp,
168
- "onMousedown": onControlMousedown,
169
- "size": "small",
170
- "tabindex": "-1"
171
- }, null) : _createVNode(VDefaultsProvider, {
172
- "key": "increment-defaults",
173
- "defaults": {
174
- VBtn: {
175
- disabled: !canIncrease.value,
176
- flat: true,
177
- height: defaultHeight,
178
- size: 'small',
179
- icon: '$collapse'
180
- }
181
- }
182
- }, {
183
- default: () => [slots.increment(incrementSlotProps.value)]
184
- })]);
193
+ }, null), incrementControlNode()]);
185
194
  }
186
195
  function dividerNode() {
187
196
  return !props.hideInput && !props.inset ? _createVNode(VDivider, {
@@ -192,27 +201,11 @@ export const VNumberInput = genericComponent()({
192
201
  "class": "v-number-input__control"
193
202
  }, [_createVNode(VDivider, {
194
203
  "vertical": true
195
- }, null), _createVNode(VBtn, {
196
- "flat": true,
197
- "height": "100%",
198
- "icon": "$plus",
199
- "tile": true,
200
- "tabindex": "-1",
201
- "onClick": onClickUp,
202
- "onMousedown": onControlMousedown
203
- }, null)]) : !props.reverse ? _createVNode(_Fragment, null, [dividerNode(), controlNode()]) : undefined;
204
+ }, null), incrementControlNode()]) : !props.reverse ? _createVNode(_Fragment, null, [dividerNode(), controlNode()]) : undefined;
204
205
  const hasAppendInner = slots['append-inner'] || appendInnerControl;
205
206
  const prependInnerControl = controlVariant.value === 'split' ? _createVNode("div", {
206
207
  "class": "v-number-input__control"
207
- }, [_createVNode(VBtn, {
208
- "flat": true,
209
- "height": "100%",
210
- "icon": "$minus",
211
- "tile": true,
212
- "tabindex": "-1",
213
- "onClick": onClickDown,
214
- "onMousedown": onControlMousedown
215
- }, null), _createVNode(VDivider, {
208
+ }, [decrementControlNode(), _createVNode(VDivider, {
216
209
  "vertical": true
217
210
  }, null)]) : props.reverse ? _createVNode(_Fragment, null, [controlNode(), dividerNode()]) : undefined;
218
211
  const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
@@ -1 +1 @@
1
- {"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useForm","useProxiedModel","computed","watchEffect","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","Infinity","max","step","VNumberInput","name","props","emits","val","setup","_ref","attrs","emit","slots","model","stepDecimals","modelDecimals","value","form","controlsDisabled","disabled","readonly","isReadonly","canIncrease","canDecrease","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","e","stopPropagation","onKeydown","includes","key","ctrlKey","preventDefault","test","onModelUpdate","v","onControlMousedown","modelValue","_","textFieldProps","filterProps","controlNode","defaultHeight","_createVNode","decrement","flat","height","size","icon","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","class","style","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n click: (e: MouseEvent) => void\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n min: {\n type: Number,\n default: -Infinity,\n },\n max: {\n type: Number,\n default: Infinity,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...omit(makeVTextFieldProps(), ['appendInnerIcon', 'prependInnerIcon']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0)\n\n const form = useForm()\n const controlsDisabled = computed(() => (\n props.disabled || props.readonly || form?.isReadonly.value\n ))\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\n if (controlsDisabled.value) return\n if (model.value != null && (model.value < props.min || model.value > props.max)) {\n model.value = clamp(model.value, props.min, props.max)\n }\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n model.value = 0\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +(((model.value + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +(((model.value - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown()\n }\n\n function onClickDown (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown(false)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown(false)\n return\n }\n if (['ArrowUp'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown()\n return\n }\n\n // Only numbers, +, - & . are allowed\n if (!/^[0-9\\-+.]+$/.test(e.key)) {\n e.preventDefault()\n }\n }\n\n function onModelUpdate (v: string) {\n model.value = v ? +(v) : undefined\n }\n\n function onControlMousedown (e: MouseEvent) {\n e.stopPropagation()\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function controlNode () {\n const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%'\n return (\n <div class=\"v-number-input__control\">\n {\n !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ defaultHeight }\n name=\"decrement-btn\"\n icon=\"$expand\"\n size=\"small\"\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$expand',\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n {\n !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ defaultHeight }\n name=\"increment-btn\"\n icon=\"$collapse\"\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n size=\"small\"\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$collapse',\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n <VBtn\n flat\n height=\"100%\"\n icon=\"$plus\"\n tile\n tabindex=\"-1\"\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n />\n </div>\n ) : (!props.reverse\n ? <>{ dividerNode() }{ controlNode() }</>\n : undefined)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VBtn\n flat\n height=\"100%\"\n icon=\"$minus\"\n tile\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n modelValue={ model.value }\n onUpdate:modelValue={ onModelUpdate }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...textFieldProps }\n style={ props.style }\n inputmode=\"decimal\"\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useForm","useProxiedModel","computed","watchEffect","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","Infinity","max","step","VNumberInput","name","props","emits","val","setup","_ref","attrs","emit","slots","model","stepDecimals","modelDecimals","value","form","controlsDisabled","disabled","readonly","isReadonly","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","e","stopPropagation","onKeydown","includes","key","ctrlKey","preventDefault","test","onModelUpdate","v","onControlMousedown","modelValue","_","textFieldProps","filterProps","incrementControlNode","_createVNode","flat","height","size","icon","decrementControlNode","decrement","controlNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","class","style","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n click: (e: MouseEvent) => void\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n min: {\n type: Number,\n default: -Infinity,\n },\n max: {\n type: Number,\n default: Infinity,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...omit(makeVTextFieldProps(), ['appendInnerIcon', 'prependInnerIcon']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0)\n\n const form = useForm()\n const controlsDisabled = computed(() => (\n props.disabled || props.readonly || form?.isReadonly.value\n ))\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\n if (controlsDisabled.value) return\n if (model.value != null && (model.value < props.min || model.value > props.max)) {\n model.value = clamp(model.value, props.min, props.max)\n }\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementIcon = computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse')\n const decrementIcon = computed(() => controlVariant.value === 'split' ? '$minus' : '$expand')\n const controlNodeSize = computed(() => controlVariant.value === 'split' ? 'default' : 'small')\n const controlNodeDefaultHeight = computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%')\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n model.value = 0\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +(((model.value + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +(((model.value - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown()\n }\n\n function onClickDown (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown(false)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown(false)\n return\n }\n if (['ArrowUp'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown()\n return\n }\n\n // Only numbers, +, - & . are allowed\n if (!/^[0-9\\-+.]+$/.test(e.key)) {\n e.preventDefault()\n }\n }\n\n function onModelUpdate (v: string) {\n model.value = v ? +(v) : undefined\n }\n\n function onControlMousedown (e: MouseEvent) {\n e.stopPropagation()\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function incrementControlNode () {\n return !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"increment-btn\"\n icon={ incrementIcon.value }\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: incrementIcon.value,\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function decrementControlNode () {\n return !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"decrement-btn\"\n icon={ decrementIcon.value }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: decrementIcon.value,\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function controlNode () {\n return (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n { incrementControlNode() }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n { incrementControlNode() }\n </div>\n ) : (!props.reverse\n ? <>{ dividerNode() }{ controlNode() }</>\n : undefined)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n modelValue={ model.value }\n onUpdate:modelValue={ onModelUpdate }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...textFieldProps }\n style={ props.style }\n inputmode=\"decimal\"\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
@@ -35,6 +35,7 @@ export const VStepperVertical = genericComponent()({
35
35
  const vExpansionPanelsRef = ref();
36
36
  const {
37
37
  color,
38
+ eager,
38
39
  editable,
39
40
  prevText,
40
41
  nextText,
@@ -53,6 +54,7 @@ export const VStepperVertical = genericComponent()({
53
54
  provideDefaults({
54
55
  VStepperVerticalItem: {
55
56
  color,
57
+ eager,
56
58
  editable,
57
59
  prevText,
58
60
  nextText,
@@ -1 +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":[]}
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","eager","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, eager, 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 eager,\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":[]}
@@ -5,8 +5,8 @@ import { makeVListProps, useListItems, VList } from "../../components/VList/VLis
5
5
  import { provideDefaults } from "../../composables/defaults.mjs";
6
6
  import { makeFilterProps, useFilter } from "../../composables/filter.mjs";
7
7
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
8
- import { computed, provide, ref, toRef, watch } from 'vue';
9
- import { genericComponent, getCurrentInstance, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
8
+ import { computed, provide, ref, toRef } from 'vue';
9
+ import { genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
10
10
  import { VTreeviewSymbol } from "./shared.mjs";
11
11
  function flatten(items) {
12
12
  let flat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
@@ -26,8 +26,6 @@ export const makeVTreeviewProps = propsFactory({
26
26
  ...omit(makeVListProps({
27
27
  collapseIcon: '$treeviewCollapse',
28
28
  expandIcon: '$treeviewExpand',
29
- selectStrategy: 'classic',
30
- openStrategy: 'multiple',
31
29
  slim: true
32
30
  }), ['nav'])
33
31
  }, 'VTreeview');
@@ -45,17 +43,16 @@ export const VTreeview = genericComponent()({
45
43
  let {
46
44
  slots
47
45
  } = _ref;
48
- const vm = getCurrentInstance('VTreeview');
49
46
  const {
50
47
  items
51
48
  } = useListItems(props);
52
49
  const activeColor = toRef(props, 'activeColor');
53
50
  const baseColor = toRef(props, 'baseColor');
54
51
  const color = toRef(props, 'color');
55
- const opened = useProxiedModel(props, 'opened');
56
52
  const activated = useProxiedModel(props, 'activated');
57
53
  const selected = useProxiedModel(props, 'selected');
58
54
  const vListRef = ref();
55
+ const opened = computed(() => props.openAll ? openAll(items.value) : props.opened);
59
56
  const flatItems = computed(() => flatten(items.value));
60
57
  const search = toRef(props, 'search');
61
58
  const {
@@ -89,11 +86,6 @@ export const VTreeview = genericComponent()({
89
86
  }
90
87
  return arr;
91
88
  }
92
- watch(() => props.openAll, val => {
93
- opened.value = val ? openAll(items.value) : [];
94
- }, {
95
- immediate: true
96
- });
97
89
  function openAll(item) {
98
90
  let ids = [];
99
91
  for (const i of item) {
@@ -128,13 +120,14 @@ export const VTreeview = genericComponent()({
128
120
  }
129
121
  });
130
122
  useRender(() => {
131
- const listProps = VList.filterProps(vm.vnode.props);
123
+ const listProps = VList.filterProps(props);
132
124
  const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
133
125
  return _createVNode(VList, _mergeProps({
134
126
  "ref": vListRef
135
127
  }, listProps, {
136
128
  "class": ['v-treeview', props.class],
137
129
  "style": props.style,
130
+ "opened": opened.value,
138
131
  "activated": activated.value,
139
132
  "onUpdate:activated": $event => activated.value = $event,
140
133
  "selected": selected.value,