@weni/unnnic-system 3.9.1 → 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 (257) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/assets/tokens/colors.json.d.ts +376 -0
  3. package/dist/components/Accordion/Accordion.vue.d.ts +1 -1
  4. package/dist/components/Alert/Alert.vue.d.ts +17 -116
  5. package/dist/components/Alert/Alert.vue.d.ts.map +1 -1
  6. package/dist/components/Alert/Version1dot1.vue.d.ts +2 -38
  7. package/dist/components/Alert/Version1dot1.vue.d.ts.map +1 -1
  8. package/dist/components/AudioRecorder/AudioHandler.vue.d.ts +2 -2
  9. package/dist/components/AudioRecorder/AudioPlayer.vue.d.ts +1 -1
  10. package/dist/components/AudioRecorder/AudioRecorder.vue.d.ts +5 -5
  11. package/dist/components/AvatarIcon/AvatarIcon.vue.d.ts +3 -3
  12. package/dist/components/Banner/Banner.vue.d.ts +1 -1
  13. package/dist/components/Banner/InfoBanner.vue.d.ts +1 -1
  14. package/dist/components/Breadcrumb/Breadcrumb.vue.d.ts +1 -1
  15. package/dist/components/Button/Button.vue.d.ts +1 -1
  16. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  17. package/dist/components/Button/ButtonIcon.vue.d.ts +1 -1
  18. package/dist/components/Button/types.d.ts +1 -1
  19. package/dist/components/Button/types.d.ts.map +1 -1
  20. package/dist/components/Card/AccountCard.vue.d.ts +5 -5
  21. package/dist/components/Card/BlankCard.vue.d.ts +1 -1
  22. package/dist/components/Card/Card.vue.d.ts +27 -27
  23. package/dist/components/Card/CardCompany.vue.d.ts +11 -414
  24. package/dist/components/Card/CardData.vue.d.ts +1 -1
  25. package/dist/components/Card/CardStatusesContainer.vue.d.ts +5 -5
  26. package/dist/components/Card/ContentCard.vue.d.ts +3 -3
  27. package/dist/components/Card/DashCard.vue.d.ts +5 -5
  28. package/dist/components/Card/DefaultCard.vue.d.ts +1 -1
  29. package/dist/components/Card/MarketplaceCard.vue.d.ts +2 -2
  30. package/dist/components/Card/SimpleCard.vue.d.ts +3 -3
  31. package/dist/components/Card/StatusCard.vue.d.ts +2 -2
  32. package/dist/components/Card/TitleCard.vue.d.ts +3 -3
  33. package/dist/components/CardImage/CardImage.vue.d.ts +24 -31
  34. package/dist/components/CardInformation/CardInformation.vue.d.ts +5 -5
  35. package/dist/components/CardProject/CardProject.vue.d.ts +3 -3
  36. package/dist/components/Carousel/Carousel.vue.d.ts +13 -416
  37. package/dist/components/Carousel/TagCarousel.vue.d.ts +12 -415
  38. package/dist/components/ChartBar/ChartBar.vue.d.ts +5 -5
  39. package/dist/components/ChartLine/ChartLine.vue.d.ts +1 -1
  40. package/dist/components/ChatText/ChatText.vue.d.ts +2 -2
  41. package/dist/components/ChatsContact/ChatsContact.vue.d.ts +30 -448
  42. package/dist/components/ChatsDashboardTagLive/ChatsDashboardTagLive.vue.d.ts +1 -1
  43. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts +1 -1
  44. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts.map +1 -1
  45. package/dist/components/ChatsMessage/ChatsMessage.vue.d.ts +5 -5
  46. package/dist/components/ChatsMessage/ChatsMessageStatusBackdrop.vue.d.ts +2 -2
  47. package/dist/components/ChatsNavbar/ChatsNavbar.vue.d.ts +1 -1
  48. package/dist/components/ChatsUserAvatar/ChatsUserAvatar.vue.d.ts +2 -2
  49. package/dist/components/Checkbox/Checkbox.vue.d.ts +19 -26
  50. package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
  51. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +28 -0
  52. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +1 -0
  53. package/dist/components/Comment/Comment.vue.d.ts +1 -1
  54. package/dist/components/DataArea/DataArea.vue.d.ts +2 -2
  55. package/dist/components/DataTable/index.vue.d.ts +12 -2
  56. package/dist/components/DataTable/index.vue.d.ts.map +1 -1
  57. package/dist/components/DateFilter/DateFilter.vue.d.ts +251 -41
  58. package/dist/components/DatePicker/DatePicker.vue.d.ts +4 -4
  59. package/dist/components/Drawer/Drawer.vue.d.ts +4 -4
  60. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  61. package/dist/components/Dropdown/LanguageSelect.vue.d.ts +3 -3
  62. package/dist/components/Flag.vue.d.ts +2 -2
  63. package/dist/components/FormElement/FormElement.vue.d.ts +51 -28
  64. package/dist/components/FormElement/FormElement.vue.d.ts.map +1 -1
  65. package/dist/components/Icon.vue.d.ts +1 -1
  66. package/dist/components/Icon.vue.d.ts.map +1 -1
  67. package/dist/components/IconLoading/IconLoading.vue.d.ts +1 -1
  68. package/dist/components/ImportCard/ImportCard.vue.d.ts +4 -4
  69. package/dist/components/Input/BaseInput.vue.d.ts +33 -2
  70. package/dist/components/Input/BaseInput.vue.d.ts.map +1 -1
  71. package/dist/components/Input/Input.vue.d.ts +251 -41
  72. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  73. package/dist/components/Input/TextInput.vue.d.ts +85 -25
  74. package/dist/components/Input/TextInput.vue.d.ts.map +1 -1
  75. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts +256 -46
  76. package/dist/components/InputNext/InputNext.vue.d.ts +5 -5
  77. package/dist/components/Label/Label.vue.d.ts +9 -15
  78. package/dist/components/Label/Label.vue.d.ts.map +1 -1
  79. package/dist/components/Modal/Modal.vue.d.ts +2 -2
  80. package/dist/components/ModalDialog/ModalDialog.vue.d.ts +6 -6
  81. package/dist/components/ModalNext/ModalNext.vue.d.ts +256 -46
  82. package/dist/components/ModalUpload/ModalUpload.vue.d.ts +9 -9
  83. package/dist/components/MoodRating/MoodRating.vue.d.ts +1 -1
  84. package/dist/components/MultiSelect/MultiSelect.vue.d.ts +26 -14
  85. package/dist/components/PageHeader/PageHeader.vue.d.ts +28 -0
  86. package/dist/components/PageHeader/PageHeader.vue.d.ts.map +1 -0
  87. package/dist/components/PageHeader/index.d.ts +3 -0
  88. package/dist/components/PageHeader/index.d.ts.map +1 -0
  89. package/dist/components/PageHeader/types.d.ts +9 -0
  90. package/dist/components/PageHeader/types.d.ts.map +1 -0
  91. package/dist/components/Pagination/Pagination.vue.d.ts +3 -3
  92. package/dist/components/ProgressBar/ProgressBar.vue.d.ts +1 -1
  93. package/dist/components/Radio/Radio.vue.d.ts +10 -6
  94. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  95. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +120 -470
  96. package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +11 -414
  97. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +21 -28
  98. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts.map +1 -1
  99. package/dist/components/SelectTime/index.vue.d.ts +85 -25
  100. package/dist/components/SkeletonLoading/skeletonTheme.vue.d.ts +1 -1
  101. package/dist/components/Slider/Slider.vue.d.ts +2 -2
  102. package/dist/components/StarRating/StarRating.vue.d.ts +1 -1
  103. package/dist/components/Switch/Switch.vue.d.ts +55 -21
  104. package/dist/components/Switch/Switch.vue.d.ts.map +1 -1
  105. package/dist/components/Tab/Tab.vue.d.ts +13 -2
  106. package/dist/components/TableNext/TableBodyCell.vue.d.ts +2 -2
  107. package/dist/components/TableNext/TablePagination.vue.d.ts +3 -3
  108. package/dist/components/TabsExpanded/TabsExpanded.vue.d.ts +1 -1
  109. package/dist/components/Tag/DefaultTag.vue.d.ts +4 -83
  110. package/dist/components/Tag/DefaultTag.vue.d.ts.map +1 -1
  111. package/dist/components/Tag/Tag.vue.d.ts +12 -414
  112. package/dist/components/Tag/Tag.vue.d.ts.map +1 -1
  113. package/dist/components/Tag/types.d.ts +18 -0
  114. package/dist/components/Tag/types.d.ts.map +1 -0
  115. package/dist/components/TextArea/TextArea.vue.d.ts +78 -33
  116. package/dist/components/TextArea/TextArea.vue.d.ts.map +1 -1
  117. package/dist/components/Toast/Toast.vue.d.ts +16 -0
  118. package/dist/components/Toast/Toast.vue.d.ts.map +1 -0
  119. package/dist/components/Toast/ToastManager.d.ts +14 -0
  120. package/dist/components/Toast/ToastManager.d.ts.map +1 -0
  121. package/dist/components/Toast/types.d.ts +35 -0
  122. package/dist/components/Toast/types.d.ts.map +1 -0
  123. package/dist/components/ToolTip/ToolTip.vue.d.ts +1 -1
  124. package/dist/components/Tour/Tour.vue.d.ts +3 -3
  125. package/dist/components/Tour/TourPopover.vue.d.ts +3 -3
  126. package/dist/components/UploadArea/UploadArea.vue.d.ts +4 -4
  127. package/dist/components/index.d.ts +8736 -10161
  128. package/dist/components/index.d.ts.map +1 -1
  129. package/dist/components/ui/popover/PopoverContent.vue.d.ts +1 -1
  130. package/dist/components/ui/popover/PopoverContent.vue.d.ts.map +1 -1
  131. package/dist/{es-efb4f902.mjs → es-61b41785.mjs} +1 -1
  132. package/dist/{index-e30fc518.mjs → index-10160248.mjs} +9383 -8807
  133. package/dist/locales/en.json.d.ts +2 -1
  134. package/dist/locales/es.json.d.ts +2 -1
  135. package/dist/locales/pt_br.json.d.ts +2 -1
  136. package/dist/{pt-br-4bacdbb6.mjs → pt-br-31a68683.mjs} +1 -1
  137. package/dist/style.css +1 -1
  138. package/dist/unnnic.mjs +158 -151
  139. package/dist/unnnic.umd.js +34 -35
  140. package/dist/utils/call.d.ts +2 -1
  141. package/dist/utils/call.d.ts.map +1 -1
  142. package/package.json +2 -2
  143. package/src/assets/icons/checkbox-checked-disabled.svg +3 -0
  144. package/src/assets/icons/checkbox-checked.svg +3 -0
  145. package/src/assets/icons/checkbox-less-disabled.svg +3 -0
  146. package/src/assets/icons/checkbox-less.svg +3 -0
  147. package/src/assets/icons/radio-checked.svg +3 -0
  148. package/src/assets/icons/switch-checked-disabled.svg +3 -0
  149. package/src/assets/icons/switch-checked.svg +3 -0
  150. package/src/assets/scss/scheme-colors.scss +309 -223
  151. package/src/components/Alert/Alert.vue +26 -135
  152. package/src/components/Alert/Version1dot1.vue +0 -36
  153. package/src/components/Alert/__tests__/Alert.spec.js +2 -45
  154. package/src/components/Alert/__tests__/Version1dot1.spec.js +0 -21
  155. package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +11 -7
  156. package/src/components/Alert/__tests__/__snapshots__/AlertBanner.spec.js.snap +2 -2
  157. package/src/components/Alert/__tests__/__snapshots__/Version1dot1.spec.js.snap +1 -1
  158. package/src/components/Button/Button.vue +67 -117
  159. package/src/components/Button/types.ts +0 -1
  160. package/src/components/ChatsContact/ChatsContact.vue +16 -8
  161. package/src/components/Checkbox/Checkbox.vue +117 -65
  162. package/src/components/Checkbox/__tests__/Checkbox.spec.js +6 -21
  163. package/src/components/CheckboxGroup/CheckboxGroup.vue +96 -0
  164. package/src/components/DataTable/index.vue +48 -0
  165. package/src/components/FormElement/FormElement.vue +63 -93
  166. package/src/components/Icon.vue +2 -0
  167. package/src/components/Input/BaseInput.vue +33 -14
  168. package/src/components/Input/Input.scss +22 -22
  169. package/src/components/Input/Input.vue +79 -56
  170. package/src/components/Input/TextInput.vue +81 -65
  171. package/src/components/Input/__test__/Input.spec.js +13 -33
  172. package/src/components/Input/__test__/TextInput.spec.js +6 -8
  173. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +17 -4
  174. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +7 -1
  175. package/src/components/Label/Label.vue +52 -21
  176. package/src/components/Label/__tests__/Label.spec.js +1 -1
  177. package/src/components/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  178. package/src/components/MultiSelectV2/MultSelectOption.vue +67 -0
  179. package/src/components/MultiSelectV2/__tests__/MultiSelect.spec.js +556 -0
  180. package/src/components/MultiSelectV2/__tests__/MultiSelectOption.spec.js +229 -0
  181. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelect.spec.js.snap +121 -0
  182. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelectOption.spec.js.snap +51 -0
  183. package/src/components/MultiSelectV2/index.vue +221 -0
  184. package/src/components/PageHeader/PageHeader.vue +148 -0
  185. package/src/components/PageHeader/index.ts +2 -0
  186. package/src/components/PageHeader/types.ts +10 -0
  187. package/src/components/Popover/__tests__/Popover.spec.js +147 -0
  188. package/src/components/Popover/__tests__/__snapshots__/Popover.spec.js.snap +8 -0
  189. package/src/components/Popover/index.vue +146 -0
  190. package/src/components/Radio/Radio.vue +118 -66
  191. package/src/components/Radio/__test__/Radio.spec.js +14 -20
  192. package/src/components/Radio/__test__/__snapshots__/Radio.spec.js.snap +4 -3
  193. package/src/components/RadioGroup/RadioGroup.vue +142 -0
  194. package/src/components/Select/SelectOption.vue +65 -0
  195. package/src/components/Select/__tests__/Select.spec.js +412 -0
  196. package/src/components/Select/__tests__/SelectItem.spec.js +330 -0
  197. package/src/components/Select/__tests__/SelectOption.spec.js +174 -0
  198. package/src/components/Select/__tests__/__snapshots__/Select.spec.js.snap +97 -0
  199. package/src/components/Select/__tests__/__snapshots__/SelectItem.spec.js.snap +15 -0
  200. package/src/components/Select/__tests__/__snapshots__/SelectOption.spec.js.snap +25 -0
  201. package/src/components/Select/index.vue +249 -0
  202. package/src/components/SelectSmart/SelectSmart.vue +4 -3
  203. package/src/components/Switch/Switch.vue +132 -91
  204. package/src/components/Switch/__tests__/Switch.spec.js +8 -75
  205. package/src/components/Switch/__tests__/__snapshots__/Switch.spec.js.snap +5 -6
  206. package/src/components/Tab/Tab.vue +37 -23
  207. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +1 -1
  208. package/src/components/TableNext/__test__/__snapshots__/TableNext.spec.js.snap +2 -2
  209. package/src/components/TableNext/__test__/__snapshots__/TablePagination.spec.js.snap +2 -2
  210. package/src/components/Tag/DefaultTag.vue +51 -107
  211. package/src/components/Tag/Tag.vue +32 -79
  212. package/src/components/Tag/types.ts +19 -0
  213. package/src/components/TextArea/TextArea.vue +41 -12
  214. package/src/components/TextArea/__test__/__snapshots__/TextArea.spec.js.snap +11 -3
  215. package/src/components/Toast/Toast.vue +246 -0
  216. package/src/components/Toast/ToastManager.ts +110 -0
  217. package/src/components/Toast/__tests__/Toast.spec.js +291 -0
  218. package/src/components/Toast/__tests__/ToastManager.spec.js +294 -0
  219. package/src/components/Toast/types.ts +57 -0
  220. package/src/components/index.ts +33 -18
  221. package/src/locales/en.json +2 -1
  222. package/src/locales/es.json +2 -1
  223. package/src/locales/pt_br.json +2 -1
  224. package/src/stories/Alert.stories.js +6 -67
  225. package/src/stories/Button.stories.js +29 -39
  226. package/src/stories/ChatsContact.stories.js +9 -0
  227. package/src/stories/Checkbox.stories.js +11 -4
  228. package/src/stories/CheckboxGroup.stories.js +105 -0
  229. package/src/stories/DataTable.stories.js +192 -0
  230. package/src/stories/Input.stories.js +71 -76
  231. package/src/stories/Label.stories.js +7 -0
  232. package/src/stories/MultiSelectV2.stories.js +158 -0
  233. package/src/stories/PageHeader.stories.js +330 -0
  234. package/src/stories/Radio.stories.js +28 -1
  235. package/src/stories/RadioGroup.stories.js +144 -0
  236. package/src/stories/Select.stories.js +158 -0
  237. package/src/stories/Switch.stories.js +10 -5
  238. package/src/stories/Tab.stories.js +11 -4
  239. package/src/stories/Tag.stories.js +24 -43
  240. package/src/stories/TextArea.stories.js +14 -2
  241. package/src/stories/Toast.mdx +123 -0
  242. package/src/stories/Toast.stories.js +126 -0
  243. package/src/types/scheme-colors.d.ts +1 -0
  244. package/src/utils/call.js +46 -18
  245. package/dist/components/Tag/BrandTag.vue.d.ts +0 -51
  246. package/dist/components/Tag/BrandTag.vue.d.ts.map +0 -1
  247. package/dist/components/Tag/IndicatorTag.vue.d.ts +0 -151
  248. package/dist/components/Tag/IndicatorTag.vue.d.ts.map +0 -1
  249. package/dist/components/Tag/TagNext.vue.d.ts +0 -24
  250. package/dist/components/Tag/TagNext.vue.d.ts.map +0 -1
  251. package/src/components/Alert/AlertBanner.vue +0 -182
  252. package/src/components/Alert/AlertCaller.vue +0 -49
  253. package/src/components/Alert/__tests__/AlertBanner.spec.js +0 -89
  254. package/src/components/Alert/__tests__/AlertCaller.spec.js +0 -98
  255. package/src/components/Tag/BrandTag.vue +0 -96
  256. package/src/components/Tag/IndicatorTag.vue +0 -107
  257. package/src/components/Tag/TagNext.vue +0 -60
