@weni/unnnic-system 3.5.3-alpha.1 → 3.6.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 (229) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/dist/components/Accordion/Accordion.vue.d.ts +1 -1
  3. package/dist/components/Alert/Alert.vue.d.ts +117 -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 +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 +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 +31 -24
  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 +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 +38 -31
  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 +29 -176
  55. package/dist/components/DatePicker/DatePicker.vue.d.ts +3 -3
  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 +30 -38
  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 +1 -32
  67. package/dist/components/Input/BaseInput.vue.d.ts.map +1 -1
  68. package/dist/components/Input/Input.vue.d.ts +29 -176
  69. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  70. package/dist/components/Input/TextInput.vue.d.ts +14 -83
  71. package/dist/components/Input/TextInput.vue.d.ts.map +1 -1
  72. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts +33 -180
  73. package/dist/components/InputNext/InputNext.vue.d.ts +4 -4
  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 +34 -181
  79. package/dist/components/ModalUpload/ModalUpload.vue.d.ts +8 -8
  80. package/dist/components/MoodRating/MoodRating.vue.d.ts +1 -1
  81. package/dist/components/MultiSelect/MultiSelect.vue.d.ts +14 -20
  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 -8
  85. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  86. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +51 -113
  87. package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +8 -8
  88. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +27 -20
  89. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts.map +1 -1
  90. package/dist/components/SelectTime/index.vue.d.ts +14 -83
  91. package/dist/components/SkeletonLoading/skeletonTheme.vue.d.ts +2 -2
  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 +2 -2
  101. package/dist/components/Tag/DefaultTag.vue.d.ts +2 -2
  102. package/dist/components/Tag/IndicatorTag.vue.d.ts +2 -2
  103. package/dist/components/Tag/Tag.vue.d.ts +8 -8
  104. package/dist/components/TextArea/TextArea.vue.d.ts +30 -38
  105. package/dist/components/TextArea/TextArea.vue.d.ts.map +1 -1
  106. package/dist/components/ToolTip/ToolTip.vue.d.ts +1 -1
  107. package/dist/components/Tour/Tour.vue.d.ts +3 -3
  108. package/dist/components/Tour/TourPopover.vue.d.ts +3 -3
  109. package/dist/components/UploadArea/UploadArea.vue.d.ts +4 -4
  110. package/dist/components/index.d.ts +1184 -2540
  111. package/dist/components/index.d.ts.map +1 -1
  112. package/dist/{es-1c7253d4.mjs → es-92fbe460.mjs} +1 -1
  113. package/dist/{index-ff0a404c.mjs → index-0da47957.mjs} +10936 -18388
  114. package/dist/locales/en.json.d.ts +1 -2
  115. package/dist/locales/es.json.d.ts +1 -2
  116. package/dist/locales/pt_br.json.d.ts +1 -2
  117. package/dist/{pt-br-316f1627.mjs → pt-br-c29b6c9a.mjs} +1 -1
  118. package/dist/style.css +1 -1
  119. package/dist/unnnic.mjs +148 -157
  120. package/dist/unnnic.umd.js +51 -53
  121. package/dist/utils/call.d.ts +1 -2
  122. package/dist/utils/call.d.ts.map +1 -1
  123. package/package.json +2 -4
  124. package/src/components/Alert/Alert.vue +135 -26
  125. package/src/components/Alert/AlertBanner.vue +182 -0
  126. package/src/components/Alert/AlertCaller.vue +49 -0
  127. package/src/components/Alert/Version1dot1.vue +36 -0
  128. package/src/components/Alert/__tests__/Alert.spec.js +45 -2
  129. package/src/components/Alert/__tests__/AlertBanner.spec.js +89 -0
  130. package/src/components/Alert/__tests__/AlertCaller.spec.js +98 -0
  131. package/src/components/Alert/__tests__/Version1dot1.spec.js +21 -0
  132. package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +7 -11
  133. package/src/components/Alert/__tests__/__snapshots__/Version1dot1.spec.js.snap +2 -2
  134. package/src/components/Button/Button.vue +107 -64
  135. package/src/components/Button/types.ts +1 -0
  136. package/src/components/Checkbox/Checkbox.vue +64 -98
  137. package/src/components/Checkbox/__tests__/Checkbox.spec.js +21 -6
  138. package/src/components/FormElement/FormElement.vue +91 -51
  139. package/src/components/Icon.vue +1 -23
  140. package/src/components/Input/BaseInput.vue +14 -31
  141. package/src/components/Input/Input.scss +21 -19
  142. package/src/components/Input/Input.vue +30 -94
  143. package/src/components/Input/TextInput.vue +58 -82
  144. package/src/components/Input/__test__/TextInput.spec.js +5 -5
  145. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +3 -16
  146. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +1 -7
  147. package/src/components/Label/Label.vue +21 -52
  148. package/src/components/Label/__tests__/Label.spec.js +1 -1
  149. package/src/components/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  150. package/src/components/Radio/Radio.vue +67 -80
  151. package/src/components/Radio/__test__/Radio.spec.js +20 -14
  152. package/src/components/Radio/__test__/__snapshots__/Radio.spec.js.snap +3 -3
  153. package/src/components/Switch/Switch.vue +97 -120
  154. package/src/components/Switch/__tests__/Switch.spec.js +75 -8
  155. package/src/components/Switch/__tests__/__snapshots__/Switch.spec.js.snap +6 -5
  156. package/src/components/Tab/Tab.vue +23 -37
  157. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +1 -1
  158. package/src/components/TableNext/__test__/__snapshots__/TableNext.spec.js.snap +2 -2
  159. package/src/components/TableNext/__test__/__snapshots__/TablePagination.spec.js.snap +2 -2
  160. package/src/components/TextArea/TextArea.vue +9 -13
  161. package/src/components/TextArea/__test__/__snapshots__/TextArea.spec.js.snap +2 -7
  162. package/src/components/index.ts +9 -30
  163. package/src/locales/en.json +1 -2
  164. package/src/locales/es.json +1 -2
  165. package/src/locales/pt_br.json +1 -2
  166. package/src/stories/Alert.stories.js +67 -6
  167. package/src/stories/Button.stories.js +17 -2
  168. package/src/stories/Checkbox.stories.js +4 -11
  169. package/src/stories/Icon.stories.js +15 -24
  170. package/src/stories/Input.stories.js +3 -16
  171. package/src/stories/Label.stories.js +0 -7
  172. package/src/stories/Switch.stories.js +5 -10
  173. package/src/stories/Tab.stories.js +4 -11
  174. package/src/types/scheme-colors.d.ts +0 -1
  175. package/src/utils/call.js +18 -46
  176. package/dist/assets/tokens/iconSizeTokens.d.ts +0 -2
  177. package/dist/assets/tokens/iconSizeTokens.d.ts.map +0 -1
  178. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +0 -28
  179. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +0 -1
  180. package/dist/components/Toast/Toast.vue.d.ts +0 -16
  181. package/dist/components/Toast/Toast.vue.d.ts.map +0 -1
  182. package/dist/components/Toast/ToastManager.d.ts +0 -14
  183. package/dist/components/Toast/ToastManager.d.ts.map +0 -1
  184. package/dist/components/Toast/types.d.ts +0 -35
  185. package/dist/components/Toast/types.d.ts.map +0 -1
  186. package/dist/components/ui/popover/Popover.vue.d.ts +0 -23
  187. package/dist/components/ui/popover/Popover.vue.d.ts.map +0 -1
  188. package/dist/components/ui/popover/PopoverContent.vue.d.ts +0 -43
  189. package/dist/components/ui/popover/PopoverContent.vue.d.ts.map +0 -1
  190. package/dist/components/ui/popover/PopoverTrigger.vue.d.ts +0 -19
  191. package/dist/components/ui/popover/PopoverTrigger.vue.d.ts.map +0 -1
  192. package/dist/components/ui/popover/index.d.ts +0 -5
  193. package/dist/components/ui/popover/index.d.ts.map +0 -1
  194. package/src/assets/icons/checkbox-checked-disabled.svg +0 -3
  195. package/src/assets/icons/checkbox-checked.svg +0 -3
  196. package/src/assets/icons/checkbox-less-disabled.svg +0 -3
  197. package/src/assets/icons/checkbox-less.svg +0 -3
  198. package/src/assets/icons/radio-checked.svg +0 -3
  199. package/src/assets/icons/switch-checked-disabled.svg +0 -3
  200. package/src/assets/icons/switch-checked.svg +0 -3
  201. package/src/assets/tokens/iconSizeTokens.ts +0 -10
  202. package/src/components/CheckboxGroup/CheckboxGroup.vue +0 -96
  203. package/src/components/Popover/__tests__/Popover.spec.js +0 -147
  204. package/src/components/Popover/__tests__/__snapshots__/Popover.spec.js.snap +0 -8
  205. package/src/components/Popover/index.vue +0 -146
  206. package/src/components/RadioGroup/RadioGroup.vue +0 -142
  207. package/src/components/Select/SelectOption.vue +0 -65
  208. package/src/components/Select/__tests__/Select.spec.js +0 -412
  209. package/src/components/Select/__tests__/SelectItem.spec.js +0 -330
  210. package/src/components/Select/__tests__/SelectOption.spec.js +0 -174
  211. package/src/components/Select/__tests__/__snapshots__/Select.spec.js.snap +0 -97
  212. package/src/components/Select/__tests__/__snapshots__/SelectItem.spec.js.snap +0 -15
  213. package/src/components/Select/__tests__/__snapshots__/SelectOption.spec.js.snap +0 -25
  214. package/src/components/Select/index.vue +0 -245
  215. package/src/components/Toast/Toast.vue +0 -246
  216. package/src/components/Toast/ToastManager.ts +0 -110
  217. package/src/components/Toast/__tests__/Toast.spec.js +0 -284
  218. package/src/components/Toast/__tests__/ToastManager.spec.js +0 -294
  219. package/src/components/Toast/types.ts +0 -57
  220. package/src/components/ui/popover/Popover.vue +0 -19
  221. package/src/components/ui/popover/PopoverContent.vue +0 -98
  222. package/src/components/ui/popover/PopoverTrigger.vue +0 -23
  223. package/src/components/ui/popover/index.ts +0 -4
  224. package/src/stories/CheckboxGroup.stories.js +0 -105
  225. package/src/stories/Popover.stories.js +0 -306
  226. package/src/stories/RadioGroup.stories.js +0 -144
  227. package/src/stories/Select.stories.js +0 -158
  228. package/src/stories/Toast.mdx +0 -123
  229. 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" icon="alert-icon" position="top-right" closetext="Close">
