@weni/unnnic-system 3.31.1-alpha.2 → 3.32.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 (527) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/unnnic.mjs +1 -1
  3. package/dist/unnnic.umd.js +1 -1
  4. package/package.json +8 -9
  5. package/public/doris.png +0 -0
  6. package/public/favicon.ico +0 -0
  7. package/src/App.vue +0 -0
  8. package/src/assets/emoji/u1F600.png +0 -0
  9. package/src/assets/emoji/u1F601.png +0 -0
  10. package/src/assets/emoji/u1F602.png +0 -0
  11. package/src/assets/emoji/u1F603.png +0 -0
  12. package/src/assets/emoji/u1F604.png +0 -0
  13. package/src/assets/emoji/u1F605.png +0 -0
  14. package/src/assets/emoji/u1F606.png +0 -0
  15. package/src/assets/emoji/u1F607.png +0 -0
  16. package/src/assets/emoji/u1F608.png +0 -0
  17. package/src/assets/emoji/u1F609.png +0 -0
  18. package/src/assets/emoji/u1F610.png +0 -0
  19. package/src/assets/emoji/u1F611.png +0 -0
  20. package/src/assets/emoji/u1F612.png +0 -0
  21. package/src/assets/emoji/u1F613.png +0 -0
  22. package/src/assets/emoji/u1F614.png +0 -0
  23. package/src/assets/emoji/u1F615.png +0 -0
  24. package/src/assets/emoji/u1F616.png +0 -0
  25. package/src/assets/emoji/u1F617.png +0 -0
  26. package/src/assets/emoji/u1F618.png +0 -0
  27. package/src/assets/emoji/u1F619.png +0 -0
  28. package/src/assets/emoji/u1F620.png +0 -0
  29. package/src/assets/emoji/u1F621.png +0 -0
  30. package/src/assets/emoji/u1F622.png +0 -0
  31. package/src/assets/emoji/u1F623.png +0 -0
  32. package/src/assets/emoji/u1F624.png +0 -0
  33. package/src/assets/emoji/u1F625.png +0 -0
  34. package/src/assets/emoji/u1F626.png +0 -0
  35. package/src/assets/emoji/u1F627.png +0 -0
  36. package/src/assets/emoji/u1F628.png +0 -0
  37. package/src/assets/emoji/u1F629.png +0 -0
  38. package/src/assets/emoji/u1F630.png +0 -0
  39. package/src/assets/emoji/u1F631.png +0 -0
  40. package/src/assets/emoji/u1F632.png +0 -0
  41. package/src/assets/emoji/u1F633.png +0 -0
  42. package/src/assets/emoji/u1F634.png +0 -0
  43. package/src/assets/emoji/u1F635.png +0 -0
  44. package/src/assets/emoji/u1F636.png +0 -0
  45. package/src/assets/emoji/u1F637.png +0 -0
  46. package/src/assets/emoji/u1F638.png +0 -0
  47. package/src/assets/emoji/u1F639.png +0 -0
  48. package/src/assets/emoji/u1F640.png +0 -0
  49. package/src/assets/emoji/u1F641.png +0 -0
  50. package/src/assets/emoji/u1F642.png +0 -0
  51. package/src/assets/emoji/u1F643.png +0 -0
  52. package/src/assets/emoji/u1F644.png +0 -0
  53. package/src/assets/emoji/u1F645.png +0 -0
  54. package/src/assets/fonts/material-symbols-rounded.woff2 +0 -0
  55. package/src/assets/icons/Brazil.vue +74 -0
  56. package/src/assets/icons/CheckboxDefault.vue +19 -0
  57. package/src/assets/icons/CheckboxDisable.vue +19 -0
  58. package/src/assets/icons/CheckboxLess.vue +23 -0
  59. package/src/assets/icons/CheckboxSelect.vue +25 -0
  60. package/src/assets/icons/FitnessBiceps1.vue +15 -0
  61. package/src/assets/icons/Indicator.vue +18 -0
  62. package/src/assets/icons/Messages.vue +18 -0
  63. package/src/assets/icons/NavigationMenuVertical1.vue +25 -0
  64. package/src/assets/icons/Pin.vue +33 -0
  65. package/src/assets/icons/RadioDefault.vue +17 -0
  66. package/src/assets/icons/RadioDisable.vue +17 -0
  67. package/src/assets/icons/RadioSelected.vue +23 -0
  68. package/src/assets/icons/SingleNeutral2.vue +20 -0
  69. package/src/assets/icons/SingleNeutralActions1.vue +20 -0
  70. package/src/assets/icons/SocialInstagram1.vue +15 -0
  71. package/src/assets/icons/SocialMediaFacebook1.vue +15 -0
  72. package/src/assets/icons/SortAsc.vue +19 -0
  73. package/src/assets/icons/SortDefault.vue +20 -0
  74. package/src/assets/icons/SortDesc.vue +19 -0
  75. package/src/assets/icons/Spain.vue +1846 -0
  76. package/src/assets/icons/SwitchDefault.vue +31 -0
  77. package/src/assets/icons/SwitchDefaultDisabled.vue +25 -0
  78. package/src/assets/icons/SwitchSelected.vue +31 -0
  79. package/src/assets/icons/SwitchSelectedDisabled.vue +23 -0
  80. package/src/assets/icons/TransferMessage.vue +24 -0
  81. package/src/assets/icons/USA.vue +192 -0
  82. package/src/assets/icons/Unpin.vue +33 -0
  83. package/src/assets/icons/checkbox-checked-disabled.svg +3 -0
  84. package/src/assets/icons/checkbox-checked.svg +3 -0
  85. package/src/assets/icons/checkbox-less-disabled.svg +3 -0
  86. package/src/assets/icons/checkbox-less.svg +3 -0
  87. package/src/assets/icons/radio-checked.svg +3 -0
  88. package/src/assets/icons/switch-checked-disabled.svg +3 -0
  89. package/src/assets/icons/switch-checked.svg +3 -0
  90. package/src/assets/icons/weni-loading.svg +2 -0
  91. package/src/assets/img/flag/en.svg +28 -0
  92. package/src/assets/img/flag/pt-br.svg +21 -0
  93. package/src/assets/img/previews/doc-preview.png +0 -0
  94. package/src/assets/img/previews/image-preview.png +0 -0
  95. package/src/assets/img/previews/video-preview.png +0 -0
  96. package/src/assets/tokens/colors-primitives.json +155 -0
  97. package/src/assets/tokens/colors-semantic-dark.json +55 -0
  98. package/src/assets/tokens/colors-semantic.json +55 -0
  99. package/src/assets/tokens/fonts.json +70 -0
  100. package/src/assets/tokens/icon-sizes.json +22 -0
  101. package/src/assets/tokens/radii.json +28 -0
  102. package/src/assets/tokens/shadows.json +10 -0
  103. package/src/assets/tokens/spaces.json +46 -0
  104. package/src/components/Accordion/Accordion.vue +149 -0
  105. package/src/components/Alert/Alert.vue +62 -0
  106. package/src/components/Alert/Version1dot1.vue +231 -0
  107. package/src/components/Alert/__tests__/Alert.spec.js +41 -0
  108. package/src/components/Alert/__tests__/Version1dot1.spec.js +101 -0
  109. package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +15 -0
  110. package/src/components/Alert/__tests__/__snapshots__/AlertBanner.spec.js.snap +10 -0
  111. package/src/components/Alert/__tests__/__snapshots__/AlertCaller.spec.js.snap +3 -0
  112. package/src/components/Alert/__tests__/__snapshots__/Version1dot1.spec.js.snap +13 -0
  113. package/src/components/AudioRecorder/AudioHandler.vue +121 -0
  114. package/src/components/AudioRecorder/AudioPlayer.vue +403 -0
  115. package/src/components/AudioRecorder/AudioRecorder.vue +475 -0
  116. package/src/components/AudioRecorder/AudioTranscriptionButton.vue +73 -0
  117. package/src/components/AvatarIcon/AvatarIcon.vue +107 -0
  118. package/src/components/AvatarIcon/__tests__/AvatarIcon.spec.js +84 -0
  119. package/src/components/AvatarIcon/__tests__/__snapshots__/AvatarIcon.spec.js.snap +7 -0
  120. package/src/components/Banner/Banner.vue +79 -0
  121. package/src/components/Banner/InfoBanner.vue +158 -0
  122. package/src/components/Breadcrumb/Breadcrumb.vue +82 -0
  123. package/src/components/Breadcrumb/__tests__/Breadcrumb.spec.js +68 -0
  124. package/src/components/Button/Button.vue +371 -0
  125. package/src/components/Button/__tests__/Button.spec.js +188 -0
  126. package/src/components/Button/types.ts +22 -0
  127. package/src/components/Card/AccountCard.vue +94 -0
  128. package/src/components/Card/BlankCard.vue +85 -0
  129. package/src/components/Card/Card.vue +218 -0
  130. package/src/components/Card/CardCompany.vue +189 -0
  131. package/src/components/Card/CardData.vue +123 -0
  132. package/src/components/Card/CardStatusesContainer.vue +255 -0
  133. package/src/components/Card/ContentCard.vue +145 -0
  134. package/src/components/Card/DashCard.vue +144 -0
  135. package/src/components/Card/DefaultCard.vue +87 -0
  136. package/src/components/Card/MarketplaceCard.vue +187 -0
  137. package/src/components/Card/SimpleCard.vue +166 -0
  138. package/src/components/Card/StatusCard.vue +113 -0
  139. package/src/components/Card/TitleCard.vue +100 -0
  140. package/src/components/CardImage/CardImage.vue +172 -0
  141. package/src/components/CardInformation/CardInformation.vue +65 -0
  142. package/src/components/CardNumber/CardNumber.vue +61 -0
  143. package/src/components/CardProject/CardProject.vue +320 -0
  144. package/src/components/CardProject/__tests__/CardProject.spec.js +161 -0
  145. package/src/components/ChartBar/ChartBar.vue +428 -0
  146. package/src/components/ChartFunnel/ChartFunnel.vue +70 -0
  147. package/src/components/ChartFunnel/DefaultFunnel/ChartDefaultFunnelBase.vue +200 -0
  148. package/src/components/ChartFunnel/DefaultFunnel/__tests__/ChartDefaultFunnelBase.unit.spec.js +123 -0
  149. package/src/components/ChartFunnel/DefaultFunnel/__tests__/__snapshots__/ChartDefaultFunnelBase.unit.spec.js.snap +66 -0
  150. package/src/components/ChartFunnel/SvgFunnel/ChartFunnelBaseRow.vue +79 -0
  151. package/src/components/ChartFunnel/SvgFunnel/ChartFunnelFiveRows.vue +101 -0
  152. package/src/components/ChartFunnel/SvgFunnel/ChartFunnelFourRows.vue +89 -0
  153. package/src/components/ChartFunnel/SvgFunnel/ChartFunnelThreeRows.vue +77 -0
  154. package/src/components/ChartFunnel/SvgFunnel/ChartFunnelTwoRows.vue +64 -0
  155. package/src/components/ChartFunnel/SvgFunnel/__tests__/ChartFunnelBaseRow.unit.spec.js +192 -0
  156. package/src/components/ChartFunnel/SvgFunnel/__tests__/ChartFunnelFiveRows.unit.spec.js +126 -0
  157. package/src/components/ChartFunnel/SvgFunnel/__tests__/ChartFunnelFourRows.unit.spec.js +122 -0
  158. package/src/components/ChartFunnel/SvgFunnel/__tests__/ChartFunnelThreeRow.unit.spec.js +120 -0
  159. package/src/components/ChartFunnel/SvgFunnel/__tests__/__snapshots__/ChartFunnelBaseRow.unit.spec.js.snap +15 -0
  160. package/src/components/ChartFunnel/SvgFunnel/__tests__/__snapshots__/ChartFunnelFiveRows.unit.spec.js.snap +3 -0
  161. package/src/components/ChartFunnel/SvgFunnel/__tests__/__snapshots__/ChartFunnelFourRows.unit.spec.js.snap +3 -0
  162. package/src/components/ChartFunnel/SvgFunnel/__tests__/__snapshots__/ChartFunnelThreeRow.unit.spec.js.snap +3 -0
  163. package/src/components/ChartFunnel/__tests__/ChartFunnel.unit.spec.js +161 -0
  164. package/src/components/ChartFunnel/__tests__/__snapshots__/ChartFunnel.unit.spec.js.snap +3 -0
  165. package/src/components/ChartLine/ChartLine.vue +322 -0
  166. package/src/components/ChartLine/__tests__/ChartLine.spec.js +170 -0
  167. package/src/components/ChartMultiLine/ChartMultiLine.vue +326 -0
  168. package/src/components/ChartMultiLine/Line/Line.vue +170 -0
  169. package/src/components/ChartRainbow/ChartRainbow.vue +201 -0
  170. package/src/components/ChatsUserAvatar/ChatsUserAvatar.vue +158 -0
  171. package/src/components/Checkbox/Checkbox.vue +192 -0
  172. package/src/components/Checkbox/__tests__/Checkbox.spec.js +65 -0
  173. package/src/components/CheckboxGroup/CheckboxGroup.vue +88 -0
  174. package/src/components/CheckboxGroup/__tests__/CheckboxGroup.spec.js +62 -0
  175. package/src/components/Chip/Chip.vue +125 -0
  176. package/src/components/Chip/__tests__/Chip.spec.js +164 -0
  177. package/src/components/Chip/types.ts +8 -0
  178. package/src/components/Collapse/Collapse.vue +142 -0
  179. package/src/components/Collapse/__tests__/Collapse.spec.js +117 -0
  180. package/src/components/Collapse/__tests__/__snapshots__/Collapse.spec.js.snap +8 -0
  181. package/src/components/Comment/Comment.vue +99 -0
  182. package/src/components/DataArea/DataArea.vue +99 -0
  183. package/src/components/DataTable/index.vue +555 -0
  184. package/src/components/DateFilter/DateFilter.vue +82 -0
  185. package/src/components/DatePicker/DatePicker.vue +1148 -0
  186. package/src/components/DatePicker/__tests__/DatePicker.spec.js +591 -0
  187. package/src/components/DatePicker/translations.js +148 -0
  188. package/src/components/Disclaimer/Disclaimer.vue +179 -0
  189. package/src/components/Disclaimer/__tests__/Disclaimer.spec.js +165 -0
  190. package/src/components/Disclaimer/types.ts +16 -0
  191. package/src/components/Drawer/Drawer.vue +248 -0
  192. package/src/components/Drawer/__tests__/Drawer.spec.js +280 -0
  193. package/src/components/Drawer/__tests__/__snapshots__/Drawer.spec.js.snap +22 -0
  194. package/src/components/DropArea/DropArea.vue +373 -0
  195. package/src/components/DropArea/__tests__/DropArea.spec.js +333 -0
  196. package/src/components/Dropdown/Dropdown.vue +142 -0
  197. package/src/components/Dropdown/DropdownItem.vue +32 -0
  198. package/src/components/Dropdown/DropdownSkeleton.vue +180 -0
  199. package/src/components/Dropdown/LanguageSelect.vue +296 -0
  200. package/src/components/Dropdown/__tests__/Dropdown.spec.js +155 -0
  201. package/src/components/Dropdown/__tests__/DropdownItem.spec.js +25 -0
  202. package/src/components/Dropdown/__tests__/DropdownSkeleton.spec.js +147 -0
  203. package/src/components/EmojiPicker/EmojiPicker.vue +244 -0
  204. package/src/components/EmojiPicker/__tests__/EmojiPicker.spec.js +236 -0
  205. package/src/components/Flag.vue +40 -0
  206. package/src/components/FormElement/FormElement.vue +139 -0
  207. package/src/components/Icon/OldIconsMap.json +111 -0
  208. package/src/components/Icon/types.ts +26 -0
  209. package/src/components/Icon.vue +198 -0
  210. package/src/components/IconLoading/IconLoading.vue +107 -0
  211. package/src/components/ImportCard/ImportCard.vue +245 -0
  212. package/src/components/Input/BaseInput.vue +156 -0
  213. package/src/components/Input/Input.scss +43 -0
  214. package/src/components/Input/Input.vue +191 -0
  215. package/src/components/Input/TextInput.vue +233 -0
  216. package/src/components/Input/__test__/BaseInput.spec.js +107 -0
  217. package/src/components/Input/__test__/Input.spec.js +103 -0
  218. package/src/components/Input/__test__/TextInput.spec.js +209 -0
  219. package/src/components/Input/__test__/__snapshots__/BaseInput.spec.js.snap +3 -0
  220. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +22 -0
  221. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +9 -0
  222. package/src/components/InputDatePicker/InputDatePicker.vue +253 -0
  223. package/src/components/InputDatePicker/__test__/InputDatePicker.spec.js +208 -0
  224. package/src/components/Label/Label.vue +62 -0
  225. package/src/components/Label/__tests__/Label.spec.js +30 -0
  226. package/src/components/Label/__tests__/__snapshots__/Label.spec.js.snap +3 -0
  227. package/src/components/Modal/CallModal.vue +23 -0
  228. package/src/components/Modal/Modal.vue +377 -0
  229. package/src/components/ModalDialog/ModalDialog.vue +245 -0
  230. package/src/components/ModalDialog/__tests__/ModalDialog.spec.js +159 -0
  231. package/src/components/ModalDialog/__tests__/__snapshots__/ModalDialog.spec.js.snap +3 -0
  232. package/src/components/ModalNext/ModalNext.vue +437 -0
  233. package/src/components/MultiSelect/MultiSelectOption.vue +49 -0
  234. package/src/components/MultiSelect/__tests__/MultiSelect.spec.js +655 -0
  235. package/src/components/MultiSelect/__tests__/MultiSelectOption.spec.js +229 -0
  236. package/src/components/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +91 -0
  237. package/src/components/MultiSelect/__tests__/__snapshots__/MultiSelectOption.spec.js.snap +51 -0
  238. package/src/components/MultiSelect/index.vue +240 -0
  239. package/src/components/Navigator/__tests__/Navigator.spec.js +55 -0
  240. package/src/components/Navigator/index.vue +100 -0
  241. package/src/components/PageHeader/PageHeader.vue +151 -0
  242. package/src/components/PageHeader/__tests__/PageHeader.spec.js +97 -0
  243. package/src/components/PageHeader/index.ts +2 -0
  244. package/src/components/PageHeader/types.ts +11 -0
  245. package/src/components/Pagination/Pagination.vue +190 -0
  246. package/src/components/Pagination/__tests__/Pagination.spec.js +307 -0
  247. package/src/components/ProgressBar/ProgressBar.vue +245 -0
  248. package/src/components/Radio/Radio.vue +168 -0
  249. package/src/components/Radio/__test__/Radio.spec.js +145 -0
  250. package/src/components/Radio/__test__/__snapshots__/Radio.spec.js.snap +8 -0
  251. package/src/components/RadioGroup/RadioGroup.vue +128 -0
  252. package/src/components/RadioGroup/__tests__/RadioGroup.spec.js +100 -0
  253. package/src/components/Select/SelectItem.vue +85 -0
  254. package/src/components/Select/__tests__/Select.spec.js +626 -0
  255. package/src/components/Select/__tests__/SelectItem.spec.js +330 -0
  256. package/src/components/Select/__tests__/__snapshots__/Popover.spec.js.snap +8 -0
  257. package/src/components/Select/__tests__/__snapshots__/Select.spec.js.snap +91 -0
  258. package/src/components/Select/__tests__/__snapshots__/SelectItem.spec.js.snap +15 -0
  259. package/src/components/Select/__tests__/__snapshots__/SelectOption.spec.js.snap +25 -0
  260. package/src/components/Select/__tests__/__snapshots__/SelectPopover.spec.js.snap +8 -0
  261. package/src/components/Select/_select-shared.scss +25 -0
  262. package/src/components/Select/index.vue +459 -0
  263. package/src/components/Select/types.ts +37 -0
  264. package/src/components/SelectSmart/SelectSmart.vue +873 -0
  265. package/src/components/SelectSmart/SelectSmartMultipleHeader.vue +144 -0
  266. package/src/components/SelectSmart/SelectSmartOption.vue +178 -0
  267. package/src/components/SelectSmart/__tests__/SelectSmart.spec.js +527 -0
  268. package/src/components/SelectSmart/__tests__/SelectSmartMultipleHeader.spec.js +86 -0
  269. package/src/components/SelectSmart/__tests__/SelectSmartOption.spec.js +139 -0
  270. package/src/components/SelectSmart/__tests__/__snapshots__/SelectSmartMultipleHeader.spec.js.snap +8 -0
  271. package/src/components/SelectSmart/__tests__/__snapshots__/SelectSmartOption.spec.js.snap +10 -0
  272. package/src/components/SelectTime/index.vue +220 -0
  273. package/src/components/Sidebar/SidebarItem.vue +224 -0
  274. package/src/components/Sidebar/__tests__/SidebarItem.spec.js +105 -0
  275. package/src/components/Sidebar/__tests__/Siderbar.spec.js +92 -0
  276. package/src/components/Sidebar/index.vue +126 -0
  277. package/src/components/Sidebar/propsValidator.js +24 -0
  278. package/src/components/SkeletonLoading/SkeletonLoading.vue +156 -0
  279. package/src/components/SkeletonLoading/__tests__/SkeletonLoading.spec.js +128 -0
  280. package/src/components/SkeletonLoading/skeletonTheme.vue +66 -0
  281. package/src/components/Switch/Switch.vue +185 -0
  282. package/src/components/Switch/__tests__/Switch.spec.js +55 -0
  283. package/src/components/Switch/__tests__/__snapshots__/Switch.spec.js.snap +10 -0
  284. package/src/components/Tab/Tab.vue +203 -0
  285. package/src/components/Tab/__test__/Tab.spec.js +152 -0
  286. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +23 -0
  287. package/src/components/Table/Table.vue +143 -0
  288. package/src/components/Table/TableRow.vue +101 -0
  289. package/src/components/TableNext/TableBodyCell.vue +47 -0
  290. package/src/components/TableNext/TableNext.vue +428 -0
  291. package/src/components/TableNext/TablePagination.vue +98 -0
  292. package/src/components/TableNext/__test__/TableBodyCell.spec.js +65 -0
  293. package/src/components/TableNext/__test__/TableNext.spec.js +197 -0
  294. package/src/components/TableNext/__test__/TablePagination.spec.js +65 -0
  295. package/src/components/TableNext/__test__/__snapshots__/TableNext.spec.js.snap +59 -0
  296. package/src/components/TableNext/__test__/__snapshots__/TablePagination.spec.js.snap +41 -0
  297. package/src/components/TableNext/__test__/validation.unit.test.js +90 -0
  298. package/src/components/TableNext/validation.js +66 -0
  299. package/src/components/TabsExpanded/TabsExpanded.vue +156 -0
  300. package/src/components/TabsExpanded/__tests__/TabsExpanded.spec.js +78 -0
  301. package/src/components/Tag/DefaultTag.vue +87 -0
  302. package/src/components/Tag/Tag.vue +43 -0
  303. package/src/components/Tag/__tests__/DefaultTag.spec.js +51 -0
  304. package/src/components/Tag/__tests__/Tag.spec.js +82 -0
  305. package/src/components/Tag/types.ts +19 -0
  306. package/src/components/TemplatePreview/TemplatePreview.vue +252 -0
  307. package/src/components/TemplatePreview/TemplatePreviewModal.vue +51 -0
  308. package/src/components/TemplatePreview/types.d.ts +16 -0
  309. package/src/components/TextArea/TextArea.vue +138 -0
  310. package/src/components/TextArea/__test__/TextArea.spec.js +218 -0
  311. package/src/components/TextArea/__test__/__snapshots__/TextArea.spec.js.snap +17 -0
  312. package/src/components/Toast/Toast.vue +252 -0
  313. package/src/components/Toast/ToastManager.ts +113 -0
  314. package/src/components/Toast/__tests__/Toast.spec.js +291 -0
  315. package/src/components/Toast/__tests__/ToastManager.spec.js +298 -0
  316. package/src/components/Toast/types.ts +57 -0
  317. package/src/components/ToolTip/ToolTip.vue +99 -0
  318. package/src/components/ToolTip/__tests__/ToolTip.spec.js +451 -0
  319. package/src/components/Tour/Tour.vue +138 -0
  320. package/src/components/Tour/TourMask.vue +135 -0
  321. package/src/components/Tour/TourPopover.vue +236 -0
  322. package/src/components/Tour/propsValidation.js +82 -0
  323. package/src/components/UploadArea/UploadArea.vue +141 -0
  324. package/src/components/__tests__/Icon.spec.js +94 -0
  325. package/src/components/config.js +1 -0
  326. package/src/components/grid/Grid.vue +50 -0
  327. package/src/components/icons/IconCommunity.vue +12 -0
  328. package/src/components/icons/IconDocumentation.vue +12 -0
  329. package/src/components/icons/IconEcosystem.vue +12 -0
  330. package/src/components/icons/IconSupport.vue +12 -0
  331. package/src/components/icons/IconTooling.vue +19 -0
  332. package/src/components/icons/iconArrowsDefault.vue +16 -0
  333. package/src/components/index.ts +468 -0
  334. package/src/components/ui/dialog/Dialog.vue +51 -0
  335. package/src/components/ui/dialog/DialogClose.vue +29 -0
  336. package/src/components/ui/dialog/DialogContent.vue +141 -0
  337. package/src/components/ui/dialog/DialogFooter.vue +46 -0
  338. package/src/components/ui/dialog/DialogHeader.vue +83 -0
  339. package/src/components/ui/dialog/DialogTitle.vue +38 -0
  340. package/src/components/ui/dialog/DialogTrigger.vue +16 -0
  341. package/src/components/ui/dialog/index.ts +7 -0
  342. package/src/components/ui/drawer/Drawer.vue +80 -0
  343. package/src/components/ui/drawer/DrawerClose.vue +31 -0
  344. package/src/components/ui/drawer/DrawerContent.vue +114 -0
  345. package/src/components/ui/drawer/DrawerDescription.vue +40 -0
  346. package/src/components/ui/drawer/DrawerFooter.vue +34 -0
  347. package/src/components/ui/drawer/DrawerHeader.vue +57 -0
  348. package/src/components/ui/drawer/DrawerOverlay.vue +33 -0
  349. package/src/components/ui/drawer/DrawerTitle.vue +37 -0
  350. package/src/components/ui/drawer/DrawerTrigger.vue +31 -0
  351. package/src/components/ui/drawer/index.ts +10 -0
  352. package/src/components/ui/popover/Popover.vue +19 -0
  353. package/src/components/ui/popover/PopoverContent.vue +113 -0
  354. package/src/components/ui/popover/PopoverFooter.vue +47 -0
  355. package/src/components/ui/popover/PopoverOption.vue +130 -0
  356. package/src/components/ui/popover/PopoverTrigger.vue +27 -0
  357. package/src/components/ui/popover/__tests__/PopoverFooter.spec.js +116 -0
  358. package/src/components/ui/popover/context.ts +4 -0
  359. package/src/components/ui/popover/index.ts +6 -0
  360. package/src/components/ui/segmented-control/SegmentedControlList.vue +51 -0
  361. package/src/components/ui/segmented-control/SegmentedControlTrigger.vue +81 -0
  362. package/src/components/ui/segmented-control/index.ts +4 -0
  363. package/src/components/ui/table/Table.vue +29 -0
  364. package/src/components/ui/table/TableBody.vue +14 -0
  365. package/src/components/ui/table/TableCell.vue +28 -0
  366. package/src/components/ui/table/TableHead.vue +27 -0
  367. package/src/components/ui/table/TableHeader.vue +24 -0
  368. package/src/components/ui/table/TableRow.vue +51 -0
  369. package/src/components/ui/table/index.ts +6 -0
  370. package/src/components/ui/tabs/Tabs.vue +19 -0
  371. package/src/components/ui/tabs/TabsContent.vue +22 -0
  372. package/src/components/ui/tabs/TabsList.vue +40 -0
  373. package/src/components/ui/tabs/TabsTrigger.vue +63 -0
  374. package/src/components/ui/tabs/index.ts +4 -0
  375. package/src/components/ui/tooltip/Tooltip.vue +21 -0
  376. package/src/components/ui/tooltip/TooltipContent.vue +84 -0
  377. package/src/components/ui/tooltip/TooltipTrigger.vue +24 -0
  378. package/src/components/ui/tooltip/index.ts +3 -0
  379. package/src/composables/useDelayedUnmount.ts +48 -0
  380. package/src/composables/useSelectBase.ts +119 -0
  381. package/src/composables/useSelectKeyboard.ts +91 -0
  382. package/src/composables/useTheme.ts +67 -0
  383. package/src/index.ts +29 -0
  384. package/src/lib/__tests__/teleport-target.spec.ts +73 -0
  385. package/src/lib/layer-manager.ts +64 -0
  386. package/src/lib/teleport-target.ts +46 -0
  387. package/src/lib/utils.ts +7 -0
  388. package/src/locales/en.json +50 -0
  389. package/src/locales/es.json +50 -0
  390. package/src/locales/pt_br.json +50 -0
  391. package/src/main.ts +9 -0
  392. package/src/mixins/i18n.js +74 -0
  393. package/src/stories/Accordion.stories.js +54 -0
  394. package/src/stories/Alert.stories.js +157 -0
  395. package/src/stories/AudioRecorder.stories.js +52 -0
  396. package/src/stories/AvatarIcon.stories.js +57 -0
  397. package/src/stories/Banner.stories.js +54 -0
  398. package/src/stories/Breadcrumb.stories.js +30 -0
  399. package/src/stories/Button.stories.js +183 -0
  400. package/src/stories/Card.stories.js +154 -0
  401. package/src/stories/CardCompany.stories.js +64 -0
  402. package/src/stories/CardData.stories.js +25 -0
  403. package/src/stories/CardImage.stories.js +58 -0
  404. package/src/stories/CardInformation.stories.js +44 -0
  405. package/src/stories/CardNumber.stories.js +15 -0
  406. package/src/stories/CardProject.stories.js +70 -0
  407. package/src/stories/CardSimple.stories.js +73 -0
  408. package/src/stories/ChartBar.stories.js +123 -0
  409. package/src/stories/ChartFunnel.stories.js +127 -0
  410. package/src/stories/ChartLine.stories.js +55 -0
  411. package/src/stories/ChartMultiLine.stories.js +50 -0
  412. package/src/stories/ChartRainbow.stories.js +18 -0
  413. package/src/stories/ChatsUserAvatar.stories.js +36 -0
  414. package/src/stories/Checkbox.stories.js +79 -0
  415. package/src/stories/CheckboxGroup.stories.js +105 -0
  416. package/src/stories/Chip.stories.js +194 -0
  417. package/src/stories/Collapse.stories.js +81 -0
  418. package/src/stories/Colors.mdx +13 -0
  419. package/src/stories/Colors.stories.js +132 -0
  420. package/src/stories/Comment.stories.js +66 -0
  421. package/src/stories/DataArea.stories.js +78 -0
  422. package/src/stories/DataTable.stories.js +588 -0
  423. package/src/stories/DateFilter.stories.js +18 -0
  424. package/src/stories/DatePicker.stories.js +114 -0
  425. package/src/stories/Dialog.stories.js +851 -0
  426. package/src/stories/Disclaimer.stories.js +93 -0
  427. package/src/stories/Drawer.stories.js +242 -0
  428. package/src/stories/DrawerNext.stories.js +631 -0
  429. package/src/stories/DropArea.mdx +66 -0
  430. package/src/stories/DropArea.stories.js +74 -0
  431. package/src/stories/Dropdown.stories.js +35 -0
  432. package/src/stories/EmojiPicker.stories.js +93 -0
  433. package/src/stories/FormElement.stories.js +35 -0
  434. package/src/stories/Grid.stories.js +19 -0
  435. package/src/stories/Icon.stories.js +144 -0
  436. package/src/stories/IconLoading.stories.js +63 -0
  437. package/src/stories/Iconography.mdx +7 -0
  438. package/src/stories/ImportCard.stories.js +33 -0
  439. package/src/stories/Input.mdx +79 -0
  440. package/src/stories/Input.stories.js +157 -0
  441. package/src/stories/InputDatePicker.stories.js +155 -0
  442. package/src/stories/Label.stories.js +30 -0
  443. package/src/stories/LanguageSelect.stories.js +26 -0
  444. package/src/stories/LayerManager.docs.mdx +40 -0
  445. package/src/stories/LayerManager.stories.js +407 -0
  446. package/src/stories/Modal.stories.js +101 -0
  447. package/src/stories/ModalDialog.mdx +89 -0
  448. package/src/stories/ModalDialog.stories.js +448 -0
  449. package/src/stories/ModalNext.stories.js +191 -0
  450. package/src/stories/MultiSelect.stories.js +169 -0
  451. package/src/stories/Navigator.stories.js +26 -0
  452. package/src/stories/PageHeader.stories.js +364 -0
  453. package/src/stories/Pagination.stories.js +37 -0
  454. package/src/stories/Popover.stories.js +457 -0
  455. package/src/stories/PopoverOption.stories.js +128 -0
  456. package/src/stories/ProgressBar.stories.js +38 -0
  457. package/src/stories/Radio.stories.js +104 -0
  458. package/src/stories/RadioGroup.stories.js +145 -0
  459. package/src/stories/SegmentedControl.stories.js +253 -0
  460. package/src/stories/Select.stories.js +375 -0
  461. package/src/stories/SelectSmart.mdx +152 -0
  462. package/src/stories/SelectSmart.stories.js +594 -0
  463. package/src/stories/SelectTime.stories.js +25 -0
  464. package/src/stories/Sidebar.stories.js +157 -0
  465. package/src/stories/SkeletonLoading.stories.js +28 -0
  466. package/src/stories/Switch.stories.js +46 -0
  467. package/src/stories/Tab.stories.js +56 -0
  468. package/src/stories/Table.stories.js +218 -0
  469. package/src/stories/TableNext.stories.js +176 -0
  470. package/src/stories/Tabs.stories.js +169 -0
  471. package/src/stories/TabsExpanded.stories.js +69 -0
  472. package/src/stories/Tag.stories.js +59 -0
  473. package/src/stories/TemplatePreview.stories.js +94 -0
  474. package/src/stories/TemplatePreviewModal.stories.js +110 -0
  475. package/src/stories/TextArea.mdx +68 -0
  476. package/src/stories/TextArea.stories.js +117 -0
  477. package/src/stories/Toast.mdx +123 -0
  478. package/src/stories/Toast.stories.js +126 -0
  479. package/src/stories/ToolTip.stories.js +71 -0
  480. package/src/stories/Tour.stories.js +216 -0
  481. package/src/stories/Typography.mdx +83 -0
  482. package/src/stories/Typography.stories.js +66 -0
  483. package/src/stories/UploadArea.stories.js +42 -0
  484. package/src/stories/assets/audios/audio-recorder-sample.mp3 +0 -0
  485. package/src/stories/assets/code-brackets.svg +1 -0
  486. package/src/stories/assets/colors.svg +1 -0
  487. package/src/stories/assets/comments.svg +1 -0
  488. package/src/stories/assets/direction.svg +1 -0
  489. package/src/stories/assets/flow.svg +1 -0
  490. package/src/stories/assets/images/un.png +0 -0
  491. package/src/stories/assets/images/unnnic.png +0 -0
  492. package/src/stories/assets/images/unnnicPortrait.png +0 -0
  493. package/src/stories/assets/plugin.svg +1 -0
  494. package/src/stories/assets/repo.svg +1 -0
  495. package/src/stories/assets/stackalt.svg +1 -0
  496. package/src/stories/assets/videos/weni.mp4 +0 -0
  497. package/src/types/index.d.ts +53 -0
  498. package/src/types/scheme-colors.d.ts +209 -0
  499. package/src/types/unnnic-utils.d.ts +88 -0
  500. package/src/types/vue-shims.d.ts +5 -0
  501. package/src/types/vueuse-overrides.d.ts +7 -0
  502. package/src/utils/call.js +81 -0
  503. package/src/utils/colorTokens.js +2 -0
  504. package/src/utils/colorsList.js +89 -0
  505. package/src/utils/emojiList.js +47 -0
  506. package/src/utils/hours.js +100 -0
  507. package/src/utils/iconList.js +108 -0
  508. package/src/utils/icons.js +59 -0
  509. package/src/utils/plugins/i18n.js +20 -0
  510. package/src/utils/sanitize.js +75 -0
  511. /package/{dist → src/assets}/scss/colors-hsl.scss +0 -0
  512. /package/{dist → src/assets}/scss/colors.scss +0 -0
  513. /package/{dist → src/assets}/scss/deprecated/colors.scss +0 -0
  514. /package/{dist → src/assets}/scss/deprecated/fonts.scss +0 -0
  515. /package/{dist → src/assets}/scss/deprecated/grid.scss +0 -0
  516. /package/{dist → src/assets}/scss/deprecated/spacing.scss +0 -0
  517. /package/{dist → src/assets}/scss/fonts.scss +0 -0
  518. /package/{dist → src/assets}/scss/icon-sizes.scss +0 -0
  519. /package/{dist → src/assets}/scss/radii.scss +0 -0
  520. /package/{dist → src/assets}/scss/scheme-colors.scss +0 -0
  521. /package/{dist → src/assets}/scss/semantic-colors.scss +0 -0
  522. /package/{dist → src/assets}/scss/semantic-text-utilities.scss +0 -0
  523. /package/{dist → src/assets}/scss/shadows.scss +0 -0
  524. /package/{dist → src/assets}/scss/spaces.scss +0 -0
  525. /package/{dist → src/assets}/scss/tailwind.scss +0 -0
  526. /package/{dist → src/assets}/scss/theme.scss +0 -0
  527. /package/{dist → src/assets}/scss/unnnic.scss +0 -0
