@weni/unnnic-system 2.0.8 → 2.0.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weni/unnnic-system",
3
- "version": "2.0.8",
3
+ "version": "2.0.10",
4
4
  "type": "commonjs",
5
5
  "files": [
6
6
  "dist",
@@ -99,12 +99,12 @@ $unnnic-color-aux-baby-green: #B2FCA6;
99
99
  $unnnic-color-aux-baby-pink: #FFCBF6;
100
100
 
101
101
  /* Brand */
102
- $unnnic-color-brand-weni: $unnnic-color-weni-500;
103
- $unnnic-color-brand-weni-dark: #005E5A;
104
- $unnnic-color-brand-weni-soft: #009E96;
105
- $unnnic-color-brand-sec-dark: #262626;
106
- $unnnic-color-brand-sec-soft: #808080;
107
- $unnnic-color-brand-sec: #CCCCCC;
102
+ $unnnic-color-brand-weni: $unnnic-color-weni-600;
103
+ $unnnic-color-brand-weni-dark: $unnnic-color-weni-800;
104
+ $unnnic-color-brand-weni-soft: $unnnic-color-weni-600;
105
+ $unnnic-color-brand-sec-dark: $unnnic-color-neutral-black;
106
+ $unnnic-color-brand-sec-soft: $unnnic-color-neutral-dark;
107
+ $unnnic-color-brand-sec: $unnnic-color-neutral-cleanest;
108
108
 
109
109
  :export{
110
110
  unnnicColorBackgroundSolo: $unnnic-color-background-solo;
@@ -0,0 +1,180 @@
1
+ <template>
2
+ <section
3
+ :class="[
4
+ 'banner-alert',
5
+ {
6
+ 'banner-alert--banner-danger': type === 'danger',
7
+ 'banner-alert--banner-warning': type === 'warning',
8
+ },
9
+ ]"
10
+ >
11
+ <header
12
+ v-show="text"
13
+ class="banner-alert__container-text"
14
+ >
15
+ <UnnnicIcon
16
+ class="banner-alert__textIcon"
17
+ v-show="isShowTextIcon(type)"
18
+ :icon="getIconType(type)"
19
+ size="sm"
20
+ scheme="neutral-white"
21
+ />
22
+ <p class="text">{{ text }}</p>
23
+ <a
24
+ v-if="linkHref"
25
+ class="banner-alert__link"
26
+ :href="linkHref"
27
+ :target="linkTarget"
28
+ >
29
+ {{ linkText }}
30
+ </a>
31
+ </header>
32
+
33
+ <div
34
+ v-show="showCloseButton"
35
+ class="banner-alert__close"
36
+ @click="emitClose"
37
+ >
38
+ <UnnnicIcon
39
+ icon="close"
40
+ size="sm"
41
+ scheme="neutral-white"
42
+ />
43
+ </div>
44
+ </section>
45
+ </template>
46
+
47
+ <script>
48
+ import UnnnicIcon from '../Icon.vue';
49
+
50
+ export default {
51
+ components: {
52
+ UnnnicIcon,
53
+ },
54
+ methods: {
55
+ getIconType(type) {
56
+ if (type === 'danger') return 'block';
57
+ if (!type.trim()) return 'info'; // check if type is empty or whitespace
58
+ return type;
59
+ },
60
+ isShowTextIcon(type) {
61
+ return ['danger', 'warning', 'info', ''].includes(type);
62
+ },
63
+ emitClose() {
64
+ this.onClose();
65
+
66
+ this.$emit('close');
67
+ },
68
+ },
69
+ props: {
70
+ text: {
71
+ type: String,
72
+ default: null,
73
+ },
74
+ onClose: {
75
+ type: Function,
76
+ default: () => {},
77
+ },
78
+ showCloseButton: {
79
+ type: Boolean,
80
+ default: false,
81
+ },
82
+ linkHref: {
83
+ type: String,
84
+ default: '',
85
+ },
86
+ linkTarget: {
87
+ type: String,
88
+ default: '_blank',
89
+ },
90
+ linkText: {
91
+ type: String,
92
+ default: 'Learn more',
93
+ },
94
+ type: {
95
+ type: String,
96
+ default: 'info',
97
+ },
98
+ },
99
+ };
100
+ </script>
101
+
102
+ <style lang="scss" scoped>
103
+ @import '../../assets/scss/unnnic.scss';
104
+
105
+ .banner-alert {
106
+ display: grid;
107
+ grid-template-columns: 1fr auto;
108
+ text-align: center;
109
+ margin-bottom: $unnnic-spacing-sm;
110
+
111
+ color: $unnnic-color-neutral-white;
112
+ font-family: $unnnic-font-family-secondary;
113
+ font-size: $unnnic-font-size-body-gt;
114
+ line-height: $unnnic-font-size-body-gt + $unnnic-line-height-md;
115
+ font-weight: $unnnic-font-weight-regular;
116
+ background-color: $unnnic-color-aux-blue-500;
117
+
118
+ &__container-text {
119
+ display: flex;
120
+ justify-content: center;
121
+ align-items: center;
122
+ padding: $unnnic-spacing-xs $unnnic-spacing-sm;
123
+ flex-grow: 1;
124
+
125
+ .text {
126
+ margin: 0 $unnnic-spacing-nano 0 0;
127
+ }
128
+ }
129
+
130
+ &__textIcon {
131
+ margin-right: $unnnic-spacing-xs;
132
+ }
133
+
134
+ &__link {
135
+ color: inherit;
136
+ display: block;
137
+ font-weight: $unnnic-font-weight-bold;
138
+ text-decoration: underline;
139
+ text-underline-position: under;
140
+ }
141
+
142
+ &__close {
143
+ display: flex;
144
+ align-items: center;
145
+ max-height: 38px;
146
+ padding: 0 $unnnic-spacing-sm;
147
+ cursor: pointer;
148
+ user-select: none;
149
+ border-left: $unnnic-border-width-thinner solid $unnnic-color-aux-blue-300;
150
+ &:hover {
151
+ background-color: $unnnic-color-aux-blue-300;
152
+ }
153
+ }
154
+
155
+ &--banner-warning {
156
+ background-color: $unnnic-color-aux-orange-500;
157
+
158
+ .banner-alert__close {
159
+ border-left: $unnnic-border-width-thinner solid
160
+ $unnnic-color-aux-orange-300;
161
+
162
+ &:hover {
163
+ background-color: $unnnic-color-aux-orange-300;
164
+ }
165
+ }
166
+ }
167
+
168
+ &--banner-danger {
169
+ background-color: $unnnic-color-aux-red-500;
170
+
171
+ .banner-alert__close {
172
+ border-left: $unnnic-border-width-thinner solid $unnnic-color-aux-red-300;
173
+
174
+ &:hover {
175
+ background-color: $unnnic-color-aux-red-300;
176
+ }
177
+ }
178
+ }
179
+ }
180
+ </style>
@@ -6,7 +6,7 @@
6
6
  <UnnnicToolTip
7
7
  v-if="isRecording || canDiscard"
8
8
  enabled
9
- text="Descartar"
9
+ :text="$t('audio_recorder.discard_button')"
10
10
  side="top"
11
11
  >
12
12
  <span
@@ -236,7 +236,7 @@ export default {
236
236
  });
