@fabio.caffarello/react-design-system 1.7.0 → 1.8.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 (460) hide show
  1. package/README.md +48 -3
  2. package/dist/docs/components/ComponentStatusTable.d.ts +11 -0
  3. package/dist/ui/atoms/Accordion/Accordion.d.ts +34 -0
  4. package/dist/ui/atoms/Accordion/Accordion.stories.d.ts +11 -0
  5. package/dist/ui/atoms/Accordion/Accordion.test.d.ts +1 -0
  6. package/dist/ui/atoms/Accordion/index.d.ts +2 -0
  7. package/dist/ui/atoms/Avatar/Avatar.d.ts +30 -0
  8. package/dist/ui/atoms/Avatar/Avatar.stories.d.ts +13 -0
  9. package/dist/ui/atoms/Avatar/Avatar.test.d.ts +1 -0
  10. package/dist/ui/atoms/Avatar/AvatarGroup.d.ts +26 -0
  11. package/dist/ui/atoms/Avatar/index.d.ts +9 -0
  12. package/dist/ui/atoms/Badge/Badge.d.ts +14 -6
  13. package/dist/ui/atoms/Badge/Badge.stories.d.ts +8 -9
  14. package/dist/ui/atoms/BoxWrapper/BoxWrapper.d.ts +3 -3
  15. package/dist/ui/atoms/BoxWrapper/BoxWrapper.test.d.ts +1 -0
  16. package/dist/ui/atoms/Button/Button.d.ts +32 -10
  17. package/dist/ui/atoms/Button/Button.stories.d.ts +7 -0
  18. package/dist/ui/atoms/Button/Button.test.d.ts +1 -0
  19. package/dist/ui/atoms/Checkbox/Checkbox.d.ts +2 -1
  20. package/dist/ui/atoms/Collapsible/Collapsible.stories.d.ts +2 -0
  21. package/dist/ui/atoms/Info/Info.d.ts +2 -3
  22. package/dist/ui/atoms/Info/Info.test.d.ts +1 -0
  23. package/dist/ui/atoms/Input/Input.d.ts +14 -4
  24. package/dist/ui/atoms/Input/Input.stories.d.ts +6 -0
  25. package/dist/ui/atoms/Popover/Popover.d.ts +35 -0
  26. package/dist/ui/atoms/Popover/Popover.stories.d.ts +11 -0
  27. package/dist/ui/atoms/Popover/Popover.test.d.ts +1 -0
  28. package/dist/ui/atoms/Popover/index.d.ts +2 -0
  29. package/dist/ui/atoms/Progress/Progress.d.ts +33 -0
  30. package/dist/ui/atoms/Progress/Progress.stories.d.ts +12 -0
  31. package/dist/ui/atoms/Progress/Progress.test.d.ts +1 -0
  32. package/dist/ui/atoms/Select/Select.d.ts +18 -6
  33. package/dist/ui/atoms/Select/Select.stories.d.ts +11 -8
  34. package/dist/ui/atoms/Separator/Separator.d.ts +23 -0
  35. package/dist/ui/atoms/Separator/Separator.stories.d.ts +10 -0
  36. package/dist/ui/atoms/Separator/Separator.test.d.ts +1 -0
  37. package/dist/ui/atoms/Separator/index.d.ts +2 -0
  38. package/dist/ui/atoms/Skeleton/Skeleton.d.ts +1 -1
  39. package/dist/ui/atoms/Skeleton/Skeleton.stories.d.ts +24 -0
  40. package/dist/ui/atoms/Slider/Slider.d.ts +45 -0
  41. package/dist/ui/atoms/Slider/Slider.stories.d.ts +13 -0
  42. package/dist/ui/atoms/Slider/Slider.test.d.ts +1 -0
  43. package/dist/ui/atoms/Slider/index.d.ts +2 -0
  44. package/dist/ui/atoms/Spinner/Spinner.d.ts +22 -0
  45. package/dist/ui/atoms/Spinner/Spinner.stories.d.ts +9 -0
  46. package/dist/ui/atoms/Spinner/Spinner.test.d.ts +1 -0
  47. package/dist/ui/atoms/Switch/Switch.d.ts +28 -0
  48. package/dist/ui/atoms/Switch/Switch.stories.d.ts +11 -0
  49. package/dist/ui/atoms/Switch/Switch.test.d.ts +1 -0
  50. package/dist/ui/atoms/Switch/index.d.ts +2 -0
  51. package/dist/ui/atoms/Tooltip/Tooltip.d.ts +2 -1
  52. package/dist/ui/atoms/Tooltip/Tooltip.stories.d.ts +17 -0
  53. package/dist/ui/atoms/index.d.ts +20 -3
  54. package/dist/ui/index.d.ts +6 -1
  55. package/dist/ui/molecules/Card/Card.d.ts +6 -2
  56. package/dist/ui/molecules/Card/Card.stories.d.ts +2 -0
  57. package/dist/ui/molecules/ColorPicker/ColorPicker.d.ts +28 -0
  58. package/dist/ui/molecules/ColorPicker/ColorPicker.stories.d.ts +12 -0
  59. package/dist/ui/molecules/ColorPicker/ColorPicker.test.d.ts +1 -0
  60. package/dist/ui/molecules/ColorPicker/index.d.ts +2 -0
  61. package/dist/ui/molecules/DatePicker/DatePicker.d.ts +74 -0
  62. package/dist/ui/molecules/DatePicker/DatePicker.stories.d.ts +12 -0
  63. package/dist/ui/molecules/DatePicker/DatePicker.test.d.ts +1 -0
  64. package/dist/ui/molecules/DatePicker/DatePickerCalendar.d.ts +6 -0
  65. package/dist/ui/molecules/DatePicker/DatePickerContext.d.ts +28 -0
  66. package/dist/ui/molecules/DatePicker/DatePickerInput.d.ts +9 -0
  67. package/dist/ui/molecules/DatePicker/DatePickerProvider.d.ts +23 -0
  68. package/dist/ui/molecules/DatePicker/index.d.ts +14 -0
  69. package/dist/ui/molecules/Dropdown/Dropdown.d.ts +2 -1
  70. package/dist/ui/molecules/Dropdown/Dropdown.stories.d.ts +13 -0
  71. package/dist/ui/molecules/EmptyState/EmptyState.stories.d.ts +22 -0
  72. package/dist/ui/molecules/FileUpload/FileUpload.d.ts +37 -0
  73. package/dist/ui/molecules/FileUpload/FileUpload.stories.d.ts +12 -0
  74. package/dist/ui/molecules/FileUpload/FileUpload.test.d.ts +1 -0
  75. package/dist/ui/molecules/FileUpload/index.d.ts +2 -0
  76. package/dist/ui/molecules/Form/Form.d.ts +29 -4
  77. package/dist/ui/molecules/Form/Form.stories.d.ts +2 -0
  78. package/dist/ui/molecules/Form/FormContext.d.ts +17 -0
  79. package/dist/ui/molecules/Form/FormField.d.ts +36 -0
  80. package/dist/ui/molecules/Form/FormProvider.d.ts +14 -0
  81. package/dist/ui/molecules/Form/index.d.ts +13 -0
  82. package/dist/ui/molecules/Form/useFormFieldArray.d.ts +28 -0
  83. package/dist/ui/molecules/InputWithLabel/InputWithLabel.test.d.ts +1 -0
  84. package/dist/ui/molecules/Rating/Rating.d.ts +33 -0
  85. package/dist/ui/molecules/Rating/Rating.stories.d.ts +13 -0
  86. package/dist/ui/molecules/Rating/Rating.test.d.ts +1 -0
  87. package/dist/ui/molecules/Rating/index.d.ts +2 -0
  88. package/dist/ui/molecules/SearchInput/SearchInput.d.ts +24 -0
  89. package/dist/ui/molecules/SearchInput/SearchInput.stories.d.ts +10 -0
  90. package/dist/ui/molecules/SearchInput/SearchInput.test.d.ts +1 -0
  91. package/dist/ui/molecules/SearchInput/index.d.ts +2 -0
  92. package/dist/ui/molecules/SidebarHeader/SidebarHeader.test.d.ts +1 -0
  93. package/dist/ui/molecules/TableActions/TableActions.d.ts +31 -0
  94. package/dist/ui/molecules/TableActions/TableActions.stories.d.ts +7 -0
  95. package/dist/ui/molecules/TableActions/TableActions.test.d.ts +1 -0
  96. package/dist/ui/molecules/TableFilters/TableFilters.d.ts +37 -0
  97. package/dist/ui/molecules/TableFilters/TableFilters.stories.d.ts +7 -0
  98. package/dist/ui/molecules/TableFilters/TableFilters.test.d.ts +1 -0
  99. package/dist/ui/molecules/TablePagination/TablePagination.d.ts +29 -0
  100. package/dist/ui/molecules/TablePagination/TablePagination.stories.d.ts +8 -0
  101. package/dist/ui/molecules/TablePagination/TablePagination.test.d.ts +1 -0
  102. package/dist/ui/molecules/Tabs/Tabs.d.ts +15 -0
  103. package/dist/ui/molecules/Tabs/Tabs.stories.d.ts +10 -0
  104. package/dist/ui/molecules/Tabs/Tabs.test.d.ts +1 -0
  105. package/dist/ui/molecules/Tabs/TabsContent.d.ts +14 -0
  106. package/dist/ui/molecules/Tabs/TabsContext.d.ts +18 -0
  107. package/dist/ui/molecules/Tabs/TabsList.d.ts +12 -0
  108. package/dist/ui/molecules/Tabs/TabsProvider.d.ts +16 -0
  109. package/dist/ui/molecules/Tabs/TabsTrigger.d.ts +13 -0
  110. package/dist/ui/molecules/Tabs/index.d.ts +17 -0
  111. package/dist/ui/molecules/TimePicker/TimePicker.d.ts +29 -0
  112. package/dist/ui/molecules/TimePicker/TimePicker.stories.d.ts +12 -0
  113. package/dist/ui/molecules/TimePicker/TimePicker.test.d.ts +1 -0
  114. package/dist/ui/molecules/TimePicker/index.d.ts +2 -0
  115. package/dist/ui/molecules/index.d.ts +13 -5
  116. package/dist/ui/organisms/CommandPalette/CommandPalette.d.ts +37 -0
  117. package/dist/ui/organisms/CommandPalette/CommandPalette.stories.d.ts +11 -0
  118. package/dist/ui/organisms/CommandPalette/CommandPalette.test.d.ts +1 -0
  119. package/dist/ui/organisms/CommandPalette/index.d.ts +2 -0
  120. package/dist/ui/organisms/DataGrid/DataGrid.d.ts +84 -0
  121. package/dist/ui/organisms/DataGrid/DataGrid.stories.d.ts +14 -0
  122. package/dist/ui/organisms/DataGrid/DataGrid.test.d.ts +1 -0
  123. package/dist/ui/organisms/DataGrid/index.d.ts +2 -0
  124. package/dist/ui/organisms/Dialog/AlertDialog.d.ts +34 -0
  125. package/dist/ui/organisms/Dialog/Dialog.d.ts +58 -0
  126. package/dist/ui/organisms/Dialog/Dialog.stories.d.ts +13 -0
  127. package/dist/ui/organisms/Dialog/Dialog.test.d.ts +1 -0
  128. package/dist/ui/organisms/Dialog/DialogClose.d.ts +8 -0
  129. package/dist/ui/organisms/Dialog/DialogContent.d.ts +8 -0
  130. package/dist/ui/organisms/Dialog/DialogContext.d.ts +10 -0
  131. package/dist/ui/organisms/Dialog/DialogDescription.d.ts +4 -0
  132. package/dist/ui/organisms/Dialog/DialogFooter.d.ts +5 -0
  133. package/dist/ui/organisms/Dialog/DialogHeader.d.ts +5 -0
  134. package/dist/ui/organisms/Dialog/DialogProvider.d.ts +10 -0
  135. package/dist/ui/organisms/Dialog/DialogTitle.d.ts +5 -0
  136. package/dist/ui/organisms/Dialog/DialogTrigger.d.ts +6 -0
  137. package/dist/ui/organisms/Dialog/index.d.ts +22 -0
  138. package/dist/ui/organisms/Sidebar/Sidebar.d.ts +7 -4
  139. package/dist/ui/organisms/Sidebar/SidebarGroup/SidebarGroup.d.ts +27 -0
  140. package/dist/ui/organisms/Sidebar/SidebarGroup/SidebarGroup.stories.d.ts +11 -0
  141. package/dist/ui/organisms/Sidebar/SidebarGroup/SidebarGroup.test.d.ts +1 -0
  142. package/dist/ui/organisms/Sidebar/SidebarHeader/SidebarHeader.d.ts +19 -0
  143. package/dist/ui/organisms/Sidebar/SidebarHeader/SidebarHeader.test.d.ts +1 -0
  144. package/dist/ui/organisms/Sidebar/SidebarItem/SidebarItem.d.ts +23 -0
  145. package/dist/ui/organisms/Sidebar/SidebarItem/SidebarItem.stories.d.ts +10 -0
  146. package/dist/ui/organisms/Sidebar/SidebarItem/SidebarItem.test.d.ts +1 -0
  147. package/dist/ui/organisms/Sidebar/index.d.ts +8 -0
  148. package/dist/ui/organisms/Stepper/Stepper.d.ts +40 -0
  149. package/dist/ui/organisms/Stepper/Stepper.stories.d.ts +12 -0
  150. package/dist/ui/organisms/Stepper/Stepper.test.d.ts +1 -0
  151. package/dist/ui/organisms/Stepper/index.d.ts +2 -0
  152. package/dist/ui/organisms/Table/Table.d.ts +84 -16
  153. package/dist/ui/organisms/Table/Table.stories.d.ts +15 -0
  154. package/dist/ui/organisms/Table/TableActions/TableActions.d.ts +31 -0
  155. package/dist/ui/organisms/Table/TableActions/TableActions.stories.d.ts +7 -0
  156. package/dist/ui/organisms/Table/TableActions/TableActions.test.d.ts +1 -0
  157. package/dist/ui/organisms/Table/TableActions.d.ts +13 -0
  158. package/dist/ui/organisms/Table/TableBody.d.ts +12 -0
  159. package/dist/ui/organisms/Table/TableCell.d.ts +14 -0
  160. package/dist/ui/organisms/Table/TableContext.d.ts +75 -0
  161. package/dist/ui/organisms/Table/TableEmptyState.d.ts +11 -0
  162. package/dist/ui/organisms/Table/TableFilters/TableFilters.d.ts +37 -0
  163. package/dist/ui/organisms/Table/TableFilters/TableFilters.stories.d.ts +7 -0
  164. package/dist/ui/organisms/Table/TableFilters/TableFilters.test.d.ts +1 -0
  165. package/dist/ui/organisms/Table/TableFilters.d.ts +12 -0
  166. package/dist/ui/organisms/Table/TableHeader.d.ts +10 -0
  167. package/dist/ui/organisms/Table/TableHeaderCell.d.ts +18 -0
  168. package/dist/ui/organisms/Table/TableHeaderRow.d.ts +10 -0
  169. package/dist/ui/organisms/Table/TablePagination/TablePagination.d.ts +29 -0
  170. package/dist/ui/organisms/Table/TablePagination/TablePagination.stories.d.ts +8 -0
  171. package/dist/ui/organisms/Table/TablePagination/TablePagination.test.d.ts +1 -0
  172. package/dist/ui/organisms/Table/TablePagination.d.ts +14 -0
  173. package/dist/ui/organisms/Table/TableProvider.d.ts +55 -0
  174. package/dist/ui/organisms/Table/TableRow.d.ts +14 -0
  175. package/dist/ui/organisms/Table/TableTypes.d.ts +8 -0
  176. package/dist/ui/organisms/Table/index.d.ts +30 -0
  177. package/dist/ui/organisms/Table/useColumnResizing.d.ts +39 -0
  178. package/dist/ui/organisms/Table/useVirtualScrolling.d.ts +35 -0
  179. package/dist/ui/organisms/Timeline/Timeline.d.ts +34 -0
  180. package/dist/ui/organisms/Timeline/Timeline.stories.d.ts +12 -0
  181. package/dist/ui/organisms/Timeline/Timeline.test.d.ts +1 -0
  182. package/dist/ui/organisms/Timeline/index.d.ts +2 -0
  183. package/dist/ui/organisms/Toast/Toast.d.ts +8 -0
  184. package/dist/ui/organisms/Toast/Toast.stories.d.ts +14 -0
  185. package/dist/ui/organisms/Toast/Toast.test.d.ts +1 -0
  186. package/dist/ui/organisms/Toast/ToastContainer.d.ts +5 -0
  187. package/dist/ui/organisms/Toast/ToastContext.d.ts +21 -0
  188. package/dist/ui/organisms/Toast/ToastProvider.d.ts +7 -0
  189. package/dist/ui/organisms/Toast/index.d.ts +15 -0
  190. package/dist/ui/organisms/Toast/useToast.d.ts +35 -0
  191. package/dist/ui/organisms/index.d.ts +12 -2
  192. package/dist/ui/providers/AdvancedThemeProvider.d.ts +52 -0
  193. package/dist/ui/providers/index.d.ts +9 -0
  194. package/dist/ui/themes/ThemeBuilder.d.ts +28 -0
  195. package/dist/ui/themes/ThemeRegistry.d.ts +55 -0
  196. package/dist/ui/themes/index.d.ts +9 -0
  197. package/dist/ui/themes/types.d.ts +48 -0
  198. package/dist/ui/themes/utils.d.ts +21 -0
  199. package/dist/ui/tokens/TokenVisualizations.d.ts +41 -0
  200. package/dist/ui/tokens/animations.d.ts +65 -0
  201. package/dist/ui/tokens/borders.d.ts +61 -0
  202. package/dist/ui/tokens/gradients.d.ts +55 -0
  203. package/dist/ui/tokens/index.d.ts +31 -0
  204. package/dist/ui/tokens/opacity.d.ts +51 -0
  205. package/dist/ui/tokens/radius.d.ts +45 -0
  206. package/dist/ui/tokens/shadows.d.ts +42 -0
  207. package/dist/ui/tokens/themes/dark.d.ts +26 -26
  208. package/dist/ui/tokens/themes/light.d.ts +26 -26
  209. package/dist/ui/tokens/tokens.factory.d.ts +42 -0
  210. package/dist/ui/tokens/z-index.d.ts +44 -0
  211. package/dist/ui/utils/index.d.ts +6 -0
  212. package/package.json +50 -6
  213. package/src/docs/Accessibility.mdx +402 -0
  214. package/src/docs/BestPractices.mdx +315 -0
  215. package/src/docs/ComponentComposition.mdx +381 -0
  216. package/src/docs/ComponentStatus.mdx +177 -0
  217. package/src/docs/DesignSystem.mdx +121 -0
  218. package/src/docs/GettingStarted.mdx +284 -0
  219. package/src/docs/MigrationGuide.mdx +297 -0
  220. package/src/docs/Performance.mdx +206 -0
  221. package/src/docs/components/ComponentStatusTable.tsx +184 -0
  222. package/src/setupTests.ts +32 -0
  223. package/src/ui/atoms/Accordion/Accordion.stories.tsx +147 -0
  224. package/src/ui/atoms/Accordion/Accordion.test.tsx +86 -0
  225. package/src/ui/atoms/Accordion/Accordion.tsx +147 -0
  226. package/src/ui/atoms/Accordion/index.ts +2 -0
  227. package/src/ui/atoms/Avatar/Avatar.stories.tsx +226 -0
  228. package/src/ui/atoms/Avatar/Avatar.test.tsx +233 -0
  229. package/src/ui/atoms/Avatar/Avatar.tsx +128 -0
  230. package/src/ui/atoms/Avatar/AvatarGroup.tsx +96 -0
  231. package/src/ui/atoms/Avatar/index.ts +11 -0
  232. package/src/ui/atoms/Badge/Badge.stories.tsx +65 -56
  233. package/src/ui/atoms/Badge/Badge.test.tsx +27 -50
  234. package/src/ui/atoms/Badge/Badge.tsx +70 -27
  235. package/src/ui/atoms/BoxWrapper/BoxWrapper.stories.tsx +1 -1
  236. package/src/ui/atoms/BoxWrapper/BoxWrapper.test.tsx +27 -0
  237. package/src/ui/atoms/BoxWrapper/BoxWrapper.tsx +5 -2
  238. package/src/ui/atoms/Button/Button.stories.tsx +130 -1
  239. package/src/ui/atoms/Button/Button.test.tsx +233 -0
  240. package/src/ui/atoms/Button/Button.tsx +160 -53
  241. package/src/ui/atoms/Checkbox/Checkbox.tsx +14 -1
  242. package/src/ui/atoms/Collapsible/Collapsible.stories.tsx +47 -1
  243. package/src/ui/atoms/Collapsible/Collapsible.test.tsx +36 -24
  244. package/src/ui/atoms/Collapsible/Collapsible.tsx +9 -1
  245. package/src/ui/atoms/ErrorMessage/ErrorMessage.stories.tsx +1 -1
  246. package/src/ui/atoms/Info/Info.stories.tsx +1 -1
  247. package/src/ui/atoms/Info/Info.test.tsx +45 -0
  248. package/src/ui/atoms/Info/Info.tsx +2 -2
  249. package/src/ui/atoms/Input/Input.stories.tsx +80 -0
  250. package/src/ui/atoms/Input/Input.test.tsx +190 -36
  251. package/src/ui/atoms/Input/Input.tsx +144 -25
  252. package/src/ui/atoms/Label/Label.stories.tsx +1 -1
  253. package/src/ui/atoms/NavLink/NavLink.stories.tsx +1 -1
  254. package/src/ui/atoms/Popover/Popover.stories.tsx +157 -0
  255. package/src/ui/atoms/Popover/Popover.test.tsx +80 -0
  256. package/src/ui/atoms/Popover/Popover.tsx +256 -0
  257. package/src/ui/atoms/Popover/index.ts +2 -0
  258. package/src/ui/atoms/Progress/Progress.css +17 -0
  259. package/src/ui/atoms/Progress/Progress.stories.tsx +170 -0
  260. package/src/ui/atoms/Progress/Progress.test.tsx +134 -0
  261. package/src/ui/atoms/Progress/Progress.tsx +138 -0
  262. package/src/ui/atoms/Radio/Radio.tsx +1 -1
  263. package/src/ui/atoms/Select/Select.stories.tsx +93 -58
  264. package/src/ui/atoms/Select/Select.test.tsx +162 -46
  265. package/src/ui/atoms/Select/Select.tsx +142 -44
  266. package/src/ui/atoms/Separator/Separator.stories.tsx +88 -0
  267. package/src/ui/atoms/Separator/Separator.test.tsx +34 -0
  268. package/src/ui/atoms/Separator/Separator.tsx +81 -0
  269. package/src/ui/atoms/Separator/index.ts +2 -0
  270. package/src/ui/atoms/Skeleton/Skeleton.stories.tsx +62 -0
  271. package/src/ui/atoms/Skeleton/Skeleton.tsx +19 -2
  272. package/src/ui/atoms/Slider/Slider.stories.tsx +205 -0
  273. package/src/ui/atoms/Slider/Slider.test.tsx +53 -0
  274. package/src/ui/atoms/Slider/Slider.tsx +307 -0
  275. package/src/ui/atoms/Slider/index.ts +2 -0
  276. package/src/ui/atoms/Spinner/Spinner.stories.tsx +56 -0
  277. package/src/ui/atoms/Spinner/Spinner.test.tsx +35 -0
  278. package/src/ui/atoms/Spinner/Spinner.tsx +88 -0
  279. package/src/ui/atoms/Switch/Switch.stories.tsx +182 -0
  280. package/src/ui/atoms/Switch/Switch.test.tsx +90 -0
  281. package/src/ui/atoms/Switch/Switch.tsx +181 -0
  282. package/src/ui/atoms/Switch/index.ts +2 -0
  283. package/src/ui/atoms/Text/Text.stories.tsx +1 -1
  284. package/src/ui/atoms/Text/Text.test.tsx +48 -32
  285. package/src/ui/atoms/Textarea/Textarea.stories.tsx +1 -1
  286. package/src/ui/atoms/Tooltip/Tooltip.stories.tsx +44 -0
  287. package/src/ui/atoms/Tooltip/Tooltip.tsx +94 -6
  288. package/src/ui/atoms/index.ts +27 -4
  289. package/src/ui/index.ts +6 -1
  290. package/src/ui/molecules/Breadcrumb/Breadcrumb.stories.tsx +1 -1
  291. package/src/ui/molecules/Breadcrumb/Breadcrumb.tsx +1 -1
  292. package/src/ui/molecules/Card/Card.stories.tsx +49 -1
  293. package/src/ui/molecules/Card/Card.tsx +40 -5
  294. package/src/ui/molecules/ColorPicker/ColorPicker.stories.tsx +156 -0
  295. package/src/ui/molecules/ColorPicker/ColorPicker.test.tsx +47 -0
  296. package/src/ui/molecules/ColorPicker/ColorPicker.tsx +271 -0
  297. package/src/ui/molecules/ColorPicker/index.ts +2 -0
  298. package/src/ui/molecules/DatePicker/DatePicker.mdx +150 -0
  299. package/src/ui/molecules/DatePicker/DatePicker.stories.tsx +188 -0
  300. package/src/ui/molecules/DatePicker/DatePicker.test.tsx +381 -0
  301. package/src/ui/molecules/DatePicker/DatePicker.tsx +231 -0
  302. package/src/ui/molecules/DatePicker/DatePickerCalendar.tsx +277 -0
  303. package/src/ui/molecules/DatePicker/DatePickerContext.tsx +39 -0
  304. package/src/ui/molecules/DatePicker/DatePickerInput.tsx +147 -0
  305. package/src/ui/molecules/DatePicker/DatePickerProvider.tsx +100 -0
  306. package/src/ui/molecules/DatePicker/index.ts +16 -0
  307. package/src/ui/molecules/Dropdown/Dropdown.stories.tsx +50 -8
  308. package/src/ui/molecules/Dropdown/Dropdown.test.tsx +272 -12
  309. package/src/ui/molecules/Dropdown/Dropdown.tsx +176 -10
  310. package/src/ui/molecules/EmptyState/EmptyState.stories.tsx +24 -2
  311. package/src/ui/molecules/EmptyState/EmptyState.tsx +9 -3
  312. package/src/ui/molecules/FileUpload/FileUpload.stories.tsx +177 -0
  313. package/src/ui/molecules/FileUpload/FileUpload.test.tsx +114 -0
  314. package/src/ui/molecules/FileUpload/FileUpload.tsx +312 -0
  315. package/src/ui/molecules/FileUpload/index.ts +2 -0
  316. package/src/ui/molecules/Form/Form.mdx +145 -0
  317. package/src/ui/molecules/Form/Form.stories.tsx +121 -1
  318. package/src/ui/molecules/Form/Form.test.tsx +1 -3
  319. package/src/ui/molecules/Form/Form.tsx +95 -15
  320. package/src/ui/molecules/Form/FormContext.tsx +35 -0
  321. package/src/ui/molecules/Form/FormField.tsx +83 -0
  322. package/src/ui/molecules/Form/FormProvider.tsx +34 -0
  323. package/src/ui/molecules/Form/index.ts +21 -0
  324. package/src/ui/molecules/Form/useFormFieldArray.ts +46 -0
  325. package/src/ui/molecules/InputWithLabel/InputWithLabel.stories.tsx +1 -1
  326. package/src/ui/molecules/InputWithLabel/InputWithLabel.test.tsx +44 -0
  327. package/src/ui/molecules/InputWithLabel/InputWithLabel.tsx +3 -1
  328. package/src/ui/molecules/NavbarGroup/NavbarGroup.stories.tsx +1 -1
  329. package/src/ui/molecules/Pagination/Pagination.stories.tsx +1 -1
  330. package/src/ui/molecules/Rating/Rating.stories.tsx +206 -0
  331. package/src/ui/molecules/Rating/Rating.test.tsx +60 -0
  332. package/src/ui/molecules/Rating/Rating.tsx +173 -0
  333. package/src/ui/molecules/Rating/index.ts +2 -0
  334. package/src/ui/molecules/SearchInput/SearchInput.stories.tsx +146 -0
  335. package/src/ui/molecules/SearchInput/SearchInput.test.tsx +82 -0
  336. package/src/ui/molecules/SearchInput/SearchInput.tsx +133 -0
  337. package/src/ui/molecules/SearchInput/index.ts +2 -0
  338. package/src/ui/molecules/Tabs/Tabs.stories.tsx +229 -0
  339. package/src/ui/molecules/Tabs/Tabs.test.tsx +497 -0
  340. package/src/ui/molecules/Tabs/Tabs.tsx +58 -0
  341. package/src/ui/molecules/Tabs/TabsContent.tsx +50 -0
  342. package/src/ui/molecules/Tabs/TabsContext.tsx +36 -0
  343. package/src/ui/molecules/Tabs/TabsList.tsx +98 -0
  344. package/src/ui/molecules/Tabs/TabsProvider.tsx +53 -0
  345. package/src/ui/molecules/Tabs/TabsTrigger.tsx +111 -0
  346. package/src/ui/molecules/Tabs/index.ts +23 -0
  347. package/src/ui/molecules/TimePicker/TimePicker.stories.tsx +145 -0
  348. package/src/ui/molecules/TimePicker/TimePicker.test.tsx +41 -0
  349. package/src/ui/molecules/TimePicker/TimePicker.tsx +264 -0
  350. package/src/ui/molecules/TimePicker/index.ts +2 -0
  351. package/src/ui/molecules/index.ts +20 -7
  352. package/src/ui/organisms/CommandPalette/CommandPalette.stories.tsx +218 -0
  353. package/src/ui/organisms/CommandPalette/CommandPalette.test.tsx +85 -0
  354. package/src/ui/organisms/CommandPalette/CommandPalette.tsx +333 -0
  355. package/src/ui/organisms/CommandPalette/index.ts +2 -0
  356. package/src/ui/organisms/DataGrid/DataGrid.stories.tsx +196 -0
  357. package/src/ui/organisms/DataGrid/DataGrid.test.tsx +53 -0
  358. package/src/ui/organisms/DataGrid/DataGrid.tsx +294 -0
  359. package/src/ui/organisms/DataGrid/index.ts +2 -0
  360. package/src/ui/organisms/Dialog/AlertDialog.tsx +92 -0
  361. package/src/ui/organisms/Dialog/Dialog.mdx +200 -0
  362. package/src/ui/organisms/Dialog/Dialog.stories.tsx +226 -0
  363. package/src/ui/organisms/Dialog/Dialog.test.tsx +435 -0
  364. package/src/ui/organisms/Dialog/Dialog.tsx +79 -0
  365. package/src/ui/organisms/Dialog/DialogClose.tsx +45 -0
  366. package/src/ui/organisms/Dialog/DialogContent.tsx +149 -0
  367. package/src/ui/organisms/Dialog/DialogContext.tsx +25 -0
  368. package/src/ui/organisms/Dialog/DialogDescription.tsx +28 -0
  369. package/src/ui/organisms/Dialog/DialogFooter.tsx +18 -0
  370. package/src/ui/organisms/Dialog/DialogHeader.tsx +18 -0
  371. package/src/ui/organisms/Dialog/DialogProvider.tsx +73 -0
  372. package/src/ui/organisms/Dialog/DialogTitle.tsx +31 -0
  373. package/src/ui/organisms/Dialog/DialogTrigger.tsx +34 -0
  374. package/src/ui/organisms/Dialog/index.ts +24 -0
  375. package/src/ui/organisms/LoginBox/LoginBox.stories.tsx +1 -1
  376. package/src/ui/organisms/Modal/Modal.stories.tsx +2 -2
  377. package/src/ui/organisms/Modal/Modal.test.tsx +1 -1
  378. package/src/ui/organisms/Sidebar/Sidebar.stories.tsx +1 -1
  379. package/src/ui/organisms/Sidebar/Sidebar.test.tsx +5 -3
  380. package/src/ui/organisms/Sidebar/Sidebar.tsx +21 -6
  381. package/src/ui/{molecules → organisms/Sidebar}/SidebarGroup/SidebarGroup.stories.tsx +2 -2
  382. package/src/ui/{molecules → organisms/Sidebar}/SidebarGroup/SidebarGroup.test.tsx +32 -9
  383. package/src/ui/{molecules → organisms/Sidebar}/SidebarGroup/SidebarGroup.tsx +7 -7
  384. package/src/ui/organisms/Sidebar/SidebarHeader/SidebarHeader.test.tsx +66 -0
  385. package/src/ui/{molecules → organisms/Sidebar}/SidebarHeader/SidebarHeader.tsx +1 -2
  386. package/src/ui/{atoms → organisms/Sidebar}/SidebarItem/SidebarItem.stories.tsx +1 -1
  387. package/src/ui/{atoms → organisms/Sidebar}/SidebarItem/SidebarItem.test.tsx +9 -8
  388. package/src/ui/{atoms → organisms/Sidebar}/SidebarItem/SidebarItem.tsx +9 -3
  389. package/src/ui/organisms/Sidebar/index.ts +13 -0
  390. package/src/ui/organisms/Stepper/Stepper.stories.tsx +253 -0
  391. package/src/ui/organisms/Stepper/Stepper.test.tsx +76 -0
  392. package/src/ui/organisms/Stepper/Stepper.tsx +323 -0
  393. package/src/ui/organisms/Stepper/index.ts +2 -0
  394. package/src/ui/organisms/Table/Table.mdx +154 -0
  395. package/src/ui/organisms/Table/Table.stories.tsx +614 -4
  396. package/src/ui/organisms/Table/Table.test.tsx +86 -4
  397. package/src/ui/organisms/Table/Table.tsx +215 -99
  398. package/src/ui/organisms/Table/TableActions/TableActions.stories.tsx +88 -0
  399. package/src/ui/organisms/Table/TableActions/TableActions.test.tsx +64 -0
  400. package/src/ui/organisms/Table/TableActions/TableActions.tsx +71 -0
  401. package/src/ui/organisms/Table/TableActions.tsx +46 -0
  402. package/src/ui/organisms/Table/TableBody.tsx +137 -0
  403. package/src/ui/organisms/Table/TableCell.tsx +36 -0
  404. package/src/ui/organisms/Table/TableContext.tsx +111 -0
  405. package/src/ui/organisms/Table/TableEmptyState.tsx +51 -0
  406. package/src/ui/organisms/Table/TableFilters/TableFilters.stories.tsx +111 -0
  407. package/src/ui/organisms/Table/TableFilters/TableFilters.test.tsx +104 -0
  408. package/src/ui/organisms/Table/TableFilters/TableFilters.tsx +191 -0
  409. package/src/ui/organisms/Table/TableFilters.tsx +39 -0
  410. package/src/ui/organisms/Table/TableHeader.tsx +29 -0
  411. package/src/ui/organisms/Table/TableHeaderCell.tsx +142 -0
  412. package/src/ui/organisms/Table/TableHeaderRow.tsx +72 -0
  413. package/src/ui/organisms/Table/TablePagination/TablePagination.stories.tsx +87 -0
  414. package/src/ui/organisms/Table/TablePagination/TablePagination.test.tsx +90 -0
  415. package/src/ui/organisms/Table/TablePagination/TablePagination.tsx +207 -0
  416. package/src/ui/organisms/Table/TablePagination.tsx +48 -0
  417. package/src/ui/organisms/Table/TableProvider.tsx +429 -0
  418. package/src/ui/organisms/Table/TableRow.tsx +85 -0
  419. package/src/ui/organisms/Table/TableTypes.ts +11 -0
  420. package/src/ui/organisms/Table/index.ts +55 -0
  421. package/src/ui/organisms/Table/useColumnResizing.ts +134 -0
  422. package/src/ui/organisms/Table/useVirtualScrolling.ts +116 -0
  423. package/src/ui/organisms/Timeline/Timeline.stories.tsx +230 -0
  424. package/src/ui/organisms/Timeline/Timeline.test.tsx +47 -0
  425. package/src/ui/organisms/Timeline/Timeline.tsx +179 -0
  426. package/src/ui/organisms/Timeline/index.ts +2 -0
  427. package/src/ui/organisms/Toast/Toast.stories.tsx +169 -0
  428. package/src/ui/organisms/Toast/Toast.test.tsx +537 -0
  429. package/src/ui/organisms/Toast/Toast.tsx +144 -0
  430. package/src/ui/organisms/Toast/ToastContainer.tsx +54 -0
  431. package/src/ui/organisms/Toast/ToastContext.tsx +38 -0
  432. package/src/ui/organisms/Toast/ToastProvider.tsx +56 -0
  433. package/src/ui/organisms/Toast/index.ts +17 -0
  434. package/src/ui/organisms/Toast/useToast.ts +70 -0
  435. package/src/ui/organisms/index.ts +17 -2
  436. package/src/ui/providers/AdvancedThemeProvider.tsx +229 -0
  437. package/src/ui/providers/index.ts +14 -0
  438. package/src/ui/themes/README.md +281 -0
  439. package/src/ui/themes/ThemeBuilder.ts +149 -0
  440. package/src/ui/themes/ThemeRegistry.ts +187 -0
  441. package/src/ui/themes/index.ts +20 -0
  442. package/src/ui/themes/types.ts +53 -0
  443. package/src/ui/themes/utils.ts +70 -0
  444. package/src/ui/tokens/README.md +212 -0
  445. package/src/ui/tokens/TokenVisualizations.tsx +273 -0
  446. package/src/ui/tokens/Tokens.mdx +348 -0
  447. package/src/ui/tokens/animations.ts +157 -0
  448. package/src/ui/tokens/borders.ts +121 -0
  449. package/src/ui/tokens/gradients.ts +154 -0
  450. package/src/ui/tokens/index.ts +57 -0
  451. package/src/ui/tokens/opacity.ts +107 -0
  452. package/src/ui/tokens/radius.ts +107 -0
  453. package/src/ui/tokens/shadows.ts +92 -0
  454. package/src/ui/tokens/tokens.factory.ts +124 -0
  455. package/src/ui/tokens/z-index.ts +113 -0
  456. package/src/ui/utils/index.ts +10 -0
  457. package/src/App.css +0 -42
  458. package/src/App.tsx +0 -35
  459. package/src/index.css +0 -68
  460. package/src/main.tsx +0 -15
