@weni/unnnic-system 3.9.1-alpha.4 → 3.9.2

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 (233) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/components/Accordion/Accordion.vue.d.ts +1 -1
  3. package/dist/components/Alert/Alert.vue.d.ts +116 -17
  4. package/dist/components/Alert/Alert.vue.d.ts.map +1 -1
  5. package/dist/components/Alert/Version1dot1.vue.d.ts +38 -2
  6. package/dist/components/Alert/Version1dot1.vue.d.ts.map +1 -1
  7. package/dist/components/AudioRecorder/AudioHandler.vue.d.ts +2 -2
  8. package/dist/components/AudioRecorder/AudioPlayer.vue.d.ts +1 -1
  9. package/dist/components/AudioRecorder/AudioRecorder.vue.d.ts +5 -5
  10. package/dist/components/AvatarIcon/AvatarIcon.vue.d.ts +3 -3
  11. package/dist/components/Banner/Banner.vue.d.ts +1 -1
  12. package/dist/components/Banner/InfoBanner.vue.d.ts +1 -1
  13. package/dist/components/Breadcrumb/Breadcrumb.vue.d.ts +1 -1
  14. package/dist/components/Button/Button.vue.d.ts +1 -1
  15. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  16. package/dist/components/Button/ButtonIcon.vue.d.ts +1 -1
  17. package/dist/components/Button/types.d.ts +1 -1
  18. package/dist/components/Button/types.d.ts.map +1 -1
  19. package/dist/components/Card/AccountCard.vue.d.ts +5 -5
  20. package/dist/components/Card/BlankCard.vue.d.ts +1 -1
  21. package/dist/components/Card/Card.vue.d.ts +27 -27
  22. package/dist/components/Card/CardCompany.vue.d.ts +414 -11
  23. package/dist/components/Card/CardData.vue.d.ts +1 -1
  24. package/dist/components/Card/CardStatusesContainer.vue.d.ts +5 -5
  25. package/dist/components/Card/ContentCard.vue.d.ts +3 -3
  26. package/dist/components/Card/DashCard.vue.d.ts +5 -5
  27. package/dist/components/Card/DefaultCard.vue.d.ts +1 -1
  28. package/dist/components/Card/MarketplaceCard.vue.d.ts +2 -2
  29. package/dist/components/Card/SimpleCard.vue.d.ts +3 -3
  30. package/dist/components/Card/StatusCard.vue.d.ts +2 -2
  31. package/dist/components/Card/TitleCard.vue.d.ts +3 -3
  32. package/dist/components/CardImage/CardImage.vue.d.ts +31 -24
  33. package/dist/components/CardInformation/CardInformation.vue.d.ts +5 -5
  34. package/dist/components/CardProject/CardProject.vue.d.ts +3 -3
  35. package/dist/components/Carousel/Carousel.vue.d.ts +416 -13
  36. package/dist/components/Carousel/TagCarousel.vue.d.ts +415 -12
  37. package/dist/components/ChartBar/ChartBar.vue.d.ts +5 -5
  38. package/dist/components/ChartLine/ChartLine.vue.d.ts +1 -1
  39. package/dist/components/ChatText/ChatText.vue.d.ts +2 -2
  40. package/dist/components/ChatsContact/ChatsContact.vue.d.ts +446 -21
  41. package/dist/components/ChatsDashboardTagLive/ChatsDashboardTagLive.vue.d.ts +1 -1
  42. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts +1 -1
  43. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts.map +1 -1
  44. package/dist/components/ChatsMessage/ChatsMessage.vue.d.ts +5 -5
  45. package/dist/components/ChatsMessage/ChatsMessageStatusBackdrop.vue.d.ts +2 -2
  46. package/dist/components/ChatsNavbar/ChatsNavbar.vue.d.ts +1 -1
  47. package/dist/components/ChatsUserAvatar/ChatsUserAvatar.vue.d.ts +2 -2
  48. package/dist/components/Checkbox/Checkbox.vue.d.ts +26 -19
  49. package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
  50. package/dist/components/Comment/Comment.vue.d.ts +1 -1
  51. package/dist/components/DataArea/DataArea.vue.d.ts +2 -2
  52. package/dist/components/DataTable/index.vue.d.ts +12 -2
  53. package/dist/components/DataTable/index.vue.d.ts.map +1 -1
  54. package/dist/components/DateFilter/DateFilter.vue.d.ts +39 -170
  55. package/dist/components/DatePicker/DatePicker.vue.d.ts +4 -4
  56. package/dist/components/Drawer/Drawer.vue.d.ts +4 -4
  57. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  58. package/dist/components/Dropdown/LanguageSelect.vue.d.ts +3 -3
  59. package/dist/components/Flag.vue.d.ts +2 -2
  60. package/dist/components/FormElement/FormElement.vue.d.ts +28 -51
  61. package/dist/components/FormElement/FormElement.vue.d.ts.map +1 -1
  62. package/dist/components/Icon.vue.d.ts +1 -1
  63. package/dist/components/Icon.vue.d.ts.map +1 -1
  64. package/dist/components/IconLoading/IconLoading.vue.d.ts +1 -1
  65. package/dist/components/ImportCard/ImportCard.vue.d.ts +4 -4
  66. package/dist/components/Input/BaseInput.vue.d.ts +2 -11
  67. package/dist/components/Input/BaseInput.vue.d.ts.map +1 -1
  68. package/dist/components/Input/Input.vue.d.ts +39 -170
  69. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  70. package/dist/components/Input/TextInput.vue.d.ts +24 -33
  71. package/dist/components/Input/TextInput.vue.d.ts.map +1 -1
  72. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts +44 -175
  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 +44 -175
  79. package/dist/components/ModalUpload/ModalUpload.vue.d.ts +9 -9
  80. package/dist/components/MoodRating/MoodRating.vue.d.ts +1 -1
  81. package/dist/components/MultiSelect/MultiSelect.vue.d.ts +14 -26
  82. package/dist/components/Pagination/Pagination.vue.d.ts +3 -3
  83. package/dist/components/ProgressBar/ProgressBar.vue.d.ts +1 -1
  84. package/dist/components/Radio/Radio.vue.d.ts +6 -10
  85. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  86. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +512 -69
  87. package/dist/components/SelectSmart/SelectSmart.vue.d.ts.map +1 -1
  88. package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +414 -11
  89. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +28 -21
  90. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts.map +1 -1
  91. package/dist/components/SelectTime/index.vue.d.ts +24 -33
  92. package/dist/components/SkeletonLoading/skeletonTheme.vue.d.ts +1 -1
  93. package/dist/components/Slider/Slider.vue.d.ts +2 -2
  94. package/dist/components/StarRating/StarRating.vue.d.ts +1 -1
  95. package/dist/components/Switch/Switch.vue.d.ts +21 -55
  96. package/dist/components/Switch/Switch.vue.d.ts.map +1 -1
  97. package/dist/components/Tab/Tab.vue.d.ts +2 -13
  98. package/dist/components/TableNext/TableBodyCell.vue.d.ts +2 -2
  99. package/dist/components/TableNext/TablePagination.vue.d.ts +3 -3
  100. package/dist/components/TabsExpanded/TabsExpanded.vue.d.ts +1 -1
  101. package/dist/components/Tag/BrandTag.vue.d.ts +51 -0
  102. package/dist/components/Tag/BrandTag.vue.d.ts.map +1 -0
  103. package/dist/components/Tag/DefaultTag.vue.d.ts +83 -4
  104. package/dist/components/Tag/DefaultTag.vue.d.ts.map +1 -1
  105. package/dist/components/Tag/IndicatorTag.vue.d.ts +151 -0
  106. package/dist/components/Tag/IndicatorTag.vue.d.ts.map +1 -0
  107. package/dist/components/Tag/Tag.vue.d.ts +414 -12
  108. package/dist/components/Tag/Tag.vue.d.ts.map +1 -1
  109. package/dist/components/Tag/TagNext.vue.d.ts +24 -0
  110. package/dist/components/Tag/TagNext.vue.d.ts.map +1 -0
  111. package/dist/components/TextArea/TextArea.vue.d.ts +30 -75
  112. package/dist/components/TextArea/TextArea.vue.d.ts.map +1 -1
  113. package/dist/components/ToolTip/ToolTip.vue.d.ts +1 -1
  114. package/dist/components/Tour/Tour.vue.d.ts +3 -3
  115. package/dist/components/Tour/TourPopover.vue.d.ts +3 -3
  116. package/dist/components/UploadArea/UploadArea.vue.d.ts +4 -4
  117. package/dist/components/index.d.ts +6402 -4331
  118. package/dist/components/index.d.ts.map +1 -1
  119. package/dist/components/ui/popover/PopoverContent.vue.d.ts +1 -1
  120. package/dist/components/ui/popover/PopoverContent.vue.d.ts.map +1 -1
  121. package/dist/{es-db30a2ff.mjs → es-4aab69cb.mjs} +1 -1
  122. package/dist/{index-761bb714.mjs → index-789225a6.mjs} +10023 -10092
  123. package/dist/{pt-br-569fa4c1.mjs → pt-br-2f695ddd.mjs} +1 -1
  124. package/dist/style.css +1 -1
  125. package/dist/unnnic.mjs +151 -158
  126. package/dist/unnnic.umd.js +43 -42
  127. package/dist/utils/call.d.ts +1 -2
  128. package/dist/utils/call.d.ts.map +1 -1
  129. package/package.json +2 -2
  130. package/src/components/Alert/Alert.vue +135 -26
  131. package/src/components/Alert/AlertBanner.vue +182 -0
  132. package/src/components/Alert/AlertCaller.vue +49 -0
  133. package/src/components/Alert/Version1dot1.vue +36 -0
  134. package/src/components/Alert/__tests__/Alert.spec.js +45 -2
  135. package/src/components/Alert/__tests__/AlertBanner.spec.js +89 -0
  136. package/src/components/Alert/__tests__/AlertCaller.spec.js +98 -0
  137. package/src/components/Alert/__tests__/Version1dot1.spec.js +21 -0
  138. package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +7 -11
  139. package/src/components/Alert/__tests__/__snapshots__/AlertBanner.spec.js.snap +2 -2
  140. package/src/components/Alert/__tests__/__snapshots__/Version1dot1.spec.js.snap +1 -1
  141. package/src/components/Button/Button.vue +117 -67
  142. package/src/components/Button/types.ts +1 -0
  143. package/src/components/ChatsContact/ChatsContact.vue +6 -10
  144. package/src/components/Checkbox/Checkbox.vue +65 -117
  145. package/src/components/Checkbox/__tests__/Checkbox.spec.js +21 -6
  146. package/src/components/DataTable/index.vue +48 -0
  147. package/src/components/FormElement/FormElement.vue +93 -63
  148. package/src/components/Icon.vue +0 -2
  149. package/src/components/Input/BaseInput.vue +12 -12
  150. package/src/components/Input/Input.scss +20 -19
  151. package/src/components/Input/Input.vue +55 -60
  152. package/src/components/Input/TextInput.vue +54 -25
  153. package/src/components/Input/__test__/Input.spec.js +33 -13
  154. package/src/components/Input/__test__/TextInput.spec.js +8 -6
  155. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +5 -14
  156. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +1 -1
  157. package/src/components/Label/Label.vue +21 -52
  158. package/src/components/Label/__tests__/Label.spec.js +1 -1
  159. package/src/components/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  160. package/src/components/Radio/Radio.vue +66 -118
  161. package/src/components/Radio/__test__/Radio.spec.js +20 -14
  162. package/src/components/Radio/__test__/__snapshots__/Radio.spec.js.snap +3 -4
  163. package/src/components/SelectSmart/SelectSmart.vue +129 -28
  164. package/src/components/SelectSmart/__tests__/SelectSmart.spec.js +180 -4
  165. package/src/components/Switch/Switch.vue +91 -132
  166. package/src/components/Switch/__tests__/Switch.spec.js +75 -8
  167. package/src/components/Switch/__tests__/__snapshots__/Switch.spec.js.snap +6 -5
  168. package/src/components/Tab/Tab.vue +23 -37
  169. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +1 -1
  170. package/src/components/TableNext/__test__/__snapshots__/TableNext.spec.js.snap +2 -2
  171. package/src/components/TableNext/__test__/__snapshots__/TablePagination.spec.js.snap +2 -2
  172. package/src/components/Tag/BrandTag.vue +96 -0
  173. package/src/components/Tag/DefaultTag.vue +107 -51
  174. package/src/components/Tag/IndicatorTag.vue +107 -0
  175. package/src/components/Tag/Tag.vue +79 -32
  176. package/src/components/Tag/TagNext.vue +60 -0
  177. package/src/components/TextArea/TextArea.vue +11 -40
  178. package/src/components/TextArea/__test__/__snapshots__/TextArea.spec.js.snap +3 -11
  179. package/src/components/index.ts +18 -33
  180. package/src/stories/Alert.stories.js +67 -6
  181. package/src/stories/Button.stories.js +39 -29
  182. package/src/stories/Checkbox.stories.js +4 -11
  183. package/src/stories/DataTable.stories.js +192 -0
  184. package/src/stories/Input.stories.js +76 -71
  185. package/src/stories/Label.stories.js +0 -7
  186. package/src/stories/Radio.stories.js +1 -28
  187. package/src/stories/SelectSmart.stories.js +289 -0
  188. package/src/stories/Switch.stories.js +5 -10
  189. package/src/stories/Tab.stories.js +4 -11
  190. package/src/stories/Tag.stories.js +43 -24
  191. package/src/stories/TextArea.stories.js +2 -14
  192. package/src/types/scheme-colors.d.ts +0 -1
  193. package/src/utils/call.js +18 -46
  194. package/dist/assets/tokens/colors.json.d.ts +0 -376
  195. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +0 -28
  196. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +0 -1
  197. package/dist/components/PageHeader/PageHeader.vue.d.ts +0 -28
  198. package/dist/components/PageHeader/PageHeader.vue.d.ts.map +0 -1
  199. package/dist/components/PageHeader/index.d.ts +0 -3
  200. package/dist/components/PageHeader/index.d.ts.map +0 -1
  201. package/dist/components/PageHeader/types.d.ts +0 -9
  202. package/dist/components/PageHeader/types.d.ts.map +0 -1
  203. package/dist/components/Tag/types.d.ts +0 -18
  204. package/dist/components/Tag/types.d.ts.map +0 -1
  205. package/dist/components/Toast/Toast.vue.d.ts +0 -16
  206. package/dist/components/Toast/Toast.vue.d.ts.map +0 -1
  207. package/dist/components/Toast/ToastManager.d.ts +0 -14
  208. package/dist/components/Toast/ToastManager.d.ts.map +0 -1
  209. package/dist/components/Toast/types.d.ts +0 -35
  210. package/dist/components/Toast/types.d.ts.map +0 -1
  211. package/src/assets/icons/checkbox-checked-disabled.svg +0 -3
  212. package/src/assets/icons/checkbox-checked.svg +0 -3
  213. package/src/assets/icons/checkbox-less-disabled.svg +0 -3
  214. package/src/assets/icons/checkbox-less.svg +0 -3
  215. package/src/assets/icons/radio-checked.svg +0 -3
  216. package/src/assets/icons/switch-checked-disabled.svg +0 -3
  217. package/src/assets/icons/switch-checked.svg +0 -3
  218. package/src/components/CheckboxGroup/CheckboxGroup.vue +0 -96
  219. package/src/components/PageHeader/PageHeader.vue +0 -148
  220. package/src/components/PageHeader/index.ts +0 -2
  221. package/src/components/PageHeader/types.ts +0 -10
  222. package/src/components/RadioGroup/RadioGroup.vue +0 -142
  223. package/src/components/Tag/types.ts +0 -19
  224. package/src/components/Toast/Toast.vue +0 -246
  225. package/src/components/Toast/ToastManager.ts +0 -110
  226. package/src/components/Toast/__tests__/Toast.spec.js +0 -291
  227. package/src/components/Toast/__tests__/ToastManager.spec.js +0 -294
  228. package/src/components/Toast/types.ts +0 -57
  229. package/src/stories/CheckboxGroup.stories.js +0 -105
  230. package/src/stories/PageHeader.stories.js +0 -330
  231. package/src/stories/RadioGroup.stories.js +0 -144
  232. package/src/stories/Toast.mdx +0 -123
  233. package/src/stories/Toast.stories.js +0 -126
