@weni/unnnic-system 3.9.4-alpha.4 → 3.10.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/CHANGELOG.md +14 -0
  2. package/dist/components/Accordion/Accordion.vue.d.ts +1 -1
  3. package/dist/components/Alert/Alert.vue.d.ts +116 -17
  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 +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 +414 -11
  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 +31 -24
  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 +416 -13
  36. package/dist/components/Carousel/TagCarousel.vue.d.ts +415 -12
  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 +446 -21
  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 +26 -19
  49. package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
  50. package/dist/components/Comment/Comment.vue.d.ts +1 -1
  51. package/dist/components/DataArea/DataArea.vue.d.ts +2 -2
  52. package/dist/components/DataTable/index.vue.d.ts +1 -1
  53. package/dist/components/DataTable/index.vue.d.ts.map +1 -1
  54. package/dist/components/DateFilter/DateFilter.vue.d.ts +41 -251
  55. package/dist/components/DatePicker/DatePicker.vue.d.ts +4 -4
  56. package/dist/components/Drawer/Drawer.vue.d.ts +4 -4
  57. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  58. package/dist/components/Dropdown/LanguageSelect.vue.d.ts +3 -3
  59. package/dist/components/Flag.vue.d.ts +2 -2
  60. package/dist/components/FormElement/FormElement.vue.d.ts +28 -51
  61. package/dist/components/FormElement/FormElement.vue.d.ts.map +1 -1
  62. package/dist/components/Icon.vue.d.ts +1 -1
  63. package/dist/components/Icon.vue.d.ts.map +1 -1
  64. package/dist/components/IconLoading/IconLoading.vue.d.ts +1 -1
  65. package/dist/components/ImportCard/ImportCard.vue.d.ts +4 -4
  66. package/dist/components/Input/BaseInput.vue.d.ts +2 -33
  67. package/dist/components/Input/BaseInput.vue.d.ts.map +1 -1
  68. package/dist/components/Input/Input.vue.d.ts +41 -251
  69. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  70. package/dist/components/Input/TextInput.vue.d.ts +25 -85
  71. package/dist/components/Input/TextInput.vue.d.ts.map +1 -1
  72. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts +46 -256
  73. package/dist/components/InputNext/InputNext.vue.d.ts +5 -5
  74. package/dist/components/Label/Label.vue.d.ts +15 -9
  75. package/dist/components/Label/Label.vue.d.ts.map +1 -1
  76. package/dist/components/Modal/Modal.vue.d.ts +2 -2
  77. package/dist/components/ModalDialog/ModalDialog.vue.d.ts +6 -6
  78. package/dist/components/ModalNext/ModalNext.vue.d.ts +46 -256
  79. package/dist/components/ModalUpload/ModalUpload.vue.d.ts +9 -9
  80. package/dist/components/MoodRating/MoodRating.vue.d.ts +1 -1
  81. package/dist/components/MultiSelect/MultiSelect.vue.d.ts +14 -26
  82. package/dist/components/Pagination/Pagination.vue.d.ts +3 -3
  83. package/dist/components/ProgressBar/ProgressBar.vue.d.ts +1 -1
  84. package/dist/components/Radio/Radio.vue.d.ts +6 -10
  85. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  86. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +470 -120
  87. package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +414 -11
  88. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +28 -21
  89. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts.map +1 -1
  90. package/dist/components/SelectTime/index.vue.d.ts +25 -85
  91. package/dist/components/SkeletonLoading/skeletonTheme.vue.d.ts +1 -1
  92. package/dist/components/Slider/Slider.vue.d.ts +2 -2
  93. package/dist/components/StarRating/StarRating.vue.d.ts +1 -1
  94. package/dist/components/Switch/Switch.vue.d.ts +21 -55
  95. package/dist/components/Switch/Switch.vue.d.ts.map +1 -1
  96. package/dist/components/Tab/Tab.vue.d.ts +2 -13
  97. package/dist/components/TableNext/TableBodyCell.vue.d.ts +2 -2
  98. package/dist/components/TableNext/TablePagination.vue.d.ts +3 -3
  99. package/dist/components/TabsExpanded/TabsExpanded.vue.d.ts +1 -1
  100. package/dist/components/Tag/BrandTag.vue.d.ts +51 -0
  101. package/dist/components/Tag/BrandTag.vue.d.ts.map +1 -0
  102. package/dist/components/Tag/DefaultTag.vue.d.ts +83 -4
  103. package/dist/components/Tag/DefaultTag.vue.d.ts.map +1 -1
  104. package/dist/components/Tag/IndicatorTag.vue.d.ts +151 -0
  105. package/dist/components/Tag/IndicatorTag.vue.d.ts.map +1 -0
  106. package/dist/components/Tag/Tag.vue.d.ts +414 -12
  107. package/dist/components/Tag/Tag.vue.d.ts.map +1 -1
  108. package/dist/components/Tag/TagNext.vue.d.ts +24 -0
  109. package/dist/components/Tag/TagNext.vue.d.ts.map +1 -0
  110. package/dist/components/TextArea/TextArea.vue.d.ts +33 -78
  111. package/dist/components/TextArea/TextArea.vue.d.ts.map +1 -1
  112. package/dist/components/ToolTip/ToolTip.vue.d.ts +1 -1
  113. package/dist/components/Tour/Tour.vue.d.ts +3 -3
  114. package/dist/components/Tour/TourPopover.vue.d.ts +3 -3
  115. package/dist/components/UploadArea/UploadArea.vue.d.ts +4 -4
  116. package/dist/components/index.d.ts +7677 -6315
  117. package/dist/components/index.d.ts.map +1 -1
  118. package/dist/components/ui/popover/PopoverContent.vue.d.ts +1 -1
  119. package/dist/components/ui/popover/PopoverContent.vue.d.ts.map +1 -1
  120. package/dist/{es-bdfb773f.mjs → es-4b899f97.mjs} +1 -1
  121. package/dist/{index-8ce04c5b.mjs → index-23489897.mjs} +8813 -9354
  122. package/dist/locales/en.json.d.ts +1 -2
  123. package/dist/locales/es.json.d.ts +1 -2
  124. package/dist/locales/pt_br.json.d.ts +1 -2
  125. package/dist/{pt-br-4befdd13.mjs → pt-br-5a914a63.mjs} +1 -1
  126. package/dist/style.css +1 -1
  127. package/dist/unnnic.mjs +173 -181
  128. package/dist/unnnic.umd.js +36 -35
  129. package/dist/utils/call.d.ts +1 -2
  130. package/dist/utils/call.d.ts.map +1 -1
  131. package/package.json +2 -2
  132. package/src/assets/scss/scheme-colors.scss +223 -309
  133. package/src/components/Alert/Alert.vue +135 -26
  134. package/src/components/Alert/AlertBanner.vue +182 -0
  135. package/src/components/Alert/AlertCaller.vue +49 -0
  136. package/src/components/Alert/Version1dot1.vue +36 -0
  137. package/src/components/Alert/__tests__/Alert.spec.js +45 -2
  138. package/src/components/Alert/__tests__/AlertBanner.spec.js +89 -0
  139. package/src/components/Alert/__tests__/AlertCaller.spec.js +98 -0
  140. package/src/components/Alert/__tests__/Version1dot1.spec.js +21 -0
  141. package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +7 -11
  142. package/src/components/Alert/__tests__/__snapshots__/AlertBanner.spec.js.snap +2 -2
  143. package/src/components/Alert/__tests__/__snapshots__/Version1dot1.spec.js.snap +1 -1
  144. package/src/components/Button/Button.vue +117 -67
  145. package/src/components/Button/types.ts +1 -0
  146. package/src/components/ChatsContact/ChatsContact.vue +6 -10
  147. package/src/components/Checkbox/Checkbox.vue +65 -117
  148. package/src/components/Checkbox/__tests__/Checkbox.spec.js +21 -6
  149. package/src/components/FormElement/FormElement.vue +93 -63
  150. package/src/components/Icon.vue +0 -2
  151. package/src/components/Input/BaseInput.vue +14 -33
  152. package/src/components/Input/Input.scss +22 -22
  153. package/src/components/Input/Input.vue +56 -79
  154. package/src/components/Input/TextInput.vue +65 -81
  155. package/src/components/Input/__test__/Input.spec.js +33 -13
  156. package/src/components/Input/__test__/TextInput.spec.js +8 -6
  157. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +4 -17
  158. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +1 -7
  159. package/src/components/Label/Label.vue +21 -52
  160. package/src/components/Label/__tests__/Label.spec.js +1 -1
  161. package/src/components/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  162. package/src/components/Radio/Radio.vue +66 -118
  163. package/src/components/Radio/__test__/Radio.spec.js +20 -14
  164. package/src/components/Radio/__test__/__snapshots__/Radio.spec.js.snap +3 -4
  165. package/src/components/SelectSmart/SelectSmart.vue +3 -4
  166. package/src/components/Switch/Switch.vue +91 -132
  167. package/src/components/Switch/__tests__/Switch.spec.js +75 -8
  168. package/src/components/Switch/__tests__/__snapshots__/Switch.spec.js.snap +6 -5
  169. package/src/components/Tab/Tab.vue +23 -37
  170. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +1 -1
  171. package/src/components/TableNext/__test__/__snapshots__/TableNext.spec.js.snap +2 -2
  172. package/src/components/TableNext/__test__/__snapshots__/TablePagination.spec.js.snap +2 -2
  173. package/src/components/Tag/BrandTag.vue +96 -0
  174. package/src/components/Tag/DefaultTag.vue +107 -51
  175. package/src/components/Tag/IndicatorTag.vue +107 -0
  176. package/src/components/Tag/Tag.vue +79 -32
  177. package/src/components/Tag/TagNext.vue +60 -0
  178. package/src/components/TextArea/TextArea.vue +12 -41
  179. package/src/components/TextArea/__test__/__snapshots__/TextArea.spec.js.snap +3 -11
  180. package/src/components/index.ts +17 -33
  181. package/src/locales/en.json +1 -2
  182. package/src/locales/es.json +1 -2
  183. package/src/locales/pt_br.json +1 -2
  184. package/src/stories/Alert.stories.js +67 -6
  185. package/src/stories/Button.stories.js +39 -29
  186. package/src/stories/Checkbox.stories.js +4 -11
  187. package/src/stories/Input.stories.js +76 -71
  188. package/src/stories/Label.stories.js +0 -7
  189. package/src/stories/Radio.stories.js +1 -28
  190. package/src/stories/Switch.stories.js +5 -10
  191. package/src/stories/Tab.stories.js +4 -11
  192. package/src/stories/Tag.stories.js +43 -24
  193. package/src/stories/TextArea.stories.js +2 -14
  194. package/src/types/scheme-colors.d.ts +0 -1
  195. package/src/utils/call.js +18 -46
  196. package/dist/assets/tokens/colors.json.d.ts +0 -376
  197. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +0 -28
  198. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +0 -1
  199. package/dist/components/PageHeader/PageHeader.vue.d.ts +0 -28
  200. package/dist/components/PageHeader/PageHeader.vue.d.ts.map +0 -1
  201. package/dist/components/PageHeader/index.d.ts +0 -3
  202. package/dist/components/PageHeader/index.d.ts.map +0 -1
  203. package/dist/components/PageHeader/types.d.ts +0 -9
  204. package/dist/components/PageHeader/types.d.ts.map +0 -1
  205. package/dist/components/Tag/types.d.ts +0 -18
  206. package/dist/components/Tag/types.d.ts.map +0 -1
  207. package/dist/components/Toast/Toast.vue.d.ts +0 -16
  208. package/dist/components/Toast/Toast.vue.d.ts.map +0 -1
  209. package/dist/components/Toast/ToastManager.d.ts +0 -14
  210. package/dist/components/Toast/ToastManager.d.ts.map +0 -1
  211. package/dist/components/Toast/types.d.ts +0 -35
  212. package/dist/components/Toast/types.d.ts.map +0 -1
  213. package/src/assets/icons/checkbox-checked-disabled.svg +0 -3
  214. package/src/assets/icons/checkbox-checked.svg +0 -3
  215. package/src/assets/icons/checkbox-less-disabled.svg +0 -3
  216. package/src/assets/icons/checkbox-less.svg +0 -3
  217. package/src/assets/icons/radio-checked.svg +0 -3
  218. package/src/assets/icons/switch-checked-disabled.svg +0 -3
  219. package/src/assets/icons/switch-checked.svg +0 -3
  220. package/src/components/CheckboxGroup/CheckboxGroup.vue +0 -96
  221. package/src/components/MultiSelectV2/MultSelectOption.vue +0 -67
  222. package/src/components/MultiSelectV2/__tests__/MultiSelect.spec.js +0 -556
  223. package/src/components/MultiSelectV2/__tests__/MultiSelectOption.spec.js +0 -229
  224. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelect.spec.js.snap +0 -121
  225. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelectOption.spec.js.snap +0 -51
  226. package/src/components/MultiSelectV2/index.vue +0 -221
  227. package/src/components/PageHeader/PageHeader.vue +0 -148
  228. package/src/components/PageHeader/index.ts +0 -2
  229. package/src/components/PageHeader/types.ts +0 -10
  230. package/src/components/Popover/__tests__/Popover.spec.js +0 -147
  231. package/src/components/Popover/__tests__/__snapshots__/Popover.spec.js.snap +0 -8
  232. package/src/components/Popover/index.vue +0 -146
  233. package/src/components/RadioGroup/RadioGroup.vue +0 -142
  234. package/src/components/Select/SelectOption.vue +0 -65
  235. package/src/components/Select/__tests__/Select.spec.js +0 -412
  236. package/src/components/Select/__tests__/SelectItem.spec.js +0 -330
  237. package/src/components/Select/__tests__/SelectOption.spec.js +0 -174
  238. package/src/components/Select/__tests__/__snapshots__/Select.spec.js.snap +0 -97
  239. package/src/components/Select/__tests__/__snapshots__/SelectItem.spec.js.snap +0 -15
  240. package/src/components/Select/__tests__/__snapshots__/SelectOption.spec.js.snap +0 -25
  241. package/src/components/Select/index.vue +0 -249
  242. package/src/components/Tag/types.ts +0 -19
  243. package/src/components/Toast/Toast.vue +0 -246
  244. package/src/components/Toast/ToastManager.ts +0 -110
  245. package/src/components/Toast/__tests__/Toast.spec.js +0 -291
  246. package/src/components/Toast/__tests__/ToastManager.spec.js +0 -294
  247. package/src/components/Toast/types.ts +0 -57
  248. package/src/stories/CheckboxGroup.stories.js +0 -105
  249. package/src/stories/MultiSelectV2.stories.js +0 -158
  250. package/src/stories/PageHeader.stories.js +0 -330
  251. package/src/stories/RadioGroup.stories.js +0 -144
  252. package/src/stories/Select.stories.js +0 -158
  253. package/src/stories/Toast.mdx +0 -123
  254. package/src/stories/Toast.stories.js +0 -126
