@weni/unnnic-system 3.3.1-alpha.3 → 3.3.2

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 (203) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/dist/components/Accordion/Accordion.vue.d.ts +1 -1
  3. package/dist/components/Alert/Alert.vue.d.ts +119 -18
  4. package/dist/components/Alert/Alert.vue.d.ts.map +1 -1
  5. package/dist/components/Alert/Version1dot1.vue.d.ts +38 -2
  6. package/dist/components/Alert/Version1dot1.vue.d.ts.map +1 -1
  7. package/dist/components/AudioRecorder/AudioHandler.vue.d.ts +2 -2
  8. package/dist/components/AudioRecorder/AudioPlayer.vue.d.ts +1 -1
  9. package/dist/components/AudioRecorder/AudioRecorder.vue.d.ts +5 -5
  10. package/dist/components/AvatarIcon/AvatarIcon.vue.d.ts +2 -2
  11. package/dist/components/Banner/Banner.vue.d.ts +1 -1
  12. package/dist/components/Banner/InfoBanner.vue.d.ts +1 -1
  13. package/dist/components/Breadcrumb/Breadcrumb.vue.d.ts +1 -1
  14. package/dist/components/Button/Button.vue.d.ts +2 -2
  15. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  16. package/dist/components/Button/ButtonIcon.vue.d.ts +1 -1
  17. package/dist/components/Button/types.d.ts +1 -1
  18. package/dist/components/Button/types.d.ts.map +1 -1
  19. package/dist/components/Card/AccountCard.vue.d.ts +3 -3
  20. package/dist/components/Card/BlankCard.vue.d.ts +1 -1
  21. package/dist/components/Card/Card.vue.d.ts +21 -21
  22. package/dist/components/Card/CardCompany.vue.d.ts +8 -8
  23. package/dist/components/Card/CardData.vue.d.ts +1 -1
  24. package/dist/components/Card/CardStatusesContainer.vue.d.ts +4 -4
  25. package/dist/components/Card/ContentCard.vue.d.ts +2 -2
  26. package/dist/components/Card/DashCard.vue.d.ts +4 -4
  27. package/dist/components/Card/DefaultCard.vue.d.ts +1 -1
  28. package/dist/components/Card/MarketplaceCard.vue.d.ts +2 -2
  29. package/dist/components/Card/SimpleCard.vue.d.ts +3 -3
  30. package/dist/components/Card/StatusCard.vue.d.ts +2 -2
  31. package/dist/components/Card/TitleCard.vue.d.ts +2 -2
  32. package/dist/components/CardImage/CardImage.vue.d.ts +8 -8
  33. package/dist/components/CardInformation/CardInformation.vue.d.ts +4 -4
  34. package/dist/components/CardProject/CardProject.vue.d.ts +3 -3
  35. package/dist/components/Carousel/Carousel.vue.d.ts +11 -11
  36. package/dist/components/Carousel/TagCarousel.vue.d.ts +9 -9
  37. package/dist/components/ChartBar/ChartBar.vue.d.ts +8 -8
  38. package/dist/components/ChartLine/ChartLine.vue.d.ts +1 -1
  39. package/dist/components/ChatText/ChatText.vue.d.ts +2 -2
  40. package/dist/components/ChatsContact/ChatsContact.vue.d.ts +15 -15
  41. package/dist/components/ChatsDashboardTagLive/ChatsDashboardTagLive.vue.d.ts +1 -1
  42. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts +1 -1
  43. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts.map +1 -1
  44. package/dist/components/ChatsMessage/ChatsMessage.vue.d.ts +5 -5
  45. package/dist/components/ChatsMessage/ChatsMessageStatusBackdrop.vue.d.ts +2 -2
  46. package/dist/components/ChatsNavbar/ChatsNavbar.vue.d.ts +1 -1
  47. package/dist/components/ChatsUserAvatar/ChatsUserAvatar.vue.d.ts +2 -2
  48. package/dist/components/Checkbox/Checkbox.vue.d.ts +3 -3
  49. package/dist/components/Comment/Comment.vue.d.ts +1 -1
  50. package/dist/components/DataArea/DataArea.vue.d.ts +2 -2
  51. package/dist/components/DataTable/index.vue.d.ts +1 -1
  52. package/dist/components/DataTable/index.vue.d.ts.map +1 -1
  53. package/dist/components/DateFilter/DateFilter.vue.d.ts +29 -176
  54. package/dist/components/DatePicker/DatePicker.vue.d.ts +8 -8
  55. package/dist/components/Drawer/Drawer.vue.d.ts +7 -7
  56. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  57. package/dist/components/Dropdown/LanguageSelect.vue.d.ts +3 -3
  58. package/dist/components/Flag.vue.d.ts +2 -2
  59. package/dist/components/FormElement/FormElement.vue.d.ts +32 -38
  60. package/dist/components/FormElement/FormElement.vue.d.ts.map +1 -1
  61. package/dist/components/Icon.vue.d.ts +1 -1
  62. package/dist/components/IconLoading/IconLoading.vue.d.ts +1 -1
  63. package/dist/components/ImportCard/ImportCard.vue.d.ts +7 -7
  64. package/dist/components/Input/BaseInput.vue.d.ts +1 -32
  65. package/dist/components/Input/BaseInput.vue.d.ts.map +1 -1
  66. package/dist/components/Input/Input.vue.d.ts +29 -176
  67. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  68. package/dist/components/Input/TextInput.vue.d.ts +14 -83
  69. package/dist/components/Input/TextInput.vue.d.ts.map +1 -1
  70. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts +39 -186
  71. package/dist/components/InputNext/InputNext.vue.d.ts +4 -4
  72. package/dist/components/Label/Label.vue.d.ts +15 -9
  73. package/dist/components/Label/Label.vue.d.ts.map +1 -1
  74. package/dist/components/Modal/Modal.vue.d.ts +2 -2
  75. package/dist/components/ModalDialog/ModalDialog.vue.d.ts +9 -9
  76. package/dist/components/ModalDialog/ModalDialog.vue.d.ts.map +1 -1
  77. package/dist/components/ModalNext/ModalNext.vue.d.ts +37 -184
  78. package/dist/components/ModalUpload/ModalUpload.vue.d.ts +14 -14
  79. package/dist/components/MoodRating/MoodRating.vue.d.ts +1 -1
  80. package/dist/components/MultiSelect/MultiSelect.vue.d.ts +14 -20
  81. package/dist/components/Pagination/Pagination.vue.d.ts +6 -6
  82. package/dist/components/ProgressBar/ProgressBar.vue.d.ts +1 -1
  83. package/dist/components/Radio/Radio.vue.d.ts +6 -8
  84. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  85. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +28 -97
  86. package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +8 -8
  87. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +4 -4
  88. package/dist/components/SelectTime/index.vue.d.ts +14 -83
  89. package/dist/components/SkeletonLoading/skeletonTheme.vue.d.ts +1 -1
  90. package/dist/components/Slider/Slider.vue.d.ts +2 -2
  91. package/dist/components/StarRating/StarRating.vue.d.ts +1 -1
  92. package/dist/components/Switch/Switch.vue.d.ts +2 -2
  93. package/dist/components/Tab/Tab.vue.d.ts +2 -13
  94. package/dist/components/TableNext/TableBodyCell.vue.d.ts +2 -2
  95. package/dist/components/TableNext/TablePagination.vue.d.ts +6 -6
  96. package/dist/components/TabsExpanded/TabsExpanded.vue.d.ts +1 -1
  97. package/dist/components/Tag/BrandTag.vue.d.ts +2 -2
  98. package/dist/components/Tag/DefaultTag.vue.d.ts +2 -2
  99. package/dist/components/Tag/IndicatorTag.vue.d.ts +2 -2
  100. package/dist/components/Tag/Tag.vue.d.ts +8 -8
  101. package/dist/components/TextArea/TextArea.vue.d.ts +32 -38
  102. package/dist/components/TextArea/TextArea.vue.d.ts.map +1 -1
  103. package/dist/components/ToolTip/ToolTip.vue.d.ts +1 -1
  104. package/dist/components/Tour/Tour.vue.d.ts +6 -6
  105. package/dist/components/Tour/TourPopover.vue.d.ts +6 -6
  106. package/dist/components/UploadArea/UploadArea.vue.d.ts +7 -7
  107. package/dist/components/index.d.ts +1110 -2132
  108. package/dist/components/index.d.ts.map +1 -1
  109. package/dist/{es-94ab560e.mjs → es-54ddaf5a.mjs} +1 -1
  110. package/dist/{index-5caf403e.mjs → index-a34da30f.mjs} +8094 -8447
  111. package/dist/locales/en.json.d.ts +1 -2
  112. package/dist/locales/es.json.d.ts +1 -2
  113. package/dist/locales/pt_br.json.d.ts +1 -2
  114. package/dist/{pt-br-3002df05.mjs → pt-br-ff00f945.mjs} +1 -1
  115. package/dist/style.css +1 -1
  116. package/dist/unnnic.mjs +120 -126
  117. package/dist/unnnic.umd.js +41 -42
  118. package/dist/utils/call.d.ts +1 -2
  119. package/dist/utils/call.d.ts.map +1 -1
  120. package/package.json +2 -2
  121. package/src/assets/scss/scheme-colors.scss +238 -115
  122. package/src/components/Alert/Alert.vue +135 -26
  123. package/src/components/Alert/AlertBanner.vue +182 -0
  124. package/src/components/Alert/AlertCaller.vue +49 -0
  125. package/src/components/Alert/Version1dot1.vue +36 -0
  126. package/src/components/Alert/__tests__/AlertBanner.spec.js +89 -0
  127. package/src/components/Alert/__tests__/AlertCaller.spec.js +98 -0
  128. package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +7 -11
  129. package/src/components/Alert/__tests__/__snapshots__/Version1dot1.spec.js.snap +2 -2
  130. package/src/components/Button/Button.vue +108 -60
  131. package/src/components/Button/types.ts +1 -0
  132. package/src/components/FormElement/FormElement.vue +91 -51
  133. package/src/components/Input/BaseInput.vue +14 -31
  134. package/src/components/Input/Input.scss +21 -19
  135. package/src/components/Input/Input.vue +30 -94
  136. package/src/components/Input/TextInput.vue +58 -82
  137. package/src/components/Input/__test__/TextInput.spec.js +5 -5
  138. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +3 -16
  139. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +1 -7
  140. package/src/components/Label/Label.vue +21 -52
  141. package/src/components/Label/__tests__/Label.spec.js +1 -1
  142. package/src/components/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  143. package/src/components/ModalDialog/ModalDialog.vue +0 -1
  144. package/src/components/ModalDialog/__tests__/__snapshots__/ModalDialog.spec.js.snap +1 -1
  145. package/src/components/Radio/Radio.vue +67 -80
  146. package/src/components/Radio/__test__/Radio.spec.js +20 -14
  147. package/src/components/Radio/__test__/__snapshots__/Radio.spec.js.snap +3 -3
  148. package/src/components/Tab/Tab.vue +23 -37
  149. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +1 -1
  150. package/src/components/TableNext/__test__/__snapshots__/TableNext.spec.js.snap +2 -2
  151. package/src/components/TableNext/__test__/__snapshots__/TablePagination.spec.js.snap +2 -2
  152. package/src/components/TextArea/TextArea.vue +9 -13
  153. package/src/components/TextArea/__test__/__snapshots__/TextArea.spec.js.snap +2 -7
  154. package/src/components/index.ts +4 -18
  155. package/src/locales/en.json +1 -2
  156. package/src/locales/es.json +1 -2
  157. package/src/locales/pt_br.json +1 -2
  158. package/src/stories/Alert.stories.js +67 -6
  159. package/src/stories/Button.stories.js +17 -2
  160. package/src/stories/Input.stories.js +3 -22
  161. package/src/stories/Label.stories.js +0 -7
  162. package/src/stories/Tab.stories.js +4 -11
  163. package/src/types/scheme-colors.d.ts +0 -1
  164. package/src/utils/call.js +18 -46
  165. package/dist/components/TemplatePreview/TemplatePreview.vue.d.ts +0 -9
  166. package/dist/components/TemplatePreview/TemplatePreview.vue.d.ts.map +0 -1
  167. package/dist/components/TemplatePreview/TemplatePreviewModal.vue.d.ts +0 -15
  168. package/dist/components/TemplatePreview/TemplatePreviewModal.vue.d.ts.map +0 -1
  169. package/dist/components/Toast/Toast.vue.d.ts +0 -16
  170. package/dist/components/Toast/Toast.vue.d.ts.map +0 -1
  171. package/dist/components/Toast/ToastManager.d.ts +0 -14
  172. package/dist/components/Toast/ToastManager.d.ts.map +0 -1
  173. package/dist/components/Toast/types.d.ts +0 -35
  174. package/dist/components/Toast/types.d.ts.map +0 -1
  175. package/src/assets/icons/radio-checked.svg +0 -3
  176. package/src/assets/img/previews/doc-preview.png +0 -0
  177. package/src/assets/img/previews/image-preview.png +0 -0
  178. package/src/assets/img/previews/video-preview.png +0 -0
  179. package/src/components/Popover/__tests__/Popover.spec.js +0 -147
  180. package/src/components/Popover/__tests__/__snapshots__/Popover.spec.js.snap +0 -8
  181. package/src/components/Popover/index.vue +0 -146
  182. package/src/components/RadioGroup/RadioGroup.vue +0 -110
  183. package/src/components/Select/SelectOption.vue +0 -65
  184. package/src/components/Select/__tests__/Select.spec.js +0 -412
  185. package/src/components/Select/__tests__/SelectItem.spec.js +0 -330
  186. package/src/components/Select/__tests__/SelectOption.spec.js +0 -174
  187. package/src/components/Select/__tests__/__snapshots__/Select.spec.js.snap +0 -97
  188. package/src/components/Select/__tests__/__snapshots__/SelectItem.spec.js.snap +0 -15
  189. package/src/components/Select/__tests__/__snapshots__/SelectOption.spec.js.snap +0 -25
  190. package/src/components/Select/index.vue +0 -245
  191. package/src/components/TemplatePreview/TemplatePreview.vue +0 -252
  192. package/src/components/TemplatePreview/TemplatePreviewModal.vue +0 -51
  193. package/src/components/TemplatePreview/types.d.ts +0 -16
  194. package/src/components/Toast/Toast.vue +0 -236
  195. package/src/components/Toast/ToastManager.ts +0 -110
  196. package/src/components/Toast/types.ts +0 -57
  197. package/src/stories/Popover.stories.js +0 -39
  198. package/src/stories/RadioGroup.stories.js +0 -139
  199. package/src/stories/Select.stories.js +0 -158
  200. package/src/stories/TemplatePreview.stories.js +0 -94
  201. package/src/stories/TemplatePreviewModal.stories.js +0 -110
  202. package/src/stories/Toast.mdx +0 -123
  203. package/src/stories/Toast.stories.js +0 -126