@@ -0,0 +1,284 @@
1
+ import { Meta } from '@storybook/addon-docs/blocks';
2
+
3
+ <Meta title="Design System/Getting Started" />
4
+
5
+ # Getting Started
6
+
7
+ Este guia irá ajudá-lo a começar a usar o React Design System rapidamente.
8
+
9
+ ## Instalação
10
+
11
+ ### NPM
12
+
13
+ ```bash
14
+ npm install @fabio.caffarello/react-design-system
15
+ ```
16
+
17
+ ### Yarn
18
+
19
+ ```bash
20
+ yarn add @fabio.caffarello/react-design-system
21
+ ```
22
+
23
+ ### PNPM
24
+
25
+ ```bash
26
+ pnpm add @fabio.caffarello/react-design-system
27
+ ```
28
+
29
+ ## Configuração Inicial
30
+
31
+ ### 1. Configurar o Theme Provider
32
+
33
+ Envolva sua aplicação com o `AdvancedThemeProvider`:
34
+
35
+ ```tsx
36
+ import { AdvancedThemeProvider } from '@fabio.caffarello/react-design-system';
37
+
38
+ function App() {
39
+ return (
40
+ <AdvancedThemeProvider defaultTheme="light">
41
+ {/* Sua aplicação aqui */}
42
+ </AdvancedThemeProvider>
43
+ );
44
+ }
45
+ ```
46
+
47
+ ### 2. Importar Estilos
48
+
49
+ Se você estiver usando TailwindCSS, certifique-se de que os estilos do design system estão incluídos:
50
+
51
+ ```tsx
52
+ // No seu arquivo principal (ex: main.tsx)
53
+ import '@fabio.caffarello/react-design-system/dist/style.css';
54
+ ```
55
+
56
+ ### 3. Primeiro Componente
57
+
58
+ Agora você pode usar os componentes:
59
+
60
+ ```tsx
61
+ import { Button, Input, Card } from '@fabio.caffarello/react-design-system';
62
+
63
+ function MyComponent() {
64
+ return (
65
+ <Card padding="large">
66
+ <Input placeholder="Enter your name" />
67
+ <Button variant="primary">Submit</Button>
68
+ </Card>
69
+ );
70
+ }
71
+ ```
72
+
73
+ ## Estrutura de Imports
74
+
75
+ ### Import Completo
76
+
77
+ ```tsx
78
+ import { Button, Input, Card } from '@fabio.caffarello/react-design-system';
79
+ ```
80
+
81
+ ### Import por Categoria (Recomendado)
82
+
83
+ Para melhor tree shaking e performance:
84
+
85
+ ```tsx
86
+ // Atoms
87
+ import { Button, Input } from '@fabio.caffarello/react-design-system/atoms';
88
+
89
+ // Molecules
90
+ import { Card, SearchInput } from '@fabio.caffarello/react-design-system/molecules';
91
+
92
+ // Organisms
93
+ import { Table, DataGrid } from '@fabio.caffarello/react-design-system/organisms';
94
+
95
+ // Tokens
96
+ import { getColorClass, getSpacingClass } from '@fabio.caffarello/react-design-system/tokens';
97
+ ```
98
+
99
+ ## Exemplo Completo
100
+
101
+ ```tsx
102
+ import React from 'react';
103
+ import {
104
+ AdvancedThemeProvider,
105
+ Button,
106
+ Input,
107
+ Card,
108
+ Label,
109
+ } from '@fabio.caffarello/react-design-system';
110
+
111
+ function LoginForm() {
112
+ const [email, setEmail] = React.useState('');
113
+ const [password, setPassword] = React.useState('');
114
+
115
+ const handleSubmit = (e: React.FormEvent) => {
116
+ e.preventDefault();
117
+ console.log({ email, password });
118
+ };
119
+
120
+ return (
121
+ <form onSubmit={handleSubmit}>
122
+ <Card padding="large">
123
+ <Label htmlFor="email">Email</Label>
124
+ <Input
125
+ id="email"
126
+ type="email"
127
+ value={email}
128
+ onChange={(e) => setEmail(e.target.value)}
129
+ required
130
+ />
131
+
132
+ <Label htmlFor="password">Password</Label>
133
+ <Input
134
+ id="password"
135
+ type="password"
136
+ value={password}
137
+ onChange={(e) => setPassword(e.target.value)}
138
+ required
139
+ />
140
+
141
+ <Button type="submit" variant="primary">
142
+ Login
143
+ </Button>
144
+ </Card>
145
+ </form>
146
+ );
147
+ }
148
+
149
+ function App() {
150
+ return (
151
+ <AdvancedThemeProvider defaultTheme="light">
152
+ <LoginForm />
153
+ </AdvancedThemeProvider>
154
+ );
155
+ }
156
+
157
+ export default App;
158
+ ```
159
+
160
+ ## Usando Design Tokens
161
+
162
+ ### Cores
163
+
164
+ ```tsx
165
+ import { getColorClass } from '@fabio.caffarello/react-design-system';
166
+
167
+ <div className={getColorClass('primary', 'DEFAULT', 'bg')}>
168
+ Primary background
169
+ </div>
170
+ ```
171
+
172
+ ### Espaçamento
173
+
174
+ ```tsx
175
+ import { getSpacingClass } from '@fabio.caffarello/react-design-system';
176
+
177
+ <div className={getSpacingClass('md', 'p')}>
178
+ Medium padding
179
+ </div>
180
+ ```
181
+
182
+ ### Tipografia
183
+
184
+ ```tsx
185
+ import { getTypographyClasses } from '@fabio.caffarello/react-design-system';
186
+
187
+ <h1 className={getTypographyClasses('h1')}>
188
+ Heading 1
189
+ </h1>
190
+ ```
191
+
192
+ ## Temas
193
+
194
+ ### Mudar Tema
195
+
196
+ ```tsx
197
+ import { useAdvancedTheme } from '@fabio.caffarello/react-design-system';
198
+
199
+ function ThemeToggle() {
200
+ const { currentTheme, setTheme } = useAdvancedTheme();
201
+
202
+ return (
203
+ <button onClick={() => setTheme(currentTheme === 'light' ? 'dark' : 'light')}>
204
+ Switch to {currentTheme === 'light' ? 'dark' : 'light'} mode
205
+ </button>
206
+ );
207
+ }
208
+ ```
209
+
210
+ ### Criar Tema Customizado
211
+
212
+ ```tsx
213
+ import { AdvancedThemeProvider, ThemeBuilder } from '@fabio.caffarello/react-design-system';
214
+
215
+ const customTheme = ThemeBuilder.create({
216
+ name: 'my-theme',
217
+ base: 'light',
218
+ colors: {
219
+ primary: {
220
+ DEFAULT: { hex: '#your-color' },
221
+ },
222
+ },
223
+ }).build();
224
+
225
+ function App() {
226
+ return (
227
+ <AdvancedThemeProvider
228
+ defaultTheme="light"
229
+ initialThemes={[customTheme]}
230
+ >
231
+ {/* Sua aplicação */}
232
+ </AdvancedThemeProvider>
233
+ );
234
+ }
235
+ ```
236
+
237
+ ## TypeScript
238
+
239
+ O design system é totalmente tipado. Você terá autocomplete completo e type checking:
240
+
241
+ ```tsx
242
+ import type { ButtonProps } from '@fabio.caffarello/react-design-system';
243
+
244
+ function MyButton(props: ButtonProps) {
245
+ return <Button {...props} />;
246
+ }
247
+ ```
248
+
249
+ ## Próximos Passos
250
+
251
+ 1. Explore os [componentes disponíveis](./Design%20System/Components)
252
+ 2. Veja a [matriz de status](./Design%20System/Component%20Status)
253
+ 3. Leia as [melhores práticas](./Design%20System/Best%20Practices)
254
+ 4. Consulte o [guia de composição](./Design%20System/Component%20Composition)
255
+ 5. Veja o [guia de acessibilidade](./Design%20System/Accessibility)
256
+
257
+ ## Troubleshooting
258
+
259
+ ### Componentes não aparecem
260
+
261
+ Certifique-se de que:
262
+ 1. O `AdvancedThemeProvider` está envolvendo sua aplicação
263
+ 2. Os estilos CSS estão importados
264
+ 3. Você está importando os componentes corretamente
265
+
266
+ ### Erros de TypeScript
267
+
268
+ Certifique-se de que:
269
+ 1. Você tem TypeScript 5+ instalado
270
+ 2. Os tipos estão sendo resolvidos corretamente
271
+ 3. Você está usando os tipos exportados do design system
272
+
273
+ ### Estilos não aplicados
274
+
275
+ Certifique-se de que:
276
+ 1. TailwindCSS está configurado
277
+ 2. Os estilos do design system estão importados
278
+ 3. O tema está configurado corretamente
279
+
280
+ ## Recursos
281
+
282
+ - [Documentação Completa](./Design%20System/Overview)
283
+ - [GitHub Repository](https://github.com/fabiocaffarello/react-design-system)
284
+ - [Issues](https://github.com/fabiocaffarello/react-design-system/issues)
@@ -0,0 +1,297 @@
1
+ import { Meta } from '@storybook/addon-docs/blocks';
2
+
3
+ <Meta title="Design System/Migration Guide" />
4
+
5
+ # Migration Guide
6
+
7
+ Este guia ajuda você a migrar de versões anteriores do React Design System ou de outras bibliotecas de componentes.
8
+
9
+ ## Migração do ThemeProvider para AdvancedThemeProvider
10
+
11
+ ### Antes (v1.8.0)
12
+
13
+ ```tsx
14
+ import { ThemeProvider, useTheme } from '@fabio.caffarello/react-design-system';
15
+
16
+ function App() {
17
+ return (
18
+ <ThemeProvider defaultTheme="light">
19
+ <MyComponent />
20
+ </ThemeProvider>
21
+ );
22
+ }
23
+
24
+ function MyComponent() {
25
+ const { theme, toggleTheme } = useTheme();
26
+ return <button onClick={toggleTheme}>Toggle</button>;
27
+ }
28
+ ```
29
+
30
+ ### Depois (v1.9.0+)
31
+
32
+ ```tsx
33
+ import { AdvancedThemeProvider, useAdvancedTheme } from '@fabio.caffarello/react-design-system';
34
+
35
+ function App() {
36
+ return (
37
+ <AdvancedThemeProvider defaultTheme="light">
38
+ <MyComponent />
39
+ </AdvancedThemeProvider>
40
+ );
41
+ }
42
+
43
+ function MyComponent() {
44
+ const { currentTheme, setTheme } = useAdvancedTheme();
45
+ return (
46
+ <button onClick={() => setTheme(currentTheme === 'light' ? 'dark' : 'light')}>
47
+ Toggle
48
+ </button>
49
+ );
50
+ }
51
+ ```
52
+
53
+ ### Mudanças Principais
54
+
55
+ - `theme` → `currentTheme` (agora é string, não 'light' | 'dark')
56
+ - `toggleTheme()` → `setTheme(themeName)` (mais flexível)
57
+ - `isDark` → `currentTheme === 'dark'` (verificação manual)
58
+ - Suporte a múltiplos temas
59
+ - CSS variables automáticas
60
+
61
+ ## Migração de Imports
62
+
63
+ ### Antes: Import Completo
64
+
65
+ ```tsx
66
+ import { Button, Input, Card } from '@fabio.caffarello/react-design-system';
67
+ ```
68
+
69
+ ### Depois: Import por Categoria (Recomendado)
70
+
71
+ ```tsx
72
+ // Melhor tree shaking e performance
73
+ import { Button, Input } from '@fabio.caffarello/react-design-system/atoms';
74
+ import { Card } from '@fabio.caffarello/react-design-system/molecules';
75
+ ```
76
+
77
+ ## Migração de Tokens
78
+
79
+ ### Antes: Classes Hardcoded
80
+
81
+ ```tsx
82
+ <div className="p-4 bg-indigo-500 text-white">
83
+ Content
84
+ </div>
85
+ ```
86
+
87
+ ### Depois: Design Tokens
88
+
89
+ ```tsx
90
+ import { getSpacingClass, getColorClass } from '@fabio.caffarello/react-design-system';
91
+
92
+ <div className={`${getSpacingClass('md', 'p')} ${getColorClass('primary', 'DEFAULT', 'bg')} ${getColorClass('primary', 'contrast', 'text')}`}>
93
+ Content
94
+ </div>
95
+ ```
96
+
97
+ ## Migração de Outras Bibliotecas
98
+
99
+ ### De Material-UI
100
+
101
+ ```tsx
102
+ // Material-UI
103
+ import { Button, TextField } from '@mui/material';
104
+
105
+ // React Design System
106
+ import { Button, Input } from '@fabio.caffarello/react-design-system/atoms';
107
+ ```
108
+
109
+ **Mudanças:**
110
+ - `TextField` → `Input`
111
+ - Props diferentes (consulte documentação)
112
+ - Sistema de temas diferente
113
+
114
+ ### De Ant Design
115
+
116
+ ```tsx
117
+ // Ant Design
118
+ import { Button, Input } from 'antd';
119
+
120
+ // React Design System
121
+ import { Button, Input } from '@fabio.caffarello/react-design-system/atoms';
122
+ ```
123
+
124
+ **Mudanças:**
125
+ - Props podem ser diferentes
126
+ - Sistema de grid diferente (use CSS Grid/Flexbox)
127
+ - Ícones separados (use lucide-react)
128
+
129
+ ### De Chakra UI
130
+
131
+ ```tsx
132
+ // Chakra UI
133
+ import { Button, Input, Box } from '@chakra-ui/react';
134
+
135
+ // React Design System
136
+ import { Button, Input, BoxWrapper } from '@fabio.caffarello/react-design-system';
137
+ ```
138
+
139
+ **Mudanças:**
140
+ - `Box` → `BoxWrapper` ou `Card`
141
+ - Sistema de espaçamento similar (baseado em 4px)
142
+ - Temas customizados via ThemeBuilder
143
+
144
+ ## Migração de Versões Específicas
145
+
146
+ ### v1.8.0 → v1.9.0
147
+
148
+ #### Novos Componentes
149
+
150
+ ```tsx
151
+ // Novos atoms disponíveis
152
+ import { Switch, Separator, Accordion, Slider, Popover } from '@fabio.caffarello/react-design-system/atoms';
153
+
154
+ // Novos molecules disponíveis
155
+ import { SearchInput, Rating, FileUpload, TimePicker, ColorPicker } from '@fabio.caffarello/react-design-system/molecules';
156
+
157
+ // Novos organisms disponíveis
158
+ import { Stepper, Timeline, CommandPalette, DataGrid } from '@fabio.caffarello/react-design-system/organisms';
159
+ ```
160
+
161
+ #### Novos Tokens
162
+
163
+ ```tsx
164
+ // Novos tokens disponíveis
165
+ import {
166
+ getAnimationClass,
167
+ getZIndexClass,
168
+ getOpacityClass,
169
+ getGradientClass,
170
+ } from '@fabio.caffarello/react-design-system/tokens';
171
+ ```
172
+
173
+ #### Sistema de Temas
174
+
175
+ ```tsx
176
+ // Novo sistema de temas avançado
177
+ import { AdvancedThemeProvider, ThemeBuilder } from '@fabio.caffarello/react-design-system';
178
+
179
+ const customTheme = ThemeBuilder.create({
180
+ name: 'custom',
181
+ base: 'light',
182
+ colors: {
183
+ primary: {
184
+ DEFAULT: { hex: '#custom-color' },
185
+ },
186
+ },
187
+ }).build();
188
+ ```
189
+
190
+ ## Checklist de Migração
191
+
192
+ ### Passo 1: Atualizar Dependências
193
+
194
+ ```bash
195
+ npm install @fabio.caffarello/react-design-system@latest
196
+ ```
197
+
198
+ ### Passo 2: Atualizar Imports
199
+
200
+ - [ ] Substituir `ThemeProvider` por `AdvancedThemeProvider`
201
+ - [ ] Atualizar `useTheme` para `useAdvancedTheme`
202
+ - [ ] Considerar usar imports por categoria
203
+
204
+ ### Passo 3: Atualizar Tokens
205
+
206
+ - [ ] Substituir classes hardcoded por design tokens
207
+ - [ ] Usar funções helper para tokens
208
+
209
+ ### Passo 4: Testar
210
+
211
+ - [ ] Testar todos os componentes
212
+ - [ ] Verificar temas (light/dark)
213
+ - [ ] Verificar acessibilidade
214
+ - [ ] Verificar performance
215
+
216
+ ### Passo 5: Otimizar
217
+
218
+ - [ ] Usar code splitting (imports por categoria)
219
+ - [ ] Remover imports não utilizados
220
+ - [ ] Verificar bundle size
221
+
222
+ ## Exemplos de Migração
223
+
224
+ ### Exemplo 1: Formulário Simples
225
+
226
+ **Antes:**
227
+ ```tsx
228
+ import { ThemeProvider, Input, Button } from '@fabio.caffarello/react-design-system';
229
+
230
+ function LoginForm() {
231
+ return (
232
+ <ThemeProvider>
233
+ <form>
234
+ <input type="email" className="p-2 border" />
235
+ <button className="bg-blue-500 text-white p-2">Login</button>
236
+ </form>
237
+ </ThemeProvider>
238
+ );
239
+ }
240
+ ```
241
+
242
+ **Depois:**
243
+ ```tsx
244
+ import {
245
+ AdvancedThemeProvider,
246
+ Input,
247
+ Button,
248
+ Label,
249
+ } from '@fabio.caffarello/react-design-system';
250
+
251
+ function LoginForm() {
252
+ return (
253
+ <AdvancedThemeProvider defaultTheme="light">
254
+ <form>
255
+ <Label htmlFor="email">Email</Label>
256
+ <Input id="email" type="email" />
257
+ <Button variant="primary" type="submit">Login</Button>
258
+ </form>
259
+ </AdvancedThemeProvider>
260
+ );
261
+ }
262
+ ```
263
+
264
+ ### Exemplo 2: Card com Estilos Customizados
265
+
266
+ **Antes:**
267
+ ```tsx
268
+ <div className="bg-white p-4 rounded-lg shadow-md border border-gray-200">
269
+ <h2 className="text-xl font-bold mb-2">Title</h2>
270
+ <p className="text-gray-600">Content</p>
271
+ </div>
272
+ ```
273
+
274
+ **Depois:**
275
+ ```tsx
276
+ import { Card, Text } from '@fabio.caffarello/react-design-system';
277
+ import { getTypographyClasses } from '@fabio.caffarello/react-design-system/tokens';
278
+
279
+ <Card padding="medium" variant="default">
280
+ <h2 className={getTypographyClasses('h2')}>Title</h2>
281
+ <Text>Content</Text>
282
+ </Card>
283
+ ```
284
+
285
+ ## Suporte
286
+
287
+ Se encontrar problemas durante a migração:
288
+
289
+ 1. Consulte a [documentação completa](./Design%20System/Overview)
290
+ 2. Veja os [exemplos no Storybook](./Design%20System/Components)
291
+ 3. Abra uma [issue no GitHub](https://github.com/fabiocaffarello/react-design-system/issues)
292
+
293
+ ## Recursos Adicionais
294
+
295
+ - [Getting Started Guide](./Design%20System/Getting%20Started)
296
+ - [Best Practices](./Design%20System/Best%20Practices)
297
+ - [Component Composition](./Design%20System/Component%20Composition)