@weni/unnnic-system 3.9.2 → 3.9.3-alpha.0

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 (254) hide show
  1. package/dist/assets/tokens/colors.json.d.ts +376 -0
  2. package/dist/components/Accordion/Accordion.vue.d.ts +1 -1
  3. package/dist/components/Alert/Alert.vue.d.ts +17 -116
  4. package/dist/components/Alert/Alert.vue.d.ts.map +1 -1
  5. package/dist/components/Alert/Version1dot1.vue.d.ts +2 -38
  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 +3 -3
  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 +1 -1
  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 +5 -5
  20. package/dist/components/Card/BlankCard.vue.d.ts +1 -1
  21. package/dist/components/Card/Card.vue.d.ts +27 -27
  22. package/dist/components/Card/CardCompany.vue.d.ts +11 -414
  23. package/dist/components/Card/CardData.vue.d.ts +1 -1
  24. package/dist/components/Card/CardStatusesContainer.vue.d.ts +5 -5
  25. package/dist/components/Card/ContentCard.vue.d.ts +3 -3
  26. package/dist/components/Card/DashCard.vue.d.ts +5 -5
  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 +3 -3
  32. package/dist/components/CardImage/CardImage.vue.d.ts +24 -31
  33. package/dist/components/CardInformation/CardInformation.vue.d.ts +5 -5
  34. package/dist/components/CardProject/CardProject.vue.d.ts +3 -3
  35. package/dist/components/Carousel/Carousel.vue.d.ts +13 -416
  36. package/dist/components/Carousel/TagCarousel.vue.d.ts +12 -415
  37. package/dist/components/ChartBar/ChartBar.vue.d.ts +5 -5
  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 +30 -448
  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 +19 -26
  49. package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
  50. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +28 -0
  51. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +1 -0
  52. package/dist/components/Comment/Comment.vue.d.ts +1 -1
  53. package/dist/components/DataArea/DataArea.vue.d.ts +2 -2
  54. package/dist/components/DataTable/index.vue.d.ts +1 -1
  55. package/dist/components/DataTable/index.vue.d.ts.map +1 -1
  56. package/dist/components/DateFilter/DateFilter.vue.d.ts +251 -41
  57. package/dist/components/DatePicker/DatePicker.vue.d.ts +4 -4
  58. package/dist/components/Drawer/Drawer.vue.d.ts +4 -4
  59. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  60. package/dist/components/Dropdown/LanguageSelect.vue.d.ts +3 -3
  61. package/dist/components/Flag.vue.d.ts +2 -2
  62. package/dist/components/FormElement/FormElement.vue.d.ts +51 -28
  63. package/dist/components/FormElement/FormElement.vue.d.ts.map +1 -1
  64. package/dist/components/Icon.vue.d.ts +1 -1
  65. package/dist/components/Icon.vue.d.ts.map +1 -1
  66. package/dist/components/IconLoading/IconLoading.vue.d.ts +1 -1
  67. package/dist/components/ImportCard/ImportCard.vue.d.ts +4 -4
  68. package/dist/components/Input/BaseInput.vue.d.ts +33 -2
  69. package/dist/components/Input/BaseInput.vue.d.ts.map +1 -1
  70. package/dist/components/Input/Input.vue.d.ts +251 -41
  71. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  72. package/dist/components/Input/TextInput.vue.d.ts +85 -25
  73. package/dist/components/Input/TextInput.vue.d.ts.map +1 -1
  74. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts +256 -46
  75. package/dist/components/InputNext/InputNext.vue.d.ts +5 -5
  76. package/dist/components/Label/Label.vue.d.ts +9 -15
  77. package/dist/components/Label/Label.vue.d.ts.map +1 -1
  78. package/dist/components/Modal/Modal.vue.d.ts +2 -2
  79. package/dist/components/ModalDialog/ModalDialog.vue.d.ts +6 -6
  80. package/dist/components/ModalNext/ModalNext.vue.d.ts +256 -46
  81. package/dist/components/ModalUpload/ModalUpload.vue.d.ts +9 -9
  82. package/dist/components/MoodRating/MoodRating.vue.d.ts +1 -1
  83. package/dist/components/MultiSelect/MultiSelect.vue.d.ts +26 -14
  84. package/dist/components/PageHeader/PageHeader.vue.d.ts +28 -0
  85. package/dist/components/PageHeader/PageHeader.vue.d.ts.map +1 -0
  86. package/dist/components/PageHeader/index.d.ts +3 -0
  87. package/dist/components/PageHeader/index.d.ts.map +1 -0
  88. package/dist/components/PageHeader/types.d.ts +9 -0
  89. package/dist/components/PageHeader/types.d.ts.map +1 -0
  90. package/dist/components/Pagination/Pagination.vue.d.ts +3 -3
  91. package/dist/components/ProgressBar/ProgressBar.vue.d.ts +1 -1
  92. package/dist/components/Radio/Radio.vue.d.ts +10 -6
  93. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  94. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +120 -470
  95. package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +11 -414
  96. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +21 -28
  97. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts.map +1 -1
  98. package/dist/components/SelectTime/index.vue.d.ts +85 -25
  99. package/dist/components/SkeletonLoading/skeletonTheme.vue.d.ts +1 -1
  100. package/dist/components/Slider/Slider.vue.d.ts +2 -2
  101. package/dist/components/StarRating/StarRating.vue.d.ts +1 -1
  102. package/dist/components/Switch/Switch.vue.d.ts +55 -21
  103. package/dist/components/Switch/Switch.vue.d.ts.map +1 -1
  104. package/dist/components/Tab/Tab.vue.d.ts +13 -2
  105. package/dist/components/TableNext/TableBodyCell.vue.d.ts +2 -2
  106. package/dist/components/TableNext/TablePagination.vue.d.ts +3 -3
  107. package/dist/components/TabsExpanded/TabsExpanded.vue.d.ts +1 -1
  108. package/dist/components/Tag/DefaultTag.vue.d.ts +4 -83
  109. package/dist/components/Tag/DefaultTag.vue.d.ts.map +1 -1
  110. package/dist/components/Tag/Tag.vue.d.ts +12 -414
  111. package/dist/components/Tag/Tag.vue.d.ts.map +1 -1
  112. package/dist/components/Tag/types.d.ts +18 -0
  113. package/dist/components/Tag/types.d.ts.map +1 -0
  114. package/dist/components/TextArea/TextArea.vue.d.ts +78 -33
  115. package/dist/components/TextArea/TextArea.vue.d.ts.map +1 -1
  116. package/dist/components/Toast/Toast.vue.d.ts +16 -0
  117. package/dist/components/Toast/Toast.vue.d.ts.map +1 -0
  118. package/dist/components/Toast/ToastManager.d.ts +14 -0
  119. package/dist/components/Toast/ToastManager.d.ts.map +1 -0
  120. package/dist/components/Toast/types.d.ts +35 -0
  121. package/dist/components/Toast/types.d.ts.map +1 -0
  122. package/dist/components/ToolTip/ToolTip.vue.d.ts +1 -1
  123. package/dist/components/Tour/Tour.vue.d.ts +3 -3
  124. package/dist/components/Tour/TourPopover.vue.d.ts +3 -3
  125. package/dist/components/UploadArea/UploadArea.vue.d.ts +4 -4
  126. package/dist/components/index.d.ts +8736 -10161
  127. package/dist/components/index.d.ts.map +1 -1
  128. package/dist/components/ui/popover/PopoverContent.vue.d.ts +1 -1
  129. package/dist/components/ui/popover/PopoverContent.vue.d.ts.map +1 -1
  130. package/dist/{es-4aab69cb.mjs → es-61b41785.mjs} +1 -1
  131. package/dist/{index-789225a6.mjs → index-10160248.mjs} +9358 -8815
  132. package/dist/locales/en.json.d.ts +2 -1
  133. package/dist/locales/es.json.d.ts +2 -1
  134. package/dist/locales/pt_br.json.d.ts +2 -1
  135. package/dist/{pt-br-2f695ddd.mjs → pt-br-31a68683.mjs} +1 -1
  136. package/dist/style.css +1 -1
  137. package/dist/unnnic.mjs +158 -151
  138. package/dist/unnnic.umd.js +35 -36
  139. package/dist/utils/call.d.ts +2 -1
  140. package/dist/utils/call.d.ts.map +1 -1
  141. package/package.json +2 -2
  142. package/src/assets/icons/checkbox-checked-disabled.svg +3 -0
  143. package/src/assets/icons/checkbox-checked.svg +3 -0
  144. package/src/assets/icons/checkbox-less-disabled.svg +3 -0
  145. package/src/assets/icons/checkbox-less.svg +3 -0
  146. package/src/assets/icons/radio-checked.svg +3 -0
  147. package/src/assets/icons/switch-checked-disabled.svg +3 -0
  148. package/src/assets/icons/switch-checked.svg +3 -0
  149. package/src/assets/scss/scheme-colors.scss +309 -223
  150. package/src/components/Alert/Alert.vue +26 -135
  151. package/src/components/Alert/Version1dot1.vue +0 -36
  152. package/src/components/Alert/__tests__/Alert.spec.js +2 -45
  153. package/src/components/Alert/__tests__/Version1dot1.spec.js +0 -21
  154. package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +11 -7
  155. package/src/components/Alert/__tests__/__snapshots__/AlertBanner.spec.js.snap +2 -2
  156. package/src/components/Alert/__tests__/__snapshots__/Version1dot1.spec.js.snap +1 -1
  157. package/src/components/Button/Button.vue +67 -117
  158. package/src/components/Button/types.ts +0 -1
  159. package/src/components/ChatsContact/ChatsContact.vue +16 -8
  160. package/src/components/Checkbox/Checkbox.vue +117 -65
  161. package/src/components/Checkbox/__tests__/Checkbox.spec.js +6 -21
  162. package/src/components/CheckboxGroup/CheckboxGroup.vue +96 -0
  163. package/src/components/FormElement/FormElement.vue +63 -93
  164. package/src/components/Icon.vue +2 -0
  165. package/src/components/Input/BaseInput.vue +33 -14
  166. package/src/components/Input/Input.scss +22 -22
  167. package/src/components/Input/Input.vue +79 -56
  168. package/src/components/Input/TextInput.vue +81 -65
  169. package/src/components/Input/__test__/Input.spec.js +13 -33
  170. package/src/components/Input/__test__/TextInput.spec.js +6 -8
  171. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +17 -4
  172. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +7 -1
  173. package/src/components/Label/Label.vue +52 -21
  174. package/src/components/Label/__tests__/Label.spec.js +1 -1
  175. package/src/components/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  176. package/src/components/MultiSelectV2/MultSelectOption.vue +67 -0
  177. package/src/components/MultiSelectV2/__tests__/MultiSelect.spec.js +556 -0
  178. package/src/components/MultiSelectV2/__tests__/MultiSelectOption.spec.js +229 -0
  179. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelect.spec.js.snap +121 -0
  180. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelectOption.spec.js.snap +51 -0
  181. package/src/components/MultiSelectV2/index.vue +221 -0
  182. package/src/components/PageHeader/PageHeader.vue +148 -0
  183. package/src/components/PageHeader/index.ts +2 -0
  184. package/src/components/PageHeader/types.ts +10 -0
  185. package/src/components/Popover/__tests__/Popover.spec.js +147 -0
  186. package/src/components/Popover/__tests__/__snapshots__/Popover.spec.js.snap +8 -0
  187. package/src/components/Popover/index.vue +146 -0
  188. package/src/components/Radio/Radio.vue +118 -66
  189. package/src/components/Radio/__test__/Radio.spec.js +14 -20
  190. package/src/components/Radio/__test__/__snapshots__/Radio.spec.js.snap +4 -3
  191. package/src/components/RadioGroup/RadioGroup.vue +142 -0
  192. package/src/components/Select/SelectOption.vue +65 -0
  193. package/src/components/Select/__tests__/Select.spec.js +412 -0
  194. package/src/components/Select/__tests__/SelectItem.spec.js +330 -0
  195. package/src/components/Select/__tests__/SelectOption.spec.js +174 -0
  196. package/src/components/Select/__tests__/__snapshots__/Select.spec.js.snap +97 -0
  197. package/src/components/Select/__tests__/__snapshots__/SelectItem.spec.js.snap +15 -0
  198. package/src/components/Select/__tests__/__snapshots__/SelectOption.spec.js.snap +25 -0
  199. package/src/components/Select/index.vue +249 -0
  200. package/src/components/SelectSmart/SelectSmart.vue +4 -3
  201. package/src/components/Switch/Switch.vue +132 -91
  202. package/src/components/Switch/__tests__/Switch.spec.js +8 -75
  203. package/src/components/Switch/__tests__/__snapshots__/Switch.spec.js.snap +5 -6
  204. package/src/components/Tab/Tab.vue +37 -23
  205. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +1 -1
  206. package/src/components/TableNext/__test__/__snapshots__/TableNext.spec.js.snap +2 -2
  207. package/src/components/TableNext/__test__/__snapshots__/TablePagination.spec.js.snap +2 -2
  208. package/src/components/Tag/DefaultTag.vue +51 -107
  209. package/src/components/Tag/Tag.vue +32 -79
  210. package/src/components/Tag/types.ts +19 -0
  211. package/src/components/TextArea/TextArea.vue +41 -12
  212. package/src/components/TextArea/__test__/__snapshots__/TextArea.spec.js.snap +11 -3
  213. package/src/components/Toast/Toast.vue +246 -0
  214. package/src/components/Toast/ToastManager.ts +110 -0
  215. package/src/components/Toast/__tests__/Toast.spec.js +291 -0
  216. package/src/components/Toast/__tests__/ToastManager.spec.js +294 -0
  217. package/src/components/Toast/types.ts +57 -0
  218. package/src/components/index.ts +33 -18
  219. package/src/locales/en.json +2 -1
  220. package/src/locales/es.json +2 -1
  221. package/src/locales/pt_br.json +2 -1
  222. package/src/stories/Alert.stories.js +6 -67
  223. package/src/stories/Button.stories.js +29 -39
  224. package/src/stories/ChatsContact.stories.js +9 -0
  225. package/src/stories/Checkbox.stories.js +11 -4
  226. package/src/stories/CheckboxGroup.stories.js +105 -0
  227. package/src/stories/Input.stories.js +71 -76
  228. package/src/stories/Label.stories.js +7 -0
  229. package/src/stories/MultiSelectV2.stories.js +158 -0
  230. package/src/stories/PageHeader.stories.js +330 -0
  231. package/src/stories/Radio.stories.js +28 -1
  232. package/src/stories/RadioGroup.stories.js +144 -0
  233. package/src/stories/Select.stories.js +158 -0
  234. package/src/stories/Switch.stories.js +10 -5
  235. package/src/stories/Tab.stories.js +11 -4
  236. package/src/stories/Tag.stories.js +24 -43
  237. package/src/stories/TextArea.stories.js +14 -2
  238. package/src/stories/Toast.mdx +123 -0
  239. package/src/stories/Toast.stories.js +126 -0
  240. package/src/types/scheme-colors.d.ts +1 -0
  241. package/src/utils/call.js +46 -18
  242. package/dist/components/Tag/BrandTag.vue.d.ts +0 -51
  243. package/dist/components/Tag/BrandTag.vue.d.ts.map +0 -1
  244. package/dist/components/Tag/IndicatorTag.vue.d.ts +0 -151
  245. package/dist/components/Tag/IndicatorTag.vue.d.ts.map +0 -1
  246. package/dist/components/Tag/TagNext.vue.d.ts +0 -24
  247. package/dist/components/Tag/TagNext.vue.d.ts.map +0 -1
  248. package/src/components/Alert/AlertBanner.vue +0 -182
  249. package/src/components/Alert/AlertCaller.vue +0 -49
  250. package/src/components/Alert/__tests__/AlertBanner.spec.js +0 -89
  251. package/src/components/Alert/__tests__/AlertCaller.spec.js +0 -98
  252. package/src/components/Tag/BrandTag.vue +0 -96
  253. package/src/components/Tag/IndicatorTag.vue +0 -107
  254. package/src/components/Tag/TagNext.vue +0 -60