@@ -0,0 +1,98 @@
1
+ import { mount } from '@vue/test-utils';
2
+ import { describe, expect, test, vi, beforeEach, afterEach } from 'vitest';
3
+ import AlertCaller from '@/components/Alert/AlertCaller.vue';
4
+ import alert from '@/utils/call';
5
+
6
+ vi.mock('@/utils/call', () => ({
7
+ default: {
8
+ callAlert: vi.fn(),
9
+ },
10
+ }));
11
+
12
+ describe('AlertCaller.vue', () => {
13
+ let wrapper;
14
+
15
+ const defaultProps = {
16
+ title: 'Test Title',
17
+ text: 'Test Text',
18
+ icon: 'test-icon',
19
+ enabled: true,
20
+ scheme: 'primary',
21
+ seconds: 5,
22
+ closeText: 'Close',
23
+ position: 'top-right',
24
+ };
25
+
26
+ beforeEach(() => {
27
+ wrapper = mount(AlertCaller, {
28
+ props: defaultProps,
29
+ });
30
+ });
31
+
32
+ afterEach(() => {
33
+ wrapper.unmount();
34
+ vi.clearAllMocks();
35
+ });
36
+
37
+ test('renders correctly', () => {
38
+ expect(wrapper.exists()).toBe(true);
39
+ expect(wrapper.find('button').text()).toBe('Launch alert');
40
+ });
41
+
42
+ test('calls callAlert method when button is clicked', async () => {
43
+ const callAlertSpy = vi.spyOn(wrapper.vm, 'callAlert');
44
+ await wrapper.find('button').trigger('click');
45
+ expect(callAlertSpy).toHaveBeenCalledTimes(1);
46
+ });
47
+
48
+ test('callAlert method invokes alert.callAlert with correct props', async () => {
49
+ await wrapper.find('button').trigger('click');
50
+ expect(alert.callAlert).toHaveBeenCalledWith({
51
+ props: defaultProps,
52
+ seconds: defaultProps.seconds,
53
+ });
54
+ });
55
+
56
+ test.each([
57
+ ['title', 'New Title'],
58
+ ['text', 'New Text'],
59
+ ['icon', 'new-icon'],
60
+ ['enabled', false],
61
+ ['scheme', 'secondary'],
62
+ ['seconds', 10],
63
+ ['closeText', 'Dismiss'],
64
+ ['position', 'bottom-left'],
65
+ ])('updates %s prop correctly', async (propName, newValue) => {
66
+ await wrapper.setProps({ [propName]: newValue });
67
+ await wrapper.find('button').trigger('click');
68
+ const expectedProps = { ...defaultProps, [propName]: newValue };
69
+ expect(alert.callAlert).toHaveBeenCalledWith({
70
+ props: expectedProps,
71
+ seconds: expectedProps.seconds,
72
+ });
73
+ });
74
+
75
+ test('passes default values when props are not provided', async () => {
76
+ wrapper = mount(AlertCaller, {
77
+ props: {},
78
+ });
79
+ await wrapper.find('button').trigger('click');
80
+ expect(alert.callAlert).toHaveBeenCalledWith({
81
+ props: {
82
+ title: null,
83
+ text: null,
84
+ icon: null,
85
+ enabled: true,
86
+ scheme: null,
87
+ seconds: 3,
88
+ closeText: null,
89
+ position: 'top-right',
90
+ },
91
+ seconds: 3,
92
+ });
93
+ });
94
+
95
+ test('matches snapshot', () => {
96
+ expect(wrapper.html()).toMatchSnapshot();
97
+ });
98
+ });
@@ -9,9 +9,13 @@ describe('Alert.vue', () => {
9
9
  let wrapper;
10
10
 
11
11
  const defaultProps = {
12
+ version: '1.0',
12
13
  text: 'Test Alert',
13
14
  scheme: 'feedback-green',
14
15
  onClose: vi.fn(),
16
+ linkHref: 'https://example.com',
17
+ linkTarget: '_blank',
18
+ linkText: 'Learn more',
15
19
  type: 'success',
16
20
  };
17
21
 
@@ -47,6 +51,19 @@ describe('Alert.vue', () => {
47
51
  expect(wrapper.find('.alert--scheme-aux-red').exists()).toBe(true);
48
52
  });
49
53
 
54
+ test('renders link when linkHref is provided', () => {
55
+ const link = wrapper.find('.alert__link');
56
+ expect(link.exists()).toBe(true);
57
+ expect(link.attributes('href')).toBe('https://example.com');
58
+ expect(link.attributes('target')).toBe('_blank');
59
+ expect(link.text()).toBe('Learn more');
60
+ });
61
+
62
+ test('does not render link when linkHref is not provided', async () => {
63
+ await wrapper.setProps({ linkHref: '' });
64
+ expect(wrapper.find('.alert__link').exists()).toBe(false);
65
+ });
66
+
50
67
  test('emits close event and calls onClose prop when close button is clicked', async () => {
51
68
  await wrapper.find('.alert__close').trigger('click');
52
69
  expect(wrapper.emitted('close')).toBeTruthy();
@@ -76,8 +93,12 @@ describe('Alert.vue', () => {
76
93
  });
77
94
 
78
95
  test.each([
96
+ ['version', '1.1'],
79
97
  ['text', 'New Alert Text'],
80
98
  ['scheme', 'feedback-red'],
99
+ ['linkHref', 'https://newexample.com'],
100
+ ['linkTarget', '_self'],
101
+ ['linkText', 'Click here'],
81
102
  ['type', 'error'],
82
103
  ])('updates %s prop correctly', async (propName, newValue) => {
83
104
  await wrapper.setProps({ [propName]: newValue });
@@ -1,15 +1,11 @@
1
1
  // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
3
  exports[`UnnnicAlert.vue > matches the snapshot 1`] = `
4
- "<transition-stub data-v-c3231c18="" name="toast-slide" appear="true" persisted="false" css="true" data-testid="toast-transition">
5
- <aside data-v-c3231c18="" class="unnnic-toast unnnic-toast--success" role="status" aria-live="polite" data-testid="toast">
6
- <section data-v-c3231c18="" class="unnnic-toast__content" data-testid="toast-content">
7
- <header data-v-c3231c18="" class="unnnic-toast__header" data-testid="toast-header"><span data-v-26446d8e="" data-v-c3231c18="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--green-500 unnnic-icon-size--ant unnnic-icon__size--ant" data-testid="toast-type-icon" translate="no">check_circle</span>
8
- <h3 data-v-c3231c18="" class="unnnic-toast__title" data-testid="toast-title">Test Alert</h3><span data-v-26446d8e="" data-v-c3231c18="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-dark unnnic-icon-size--ant unnnic-icon__size--ant unnnic--clickable unnnic-toast__close" data-testid="toast-close-icon" translate="no">close</span>
9
- </header>
10
- <!--v-if-->
11
- </section>
12
- <!--v-if-->
13
- </aside>
14
- </transition-stub>"
4
+ "<div data-v-284427ba="" class="unnnic-alert unnnic-alert-position--top-right"><span data-v-26446d8e="" data-v-284427ba="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--primary unnnic-icon-size--sm unnnic-icon__size--sm" data-testid="material-icon" translate="no" data-test="unnnic-icon">alert-icon</span>
5
+ <div data-v-284427ba="" class="unnnic-alert__content">
6
+ <div data-v-284427ba="" class="unnnic-alert__title">TEST ALERT</div>
7
+ <div data-v-284427ba="" class="unnnic-alert__text">This is an alert message</div>
8
+ </div>
9
+ <div data-v-284427ba="" class="unnnic-alert__close-text unnnic--clickable">CLOSE</div>
10
+ </div>"
15
11
  `;
@@ -2,9 +2,9 @@
2
2
 
3
3
  exports[`AlertBanner.vue > matches the snapshot 1`] = `
4
4
  "<section data-v-e8e4d051="" class="banner-alert banner-alert--banner-danger">
5
- <header data-v-e8e4d051="" class="banner-alert__container-text"><span data-v-26446d8e="" data-v-e8e4d051="" class="material-symbols-rounded unnnic-icon-scheme--neutral-white unnnic-icon-size--sm banner-alert__textIcon" data-testid="material-icon" translate="no" data-test="unnnic-icon">block</span>
5
+ <header data-v-e8e4d051="" class="banner-alert__container-text"><span data-v-26446d8e="" data-v-e8e4d051="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-white unnnic-icon-size--sm unnnic-icon__size--sm banner-alert__textIcon" data-testid="material-icon" translate="no" data-test="unnnic-icon">block</span>
6
6
  <p data-v-e8e4d051="" class="text">This is a banner alert</p><a data-v-e8e4d051="" class="banner-alert__link" href="https://example.com" target="_self">Learn more</a>
7
7
  </header>
8
- <div data-v-e8e4d051="" class="banner-alert__close"><span data-v-26446d8e="" data-v-e8e4d051="" class="material-symbols-rounded unnnic-icon-scheme--neutral-white unnnic-icon-size--sm" data-testid="material-icon" translate="no" data-test="unnnic-close-icon">close</span></div>
8
+ <div data-v-e8e4d051="" class="banner-alert__close"><span data-v-26446d8e="" data-v-e8e4d051="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--neutral-white unnnic-icon-size--sm unnnic-icon__size--sm" data-testid="material-icon" translate="no" data-test="unnnic-close-icon">close</span></div>
9
9
  </section>"
10
10
  `;
@@ -4,7 +4,7 @@ exports[`Alert.vue > matches snapshot 1`] = `
4
4
  "<div data-v-fb94f284="" class="alert-container">
5
5
  <div data-v-fb94f284="" class="alert alert--scheme-aux-green">
6
6
  <div data-v-fb94f284="" class="alert__progress"></div>
7
- <div data-v-fb94f284="" class="alert__text">Test Alert</div>
7
+ <div data-v-fb94f284="" class="alert__text">Test Alert</div><a data-v-fb94f284="" class="alert__link" href="https://example.com" target="_blank">Learn more</a>
8
8
  <div data-v-fb94f284="" class="alert__close">
9
9
  <unnnic-icon-stub data-v-fb94f284="" filled="false" icon="close-1" clickable="false" size="sm" scheme="neutral-white"></unnnic-icon-stub>
10
10
  </div>
@@ -6,16 +6,19 @@
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"
19
22
  data-testid="icon-loading"
20
23
  />
21
24
 
@@ -27,7 +30,6 @@
27
30
  :filled="iconsFilled"
28
31
  :class="{ 'unnnic-button__icon-left': hasText }"
29
32
  :style="{ visibility: loading ? 'hidden' : 'visible' }"
30
- clickable
31
33
  data-testid="icon-left"
32
34
  />
33
35
 
@@ -38,7 +40,6 @@
38
40
  :style="{ visibility: loading ? 'hidden' : 'visible' }"
39
41
  :size="iconSize"
40
42
  :filled="iconsFilled"
41
- clickable
42
43
  data-testid="icon-center"
43
44
  />
44
45
 
@@ -59,7 +60,6 @@
59
60
  :filled="iconsFilled"
60
61
  :class="{ 'unnnic-button__icon-right': hasText }"
61
62
  :style="{ visibility: loading ? 'hidden' : 'visible' }"
62
- clickable
63
63
  data-testid="icon-right"
64
64
  />
65
65
  </button>
@@ -68,7 +68,6 @@
68
68
  <script setup lang="ts">
69
69
  import { computed, watch, useSlots } from 'vue';
70
70
  import UnnnicIcon from '../Icon.vue';
71
- import UnnnicIconLoading from '../IconLoading/IconLoading.vue';
72
71
  import type { ButtonProps, ButtonSize, ButtonType } from './types';
73
72
  import type { SchemeColor } from '@/types/scheme-colors';
74
73
 
@@ -98,8 +97,8 @@ const buttonDisabled = computed(() => {
98
97
  });
99
98
 
100
99
  const iconSize = computed(() => {
101
- if (props.size === 'extra-large') return 'lg';
102
- return 'ant';
100
+ if (props.size === 'small') return 'sm';
101
+ return 'md';
103
102
  });
104
103
 
105
104
  const hasText = computed(() => {
@@ -116,11 +115,12 @@ const iconScheme = computed((): SchemeColor => {
116
115
  primary: 'neutral-white',
117
116
  secondary: 'neutral-dark',
118
117
  tertiary: 'neutral-dark',
118
+ alternative: 'neutral-white',
119
119
  warning: 'neutral-white',
120
120
  attention: 'neutral-white',
121
121
  };
122
122
 
123
- return typeToSchemeMap[buttonType.value] || 'neutral-white';
123
+ return typeToSchemeMap[props.type] || 'neutral-white';
124
124
  });
125
125
 
126
126
  const isSizePropValid = computed(() => {
@@ -131,23 +131,16 @@ const isSizePropValid = computed(() => {
131
131
  );
132
132
  });
133
133
 
134
- const buttonType = computed(() => {
135
- return (
136
- {
137
- alternative: 'tertiary',
138
- }[props.type] || props.type
139
- );
140
- });
141
-
142
134
  const isTypePropValid = computed(() => {
143
135
  const validTypes: ButtonType[] = [
144
136
  'primary',
145
137
  'secondary',
146
138
  'tertiary',
139
+ 'alternative',
147
140
  'warning',
148
141
  'attention',
149
142
  ];
150
- return validTypes.includes(buttonType.value);
143
+ return validTypes.includes(props.type);
151
144
  });
152
145
 
153
146
  const validateProps = () => {
@@ -161,8 +154,6 @@ const validateProps = () => {
161
154
 
162
155
  if (!isTypePropValid.value) {
163
156
  errorMessage += ' Invalid type prop.';
164
- errorMessage +=
165
- ' Please provide one of the following types: primary, secondary, tertiary, warning, attention. Alternative is discontinued and it was forced renamed to tertiary.';
166
157
  }
167
158
 
168
159
  throw new Error(errorMessage);
@@ -200,19 +191,16 @@ watch(
200
191
  display: inline-flex;
201
192
  align-items: center;
202
193
  justify-content: center;
203
- border-radius: $unnnic-radius-2;
194
+ border-radius: $unnnic-border-radius-sm;
204
195
  border: 0;
205
196
  outline: none;
206
197
  overflow: hidden;
207
198
  white-space: nowrap;
208
- font: $unnnic-font-action;
199
+ font-weight: $unnnic-font-weight-regular;
200
+ font-family: $unnnic-font-family-secondary;
209
201
  cursor: pointer;
210
202
  position: relative;
211
203
 
212
- transition-property: color, background-color, border-color;
213
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
214
- transition-duration: 0.15s;
215
-
216
204
  &__icon {
217
205
  &-left {
218
206
  margin-right: $unnnic-inline-nano;
@@ -223,91 +211,129 @@ watch(
223
211
  }
224
212
  }
225
213
 
226
- &--primary,
227
- &--warning,
228
- &--attention {
229
- color: $unnnic-color-fg-inverted;
230
- }
231
-
232
- &--secondary,
233
- &--tertiary {
234
- color: $unnnic-color-fg-emphasized;
235
- }
236
-
237
214
  &--primary {
238
- background-color: $unnnic-color-bg-active;
215
+ background-color: $unnnic-color-weni-600;
216
+ color: $unnnic-color-neutral-white;
239
217
 
240
218
  &:hover:enabled {
241
- background-color: $unnnic-color-teal-700;
219
+ background-color: $unnnic-color-weni-700;
242
220
  }
243
221
 
244
222
  &:active:enabled {
245
- background-color: $unnnic-color-teal-800;
223
+ background-color: $unnnic-color-weni-800;
246
224
  }
247
225
  }
248
226
 
249
227
  &--secondary {
250
- background-color: $unnnic-color-bg-base;
228
+ background-color: $unnnic-color-neutral-white;
229
+ color: $unnnic-color-neutral-dark;
251
230
  box-shadow: inset 0 0 0 $unnnic-border-width-thinner
252
- $unnnic-color-border-base;
231
+ $unnnic-color-neutral-cleanest;
253
232
 
254
233
  &:hover:enabled {
255
- background-color: $unnnic-color-gray-50;
256
- }
257
-
258
- &:active:enabled {
259
- background-color: $unnnic-color-gray-100;
234
+ background-color: $unnnic-color-neutral-light;
260
235
  }
261
236
 
262
237
  &:disabled {
263
238
  box-shadow: none;
264
239
  }
240
+
241
+ &:active:enabled {
242
+ background-color: $unnnic-color-neutral-soft;
243
+ }
265
244
  }
266
245
 
267
246
  &--tertiary {
268
247
  background-color: transparent;
248
+ color: $unnnic-color-neutral-dark;
269
249
 
270
250
  &:hover:enabled {
271
- background-color: rgba($unnnic-color-gray-400, 0.1);
251
+ background-color: $unnnic-color-neutral-light;
252
+ }
253
+
254
+ &:disabled {
255
+ color: $unnnic-color-neutral-clean;
256
+ cursor: not-allowed;
272
257
  }
273
258
 
274
259
  &:active:enabled {
275
- background-color: rgba($unnnic-color-gray-400, 0.2);
260
+ background-color: $unnnic-color-neutral-soft;
261
+ }
262
+ }
263
+
264
+ &--alternative {
265
+ background-color: $unnnic-color-weni-50;
266
+ color: $unnnic-color-weni-800;
267
+
268
+ :deep(svg .primary) {
269
+ fill: $unnnic-color-weni-800;
270
+ }
271
+
272
+ :deep(svg .primary-stroke) {
273
+ stroke: $unnnic-color-weni-800;
274
+ }
275
+
276
+ &:hover:enabled {
277
+ background-color: $unnnic-color-weni-100;
278
+ }
279
+
280
+ &:disabled {
281
+ :deep(svg .primary) {
282
+ fill: $unnnic-color-neutral-clean;
283
+ }
284
+
285
+ :deep(svg .primary-stroke) {
286
+ stroke: $unnnic-color-neutral-clean;
287
+ }
288
+ }
289
+
290
+ &:active:enabled {
291
+ background-color: $unnnic-color-weni-200;
292
+ color: $unnnic-color-weni-900;
293
+
294
+ :deep(svg .primary) {
295
+ fill: $unnnic-color-weni-900;
296
+ }
297
+
298
+ :deep(svg .primary-stroke) {
299
+ stroke: $unnnic-color-weni-900;
300
+ }
276
301
  }
277
302
  }
278
303
 
279
304
  &--warning {
280
- background-color: $unnnic-color-red-500;
305
+ background-color: $unnnic-color-aux-red-500;
281
306
  color: $unnnic-color-neutral-white;
282
307
 
283
308
  &:hover:enabled {
284
- background-color: $unnnic-color-red-600;
309
+ background-color: $unnnic-color-aux-red-700;
285
310
  }
286
311
 
287
312
  &:active:enabled {
288
- background-color: $unnnic-color-red-700;
313
+ background-color: $unnnic-color-aux-red-900;
289
314
  }
290
315
  }
291
316
 
292
317
  &--attention {
293
- background-color: $unnnic-color-yellow-500;
318
+ background-color: $unnnic-color-aux-yellow-500;
319
+ color: $unnnic-color-neutral-white;
294
320
 
295
321
  &:hover:enabled {
296
- background-color: $unnnic-color-yellow-600;
322
+ background-color: $unnnic-color-aux-yellow-700;
297
323
  }
298
324
 
299
325
  &:active:enabled {
300
- background-color: $unnnic-color-yellow-700;
326
+ background-color: $unnnic-color-aux-yellow-900;
301
327
  }
302
328
  }
303
329
 
304
330
  &--primary:disabled,
305
331
  &--secondary:disabled,
306
- &--tertiary:disabled,
332
+ &--alternative:disabled,
307
333
  &--warning:disabled,
308
334
  &--attention:disabled {
309
- background-color: $unnnic-color-bg-muted;
310
- color: $unnnic-color-fg-muted;
335
+ background-color: $unnnic-color-neutral-soft;
336
+ color: $unnnic-color-neutral-clean;
311
337
  cursor: not-allowed;
312
338
  }
313
339
 
@@ -320,12 +346,26 @@ watch(
320
346
  box-shadow: $unnnic-shadow-level-near;
321
347
  }
322
348
 
323
- &--size-large {
324
- padding: $unnnic-space-3 $unnnic-space-4;
325
- }
349
+ &--size {
350
+ &-extra-large,
351
+ &-large,
352
+ &-small {
353
+ padding: $unnnic-squish-xs;
354
+ font-size: $unnnic-font-size-body-gt;
355
+ line-height: ($unnnic-font-size-body-gt + $unnnic-line-height-medium);
356
+ }
357
+
358
+ &-extra-large {
359
+ height: 58px;
360
+ }
326
361
 
327
- &--size-small {
328
- padding: $unnnic-space-2 $unnnic-space-4;
362
+ &-large {
363
+ height: 46px;
364
+ }
365
+
366
+ &-small {
367
+ height: 38px;
368
+ }
329
369
  }
330
370
  }
331
371
  </style>
@@ -343,19 +383,29 @@ watch(
343
383
  }
344
384
 
345
385
  &-large {
346
- height: 45px;
347
- width: 45px;
386
+ height: 46px;
387
+ width: 46px;
348
388
  }
349
389
 
350
390
  &-large,
351
391
  &-extra-large {
352
392
  padding: $unnnic-inset-xs;
393
+
394
+ .unnnic-icon {
395
+ width: $unnnic-icon-size-md;
396
+ height: $unnnic-icon-size-md;
397
+ }
353
398
  }
354
399
 
355
400
  &-small {
356
401
  padding: $unnnic-inset-nano;
357
- height: 37px;
358
- width: 37px;
402
+ height: 38px;
403
+ width: 38px;
404
+
405
+ .unnnic-icon {
406
+ width: $unnnic-icon-size-ant;
407
+ height: $unnnic-icon-size-ant;
408
+ }
359
409
  }
360
410
  }
361
411
  }
@@ -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
 
@@ -45,12 +45,12 @@
45
45
  {{ title }}
46
46
  </h1>
47
47
 
48
- <p
48
+ <UnnnicTag
49
49
  v-if="projectName"
50
50
  class="chats-contact__infos__project-tag"
51
- >
52
- {{ projectName }}
53
- </p>
51
+ :text="projectName"
52
+ scheme="neutral-white"
53
+ />
54
54
  </section>
55
55
  <div
56
56
  class="chats-contact__infos__additional-information"
@@ -145,6 +145,7 @@ import UnnnicIcon from '../Icon.vue';
145
145
  import TransitionRipple from '../TransitionRipple/TransitionRipple.vue';
146
146
  import UnnnicI18n from '../../mixins/i18n';
147
147
  import Checkbox from '../Checkbox/Checkbox.vue';
148
+ import UnnnicTag from '../Tag/Tag.vue';
148
149
 
149
150
  import('moment/dist/locale/es.js');
150
151
  import('moment/dist/locale/pt-br.js');
@@ -159,6 +160,7 @@ export default {
159
160
  UnnnicIcon,
160
161
  TransitionRipple,
161
162
  Checkbox,
163
+ UnnnicTag,
162
164
  },
163
165
 
164
166
  mixins: [UnnnicI18n],
@@ -507,12 +509,6 @@ export default {
507
509
  display: block;
508
510
  flex-shrink: 1;
509
511
  border: 1px solid $unnnic-color-neutral-cleanest;
510
-
511
- font: $unnnic-font-caption-1;
512
- color: $unnnic-color-fg-emphasized;
513
-
514
- border-radius: $unnnic-radius-4;
515
- padding: 1px $unnnic-space-2;
516
512
  }
517
513
 
518
514
  &__media {