237
237
 
238
238
  this.audio.addEventListener('pause', () => {
239
- this.status = 'paused';
239
+ if (this.audio) this.status = 'paused';
240
240
  });
241
241
 
242
242
  this.audio.addEventListener('timeupdate', () => {
@@ -276,6 +276,8 @@ export default {
276
276
  this.stop();
277
277
  }
278
278
 
279
+ this.audio = null;
280
+
279
281
  this.$emit('input', null);
280
282
 
281
283
  this.status = 'idle';
@@ -289,7 +291,7 @@ export default {
289
291
  pause() {
290
292
  this.audio.pause();
291
293
  },
292
- async stop() {
294
+ stop() {
293
295
  this.status = 'recorded';
294
296
  this.pause();
295
297
 
@@ -1,176 +1,79 @@
1
1
  <template>
2
- <div class="unnnic-card-company">
3
- <div class="content">
4
- <div class="header">
5
- <div
6
- class="title"
7
- :title="title"
8
- >
9
- {{ cutLength(title, 20) }}
10
- </div>
11
-
12
- <div
13
- v-if="tag"
14
- class="tag"
15
- >
16
- {{ tag }}
17
- </div>
18
- </div>
2
+ <div
3
+ :class="[
4
+ 'unnnic-connect-card-company',
5
+ { 'unnnic-connect-card-company--old-version': oldVersion },
6
+ ]"
7
+ @click="$emit('enter')"
8
+ >
9
+ <div>
10
+ <h2 class="name">{{ name }}</h2>
11
+
12
+ <p class="description">
13
+ {{ description }}
14
+ </p>
19
15
 
20
16
  <div
21
- class="description"
22
- :title="description"
17
+ v-if="plan"
18
+ :class="['tag', plan]"
23
19
  >
24
- {{ cutLength(description, 36) }}
25
- </div>
26
-
27
- <div class="members">
28
- <div class="avatars">
29
- <ToolTip
30
- v-for="(member, index) in membersLimited"
31
- :key="index"
32
- class="avatar-container"
33
- side="top"
34
- :text="member.name"
35
- enabled
36
- >
37
- <div class="avatar__background">
38
- <div
39
- class="avatar"
40
- :style="{ backgroundImage: `url(${member.photo})` }"
41
- />
42
- </div>
43
- </ToolTip>
44
- </div>
45
-
46
- <div class="members-description">{{ membersDescription }}</div>
20
+ {{ i18n(`plans.${plan}`) }}
47
21
  </div>
48
22
  </div>
49
- <div class="join-button">
50
- <UnnnicTag
51
- @click="join"
52
- :text="joinLabel"
53
- scheme="aux-blue"
54
- clickable
55
- ></UnnnicTag>
56
- </div>
57
- <div
58
- class="more-button"
59
- v-if="options.length"
60
- >
61
- <UnnnicDropdown>
23
+
24
+ <UnnnicTag
25
+ v-if="actionText"
26
+ class="action"
27
+ @click="$emit('action')"
28
+ clickable
29
+ :text="actionText"
30
+ scheme="aux-blue"
31
+ />
32
+
33
+ <div v-if="$slots.options">
34
+ <UnnnicDropdown
35
+ @click.prevent
36
+ v-model:open="isOptionsOpen"
37
+ class="unnnic-dropdown"
38
+ >
62
39
  <template v-slot:trigger>
63
40
  <UnnnicIcon
41
+ class="menu-icon"
64
42
  icon="navigation-menu-vertical-1"
65
- scheme="neutral-cleanest"
66
43
  size="sm"
67
- clickable
68
- />
44
+ :scheme="isOptionsOpen ? 'neutral-cloudy' : 'neutral-clean'"
45
+ ></UnnnicIcon>
69
46
  </template>
70
47
 
71
- <UnnnicDropdownItem
72
- v-for="(option, index) in options"
73
- :key="index"
74
- @click="
75
- () => {
76
- if (option.click) {
77
- option.click();
78
- }
79
- }
80
- "
81
- >
82
- <div :class="['menu-item', { [option.scheme]: option.scheme }]">
83
- <UnnnicIcon
84
- class="icon"
85
- size="sm"
86
- :icon="option.icon"
87
- :scheme="option.scheme ? option.scheme : 'neutral-dark'"
88
- />
89
-
90
- {{ option.title }}
91
- </div>
92
- </UnnnicDropdownItem>
48
+ <slot name="options"></slot>
93
49
  </UnnnicDropdown>
94
50
  </div>
95
51
  </div>
96
52
  </template>
97
53
 
98
54
  <script>
55
+ import UnnnicI18n from '../../mixins/i18n';
99
56
  import UnnnicTag from '../Tag/Tag.vue';
100
- import UnnnicIcon from '../Icon.vue';
101
- import UnnnicDropdown from '../Dropdown/Dropdown.vue';
102
- import UnnnicDropdownItem from '../Dropdown/DropdownItem.vue';
103
- import ToolTip from '../ToolTip/ToolTip.vue';
104
57
 
105
58
  export default {
106
59
  components: {
107
60
  UnnnicTag,
108
- UnnnicIcon,
109
- UnnnicDropdown,
110
- UnnnicDropdownItem,
111
- ToolTip,
112
61
  },
113
62
 
63
+ mixins: [UnnnicI18n],
64
+
114
65
  props: {
115
- title: {
116
- type: String,
117
- },
118
-
119
- tag: {
120
- type: String,
121
- },
122
-
123
- description: {
124
- type: String,
125
- },
126
-
127
- joinLabel: {
128
- type: String,
129
- },
130
-
131
- options: {
132
- type: Array,
133
- default() {
134
- return [];
135
- },
136
- },
137
-
138
- members: {
139
- type: Array,
140
- default() {
141
- return [];
142
- },
143
- },
144
-
145
- membersDescription: {
146
- type: String,
147
- },
66
+ oldVersion: Boolean,
67
+ name: String,
68
+ description: String,
69
+ plan: String,
70
+ actionText: String,
148
71
  },
149
72
 
150
73
  data() {
151
- return {};
152
- },
153
-
154
- methods: {
155
- join() {
156
- this.$emit('join');
157
- },
158
-
159
- cutLength(text, length) {
160
- const posText = text.trim();
161
-
162
- if (posText.length > length) {
163
- return `${posText.slice(0, length).trim()}...`;
164
- }
165
-
166
- return posText;
167
- },
168
- },
169
-
170
- computed: {
171
- membersLimited() {
172
- return this.members.slice(0, 3);
173
- },
74
+ return {
75
+ isOptionsOpen: false,
76
+ };
174
77
  },
175
78
  };
176
79
  </script>
@@ -178,135 +81,109 @@ export default {
178
81
  <style lang="scss" scoped>
179
82
  @import '../../assets/scss/unnnic.scss';
180
83
 
181
- .unnnic-card-company {
182
- background-color: $unnnic-color-background-sky;
183
- border-radius: $unnnic-border-radius-md;
184
- padding: $unnnic-spacing-inset-md;
185
- min-width: 18.5 * $unnnic-font-size;
186
- border: $unnnic-border-width-thin solid transparent;
84
+ .unnnic-connect-card-company {
85
+ cursor: pointer;
187
86
  display: flex;
188
- align-items: center;
87
+ column-gap: $unnnic-spacing-sm;
88
+ justify-content: space-between;
89
+
90
+ outline-style: solid;
91
+ outline-color: $unnnic-color-neutral-cleanest;
92
+ outline-width: $unnnic-border-width-thinner;
93
+ outline-offset: -$unnnic-border-width-thinner;
94
+
95
+ background-color: $unnnic-color-background-white;
96
+ padding: $unnnic-spacing-md;
97
+ border-radius: $unnnic-border-radius-md;
189
98
 
190
99
  &:hover {
191
- border: $unnnic-border-width-thin solid $unnnic-color-neutral-soft;
100
+ box-shadow: $unnnic-shadow-level-near;
192
101
  }
193
102
 
194
- .content {
195
- flex: 1;
196
-
197
- .header {
198
- display: flex;
199
- align-items: center;
200
- margin-bottom: $unnnic-spacing-stack-nano;
201
-
202
- .title {
203
- font-family: $unnnic-font-family-secondary;
204
- font-size: $unnnic-font-size-title-md;
205
- font-weight: $unnnic-font-weight-bold;
206
- line-height: $unnnic-font-size-title-md + $unnnic-line-height-md;
207
- color: $unnnic-color-neutral-black;
208
-
209
- display: -webkit-box;
210
- -webkit-line-clamp: 2;
211
- -webkit-box-orient: vertical;
212
- overflow: hidden;
213
- text-overflow: ellipsis;
214
- }
103
+ .name {
104
+ color: $unnnic-color-neutral-black;
215
105
 
216
- .tag {
217
- margin-left: $unnnic-spacing-inline-ant;
218
- padding: $unnnic-spacing-stack-nano $unnnic-spacing-inline-ant;
219
- outline-style: solid;
220
- outline-color: $unnnic-color-neutral-dark;
221
- outline-width: $unnnic-border-width-thinner;
222
- outline-offset: -$unnnic-border-width-thinner;
223
- border-radius: $unnnic-border-radius-sm;
224
- user-select: none;
225
-
226
- font-family: $unnnic-font-family-secondary;
227
- font-size: $unnnic-font-size-body-md;
228
- line-height: $unnnic-font-size-body-md + $unnnic-line-height-md;
229
- font-weight: $unnnic-font-weight-regular;
230
- color: $unnnic-color-neutral-dark;
231
- }
232
- }
106
+ font-family: $unnnic-font-family-secondary;
107
+ font-weight: $unnnic-font-weight-bold;
108
+ font-size: $unnnic-font-size-title-md;
109
+ line-height: $unnnic-font-size-title-md + $unnnic-line-height-md;
233
110
 
234
- .description {
235
- font-family: $unnnic-font-family-secondary;
236
- font-size: $unnnic-font-size-body-lg;
237
- font-weight: $unnnic-font-weight-regular;
238
- line-height: $unnnic-font-size-body-lg + $unnnic-line-height-md;
239
- color: $unnnic-color-neutral-dark;
240
- margin-bottom: $unnnic-spacing-stack-md;
241
-
242
- display: -webkit-box;
243
- -webkit-line-clamp: 2;
244
- -webkit-box-orient: vertical;
245
- overflow: hidden;
246
- text-overflow: ellipsis;
247
- }
111
+ margin: 0;
112
+ margin-bottom: $unnnic-spacing-ant;
113
+ }
248
114
 
249
- .members {
250
- display: flex;
251
- align-items: center;
252
-
253
- .avatars {
254
- .avatar-container {
255
- border-radius: 50%;
256
-
257
- &:not(:first-child) {
258
- margin-left: -0.875 * $unnnic-font-size;
259
- }
260
- }
261
-
262
- .avatar__background {
263
- border-radius: 50%;
264
- background: $unnnic-color-neutral-cleanest;
265
- }
266
-
267
- .avatar {
268
- width: $unnnic-avatar-size-sm;
269
- height: $unnnic-avatar-size-sm;
270
- border-radius: 50%;
271
- border: $unnnic-border-width-thin solid $unnnic-color-neutral-black;
272
- background-size: cover;
273
- background-position: center center;
274
- }
275
- }
115
+ .description {
116
+ color: $unnnic-color-neutral-dark;
276
117
 
277
- .members-description {
278
- font-family: $unnnic-font-family-secondary;
279
- font-size: $unnnic-font-size-body-gt;
280
- font-weight: $unnnic-font-weight-regular;
281
- line-height: $unnnic-font-size-body-gt + $unnnic-line-height-md;
282
- color: $unnnic-color-neutral-darkest;
283
- margin-left: $unnnic-spacing-inline-nano;
284
- }
285
- }
118
+ font-family: $unnnic-font-family-secondary;
119
+ font-weight: $unnnic-font-weight-regular;
120
+ font-size: $unnnic-font-size-body-lg;
121
+ line-height: $unnnic-font-size-body-lg + $unnnic-line-height-md;
122
+
123
+ margin: 0;
286
124
  }
287
125
 
288
- .join-button {
289
- margin-left: $unnnic-spacing-inline-xs;
290
- padding: $unnnic-spacing-inset-nano;
126
+ .action {
127
+ align-self: center;
291
128
  }
292
129
 
293
- .more-button {
294
- margin-left: $unnnic-spacing-inline-nano;
130
+ &--old-version {
131
+ outline: none;
132
+ background-color: $unnnic-color-background-sky;
133
+ column-gap: $unnnic-spacing-xs;
295
134
 
296
- .menu-item {
297
- display: flex;
298
- align-items: center;
299
- overflow: hidden;
300
- white-space: nowrap;
135
+ &:hover {
136
+ box-shadow: none;
301
137
 
302
- .icon {
303
- margin-right: $unnnic-inline-xs;
304
- }
138
+ outline-style: solid;
139
+ outline-color: $unnnic-color-neutral-soft;
140
+ outline-width: $unnnic-border-width-thin;
141
+ outline-offset: -$unnnic-border-width-thin;
142
+ }
305
143
 
306
- &.feedback-red {
307
- color: $unnnic-color-feedback-red;
144
+ .name {
145
+ margin-bottom: $unnnic-spacing-nano;
146
+ }
147
+ }
148
+
149
+ .tag {
150
+ display: inline-block;
151
+ user-select: none;
152
+
153
+ font-family: $unnnic-font-family-secondary;
154
+ font-weight: $unnnic-font-weight-regular;
155
+ font-size: $unnnic-font-size-body-md;
156
+ line-height: $unnnic-font-size-body-md + $unnnic-line-height-md;
157
+
158
+ margin-top: $unnnic-spacing-sm;
159
+ padding: $unnnic-spacing-nano $unnnic-spacing-ant;
160
+ border-radius: $unnnic-border-radius-pill;
161
+
162
+ $plan-colors:
163
+ 'trial' $unnnic-color-aux-blue-500,
164
+ 'scale' $unnnic-color-aux-orange-500,
165
+ 'advanced' $unnnic-color-aux-purple-500,
166
+ 'enterprise' $unnnic-color-aux-green-500;
167
+
168
+ @each $name, $color in $plan-colors {
169
+ &.#{$name} {
170
+ color: $color;
171
+ background-color: rgba($color, $unnnic-opacity-level-extra-light);
308
172
  }
309
173
  }
310
174
  }
175
+
176
+ .menu-icon {
177
+ display: block;
178
+ margin-block: $unnnic-spacing-xs;
179
+ user-select: none;
180
+ }
181
+
182
+ .unnnic-dropdown {
183
+ :deep(.unnnic-dropdown__trigger .unnnic-dropdown__content) {
184
+ margin-top: 0;
185
+ padding: 0;
186
+ }
187
+ }
311
188
  }
312
189
  </style>