@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
@@ -8,7 +8,7 @@ export default {
8
8
  description: {
9
9
  component: `Allows users to perform an action or navigate to another page.
10
10
  It has styles for various needs and are ideal for directing the user's attention.
11
- It is divided into 6 types: Primary, Secondary, Tertiary, Alternative, Warning, Attention.
11
+ It is divided into 5 types: Primary, Secondary, Tertiary, Warning, Attention.
12
12
  Each of these types has its states.
13
13
  <br/>
14
14
  <br/>
@@ -36,14 +36,7 @@ export default {
36
36
  argTypes: {
37
37
  type: {
38
38
  control: { type: 'select' },
39
- options: [
40
- 'primary',
41
- 'secondary',
42
- 'tertiary',
43
- 'alternative',
44
- 'warning',
45
- 'attention',
46
- ],
39
+ options: ['primary', 'secondary', 'tertiary', 'warning', 'attention'],
47
40
  },
48
41
  size: {
49
42
  control: { type: 'select' },
@@ -75,74 +68,71 @@ export default {
75
68
 
76
69
  export const Primary = {
77
70
  args: {
78
- text: 'Button Text',
71
+ text: 'Text',
79
72
  },
80
73
  };
81
74
 
82
75
  export const Secondary = {
83
76
  args: {
84
77
  type: 'secondary',
85
- text: 'Button Text',
78
+ text: 'Text',
86
79
  },
87
80
  };
88
81
 
89
82
  export const Tertiary = {
90
83
  args: {
91
84
  type: 'tertiary',
92
- text: 'Button Text',
85
+ text: 'Text',
93
86
  },
94
87
  };
95
88
 
96
- export const WithIcon = {
89
+ export const Warning = {
90
+ parameters: {
91
+ docs: {
92
+ description: {
93
+ story: `This variation aims to highlight actions that could be destructive or have negative consequences if taken.
94
+ For example: Deleting an element.`,
95
+ },
96
+ },
97
+ },
97
98
  args: {
98
- text: 'Button Text',
99
- iconLeft: 'add',
99
+ type: 'warning',
100
+ text: 'Text',
100
101
  },
101
102
  };
102
103
 
103
- export const FilledIcon = {
104
+ export const Attention = {
104
105
  args: {
105
- text: 'Button Text',
106
- iconLeft: 'play_arrow',
107
- iconsFilled: true,
106
+ type: 'attention',
107
+ text: 'Text',
108
108
  },
109
109
  };
110
110
 
111
- export const OnlyIcon = {
111
+ export const Loading = {
112
112
  args: {
113
- iconCenter: 'add',
113
+ loading: true,
114
+ text: 'Text',
114
115
  },
115
116
  };
116
117
 
117
- export const Alternative = {
118
+ export const WithIcon = {
118
119
  args: {
119
- type: 'alternative',
120
- iconLeft: 'add',
121
120
  text: 'Text',
121
+ iconLeft: 'add',
122
122
  },
123
123
  };
124
124
 
125
- export const Warning = {
126
- parameters: {
127
- docs: {
128
- description: {
129
- story: `This variation aims to highlight actions that could be destructive or have negative consequences if taken.
130
- For example: Deleting an element.`,
131
- },
132
- },
133
- },
125
+ export const FilledIcon = {
134
126
  args: {
135
- type: 'warning',
136
- iconLeft: 'add',
137
127
  text: 'Text',
128
+ iconLeft: 'play_arrow',
129
+ iconsFilled: true,
138
130
  },
139
131
  };
140
132
 
141
- export const Attention = {
133
+ export const OnlyIcon = {
142
134
  args: {
143
- type: 'attention',
144
- iconLeft: 'add',
145
- text: 'Text',
135
+ iconCenter: 'add',
146
136
  },
147
137
  };
148
138
 
@@ -82,6 +82,15 @@ export const Default = {
82
82
  },
83
83
  };
84
84
 
85
+ export const WithLastInteractionTimePrefix = {
86
+ args: {
87
+ ...defaultArgs,
88
+ unreadMessages,
89
+ lastInteractionTime: new Date().toISOString(),
90
+ lastInteractionTimePrefix: 'Since',
91
+ },
92
+ };
93
+
85
94
  export const Selected = {
86
95
  args: {
87
96
  ...defaultArgs,
@@ -15,12 +15,12 @@ export default {
15
15
  },
16
16
  },
17
17
  },
18
- args: { disabled: false, size: 'md' },
18
+ args: { disabled: false },
19
19
  argTypes: {
20
20
  modelValue: { control: 'inline-radio', options: [true, false, 'less'] },
21
21
  disabled: { control: 'boolean' },
22
- size: { control: 'select', options: ['md', 'sm'] },
23
- textRight: { control: 'text' },
22
+ label: { control: 'text' },
23
+ helper: { control: 'text' },
24
24
  },
25
25
  render: (args) => ({
26
26
  components: {
@@ -34,6 +34,7 @@ export default {
34
34
  return { args, updateModelValue };
35
35
  },
36
36
  template: `
37
+ <pre>v-model: {{ args.modelValue }}</pre>
37
38
  <UnnnicCheckbox v-bind="args" @update:modelValue="updateModelValue"/>
38
39
  `,
39
40
  }),
@@ -42,18 +43,22 @@ export default {
42
43
  export const Default = {
43
44
  args: {
44
45
  modelValue: false,
46
+ label: 'Label',
47
+ helper: 'Helper',
45
48
  },
46
49
  };
47
50
 
48
51
  export const Selected = {
49
52
  args: {
50
53
  modelValue: true,
54
+ label: 'Label',
51
55
  },
52
56
  };
53
57
 
54
- export const LessSelected = {
58
+ export const Less = {
55
59
  args: {
56
60
  modelValue: 'less',
61
+ label: 'Label',
57
62
  },
58
63
  };
59
64
 
@@ -61,6 +66,7 @@ export const Disabled = {
61
66
  args: {
62
67
  modelValue: false,
63
68
  disabled: true,
69
+ label: 'Label',
64
70
  },
65
71
  };
66
72
 
@@ -68,5 +74,6 @@ export const DisabledSelected = {
68
74
  args: {
69
75
  modelValue: true,
70
76
  disabled: true,
77
+ label: 'Label',
71
78
  },
72
79
  };
@@ -0,0 +1,105 @@
1
+ import { action } from '@storybook/addon-actions';
2
+ import UnnnicCheckboxGroup from '../components/CheckboxGroup/CheckboxGroup.vue';
3
+ import UnnnicCheckbox from '../components/Checkbox/Checkbox.vue';
4
+ import { ref } from 'vue';
5
+
6
+ export default {
7
+ title: 'Form/CheckboxGroup',
8
+ component: UnnnicCheckboxGroup,
9
+ tags: ['autodocs'],
10
+ parameters: {
11
+ docs: {
12
+ description: {
13
+ component: `Allows the user to select multiple options from a category. It can also be
14
+ used to display a single option that may require additional acceptance or confirmation
15
+ before submission.`,
16
+ },
17
+ },
18
+ },
19
+ argTypes: {
20
+ label: { control: { type: 'text' } },
21
+ labelTooltip: { control: { type: 'text' } },
22
+ labelUseHtmlTooltip: { control: 'boolean' },
23
+ helper: { control: { type: 'text' } },
24
+ state: { control: 'select', options: ['horizontal', 'vertical'] },
25
+ },
26
+ };
27
+
28
+ export const Default = {
29
+ args: {
30
+ label: 'Checkbox Group 1',
31
+ helper: 'Helper text',
32
+ },
33
+
34
+ render: (args) => ({
35
+ components: {
36
+ UnnnicCheckboxGroup,
37
+ UnnnicCheckbox,
38
+ },
39
+
40
+ setup() {
41
+ return { args };
42
+ },
43
+
44
+ template: `
45
+ <section>
46
+ <UnnnicCheckboxGroup v-bind="args">
47
+ <UnnnicCheckbox :modelValue="true" label="Option 1" />
48
+ <UnnnicCheckbox :modelValue="false" label="Option 2" />
49
+ <UnnnicCheckbox :modelValue="false" label="Option 3" />
50
+ </UnnnicCheckboxGroup>
51
+ </section>
52
+ `,
53
+ }),
54
+ };
55
+
56
+ export const Horizontal = {
57
+ args: {
58
+ state: 'horizontal',
59
+ label: 'Label',
60
+ helper: 'Helper text',
61
+ },
62
+
63
+ render: (args) => ({
64
+ components: {
65
+ UnnnicCheckboxGroup,
66
+ UnnnicCheckbox,
67
+ },
68
+ setup() {
69
+ return { args };
70
+ },
71
+ template: `
72
+ <UnnnicCheckboxGroup v-bind="args">
73
+ <UnnnicCheckbox :modelValue="true" label="Option 1" />
74
+ <UnnnicCheckbox :modelValue="false" label="Option 2" />
75
+ <UnnnicCheckbox :modelValue="false" label="Option 3" />
76
+ </UnnnicCheckboxGroup>
77
+ `,
78
+ }),
79
+ };
80
+
81
+ export const Vertical = {
82
+ args: {
83
+ state: 'vertical',
84
+ label: 'Label',
85
+ helper: 'Helper text',
86
+ labelTooltip: 'Tooltip text',
87
+ },
88
+
89
+ render: (args) => ({
90
+ components: {
91
+ UnnnicCheckboxGroup,
92
+ UnnnicCheckbox,
93
+ },
94
+ setup() {
95
+ return { args };
96
+ },
97
+ template: `
98
+ <UnnnicCheckboxGroup v-bind="args">
99
+ <UnnnicCheckbox :modelValue="true" label="Option 1" />
100
+ <UnnnicCheckbox :modelValue="false" label="Option 2" />
101
+ <UnnnicCheckbox :modelValue="false" label="Option 3" />
102
+ </UnnnicCheckboxGroup>
103
+ `,
104
+ }),
105
+ };
@@ -1,6 +1,31 @@
1
1
  import UnnnicDataTable from '../components/DataTable/index.vue';
2
2
  import { action } from '@storybook/addon-actions';
3
3
 
4
+ const SAMPLE_NAMES = [
5
+ 'Eduardo',
6
+ 'Marcus',
7
+ 'Paulo',
8
+ 'Cristian',
9
+ 'Aldemylla',
10
+ 'João',
11
+ 'Maria',
12
+ 'Ana',
13
+ 'Pedro',
14
+ 'Lucas',
15
+ ];
16
+
17
+ const SAMPLE_COUNTRIES = ['Brazil', 'USA', 'Canada', 'Argentina', 'Chile'];
18
+
19
+ const generateItems = (count, startId) => {
20
+ return Array.from({ length: count }, (_, i) => ({
21
+ id: String(startId + i),
22
+ name: SAMPLE_NAMES[Math.floor(Math.random() * SAMPLE_NAMES.length)],
23
+ age: Math.floor(Math.random() * 30) + 20,
24
+ country:
25
+ SAMPLE_COUNTRIES[Math.floor(Math.random() * SAMPLE_COUNTRIES.length)],
26
+ }));
27
+ };
28
+
4
29
  export default {
5
30
  title: 'Data Display/DataTable',
6
31
  component: UnnnicDataTable,
@@ -70,6 +95,26 @@ export default {
70
95
  control: { type: 'select' },
71
96
  options: ['en', 'pt-br', 'es'],
72
97
  },
98
+ infiniteScroll: {
99
+ description:
100
+ 'Enables infinite scroll functionality. When enabled, the table will emit a loadMore event when the user scrolls near the bottom.',
101
+ control: 'boolean',
102
+ },
103
+ infiniteScrollDistance: {
104
+ description:
105
+ 'Distance in pixels from the bottom of the table to trigger the loadMore event.',
106
+ control: 'number',
107
+ },
108
+ infiniteScrollDisabled: {
109
+ description:
110
+ 'Disables the infinite scroll functionality. Useful when all data has been loaded.',
111
+ control: 'boolean',
112
+ },
113
+ isLoadingMore: {
114
+ description:
115
+ 'Indicates whether more data is being loaded for infinite scroll. Shows a loading indicator at the bottom of the table.',
116
+ control: 'boolean',
117
+ },
73
118
  },
74
119
  render: (args) => ({
75
120
  components: {
@@ -390,3 +435,150 @@ export const ControlledSort = {
390
435
  `,
391
436
  }),
