@weni/unnnic-system 2.0.11 → 2.0.12
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.
- package/dist/style.css +1 -1
- package/dist/unnnic.mjs +274 -248
- package/dist/unnnic.umd.js +15 -15
- package/package.json +1 -1
- package/src/components/Drawer/Drawer.vue +49 -21
- package/src/stories/Drawer.stories.js +25 -11
package/package.json
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<aside
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
<aside
|
|
3
|
+
v-if="modelValue"
|
|
4
|
+
class="unnnic-drawer"
|
|
5
|
+
>
|
|
6
|
+
<section
|
|
7
|
+
class="unnnic-drawer__overlay"
|
|
8
|
+
@click.stop="close"
|
|
9
|
+
/>
|
|
10
|
+
<transition
|
|
11
|
+
appear
|
|
12
|
+
name="drawer"
|
|
13
|
+
>
|
|
5
14
|
<section
|
|
6
15
|
v-if="showDrawer"
|
|
7
|
-
:class="[
|
|
16
|
+
:class="[
|
|
17
|
+
'unnnic-drawer__container',
|
|
18
|
+
wide && 'unnnic-drawer__container--wide',
|
|
19
|
+
]"
|
|
8
20
|
>
|
|
9
21
|
<header class="unnnic-drawer__header">
|
|
10
22
|
<section class="unnnic-drawer__title-container">
|
|
@@ -27,17 +39,24 @@
|
|
|
27
39
|
<section class="unnnic-drawer__content">
|
|
28
40
|
<slot name="content"></slot>
|
|
29
41
|
</section>
|
|
30
|
-
<footer
|
|
42
|
+
<footer
|
|
43
|
+
v-if="showFooter"
|
|
44
|
+
class="unnnic-drawer__footer"
|
|
45
|
+
>
|
|
31
46
|
<unnnic-button
|
|
32
47
|
v-if="secondaryButtonText"
|
|
33
48
|
size="large"
|
|
34
49
|
type="tertiary"
|
|
50
|
+
:disabled="disabledSecondaryButton"
|
|
51
|
+
:loading="loadingSecondaryButton"
|
|
35
52
|
:text="secondaryButtonText"
|
|
36
53
|
@click="$emit('secondaryButtonClick')"
|
|
37
54
|
/>
|
|
38
55
|
<unnnic-button
|
|
39
56
|
v-if="primaryButtonText"
|
|
40
57
|
size="large"
|
|
58
|
+
:disabled="disabledPrimaryButton"
|
|
59
|
+
:loading="loadingPrimaryButton"
|
|
41
60
|
:type="primaryButtonType"
|
|
42
61
|
:text="primaryButtonText"
|
|
43
62
|
@click="$emit('primaryButtonClick')"
|
|
@@ -72,6 +91,22 @@ export default {
|
|
|
72
91
|
description: {
|
|
73
92
|
type: String,
|
|
74
93
|
},
|
|
94
|
+
disabledPrimaryButton: {
|
|
95
|
+
type: Boolean,
|
|
96
|
+
default: false,
|
|
97
|
+
},
|
|
98
|
+
disabledSecondaryButton: {
|
|
99
|
+
type: Boolean,
|
|
100
|
+
default: false,
|
|
101
|
+
},
|
|
102
|
+
loadingPrimaryButton: {
|
|
103
|
+
type: Boolean,
|
|
104
|
+
default: false,
|
|
105
|
+
},
|
|
106
|
+
loadingSecondaryButton: {
|
|
107
|
+
type: Boolean,
|
|
108
|
+
default: false,
|
|
109
|
+
},
|
|
75
110
|
primaryButtonText: {
|
|
76
111
|
type: String,
|
|
77
112
|
},
|
|
@@ -93,8 +128,8 @@ export default {
|
|
|
93
128
|
},
|
|
94
129
|
computed: {
|
|
95
130
|
showFooter() {
|
|
96
|
-
return !!(this.primaryButtonText || this.secondaryButtonText)
|
|
97
|
-
}
|
|
131
|
+
return !!(this.primaryButtonText || this.secondaryButtonText);
|
|
132
|
+
},
|
|
98
133
|
},
|
|
99
134
|
methods: {
|
|
100
135
|
close() {
|
|
@@ -141,8 +176,8 @@ export default {
|
|
|
141
176
|
|
|
142
177
|
.drawer-leave-active,
|
|
143
178
|
.drawer-leave-to {
|
|
144
|
-
|
|
145
|
-
|
|
179
|
+
display: none;
|
|
180
|
+
animation: drawerClose 200ms ease-in;
|
|
146
181
|
}
|
|
147
182
|
|
|
148
183
|
.unnnic-drawer {
|
|
@@ -156,10 +191,9 @@ export default {
|
|
|
156
191
|
|
|
157
192
|
.unnnic-drawer__overlay {
|
|
158
193
|
z-index: 9;
|
|
159
|
-
background-color: rgba(0,0,0,0.4);
|
|
194
|
+
background-color: rgba(0, 0, 0, 0.4);
|
|
160
195
|
width: 100%;
|
|
161
196
|
height: 100%;
|
|
162
|
-
|
|
163
197
|
}
|
|
164
198
|
|
|
165
199
|
.unnnic-drawer__container {
|
|
@@ -173,7 +207,7 @@ export default {
|
|
|
173
207
|
justify-content: space-between;
|
|
174
208
|
height: 100%;
|
|
175
209
|
background-color: $unnnic-color-neutral-white;
|
|
176
|
-
width: calc(100
|
|
210
|
+
width: calc(100% / 3);
|
|
177
211
|
|
|
178
212
|
&--wide {
|
|
179
213
|
width: 50%;
|
|
@@ -185,7 +219,6 @@ export default {
|
|
|
185
219
|
border-bottom: 1px solid $unnnic-color-neutral-soft;
|
|
186
220
|
padding: $unnnic-spacing-md;
|
|
187
221
|
.unnnic-drawer__title-container {
|
|
188
|
-
|
|
189
222
|
.unnnic-drawer__title {
|
|
190
223
|
color: $unnnic-color-neutral-darkest;
|
|
191
224
|
font-family: $unnnic-font-family-secondary;
|
|
@@ -207,19 +240,14 @@ export default {
|
|
|
207
240
|
margin: $unnnic-spacing-nano;
|
|
208
241
|
transform: rotate(180deg);
|
|
209
242
|
display: flex;
|
|
210
|
-
|
|
243
|
+
}
|
|
211
244
|
}
|
|
212
245
|
|
|
213
246
|
.unnnic-drawer__content {
|
|
214
247
|
overflow-y: auto;
|
|
215
248
|
color: $unnnic-color-neutral-cloudy;
|
|
216
|
-
padding: $unnnic-spacing-md $unnnic-spacing-md 0 $unnnic-spacing-md
|
|
249
|
+
padding: $unnnic-spacing-md $unnnic-spacing-md 0 $unnnic-spacing-md;
|
|
217
250
|
flex: 1 0 0;
|
|
218
|
-
:deep(*) {
|
|
219
|
-
margin: 0;
|
|
220
|
-
padding: 0;
|
|
221
|
-
box-sizing: border-box;
|
|
222
|
-
}
|
|
223
251
|
}
|
|
224
252
|
|
|
225
253
|
.unnnic-drawer__footer {
|
|
@@ -231,4 +259,4 @@ export default {
|
|
|
231
259
|
}
|
|
232
260
|
}
|
|
233
261
|
}
|
|
234
|
-
</style>
|
|
262
|
+
</style>
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import unnnicDrawer from '../components/Drawer/Drawer.vue';
|
|
2
2
|
import unnnicButton from '../components/Button/Button.vue';
|
|
3
3
|
|
|
4
|
-
const primaryButtonTypeOptions = [
|
|
4
|
+
const primaryButtonTypeOptions = [
|
|
5
|
+
'primary',
|
|
6
|
+
'secondary',
|
|
7
|
+
'tertiary',
|
|
8
|
+
'alternative',
|
|
9
|
+
'warning',
|
|
10
|
+
'attention',
|
|
11
|
+
];
|
|
5
12
|
|
|
6
13
|
export default {
|
|
7
14
|
title: 'Example/Drawer',
|
|
@@ -9,7 +16,14 @@ export default {
|
|
|
9
16
|
argTypes: {
|
|
10
17
|
title: { control: { type: 'text' } },
|
|
11
18
|
description: { control: { type: 'text' } },
|
|
12
|
-
primaryButtonType: {
|
|
19
|
+
primaryButtonType: {
|
|
20
|
+
options: primaryButtonTypeOptions,
|
|
21
|
+
control: { type: 'select' },
|
|
22
|
+
},
|
|
23
|
+
disabledPrimaryButton: { control: { type: 'boolean' } },
|
|
24
|
+
disabledSecondaryButton: { control: { type: 'boolean' } },
|
|
25
|
+
loadingPrimaryButton: { control: { type: 'boolean' } },
|
|
26
|
+
loadingSecondaryButton: { control: { type: 'boolean' } },
|
|
13
27
|
primaryButtonText: { control: { type: 'text' } },
|
|
14
28
|
secondaryButtonText: { control: { type: 'text' } },
|
|
15
29
|
modelValue: { control: { type: 'boolean' } },
|
|
@@ -20,7 +34,7 @@ export default {
|
|
|
20
34
|
const Template = (args) => ({
|
|
21
35
|
props: Object.keys(args),
|
|
22
36
|
setup() {
|
|
23
|
-
return { args }
|
|
37
|
+
return { args };
|
|
24
38
|
},
|
|
25
39
|
components: { unnnicDrawer, unnnicButton },
|
|
26
40
|
data() {
|
|
@@ -30,11 +44,11 @@ const Template = (args) => ({
|
|
|
30
44
|
},
|
|
31
45
|
methods: {
|
|
32
46
|
primaryClick() {
|
|
33
|
-
console.log('primaryClick')
|
|
47
|
+
console.log('primaryClick');
|
|
34
48
|
},
|
|
35
49
|
secondaryClick() {
|
|
36
|
-
console.log('secondaryClick')
|
|
37
|
-
}
|
|
50
|
+
console.log('secondaryClick');
|
|
51
|
+
},
|
|
38
52
|
},
|
|
39
53
|
template: `
|
|
40
54
|
<div>
|
|
@@ -42,7 +56,7 @@ const Template = (args) => ({
|
|
|
42
56
|
<button @click="opened = !opened">Change</button>
|
|
43
57
|
<unnnic-drawer v-bind="args" v-model="opened" @close="opened = false" @primaryButtonClick="primaryClick" @secondaryButtonClick="secondaryClick">
|
|
44
58
|
<template #content>
|
|
45
|
-
<p>Conteúdo</p>
|
|
59
|
+
<p style="padding: 0; margin:0;">Conteúdo</p>
|
|
46
60
|
</template>
|
|
47
61
|
</unnnic-drawer>
|
|
48
62
|
</div>
|
|
@@ -70,7 +84,7 @@ const TemplateOveflowed = (args) => ({
|
|
|
70
84
|
props: Object.keys(args),
|
|
71
85
|
components: { unnnicDrawer, unnnicButton },
|
|
72
86
|
setup() {
|
|
73
|
-
return { args }
|
|
87
|
+
return { args };
|
|
74
88
|
},
|
|
75
89
|
data() {
|
|
76
90
|
return {
|
|
@@ -83,7 +97,7 @@ const TemplateOveflowed = (args) => ({
|
|
|
83
97
|
<button @click="opened = !opened">Change</button>
|
|
84
98
|
<unnnic-drawer v-bind="args" v-model="opened" @close="opened = false">
|
|
85
99
|
<template #content>
|
|
86
|
-
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed interdum dolor viverra, aliquam metus dictum, vehicula felis. Nulla sapien nisi, laoreet sit amet nisi sed, consectetur ornare odio. Nullam facilisis a ligula quis accumsan. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus et sodales ex. Donec mauris dui, tempor eget lorem vel, blandit consequat tellus. Maecenas ut justo vitae orci commodo consectetur eget id nisl. Donec auctor sollicitudin ex at lacinia. Integer lobortis, eros nec congue facilisis, augue nisl elementum nibh, pharetra euismod odio turpis eu lorem. Vivamus a tristique tellus.</p>
|
|
100
|
+
<p style="padding: 0; margin:0;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed interdum dolor viverra, aliquam metus dictum, vehicula felis. Nulla sapien nisi, laoreet sit amet nisi sed, consectetur ornare odio. Nullam facilisis a ligula quis accumsan. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus et sodales ex. Donec mauris dui, tempor eget lorem vel, blandit consequat tellus. Maecenas ut justo vitae orci commodo consectetur eget id nisl. Donec auctor sollicitudin ex at lacinia. Integer lobortis, eros nec congue facilisis, augue nisl elementum nibh, pharetra euismod odio turpis eu lorem. Vivamus a tristique tellus.</p>
|
|
87
101
|
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed interdum dolor viverra, aliquam metus dictum, vehicula felis. Nulla sapien nisi, laoreet sit amet nisi sed, consectetur ornare odio. Nullam facilisis a ligula quis accumsan. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus et sodales ex. Donec mauris dui, tempor eget lorem vel, blandit consequat tellus. Maecenas ut justo vitae orci commodo consectetur eget id nisl. Donec auctor sollicitudin ex at lacinia. Integer lobortis, eros nec congue facilisis, augue nisl elementum nibh, pharetra euismod odio turpis eu lorem. Vivamus a tristique tellus.</p>
|
|
88
102
|
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed interdum dolor viverra, aliquam metus dictum, vehicula felis. Nulla sapien nisi, laoreet sit amet nisi sed, consectetur ornare odio. Nullam facilisis a ligula quis accumsan. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus et sodales ex. Donec mauris dui, tempor eget lorem vel, blandit consequat tellus. Maecenas ut justo vitae orci commodo consectetur eget id nisl. Donec auctor sollicitudin ex at lacinia. Integer lobortis, eros nec congue facilisis, augue nisl elementum nibh, pharetra euismod odio turpis eu lorem. Vivamus a tristique tellus.</p>
|
|
89
103
|
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed interdum dolor viverra, aliquam metus dictum, vehicula felis. Nulla sapien nisi, laoreet sit amet nisi sed, consectetur ornare odio. Nullam facilisis a ligula quis accumsan. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus et sodales ex. Donec mauris dui, tempor eget lorem vel, blandit consequat tellus. Maecenas ut justo vitae orci commodo consectetur eget id nisl. Donec auctor sollicitudin ex at lacinia. Integer lobortis, eros nec congue facilisis, augue nisl elementum nibh, pharetra euismod odio turpis eu lorem. Vivamus a tristique tellus.</p>
|
|
@@ -108,7 +122,7 @@ const TemplateVideo = (args) => ({
|
|
|
108
122
|
props: Object.keys(args),
|
|
109
123
|
components: { unnnicDrawer, unnnicButton },
|
|
110
124
|
setup() {
|
|
111
|
-
return { args }
|
|
125
|
+
return { args };
|
|
112
126
|
},
|
|
113
127
|
data() {
|
|
114
128
|
return {
|
|
@@ -133,4 +147,4 @@ ContentVideo.args = {
|
|
|
133
147
|
title: 'Title',
|
|
134
148
|
description: 'Description',
|
|
135
149
|
wide: true,
|
|
136
|
-
};
|
|
150
|
+
};
|