5
- <aside data-v-c3231c18="" class="unnnic-toast unnnic-toast--informational" role="status" aria-live="polite" data-testid="unnnic-toast">
6
- <section data-v-c3231c18="" class="unnnic-toast__content">
7
- <header data-v-c3231c18="" class="unnnic-toast__header"><span data-v-26446d8e="" data-v-c3231c18="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--blue-500 unnnic-icon-size--ant unnnic-icon__size--ant" data-testid="toast-type-icon" translate="no">info</span>
8
- <h3 data-v-c3231c18="" class="unnnic-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-button" 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
  `;
@@ -1,10 +1,10 @@
1
1
  // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
3
  exports[`Alert.vue > matches snapshot 1`] = `
4
- "<div data-v-fb94f284="" class="alert-container" version="1.0" linkhref="https://example.com" linktarget="_blank" linktext="Learn more">
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
- :next="next"
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
- :next="next"
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
- :next="next"
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
 
@@ -87,7 +86,6 @@ const props = withDefaults(defineProps<ButtonProps>(), {
87
86
  iconRight: '',
88
87
  iconCenter: '',
89
88
  iconsFilled: false,
90
- next: false,
91
89
  disabled: false,
92
90
  loading: false,
93
91
  });
@@ -99,8 +97,8 @@ const buttonDisabled = computed(() => {
99
97
  });