@@ -0,0 +1,123 @@
1
+ import { Meta, Source, Story } from '@storybook/addon-docs/blocks';
2
+
3
+ import * as ToastStories from './Toast.stories';
4
+
5
+ <Meta of={ToastStories} />
6
+
7
+ # Toast
8
+
9
+ The Toast component is used to display temporary notifications in the user interface. It appears in the bottom right corner of the screen with smooth animation and can be closed automatically or manually.
10
+
11
+ <Source
12
+ language="html"
13
+ dark
14
+ code={`
15
+ <UnnnicToast
16
+ title="Success!"
17
+ description="Your action was completed successfully."
18
+ type="success"
19
+ :timeout="5000"
20
+ @close="onClose"
21
+ @destroy="onDestroy"
22
+ />
23
+ `}
24
+ />
25
+
26
+ ---
27
+
28
+ #### **Props Options:**
29
+
30
+ | Key | Description | Values | Default |
31
+ |-------------|------------------------------------------|-------------------------------------------------------------|-----------------|
32
+ | title | **Required.** Toast title | `string` | - |
33
+ | description | Toast descriptive text | `string` | `''` |
34
+ | type | Visual type of the toast | `'informational'` \| `'attention'` \| `'success'` \| `'error'` | `'informational'` |
35
+ | timeout | Time in ms for auto-dismiss (0 = persistent) | `number` | `5000` |
36
+ | button | Optional action button configuration | `{ text: string; action: () => void }` | `undefined` |
37
+
38
+ #### **Events:**
39
+
40
+ | Event | Description |
41
+ |---------|------------------------------------------------|
42
+ | close | Emitted when the toast is closed |
43
+ | destroy | Emitted when the toast is removed from DOM |
44
+
45
+ ---
46
+
47
+ ## Features
48
+
49
+ - **Animations**: Smooth entry and exit transitions
50
+ - **Visual types**: Different variations for different types of messages
51
+ - **Action button**: Optional, for quick actions
52
+ - **Auto-dismiss**: Configurable or persistent
53
+
54
+ ## Usage
55
+
56
+ ### As component
57
+
58
+ <Source
59
+ language="vue"
60
+ dark
61
+ code={`
62
+ <template>
63
+ <UnnnicToast
64
+ title="Success!"
65
+ description="Your action was completed successfully."
66
+ type="success"
67
+ :timeout="5000"
68
+ @close="onToastClose"
69
+ />
70
+ </template>
71
+
72
+ <script setup>
73
+ import { UnnnicToast } from '@weni/unnnic-system';
74
+
75
+ const onToastClose = () => {
76
+ console.log('Toast closed');
77
+ };
78
+ </script>
79
+ `}
80
+ />
81
+
82
+ ### Programmatically
83
+
84
+ The Toast component can be used programmatically through the `toast` utility, which provides a simple API for creating toasts without needing to manage component state.
85
+
86
+ <Source
87
+ language="javascript"
88
+ dark
89
+ code={`
90
+ // Basic usage
91
+ import { toast } from '@weni/unnnic-system';
92
+
93
+ toast.info('Information', 'Here is some useful information');
94
+ `}
95
+ />
96
+
97
+ #### API Reference
98
+
99
+ | Method | Parameters | Description |
100
+ |--------|------------|-------------|
101
+ | `toast.success(title, description?, options?)` | `title: string`<br/>`description?: string`<br/>`options?: ToastOptions` | Creates a success toast |
102
+ | `toast.error(title, description?, options?)` | `title: string`<br/>`description?: string`<br/>`options?: ToastOptions` | Creates an error toast |
103
+ | `toast.attention(title, description?, options?)` | `title: string`<br/>`description?: string`<br/>`options?: ToastOptions` | Creates an attention/warning toast |
104
+ | `toast.info(title, description?, options?)` | `title: string`<br/>`description?: string`<br/>`options?: ToastOptions` | Creates an informational toast |
105
+
106
+ #### ToastOptions Interface
107
+
108
+ ```typescript
109
+ interface ToastOptions {
110
+ timeout?: number; // Auto-dismiss time in ms (0 = persistent)
111
+ button?: { // Optional action button
112
+ text: string;
113
+ action: () => void;
114
+ };
115
+ onClose?: () => void; // Callback when toast is closed
116
+ }
117
+ ```
118
+
119
+ ## Animations
120
+
121
+ - **Entry**: Slide from bottom to top with fade-in
122
+ - **Exit**: Slide from top to bottom with fade-out
123
+ - **Duration**: 300ms with smooth easing
@@ -0,0 +1,126 @@
1
+ import Toast from '../components/Toast/Toast.vue';
2
+ import { action } from 'storybook/actions';
3
+
4
+ export default {
5
+ title: 'Feedback/Toast',
6
+ component: Toast,
7
+ argTypes: {
8
+ title: {
9
+ control: 'text',
10
+ },
11
+ description: {
12
+ control: 'text',
13
+ },
14
+ type: {
15
+ control: 'select',
16
+ options: ['informational', 'attention', 'success', 'error'],
17
+ },
18
+ timeout: {
19
+ control: 'number',
20
+ },
21
+ button: {
22
+ control: 'object',
23
+ },
24
+ },
25
+ render: (args) => ({
26
+ components: { Toast },
27
+ setup() {
28
+ return { args };
29
+ },
30
+ methods: {
31
+ onClose() {
32
+ action('@close')('');
33
+ },
34
+ onDestroy() {
35
+ action('@destroy')('');
36
+ },
37
+ },
38
+ template: `
39
+ <div style="position: relative; height: 50px;">
40
+ <Toast
41
+ v-bind="args"
42
+ @close="onClose"
43
+ @destroy="onDestroy"
44
+ />
45
+ </div>
46
+ `,
47
+ }),
48
+ };
49
+
50
+ export const Informational = {
51
+ args: {
52
+ title: 'Information',
53
+ description: 'This is an informative message for the user.',
54
+ type: 'informational',
55
+ timeout: 5000,
56
+ },
57
+ };
58
+
59
+ export const Attention = {
60
+ args: {
61
+ title: 'Attention',
62
+ description: 'Please verify the data before continuing.',
63
+ type: 'attention',
64
+ timeout: 5000,
65
+ },
66
+ };
67
+
68
+ export const Success = {
69
+ args: {
70
+ title: 'Success!',
71
+ description: 'Your action was completed successfully.',
72
+ type: 'success',
73
+ timeout: 5000,
74
+ },
75
+ };
76
+
77
+ export const Error = {
78
+ args: {
79
+ title: 'Error',
80
+ description: 'An error occurred while processing your request.',
81
+ type: 'error',
82
+ timeout: 5000,
83
+ },
84
+ };
85
+
86
+ export const WithActionButton = {
87
+ args: {
88
+ title: 'New version available',
89
+ description: 'A new version of the system is available for download.',
90
+ type: 'informational',
91
+ timeout: 0,
92
+ button: {
93
+ text: 'Update',
94
+ action: () => {
95
+ alert('Updating...');
96
+ },
97
+ },
98
+ },
99
+ };
100
+
101
+ export const Persistent = {
102
+ args: {
103
+ title: 'Important message',
104
+ description: 'This message will remain visible until manually closed.',
105
+ type: 'attention',
106
+ timeout: 0,
107
+ },
108
+ };
109
+
110
+ export const TitleOnly = {
111
+ args: {
112
+ title: 'Simple message',
113
+ type: 'success',
114
+ timeout: 5000,
115
+ },
116
+ };
117
+
118
+ export const LongText = {
119
+ args: {
120
+ title: 'Document processed',
121
+ description:
122
+ 'The document "Annual_Report_2024_Final_Definitive_Complete_Version.pdf" was processed successfully and is available for download in your workspace.',
123
+ type: 'success',
124
+ timeout: 8000,
125
+ },
126
+ };
@@ -0,0 +1,71 @@
1
+ import { ref } from 'vue';
2
+ import { unnnicFontSize } from '../components/config';
3
+ import unnnicToolTip from '../components/ToolTip/ToolTip.vue';
4
+
5
+ export default {
6
+ title: 'Example/ToolTip',
7
+ component: unnnicToolTip,
8
+ argTypes: {
9
+ text: { control: { type: 'text' } },
10
+ side: {
11
+ control: { type: 'select', options: ['top', 'right', 'bottom', 'left'] },
12
+ },
13
+ maxWidth: { control: { type: 'text' } },
14
+ forceOpen: { control: { type: 'boolean' } },
15
+ enableHtml: { control: { type: 'boolean' } },
16
+ },
17
+ render: (args) => ({
18
+ components: {
19
+ unnnicToolTip,
20
+ },
21
+ setup() {
22
+ return { args };
23
+ },
24
+ template: `
25
+ <unnnic-tool-tip v-bind="args"> Hover over text </unnnic-tool-tip>
26
+ `,
27
+ }),
28
+ };
29
+
30
+ export const Normal = {
31
+ args: {
32
+ text: 'Label',
33
+ enabled: true,
34
+ maxWidth: `${15 * unnnicFontSize}px`,
35
+ side: 'bottom',
36
+ },
37
+ };
38
+
39
+ export const withLink = {
40
+ args: {
41
+ text: 'tooltip with <a href="https://weni.ai/" target="_blank" style="color: white;">weni</a> link',
42
+ enabled: true,
43
+ maxWidth: `${15 * unnnicFontSize}px`,
44
+ side: 'right',
45
+ enableHtml: true,
46
+ },
47
+ };
48
+
49
+ export const withCloseButton = {
50
+ args: {
51
+ text: 'tooltip with close button',
52
+ enabled: true,
53
+ maxWidth: `${15 * unnnicFontSize}px`,
54
+ side: 'right',
55
+ showClose: true,
56
+ },
57
+ render: (args) => ({
58
+ components: {
59
+ unnnicToolTip,
60
+ },
61
+ setup() {
62
+ const open = ref(true);
63
+ return { args, open };
64
+ },
65
+ template: `
66
+ <unnnic-tool-tip v-bind="args" :force-open="open" @click:close="open = false">
67
+ Hover over text
68
+ </unnnic-tool-tip>
69
+ `,
70
+ }),
71
+ };
@@ -0,0 +1,216 @@
1
+ import UnnnicTour from '../components/Tour/Tour.vue';
2
+ import UnnnicCard from '../components/Card/Card.vue';
3
+
4
+ export default {
5
+ title: 'Example/Tour',
6
+ component: UnnnicTour,
7
+ argTypes: {},
8
+ render: (args) => ({
9
+ components: {
10
+ UnnnicTour,
11
+ UnnnicCard,
12
+ },
13
+ setup() {
14
+ return { args };
15
+ },
16
+ data() {
17
+ return {
18
+ attachedElementsLoaded: false,
19
+ };
20
+ },
21
+ methods: {
22
+ startTour() {
23
+ this.$refs.tour.start();
24
+ },
25
+ handleTourStep(step) {
26
+ this.$refs.tour.start();
27
+ this.$refs.tour.handleStep(step);
28
+ },
29
+ },
30
+ mounted() {
31
+ this.$nextTick(() => {
32
+ args.steps[0].attachedElement = this.$refs.step1.$el;
33
+ args.steps[1].attachedElement = this.$refs.step2.$el;
34
+ args.steps[2].attachedElement = this.$refs.step3.$el;
35
+ args.steps[3].attachedElement = this.$refs.step4.$el;
36
+ this.attachedElementsLoaded = true;
37
+ });
38
+ },
39
+ template: `
40
+ <div style="height: 50%; width: 30%; border: 1px solid #ccc; padding: 16px; margin: auto">
41
+ <button @click="startTour">Start tour</button>
42
+ <button @click="handleTourStep(3)">Go to step 3</button>
43
+ <UnnnicCard
44
+ type="default"
45
+ title="This is the title"
46
+ description="This is the description"
47
+ ref="step1"
48
+ />
49
+ <UnnnicCard
50
+ type="default"
51
+ title="This is the title"
52
+ description="This is the description"
53
+ ref="step2"
54
+ />
55
+ <UnnnicCard
56
+ type="default"
57
+ title="This is the title"
58
+ description="This is the description"
59
+ ref="step3"
60
+ />
61
+ <UnnnicCard
62
+ type="default"
63
+ title="This is the title"
64
+ description="This is the description"
65
+ ref="step4"
66
+ />
67
+ <unnnic-tour v-if="attachedElementsLoaded" v-bind="args" ref="tour" />
68
+ </div>
69
+ `,
70
+ }),
71
+ };
72
+
73
+ export const Default = {
74
+ args: {
75
+ steps: [
76
+ {
77
+ title: 'Step 1',
78
+ description:
79
+ '<b>Lorem ipsum</b> dolor sit amet, consectetur adipiscing elit. Donec dapibus euismod nibh vel elementum. Integer nisi lectus, hendrerit aliquet tellus nec, volutpat porttitor erat. Vivamus tincidunt sit amet ex non. ',
80
+ attachedElement: null,
81
+ popoverPosition: 'right',
82
+ },
83
+ {
84
+ title: 'Step 2',
85
+ description:
86
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec luctus dui orci. ',
87
+ attachedElement: null,
88
+ popoverPosition: 'bottom',
89
+ },
90
+ {
91
+ title: 'Step 3',
92
+ description:
93
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed condimentum accumsan erat, at bibendum nisi mollis et. Aliquam venenatis tristique.',
94
+ attachedElement: null,
95
+ popoverPosition: 'left',
96
+ },
97
+ {
98
+ title: 'Step 4',
99
+ description:
100
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris ex purus, ullamcorper sed nunc eu. ',
101
+ attachedElement: null,
102
+ popoverPosition: 'top',
103
+ },
104
+ ],
105
+ },
106
+ };
107
+
108
+ export const WithPadding = {
109
+ args: {
110
+ steps: [
111
+ {
112
+ title: 'Step 1',
113
+ description:
114
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus euismod nibh vel elementum. Integer nisi lectus, hendrerit aliquet tellus nec, volutpat porttitor erat. Vivamus tincidunt sit amet ex non. ',
115
+ attachedElement: null,
116
+ popoverPosition: 'right',
117
+ padding: {
118
+ vertical: 20,
119
+ horizontal: 20,
120
+ },
121
+ },
122
+ ],
123
+ },
124
+ render: (args) => ({
125
+ components: {
126
+ UnnnicTour,
127
+ UnnnicCard,
128
+ },
129
+ setup() {
130
+ return { args };
131
+ },
132
+ data() {
133
+ return {
134
+ attachedElementsLoaded: false,
135
+ };
136
+ },
137
+ methods: {
138
+ startTour() {
139
+ this.$refs.tour.start();
140
+ },
141
+ },
142
+ mounted() {
143
+ this.$nextTick(() => {
144
+ args.steps[0].attachedElement = this.$refs.step1.$el;
145
+ this.attachedElementsLoaded = true;
146
+ });
147
+ },
148
+ template: `
149
+ <div style="height: 50%; width: 30%; border: 1px solid #ccc; padding: 16px; margin: auto">
150
+ <button @click="startTour">Start tour</button>
151
+ <UnnnicCard
152
+ type="default"
153
+ title="This is the title"
154
+ description="This is the description"
155
+ ref="step1"
156
+ />
157
+ <unnnic-tour v-if="attachedElementsLoaded" v-bind="args" ref="tour" />
158
+ </div>
159
+ `,
160
+ }),
161
+ };
162
+
163
+ export const WithNegativePadding = {
164
+ args: {
165
+ steps: [
166
+ {
167
+ title: 'Step 1',
168
+ description:
169
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus euismod nibh vel elementum. Integer nisi lectus, hendrerit aliquet tellus nec, volutpat porttitor erat. Vivamus tincidunt sit amet ex non. ',
170
+ attachedElement: null,
171
+ popoverPosition: 'right',
172
+ padding: {
173
+ vertical: -30,
174
+ horizontal: -10,
175
+ },
176
+ },
177
+ ],
178
+ },
179
+ render: (args) => ({
180
+ components: {
181
+ UnnnicTour,
182
+ UnnnicCard,
183
+ },
184
+ setup() {
185
+ return { args };
186
+ },
187
+ data() {
188
+ return {
189
+ attachedElementsLoaded: false,
190
+ };
191
+ },
192
+ methods: {
193
+ startTour() {
194
+ this.$refs.tour.start();
195
+ },
196
+ },
197
+ mounted() {
198
+ this.$nextTick(() => {
199
+ args.steps[0].attachedElement = this.$refs.step1.$el;
200
+ this.attachedElementsLoaded = true;
201
+ });
202
+ },
203
+ template: `
204
+ <div style="height: 50%; width: 30%; border: 1px solid #ccc; padding: 16px; margin: auto">
205
+ <button @click="startTour">Start tour</button>
206
+ <UnnnicCard
207
+ type="default"
208
+ title="This is the title"
209
+ description="This is the description"
210
+ ref="step1"
211
+ />
212
+ <unnnic-tour v-if="attachedElementsLoaded" v-bind="args" ref="tour" />
213
+ </div>
214
+ `,
215
+ }),
216
+ };
@@ -0,0 +1,83 @@
1
+ import { Meta, Title, Story } from '@storybook/addon-docs/blocks';
2
+ import * as TypographyStories from './Typography.stories.js';
3
+
4
+ <Meta title="Typography" />
5
+
6
+ <Title>Typography</Title>
7
+
8
+ Typography follows the scale defined in the design system.
9
+
10
+ **Design reference:** [Figma (Typography)](https://www.figma.com/design/YbvOpVPUBxTSEzg4J8pXKu/Weni---unnnic?node-id=404-210&m=dev)
11
+
12
+ **Font:** Inter · **Weights:** 400 (Regular), 500 (Medium), 600 (Semibold)
13
+
14
+ _Inter_ uses **letter-spacing** adjustments for legibility. **Prefer the typography mixins** so font and letter-spacing are always applied together; the variables remain available when you need them separately.
15
+
16
+ ---
17
+
18
+ ## Display
19
+
20
+ Headings and large titles. Use for page titles and section headers.
21
+
22
+ | Style | Mixin | Size | Weight | Line height | Letter spacing |
23
+ |-----------|----------------------------------|-------|----------|-------------|----------------|
24
+ | Display 1 | `@include unnnic-font-display-1` | 24px | Semibold | 1.4 | -4% |
25
+ | Display 2 | `@include unnnic-font-display-2` | 20px | Semibold | 1.4 | -4% |
26
+ | Display 3 | `@include unnnic-font-display-3` | 16px | Semibold | 1.4 | -2% |
27
+ | Display 4 | `@include unnnic-font-display-4` | 16px | Regular | 1.4 | -2% |
28
+
29
+ <Story of={TypographyStories.Display} />
30
+
31
+
32
+ ---
33
+
34
+ ## Body
35
+
36
+ Default text and emphasized content. Use for paragraphs, labels, and UI copy.
37
+
38
+ | Style | Mixin | Size | Weight | Line height | Letter spacing |
39
+ |---------|---------------------------------|------|----------|-------------|----------------|
40
+ | Body | `@include unnnic-font-body` | 14px | Regular | 1.4 | -1% |
41
+ | Emphasis| `@include unnnic-font-emphasis` | 14px | Medium | 1.4 | -1% |
42
+ | Action | `@include unnnic-font-action` | 14px | Semibold | 1.4 | -1% |
43
+
44
+ <Story of={TypographyStories.Body} />
45
+
46
+ ---
47
+
48
+ ## Caption
49
+
50
+ Small text for captions, tags, and secondary information.
51
+
52
+ | Style | Mixin | Size | Weight | Line height | Letter spacing |
53
+ |-----------|----------------------------------|------|----------|-------------|----------------|
54
+ | Caption 1 | `@include unnnic-font-caption-1` | 12px | Medium | 1.4 | 0 |
55
+ | Caption 2 | `@include unnnic-font-caption-2` | 12px | Regular | 1.4 | 0 |
56
+
57
+ <Story of={TypographyStories.Caption} />
58
+
59
+ ---
60
+
61
+ ## Usage
62
+
63
+ **Recommended:** use the typography mixins so font and letter-spacing are always applied together.
64
+
65
+ **When the project injects unnnic via sass-loader** (e.g. rspack/webpack/vite with `additionalData: "@use '@weni/unnnic-system/src/assets/scss/unnnic.scss' as *;"`), the mixins are available in every SCSS file and Vue `<style lang="scss">` without adding `@use` in each file:
66
+
67
+ ```scss
68
+ .my-heading {
69
+ @include unnnic-font-display-1;
70
+ }
71
+ ```
72
+
73
+ **When unnnic is not globally injected**, add the `@use` once at the top of the file:
74
+
75
+ ```scss
76
+ @use '@weni/unnnic-system/src/assets/scss/unnnic.scss' as *;
77
+
78
+ .my-heading {
79
+ @include unnnic-font-display-1;
80
+ }
81
+ ```
82
+
83
+ If you need only the `font` or `letter-spacing` value (e.g. for overrides or calculations), use the variables: `$unnnic-font-display-1`, `$unnnic-font-letter-spacing-display-1`, etc.
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Typography stories. Display, Display4, Body, etc. use tags: ['!dev']
3
+ * so they only appear in Typography.mdx via <Story of={...} />, not in the sidebar.
4
+ */
5
+ export default {
6
+ title: 'Typography',
7
+ args: {
8
+ fontFamily: 'Inter, sans-serif',
9
+ },
10
+ render: (args) => ({
11
+ setup() {
12
+ return { args };
13
+ },
14
+ template: `
15
+ <div style="display: flex; flex-direction: column; gap: 0.5rem; border: 1px solid #D6D9E1; border-radius: 8px; padding: 1rem;">
16
+ <p
17
+ v-for="(size, i) in (Array.isArray(args.fontSizes) ? args.fontSizes : [args.fontSizes])"
18
+ :key="i"
19
+ :style="{
20
+ fontSize: size + 'px',
21
+ fontWeight: args.fontWeights[i],
22
+ fontFamily: args.fontFamily,
23
+ lineHeight: 1.4,
24
+ letterSpacing: args.letterSpacing[i],
25
+
26
+ margin: 0,
27
+ }"
28
+ >
29
+ {{ args.fontsIds[i] }} | The quick brown fox jumps over the lazy dog
30
+ </p>
31
+ </div>
32
+ `,
33
+ }),
34
+ };
35
+
36
+ const docsOnlyTag = ['!dev'];
37
+
38
+ export const Display = {
39
+ tags: docsOnlyTag,
40
+ args: {
41
+ fontSizes: [24, 20, 16, 16],
42
+ fontWeights: ['600', '600', '600', '400'],
43
+ fontsIds: ['Display 1', 'Display 2', 'Display 3', 'Display 4'],
44
+ letterSpacing: ['-4%', '-4%', '-2%', '-2%'],
45
+ },
46
+ };
47
+
48
+ export const Body = {
49
+ tags: docsOnlyTag,
50
+ args: {
51
+ fontSizes: [14, 14, 14],
52
+ fontWeights: ['400', '500', '600'],
53
+ fontsIds: ['Body', 'Emphasis', 'Action'],
54
+ letterSpacing: ['-1%', '-1%', '-1%'],
55
+ },
56
+ };
57
+
58
+ export const Caption = {
59
+ tags: docsOnlyTag,
60
+ args: {
61
+ fontSizes: [12, 12],
62
+ fontWeights: ['500', '400'],
63
+ letterSpacing: ['0', '0'],
64
+ fontsIds: ['Caption 1', 'Caption 2'],
65
+ },
66
+ };