@@ -6,16 +6,20 @@
6
6
  :class="[
7
7
  'unnnic-button',
8
8
  `unnnic-button--size-${size}`,
9
- `unnnic-button--${buttonType}`,
9
+ `unnnic-button--${type}`,
10
10
  iconCenter ? `unnnic-button--icon-on-center` : null,
11
11
  float ? `unnnic-button--float` : null,
12
12
  ]"
13
13
  >
14
- <UnnnicIconLoading
14
+ <UnnnicIcon
15
15
  v-if="loading"
16
+ icon="loading-circle-1"
16
17
  :scheme="iconScheme"
17
18
  :size="iconSize"
19
+ :filled="iconsFilled"
18
20
  :style="{ position: 'absolute' }"
21
+ class="rotation"
22
+ :next="next"
19
23
  data-testid="icon-loading"
20
24
  />
21
25
 
@@ -68,7 +72,6 @@
68
72
  <script setup lang="ts">
69
73
  import { computed, watch, useSlots } from 'vue';
70
74
  import UnnnicIcon from '../Icon.vue';
71
- import UnnnicIconLoading from '../IconLoading/IconLoading.vue';
72
75
  import type { ButtonProps, ButtonSize, ButtonType } from './types';
73
76
  import type { SchemeColor } from '@/types/scheme-colors';
