1
- import { VaDivider , VaButton , VaDropdown , VaDropdownContent , VaIcon , VaAvatar } from '../../components'
1
+ import { VaDivider , VaButton , VaDropdown , VaIcon , VaAvatar } from '../../components'
2
2
import VaMenuList from './VaMenuList.vue'
3
3
import VaMenuItem from './components/VaMenuItem.vue'
4
4
import VaMenuGroup from './components/VaMenuGroup.vue'
5
+ import { addText } from '../../../.storybook/interaction-utils/addText'
5
6
6
7
export default {
7
8
title : 'VaMenuList' ,
8
9
component : VaMenuList ,
10
+ tags : [ 'autodocs' ] ,
9
11
}
10
12
11
13
export const Default = ( ) => ( {
@@ -19,23 +21,24 @@ export const Default = () => ({
19
21
export const IconSlot = ( ) => ( {
20
22
components : { VaMenuList, VaAvatar } ,
21
23
data : ( ) => ( {
22
- options : [
23
- { id : '0' , text : 'one' , value : 'one' , icon : 'accessible_forward' , rightIcon : '' } ,
24
- { id : '1' , text : 'two' , value : 'two' , icon : '' , rightIcon : 'home' } ,
25
- { id : '2' , text : 'three' , value : 'three' , icon : 'accessible_forward' , rightIcon : '' } ,
26
- { id : '3' , text : 'four' , value : 'four' , icon : '' , rightIcon : 'accessible_forward' } ,
27
- { id : '4' , text : 'five' , value : 'five' , icon : 'search' } ,
28
- ] ,
29
- value : false ,
24
+ options : [ 'Option 1' , 'Option 2' , 'Option 3' ] ,
30
25
} ) ,
31
26
template : `
32
- <VaMenuList :options="options" v-model="value" >
27
+ <VaMenuList :options="options">
33
28
<template #left-icon>
34
- <va-avatar src="https://randomuser.me/api/portraits/men/2.jpg" />
29
+ [left-icon]
30
+ </template>
31
+ <template #icon>
32
+ [icon]
35
33
</template>
36
34
</VaMenuList>
37
35
` ,
38
36
} )
37
+ addText (
38
+ IconSlot ,
39
+ 'There is no slot for right icon, only for left one.' ,
40
+ 'broken' ,
41
+ )
39
42
40
43
const longGroupName = 'This is a very long group name that should be truncated' . repeat ( 10 )
41
44
export const Groups = ( ) => ( {
@@ -51,14 +54,18 @@ export const Groups = () => ({
51
54
value : false ,
52
55
} ) ,
53
56
template : `
54
- <VaMenuList :options="options" v-model="value" >
57
+ <VaMenuList :options="options">
55
58
</VaMenuList>
56
59
` ,
57
60
} )
61
+ addText (
62
+ Groups ,
63
+ 'Long group name is not truncated in story. We also have too much options - should be minimal amount.' ,
64
+ 'broken' ,
65
+ )
58
66
59
67
export const SlotUsage = ( ) => ( {
60
68
components : { VaMenuList, VaMenuItem, VaMenuGroup } ,
61
-
62
69
template : `
63
70
<VaMenuList>
64
71
<VaMenuGroup group-name="Group 1" />
@@ -78,26 +85,21 @@ export const SlotUsage = () => ({
78
85
79
86
export const Color = ( ) => ( {
80
87
components : { VaMenuList, VaMenuItem, VaMenuGroup } ,
81
-
82
88
data : ( ) => ( {
83
- options : [
84
- { id : '0' , text : 'one' , value : 'one' , icon : 'accessible_forward' } ,
85
- { id : '1' , text : 'two' , value : 'two' , icon : '' , rightIcon : 'home' } ,
86
- { id : '2' , text : 'three' , value : 'three' , icon : 'accessible_forward' , rightIcon : '' } ,
87
- { id : '3' , text : 'four' , value : 'four' , icon : '' , rightIcon : 'accessible_forward' } ,
88
- { id : '4' , text : 'five' , value : 'five' , icon : 'search' , rightIcon : '' } ,
89
- ] ,
90
- value : false ,
89
+ options : [ 'Option 1' , 'Option 2' , 'Option 3' ] ,
91
90
} ) ,
92
-
93
91
template : `
94
92
<VaMenuList color="warning" :options="options" />
95
93
` ,
96
94
} )
95
+ addText (
96
+ Groups ,
97
+ `I don't think we have any other component where 'color' means 'hover-color', let's make it explicit.` ,
98
+ 'broken' ,
99
+ )
97
100
98
101
export const WithDivider = ( ) => ( {
99
102
components : { VaMenuList, VaMenuItem, VaMenuGroup, VaDivider, VaButton } ,
100
-
101
103
template : `
102
104
<VaMenuList>
103
105
<VaMenuItem>
@@ -120,22 +122,8 @@ export const WithDivider = () => ({
120
122
` ,
121
123
} )
122
124
123
- const subMenu = `
124
- <VaDropdownContent style="margin-top: calc(var(--va-menu-padding-y) * -1)">
125
- <VaMenuList>
126
- <VaMenuItem>
127
- Group 1
128
- </VaMenuItem>
129
- <VaMenuItem>
130
- Group 2
131
- </VaMenuItem>
132
- </VaMenuList>
133
- </VaDropdownContent>
134
- `
135
-
136
125
export const WithDropdown = ( ) => ( {
137
- components : { VaMenuList, VaMenuItem, VaMenuGroup, VaDivider, VaButton, VaDropdown, VaDropdownContent, VaIcon } ,
138
-
126
+ components : { VaMenuList, VaMenuItem, VaMenuGroup, VaDivider, VaButton, VaDropdown, VaIcon } ,
139
127
template : `
140
128
<VaMenuList>
141
129
<VaMenuItem>
@@ -154,7 +142,16 @@ export const WithDropdown = () => ({
154
142
</VaMenuItem>
155
143
</template>
156
144
157
- ${ subMenu }
145
+ <VaDropdownContent style="margin-top: calc(var(--va-menu-padding-y) * -1)">
146
+ <VaMenuList>
147
+ <VaMenuItem>
148
+ Group 1
149
+ </VaMenuItem>
150
+ <VaMenuItem>
151
+ Group 2
152
+ </VaMenuItem>
153
+ </VaMenuList>
154
+ </VaDropdownContent>
158
155
</VaDropdown>
159
156
160
157
<VaMenuItem icon="home">
0 commit comments