@@ -9,6 +9,7 @@
9
9
  class="tab-head"
10
10
  :class="{
11
11
  'tab-head--active': localValue === tab,
12
+ 'tab-head--disabled': disabledTabs?.includes(tab),
12
13
  }"
13
14
  @click="change(tab)"
14
15
  >
@@ -20,10 +21,9 @@
20
21
  side="bottom"
21
22
  >
22
23
  <UnnnicIcon
23
- icon="info"
24
+ icon="help"
24
25
  :size="size === 'sm' ? 'xs' : 'sm'"
25
- filled
26
- scheme="neutral-cleanest"
26
+ scheme="fg-base"
27
27
  />
28
28
  </UnnnicToolTip>
29
29
  </li>
@@ -65,6 +65,13 @@ export default {
65
65
  tabs: {
66
66
  type: Array,
67
67
  default: null,
68
+ validator: (tabs) => {
69
+ return tabs.every((tab) => typeof tab === 'string') && tabs.length <= 5;
70
+ },
71
+ },
72
+ disabledTabs: {
73
+ type: Array,
74
+ default: null,
68
75
  },
69
76
  },
70
77
  emits: ['change'],
@@ -105,6 +112,10 @@ export default {
105
112
  return '';
106
113
  },
107
114
  change(value) {
115
+ if (this.disabledTabs?.includes(value)) {
116
+ return;
117
+ }
118
+
108
119
  this.localValue = value;
109
120
  this.$emit('change', this.localValue);
110
121
  },