@@ -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 5 types: Primary, Secondary, Tertiary, Warning, Attention.
11
+ It is divided into 6 types: Primary, Secondary, Tertiary, Alternative, Warning, Attention.
12
12
  Each of these types has its states.
13
13
  <br/>
14
14
  <br/>
@@ -36,7 +36,14 @@ export default {
36
36
  argTypes: {
37
37
  type: {
38
38
  control: { type: 'select' },
39
- options: ['primary', 'secondary', 'tertiary', 'warning', 'attention'],
39
+ options: [
40
+ 'primary',
41
+ 'secondary',
42
+ 'tertiary',
43
+ 'alternative',
44
+ 'warning',
45
+ 'attention',
46
+ ],
40
47
  },
41
48
  size: {
42
49
  control: { type: 'select' },
@@ -68,71 +75,74 @@ export default {
68
75
 
69
76
  export const Primary = {
70
77
  args: {
71
- text: 'Text',
78
+ text: 'Button Text',
72
79
  },
73
80
  };
74
81
 
75
82
  export const Secondary = {
76
83
  args: {
77
84
  type: 'secondary',
78
- text: 'Text',
85
+ text: 'Button Text',
79
86
  },
80
87
  };
81
88
 
82
89
  export const Tertiary = {
83
90
  args: {
84
91
  type: 'tertiary',
85
- text: 'Text',
92
+ text: 'Button Text',
86
93
  },
87
94
  };
88
95
 
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
- },
96
+ export const WithIcon = {
98
97
  args: {
99
- type: 'warning',
100
- text: 'Text',
98
+ text: 'Button Text',
99
+ iconLeft: 'add',
101
100
  },
102
101
  };
103
102
 
104
- export const Attention = {
103
+ export const FilledIcon = {
105
104
  args: {
106
- type: 'attention',
107
- text: 'Text',
105
+ text: 'Button Text',
106
+ iconLeft: 'play_arrow',
107
+ iconsFilled: true,
108
108
  },
109
109
  };
110
110
 
111
- export const Loading = {
111
+ export const OnlyIcon = {
112
112
  args: {
113
- loading: true,
114
- text: 'Text',
113
+ iconCenter: 'add',
115
114
  },
116
115
  };
117
116
 
118
- export const WithIcon = {
117
+ export const Alternative = {
119
118
  args: {
120
- text: 'Text',
119
+ type: 'alternative',
121
120
  iconLeft: 'add',
121
+ text: 'Text',
122
122
  },
123
123
  };
124
124
 
125
- export const FilledIcon = {
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
+ },
126
134
  args: {
135
+ type: 'warning',
136
+ iconLeft: 'add',
127
137
  text: 'Text',
128
- iconLeft: 'play_arrow',
129
- iconsFilled: true,
130
138
  },
131
139
  };
132
140
 
133
- export const OnlyIcon = {
141
+ export const Attention = {
134
142
  args: {
135
- iconCenter: 'add',
143
+ type: 'attention',
144
+ iconLeft: 'add',
145
+ text: 'Text',
136
146
  },
137
147
  };
138
148
 
@@ -15,12 +15,12 @@ export default {
15
15
  },
16
16
  },
17
17
  },
18
- args: { disabled: false },
18
+ args: { disabled: false, size: 'md' },
19
19
  argTypes: {
20
20
  modelValue: { control: 'inline-radio', options: [true, false, 'less'] },
21
21
  disabled: { control: 'boolean' },
22
- label: { control: 'text' },
23
- helper: { control: 'text' },
22
+ size: { control: 'select', options: ['md', 'sm'] },
23
+ textRight: { control: 'text' },
24
24
  },
25
25
  render: (args) => ({
26
26
  components: {
@@ -34,7 +34,6 @@ export default {
34
34
  return { args, updateModelValue };
35
35
  },
36
36
  template: `
37
- <pre>v-model: {{ args.modelValue }}</pre>
38
37
  <UnnnicCheckbox v-bind="args" @update:modelValue="updateModelValue"/>
39
38
  `,
40
39
  }),
@@ -43,22 +42,18 @@ export default {
43
42
  export const Default = {
44
43
  args: {
45
44
  modelValue: false,
46
- label: 'Label',
47
- helper: 'Helper',
48
45
  },
49
46
  };
50
47
 
51
48
  export const Selected = {
52
49
  args: {
53
50
  modelValue: true,
54
- label: 'Label',
55
51
  },
56
52
  };
57
53
 
58
- export const Less = {
54
+ export const LessSelected = {
59
55
  args: {
60
56
  modelValue: 'less',
61
- label: 'Label',
62
57
  },
63
58
  };
64
59
 
@@ -66,7 +61,6 @@ export const Disabled = {
66
61
  args: {
67
62
  modelValue: false,
68
63
  disabled: true,
69
- label: 'Label',
70
64
  },
71
65
  };
72
66
 
@@ -74,6 +68,5 @@ export const DisabledSelected = {
74
68
  args: {
75
69
  modelValue: true,
76
70
  disabled: true,
77
- label: 'Label',
78
71
  },
79
72
  };
@@ -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
+ };
@@ -7,25 +7,14 @@ export default {
7
7
  component: unnnicInput,
8
8
  argTypes: {
9
9
  label: { control: { type: 'text' } },
10
- size: {
11
- control: { type: 'select' },
12
- options: ['md', 'sm'],
13
- defaultValue: {
14
- summary: 'md',
15
- },
16
- },
17
- type: {
18
- control: { type: 'select' },
19
- options: ['normal', 'error'],
20
- defaultValue: {
21
- summary: 'normal',
22
- },
23
- },
10
+ size: { control: { type: 'select' }, options: ['md', 'sm'] },
11
+ type: { control: { type: 'select' }, options: ['normal', 'error'] },
24
12
  nativeType: { control: { type: 'select' }, options: ['text', 'password'] },
25
13
  placeholder: { control: { type: 'text' } },
26
14
  iconLeft: { control: { type: 'select' }, options: iconList },
27
15
  iconRight: { control: { type: 'select' }, options: iconList },
28
16
  allowTogglePassword: { control: { type: 'boolean' } },
17
+ hasCloudyColor: { control: { type: 'select' }, options: [true, false] },
29
18
  },
30
19
  render: (args) => ({
31
20
  components: {
@@ -46,72 +35,106 @@ export default {
46
35
  },
47
36
  },
48
37
  template: `
49
- <unnnic-input v-model="value" @icon-right-click="click" v-bind="args" />
38
+ <unnnic-form-element label="Label" message="Helper text">
39
+ <unnnic-input v-model="value" @icon-right-click="click" v-bind="args" />
40
+ </unnnic-form-element>
50
41
  `,
51
42
  }),
52
43
  };
53
44
 
54
- export const Normal = {
55
- args: {
56
- label: 'Label',
57
- placeholder: 'Placeholder',
45
+ const TemplateError = (args, { argTypes }) => ({
46
+ props: Object.keys(argTypes),
47
+
48
+ components: {
49
+ unnnicFormElement,
50
+ unnnicInput,
58
51
  },
59
- };
60
52
 
61
- export const NormalSm = {
62
- args: {
63
- label: 'Label',
64
- size: 'sm',
65
- placeholder: 'Placeholder',
53
+ setup() {
54
+ return { args };
66
55
  },
67
- };
68
56
 
69
- export const Error = {
70
- args: {
71
- label: 'Label',
72
- placeholder: 'Placeholder',
73
- errors: 'Error text',
57
+ data() {
58
+ return {
59
+ value: '',
60
+ };
74
61
  },
75
- };
76
62
 
77
- export const ErrorSm = {
78
- args: {
79
- label: 'Label',
80
- size: 'sm',
81
- errors: 'Error text',
82
- placeholder: 'Placeholder',
63
+ template: `
64
+ <unnnic-form-element label="Label" error="Error text">
65
+ <unnnic-input v-model="value" v-bind="args"/>
66
+ </unnnic-form-element>
67
+ `,
68
+ });
69
+
70
+ const TemplateDisabled = (args, { argTypes }) => ({
71
+ props: Object.keys(argTypes),
72
+
73
+ components: {
74
+ unnnicFormElement,
75
+ unnnicInput,
76
+ },
77
+
78
+ setup() {
79
+ return { args };
83
80
  },
84
- };
85
81
 
86
- export const Disabled = {
82
+ data() {
83
+ return {
84
+ value: '',
85
+ };
86
+ },
87
+
88
+ template: `
89
+ <unnnic-form-element label="Label" message="Helper text" disabled>
90
+ <unnnic-input v-model="value" v-bind="args"/>
91
+ </unnnic-form-element>
92
+ `,
93
+ });
94
+
95
+ export const Normal = {
87
96
  args: {
88
- label: 'Label',
89
- disabled: true,
97
+ type: 'normal',
90
98
  placeholder: 'Placeholder',
91
99
  },
92
100
  };
93
101
 
94
- export const DisabledSm = {
102
+ export const NormalSm = {
95
103
  args: {
96
- label: 'Label',
97
104
  size: 'sm',
98
- disabled: true,
105
+ type: 'normal',
99
106
  placeholder: 'Placeholder',
100
107
  },
101
108
  };
102
109
 
103
- export const DisabledError = {
104
- args: {
105
- label: 'Label',
106
- disabled: true,
107
- errors: 'Error text',
108
- placeholder: 'Placeholder',
109
- },
110
+ export const Error = TemplateError.bind({});
111
+ Error.args = {
112
+ type: 'error',
113
+ placeholder: 'Placeholder',
114
+ };
115
+
116
+ export const ErrorSm = TemplateError.bind({});
117
+ ErrorSm.args = {
118
+ size: 'sm',
119
+ type: 'error',
120
+ placeholder: 'Placeholder',
121
+ };
122
+
123
+ export const Disabled = TemplateDisabled.bind({});
124
+ Disabled.args = {
125
+ disabled: true,
126
+ placeholder: 'Placeholder',
127
+ };
128
+
129
+ export const DisabledSm = TemplateDisabled.bind({});
130
+ DisabledSm.args = {
131
+ size: 'sm',
132
+ disabled: true,
133
+ placeholder: 'Placeholder',
110
134
  };
111
135
 
112
136
  export const Password = {
113
137
  args: {
114
- label: 'Label',
115
138
  placeholder: 'Password',
116
139
  nativeType: 'password',
117
140
  allowTogglePassword: true,
@@ -120,7 +143,6 @@ export const Password = {
120
143
 
121
144
  export const IconLeftAndRight = {
122
145
  args: {
123
- label: 'Label',
124
146
  placeholder: 'Text',
125
147
  iconLeft: 'email',
126
148
  iconRight: 'search',
@@ -135,20 +157,3 @@ export const Mask = {
135
157
  mask: ['###.###.###-##', '##.###.###/####-##'],
136
158
  },
137
159
  };
138
-
139
- export const LimitMaxLength = {
140
- args: {
141
- label: 'Label',
142
- placeholder: 'Text',
143
- maxlength: 10,
144
- showMaxlengthCounter: true,
145
- },
146
- };
147
-
148
- export const WithTooltip = {
149
- args: {
150
- label: 'Label',
151
- placeholder: 'Text',
152
- tooltip: 'Tooltip',
153
- },
154
- };
@@ -13,10 +13,3 @@ export const Default = {
13
13
  label: 'Label',
14
14
  },
15
15
  };
16
-
17
- export const WithTooltip = {
18
- args: {
19
- label: 'Label',
20
- tooltip: 'Tooltip',
21
- },
22
- };
@@ -21,28 +21,9 @@ 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
- }),
43
24
  };
44
25
 
45
- export const Multiple = {
26
+ export const Default = {
46
27
  render: (args) => ({
47
28
  components: {
48
29
  UnnnicRadio,
@@ -94,11 +75,3 @@ export const DisableSelected = {
94
75
  disabled: true,
95
76
  },
96
77
  };
97
-
98
- export const Helper = {
99
- args: {
100
- modelValue: 'option 1',
101
- value: 'option 1',
102
- helper: 'Helper text',
103
- },
104
- };