mblabs-roccato-frontend-commons 0.2.24 → 0.2.26

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 (540) hide show
  1. package/README.md +241 -241
  2. package/dist/mblabs-roccato-frontend-commons.css +1 -1
  3. package/dist/mblabs-roccato-frontend-commons.js +3 -0
  4. package/package.json +157 -157
  5. package/src/components/atoms/AudioPlayer/audio-player.stories.tsx +36 -36
  6. package/src/components/atoms/AudioPlayer/audio-player.test.tsx +19 -19
  7. package/src/components/atoms/AudioPlayer/audio-player.tsx +13 -13
  8. package/src/components/atoms/AudioPlayer/index.ts +1 -1
  9. package/src/components/atoms/Badge/badge.stories.tsx +80 -80
  10. package/src/components/atoms/Badge/badge.test.tsx +59 -59
  11. package/src/components/atoms/Badge/badge.tsx +47 -47
  12. package/src/components/atoms/Badge/index.ts +1 -1
  13. package/src/components/atoms/Box/box.stories.tsx +37 -37
  14. package/src/components/atoms/Box/box.test.tsx +47 -47
  15. package/src/components/atoms/Box/box.tsx +7 -7
  16. package/src/components/atoms/Box/index.ts +1 -1
  17. package/src/components/atoms/Button/button.stories.tsx +108 -108
  18. package/src/components/atoms/Button/button.test.tsx +54 -54
  19. package/src/components/atoms/Button/button.tsx +96 -96
  20. package/src/components/atoms/Button/index.ts +1 -1
  21. package/src/components/atoms/ButtonUpload/button-upload.stories.tsx +137 -137
  22. package/src/components/atoms/ButtonUpload/button-upload.tsx +303 -303
  23. package/src/components/atoms/Calendar/calendar.stories.tsx +65 -65
  24. package/src/components/atoms/Calendar/calendar.test.tsx +93 -95
  25. package/src/components/atoms/Calendar/calendar.tsx +185 -185
  26. package/src/components/atoms/Calendar/index.ts +1 -1
  27. package/src/components/atoms/CheckIcon/check-icon.stories.tsx +38 -38
  28. package/src/components/atoms/CheckIcon/check-icon.test.tsx +269 -269
  29. package/src/components/atoms/CheckIcon/check-icon.tsx +140 -140
  30. package/src/components/atoms/Checkbox/checkbox.stories.tsx +133 -133
  31. package/src/components/atoms/Checkbox/checkbox.test.tsx +70 -70
  32. package/src/components/atoms/Checkbox/checkbox.tsx +31 -31
  33. package/src/components/atoms/Checkbox/index.ts +1 -1
  34. package/src/components/atoms/Flex/flex.stories.tsx +33 -33
  35. package/src/components/atoms/Flex/flex.test.tsx +47 -47
  36. package/src/components/atoms/Flex/flex.tsx +7 -7
  37. package/src/components/atoms/Flex/index.ts +1 -1
  38. package/src/components/atoms/Grid/grid.stories.tsx +33 -33
  39. package/src/components/atoms/Grid/grid.test.tsx +47 -47
  40. package/src/components/atoms/Grid/grid.tsx +7 -7
  41. package/src/components/atoms/Grid/index.ts +1 -1
  42. package/src/components/atoms/Icon/icon.stories.tsx +169 -169
  43. package/src/components/atoms/Icon/icon.test.tsx +272 -272
  44. package/src/components/atoms/Icon/icon.tsx +119 -119
  45. package/src/components/atoms/Input/index.ts +1 -1
  46. package/src/components/atoms/Input/input.stories.tsx +704 -704
  47. package/src/components/atoms/Input/input.test.tsx +99 -99
  48. package/src/components/atoms/Input/input.tsx +170 -170
  49. package/src/components/atoms/InputMoney/index.ts +2 -2
  50. package/src/components/atoms/InputMoney/input-money.stories.tsx +240 -240
  51. package/src/components/atoms/InputMoney/input-money.test.tsx +98 -98
  52. package/src/components/atoms/InputMoney/input-money.tsx +254 -254
  53. package/src/components/atoms/InputPhone/index.ts +1 -1
  54. package/src/components/atoms/InputPhone/input-phone.stories.tsx +446 -446
  55. package/src/components/atoms/InputPhone/input-phone.test.tsx +147 -147
  56. package/src/components/atoms/InputPhone/input-phone.tsx +267 -267
  57. package/src/components/atoms/InputSearch/index.ts +1 -1
  58. package/src/components/atoms/InputSearch/input-search.stories.tsx +359 -359
  59. package/src/components/atoms/InputSearch/input-search.test.tsx +238 -238
  60. package/src/components/atoms/InputSearch/input-search.tsx +209 -209
  61. package/src/components/atoms/InputUpload/index.ts +1 -1
  62. package/src/components/atoms/InputUpload/input-upload.stories.tsx +229 -229
  63. package/src/components/atoms/InputUpload/input-upload.test.tsx +555 -555
  64. package/src/components/atoms/InputUpload/input-upload.tsx +433 -433
  65. package/src/components/atoms/InputWithButton/index.ts +2 -2
  66. package/src/components/atoms/InputWithButton/input-with-button.stories.tsx +510 -510
  67. package/src/components/atoms/InputWithButton/input-with-button.test.tsx +127 -127
  68. package/src/components/atoms/InputWithButton/input-with-button.tsx +179 -179
  69. package/src/components/atoms/Label/index.ts +1 -1
  70. package/src/components/atoms/Label/label.stories.tsx +90 -90
  71. package/src/components/atoms/Label/label.test.tsx +59 -59
  72. package/src/components/atoms/Label/label.tsx +43 -43
  73. package/src/components/atoms/Progress/index.ts +1 -1
  74. package/src/components/atoms/Progress/progress.stories.tsx +30 -30
  75. package/src/components/atoms/Progress/progress.test.tsx +62 -62
  76. package/src/components/atoms/Progress/progress.tsx +32 -32
  77. package/src/components/atoms/RenderCondition/index.ts +1 -1
  78. package/src/components/atoms/RenderCondition/render-condition.stories.tsx +28 -28
  79. package/src/components/atoms/RenderCondition/render-condition.test.tsx +27 -27
  80. package/src/components/atoms/RenderCondition/render-condition.tsx +9 -9
  81. package/src/components/atoms/RichTextEditor/rich-text-editor.stories.tsx +236 -236
  82. package/src/components/atoms/RichTextEditor/rich-text-editor.test.tsx +441 -441
  83. package/src/components/atoms/RichTextEditor/rich-text-editor.tsx +230 -230
  84. package/src/components/atoms/RichTextRenderer/rich-text-renderer.stories.tsx +84 -84
  85. package/src/components/atoms/RichTextRenderer/rich-text-renderer.test.tsx +49 -49
  86. package/src/components/atoms/RichTextRenderer/rich-text-renderer.tsx +17 -17
  87. package/src/components/atoms/Separator/index.ts +1 -1
  88. package/src/components/atoms/Separator/separator.stories.tsx +117 -117
  89. package/src/components/atoms/Separator/separator.test.tsx +50 -50
  90. package/src/components/atoms/Separator/separator.tsx +28 -28
  91. package/src/components/atoms/Skeleton/index.ts +1 -1
  92. package/src/components/atoms/Skeleton/skeleton.stories.tsx +84 -84
  93. package/src/components/atoms/Skeleton/skeleton.test.tsx +39 -39
  94. package/src/components/atoms/Skeleton/skeleton.tsx +14 -14
  95. package/src/components/atoms/Slider/index.ts +1 -1
  96. package/src/components/atoms/Slider/slider.stories.tsx +28 -28
  97. package/src/components/atoms/Slider/slider.test.tsx +89 -89
  98. package/src/components/atoms/Slider/slider.tsx +54 -54
  99. package/src/components/atoms/Sonner/index.ts +1 -1
  100. package/src/components/atoms/Sonner/sonner.css +39 -39
  101. package/src/components/atoms/Sonner/sonner.stories.tsx +260 -260
  102. package/src/components/atoms/Sonner/sonner.test.tsx +24 -24
  103. package/src/components/atoms/Sonner/sonner.tsx +13 -13
  104. package/src/components/atoms/Switch/index.ts +1 -1
  105. package/src/components/atoms/Switch/switch.stories.tsx +128 -128
  106. package/src/components/atoms/Switch/switch.test.tsx +70 -70
  107. package/src/components/atoms/Switch/switch.tsx +61 -61
  108. package/src/components/atoms/Textarea/index.ts +1 -1
  109. package/src/components/atoms/Textarea/textarea.stories.tsx +169 -169
  110. package/src/components/atoms/Textarea/textarea.test.tsx +56 -56
  111. package/src/components/atoms/Textarea/textarea.tsx +26 -26
  112. package/src/components/atoms/Toggle/index.ts +1 -1
  113. package/src/components/atoms/Toggle/toggle.stories.tsx +170 -170
  114. package/src/components/atoms/Toggle/toggle.test.tsx +62 -62
  115. package/src/components/atoms/Toggle/toggle.tsx +47 -47
  116. package/src/components/atoms/Typography/index.ts +1 -1
  117. package/src/components/atoms/Typography/typography.stories.tsx +95 -95
  118. package/src/components/atoms/Typography/typography.test.tsx +66 -66
  119. package/src/components/atoms/Typography/typography.tsx +63 -63
  120. package/src/components/atoms/UploadImageField/upload-image-field.stories.tsx +249 -249
  121. package/src/components/atoms/UploadImageField/upload-image-field.test.tsx +347 -347
  122. package/src/components/atoms/UploadImageField/upload-image-field.tsx +361 -361
  123. package/src/components/atoms/VideoPlayer/index.ts +1 -1
  124. package/src/components/atoms/VideoPlayer/video-player.stories.tsx +37 -37
  125. package/src/components/atoms/VideoPlayer/video-player.test.tsx +19 -19
  126. package/src/components/atoms/VideoPlayer/video-player.tsx +26 -26
  127. package/src/components/atoms/index.ts +32 -32
  128. package/src/components/icons/alert-circle.tsx +22 -22
  129. package/src/components/icons/align-center.tsx +21 -21
  130. package/src/components/icons/align-left.tsx +21 -21
  131. package/src/components/icons/annotation-dots.tsx +16 -16
  132. package/src/components/icons/annotation-question.tsx +14 -14
  133. package/src/components/icons/annotation.tsx +22 -22
  134. package/src/components/icons/announcement-01.tsx +14 -14
  135. package/src/components/icons/announcement-02.tsx +14 -14
  136. package/src/components/icons/apple-logo.tsx +8 -8
  137. package/src/components/icons/arrow-circle-broken-right.tsx +16 -16
  138. package/src/components/icons/arrow-down.tsx +8 -8
  139. package/src/components/icons/arrow-up.tsx +8 -8
  140. package/src/components/icons/at-sign.tsx +21 -21
  141. package/src/components/icons/award-01.tsx +15 -15
  142. package/src/components/icons/award-03.tsx +16 -16
  143. package/src/components/icons/bank-note-01.tsx +14 -14
  144. package/src/components/icons/bar-chart-square-02.tsx +8 -8
  145. package/src/components/icons/bell-01.tsx +8 -8
  146. package/src/components/icons/bell-04.tsx +16 -16
  147. package/src/components/icons/bold-01.tsx +21 -21
  148. package/src/components/icons/book-open-01.tsx +14 -14
  149. package/src/components/icons/brackets-ellipses.tsx +21 -21
  150. package/src/components/icons/briefcase-01.tsx +8 -8
  151. package/src/components/icons/brush-01.tsx +21 -21
  152. package/src/components/icons/building-02.tsx +8 -8
  153. package/src/components/icons/building-06.tsx +9 -9
  154. package/src/components/icons/calendar-check-01.tsx +22 -22
  155. package/src/components/icons/calendar-minus-02.tsx +14 -14
  156. package/src/components/icons/calendar.tsx +8 -8
  157. package/src/components/icons/certificate-01.tsx +16 -16
  158. package/src/components/icons/chart-breakout-square.tsx +16 -16
  159. package/src/components/icons/check-circle-02.tsx +15 -15
  160. package/src/components/icons/check-circle.tsx +15 -15
  161. package/src/components/icons/check.tsx +21 -21
  162. package/src/components/icons/chevron-down-double.tsx +16 -16
  163. package/src/components/icons/chevron-down.tsx +8 -8
  164. package/src/components/icons/chevron-left-double.tsx +22 -22
  165. package/src/components/icons/chevron-left.tsx +16 -16
  166. package/src/components/icons/chevron-right-double.tsx +22 -22
  167. package/src/components/icons/chevron-right.tsx +16 -16
  168. package/src/components/icons/chevron-up-double.tsx +16 -16
  169. package/src/components/icons/clock-rewind.tsx +15 -15
  170. package/src/components/icons/clock-stopwatch.tsx +14 -14
  171. package/src/components/icons/coins-hand.tsx +14 -14
  172. package/src/components/icons/coins-stacked-01.tsx +14 -14
  173. package/src/components/icons/coins-stacked-02.tsx +14 -14
  174. package/src/components/icons/container.tsx +8 -8
  175. package/src/components/icons/copy-02.tsx +16 -16
  176. package/src/components/icons/copy-04.tsx +21 -21
  177. package/src/components/icons/corner-down-right.tsx +9 -9
  178. package/src/components/icons/countries/br.tsx +19 -19
  179. package/src/components/icons/countries/es.tsx +18 -18
  180. package/src/components/icons/countries/index.ts +2 -2
  181. package/src/components/icons/countries/us.tsx +20 -20
  182. package/src/components/icons/dataflow-03.tsx +14 -14
  183. package/src/components/icons/dotpoints-01.tsx +21 -21
  184. package/src/components/icons/dots-vertical.tsx +35 -35
  185. package/src/components/icons/download-03.tsx +16 -16
  186. package/src/components/icons/download-cloud-02.tsx +14 -14
  187. package/src/components/icons/drag.tsx +14 -14
  188. package/src/components/icons/dropper.tsx +21 -21
  189. package/src/components/icons/edit-01.tsx +15 -15
  190. package/src/components/icons/edit-02.tsx +8 -8
  191. package/src/components/icons/edit-03.tsx +23 -23
  192. package/src/components/icons/eye.tsx +21 -21
  193. package/src/components/icons/face-frown.tsx +14 -14
  194. package/src/components/icons/face-happy.tsx +14 -14
  195. package/src/components/icons/file-06.tsx +14 -14
  196. package/src/components/icons/file-attachment-04.tsx +14 -14
  197. package/src/components/icons/file-download-02.tsx +15 -15
  198. package/src/components/icons/file-plus-02.tsx +15 -15
  199. package/src/components/icons/file-search-01.tsx +22 -22
  200. package/src/components/icons/file-search-03.tsx +14 -14
  201. package/src/components/icons/filter-lines.tsx +21 -21
  202. package/src/components/icons/first-category.tsx +15 -15
  203. package/src/components/icons/first-stage.tsx +19 -19
  204. package/src/components/icons/folder.tsx +14 -14
  205. package/src/components/icons/google.tsx +12 -12
  206. package/src/components/icons/graduation-hat-02.tsx +14 -14
  207. package/src/components/icons/grid-01.tsx +35 -35
  208. package/src/components/icons/help-circle.tsx +15 -15
  209. package/src/components/icons/help-square.tsx +16 -16
  210. package/src/components/icons/home-line.tsx +21 -21
  211. package/src/components/icons/icons.stories.tsx +198 -198
  212. package/src/components/icons/index.ts +141 -141
  213. package/src/components/icons/info-circle.tsx +14 -14
  214. package/src/components/icons/italic-01.tsx +21 -21
  215. package/src/components/icons/last-category.tsx +10 -10
  216. package/src/components/icons/last-stage.tsx +19 -19
  217. package/src/components/icons/layout-alt-04.tsx +9 -9
  218. package/src/components/icons/lightbulb-02.tsx +16 -16
  219. package/src/components/icons/link-01.tsx +15 -15
  220. package/src/components/icons/link-broken-01.tsx +16 -16
  221. package/src/components/icons/linkedin-logo.tsx +16 -16
  222. package/src/components/icons/lock-01.tsx +21 -21
  223. package/src/components/icons/log-out-01.tsx +8 -8
  224. package/src/components/icons/mail-01.tsx +15 -15
  225. package/src/components/icons/marker-pin-02.tsx +9 -9
  226. package/src/components/icons/menu-01.tsx +8 -8
  227. package/src/components/icons/middle-category.tsx +9 -9
  228. package/src/components/icons/middle-stage.tsx +19 -19
  229. package/src/components/icons/ms-outlook.tsx +47 -47
  230. package/src/components/icons/paragraph-spacing.tsx +14 -14
  231. package/src/components/icons/phone-01.tsx +21 -21
  232. package/src/components/icons/pie-chart-02.tsx +21 -21
  233. package/src/components/icons/plus-circle.tsx +15 -15
  234. package/src/components/icons/portal-logo.tsx +76 -76
  235. package/src/components/icons/presentation-chart-02.tsx +13 -13
  236. package/src/components/icons/route.tsx +22 -22
  237. package/src/components/icons/save-01.tsx +14 -14
  238. package/src/components/icons/search-lg.tsx +14 -14
  239. package/src/components/icons/search-sm.tsx +8 -8
  240. package/src/components/icons/send-03.tsx +14 -14
  241. package/src/components/icons/settings-01.tsx +16 -16
  242. package/src/components/icons/settings-03.tsx +13 -13
  243. package/src/components/icons/share-05.tsx +15 -15
  244. package/src/components/icons/share-06.tsx +14 -14
  245. package/src/components/icons/slash-circle-01.tsx +8 -8
  246. package/src/components/icons/star-01.tsx +8 -8
  247. package/src/components/icons/step-icon-active.tsx +10 -10
  248. package/src/components/icons/step-icon-checked.tsx +9 -9
  249. package/src/components/icons/step-icon-default.tsx +10 -10
  250. package/src/components/icons/switch-horizontal-01.tsx +9 -9
  251. package/src/components/icons/table-01.tsx +14 -14
  252. package/src/components/icons/tag-01.tsx +14 -14
  253. package/src/components/icons/tag-03.tsx +14 -14
  254. package/src/components/icons/tool-02.tsx +13 -13
  255. package/src/components/icons/trash-01.tsx +15 -15
  256. package/src/components/icons/underline-01.tsx +21 -21
  257. package/src/components/icons/upload-cloud-02.tsx +14 -14
  258. package/src/components/icons/user-01.tsx +8 -8
  259. package/src/components/icons/user-03.tsx +9 -9
  260. package/src/components/icons/user-check-01.tsx +13 -13
  261. package/src/components/icons/user-circle.tsx +13 -13
  262. package/src/components/icons/user-edit.tsx +16 -16
  263. package/src/components/icons/user-minus-02.tsx +14 -14
  264. package/src/components/icons/user-plus-01.tsx +22 -22
  265. package/src/components/icons/user-plus-02.tsx +14 -14
  266. package/src/components/icons/user-square.tsx +16 -16
  267. package/src/components/icons/users-01.tsx +13 -13
  268. package/src/components/icons/users-plus-01.tsx +21 -21
  269. package/src/components/icons/users-plus.tsx +16 -16
  270. package/src/components/icons/vertical-drag.tsx +21 -21
  271. package/src/components/icons/x-circle.tsx +14 -14
  272. package/src/components/icons/x-close.tsx +8 -8
  273. package/src/components/icons/zap-fast.tsx +16 -16
  274. package/src/components/icons/zap.tsx +8 -8
  275. package/src/components/index.ts +4 -4
  276. package/src/components/molecules/Accordion/accordion.stories.tsx +81 -81
  277. package/src/components/molecules/Accordion/accordion.test.tsx +91 -91
  278. package/src/components/molecules/Accordion/accordion.tsx +65 -65
  279. package/src/components/molecules/Accordion/index.ts +1 -1
  280. package/src/components/molecules/Alert/alert.stories.tsx +75 -75
  281. package/src/components/molecules/Alert/alert.test.tsx +58 -58
  282. package/src/components/molecules/Alert/alert.tsx +67 -67
  283. package/src/components/molecules/Alert/index.ts +1 -1
  284. package/src/components/molecules/AlertDialog/alert-dialog.stories.tsx +55 -55
  285. package/src/components/molecules/AlertDialog/alert-dialog.test.tsx +34 -34
  286. package/src/components/molecules/AlertDialog/alert-dialog.tsx +172 -172
  287. package/src/components/molecules/AlertDialog/index.ts +1 -1
  288. package/src/components/molecules/Avatar/avatar.stories.tsx +98 -98
  289. package/src/components/molecules/Avatar/avatar.test.tsx +55 -55
  290. package/src/components/molecules/Avatar/avatar.tsx +55 -55
  291. package/src/components/molecules/Avatar/index.ts +1 -1
  292. package/src/components/molecules/Breadcrumb/breadcrumb.stories.tsx +125 -125
  293. package/src/components/molecules/Breadcrumb/breadcrumb.test.tsx +118 -118
  294. package/src/components/molecules/Breadcrumb/breadcrumb.tsx +120 -120
  295. package/src/components/molecules/Breadcrumb/index.ts +1 -1
  296. package/src/components/molecules/Card/card.stories.tsx +109 -109
  297. package/src/components/molecules/Card/card.test.tsx +103 -103
  298. package/src/components/molecules/Card/card.tsx +78 -78
  299. package/src/components/molecules/Card/index.ts +1 -1
  300. package/src/components/molecules/Collapsible/collapsible.stories.tsx +27 -27
  301. package/src/components/molecules/Collapsible/collapsible.test.tsx +35 -35
  302. package/src/components/molecules/Collapsible/collapsible.tsx +31 -31
  303. package/src/components/molecules/Collapsible/index.ts +1 -1
  304. package/src/components/molecules/ColorPicker/color-picker.stories.tsx +40 -40
  305. package/src/components/molecules/ColorPicker/color-picker.tsx +106 -106
  306. package/src/components/molecules/ColorPicker/index.ts +1 -1
  307. package/src/components/molecules/ColorScale/color-scale.stories.tsx +31 -31
  308. package/src/components/molecules/ColorScale/color-scale.tsx +74 -74
  309. package/src/components/molecules/ColorScale/index.ts +1 -1
  310. package/src/components/molecules/Command/command.stories.tsx +70 -70
  311. package/src/components/molecules/Command/command.test.tsx +49 -49
  312. package/src/components/molecules/Command/command.tsx +177 -177
  313. package/src/components/molecules/Command/index.ts +1 -1
  314. package/src/components/molecules/ContextMenu/context-menu.stories.tsx +68 -68
  315. package/src/components/molecules/ContextMenu/context-menu.test.tsx +24 -24
  316. package/src/components/molecules/ContextMenu/context-menu.tsx +259 -259
  317. package/src/components/molecules/ContextMenu/index.ts +1 -1
  318. package/src/components/molecules/DatePicker/date-picker.stories.tsx +233 -233
  319. package/src/components/molecules/DatePicker/date-picker.test.tsx +27 -27
  320. package/src/components/molecules/DatePicker/date-picker.tsx +512 -509
  321. package/src/components/molecules/Dialog/dialog.stories.tsx +48 -48
  322. package/src/components/molecules/Dialog/dialog.test.tsx +51 -51
  323. package/src/components/molecules/Dialog/dialog.tsx +150 -150
  324. package/src/components/molecules/Drawer/drawer.stories.tsx +182 -182
  325. package/src/components/molecules/Drawer/drawer.test.tsx +100 -100
  326. package/src/components/molecules/Drawer/drawer.tsx +206 -206
  327. package/src/components/molecules/Drawer/index.ts +1 -1
  328. package/src/components/molecules/Dropdown/dropdown-async.stories.tsx +14 -14
  329. package/src/components/molecules/Dropdown/dropdown.stories.tsx +111 -111
  330. package/src/components/molecules/Dropdown/dropdown.test.tsx +128 -128
  331. package/src/components/molecules/Dropdown/dropdown.tsx +321 -321
  332. package/src/components/molecules/DropdownMenu/dropdown-menu.stories.tsx +154 -154
  333. package/src/components/molecules/DropdownMenu/dropdown-menu.test.tsx +163 -163
  334. package/src/components/molecules/DropdownMenu/dropdown-menu.tsx +313 -313
  335. package/src/components/molecules/DropdownMenu/index.ts +1 -1
  336. package/src/components/molecules/HoverCard/hover-card.stories.tsx +48 -48
  337. package/src/components/molecules/HoverCard/hover-card.test.tsx +42 -42
  338. package/src/components/molecules/HoverCard/hover-card.tsx +44 -44
  339. package/src/components/molecules/HoverCard/index.ts +1 -1
  340. package/src/components/molecules/InputOTP/index.ts +1 -1
  341. package/src/components/molecules/InputOTP/input-otp.stories.tsx +52 -52
  342. package/src/components/molecules/InputOTP/input-otp.test.tsx +28 -28
  343. package/src/components/molecules/InputOTP/input-otp.tsx +76 -76
  344. package/src/components/molecules/Menubar/index.ts +1 -1
  345. package/src/components/molecules/Menubar/menubar.stories.tsx +113 -113
  346. package/src/components/molecules/Menubar/menubar.test.tsx +42 -42
  347. package/src/components/molecules/Menubar/menubar.tsx +314 -314
  348. package/src/components/molecules/NavigationMenu/index.ts +1 -1
  349. package/src/components/molecules/NavigationMenu/navigation-menu.stories.tsx +143 -143
  350. package/src/components/molecules/NavigationMenu/navigation-menu.test.tsx +69 -69
  351. package/src/components/molecules/NavigationMenu/navigation-menu.tsx +174 -174
  352. package/src/components/molecules/PDFViewer/index.ts +1 -1
  353. package/src/components/molecules/PDFViewer/pdf-viewer.stories.tsx +34 -34
  354. package/src/components/molecules/PDFViewer/pdf-viewer.test.tsx +26 -26
  355. package/src/components/molecules/PDFViewer/pdf-viewer.tsx +358 -358
  356. package/src/components/molecules/Pagination/index.ts +1 -1
  357. package/src/components/molecules/Pagination/pagination.stories.tsx +193 -193
  358. package/src/components/molecules/Pagination/pagination.test.tsx +447 -447
  359. package/src/components/molecules/Pagination/pagination.tsx +206 -206
  360. package/src/components/molecules/PaginationDotGroup/index.ts +1 -1
  361. package/src/components/molecules/PaginationDotGroup/pagination-dot-group.stories.tsx +211 -211
  362. package/src/components/molecules/PaginationDotGroup/pagination-dot-group.test.tsx +384 -384
  363. package/src/components/molecules/PaginationDotGroup/pagination-dot-group.tsx +119 -119
  364. package/src/components/molecules/Popover/index.ts +1 -1
  365. package/src/components/molecules/Popover/popover-menu.stories.tsx +27 -27
  366. package/src/components/molecules/Popover/popover.test.tsx +50 -50
  367. package/src/components/molecules/Popover/popover.tsx +38 -38
  368. package/src/components/molecules/ProgressSteps/index.ts +1 -1
  369. package/src/components/molecules/ProgressSteps/progress-steps.stories.tsx +36 -36
  370. package/src/components/molecules/ProgressSteps/progress-steps.test.tsx +470 -470
  371. package/src/components/molecules/ProgressSteps/progress-steps.tsx +140 -140
  372. package/src/components/molecules/RadioGroup/index.ts +1 -1
  373. package/src/components/molecules/RadioGroup/radio-group.stories.tsx +42 -42
  374. package/src/components/molecules/RadioGroup/radio-group.test.tsx +22 -22
  375. package/src/components/molecules/RadioGroup/radio-group.tsx +55 -55
  376. package/src/components/molecules/Resizable/index.ts +1 -1
  377. package/src/components/molecules/Resizable/resizable.stories.tsx +52 -52
  378. package/src/components/molecules/Resizable/resizable.test.tsx +22 -22
  379. package/src/components/molecules/Resizable/resizable.tsx +55 -55
  380. package/src/components/molecules/ScrollArea/index.ts +1 -1
  381. package/src/components/molecules/ScrollArea/scroll-area.stories.tsx +93 -93
  382. package/src/components/molecules/ScrollArea/scroll-area.test.tsx +28 -28
  383. package/src/components/molecules/ScrollArea/scroll-area.tsx +57 -57
  384. package/src/components/molecules/Select/index.ts +1 -1
  385. package/src/components/molecules/Select/select.stories.tsx +63 -63
  386. package/src/components/molecules/Select/select.test.tsx +80 -80
  387. package/src/components/molecules/Select/select.tsx +172 -172
  388. package/src/components/molecules/Sheet/index.ts +1 -1
  389. package/src/components/molecules/Sheet/sheet.stories.tsx +141 -141
  390. package/src/components/molecules/Sheet/sheet.test.tsx +70 -70
  391. package/src/components/molecules/Sheet/sheet.tsx +133 -133
  392. package/src/components/molecules/Tabs/index.ts +1 -1
  393. package/src/components/molecules/Tabs/tabs.stories.tsx +221 -221
  394. package/src/components/molecules/Tabs/tabs.test.tsx +113 -113
  395. package/src/components/molecules/Tabs/tabs.tsx +102 -102
  396. package/src/components/molecules/ToggleGroup/index.ts +1 -1
  397. package/src/components/molecules/ToggleGroup/toggle-group.stories.tsx +117 -117
  398. package/src/components/molecules/ToggleGroup/toggle-group.test.tsx +100 -100
  399. package/src/components/molecules/ToggleGroup/toggle-group.tsx +70 -70
  400. package/src/components/molecules/Tooltip/index.ts +1 -1
  401. package/src/components/molecules/Tooltip/tooltip.stories.tsx +133 -133
  402. package/src/components/molecules/Tooltip/tooltip.test.tsx +58 -58
  403. package/src/components/molecules/Tooltip/tooltip.tsx +58 -58
  404. package/src/components/molecules/index.ts +33 -33
  405. package/src/components/organisms/Carousel/carousel.stories.tsx +94 -94
  406. package/src/components/organisms/Carousel/carousel.test.tsx +24 -24
  407. package/src/components/organisms/Carousel/carousel.tsx +383 -383
  408. package/src/components/organisms/Carousel/index.ts +1 -1
  409. package/src/components/organisms/Chart/chart.stories.tsx +102 -102
  410. package/src/components/organisms/Chart/chart.test.tsx +105 -105
  411. package/src/components/organisms/Chart/chart.tsx +294 -294
  412. package/src/components/organisms/Chart/index.ts +1 -1
  413. package/src/components/organisms/FileUpload/FilePreview/file-preview.tsx +55 -55
  414. package/src/components/organisms/FileUpload/FilePreview/index.ts +1 -1
  415. package/src/components/organisms/FileUpload/file-upload.stories.tsx +20 -20
  416. package/src/components/organisms/FileUpload/file-upload.test.tsx +59 -59
  417. package/src/components/organisms/FileUpload/file-upload.tsx +175 -175
  418. package/src/components/organisms/FileUpload/file.d.ts +20 -20
  419. package/src/components/organisms/Form/form.stories.tsx +155 -155
  420. package/src/components/organisms/Form/form.test.tsx +49 -49
  421. package/src/components/organisms/Form/form.tsx +133 -133
  422. package/src/components/organisms/Form/index.ts +1 -1
  423. package/src/components/organisms/Sidebar/index.ts +1 -1
  424. package/src/components/organisms/Sidebar/sidebar.stories.tsx +86 -86
  425. package/src/components/organisms/Sidebar/sidebar.test.tsx +101 -101
  426. package/src/components/organisms/Sidebar/sidebar.tsx +666 -666
  427. package/src/components/organisms/Table/index.ts +1 -1
  428. package/src/components/organisms/Table/table.stories.tsx +86 -86
  429. package/src/components/organisms/Table/table.test.tsx +42 -42
  430. package/src/components/organisms/Table/table.tsx +120 -120
  431. package/src/components/organisms/index.ts +6 -6
  432. package/src/constants/brazilian-states.ts +29 -29
  433. package/src/constants/index.ts +1 -1
  434. package/src/hooks/index.ts +10 -10
  435. package/src/hooks/useEditorActiveMarks.ts +62 -62
  436. package/src/hooks/useForm.ts +7 -7
  437. package/src/hooks/useFormContext.ts +6 -6
  438. package/src/hooks/useFormField.ts +41 -41
  439. package/src/hooks/useMobile.ts +61 -61
  440. package/src/hooks/useOnToggle.ts +28 -28
  441. package/src/hooks/usePDFNavigation.ts +40 -40
  442. package/src/hooks/usePDFZoom.ts +34 -34
  443. package/src/hooks/useSidebar.ts +23 -23
  444. package/src/hooks/useToast.tsx +62 -62
  445. package/src/index.css +73 -73
  446. package/src/main.ts +6 -6
  447. package/src/theme.css +387 -387
  448. package/src/utils/api/api.test.ts +63 -63
  449. package/src/utils/api/api.ts +33 -33
  450. package/src/utils/api/index.ts +1 -1
  451. package/src/utils/array/array.test.ts +159 -159
  452. package/src/utils/array/array.ts +43 -43
  453. package/src/utils/array/index.ts +1 -1
  454. package/src/utils/clipboard/clipboard.test.ts +217 -217
  455. package/src/utils/clipboard/clipboard.ts +40 -40
  456. package/src/utils/cn/cn.test.ts +42 -42
  457. package/src/utils/cn/cn.ts +6 -6
  458. package/src/utils/cn/index.ts +1 -1
  459. package/src/utils/color-utils/color-utils.test.ts +46 -46
  460. package/src/utils/color-utils/color-utils.ts +97 -97
  461. package/src/utils/color-utils/index.ts +1 -1
  462. package/src/utils/countries/countries.ts +69 -69
  463. package/src/utils/currency/currency.test.ts +113 -113
  464. package/src/utils/currency/currency.ts +133 -133
  465. package/src/utils/currency/index.ts +1 -1
  466. package/src/utils/date/date.test.ts +166 -166
  467. package/src/utils/date/date.ts +83 -83
  468. package/src/utils/date/index.ts +1 -1
  469. package/src/utils/file/file.ts +44 -44
  470. package/src/utils/file/index.ts +1 -1
  471. package/src/utils/get-initials/get-initials.test.ts +40 -40
  472. package/src/utils/get-initials/get-initials.ts +13 -13
  473. package/src/utils/get-initials/index.ts +1 -1
  474. package/src/utils/index.ts +14 -14
  475. package/src/utils/masks/index.ts +1 -1
  476. package/src/utils/masks/masks.ts +169 -169
  477. package/src/utils/render-highlighted-text/render-highlighted-text.tsx +24 -24
  478. package/src/utils/string/index.ts +1 -1
  479. package/src/utils/string/string.test.ts +185 -185
  480. package/src/utils/string/string.ts +157 -157
  481. package/src/utils/video/index.ts +1 -1
  482. package/src/utils/video/video.ts +8 -8
  483. package/src/vite-env.d.ts +3 -3
  484. package/src/components/atoms/AudioPlayer/__snapshots__/audio-player.test.tsx.snap +0 -22
  485. package/src/components/atoms/Badge/__snapshots__/badge.test.tsx.snap +0 -12
  486. package/src/components/atoms/Box/__snapshots__/box.test.tsx.snap +0 -10
  487. package/src/components/atoms/Button/__snapshots__/button.test.tsx.snap +0 -13
  488. package/src/components/atoms/Calendar/__snapshots__/calendar.test.tsx.snap +0 -936
  489. package/src/components/atoms/Checkbox/__snapshots__/checkbox.test.tsx.snap +0 -16
  490. package/src/components/atoms/Flex/__snapshots__/flex.test.tsx.snap +0 -10
  491. package/src/components/atoms/Grid/__snapshots__/grid.test.tsx.snap +0 -10
  492. package/src/components/atoms/Icon/__snapshots__/icon.test.tsx.snap +0 -103
  493. package/src/components/atoms/Input/__snapshots__/input.test.tsx.snap +0 -50
  494. package/src/components/atoms/Label/__snapshots__/label.test.tsx.snap +0 -17
  495. package/src/components/atoms/Progress/__snapshots__/progress.test.tsx.snap +0 -25
  496. package/src/components/atoms/RichTextEditor/__snapshots__/rich-text-editor.test.tsx.snap +0 -314
  497. package/src/components/atoms/Separator/__snapshots__/separator.test.tsx.snap +0 -13
  498. package/src/components/atoms/Skeleton/__snapshots__/skeleton.test.tsx.snap +0 -11
  499. package/src/components/atoms/Slider/__snapshots__/slider.test.tsx.snap +0 -240
  500. package/src/components/atoms/Sonner/__snapshots__/sonner.test.tsx.snap +0 -13
  501. package/src/components/atoms/Switch/__snapshots__/switch.test.tsx.snap +0 -22
  502. package/src/components/atoms/Textarea/__snapshots__/textarea.test.tsx.snap +0 -10
  503. package/src/components/atoms/Toggle/__snapshots__/toggle.test.tsx.snap +0 -13
  504. package/src/components/atoms/Typography/__snapshots__/typography.test.tsx.snap +0 -12
  505. package/src/components/atoms/VideoPlayer/__snapshots__/video-player.test.tsx.snap +0 -17
  506. package/src/components/molecules/Accordion/__snapshots__/accordion.test.tsx.snap +0 -123
  507. package/src/components/molecules/Alert/__snapshots__/alert.test.tsx.snap +0 -27
  508. package/src/components/molecules/AlertDialog/__snapshots__/alert-dialog.test.tsx.snap +0 -18
  509. package/src/components/molecules/Avatar/__snapshots__/avatar.test.tsx.snap +0 -11
  510. package/src/components/molecules/Breadcrumb/__snapshots__/breadcrumb.test.tsx.snap +0 -11
  511. package/src/components/molecules/Card/__snapshots__/card.test.tsx.snap +0 -11
  512. package/src/components/molecules/Collapsible/__snapshots__/collapsible.test.tsx.snap +0 -27
  513. package/src/components/molecules/Command/__snapshots__/command.test.tsx.snap +0 -31
  514. package/src/components/molecules/ContextMenu/__snapshots__/context-menu.test.tsx.snap +0 -14
  515. package/src/components/molecules/DatePicker/__snapshots__/date-picker.test.tsx.snap +0 -38
  516. package/src/components/molecules/Dialog/__snapshots__/dialog.test.tsx.snap +0 -18
  517. package/src/components/molecules/Drawer/__snapshots__/drawer.test.tsx.snap +0 -3
  518. package/src/components/molecules/Dropdown/__snapshots__/dropdown.test.tsx.snap +0 -86
  519. package/src/components/molecules/DropdownMenu/__snapshots__/dropdown-menu.test.tsx.snap +0 -3
  520. package/src/components/molecules/HoverCard/__snapshots__/hover-card.test.tsx.snap +0 -14
  521. package/src/components/molecules/InputOTP/__snapshots__/input-otp.test.tsx.snap +0 -89
  522. package/src/components/molecules/Menubar/__snapshots__/menubar.test.tsx.snap +0 -80
  523. package/src/components/molecules/NavigationMenu/__snapshots__/navigation-menu.test.tsx.snap +0 -20
  524. package/src/components/molecules/PDFViewer/__snapshots__/pdf-viewer.test.tsx.snap +0 -257
  525. package/src/components/molecules/Pagination/__snapshots__/pagination.test.tsx.snap +0 -200
  526. package/src/components/molecules/PaginationDotGroup/__snapshots__/pagination-dot-group.test.tsx.snap +0 -193
  527. package/src/components/molecules/ProgressSteps/__snapshots__/progress-steps.test.tsx.snap +0 -524
  528. package/src/components/molecules/RadioGroup/__snapshots__/radio-group.test.tsx.snap +0 -122
  529. package/src/components/molecules/Resizable/__snapshots__/resizable.test.tsx.snap +0 -121
  530. package/src/components/molecules/ScrollArea/__snapshots__/scroll-area.test.tsx.snap +0 -636
  531. package/src/components/molecules/Select/__snapshots__/select.test.tsx.snap +0 -15
  532. package/src/components/molecules/Sheet/__snapshots__/sheet.test.tsx.snap +0 -3
  533. package/src/components/molecules/Tabs/__snapshots__/tabs.test.tsx.snap +0 -25
  534. package/src/components/molecules/ToggleGroup/__snapshots__/toggle-group.test.tsx.snap +0 -42
  535. package/src/components/molecules/Tooltip/__snapshots__/tooltip.test.tsx.snap +0 -13
  536. package/src/components/organisms/Carousel/__snapshots__/carousel.test.tsx.snap +0 -219
  537. package/src/components/organisms/Chart/__snapshots__/chart.test.tsx.snap +0 -154
  538. package/src/components/organisms/Form/__snapshots__/form.test.tsx.snap +0 -194
  539. package/src/components/organisms/Sidebar/__snapshots__/sidebar.test.tsx.snap +0 -224
  540. package/src/components/organisms/Table/__snapshots__/table.test.tsx.snap +0 -318