@@ -119,18 +130,15 @@ export default {
119
130
  display: flex;
120
131
  align-items: flex-start;
121
132
  justify-content: space-between;
122
- color: $unnnic-color-neutral-cloudy;
123
- font-family: $unnnic-font-family-secondary;
124
- font-weight: $unnnic-font-weight-bold;
125
- font-size: $unnnic-font-size-body-lg;
126
- line-height: ($unnnic-font-size-body-lg + $unnnic-line-height-medium);
127
- margin-bottom: $unnnic-inset-sm;
128
- border-bottom: $unnnic-border-width-thinner solid $unnnic-color-neutral-soft;
133
+ color: $unnnic-color-fg-base;
134
+ font: $unnnic-font-action;
135
+ margin-bottom: $unnnic-space-4;
136
+ border-bottom: $unnnic-border-width-thinner solid $unnnic-color-border-base;
129
137
  }
130
138
 
131
139
  .tab-content {
132
140
  display: flex;
133
- gap: $unnnic-spacing-sm;
141
+ gap: $unnnic-space-6;
134
142
 
135
143
  margin: 0;
136
144
  padding: 0;
@@ -139,27 +147,24 @@ export default {
139
147
 
140
148
  .tab-head {
141
149
  display: flex;
142
- gap: $unnnic-spacing-xs;
150
+ gap: $unnnic-space-2;
143
151
  align-items: center;
144
152
 
145
153
  cursor: pointer;
146
- margin: $unnnic-spacing-xs $unnnic-spacing-sm;
154
+ padding: $unnnic-space-2 $unnnic-space-4;
147
155
 
148
156
  .unnnic-tooltip {
149
157
  display: flex;
150
158
  }
151
159
 
152
160
  &:hover {
153
- color: $unnnic-color-neutral-black;
161
+ color: $unnnic-color-fg-emphasized;
154
162
  }
155
163
  }
156
164
 
157
165
  .tab-head--active {
158
- font-family: $unnnic-font-family-secondary;
159
- font-weight: $unnnic-font-weight-bold;
160
- color: $unnnic-color-neutral-black;
161
- font-size: $unnnic-font-size-body-lg;
162
- line-height: ($unnnic-font-size-body-lg + $unnnic-line-height-medium);
166
+ color: $unnnic-color-fg-emphasized;
167
+ font: $unnnic-font-action;
163
168
  transition: 0.4s;
164
169
 
165
170
  position: relative;
@@ -168,14 +173,23 @@ export default {
168
173
  content: '';
169
174
 
170
175
  position: absolute;
171
- bottom: -$unnnic-spacing-xs;
172
- left: -$unnnic-spacing-sm;
176
+ bottom: 0;
177
+ left: 0;
173
178
 
174
179
  display: block;
175
180
 
176
- width: calc(100% + (#{$unnnic-spacing-sm} * 2));
181
+ width: 100%;
177
182
 
178
- border-bottom: $unnnic-border-width-thin solid $unnnic-color-weni-600;
183
+ border-bottom: $unnnic-border-width-thin solid $unnnic-color-border-active;
184
+ }
185
+ }
186
+
187
+ .tab-head--disabled {
188
+ color: $unnnic-color-fg-muted;
189
+ cursor: default;
190
+
191
+ &:hover {
192
+ color: $unnnic-color-fg-muted;
179
193
  }
180
194
  }
181
195
 
@@ -4,7 +4,7 @@ exports[`Tab.vue > matches the snapshot 1`] = `
4
4
  "<div data-v-b4e39fac="" class="tab size-md">
5
5
  <header data-v-b4e39fac="" class="tab-header">
6
6
  <ul data-v-b4e39fac="" class="tab-content">
7
- <li data-v-b4e39fac="" class="tab-head">tab1<div data-v-bf0cf546="" data-v-b4e39fac="" class="unnnic-tooltip"><span data-v-26446d8e="" data-v-b4e39fac="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-cleanest unnnic-icon-size--sm unnnic-icon__size--sm material-symbols-rounded--filled" data-testid="material-icon" translate="no">info</span><span data-v-bf0cf546="" class="unnnic-tooltip-label unnnic-tooltip-label-bottom" data-testid="tooltip-label" style="left: 0px; top: 8px;">Tooltip text <br data-v-bf0cf546=""><!--v-if--></span></div>
7
+ <li data-v-b4e39fac="" class="tab-head">tab1<div data-v-bf0cf546="" data-v-b4e39fac="" class="unnnic-tooltip"><span data-v-26446d8e="" data-v-b4e39fac="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--sm unnnic-icon__size--sm" data-testid="material-icon" translate="no">help</span><span data-v-bf0cf546="" class="unnnic-tooltip-label unnnic-tooltip-label-bottom" data-testid="tooltip-label" style="left: 0px; top: 8px;">Tooltip text <br data-v-bf0cf546=""><!--v-if--></span></div>
8
8
  </li>
9
9
  <li data-v-b4e39fac="" class="tab-head tab-head--active">tab2
10
10
  <!--v-if-->
@@ -42,7 +42,7 @@ exports[`TableNext.vue > matches the snapshot 1`] = `
42
42
  <p data-v-e29458bb="" class="table-pagination__count" data-testid="count">1 - 1 of 1</p>
43
43
  <div data-v-0eeff8cb="" data-v-e29458bb="" class="pagination"><button data-v-ceff2a60="" data-v-0eeff8cb="" data-test="previous-button" disabled="" class="unnnic-button unnnic-button--size-small unnnic-button--tertiary unnnic-button--icon-on-center">
44
44
  <!--v-if-->
45
- <!--v-if--><span data-v-26446d8e="" data-v-ceff2a60="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-clean unnnic-icon-size--sm unnnic-icon__size--sm" data-testid="icon-center" translate="no" style="visibility: visible;">chevron_left</span><span data-v-ceff2a60="" class="unnnic-button__label" style="visibility: visible;" data-testid="button-label"> </span>
45
+ <!--v-if--><span data-v-26446d8e="" data-v-ceff2a60="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-clean unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable" data-testid="icon-center" translate="no" style="visibility: visible;">chevron_left</span><span data-v-ceff2a60="" class="unnnic-button__label" style="visibility: visible;" data-testid="button-label"> </span>
46
46
  <!--v-if-->
47
47
  </button><button data-v-ceff2a60="" data-v-0eeff8cb="" data-test="page-button" class="unnnic-button unnnic-button--size-small unnnic-button--secondary">
48
48
  <!--v-if-->
@@ -51,7 +51,7 @@ exports[`TableNext.vue > matches the snapshot 1`] = `
51
51
  <!--v-if-->
52
52
  </button><button data-v-ceff2a60="" data-v-0eeff8cb="" data-test="next-button" disabled="" class="unnnic-button unnnic-button--size-small unnnic-button--tertiary unnnic-button--icon-on-center">
53
53
  <!--v-if-->
54
- <!--v-if--><span data-v-26446d8e="" data-v-ceff2a60="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-clean unnnic-icon-size--sm unnnic-icon__size--sm" data-testid="icon-center" translate="no" style="visibility: visible;">chevron_right</span><span data-v-ceff2a60="" class="unnnic-button__label" style="visibility: visible;" data-testid="button-label"> </span>
54
+ <!--v-if--><span data-v-26446d8e="" data-v-ceff2a60="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-clean unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable" data-testid="icon-center" translate="no" style="visibility: visible;">chevron_right</span><span data-v-ceff2a60="" class="unnnic-button__label" style="visibility: visible;" data-testid="button-label"> </span>
55
55
  <!--v-if-->
56
56
  </button></div>
57
57
  </section>
@@ -5,7 +5,7 @@ exports[`TablePagination.vue > matches the snapshot 1`] = `
5
5
  <p data-v-e29458bb="" class="table-pagination__count" data-testid="count">1 - 10 of 100</p>
6
6
  <div data-v-0eeff8cb="" data-v-e29458bb="" class="pagination"><button data-v-ceff2a60="" data-v-0eeff8cb="" data-test="previous-button" disabled="" class="unnnic-button unnnic-button--size-small unnnic-button--tertiary unnnic-button--icon-on-center">
7
7
  <!--v-if-->
8
- <!--v-if--><span data-v-26446d8e="" data-v-ceff2a60="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-clean unnnic-icon-size--sm unnnic-icon__size--sm" data-testid="icon-center" translate="no" style="visibility: visible;">chevron_left</span><span data-v-ceff2a60="" class="unnnic-button__label" style="visibility: visible;" data-testid="button-label"> </span>
8
+ <!--v-if--><span data-v-26446d8e="" data-v-ceff2a60="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-clean unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable" data-testid="icon-center" translate="no" style="visibility: visible;">chevron_left</span><span data-v-ceff2a60="" class="unnnic-button__label" style="visibility: visible;" data-testid="button-label"> </span>
9
9
  <!--v-if-->
10
10
  </button><button data-v-ceff2a60="" data-v-0eeff8cb="" data-test="page-button" class="unnnic-button unnnic-button--size-small unnnic-button--secondary">
11
11
  <!--v-if-->
@@ -34,7 +34,7 @@ exports[`TablePagination.vue > matches the snapshot 1`] = `
34
34
  <!--v-if-->
35
35
  </button><button data-v-ceff2a60="" data-v-0eeff8cb="" data-test="next-button" class="unnnic-button unnnic-button--size-small unnnic-button--tertiary unnnic-button--icon-on-center">
36
36
  <!--v-if-->
37
- <!--v-if--><span data-v-26446d8e="" data-v-ceff2a60="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-dark unnnic-icon-size--sm unnnic-icon__size--sm" data-testid="icon-center" translate="no" style="visibility: visible;">chevron_right</span><span data-v-ceff2a60="" class="unnnic-button__label" style="visibility: visible;" data-testid="button-label"> </span>
37
+ <!--v-if--><span data-v-26446d8e="" data-v-ceff2a60="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-dark unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable" data-testid="icon-center" translate="no" style="visibility: visible;">chevron_right</span><span data-v-ceff2a60="" class="unnnic-button__label" style="visibility: visible;" data-testid="button-label"> </span>
38
38
  <!--v-if-->
39
39
  </button></div>
40
40
  </section>"
@@ -1,144 +1,88 @@
1
1
  <template>
2
- <section
3
- :class="`unnnic-tag
4
- ${!disabled ? `unnnic-tag-scheme--${scheme}` : `unnnic-tag--disabled`}
5
- ${clickable ? 'unnnic-tag--clickable' : ''}`"
6
- >
2
+ <section :class="`unnnic-tag unnnic-tag--${size}`">
7
3
  <section
8
4
  v-if="leftIcon"
9
5
  class="unnnic-tag__icon"
10
6
  >
11
7
  <UnnnicIcon
12
8
  :icon="leftIcon"
13
- :scheme="scheme"
14
- size="sm"
15
- />
16
- </section>
17
- <span
18
- :class="`unnnic-tag__label
19
- ${disabled ? 'unnnic-tag__label--disabled' : ''}`"
20
- >{{ text }}</span
21
- >
22
- <section
23
- v-if="rightIcon || hasCloseIcon"
24
- :class="{ 'unnnic-tag__icon': true, clickable: !rightIcon }"
25
- @click.stop="hasCloseIcon ? emitClose() : () => {}"
26
- >
27
- <UnnnicIcon
28
- :icon="rightIcon || 'close'"
29
- :scheme="rightIcon ? scheme : 'neutral-darkest'"
9
+ scheme="fg-emphasized"
30
10
  size="sm"
31
11
  />
32
12
  </section>
13
+ <p :class="`unnnic-tag__label`">{{ text }}</p>
33
14
  </section>
34
15
  </template>
35
16
 
36
- <script>
17
+ <script setup lang="ts">
18
+ import { computed } from 'vue';
19
+
20
+ import { color as colors } from '@/assets/tokens/colors.json';
21
+
37
22
  import UnnnicIcon from '../Icon.vue';
38
23
 
39
- export default {
40
- name: 'UnnnicTag',
41
- components: {
42
- UnnnicIcon,
43
- },
44
- props: {
45
- text: {
46
- type: String,
47
- default: null,
48
- },
49
- clickable: {
50
- type: Boolean,
51
- default: false,
52
- },
53
- disabled: {
54
- type: Boolean,
55
- default: false,
56
- },
57
- hasCloseIcon: {
58
- type: Boolean,
59
- default: false,
60
- },
61
- scheme: {
62
- type: String,
63
- default: 'aux-purple',
64
- },
65
- leftIcon: {
66
- type: String,
67
- default: null,
68
- },
69
- rightIcon: {
70
- type: String,
71
- default: null,
72
- },
73
- },
74
- methods: {
75
- closeClicked() {
76
- if (!this.closeClicked) return;
77
- this.$emit('close-click');
78
- },
79
- emitClose() {
80
- this.$emit('close');
81
- },
82
- },
83
- };
24
+ import type { DefaultTagProps } from './types';
25
+
26
+ const props = withDefaults(defineProps<DefaultTagProps>(), {
27
+ text: undefined,
28
+ size: 'medium',
29
+ scheme: 'aux-purple',
30
+ leftIcon: undefined,
31
+ });
32
+
33
+ const COLOR_MAPPING = [
34
+ { keywords: ['green'], color: colors.green[200].value },
35
+ { keywords: ['blue'], color: colors.blue[200].value },
36
+ { keywords: ['purple'], color: colors.purple[200].value },
37
+ { keywords: ['red', 'pink'], color: colors.red[200].value },
38
+ { keywords: ['orange'], color: colors.orange[200].value },
39
+ { keywords: ['yellow'], color: colors.yellow[200].value },
40
+ { keywords: ['gray'], color: colors.gray[200].value },
41
+ { keywords: ['teal', 'weni'], color: colors.teal[200].value },
42
+ ];
43
+
44
+ const color = computed(() => {
45
+ const scheme = props.scheme.toLowerCase();
46
+
47
+ const match = COLOR_MAPPING.find(({ keywords }) =>
48
+ keywords.some((keyword) => scheme.includes(keyword)),
49
+ );
50
+
51
+ return match?.color ?? colors.gray[200].value;
52
+ });
84
53
  </script>
85
54
 
86
55
  <style lang="scss" scoped>
87
56
  @use '@/assets/scss/unnnic' as *;
88
57
 
89
- @each $name, $color in $scheme-colors {
90
- .unnnic-tag-scheme--#{$name} {
91
- background-color: rgba($color, $unnnic-opacity-level-light);
92
- outline-style: solid;
93
- outline-color: rgba($color, $unnnic-opacity-level-extra-light);
94
- outline-width: $unnnic-border-width-thinner;
95
- outline-offset: -$unnnic-border-width-thinner;
96
- }
97
- }
98
-
99
58
  .unnnic-tag {
100
59
  display: flex;
101
60
  align-items: center;
102
61
  justify-content: center;
62
+ gap: $unnnic-space-1;
103
63
  border-radius: $unnnic-border-radius-pill;
104
- padding: 0 $unnnic-spacing-xs;
64
+ padding: calc($unnnic-space-1 * 1.5) $unnnic-space-3;
65
+ width: fit-content;
105
66
 
106
- &--disabled {
107
- background-color: $unnnic-color-background-sky;
108
- }
67
+ background-color: v-bind(color);
109
68
 
110
- &--clickable {
111
- cursor: pointer;
112
-
113
- @each $name, $color in $scheme-colors {
114
- &.unnnic-tag-scheme--#{$name}:hover {
115
- outline-style: solid;
116
- outline-color: $unnnic-color-neutral-cleanest;
117
- outline-width: $unnnic-border-width-thinner;
118
- outline-offset: -$unnnic-border-width-thinner;
119
- }
120
- }
69
+ &--small {
70
+ padding: calc($unnnic-space-1 * 0.5) $unnnic-space-3;
121
71
  }
122
72
 
123
73
  &__label {
124
- font-family: $unnnic-font-family-secondary;
125
- font-size: $unnnic-font-size-body-md;
126
- font-weight: $unnnic-font-weight-regular;
127
- line-height: ($unnnic-font-size-body-md + $unnnic-line-height-medium);
128
- padding: $unnnic-spacing-stack-nano;
129
- color: $unnnic-color-neutral-darkest;
130
-
131
- &--disabled {
132
- color: $unnnic-color-neutral-cloudy;
133
- }
74
+ margin: 0;
75
+
76
+ overflow: hidden;
77
+ text-overflow: ellipsis;
78
+ white-space: nowrap;
79
+
80
+ font: $unnnic-font-caption-1;
81
+ color: $unnnic-color-fg-emphasized;
134
82
  }
135
83
 
136
84
  &__icon {
137
85
  display: flex;
138
86
  }
139
-
140
- .clickable {
141
- cursor: pointer;
142
- }
143
87
  }
144
88
  </style>
@@ -1,90 +1,43 @@
1
1
  <template>
2
- <component
3
- :is="currentComponent"
4
- class="unnnic-tag-content"
5
- v-bind="$attrs"
2
+ <UnnnicChip
3
+ v-if="type === 'brand' || hasCloseIcon"
4
+ :text="text"
5
+ type="multiple"
6
+ :isSelected="disabled || hasCloseIcon"
7
+ isClickable
8
+ @click="hasCloseIcon ? $emit('close') : $emit('click')"
9
+ />
10
+
11
+ <DefaultTag
12
+ v-else
13
+ :size="type === 'next' ? 'small' : size"
6
14
  :text="text"
7
- :disabled="disabled"
8
- :hasCloseIcon="hasCloseIcon"
9
15
  :scheme="scheme"
10
- :count="count"
11
- :hasBackButton="hasBackButton"
12
- :clickable="clickable"
13
- :tooltipText="tooltipText"
14
- :enableTooltip="enableTooltip"
15
16
  :leftIcon="leftIcon"
16
- :rightIcon="rightIcon"
17
17
  />
18
18
  </template>
19
19
 
20
- <script>
20
+ <script setup lang="ts">
21
+ import UnnnicChip from '../Chip/Chip.vue';
21
22
  import DefaultTag from './DefaultTag.vue';
22
- import IndicatorTag from './IndicatorTag.vue';
23
- import BrandTag from './BrandTag.vue';
24
- import TagNext from './TagNext.vue';
23
+ import type { TagProps } from './types';
25
24
 
26
- export default {
25
+ defineOptions({
27
26
  name: 'UnnnicTag',
28
- props: {
29
- type: {
30
- type: String,
31
- default: 'default',
32
- validator(value) {
33
- return ['default', 'indicator', 'brand', 'next'].indexOf(value) !== -1;
34
- },
35
- },
36
- text: {
37
- type: String,
38
- default: null,
39
- },
40
- tooltipText: {
41
- type: String,
42
- default: null,
43
- },
44
- clickable: {
45
- type: Boolean,
46
- default: false,
47
- },
48
- count: {
49
- type: Number,
50
- default: 0,
51
- },
52
- disabled: {
53
- type: Boolean,
54
- default: false,
55
- },
56
- hasCloseIcon: {
57
- type: Boolean,
58
- default: false,
59
- },
60
- scheme: {
61
- type: String,
62
- default: 'aux-purple',
63
- },
64
- hasBackButton: {
65
- type: Boolean,
66
- default: false,
67
- },
68
- enableTooltip: {
69
- type: Boolean,
70
- default: false,
71
- },
72
- leftIcon: {
73
- type: String,
74
- default: '',
75
- },
76
- rightIcon: {
77
- type: String,
78
- default: '',
79
- },
80
- },
81
- computed: {
82
- currentComponent() {
83
- if (this.type === 'indicator') return IndicatorTag;
84
- if (this.type === 'brand') return BrandTag;
85
- if (this.type === 'next') return TagNext;
86
- return DefaultTag;
87
- },
88
- },
89
- };
27
+ });
28
+
29
+ withDefaults(defineProps<TagProps>(), {
30
+ type: 'default',
31
+ size: 'medium',
32
+ text: undefined,
33
+ disabled: false,
34
+ scheme: 'aux-purple',
35
+ leftIcon: '',
36
+ hasCloseIcon: false,
37
+ });
38
+
39
+ defineEmits<{
40
+ close: [];
41
+ click: [];
42
+ }>();
90
43
  </script>
@@ -0,0 +1,19 @@
1
+ export type TagType = 'default' | 'brand' | 'next';
2
+ export type TagSize = 'small' | 'medium';
3
+
4
+ export interface TagProps {
5
+ type?: TagType;
6
+ size?: TagSize;
7
+ text?: string;
8
+ disabled?: boolean;
9
+ scheme?: string;
10
+ leftIcon?: string;
11
+ hasCloseIcon?: boolean;
12
+ }
13
+
14
+ export interface DefaultTagProps {
15
+ text?: string;
16
+ size?: TagSize;
17
+ scheme?: string;
18
+ leftIcon?: string;
19
+ }
@@ -4,7 +4,8 @@
4
4
  :size="size"
5
5
  :disabled="disabled"
6
6
  :message="message"
7
- :error="errors.join(', ') || type === 'error'"
7
+ :tooltip="tooltip"
8
+ :error="computedError"
8
9
  >
9
10
  <textarea
10
11
  ref="textarea"
@@ -18,13 +19,14 @@
18
19
  :disabled="disabled"
19
20
  :value="modelValue"
20
21
  @input="$emit('update:modelValue', fullySanitize($event.target.value))"
21
- ></textarea>
22
+ />
22
23
 
23
24
  <template
24
25
  v-if="maxLength"
25
26
  #rightMessage
26
- >{{ modelValue.length }}/{{ maxLength }}</template
27
27
  >
28
+ {{ modelValue.length }}/{{ maxLength }}
29
+ </template>
28
30
  </UnnnicFormElement>
29
31
  </template>
30
32
 
@@ -43,6 +45,14 @@ export default {
43
45
  default: 'md',
44
46
  },
45
47
 
48
+ resize: {
49
+ type: String,
50
+ default: 'vertical',
51
+ validator(value) {
52
+ return ['none', 'vertical'].indexOf(value) !== -1;
53
+ },
54
+ },
55
+
46
56
  label: {
47
57
  type: String,
48
58
  },
@@ -76,13 +86,28 @@ export default {
76
86
  },
77
87
  },
78
88
 
89
+ tooltip: {
90
+ type: String,
91
+ default: '',
92
+ },
93
+
79
94
  errors: {
80
- type: Array,
95
+ type: [Array, null],
81
96
  default: () => [],
82
97
  },
83
98
  },
84
99
  emits: ['update:modelValue'],
85
100
 
101
+ computed: {
102
+ computedError() {
103
+ if (Array.isArray(this.errors)) {
104
+ return this.errors.join(', ') || this.type === 'error';
105
+ }
106
+
107
+ return this.errors || this.type === 'error';
108
+ },
109
+ },
110
+
86
111
  methods: {
87
112
  fullySanitize,
88
113
  focus() {
@@ -96,31 +121,35 @@ export default {
96
121
  @use '@/assets/scss/unnnic' as *;
97
122
  @use '@/components/Input/Input' as *;
98
123
 
124
+ * {
125
+ margin: 0;
126
+ padding: 0;
127
+ box-sizing: border-box;
128
+ }
129
+
99
130
  .unnnic-text-area {
100
131
  &__textarea {
101
132
  @include input-base;
102
133
 
103
134
  display: block;
104
135
  width: 100%;
105
- resize: vertical;
106
- box-sizing: border-box;
136
+
137
+ resize: v-bind(resize);
107
138
 
108
139
  scrollbar-width: thin;
109
140
 
141
+ padding: $unnnic-space-3 $unnnic-space-4;
142
+
110
143
  &--size-md {
111
144
  @include input-md-font;
112
145
 
113
- min-height: 6.25 * $unnnic-font-size;
114
- padding: ($unnnic-spacing-ant - $unnnic-border-width-thinner)
115
- ($unnnic-spacing-sm - $unnnic-border-width-thinner);
146
+ min-height: 90px;
116
147
  }
117
148
 
118
149
  &--size-sm {
119
150
  @include input-sm-font;
120
151
 
121
- min-height: 5 * $unnnic-font-size;
122
- padding: ($unnnic-spacing-xs)
123
- ($unnnic-spacing-sm - $unnnic-border-width-thinner);
152
+ min-height: $unnnic-space-20;
124
153
  }
125
154
 
126
155
  &.unnnic-text-area__textarea--type-error {
@@ -2,8 +2,16 @@
2
2
 
3
3
  exports[`TextArea.vue > matches the snapshot 1`] = `
4
4
  "<section data-v-9f8d6c86="" data-v-735b3c51="" class="unnnic-form-element">
5
- <p data-v-9f8d6c86="" class="unnnic-form-element__label">Description</p><textarea data-v-735b3c51="" class="unnnic-text-area__textarea unnnic-text-area__textarea--size-md unnnic-text-area__textarea--type-normal" placeholder="Enter text" maxlength="200" value=""></textarea>
6
- <!--v-if-->
7
- <p data-v-9f8d6c86="" class="unnnic-form-element__message"> <span data-v-9f8d6c86="" class="unnnic-form-element__right-message">0/200</span></p>
5
+ <section data-v-7f222291="" data-v-9f8d6c86="" class="unnnic-label unnnic-form-element__label">
6
+ <p data-v-7f222291="" class="unnnic-label__label">Description</p>
7
+ <!--v-if-->
8
+ </section><textarea data-v-735b3c51="" class="unnnic-text-area__textarea unnnic-text-area__textarea--size-md unnnic-text-area__textarea--type-normal" placeholder="Enter text" maxlength="200" value=""></textarea>
9
+ <section data-v-9f8d6c86="" class="unnnic-form-element__hints-container">
10
+ <section data-v-9f8d6c86="" class="unnnic-form-element__message-container">
11
+ <!--v-if-->
12
+ <!--v-if-->
13
+ </section>
14
+ <p data-v-9f8d6c86="">0/200</p>
15
+ </section>
8
16
  </section>"
9
17
  `;