@weni/unnnic-system 3.9.3 → 3.9.4-alpha.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 (258) hide show
  1. package/CHANGELOG.md +6 -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/MarketplaceCard.vue.d.ts.map +1 -1
  31. package/dist/components/Card/SimpleCard.vue.d.ts +3 -3
  32. package/dist/components/Card/StatusCard.vue.d.ts +2 -2
  33. package/dist/components/Card/TitleCard.vue.d.ts +3 -3
  34. package/dist/components/CardImage/CardImage.vue.d.ts +24 -31
  35. package/dist/components/CardInformation/CardInformation.vue.d.ts +5 -5
  36. package/dist/components/CardProject/CardProject.vue.d.ts +3 -3
  37. package/dist/components/Carousel/Carousel.vue.d.ts +13 -416
  38. package/dist/components/Carousel/TagCarousel.vue.d.ts +12 -415
  39. package/dist/components/ChartBar/ChartBar.vue.d.ts +5 -5
  40. package/dist/components/ChartLine/ChartLine.vue.d.ts +1 -1
  41. package/dist/components/ChatText/ChatText.vue.d.ts +2 -2
  42. package/dist/components/ChatsContact/ChatsContact.vue.d.ts +21 -446
  43. package/dist/components/ChatsDashboardTagLive/ChatsDashboardTagLive.vue.d.ts +1 -1
  44. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts +1 -1
  45. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts.map +1 -1
  46. package/dist/components/ChatsMessage/ChatsMessage.vue.d.ts +5 -5
  47. package/dist/components/ChatsMessage/ChatsMessageStatusBackdrop.vue.d.ts +2 -2
  48. package/dist/components/ChatsNavbar/ChatsNavbar.vue.d.ts +1 -1
  49. package/dist/components/ChatsUserAvatar/ChatsUserAvatar.vue.d.ts +2 -2
  50. package/dist/components/Checkbox/Checkbox.vue.d.ts +19 -26
  51. package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
  52. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +28 -0
  53. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +1 -0
  54. package/dist/components/Comment/Comment.vue.d.ts +1 -1
  55. package/dist/components/DataArea/DataArea.vue.d.ts +2 -2
  56. package/dist/components/DataTable/index.vue.d.ts +1 -1
  57. package/dist/components/DataTable/index.vue.d.ts.map +1 -1
  58. package/dist/components/DateFilter/DateFilter.vue.d.ts +251 -41
  59. package/dist/components/DatePicker/DatePicker.vue.d.ts +4 -4
  60. package/dist/components/Drawer/Drawer.vue.d.ts +4 -4
  61. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  62. package/dist/components/Dropdown/LanguageSelect.vue.d.ts +3 -3
  63. package/dist/components/Flag.vue.d.ts +2 -2
  64. package/dist/components/FormElement/FormElement.vue.d.ts +51 -28
  65. package/dist/components/FormElement/FormElement.vue.d.ts.map +1 -1
  66. package/dist/components/Icon.vue.d.ts +1 -1
  67. package/dist/components/Icon.vue.d.ts.map +1 -1
  68. package/dist/components/IconLoading/IconLoading.vue.d.ts +1 -1
  69. package/dist/components/ImportCard/ImportCard.vue.d.ts +4 -4
  70. package/dist/components/Input/BaseInput.vue.d.ts +33 -2
  71. package/dist/components/Input/BaseInput.vue.d.ts.map +1 -1
  72. package/dist/components/Input/Input.vue.d.ts +251 -41
  73. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  74. package/dist/components/Input/TextInput.vue.d.ts +85 -25
  75. package/dist/components/Input/TextInput.vue.d.ts.map +1 -1
  76. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts +256 -46
  77. package/dist/components/InputNext/InputNext.vue.d.ts +5 -5
  78. package/dist/components/Label/Label.vue.d.ts +9 -15
  79. package/dist/components/Label/Label.vue.d.ts.map +1 -1
  80. package/dist/components/Modal/Modal.vue.d.ts +2 -2
  81. package/dist/components/ModalDialog/ModalDialog.vue.d.ts +6 -6
  82. package/dist/components/ModalNext/ModalNext.vue.d.ts +256 -46
  83. package/dist/components/ModalUpload/ModalUpload.vue.d.ts +9 -9
  84. package/dist/components/MoodRating/MoodRating.vue.d.ts +1 -1
  85. package/dist/components/MultiSelect/MultiSelect.vue.d.ts +26 -14
  86. package/dist/components/PageHeader/PageHeader.vue.d.ts +28 -0
  87. package/dist/components/PageHeader/PageHeader.vue.d.ts.map +1 -0
  88. package/dist/components/PageHeader/index.d.ts +3 -0
  89. package/dist/components/PageHeader/index.d.ts.map +1 -0
  90. package/dist/components/PageHeader/types.d.ts +9 -0
  91. package/dist/components/PageHeader/types.d.ts.map +1 -0
  92. package/dist/components/Pagination/Pagination.vue.d.ts +3 -3
  93. package/dist/components/ProgressBar/ProgressBar.vue.d.ts +1 -1
  94. package/dist/components/Radio/Radio.vue.d.ts +10 -6
  95. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  96. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +120 -470
  97. package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +11 -414
  98. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +21 -28
  99. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts.map +1 -1
  100. package/dist/components/SelectTime/index.vue.d.ts +85 -25
  101. package/dist/components/SkeletonLoading/skeletonTheme.vue.d.ts +1 -1
  102. package/dist/components/Slider/Slider.vue.d.ts +2 -2
  103. package/dist/components/StarRating/StarRating.vue.d.ts +1 -1
  104. package/dist/components/Switch/Switch.vue.d.ts +55 -21
  105. package/dist/components/Switch/Switch.vue.d.ts.map +1 -1
  106. package/dist/components/Tab/Tab.vue.d.ts +13 -2
  107. package/dist/components/TableNext/TableBodyCell.vue.d.ts +2 -2
  108. package/dist/components/TableNext/TablePagination.vue.d.ts +3 -3
  109. package/dist/components/TabsExpanded/TabsExpanded.vue.d.ts +1 -1
  110. package/dist/components/Tag/DefaultTag.vue.d.ts +4 -83
  111. package/dist/components/Tag/DefaultTag.vue.d.ts.map +1 -1
  112. package/dist/components/Tag/Tag.vue.d.ts +12 -414
  113. package/dist/components/Tag/Tag.vue.d.ts.map +1 -1
  114. package/dist/components/Tag/types.d.ts +18 -0
  115. package/dist/components/Tag/types.d.ts.map +1 -0
  116. package/dist/components/TextArea/TextArea.vue.d.ts +78 -33
  117. package/dist/components/TextArea/TextArea.vue.d.ts.map +1 -1
  118. package/dist/components/Toast/Toast.vue.d.ts +16 -0
  119. package/dist/components/Toast/Toast.vue.d.ts.map +1 -0
  120. package/dist/components/Toast/ToastManager.d.ts +14 -0
  121. package/dist/components/Toast/ToastManager.d.ts.map +1 -0
  122. package/dist/components/Toast/types.d.ts +35 -0
  123. package/dist/components/Toast/types.d.ts.map +1 -0
  124. package/dist/components/ToolTip/ToolTip.vue.d.ts +1 -1
  125. package/dist/components/Tour/Tour.vue.d.ts +3 -3
  126. package/dist/components/Tour/TourPopover.vue.d.ts +3 -3
  127. package/dist/components/UploadArea/UploadArea.vue.d.ts +4 -4
  128. package/dist/components/index.d.ts +8861 -10223
  129. package/dist/components/index.d.ts.map +1 -1
  130. package/dist/components/ui/popover/PopoverContent.vue.d.ts +1 -1
  131. package/dist/components/ui/popover/PopoverContent.vue.d.ts.map +1 -1
  132. package/dist/{es-8146fb1b.mjs → es-676f604b.mjs} +1 -1
  133. package/dist/{index-724ed422.mjs → index-5b33c9af.mjs} +9356 -8814
  134. package/dist/locales/en.json.d.ts +2 -1
  135. package/dist/locales/es.json.d.ts +2 -1
  136. package/dist/locales/pt_br.json.d.ts +2 -1
  137. package/dist/{pt-br-af294ec9.mjs → pt-br-85e5dce9.mjs} +1 -1
  138. package/dist/style.css +1 -1
  139. package/dist/unnnic.mjs +181 -173
  140. package/dist/unnnic.umd.js +35 -36
  141. package/dist/utils/call.d.ts +2 -1
  142. package/dist/utils/call.d.ts.map +1 -1
  143. package/package.json +2 -2
  144. package/src/assets/icons/checkbox-checked-disabled.svg +3 -0
  145. package/src/assets/icons/checkbox-checked.svg +3 -0
  146. package/src/assets/icons/checkbox-less-disabled.svg +3 -0
  147. package/src/assets/icons/checkbox-less.svg +3 -0
  148. package/src/assets/icons/radio-checked.svg +3 -0
  149. package/src/assets/icons/switch-checked-disabled.svg +3 -0
  150. package/src/assets/icons/switch-checked.svg +3 -0
  151. package/src/assets/scss/radii.scss +1 -1
  152. package/src/assets/scss/scheme-colors.scss +309 -223
  153. package/src/assets/tokens/radii.json +1 -1
  154. package/src/components/Alert/Alert.vue +26 -135
  155. package/src/components/Alert/Version1dot1.vue +0 -36
  156. package/src/components/Alert/__tests__/Alert.spec.js +2 -45
  157. package/src/components/Alert/__tests__/Version1dot1.spec.js +0 -21
  158. package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +11 -7
  159. package/src/components/Alert/__tests__/__snapshots__/AlertBanner.spec.js.snap +2 -2
  160. package/src/components/Alert/__tests__/__snapshots__/Version1dot1.spec.js.snap +1 -1
  161. package/src/components/Button/Button.vue +67 -117
  162. package/src/components/Button/types.ts +0 -1
  163. package/src/components/Card/MarketplaceCard.vue +1 -0
  164. package/src/components/ChatsContact/ChatsContact.vue +10 -6
  165. package/src/components/Checkbox/Checkbox.vue +117 -65
  166. package/src/components/Checkbox/__tests__/Checkbox.spec.js +6 -21
  167. package/src/components/CheckboxGroup/CheckboxGroup.vue +96 -0
  168. package/src/components/FormElement/FormElement.vue +63 -93
  169. package/src/components/Icon.vue +2 -0
  170. package/src/components/Input/BaseInput.vue +33 -14
  171. package/src/components/Input/Input.scss +22 -22
  172. package/src/components/Input/Input.vue +79 -56
  173. package/src/components/Input/TextInput.vue +81 -65
  174. package/src/components/Input/__test__/Input.spec.js +13 -33
  175. package/src/components/Input/__test__/TextInput.spec.js +6 -8
  176. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +17 -4
  177. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +7 -1
  178. package/src/components/Label/Label.vue +52 -21
  179. package/src/components/Label/__tests__/Label.spec.js +1 -1
  180. package/src/components/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  181. package/src/components/MultiSelectV2/MultSelectOption.vue +67 -0
  182. package/src/components/MultiSelectV2/__tests__/MultiSelect.spec.js +556 -0
  183. package/src/components/MultiSelectV2/__tests__/MultiSelectOption.spec.js +229 -0
  184. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelect.spec.js.snap +121 -0
  185. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelectOption.spec.js.snap +51 -0
  186. package/src/components/MultiSelectV2/index.vue +221 -0
  187. package/src/components/PageHeader/PageHeader.vue +148 -0
  188. package/src/components/PageHeader/index.ts +2 -0
  189. package/src/components/PageHeader/types.ts +10 -0
  190. package/src/components/Popover/__tests__/Popover.spec.js +147 -0
  191. package/src/components/Popover/__tests__/__snapshots__/Popover.spec.js.snap +8 -0
  192. package/src/components/Popover/index.vue +146 -0
  193. package/src/components/Radio/Radio.vue +118 -66
  194. package/src/components/Radio/__test__/Radio.spec.js +14 -20
  195. package/src/components/Radio/__test__/__snapshots__/Radio.spec.js.snap +4 -3
  196. package/src/components/RadioGroup/RadioGroup.vue +142 -0
  197. package/src/components/Select/SelectOption.vue +65 -0
  198. package/src/components/Select/__tests__/Select.spec.js +412 -0
  199. package/src/components/Select/__tests__/SelectItem.spec.js +330 -0
  200. package/src/components/Select/__tests__/SelectOption.spec.js +174 -0
  201. package/src/components/Select/__tests__/__snapshots__/Select.spec.js.snap +97 -0
  202. package/src/components/Select/__tests__/__snapshots__/SelectItem.spec.js.snap +15 -0
  203. package/src/components/Select/__tests__/__snapshots__/SelectOption.spec.js.snap +25 -0
  204. package/src/components/Select/index.vue +249 -0
  205. package/src/components/SelectSmart/SelectSmart.vue +4 -3
  206. package/src/components/Switch/Switch.vue +132 -91
  207. package/src/components/Switch/__tests__/Switch.spec.js +8 -75
  208. package/src/components/Switch/__tests__/__snapshots__/Switch.spec.js.snap +5 -6
  209. package/src/components/Tab/Tab.vue +37 -23
  210. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +1 -1
  211. package/src/components/TableNext/__test__/__snapshots__/TableNext.spec.js.snap +2 -2
  212. package/src/components/TableNext/__test__/__snapshots__/TablePagination.spec.js.snap +2 -2
  213. package/src/components/Tag/DefaultTag.vue +51 -107
  214. package/src/components/Tag/Tag.vue +32 -79
  215. package/src/components/Tag/types.ts +19 -0
  216. package/src/components/TextArea/TextArea.vue +41 -12
  217. package/src/components/TextArea/__test__/__snapshots__/TextArea.spec.js.snap +11 -3
  218. package/src/components/Toast/Toast.vue +246 -0
  219. package/src/components/Toast/ToastManager.ts +110 -0
  220. package/src/components/Toast/__tests__/Toast.spec.js +291 -0
  221. package/src/components/Toast/__tests__/ToastManager.spec.js +294 -0
  222. package/src/components/Toast/types.ts +57 -0
  223. package/src/components/index.ts +33 -17
  224. package/src/locales/en.json +2 -1
  225. package/src/locales/es.json +2 -1
  226. package/src/locales/pt_br.json +2 -1
  227. package/src/stories/Alert.stories.js +6 -67
  228. package/src/stories/Button.stories.js +29 -39
  229. package/src/stories/Checkbox.stories.js +11 -4
  230. package/src/stories/CheckboxGroup.stories.js +105 -0
  231. package/src/stories/Input.stories.js +71 -76
  232. package/src/stories/Label.stories.js +7 -0
  233. package/src/stories/MultiSelectV2.stories.js +158 -0
  234. package/src/stories/PageHeader.stories.js +330 -0
  235. package/src/stories/Radio.stories.js +28 -1
  236. package/src/stories/RadioGroup.stories.js +144 -0
  237. package/src/stories/Select.stories.js +158 -0
  238. package/src/stories/Switch.stories.js +10 -5
  239. package/src/stories/Tab.stories.js +11 -4
  240. package/src/stories/Tag.stories.js +24 -43
  241. package/src/stories/TextArea.stories.js +14 -2
  242. package/src/stories/Toast.mdx +123 -0
  243. package/src/stories/Toast.stories.js +126 -0
  244. package/src/types/scheme-colors.d.ts +1 -0
  245. package/src/utils/call.js +46 -18
  246. package/dist/components/Tag/BrandTag.vue.d.ts +0 -51
  247. package/dist/components/Tag/BrandTag.vue.d.ts.map +0 -1
  248. package/dist/components/Tag/IndicatorTag.vue.d.ts +0 -151
  249. package/dist/components/Tag/IndicatorTag.vue.d.ts.map +0 -1
  250. package/dist/components/Tag/TagNext.vue.d.ts +0 -24
  251. package/dist/components/Tag/TagNext.vue.d.ts.map +0 -1
  252. package/src/components/Alert/AlertBanner.vue +0 -182
  253. package/src/components/Alert/AlertCaller.vue +0 -49
  254. package/src/components/Alert/__tests__/AlertBanner.spec.js +0 -89
  255. package/src/components/Alert/__tests__/AlertCaller.spec.js +0 -98
  256. package/src/components/Tag/BrandTag.vue +0 -96
  257. package/src/components/Tag/IndicatorTag.vue +0 -107
  258. package/src/components/Tag/TagNext.vue +0 -60