392
437
  };
438
+
439
+ export const InfiniteScroll = {
440
+ args: { headers },
441
+ render: (args) => ({
442
+ components: {
443
+ UnnnicDataTable,
444
+ },
445
+ data() {
446
+ return {
447
+ args,
448
+ currentId: 11,
449
+ displayedItems: generateItems(10, 1),
450
+ isLoadingMore: false,
451
+ };
452
+ },
453
+ methods: {
454
+ loadMore() {
455
+ action('loadMore')();
456
+ this.isLoadingMore = true;
457
+
458
+ setTimeout(() => {
459
+ const newItems = generateItems(5, this.currentId);
460
+ this.displayedItems = [...this.displayedItems, ...newItems];
461
+ this.currentId += 5;
462
+ this.isLoadingMore = false;
463
+ }, 1000);
464
+ },
465
+ },
466
+ template: `
467
+ <UnnnicDataTable
468
+ v-bind="args"
469
+ :headers="args.headers"
470
+ :items="displayedItems"
471
+ :infiniteScroll="true"
472
+ :infiniteScrollDistance="100"
473
+ :isLoadingMore="isLoadingMore"
474
+ :hidePagination="true"
475
+ height="400px"
476
+ @loadMore="loadMore"
477
+ >
478
+ </UnnnicDataTable>
479
+ `,
480
+ }),
481
+ };
482
+
483
+ export const InfiniteScrollWithFixedHeaders = {
484
+ args: { headers },
485
+ render: (args) => ({
486
+ components: {
487
+ UnnnicDataTable,
488
+ },
489
+ data() {
490
+ return {
491
+ args,
492
+ currentId: 11,
493
+ displayedItems: generateItems(10, 1),
494
+ isLoadingMore: false,
495
+ hasMore: true,
496
+ };
497
+ },
498
+ methods: {
499
+ loadMore() {
500
+ if (!this.hasMore) return;
501
+
502
+ action('loadMore')();
503
+ this.isLoadingMore = true;
504
+
505
+ setTimeout(() => {
506
+ const newItems = generateItems(5, this.currentId);
507
+ this.displayedItems = [...this.displayedItems, ...newItems];
508
+ this.currentId += 5;
509
+
510
+ if (this.displayedItems.length >= 50) {
511
+ this.hasMore = false;
512
+ }
513
+
514
+ this.isLoadingMore = false;
515
+ }, 1000);
516
+ },
517
+ },
518
+ template: `
519
+ <UnnnicDataTable
520
+ v-bind="args"
521
+ :headers="args.headers"
522
+ :items="displayedItems"
523
+ :infiniteScroll="true"
524
+ :infiniteScrollDistance="50"
525
+ :infiniteScrollDisabled="!hasMore"
526
+ :isLoadingMore="isLoadingMore"
527
+ :hidePagination="true"
528
+ :fixedHeaders="true"
529
+ height="400px"
530
+ @loadMore="loadMore"
531
+ >
532
+ </UnnnicDataTable>
533
+ `,
534
+ }),
535
+ };
536
+
537
+ export const InfiniteScrollClickable = {
538
+ args: { headers },
539
+ render: (args) => ({
540
+ components: {
541
+ UnnnicDataTable,
542
+ },
543
+ data() {
544
+ return {
545
+ args,
546
+ currentId: 11,
547
+ displayedItems: generateItems(10, 1),
548
+ isLoadingMore: false,
549
+ };
550
+ },
551
+ methods: {
552
+ loadMore() {
553
+ action('loadMore')();
554
+ this.isLoadingMore = true;
555
+
556
+ setTimeout(() => {
557
+ const newItems = generateItems(5, this.currentId);
558
+ this.displayedItems = [...this.displayedItems, ...newItems];
559
+ this.currentId += 5;
560
+ this.isLoadingMore = false;
561
+ }, 1000);
562
+ },
563
+ itemClick(item) {
564
+ action('itemClick')(item);
565
+ },
566
+ },
567
+ template: `
568
+ <UnnnicDataTable
569
+ v-bind="args"
570
+ :headers="args.headers"
571
+ :items="displayedItems"
572
+ :infiniteScroll="true"
573
+ :infiniteScrollDistance="100"
574
+ :isLoadingMore="isLoadingMore"
575
+ :hidePagination="true"
576
+ :clickable="true"
577
+ height="400px"
578
+ @loadMore="loadMore"
579
+ @itemClick="itemClick"
580
+ >
581
+ </UnnnicDataTable>
582
+ `,
583
+ }),
584
+ };