package/README.md CHANGED
@@ -1,241 +1,241 @@
1
- # 🧩 mblabs-roccato-frontend-commons
2
-
3
- Uma coleção de componentes e utilitários de front-end reutilizáveis, desenvolvidos com tecnologias modernas como React 19, TailwindCSS, Radix UI e muito mais. Criado para ser compartilhado entre projetos dentro do ecossistema MB Labs Roccato.
4
-
5
- ---
6
-
7
- ## 📦 Instalação
8
-
9
- Utilize o [pnpm](https://pnpm.io/) como gerenciador de pacotes (Node.js 22+):
10
-
11
- ```bash
12
- pnpm add mblabs-roccato-frontend-commons
13
- ```
14
-
15
- Certifique-se de instalar também as dependências peer:
16
-
17
- ```bash
18
- pnpm add react@^19.0.0 react-dom@^19.0.0 react-hook-form@^7.55.0
19
- ```
20
-
21
- ---
22
-
23
- ## 🚀 Como usar
24
-
25
- Importe os componentes ou utilitários diretamente do pacote:
26
-
27
- ```tsx
28
- import { MeuComponente } from 'mblabs-roccato-frontend-commons';
29
- import 'mblabs-roccato-frontend-commons/css'; // estilos padrões
30
- ```
31
-
32
- ---
33
-
34
- ## ✨ Destaques
35
-
36
- - ✅ Suporte ao React 19
37
- - 🎨 TailwindCSS 4 com variantes dinâmicas
38
- - ⚙️ Componentes acessíveis via Radix UI
39
- - 🧰 Drag & drop com DnD Kit
40
- - 📊 Visualizações com Recharts
41
- - 🧪 Totalmente tipado com TypeScript
42
- - 📚 Documentação interativa com Storybook
43
- - ⚡ Build otimizado com Vite
44
-
45
- ---
46
-
47
- ## 📂 Estrutura do Projeto
48
-
49
- ```
50
- 📁 src/
51
- ┣ 📦 components/
52
- ┣ ┣ 📦 atoms/
53
- ┣ ┣ 📦 molecules/
54
- ┣ ┣ 📦 organisms/
55
- ┣ ┣ 📄 index.ts
56
- ┣ 📦 hooks/
57
- ┣ 📦 utils/
58
- ┗ 📄 index.ts
59
- ```
60
-
61
- ---
62
-
63
- ## 🧪 Scripts
64
-
65
- | Comando | Descrição |
66
- | ---------------------- | ------------------------------------------------- |
67
- | `pnpm build` | Compila a lib com TypeScript e Vite |
68
- | `pnpm lint` | Lint no projeto com ESLint |
69
- | `pnpm storybook` | Inicia o Storybook em ambiente de desenvolvimento |
70
- | `pnpm build-storybook` | Gera versão estática do Storybook |
71
-
72
- ---
73
-
74
- ## 📦 Adicionando novos ícones
75
-
76
- Para adicionar novos ícones ao projeto, siga este processo passo a passo:
77
-
78
- ### 1. Copiar nome do ícone do Figma
79
- - Identifique o nome exato do ícone no design do Figma
80
- - Exemplo: `check-circle`, `info-circle`, `user-01`
81
-
82
- ### 2. Buscar ícone no Untitled UI
83
- - Acesse [https://www.untitledui.com/free-icons](https://www.untitledui.com/free-icons)
84
- - Use a barra de pesquisa para encontrar o ícone pelo nome
85
- - Certifique-se de que é o ícone correto visualmente
86
-
87
- ### 3. Copiar SVG
88
- - Clique no ícone desejado
89
- - Copie o código SVG fornecido
90
- - O SVG deve ter viewBox="0 0 24 24" e ser otimizado
91
-
92
- ### 4. Criar componente reutilizável
93
- Crie um novo arquivo em `src/components/icons/` seguindo o padrão:
94
-
95
- ```tsx
96
- // src/components/icons/nome-do-icone.tsx
97
- import { ComponentProps } from 'react';
98
-
99
- export function NomeDoIcone(props: ComponentProps<'svg'>) {
100
- return (
101
- <svg
102
- width="100%"
103
- height="100%"
104
- viewBox="0 0 24 24"
105
- fill="none"
106
- xmlns="http://www.w3.org/2000/svg"
107
- {...props}
108
- >
109
- {/* Cole o conteúdo SVG aqui */}
110
- </svg>
111
- );
112
- }
113
- ```
114
-
115
- ### 5. Corrigir propriedades CSS
116
- Converta propriedades kebab-case para camelCase:
117
-
118
- ```tsx
119
- // ❌ Incorreto
120
- stroke-width="2" → strokeWidth="2"
121
- stroke-linecap="round" → strokeLinecap="round"
122
- stroke-linejoin="round" → strokeLinejoin="round"
123
- fill-rule="evenodd" → fillRule="evenodd"
124
- clip-rule="evenodd" → clipRule="evenodd"
125
-
126
- // ✅ Correto
127
- strokeWidth="2"
128
- strokeLinecap="round"
129
- strokeLinejoin="round"
130
- fillRule="evenodd"
131
- clipRule="evenodd"
132
- ```
133
-
134
- ### 6. Adicionar ao index.ts
135
- Adicione a exportação no arquivo `src/components/icons/index.ts`:
136
-
137
- ```tsx
138
- // Adicione no final do arquivo, em ordem alfabética
139
- export * from './nome-do-icone';
140
- ```
141
-
142
- ### Exemplo Completo
143
-
144
- **Nome do ícone:** `check-circle`
145
-
146
- **Arquivo criado:** `src/components/icons/check-circle.tsx`
147
-
148
- ```tsx
149
- import { ComponentProps } from 'react';
150
-
151
- export function CheckCircle(props: ComponentProps<'svg'>) {
152
- return (
153
- <svg
154
- width="100%"
155
- height="100%"
156
- viewBox="0 0 24 24"
157
- fill="none"
158
- xmlns="http://www.w3.org/2000/svg"
159
- {...props}
160
- >
161
- <path
162
- d="M7.5 12L10.5 15L16.5 9M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z"
163
- stroke="currentColor"
164
- strokeWidth="2"
165
- strokeLinecap="round"
166
- strokeLinejoin="round"
167
- />
168
- </svg>
169
- );
170
- }
171
- ```
172
-
173
- **Adicionado ao index.ts:**
174
- ```tsx
175
- export * from './check-circle';
176
- ```
177
-
178
- ### Boas Práticas
179
-
180
- - ✅ Use `currentColor` para stroke/fill para permitir customização
181
- - ✅ Mantenha viewBox="0 0 24 24" para consistência
182
- - ✅ Use width="100%" height="100%" para responsividade
183
- - ✅ Nomeie o componente em PascalCase
184
- - ✅ Nomeie o arquivo em kebab-case
185
- - ✅ Mantenha ordem alfabética no index.ts
186
- - ✅ Teste o ícone no Storybook após adicionar
187
-
188
- ### Uso do Ícone
189
-
190
- Após adicionar, o ícone estará disponível para uso:
191
-
192
- ```tsx
193
- import { CheckCircle } from '@/components/icons';
194
-
195
- // Uso básico
196
- <CheckCircle />
197
-
198
- // Com customização
199
- <CheckCircle className="w-6 h-6 text-blue-500" />
200
- ```
201
-
202
- ---
203
-
204
- ## 📚 Storybook
205
-
206
- Explore e teste os componentes interativamente:
207
-
208
- ```bash
209
- pnpm storybook
210
- ```
211
-
212
- Ou gere a versão estática:
213
-
214
- ```bash
215
- pnpm build-storybook
216
- ```
217
-
218
- ---
219
-
220
- ## 🧩 Tecnologias Utilizadas
221
-
222
- - React 19
223
- - TailwindCSS
224
- - Radix UI
225
- - DnD Kit
226
- - Tanstack react-table
227
- - Tabler icons-react
228
- - Date fns
229
- - Recharts
230
- - React Hook Form
231
- - Zod
232
- - Storybook
233
- - Vite
234
- - TypeScript
235
- - ESLint
236
-
237
- ---
238
-
239
- ## 📝 Licença
240
-
241
- MIT © Roccato — Feito com ❤️ pelo time MB Labs.
1
+ # 🧩 mblabs-roccato-frontend-commons
2
+
3
+ Uma coleção de componentes e utilitários de front-end reutilizáveis, desenvolvidos com tecnologias modernas como React 19, TailwindCSS, Radix UI e muito mais. Criado para ser compartilhado entre projetos dentro do ecossistema MB Labs Roccato.
4
+
5
+ ---
6
+
7
+ ## 📦 Instalação
8
+
9
+ Utilize o [pnpm](https://pnpm.io/) como gerenciador de pacotes (Node.js 22+):
10
+
11
+ ```bash
12
+ pnpm add mblabs-roccato-frontend-commons
13
+ ```
14
+
15
+ Certifique-se de instalar também as dependências peer:
16
+
17
+ ```bash
18
+ pnpm add react@^19.0.0 react-dom@^19.0.0 react-hook-form@^7.55.0
19
+ ```
20
+
21
+ ---
22
+
23
+ ## 🚀 Como usar
24
+
25
+ Importe os componentes ou utilitários diretamente do pacote:
26
+
27
+ ```tsx
28
+ import { MeuComponente } from 'mblabs-roccato-frontend-commons';
29
+ import 'mblabs-roccato-frontend-commons/css'; // estilos padrões
30
+ ```
31
+
32
+ ---
33
+
34
+ ## ✨ Destaques
35
+
36
+ - ✅ Suporte ao React 19
37
+ - 🎨 TailwindCSS 4 com variantes dinâmicas
38
+ - ⚙️ Componentes acessíveis via Radix UI
39
+ - 🧰 Drag & drop com DnD Kit
40
+ - 📊 Visualizações com Recharts
41
+ - 🧪 Totalmente tipado com TypeScript
42
+ - 📚 Documentação interativa com Storybook
43
+ - ⚡ Build otimizado com Vite
44
+
45
+ ---
46
+
47
+ ## 📂 Estrutura do Projeto
48
+
49
+ ```
50
+ 📁 src/
51
+ ┣ 📦 components/
52
+ ┣ ┣ 📦 atoms/
53
+ ┣ ┣ 📦 molecules/
54
+ ┣ ┣ 📦 organisms/
55
+ ┣ ┣ 📄 index.ts
56
+ ┣ 📦 hooks/
57
+ ┣ 📦 utils/
58
+ ┗ 📄 index.ts
59
+ ```
60
+
61
+ ---
62
+
63
+ ## 🧪 Scripts
64
+
65
+ | Comando | Descrição |
66
+ | ---------------------- | ------------------------------------------------- |
67
+ | `pnpm build` | Compila a lib com TypeScript e Vite |
68
+ | `pnpm lint` | Lint no projeto com ESLint |
69
+ | `pnpm storybook` | Inicia o Storybook em ambiente de desenvolvimento |
70
+ | `pnpm build-storybook` | Gera versão estática do Storybook |
71
+
72
+ ---
73
+
74
+ ## 📦 Adicionando novos ícones
75
+
76
+ Para adicionar novos ícones ao projeto, siga este processo passo a passo:
77
+
78
+ ### 1. Copiar nome do ícone do Figma
79
+ - Identifique o nome exato do ícone no design do Figma
80
+ - Exemplo: `check-circle`, `info-circle`, `user-01`
81
+
82
+ ### 2. Buscar ícone no Untitled UI
83
+ - Acesse [https://www.untitledui.com/free-icons](https://www.untitledui.com/free-icons)
84
+ - Use a barra de pesquisa para encontrar o ícone pelo nome
85
+ - Certifique-se de que é o ícone correto visualmente
86
+
87
+ ### 3. Copiar SVG
88
+ - Clique no ícone desejado
89
+ - Copie o código SVG fornecido
90
+ - O SVG deve ter viewBox="0 0 24 24" e ser otimizado
91
+
92
+ ### 4. Criar componente reutilizável
93
+ Crie um novo arquivo em `src/components/icons/` seguindo o padrão:
94
+
95
+ ```tsx
96
+ // src/components/icons/nome-do-icone.tsx
97
+ import { ComponentProps } from 'react';
98
+
99
+ export function NomeDoIcone(props: ComponentProps<'svg'>) {
100
+ return (
101
+ <svg
102
+ width="100%"
103
+ height="100%"
104
+ viewBox="0 0 24 24"
105
+ fill="none"
106
+ xmlns="http://www.w3.org/2000/svg"
107
+ {...props}
108
+ >
109
+ {/* Cole o conteúdo SVG aqui */}
110
+ </svg>
111
+ );
112
+ }
113
+ ```
114
+
115
+ ### 5. Corrigir propriedades CSS
116
+ Converta propriedades kebab-case para camelCase:
117
+
118
+ ```tsx
119
+ // ❌ Incorreto
120
+ stroke-width="2" → strokeWidth="2"
121
+ stroke-linecap="round" → strokeLinecap="round"
122
+ stroke-linejoin="round" → strokeLinejoin="round"
123
+ fill-rule="evenodd" → fillRule="evenodd"
124
+ clip-rule="evenodd" → clipRule="evenodd"
125
+
126
+ // ✅ Correto
127
+ strokeWidth="2"
128
+ strokeLinecap="round"
129
+ strokeLinejoin="round"
130
+ fillRule="evenodd"
131
+ clipRule="evenodd"
132
+ ```
133
+
134
+ ### 6. Adicionar ao index.ts
135
+ Adicione a exportação no arquivo `src/components/icons/index.ts`:
136
+
137
+ ```tsx
138
+ // Adicione no final do arquivo, em ordem alfabética
139
+ export * from './nome-do-icone';
140
+ ```
141
+
142
+ ### Exemplo Completo
143
+
144
+ **Nome do ícone:** `check-circle`
145
+
146
+ **Arquivo criado:** `src/components/icons/check-circle.tsx`
147
+
148
+ ```tsx
149
+ import { ComponentProps } from 'react';
150
+
151
+ export function CheckCircle(props: ComponentProps<'svg'>) {
152
+ return (
153
+ <svg
154
+ width="100%"
155
+ height="100%"
156
+ viewBox="0 0 24 24"
157
+ fill="none"
158
+ xmlns="http://www.w3.org/2000/svg"
159
+ {...props}
160
+ >
161
+ <path
162
+ d="M7.5 12L10.5 15L16.5 9M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z"
163
+ stroke="currentColor"
164
+ strokeWidth="2"
165
+ strokeLinecap="round"
166
+ strokeLinejoin="round"
167
+ />
168
+ </svg>
169
+ );
170
+ }
171
+ ```
172
+
173
+ **Adicionado ao index.ts:**
174
+ ```tsx
175
+ export * from './check-circle';
176
+ ```
177
+
178
+ ### Boas Práticas
179
+
180
+ - ✅ Use `currentColor` para stroke/fill para permitir customização
181
+ - ✅ Mantenha viewBox="0 0 24 24" para consistência
182
+ - ✅ Use width="100%" height="100%" para responsividade
183
+ - ✅ Nomeie o componente em PascalCase
184
+ - ✅ Nomeie o arquivo em kebab-case
185
+ - ✅ Mantenha ordem alfabética no index.ts
186
+ - ✅ Teste o ícone no Storybook após adicionar
187
+
188
+ ### Uso do Ícone
189
+
190
+ Após adicionar, o ícone estará disponível para uso:
191
+
192
+ ```tsx
193
+ import { CheckCircle } from '@/components/icons';
194
+
195
+ // Uso básico
196
+ <CheckCircle />
197
+
198
+ // Com customização
199
+ <CheckCircle className="w-6 h-6 text-blue-500" />
200
+ ```
201
+
202
+ ---
203
+
204
+ ## 📚 Storybook
205
+
206
+ Explore e teste os componentes interativamente:
207
+
208
+ ```bash
209
+ pnpm storybook
210
+ ```
211
+
212
+ Ou gere a versão estática:
213
+
214
+ ```bash
215
+ pnpm build-storybook
216
+ ```
217
+
218
+ ---
219
+
220
+ ## 🧩 Tecnologias Utilizadas
221
+
222
+ - React 19
223
+ - TailwindCSS
224
+ - Radix UI
225
+ - DnD Kit
226
+ - Tanstack react-table
227
+ - Tabler icons-react
228
+ - Date fns
229
+ - Recharts
230
+ - React Hook Form
231
+ - Zod
232
+ - Storybook
233
+ - Vite
234
+ - TypeScript
235
+ - ESLint
236
+
237
+ ---
238
+
239
+ ## 📝 Licença
240
+
241
+ MIT © Roccato — Feito com ❤️ pelo time MB Labs.