100
98
 
101
99
  const iconSize = computed(() => {
102
- if (props.size === 'extra-large') return 'lg';
103
- return 'ant';
100
+ if (props.size === 'small') return 'sm';
101
+ return 'md';
104
102
  });
105
103
 
106
104
  const hasText = computed(() => {
@@ -117,11 +115,12 @@ const iconScheme = computed((): SchemeColor => {
117
115
  primary: 'neutral-white',
118
116
  secondary: 'neutral-dark',
119
117
  tertiary: 'neutral-dark',
118
+ alternative: 'neutral-white',
120
119
  warning: 'neutral-white',
121
120
  attention: 'neutral-white',
122
121
  };
123
122
 
124
- return typeToSchemeMap[buttonType.value] || 'neutral-white';
123
+ return typeToSchemeMap[props.type] || 'neutral-white';
125
124
  });
126
125
 
127
126
  const isSizePropValid = computed(() => {
@@ -132,23 +131,16 @@ const isSizePropValid = computed(() => {
132
131
  );
133
132
  });
134
133
 
135
- const buttonType = computed(() => {
136
- return (
137
- {
138
- alternative: 'tertiary',
139
- }[props.type] || props.type
140
- );
141
- });
142
-
143
134
  const isTypePropValid = computed(() => {
144
135
  const validTypes: ButtonType[] = [
145
136
  'primary',
146
137
  'secondary',
147
138
  'tertiary',
139
+ 'alternative',
148
140
  'warning',
149
141
  'attention',
150
142
  ];
151
- return validTypes.includes(buttonType.value);
143
+ return validTypes.includes(props.type);
152
144
  });
153
145
 
154
146
  const validateProps = () => {
@@ -162,8 +154,6 @@ const validateProps = () => {
162
154
 
163
155
  if (!isTypePropValid.value) {
164
156
  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
157
  }
168
158
 
169
159
  throw new Error(errorMessage);
@@ -201,12 +191,13 @@ watch(
201
191
  display: inline-flex;
202
192
  align-items: center;
203
193
  justify-content: center;
204
- border-radius: $unnnic-radius-2;
194
+ border-radius: $unnnic-border-radius-sm;
205
195
  border: 0;
206
196
  outline: none;
207
197
  overflow: hidden;
208
198
  white-space: nowrap;
209
- font: $unnnic-font-action;
199
+ font-weight: $unnnic-font-weight-regular;
200
+ font-family: $unnnic-font-family-secondary;
210
201
  cursor: pointer;
211
202
  position: relative;
212
203
 
@@ -220,91 +211,129 @@ watch(
220
211
  }
221
212
  }
222
213
 
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
214
  &--primary {
235
- background-color: $unnnic-color-bg-active;
215
+ background-color: $unnnic-color-weni-600;
216
+ color: $unnnic-color-neutral-white;
236
217
 
237
218
  &:hover:enabled {
238
- background-color: $unnnic-color-teal-700;
219
+ background-color: $unnnic-color-weni-700;
239
220
  }
240
221
 
241
222
  &:active:enabled {
242
- background-color: $unnnic-color-teal-800;
223
+ background-color: $unnnic-color-weni-800;
243
224
  }
244
225
  }
245
226
 
246
227
  &--secondary {
247
- background-color: $unnnic-color-bg-base;
228
+ background-color: $unnnic-color-neutral-white;
229
+ color: $unnnic-color-neutral-dark;
248
230
  box-shadow: inset 0 0 0 $unnnic-border-width-thinner
249
- $unnnic-color-border-base;
231
+ $unnnic-color-neutral-cleanest;
250
232
 
251
233
  &:hover:enabled {
252
- background-color: $unnnic-color-gray-50;
253
- }
254
-
255
- &:active:enabled {
256
- background-color: $unnnic-color-gray-100;
234
+ background-color: $unnnic-color-neutral-light;
257
235
  }
258
236
 
259
237
  &:disabled {
260
238
  box-shadow: none;
261
239
  }
240
+
241
+ &:active:enabled {
242
+ background-color: $unnnic-color-neutral-soft;
243
+ }
262
244
  }
263
245
 
264
246
  &--tertiary {
265
247
  background-color: transparent;
248
+ color: $unnnic-color-neutral-dark;
249
+
250
+ &:hover:enabled {
251
+ background-color: $unnnic-color-neutral-light;
252
+ }
253
+
254
+ &:disabled {
255
+ color: $unnnic-color-neutral-clean;
256
+ cursor: not-allowed;
257
+ }
258
+
259
+ &:active:enabled {
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
+ }
266
275
 
267
276
  &:hover:enabled {
268
- background-color: rgba($unnnic-color-gray-400, 0.1);
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
+ }
269
288
  }
270
289
 
271
290
  &:active:enabled {
272
- background-color: rgba($unnnic-color-gray-400, 0.2);
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
+ }
273
301
  }
274
302
  }
275
303
 
276
304
  &--warning {
277
- background-color: $unnnic-color-red-500;
305
+ background-color: $unnnic-color-aux-red-500;
278
306
  color: $unnnic-color-neutral-white;
279
307
 
280
308
  &:hover:enabled {
281
- background-color: $unnnic-color-red-600;
309
+ background-color: $unnnic-color-aux-red-700;
282
310
  }
283
311
 
284
312
  &:active:enabled {
285
- background-color: $unnnic-color-red-700;
313
+ background-color: $unnnic-color-aux-red-900;
286
314
  }
287
315
  }
288
316
 
289
317
  &--attention {
290
- background-color: $unnnic-color-yellow-500;
318
+ background-color: $unnnic-color-aux-yellow-500;
319
+ color: $unnnic-color-neutral-white;
291
320
 
292
321
  &:hover:enabled {
293
- background-color: $unnnic-color-yellow-600;
322
+ background-color: $unnnic-color-aux-yellow-700;
294
323
  }
295
324
 
296
325
  &:active:enabled {
297
- background-color: $unnnic-color-yellow-700;
326
+ background-color: $unnnic-color-aux-yellow-900;
298
327
  }
299
328
  }
300
329
 
301
330
  &--primary:disabled,
302
331
  &--secondary:disabled,
303
- &--tertiary:disabled,
332
+ &--alternative:disabled,
304
333
  &--warning:disabled,
305
334
  &--attention:disabled {
306
- background-color: $unnnic-color-bg-muted;
307
- color: $unnnic-color-fg-muted;
335
+ background-color: $unnnic-color-neutral-soft;
336
+ color: $unnnic-color-neutral-clean;
308
337
  cursor: not-allowed;
309
338
  }
310
339
 
@@ -317,12 +346,26 @@ watch(
317
346
  box-shadow: $unnnic-shadow-level-near;
318
347
  }
319
348
 
320
- &--size-large {
321
- padding: $unnnic-space-3 $unnnic-space-4;
322
- }
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
+ }
323
361
 
324
- &--size-small {
325
- padding: $unnnic-space-2 $unnnic-space-4;
362
+ &-large {
363
+ height: 46px;
364
+ }
365
+
366
+ &-small {
367
+ height: 38px;
368
+ }
326
369
  }
327
370
  }
328
371
  </style>
@@ -340,8 +383,8 @@ watch(
340
383
  }
341
384
 
342
385
  &-large {
343
- height: 45px;
344
- width: 45px;
386
+ height: 46px;
387
+ width: 46px;
345
388
  }
346
389
 
347
390
  &-large,
@@ -356,8 +399,8 @@ watch(
356
399
 
357
400
  &-small {
358
401
  padding: $unnnic-inset-nano;
359
- height: 37px;
360
- width: 37px;
402
+ height: 38px;
403
+ width: 38px;
361
404
 
362
405
  .unnnic-icon {
363
406
  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