74
77
 
@@ -99,8 +102,8 @@ const buttonDisabled = computed(() => {
99
102
  });
100
103
 
101
104
  const iconSize = computed(() => {
102
- if (props.size === 'extra-large') return 'lg';
103
- return 'ant';
105
+ if (props.size === 'small') return 'sm';
106
+ return 'md';
104
107
  });
105
108
 
106
109
  const hasText = computed(() => {
@@ -117,11 +120,12 @@ const iconScheme = computed((): SchemeColor => {
117
120
  primary: 'neutral-white',
118
121
  secondary: 'neutral-dark',
119
122
  tertiary: 'neutral-dark',
123
+ alternative: 'neutral-white',
120
124
  warning: 'neutral-white',
121
125
  attention: 'neutral-white',
122
126
  };
123
127
 
124
- return typeToSchemeMap[buttonType.value] || 'neutral-white';
128
+ return typeToSchemeMap[props.type] || 'neutral-white';
125
129
  });
126
130
 
127
131
  const isSizePropValid = computed(() => {
@@ -132,23 +136,16 @@ const isSizePropValid = computed(() => {
132
136
  );
133
137
  });
134
138
 
135
- const buttonType = computed(() => {
136
- return (
137
- {
138
- alternative: 'tertiary',
139
- }[props.type] || props.type
140
- );
141
- });
142
-
143
139
  const isTypePropValid = computed(() => {
144
140
  const validTypes: ButtonType[] = [
145
141
  'primary',
146
142
  'secondary',
147
143
  'tertiary',
144
+ 'alternative',
148
145
  'warning',
149
146
  'attention',
150
147
  ];
151
- return validTypes.includes(buttonType.value);
148
+ return validTypes.includes(props.type);
152
149
  });
153
150
 
154
151
  const validateProps = () => {
@@ -162,8 +159,6 @@ const validateProps = () => {
162
159
 
163
160
  if (!isTypePropValid.value) {
164
161
  errorMessage += ' Invalid type prop.';
165
- errorMessage +=
166
- ' Please provide one of the following types: primary, secondary, tertiary, warning, attention. Alternative is discontinued and it was forced renamed to tertiary.';
167
162
  }
168
163
 
169
164
  throw new Error(errorMessage);
@@ -201,12 +196,13 @@ watch(
201
196
  display: inline-flex;
202
197
  align-items: center;
203
198
  justify-content: center;
204
- border-radius: $unnnic-radius-2;
199
+ border-radius: $unnnic-border-radius-sm;
205
200
  border: 0;
206
201
  outline: none;
207
202
  overflow: hidden;
208
203
  white-space: nowrap;
209
- font: $unnnic-font-action;
204
+ font-weight: $unnnic-font-weight-regular;
205
+ font-family: $unnnic-font-family-secondary;
210
206
  cursor: pointer;
211
207
  position: relative;
212
208
 
@@ -220,91 +216,129 @@ watch(
220
216
  }
221
217
  }
222
218
 
223
- &--primary,
224
- &--warning,
225
- &--attention {
226
- color: $unnnic-color-fg-inverted;
227
- }
228
-
229
- &--secondary,
230
- &--tertiary {
231
- color: $unnnic-color-fg-emphasized;
232
- }
233
-
234
219
  &--primary {
235
- background-color: $unnnic-color-bg-active;
220
+ background-color: $unnnic-color-weni-600;
221
+ color: $unnnic-color-neutral-white;
236
222
 
237
223
  &:hover:enabled {
238
- background-color: $unnnic-color-teal-700;
224
+ background-color: $unnnic-color-weni-700;
239
225
  }
240
226
 
241
227
  &:active:enabled {
242
- background-color: $unnnic-color-teal-800;
228
+ background-color: $unnnic-color-weni-800;
243
229
  }
244
230
  }
245
231
 
246
232
  &--secondary {
247
- background-color: $unnnic-color-bg-base;
233
+ background-color: $unnnic-color-neutral-white;
234
+ color: $unnnic-color-neutral-dark;
248
235
  box-shadow: inset 0 0 0 $unnnic-border-width-thinner
249
- $unnnic-color-border-base;
236
+ $unnnic-color-neutral-cleanest;
250
237
 
251
238
  &:hover:enabled {
252
- background-color: $unnnic-color-gray-50;
253
- }
254
-
255
- &:active:enabled {
256
- background-color: $unnnic-color-gray-100;
239
+ background-color: $unnnic-color-neutral-light;
257
240
  }
258
241
 
259
242
  &:disabled {
260
243
  box-shadow: none;
261
244
  }
245
+
246
+ &:active:enabled {
247
+ background-color: $unnnic-color-neutral-soft;
248
+ }
262
249
  }
263
250
 
264
251
  &--tertiary {
265
252
  background-color: transparent;
253
+ color: $unnnic-color-neutral-dark;
266
254
 
267
255
  &:hover:enabled {
268
- background-color: rgba($unnnic-color-gray-400, 0.1);
256
+ background-color: $unnnic-color-neutral-light;
257
+ }
258
+
259
+ &:disabled {
260
+ color: $unnnic-color-neutral-clean;
261
+ cursor: not-allowed;
269
262
  }
270
263
 
271
264
  &:active:enabled {
272
- background-color: rgba($unnnic-color-gray-400, 0.2);
265
+ background-color: $unnnic-color-neutral-soft;
266
+ }
267
+ }
268
+
269
+ &--alternative {
270
+ background-color: $unnnic-color-weni-50;
271
+ color: $unnnic-color-weni-800;
272
+
273
+ :deep(svg .primary) {
274
+ fill: $unnnic-color-weni-800;
275
+ }
276
+
277
+ :deep(svg .primary-stroke) {
278
+ stroke: $unnnic-color-weni-800;
279
+ }
280
+
281
+ &:hover:enabled {
282
+ background-color: $unnnic-color-weni-100;
283
+ }
284
+
285
+ &:disabled {
286
+ :deep(svg .primary) {
287
+ fill: $unnnic-color-neutral-clean;
288
+ }
289
+
290
+ :deep(svg .primary-stroke) {
291
+ stroke: $unnnic-color-neutral-clean;
292
+ }
293
+ }
294
+
295
+ &:active:enabled {
296
+ background-color: $unnnic-color-weni-200;
297
+ color: $unnnic-color-weni-900;
298
+
299
+ :deep(svg .primary) {
300
+ fill: $unnnic-color-weni-900;
301
+ }
302
+
303
+ :deep(svg .primary-stroke) {
304
+ stroke: $unnnic-color-weni-900;
305
+ }
273
306
  }
274
307
  }
275
308
 
276
309
  &--warning {
277
- background-color: $unnnic-color-red-500;
310
+ background-color: $unnnic-color-aux-red-500;
278
311
  color: $unnnic-color-neutral-white;
279
312
 
280
313
  &:hover:enabled {
281
- background-color: $unnnic-color-red-600;
314
+ background-color: $unnnic-color-aux-red-700;
282
315
  }
283
316
 
284
317
  &:active:enabled {
285
- background-color: $unnnic-color-red-700;
318
+ background-color: $unnnic-color-aux-red-900;
286
319
  }
287
320
  }
288
321
 
289
322
  &--attention {
290
- background-color: $unnnic-color-yellow-500;
323
+ background-color: $unnnic-color-aux-yellow-500;
324
+ color: $unnnic-color-neutral-white;
291
325
 
292
326
  &:hover:enabled {
293
- background-color: $unnnic-color-yellow-600;
327
+ background-color: $unnnic-color-aux-yellow-700;
294
328
  }
295
329
 
296
330
  &:active:enabled {
297
- background-color: $unnnic-color-yellow-700;
331
+ background-color: $unnnic-color-aux-yellow-900;
298
332
  }
299
333
  }
300
334
 
301
335
  &--primary:disabled,
302
336
  &--secondary:disabled,
303
- &--tertiary:disabled,
337
+ &--alternative:disabled,
304
338
  &--warning:disabled,
305
339
  &--attention:disabled {
306
- background-color: $unnnic-color-bg-muted;
307
- color: $unnnic-color-fg-muted;
340
+ background-color: $unnnic-color-neutral-soft;
341
+ color: $unnnic-color-neutral-clean;
308
342
  cursor: not-allowed;
309
343
  }
310
344
 
@@ -317,12 +351,26 @@ watch(
317
351
  box-shadow: $unnnic-shadow-level-near;
318
352
  }
319
353
 
320
- &--size-large {
321
- padding: $unnnic-space-3 $unnnic-space-4;
322
- }
354
+ &--size {
355
+ &-extra-large,
356
+ &-large,
357
+ &-small {
358
+ padding: $unnnic-squish-xs;
359
+ font-size: $unnnic-font-size-body-gt;
360
+ line-height: ($unnnic-font-size-body-gt + $unnnic-line-height-medium);
361
+ }
362
+
363
+ &-extra-large {
364
+ height: 58px;
365
+ }
323
366
 
324
- &--size-small {
325
- padding: $unnnic-space-2 $unnnic-space-4;
367
+ &-large {
368
+ height: 46px;
369
+ }
370
+
371
+ &-small {
372
+ height: 38px;
373
+ }
326
374
  }
327
375
  }
328
376
  </style>
@@ -340,8 +388,8 @@ watch(
340
388
  }
341
389
 
342
390
  &-large {
343
- height: 45px;
344
- width: 45px;
391
+ height: 46px;
392
+ width: 46px;
345
393
  }
346
394
 
347
395
  &-large,
@@ -356,8 +404,8 @@ watch(
356
404
 
357
405
  &-small {
358
406
  padding: $unnnic-inset-nano;
359
- height: 37px;
360
- width: 37px;
407
+ height: 38px;
408
+ width: 38px;
361
409
 
362
410
  .unnnic-icon {
363
411
  width: $unnnic-icon-size-ant;
@@ -4,6 +4,7 @@ export type ButtonType =
4
4
  | 'primary'
5
5
  | 'secondary'
6
6
  | 'tertiary'
7
+ | 'alternative'
7
8
  | 'warning'
8
9
  | 'attention';
9
10
 
@@ -17,31 +17,52 @@
17
17
 
18
18
  <slot></slot>
19
19
 
20
- <section class="unnnic-form-element__hints-container">
21
- <section class="unnnic-form-element__message-container">
22
- <p
23
- v-if="message"
24
- class="unnnic-form-element__message"
25
- >
26
- {{ fullySanitize(message) }}
27
- </p>
28
- <p
29
- v-if="!!error.length"
30
- class="unnnic-form-element__message error"
31
- >
32
- {{ Array.isArray(error) ? error.join(', ') : error }}
33
- </p>
34
- </section>
35
- <p v-if="!!$slots.rightMessage">
20
+ <p
21
+ v-if="shouldShowErrorSection"
22
+ class="unnnic-form-element__error"
23
+ >
24
+ <template v-if="error !== true">
25
+ <UnnnicIcon
26
+ size="sm"
27
+ icon="warning"
28
+ scheme="aux-red-500"
29
+ />
30
+
31
+ {{ fullySanitize(error) }}
32
+ </template>
33
+
34
+ <span
35
+ v-if="!!$slots.rightMessage"
36
+ class="unnnic-form-element__right-message"
37
+ >
38
+ <slot name="rightMessage"></slot>
39
+ </span>
40
+ </p>
41
+
42
+ <p
43
+ v-if="message || !!$slots.rightMessage"
44
+ class="unnnic-form-element__message"
45
+ >
46
+ {{ fullySanitize(message) }}
47
+
48
+ <span
49
+ v-if="!shouldShowErrorSection && !!$slots.rightMessage"
50
+ class="unnnic-form-element__right-message"
51
+ >
36
52
  <slot name="rightMessage"></slot>
37
- </p>
38
- </section>
53
+ </span>
54
+ </p>
39
55
  </section>
40
56
  </template>
41
57
 
42
58
  <script>
59
+ import UnnnicIcon from '../../components/Icon.vue';
43
60
  import { fullySanitize } from '../../utils/sanitize';
44
61
  export default {
62
+ components: {
63
+ UnnnicIcon,
64
+ },
65
+
45
66
  props: {
46
67
  size: {
47
68
  type: String,
@@ -49,18 +70,28 @@ export default {
49
70
  validator: (size) => ['md', 'sm'].includes(size),
50
71
  },
51
72
 
52
- label: { type: String, default: '' },
73
+ label: String,
53
74
 
54
- fixedLabel: { type: Boolean, default: false },
75
+ fixedLabel: Boolean,
55
76
 
56
77
  error: {
57
78
  type: [Boolean, String],
58
79
  default: false,
59
80
  },
60
81
 
61
- message: { type: String, default: '' },
82
+ message: String,
83
+
84
+ disabled: Boolean,
85
+ },
86
+
87
+ data() {
88
+ return {};
89
+ },
62
90
 
63
- disabled: { type: Boolean, default: false },
91
+ computed: {
92
+ shouldShowErrorSection() {
93
+ return this.error && (this.error !== true || !!this.$slots.rightMessage);
94
+ },
64
95
  },
65
96
  methods: {
66
97
  fullySanitize,
@@ -71,66 +102,75 @@ export default {
71
102
  <style lang="scss" scoped>
72
103
  @use '@/assets/scss/unnnic' as *;
73
104
 
74
- * {
75
- margin: $unnnic-space-0;
76
- padding: $unnnic-space-0;
77
- box-sizing: border-box;
78
- }
79
-
80
105
  .unnnic-form-element {
81
106
  &__label {
82
- font: $unnnic-font-body;
107
+ margin: 0;
108
+ margin-bottom: $unnnic-spacing-nano;
109
+
83
110
  color: $unnnic-color-neutral-cloudy;
84
- margin-bottom: $unnnic-space-1;
85
- display: flex;
86
- align-items: center;
87
- gap: $unnnic-space-2;
111
+ font-family: $unnnic-font-family-secondary;
112
+ font-weight: $unnnic-font-weight-regular;
113
+ font-size: $unnnic-font-size-body-gt;
114
+ line-height: $unnnic-font-size-body-gt + $unnnic-line-height-md;
115
+
116
+ $label-bottom-spacing: 3px;
88
117
 
89
118
  &--fixed {
90
- margin-top: -$unnnic-font-size-body-gt - $unnnic-space-2 + $unnnic-space-1;
119
+ margin-top: -$unnnic-font-size-body-gt - $unnnic-line-height-md +
120
+ $label-bottom-spacing;
91
121
  }
92
122
 
93
123
  &--fixed {
94
- margin-bottom: $unnnic-space-0;
124
+ margin-bottom: 0;
95
125
  position: absolute;
96
- padding: $unnnic-space-0 $unnnic-space-1;
97
- margin-left: $unnnic-space-2;
126
+ padding: 0 $unnnic-spacing-nano;
127
+ margin-left: $unnnic-spacing-xs;
98
128
 
99
129
  &:after {
100
130
  content: ' ';
101
131
  position: absolute;
102
- left: $unnnic-space-0;
103
- bottom: $unnnic-space-1 - $unnnic-border-width-thinner;
132
+ left: 0;
133
+ bottom: $label-bottom-spacing - $unnnic-border-width-thinner;
104
134
  width: 100%;
105
135
  height: $unnnic-border-width-thinner;
106
- background-color: $unnnic-color-white;
136
+ background-color: $unnnic-color-neutral-white;
107
137
  }
108
138
  }
109
139
  }
110
140
 
141
+ &__error,
111
142
  &__message {
112
- &.error {
113
- color: $unnnic-color-fg-critical;
114
- }
143
+ margin: 0;
144
+ margin-top: $unnnic-spacing-stack-nano;
145
+
146
+ color: $unnnic-color-neutral-cloudy;
147
+ font-family: $unnnic-font-family-secondary;
148
+ font-weight: $unnnic-font-weight-regular;
149
+ font-size: $unnnic-font-size-body-md;
150
+ line-height: $unnnic-font-size-body-md + $unnnic-line-height-md;
115
151
  }
116
152
 
117
- &__hints-container {
153
+ &__message {
118
154
  display: flex;
119
- justify-content: space-between;
120
- margin-top: $unnnic-space-1;
121
- font: $unnnic-font-caption-2;
122
- color: $unnnic-color-fg-base;
155
+ column-gap: $unnnic-spacing-nano;
123
156
  }
124
157
 
125
- &__message-container {
158
+ &__right-message {
159
+ margin-left: auto;
160
+ }
161
+
162
+ &__error {
126
163
  display: flex;
127
- flex-direction: column;
128
- gap: $unnnic-space-1;
164
+ column-gap: $unnnic-spacing-nano;
165
+ align-items: center;
166
+
167
+ color: $unnnic-color-aux-red-500;
129
168
  }
130
169
 
131
170
  &--disabled .unnnic-form-element__label,
132
171
  &--disabled .unnnic-form-element__message {
133
172
  user-select: none;
173
+ color: $unnnic-color-neutral-cleanest;
134
174
  }
135
175
  }
136
176
  </style>
@@ -4,18 +4,16 @@
4
4
  v-mask="mask"
5
5
  v-bind="attributes"
6
6
  :value="fullySanitize(modelValue)"
7
- :class="[classes, { focus: forceActiveStatus }]"
7
+ :class="classes"
8
8
  :type="nativeType"
9
- :readonly="readonly"
10
9
  />
10
+
11
11
  <input
12
12
  v-else
13
13
  v-bind="attributes"
14
14
  :value="fullySanitize(modelValue)"
15
- :class="[classes, { focus: forceActiveStatus }]"
15
+ :class="classes"
16
16
  :type="nativeType"
17
- :maxlength="maxlength"
18
- :readonly="readonly"
19
17
  />
20
18
  </template>
21
19
 
@@ -51,19 +49,6 @@ export default {
51
49
  },
52
50
  hasIconLeft: Boolean,
53
51
  hasIconRight: Boolean,
54
- hasClearIcon: Boolean,
55
- maxlength: {
56
- type: Number,
57
- default: null,
58
- },
59
- readonly: {
60
- type: Boolean,
61
- default: false,
62
- },
63
- forceActiveStatus: {
64
- type: Boolean,
65
- default: false,
66
- },
67
52
  },
68
53
  emits: ['update:modelValue'],
69
54
  data() {
@@ -88,7 +73,6 @@ export default {
88
73
  {
89
74
  'input--has-icon-left': this.hasIconLeft,
90
75
  'input--has-icon-right': this.hasIconRight,
91
- 'input--has-clear-icon': this.hasClearIcon,
92
76
  },
93
77
  ];
94
78
  },
@@ -112,28 +96,27 @@ export default {
112
96
  &.size {
113
97
  &-md {
114
98
  @include input-md-font;
115
- padding: $unnnic-space-3 $unnnic-space-4;
99
+
100
+ padding: ($unnnic-spacing-ant - $unnnic-border-width-thinner)
101
+ ($unnnic-spacing-sm - $unnnic-border-width-thinner);
116
102
  }
117
103
 
118
104
  &-sm {
119
105
  @include input-sm-font;
120
- padding: $unnnic-space-2 $unnnic-space-4;
106
+
107
+ padding: $unnnic-spacing-xs
108
+ ($unnnic-spacing-sm - $unnnic-border-width-thinner);
121
109
  }
122
110
  }
123
111
 
124
112
  &.input--has-icon-left {
125
- padding-left: $unnnic-space-10;
113
+ padding-left: $unnnic-spacing-sm + $unnnic-icon-size-sm +
114
+ $unnnic-spacing-xs - $unnnic-border-width-thinner;
126
115
  }
127
116
 
128
117
  &.input--has-icon-right {
129
- padding-right: $unnnic-space-10;
130
- &.input--has-clear-icon {
131
- padding-right: $unnnic-space-10 + $unnnic-space-6;
132
- }
133
- }
134
-
135
- &.input--has-clear-icon {
136
- padding-right: $unnnic-space-10;
118
+ padding-right: $unnnic-spacing-sm + $unnnic-icon-size-sm +
119
+ $unnnic-spacing-xs - $unnnic-border-width-thinner;
137
120
  }
138
121
 
139
122
  &.error {
@@ -143,7 +126,7 @@ export default {
143
126
  &:-ms-input-placeholder,
144
127
  &::-ms-input-placeholder {
145
128
  /* Internet Explorer 10-11 */
146
- color: $unnnic-color-fg-muted;
129
+ color: $unnnic-color-brand-sec;
147
130
  }
148
131
  }
149
132
  </style>
@@ -1,41 +1,43 @@
1
1
  @use '@/assets/scss/unnnic' as *;
2
2
 
3
3
  @mixin input-base {
4
- background: $unnnic-color-white;
5
- border: $unnnic-border-width-thinner solid $unnnic-color-border-base;
4
+ background: $unnnic-color-neutral-white;
5
+ border: $unnnic-border-width-thinner solid $unnnic-color-neutral-clean;
6
6
  outline: none;
7
- border-radius: $unnnic-radius-2;
8
- color: $unnnic-color-fg-emphasized;
9
- caret-color: $unnnic-color-fg-muted;
10
- font: $unnnic-font-body;
7
+ border-radius: $unnnic-border-radius-sm;
8
+ color: $unnnic-color-neutral-darkest;
9
+ caret-color: $unnnic-color-neutral-clean;
10
+ font-weight: $unnnic-font-weight-regular;
11
+ font-family: $unnnic-font-family-secondary;
11
12
 
12
- &:focus,
13
- &.focus {
14
- border-color: $unnnic-color-border-active;
13
+ &:focus {
14
+ border-color: $unnnic-color-weni-600;
15
15
  }
16
16
 
17
17
  &::placeholder {
18
- color: $unnnic-color-fg-muted;
19
- opacity: 1;
20
- /* Firefox */
18
+ color: $unnnic-color-neutral-cleanest;
19
+ opacity: 1; /* Firefox */
21
20
  }
22
21
 
23
22
  &:disabled {
24
- border-color: $unnnic-color-border-muted;
25
- background-color: $unnnic-color-bg-muted;
23
+ border-color: $unnnic-color-neutral-cleanest;
24
+ background-color: $unnnic-color-neutral-lightest;
26
25
  cursor: not-allowed;
27
- color: $unnnic-color-fg-muted;
26
+ color: $unnnic-color-neutral-cleanest;
28
27
  }
29
28
  }
30
29
 
31
30
  @mixin input-sm-font {
32
- font: $unnnic-font-body;
31
+ font-size: $unnnic-font-size-body-md;
32
+ line-height: $unnnic-font-size-body-md + $unnnic-line-height-medium;
33
33
  }
34
34
 
35
35
  @mixin input-md-font {
36
- font: $unnnic-font-body;
36
+ font-size: $unnnic-font-size-body-gt;
37
+ line-height: $unnnic-font-size-body-gt + $unnnic-line-height-medium;
37
38
  }
38
39
 
39
40
  @mixin input-error {
40
- border-color: $unnnic-color-border-critical;
41
- }
41
+ border-color: $unnnic-color-aux-red-500;
42
+ color: $unnnic-color-aux-red-500;
43
+ }