@@ -21,9 +21,28 @@ export default {
21
21
  disabled: { control: { type: 'boolean' } },
22
22
  size: { control: { type: 'select', options: ['md', 'sm'] } },
23
23
  },
24
+ render: (args) => ({
25
+ components: {
26
+ UnnnicRadio,
27
+ },
28
+ setup() {
29
+ const updateModelValue = (value) => {
30
+ action('update:modelValue')(value);
31
+ args.modelValue = value;
32
+ };
33
+ return { args, updateModelValue };
34
+ },
35
+ template: `
36
+ <div>
37
+ <UnnnicRadio v-bind="args" @update:model-value="updateModelValue" :value="args.value">
38
+ Option
39
+ </UnnnicRadio>
40
+ </div>
41
+ `,
42
+ }),
24
43
  };
25
44
 
26
- export const Default = {
45
+ export const Multiple = {
27
46
  render: (args) => ({
28
47
  components: {
29
48
  UnnnicRadio,
@@ -75,3 +94,11 @@ export const DisableSelected = {
75
94
  disabled: true,
76
95
  },
77
96
  };
97
+
98
+ export const Helper = {
99
+ args: {
100
+ modelValue: 'option 1',
101
+ value: 'option 1',
102
+ helper: 'Helper text',
103
+ },
104
+ };
@@ -0,0 +1,144 @@
1
+ import { action } from '@storybook/addon-actions';
2
+ import UnnnicRadioGroup from '../components/RadioGroup/RadioGroup.vue';
3
+ import UnnnicRadio from '../components/Radio/Radio.vue';
4
+ import { ref } from 'vue';
5
+
6
+ export default {
7
+ title: 'Form/RadioGroup',
8
+ component: UnnnicRadioGroup,
9
+ tags: ['autodocs'],
10
+ parameters: {
11
+ docs: {
12
+ description: {
13
+ component: `Fundamental in forms, used when we present a list of two or more mutually
14
+ exclusive options, and the user needs to choose exactly one of them. When you click on
15
+ an unselected radio button, it will automatically deselect any other buttons that were
16
+ previously selected in the list.
17
+ `,
18
+ },
19
+ },
20
+ },
21
+ argTypes: {
22
+ label: { control: { type: 'text' } },
23
+ labelTooltip: { control: { type: 'text' } },
24
+ labelUseHtmlTooltip: { control: 'boolean' },
25
+ modelValue: { control: { type: ['string', 'number'] } },
26
+ name: { control: { type: 'text' } },
27
+ state: { control: 'select', options: ['horizontal', 'vertical'] },
28
+ helper: { control: { type: 'text' } },
29
+ },
30
+ };
31
+
32
+ export const Default = {
33
+ args: {
34
+ label: 'Radio Group 1',
35
+ helper: 'Helper text',
36
+ },
37
+
38
+ render: (args) => ({
39
+ components: {
40
+ UnnnicRadioGroup,
41
+ UnnnicRadio,
42
+ },
43
+
44
+ setup() {
45
+ const modelValue = ref('option 1');
46
+
47
+ const updateModelValue = (value) => {
48
+ action('update:modelValue')(value);
49
+ modelValue.value = value;
50
+ };
51
+
52
+ return { args, modelValue, updateModelValue };
53
+ },
54
+
55
+ template: `
56
+ <section>
57
+ <pre>v-model: {{ modelValue }}</pre>
58
+
59
+ <UnnnicRadioGroup v-bind="args" :modelValue="modelValue" @update:modelValue="updateModelValue">
60
+ <UnnnicRadio value="option 1">
61
+ Option 1
62
+ </UnnnicRadio>
63
+
64
+ <UnnnicRadio value="option 2">
65
+ Option 2
66
+ </UnnnicRadio>
67
+
68
+ <UnnnicRadio value="option 3">
69
+ Option 3
70
+ </UnnnicRadio>
71
+ </UnnnicRadioGroup>
72
+ </section>
73
+ `,
74
+ }),
75
+ };
76
+
77
+ export const Horizontal = {
78
+ args: {
79
+ state: 'horizontal',
80
+ label: 'Label',
81
+ name: 'Radio Group 1',
82
+ helper: 'Helper text',
83
+ },
84
+
85
+ render: (args) => ({
86
+ components: {
87
+ UnnnicRadioGroup,
88
+ UnnnicRadio,
89
+ },
90
+ setup() {
91
+ return { args };
92
+ },
93
+ template: `
94
+ <UnnnicRadioGroup v-bind="args">
95
+ <UnnnicRadio value="option 1">
96
+ Option 1
97
+ </UnnnicRadio>
98
+
99
+ <UnnnicRadio value="option 2">
100
+ Option 2
101
+ </UnnnicRadio>
102
+
103
+ <UnnnicRadio value="option 3">
104
+ Option 3
105
+ </UnnnicRadio>
106
+ </UnnnicRadioGroup>
107
+ `,
108
+ }),
109
+ };
110
+
111
+ export const Vertical = {
112
+ args: {
113
+ state: 'vertical',
114
+ label: 'Label',
115
+ labelTooltip: 'Tooltip',
116
+ name: 'Radio Group 2',
117
+ helper: 'Helper text',
118
+ },
119
+
120
+ render: (args) => ({
121
+ components: {
122
+ UnnnicRadioGroup,
123
+ UnnnicRadio,
124
+ },
125
+ setup() {
126
+ return { args };
127
+ },
128
+ template: `
129
+ <UnnnicRadioGroup v-bind="args">
130
+ <UnnnicRadio value="option 1">
131
+ Option 1
132
+ </UnnnicRadio>
133
+
134
+ <UnnnicRadio value="option 2">
135
+ Option 2
136
+ </UnnnicRadio>
137
+
138
+ <UnnnicRadio value="option 3">
139
+ Option 3
140
+ </UnnnicRadio>
141
+ </UnnnicRadioGroup>
142
+ `,
143
+ }),
144
+ };
@@ -0,0 +1,158 @@
1
+ import UnnnicSelect from '../components/Select/index.vue';
2
+
3
+ const options = [
4
+ { label: 'Option 1', value: 'option1', altValue: 'alt_value_option1' },
5
+ { label: 'Option 2', value: 'option2', altValue: 'alt_value_option2' },
6
+ { label: 'Option 3', value: 'option3', altValue: 'alt_value_option3' },
7
+ { label: 'Option 4', value: 'option4', altValue: 'alt_value_option4' },
8
+ { label: 'Option 5', value: 'option5', altValue: 'alt_value_option5' },
9
+ { label: 'Option 6', value: 'option6', altValue: 'alt_value_option6' },
10
+ { label: 'Option 7', value: 'option7', altValue: 'alt_value_option7' },
11
+ { label: 'Option 8', value: 'option8', altValue: 'alt_value_option8' },
12
+ { label: 'Option 9', value: 'option9', altValue: 'alt_value_option9' },
13
+ { label: 'Option 10', value: 'option10', disabled: true },
14
+ ];
15
+
16
+ export default {
17
+ title: 'Form/Select',
18
+ component: UnnnicSelect,
19
+ tags: ['autodocs'],
20
+ parameters: {
21
+ docs: {
22
+ description: {
23
+ component:
24
+ 'Select is designed to solve common problems related to option selection.',
25
+ },
26
+ },
27
+ },
28
+ argTypes: {
29
+ options: {
30
+ description:
31
+ 'List of items to be displayed in the options. If an item has a `disabled` key set to `true`, that item will be disabled. By default, the component looks for the `label` and `value` keys to display and update the model, but these are not required if you wish to customize them using the `itemLabel` and `itemValue` props, respectively.',
32
+ },
33
+ placeholder: {
34
+ description: 'Text to be displayed in the placeholder.',
35
+ },
36
+ label: {
37
+ description: 'Text to be displayed in the label.',
38
+ },
39
+ modelValue: {
40
+ description:
41
+ 'Model variable. Its type will always match the return type of the key specified by `itemValue`, or the entire options object when `returnObject` prop is set to `true`.',
42
+ },
43
+ returnObject: {
44
+ description:
45
+ 'Prop to indicate that the full option object should be returned in the v-model.',
46
+ },
47
+ itemLabel: {
48
+ description:
49
+ 'Field of the option item that should be used to render the option label.',
50
+ },
51
+ itemValue: {
52
+ description:
53
+ 'Field of the option item that should be used to return value to v-model.',
54
+ },
55
+ type: {
56
+ description: 'Select state type',
57
+ },
58
+ errors: {
59
+ description:
60
+ "Error message or messages. When it's an array, the messages will be separated by commas.",
61
+ },
62
+ message: {
63
+ description: 'Help or hint message.',
64
+ },
65
+ size: {
66
+ description: 'Select size',
67
+ },
68
+ optionsLines: {
69
+ description:
70
+ 'Number of options to display at most; if exceeded, scrolling will be enabled.',
71
+ },
72
+ enableSearch: {
73
+ description:
74
+ 'If true, enables a search field displayed inside the options popover. The `update:search` event is emitted on each input.',
75
+ },
76
+ search: {
77
+ description: 'Search value.',
78
+ },
79
+ locale: {
80
+ description: 'Locale for i18n translations.',
81
+ },
82
+ disabled: {
83
+ description: 'Disable the select.',
84
+ },
85
+ },
86
+ render: (args) => ({
87
+ components: { UnnnicSelect },
88
+ setup() {
89
+ const handleSearch = (value) => {
90
+ args.search = value;
91
+ };
92
+ return { args, handleSearch };
93
+ },
94
+ data() {
95
+ return {
96
+ exampleValue: null,
97
+ };
98
+ },
99
+ template: `
100
+ <p>modelValue: {{ exampleValue }}</p>
101
+ <unnnic-select v-model="exampleValue" v-bind="args" @update:search="handleSearch" />
102
+ `,
103
+ }),
104
+ };
105
+
106
+ export const Default = {
107
+ args: {
108
+ placeholder: 'Placeholder',
109
+ label: 'Label',
110
+ options,
111
+ },
112
+ };
113
+
114
+ export const ReturnObject = {
115
+ args: {
116
+ returnObject: true,
117
+ placeholder: 'Placeholder',
118
+ label: 'Label',
119
+ options,
120
+ },
121
+ };
122
+
123
+ export const AlternativeValueKey = {
124
+ args: {
125
+ itemValue: 'altValue',
126
+ placeholder: 'Placeholder',
127
+ label: 'Label',
128
+ options,
129
+ },
130
+ };
131
+
132
+ export const AlternativeValueLabel = {
133
+ args: {
134
+ itemLabel: 'altValue',
135
+ placeholder: 'Placeholder',
136
+ label: 'Label',
137
+ options,
138
+ },
139
+ };
140
+
141
+ export const Disabled = {
142
+ args: {
143
+ placeholder: 'Placeholder',
144
+ label: 'Label',
145
+ options,
146
+ disabled: true,
147
+ },
148
+ };
149
+
150
+ export const WithSearch = {
151
+ args: {
152
+ placeholder: 'Placeholder',
153
+ label: 'Label',
154
+ options,
155
+ enableSearch: true,
156
+ search: '',
157
+ },
158
+ };
@@ -4,9 +4,11 @@ export default {
4
4
  title: 'Form/Switch',
5
5
  component: UnnnicSwitch,
6
6
  argTypes: {
7
- size: { control: { type: 'select', options: ['small', 'medium'] } },
8
- textLeft: { control: { type: 'text' } },
9
- textRight: { control: { type: 'text' } },
7
+ label: { control: { type: 'text' } },
8
+ labelTooltip: { control: { type: 'text' } },
9
+ labelUseHtmlTooltip: { control: 'boolean' },
10
+ option: { control: { type: 'text' } },
11
+ helper: { control: { type: 'text' } },
10
12
  disabled: { control: { type: 'boolean' } },
11
13
  },
12
14
  render: (args) => ({
@@ -32,8 +34,11 @@ export default {
32
34
 
33
35
  export const Default = {
34
36
  args: {
35
- size: 'medium',
36
- textRight: 'Default',
37
+ label: 'Default',
38
+ labelTooltip: 'Tooltip',
39
+ labelUseHtmlTooltip: true,
40
+ option: 'Option',
41
+ helper: 'Helper text',
37
42
  disabled: false,
38
43
  },
39
44
  };
@@ -3,9 +3,6 @@ import unnnicTab from '../components/Tab/Tab.vue';
3
3
  export default {
4
4
  title: 'tabs/Tab',
5
5
  component: unnnicTab,
6
- argTypes: {
7
- size: { control: { type: 'select', options: ['md', 'sm'] } },
8
- },
9
6
  render: (args) => ({
10
7
  components: {
11
8
  unnnicTab,
@@ -36,6 +33,15 @@ export default {
36
33
  Second description
37
34
  </p>
38
35
  </template>
36
+ <template #tab-head-third>
37
+ Third
38
+ </template>
39
+ <template #tab-panel-third>
40
+ <h2 class="title">Third Content</h2>
41
+ <p class="description">
42
+ Third description
43
+ </p>
44
+ </template>
39
45
  </unnnic-tab>
40
46
  `,
41
47
  }),
@@ -44,6 +50,7 @@ export default {
44
50
  export const Default = {
45
51
  args: {
46
52
  initialTab: 'first',
47
- tabs: ['first', 'second'],
53
+ tabs: ['first', 'second', 'third'],
54
+ disabledTabs: ['third'],
48
55
  },
49
56
  };
@@ -1,5 +1,4 @@
1
1
  import UnnnicTag from '../components/Tag/Tag.vue';
2
- import colorsList from '../utils/colorsList';
3
2
 
4
3
  export default {
5
4
  title: 'Data Display/Tag',
@@ -8,13 +7,30 @@ export default {
8
7
  argTypes: {
9
8
  text: { control: { type: 'text' } },
10
9
  type: {
11
- control: { type: 'select', options: ['default', 'indicator', 'brand'] },
10
+ control: 'select',
11
+ options: ['default', 'brand', 'next'],
12
12
  },
13
13
  scheme: {
14
- control: {
15
- type: 'select',
16
- options: colorsList,
17
- },
14
+ control: 'select',
15
+ options: [
16
+ 'green',
17
+ 'blue',
18
+ 'purple',
19
+ 'red',
20
+ 'orange',
21
+ 'yellow',
22
+ 'gray',
23
+ 'teal',
24
+ ],
25
+ },
26
+ size: {
27
+ control: 'select',
28
+ options: ['small', 'medium'],
29
+ },
30
+ hasCloseIcon: { control: 'boolean' },
31
+ leftIcon: {
32
+ control: 'select',
33
+ options: [null, 'check_circle', 'sentiment_satisfied'],
18
34
  },
19
35
  },
20
36
  };
@@ -34,45 +50,10 @@ export const LeftIcon = {
34
50
  },
35
51
  };
36
52
 
37
- export const RightIcon = {
53
+ export const Small = {
38
54
  args: {
39
55
  text: 'Label',
40
56
  type: 'default',
41
- rightIcon: 'check_circle',
42
- },
43
- };
44
-
45
- export const CloseIcon = {
46
- args: {
47
- text: 'Label',
48
- type: 'default',
49
- hasCloseIcon: true,
50
- },
51
- };
52
-
53
- export const Next = {
54
- args: {
55
- text: 'Label',
56
- type: 'next',
57
- scheme: 'weni',
58
- },
59
- };
60
-
61
- export const Indicator = {
62
- args: {
63
- text: 'Tag Name',
64
- type: 'indicator',
65
- count: 100,
66
- clickable: true,
67
- hasBackButton: false,
68
- enableTooltip: true,
69
- tooltipText: 'This is the amount',
70
- },
71
- };
72
-
73
- export const Brand = {
74
- args: {
75
- text: 'Settings',
76
- type: 'brand',
57
+ size: 'small',
77
58
  },
78
59
  };
@@ -37,6 +37,7 @@ export const Default = {
37
37
  errors: [],
38
38
  size: 'md',
39
39
  message: 'Helper text',
40
+ tooltip: 'Tooltip',
40
41
  },
41
42
  };
42
43
 
@@ -47,7 +48,7 @@ export const Error = {
47
48
  maxLength: 150,
48
49
  disabled: false,
49
50
  type: 'error',
50
- error: 'Error text',
51
+ errors: 'Error text',
51
52
  size: 'md',
52
53
  },
53
54
  };
@@ -84,7 +85,7 @@ export const ErrorSm = {
84
85
  maxLength: 150,
85
86
  disabled: false,
86
87
  type: 'error',
87
- error: 'Error text',
88
+ errors: 'Error text',
88
89
  size: 'sm',
89
90
  },
90
91
  };
@@ -100,3 +101,14 @@ export const DisabledSm = {
100
101
  message: 'Helper text',
101
102
  },
102
103
  };
104
+
105
+ export const ResizeNone = {
106
+ args: {
107
+ label: 'Label',
108
+ placeholder: 'Placeholder',
109
+ maxLength: 150,
110
+ disabled: false,
111
+ type: 'normal',
112
+ resize: 'none',
113
+ },
114
+ };
@@ -0,0 +1,123 @@
1
+ import { Meta, Source, Story } from '@storybook/blocks';
2
+
3
+ import * as ToastStories from './Toast.stories';
4
+
5
+ <Meta of={ToastStories} />
6
+
7
+ # Toast
8
+
9
+ The Toast component is used to display temporary notifications in the user interface. It appears in the bottom right corner of the screen with smooth animation and can be closed automatically or manually.
10
+
11
+ <Source
12
+ language="html"
13
+ dark
14
+ code={`
15
+ <UnnnicToast
16
+ title="Success!"
17
+ description="Your action was completed successfully."
18
+ type="success"
19
+ :timeout="5000"
20
+ @close="onClose"
21
+ @destroy="onDestroy"
22
+ />
23
+ `}
24
+ />
25
+
26
+ ---
27
+
28
+ #### **Props Options:**
29
+
30
+ | Key | Description | Values | Default |
31
+ |-------------|------------------------------------------|-------------------------------------------------------------|-----------------|
32
+ | title | **Required.** Toast title | `string` | - |
33
+ | description | Toast descriptive text | `string` | `''` |
34
+ | type | Visual type of the toast | `'informational'` \| `'attention'` \| `'success'` \| `'error'` | `'informational'` |
35
+ | timeout | Time in ms for auto-dismiss (0 = persistent) | `number` | `5000` |
36
+ | button | Optional action button configuration | `{ text: string; action: () => void }` | `undefined` |
37
+
38
+ #### **Events:**
39
+
40
+ | Event | Description |
41
+ |---------|------------------------------------------------|
42
+ | close | Emitted when the toast is closed |
43
+ | destroy | Emitted when the toast is removed from DOM |
44
+
45
+ ---
46
+
47
+ ## Features
48
+
49
+ - **Animations**: Smooth entry and exit transitions
50
+ - **Visual types**: Different variations for different types of messages
51
+ - **Action button**: Optional, for quick actions
52
+ - **Auto-dismiss**: Configurable or persistent
53
+
54
+ ## Usage
55
+
56
+ ### As component
57
+
58
+ <Source
59
+ language="vue"
60
+ dark
61
+ code={`
62
+ <template>
63
+ <UnnnicToast
64
+ title="Success!"
65
+ description="Your action was completed successfully."
66
+ type="success"
67
+ :timeout="5000"
68
+ @close="onToastClose"
69
+ />
70
+ </template>
71
+
72
+ <script setup>
73
+ import { UnnnicToast } from '@weni/unnnic-system';
74
+
75
+ const onToastClose = () => {
76
+ console.log('Toast closed');
77
+ };
78
+ </script>
79
+ `}
80
+ />
81
+
82
+ ### Programmatically
83
+
84
+ The Toast component can be used programmatically through the `toast` utility, which provides a simple API for creating toasts without needing to manage component state.
85
+
86
+ <Source
87
+ language="javascript"
88
+ dark
89
+ code={`
90
+ // Basic usage
91
+ import { toast } from '@weni/unnnic-system';
92
+
93
+ toast.info('Information', 'Here is some useful information');
94
+ `}
95
+ />
96
+
97
+ #### API Reference
98
+
99
+ | Method | Parameters | Description |
100
+ |--------|------------|-------------|
101
+ | `toast.success(title, description?, options?)` | `title: string`<br/>`description?: string`<br/>`options?: ToastOptions` | Creates a success toast |
102
+ | `toast.error(title, description?, options?)` | `title: string`<br/>`description?: string`<br/>`options?: ToastOptions` | Creates an error toast |
103
+ | `toast.attention(title, description?, options?)` | `title: string`<br/>`description?: string`<br/>`options?: ToastOptions` | Creates an attention/warning toast |
104
+ | `toast.info(title, description?, options?)` | `title: string`<br/>`description?: string`<br/>`options?: ToastOptions` | Creates an informational toast |
105
+
106
+ #### ToastOptions Interface
107
+
108
+ ```typescript
109
+ interface ToastOptions {
110
+ timeout?: number; // Auto-dismiss time in ms (0 = persistent)
111
+ button?: { // Optional action button
112
+ text: string;
113
+ action: () => void;
114
+ };
115
+ onClose?: () => void; // Callback when toast is closed
116
+ }
117
+ ```
118
+
119
+ ## Animations
120
+
121
+ - **Entry**: Slide from bottom to top with fade-in
122
+ - **Exit**: Slide from top to bottom with fade-out
123
+ - **Duration**: 300ms with smooth easing