@@ -0,0 +1,330 @@
1
+ import { action } from '@storybook/addon-actions';
2
+
3
+ import PageHeader from '../components/PageHeader/PageHeader.vue';
4
+ import UnnnicButton from '../components/Button/Button.vue';
5
+ import UnnnicTag from '../components/Tag/Tag.vue';
6
+ import UnnnicSelectSmart from '../components/SelectSmart/SelectSmart.vue';
7
+ import { Tabs, TabsList, TabsTrigger, TabsContent } from '@/components/ui/tabs';
8
+
9
+ export default {
10
+ title: 'Layout/PageHeader',
11
+ component: PageHeader,
12
+ tags: ['autodocs'],
13
+ parameters: {
14
+ docs: {
15
+ description: {
16
+ component: `A page header component to standardize the header of pages.
17
+ <br/>
18
+ It supports title, description, actions, tabs, tags, and back navigation.
19
+ <br/>
20
+ This component provides multiple variations to handle different page header scenarios.
21
+ `,
22
+ },
23
+ },
24
+ },
25
+ argTypes: {
26
+ title: {
27
+ control: { type: 'text' },
28
+ description: 'The title of the page',
29
+ },
30
+ description: {
31
+ control: { type: 'text' },
32
+ description: 'The description text below the title',
33
+ },
34
+ hasBackButton: {
35
+ control: { type: 'boolean' },
36
+ description: 'Show back navigation button',
37
+ },
38
+ },
39
+ args: {
40
+ title: 'Page Name',
41
+ description: 'Description',
42
+ hasBackButton: false,
43
+ },
44
+ };
45
+
46
+ export const Default = {
47
+ parameters: {
48
+ docs: {
49
+ description: {
50
+ story: 'A simple page header with title and description.',
51
+ },
52
+ source: {
53
+ code: `
54
+ <UnnnicPageHeader
55
+ title="Page Name"
56
+ description="Description"
57
+ />
58
+ `,
59
+ },
60
+ },
61
+ },
62
+ render: (args) => ({
63
+ components: { PageHeader },
64
+ setup() {
65
+ return { args };
66
+ },
67
+ template: `
68
+ <PageHeader v-bind="args" />
69
+ `,
70
+ }),
71
+ };
72
+
73
+ export const WithActions = {
74
+ parameters: {
75
+ docs: {
76
+ description: {
77
+ story:
78
+ 'Page header with action buttons on the right side. Supports primary and secondary actions.',
79
+ },
80
+ source: {
81
+ code: `
82
+ <UnnnicPageHeader
83
+ title="Page Name"
84
+ description="Description"
85
+ >
86
+ <template #actions>
87
+ <UnnnicButton text="Button" type="secondary" />
88
+ <UnnnicButton text="Button" type="primary" />
89
+ </template>
90
+ </UnnnicPageHeader>
91
+ `,
92
+ },
93
+ },
94
+ },
95
+ render: (args) => ({
96
+ components: {
97
+ PageHeader,
98
+ UnnnicButton,
99
+ Tabs,
100
+ TabsList,
101
+ TabsTrigger,
102
+ TabsContent,
103
+ },
104
+ setup() {
105
+ return { args };
106
+ },
107
+ template: `
108
+ <PageHeader v-bind="args">
109
+ <template #actions>
110
+ <UnnnicButton text="Button" type="secondary" />
111
+ <UnnnicButton text="Button" type="primary" />
112
+ </template>
113
+ </PageHeader>
114
+ `,
115
+ }),
116
+ };
117
+
118
+ export const WithTabs = {
119
+ parameters: {
120
+ docs: {
121
+ description: {
122
+ story:
123
+ 'Page header with tabs for navigation. Useful for pages with multiple sections divided by tabs.',
124
+ },
125
+ source: {
126
+ code: `
127
+ <UnnnicPageHeader
128
+ title="Page Name"
129
+ description="Description"
130
+ >
131
+ <template #actions>
132
+ <UnnnicButton text="Button" type="secondary" />
133
+ <UnnnicButton text="Button" type="primary" />
134
+ </template>
135
+ <template #tabs>
136
+ <UnnnicTabs defaultValue="label1">
137
+ <UnnnicTabsList>
138
+ <UnnnicTabsTrigger value="label1">Label</UnnnicTabsTrigger>
139
+ <UnnnicTabsTrigger value="label2">Label</UnnnicTabsTrigger>
140
+ <UnnnicTabsTrigger value="label3">Label</UnnnicTabsTrigger>
141
+ </UnnnicTabsList>
142
+ </UnnnicTabs>
143
+ </template>
144
+ </UnnnicPageHeader>
145
+ `,
146
+ },
147
+ },
148
+ },
149
+ render: (args) => ({
150
+ components: {
151
+ PageHeader,
152
+ UnnnicButton,
153
+ Tabs,
154
+ TabsList,
155
+ TabsTrigger,
156
+ TabsContent,
157
+ },
158
+ setup() {
159
+ return { args };
160
+ },
161
+ template: `
162
+ <PageHeader v-bind="args">
163
+ <template #actions>
164
+ <UnnnicButton text="Button" type="secondary" />
165
+ <UnnnicButton text="Button" type="primary" />
166
+ </template>
167
+ <template #tabs>
168
+ <Tabs defaultValue="label1">
169
+ <TabsList>
170
+ <TabsTrigger value="label1">Label</TabsTrigger>
171
+ <TabsTrigger value="label2">Label</TabsTrigger>
172
+ <TabsTrigger value="label3">Label</TabsTrigger>
173
+ </TabsList>
174
+ </Tabs>
175
+ </template>
176
+ </PageHeader>
177
+ `,
178
+ }),
179
+ };
180
+
181
+ export const WithSelect = {
182
+ parameters: {
183
+ docs: {
184
+ description: {
185
+ story: 'Page header with a select dropdown on the right side.',
186
+ },
187
+ source: {
188
+ code: `
189
+ <UnnnicPageHeader
190
+ title="Page Name"
191
+ description="Description"
192
+ >
193
+ <template #actions>
194
+ <UnnnicSelectSmart />
195
+ </template>
196
+ </UnnnicPageHeader>
197
+ `,
198
+ },
199
+ },
200
+ },
201
+ render: (args) => ({
202
+ components: { PageHeader, UnnnicSelectSmart },
203
+ setup() {
204
+ return { args };
205
+ },
206
+ template: `
207
+ <PageHeader v-bind="args">
208
+ <template #actions>
209
+ <UnnnicSelectSmart />
210
+ </template>
211
+ </PageHeader>
212
+ `,
213
+ }),
214
+ };
215
+
216
+ export const WithTag = {
217
+ parameters: {
218
+ docs: {
219
+ description: {
220
+ story: 'Page header with a tag next to the title and action buttons.',
221
+ },
222
+ source: {
223
+ code: `
224
+ <UnnnicPageHeader
225
+ title="Page Name"
226
+ description="Description"
227
+ >
228
+ <template #tag>
229
+ <UnnnicTag text="Tag name" scheme="gray" />
230
+ </template>
231
+ <template #actions>
232
+ <UnnnicButton text="Button" type="secondary" />
233
+ <UnnnicButton text="Button" type="primary" />
234
+ </template>
235
+ </UnnnicPageHeader>
236
+ `,
237
+ },
238
+ },
239
+ },
240
+ render: (args) => ({
241
+ components: { PageHeader, UnnnicButton, UnnnicTag },
242
+ setup() {
243
+ return { args };
244
+ },
245
+ template: `
246
+ <PageHeader v-bind="args">
247
+ <template #tag>
248
+ <UnnnicTag text="Tag name" scheme="gray" />
249
+ </template>
250
+ <template #actions>
251
+ <UnnnicButton text="Button" type="secondary" />
252
+ <UnnnicButton text="Button" type="primary" />
253
+ </template>
254
+ </PageHeader>
255
+ `,
256
+ }),
257
+ };
258
+
259
+ export const WithMenuButton = {
260
+ parameters: {
261
+ docs: {
262
+ description: {
263
+ story: 'Page header with a menu button (three dots) on the right side.',
264
+ },
265
+ source: {
266
+ code: `
267
+ <UnnnicPageHeader
268
+ title="Page Name"
269
+ description="Description"
270
+ >
271
+ <template #actions>
272
+ <UnnnicButton type="tertiary" iconCenter="more_vert" />
273
+ </template>
274
+ </UnnnicPageHeader>
275
+ `,
276
+ },
277
+ },
278
+ },
279
+ render: (args) => ({
280
+ components: { PageHeader, UnnnicButton },
281
+ setup() {
282
+ return { args };
283
+ },
284
+ template: `
285
+ <PageHeader v-bind="args">
286
+ <template #actions>
287
+ <UnnnicButton type="tertiary" iconCenter="more_vert" />
288
+ </template>
289
+ </PageHeader>
290
+ `,
291
+ }),
292
+ };
293
+
294
+ export const WithBackButton = {
295
+ parameters: {
296
+ docs: {
297
+ description: {
298
+ story: 'Page header with a back navigation button.',
299
+ },
300
+ source: {
301
+ code: `
302
+ <UnnnicPageHeader
303
+ title="Page Name"
304
+ :hasBackButton="true"
305
+ />
306
+ `,
307
+ },
308
+ },
309
+ },
310
+ render: (args) => ({
311
+ components: { PageHeader },
312
+ setup() {
313
+ const handleBack = () => {
314
+ action('back')();
315
+ };
316
+
317
+ return {
318
+ args: {
319
+ ...args,
320
+ hasBackButton: true,
321
+ description: '',
322
+ },
323
+ handleBack,
324
+ };
325
+ },
326
+ template: `
327
+ <PageHeader v-bind="args" @back="handleBack" />
328
+ `,
329
+ }),
330
+ };
@@ -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
  };