@etus/ui 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1080) hide show
  1. package/dist/chunk-UP2VWCW5.js +38 -0
  2. package/dist/chunk-UP2VWCW5.js.map +1 -0
  3. package/dist/index.d.ts +1177 -228
  4. package/dist/index.js +9506 -4305
  5. package/dist/index.js.map +1 -1
  6. package/dist/jspdf.node.min-CTWP225M.js +39344 -0
  7. package/dist/jspdf.node.min-CTWP225M.js.map +1 -0
  8. package/dist/jspdf.plugin.autotable-AAE7PZKA.js +1908 -0
  9. package/dist/jspdf.plugin.autotable-AAE7PZKA.js.map +1 -0
  10. package/dist/lib/utils.js +1 -0
  11. package/dist/xlsx-PWHBQ6NK.js +31945 -0
  12. package/dist/xlsx-PWHBQ6NK.js.map +1 -0
  13. package/package.json +12 -6
  14. package/styles.css +1 -0
  15. package/src/components/CLAUDE.md +0 -66
  16. package/src/components/advanced/AssetManager/AssetManager.test.tsx +0 -624
  17. package/src/components/advanced/AssetManager/AssetManager.tsx +0 -928
  18. package/src/components/advanced/AssetManager/AssetManager.types.ts +0 -248
  19. package/src/components/advanced/AssetManager/AssetManager.variants.ts +0 -284
  20. package/src/components/advanced/AssetManager/README.md +0 -246
  21. package/src/components/advanced/AssetManager/index.ts +0 -4
  22. package/src/components/advanced/CLAUDE.md +0 -77
  23. package/src/components/advanced/Calendar/Calendar.test.tsx +0 -718
  24. package/src/components/advanced/Calendar/Calendar.tsx +0 -264
  25. package/src/components/advanced/Calendar/Calendar.types.ts +0 -62
  26. package/src/components/advanced/Calendar/Calendar.variants.ts +0 -154
  27. package/src/components/advanced/Calendar/README.md +0 -389
  28. package/src/components/advanced/Calendar/index.ts +0 -3
  29. package/src/components/advanced/Command/Command.test.tsx +0 -1014
  30. package/src/components/advanced/Command/Command.tsx +0 -330
  31. package/src/components/advanced/Command/Command.types.ts +0 -238
  32. package/src/components/advanced/Command/Command.variants.ts +0 -300
  33. package/src/components/advanced/Command/README.md +0 -1259
  34. package/src/components/advanced/Command/index.ts +0 -45
  35. package/src/components/advanced/DragAndDrop/DragAndDrop.test.tsx +0 -573
  36. package/src/components/advanced/DragAndDrop/DragAndDrop.tsx +0 -495
  37. package/src/components/advanced/DragAndDrop/DragAndDrop.types.ts +0 -237
  38. package/src/components/advanced/DragAndDrop/DragAndDrop.variants.ts +0 -156
  39. package/src/components/advanced/DragAndDrop/README.md +0 -284
  40. package/src/components/advanced/DragAndDrop/index.ts +0 -4
  41. package/src/components/advanced/ErrorBoundary/ErrorBoundary.test.tsx +0 -372
  42. package/src/components/advanced/ErrorBoundary/ErrorBoundary.tsx +0 -184
  43. package/src/components/advanced/ErrorBoundary/ErrorBoundary.types.ts +0 -73
  44. package/src/components/advanced/ErrorBoundary/ErrorBoundary.variants.ts +0 -153
  45. package/src/components/advanced/ErrorBoundary/README.md +0 -296
  46. package/src/components/advanced/ErrorBoundary/index.ts +0 -18
  47. package/src/components/advanced/EventCalendar/EventCalendar.test.tsx +0 -535
  48. package/src/components/advanced/EventCalendar/EventCalendar.tsx +0 -1066
  49. package/src/components/advanced/EventCalendar/EventCalendar.types.ts +0 -232
  50. package/src/components/advanced/EventCalendar/EventCalendar.variants.ts +0 -222
  51. package/src/components/advanced/EventCalendar/README.md +0 -330
  52. package/src/components/advanced/EventCalendar/index.ts +0 -35
  53. package/src/components/advanced/FileDropzone/FileDropzone.test.tsx +0 -344
  54. package/src/components/advanced/FileDropzone/FileDropzone.tsx +0 -188
  55. package/src/components/advanced/FileDropzone/FileDropzone.types.ts +0 -47
  56. package/src/components/advanced/FileDropzone/FileDropzone.variants.ts +0 -46
  57. package/src/components/advanced/FileDropzone/README.md +0 -359
  58. package/src/components/advanced/FileDropzone/index.ts +0 -7
  59. package/src/components/advanced/FilePreview/FilePreview.test.tsx +0 -503
  60. package/src/components/advanced/FilePreview/FilePreview.tsx +0 -385
  61. package/src/components/advanced/FilePreview/FilePreview.types.ts +0 -90
  62. package/src/components/advanced/FilePreview/FilePreview.variants.ts +0 -234
  63. package/src/components/advanced/FilePreview/README.md +0 -318
  64. package/src/components/advanced/FilePreview/index.ts +0 -25
  65. package/src/components/advanced/FileUpload/FileUpload.test.tsx +0 -676
  66. package/src/components/advanced/FileUpload/FileUpload.tsx +0 -845
  67. package/src/components/advanced/FileUpload/FileUpload.types.ts +0 -270
  68. package/src/components/advanced/FileUpload/FileUpload.variants.ts +0 -216
  69. package/src/components/advanced/FileUpload/README.md +0 -380
  70. package/src/components/advanced/FileUpload/index.ts +0 -39
  71. package/src/components/advanced/FilterBuilder/FilterBuilder.test.tsx +0 -644
  72. package/src/components/advanced/FilterBuilder/FilterBuilder.tsx +0 -881
  73. package/src/components/advanced/FilterBuilder/FilterBuilder.types.ts +0 -249
  74. package/src/components/advanced/FilterBuilder/FilterBuilder.variants.ts +0 -307
  75. package/src/components/advanced/FilterBuilder/README.md +0 -383
  76. package/src/components/advanced/FilterBuilder/index.ts +0 -48
  77. package/src/components/advanced/MarkdownEditor/MarkdownEditor.test.tsx +0 -468
  78. package/src/components/advanced/MarkdownEditor/MarkdownEditor.tsx +0 -556
  79. package/src/components/advanced/MarkdownEditor/MarkdownEditor.types.ts +0 -108
  80. package/src/components/advanced/MarkdownEditor/MarkdownEditor.variants.ts +0 -62
  81. package/src/components/advanced/MarkdownEditor/README.md +0 -352
  82. package/src/components/advanced/MarkdownEditor/index.ts +0 -15
  83. package/src/components/advanced/Portal/Portal.test.tsx +0 -406
  84. package/src/components/advanced/Portal/Portal.tsx +0 -77
  85. package/src/components/advanced/Portal/Portal.types.ts +0 -28
  86. package/src/components/advanced/Portal/Portal.variants.ts +0 -95
  87. package/src/components/advanced/Portal/README.md +0 -326
  88. package/src/components/advanced/Portal/index.ts +0 -9
  89. package/src/components/advanced/RichTextEditor/README.md +0 -383
  90. package/src/components/advanced/RichTextEditor/RichTextEditor.test.tsx +0 -394
  91. package/src/components/advanced/RichTextEditor/RichTextEditor.tsx +0 -651
  92. package/src/components/advanced/RichTextEditor/RichTextEditor.types.ts +0 -77
  93. package/src/components/advanced/RichTextEditor/RichTextEditor.variants.ts +0 -151
  94. package/src/components/advanced/RichTextEditor/index.ts +0 -24
  95. package/src/components/advanced/Search/README.md +0 -391
  96. package/src/components/advanced/Search/Search.test.tsx +0 -567
  97. package/src/components/advanced/Search/Search.tsx +0 -829
  98. package/src/components/advanced/Search/Search.types.ts +0 -243
  99. package/src/components/advanced/Search/Search.variants.ts +0 -358
  100. package/src/components/advanced/Search/index.ts +0 -52
  101. package/src/components/advanced/SortableList/README.md +0 -448
  102. package/src/components/advanced/SortableList/SortableList.test.tsx +0 -317
  103. package/src/components/advanced/SortableList/SortableList.tsx +0 -392
  104. package/src/components/advanced/SortableList/SortableList.types.ts +0 -122
  105. package/src/components/advanced/SortableList/SortableList.variants.ts +0 -141
  106. package/src/components/advanced/SortableList/index.ts +0 -33
  107. package/src/components/advanced/VersionControl/README.md +0 -440
  108. package/src/components/advanced/VersionControl/VersionControl.test.tsx +0 -517
  109. package/src/components/advanced/VersionControl/VersionControl.tsx +0 -758
  110. package/src/components/advanced/VersionControl/VersionControl.types.ts +0 -176
  111. package/src/components/advanced/VersionControl/VersionControl.variants.ts +0 -203
  112. package/src/components/advanced/VersionControl/index.ts +0 -33
  113. package/src/components/advanced/index.ts +0 -17
  114. package/src/components/data-display/Accordion/Accordion.test.tsx +0 -519
  115. package/src/components/data-display/Accordion/Accordion.tsx +0 -164
  116. package/src/components/data-display/Accordion/Accordion.types.ts +0 -37
  117. package/src/components/data-display/Accordion/Accordion.variants.ts +0 -112
  118. package/src/components/data-display/Accordion/README.md +0 -976
  119. package/src/components/data-display/Accordion/index.ts +0 -31
  120. package/src/components/data-display/AreaChart/AreaChart.test.tsx +0 -529
  121. package/src/components/data-display/AreaChart/AreaChart.tsx +0 -318
  122. package/src/components/data-display/AreaChart/AreaChart.types.ts +0 -169
  123. package/src/components/data-display/AreaChart/AreaChart.variants.ts +0 -45
  124. package/src/components/data-display/AreaChart/README.md +0 -229
  125. package/src/components/data-display/AreaChart/index.ts +0 -2
  126. package/src/components/data-display/Banner/Banner.test.tsx +0 -648
  127. package/src/components/data-display/Banner/Banner.tsx +0 -111
  128. package/src/components/data-display/Banner/Banner.types.ts +0 -51
  129. package/src/components/data-display/Banner/Banner.variants.ts +0 -37
  130. package/src/components/data-display/Banner/README.md +0 -351
  131. package/src/components/data-display/Banner/index.ts +0 -2
  132. package/src/components/data-display/BarChart/BarChart.test.tsx +0 -536
  133. package/src/components/data-display/BarChart/BarChart.tsx +0 -305
  134. package/src/components/data-display/BarChart/BarChart.types.ts +0 -145
  135. package/src/components/data-display/BarChart/BarChart.variants.ts +0 -61
  136. package/src/components/data-display/BarChart/README.md +0 -205
  137. package/src/components/data-display/BarChart/index.ts +0 -2
  138. package/src/components/data-display/BarList/BarList.tsx +0 -172
  139. package/src/components/data-display/BarList/BarList.types.ts +0 -69
  140. package/src/components/data-display/BarList/BarList.variants.ts +0 -63
  141. package/src/components/data-display/BarList/index.ts +0 -2
  142. package/src/components/data-display/CLAUDE.md +0 -90
  143. package/src/components/data-display/Callout/Callout.test.tsx +0 -516
  144. package/src/components/data-display/Callout/Callout.tsx +0 -112
  145. package/src/components/data-display/Callout/Callout.types.ts +0 -37
  146. package/src/components/data-display/Callout/Callout.variants.ts +0 -48
  147. package/src/components/data-display/Callout/README.md +0 -341
  148. package/src/components/data-display/Callout/index.ts +0 -2
  149. package/src/components/data-display/Carousel/Carousel.test.tsx +0 -386
  150. package/src/components/data-display/Carousel/Carousel.tsx +0 -241
  151. package/src/components/data-display/Carousel/Carousel.types.ts +0 -20
  152. package/src/components/data-display/Carousel/Carousel.variants.ts +0 -125
  153. package/src/components/data-display/Carousel/README.md +0 -711
  154. package/src/components/data-display/Carousel/index.ts +0 -1
  155. package/src/components/data-display/CategoryBar/CategoryBar.tsx +0 -220
  156. package/src/components/data-display/CategoryBar/CategoryBar.types.ts +0 -80
  157. package/src/components/data-display/CategoryBar/CategoryBar.variants.ts +0 -85
  158. package/src/components/data-display/CategoryBar/index.ts +0 -2
  159. package/src/components/data-display/Chart/Chart.test.tsx +0 -432
  160. package/src/components/data-display/Chart/Chart.tsx +0 -476
  161. package/src/components/data-display/Chart/Chart.types.ts +0 -24
  162. package/src/components/data-display/Chart/Chart.variants.ts +0 -106
  163. package/src/components/data-display/Chart/README.md +0 -674
  164. package/src/components/data-display/Chart/index.ts +0 -1
  165. package/src/components/data-display/ChartCard/ChartCard.test.tsx +0 -327
  166. package/src/components/data-display/ChartCard/ChartCard.tsx +0 -201
  167. package/src/components/data-display/ChartCard/ChartCard.types.ts +0 -68
  168. package/src/components/data-display/ChartCard/ChartCard.variants.ts +0 -63
  169. package/src/components/data-display/ChartCard/index.ts +0 -17
  170. package/src/components/data-display/ChartLegend/ChartLegend.test.tsx +0 -165
  171. package/src/components/data-display/ChartLegend/ChartLegend.types.ts +0 -88
  172. package/src/components/data-display/ChartLegend/README.md +0 -317
  173. package/src/components/data-display/ChartLegend/index.ts +0 -22
  174. package/src/components/data-display/ComboChart/ComboChart.tsx +0 -380
  175. package/src/components/data-display/ComboChart/ComboChart.types.ts +0 -224
  176. package/src/components/data-display/ComboChart/index.ts +0 -2
  177. package/src/components/data-display/DashboardCard/DashboardCard.test.tsx +0 -289
  178. package/src/components/data-display/DashboardCard/DashboardCard.tsx +0 -285
  179. package/src/components/data-display/DashboardCard/DashboardCard.types.ts +0 -74
  180. package/src/components/data-display/DashboardCard/DashboardCard.variants.ts +0 -67
  181. package/src/components/data-display/DashboardCard/index.ts +0 -25
  182. package/src/components/data-display/DashboardFilterbar/DashboardFilterbar.tsx +0 -151
  183. package/src/components/data-display/DashboardFilterbar/DashboardFilterbar.types.ts +0 -39
  184. package/src/components/data-display/DashboardFilterbar/DashboardFilterbar.variants.ts +0 -30
  185. package/src/components/data-display/DashboardFilterbar/index.ts +0 -10
  186. package/src/components/data-display/DataTable/DataTable.test.tsx +0 -654
  187. package/src/components/data-display/DataTable/DataTable.tsx +0 -529
  188. package/src/components/data-display/DataTable/DataTable.types.ts +0 -190
  189. package/src/components/data-display/DataTable/DataTable.variants.ts +0 -79
  190. package/src/components/data-display/DataTable/README.md +0 -447
  191. package/src/components/data-display/DataTable/index.ts +0 -2
  192. package/src/components/data-display/DeltaBar/DeltaBar.tsx +0 -100
  193. package/src/components/data-display/DeltaBar/DeltaBar.types.ts +0 -57
  194. package/src/components/data-display/DeltaBar/DeltaBar.variants.ts +0 -40
  195. package/src/components/data-display/DeltaBar/index.ts +0 -2
  196. package/src/components/data-display/EmptyState/EmptyState.test.tsx +0 -368
  197. package/src/components/data-display/EmptyState/EmptyState.tsx +0 -91
  198. package/src/components/data-display/EmptyState/EmptyState.types.ts +0 -9
  199. package/src/components/data-display/EmptyState/EmptyState.variants.ts +0 -28
  200. package/src/components/data-display/EmptyState/README.md +0 -746
  201. package/src/components/data-display/EmptyState/index.ts +0 -1
  202. package/src/components/data-display/Feed/Feed.test.tsx +0 -668
  203. package/src/components/data-display/Feed/Feed.tsx +0 -290
  204. package/src/components/data-display/Feed/Feed.types.ts +0 -104
  205. package/src/components/data-display/Feed/Feed.variants.ts +0 -64
  206. package/src/components/data-display/Feed/README.md +0 -326
  207. package/src/components/data-display/Feed/index.ts +0 -17
  208. package/src/components/data-display/FunnelChart/FunnelChart.tsx +0 -177
  209. package/src/components/data-display/FunnelChart/FunnelChart.types.ts +0 -145
  210. package/src/components/data-display/FunnelChart/index.ts +0 -2
  211. package/src/components/data-display/GaugeChart/GaugeChart.test.tsx +0 -129
  212. package/src/components/data-display/GaugeChart/GaugeChart.tsx +0 -332
  213. package/src/components/data-display/GaugeChart/GaugeChart.types.ts +0 -53
  214. package/src/components/data-display/GaugeChart/GaugeChart.variants.ts +0 -56
  215. package/src/components/data-display/GaugeChart/README.md +0 -305
  216. package/src/components/data-display/GaugeChart/index.ts +0 -3
  217. package/src/components/data-display/Heatmap/Heatmap.test.tsx +0 -630
  218. package/src/components/data-display/Heatmap/Heatmap.tsx +0 -569
  219. package/src/components/data-display/Heatmap/Heatmap.types.ts +0 -120
  220. package/src/components/data-display/Heatmap/Heatmap.variants.ts +0 -72
  221. package/src/components/data-display/Heatmap/README.md +0 -321
  222. package/src/components/data-display/Heatmap/index.ts +0 -2
  223. package/src/components/data-display/HoverCard/HoverCard.test.tsx +0 -314
  224. package/src/components/data-display/HoverCard/HoverCard.tsx +0 -40
  225. package/src/components/data-display/HoverCard/HoverCard.types.ts +0 -21
  226. package/src/components/data-display/HoverCard/HoverCard.variants.ts +0 -29
  227. package/src/components/data-display/HoverCard/README.md +0 -624
  228. package/src/components/data-display/HoverCard/index.ts +0 -1
  229. package/src/components/data-display/ImageGallery/ImageGallery.test.tsx +0 -519
  230. package/src/components/data-display/ImageGallery/ImageGallery.tsx +0 -733
  231. package/src/components/data-display/ImageGallery/ImageGallery.types.ts +0 -109
  232. package/src/components/data-display/ImageGallery/ImageGallery.variants.ts +0 -58
  233. package/src/components/data-display/ImageGallery/README.md +0 -352
  234. package/src/components/data-display/ImageGallery/index.ts +0 -9
  235. package/src/components/data-display/Item/Item.test.tsx +0 -476
  236. package/src/components/data-display/Item/Item.tsx +0 -195
  237. package/src/components/data-display/Item/Item.types.ts +0 -23
  238. package/src/components/data-display/Item/Item.variants.ts +0 -51
  239. package/src/components/data-display/Item/README.md +0 -759
  240. package/src/components/data-display/Item/index.ts +0 -1
  241. package/src/components/data-display/KPICard/KPICard.test.tsx +0 -445
  242. package/src/components/data-display/KPICard/KPICard.tsx +0 -203
  243. package/src/components/data-display/KPICard/KPICard.types.ts +0 -32
  244. package/src/components/data-display/KPICard/KPICard.variants.ts +0 -64
  245. package/src/components/data-display/KPICard/README.md +0 -380
  246. package/src/components/data-display/KPICard/index.ts +0 -7
  247. package/src/components/data-display/Lightbox/Lightbox.test.tsx +0 -574
  248. package/src/components/data-display/Lightbox/Lightbox.tsx +0 -466
  249. package/src/components/data-display/Lightbox/Lightbox.types.ts +0 -53
  250. package/src/components/data-display/Lightbox/Lightbox.variants.ts +0 -99
  251. package/src/components/data-display/Lightbox/README.md +0 -397
  252. package/src/components/data-display/Lightbox/index.ts +0 -2
  253. package/src/components/data-display/LineChart/LineChart.test.tsx +0 -654
  254. package/src/components/data-display/LineChart/LineChart.tsx +0 -295
  255. package/src/components/data-display/LineChart/LineChart.types.ts +0 -168
  256. package/src/components/data-display/LineChart/LineChart.variants.ts +0 -52
  257. package/src/components/data-display/LineChart/README.md +0 -242
  258. package/src/components/data-display/LineChart/index.ts +0 -8
  259. package/src/components/data-display/List/List.test.tsx +0 -756
  260. package/src/components/data-display/List/List.tsx +0 -455
  261. package/src/components/data-display/List/List.types.ts +0 -67
  262. package/src/components/data-display/List/List.variants.ts +0 -69
  263. package/src/components/data-display/List/README.md +0 -374
  264. package/src/components/data-display/List/index.ts +0 -9
  265. package/src/components/data-display/MarkerBar/MarkerBar.tsx +0 -130
  266. package/src/components/data-display/MarkerBar/MarkerBar.types.ts +0 -67
  267. package/src/components/data-display/MarkerBar/MarkerBar.variants.ts +0 -75
  268. package/src/components/data-display/MarkerBar/index.ts +0 -3
  269. package/src/components/data-display/PieChart/PieChart.test.tsx +0 -655
  270. package/src/components/data-display/PieChart/PieChart.tsx +0 -327
  271. package/src/components/data-display/PieChart/PieChart.types.ts +0 -134
  272. package/src/components/data-display/PieChart/PieChart.variants.ts +0 -49
  273. package/src/components/data-display/PieChart/README.md +0 -261
  274. package/src/components/data-display/PieChart/index.ts +0 -2
  275. package/src/components/data-display/ScatterChart/ScatterChart.tsx +0 -310
  276. package/src/components/data-display/ScatterChart/ScatterChart.types.ts +0 -272
  277. package/src/components/data-display/ScatterChart/index.ts +0 -2
  278. package/src/components/data-display/SingleStat/README.md +0 -363
  279. package/src/components/data-display/SingleStat/SingleStat.test.tsx +0 -223
  280. package/src/components/data-display/SingleStat/SingleStat.tsx +0 -251
  281. package/src/components/data-display/SingleStat/SingleStat.types.ts +0 -71
  282. package/src/components/data-display/SingleStat/SingleStat.variants.ts +0 -51
  283. package/src/components/data-display/SingleStat/index.ts +0 -6
  284. package/src/components/data-display/Sparkline/README.md +0 -321
  285. package/src/components/data-display/Sparkline/Sparkline.test.tsx +0 -276
  286. package/src/components/data-display/Sparkline/Sparkline.tsx +0 -971
  287. package/src/components/data-display/Sparkline/Sparkline.types.ts +0 -147
  288. package/src/components/data-display/Sparkline/Sparkline.variants.ts +0 -52
  289. package/src/components/data-display/Sparkline/index.ts +0 -9
  290. package/src/components/data-display/Table/README.md +0 -821
  291. package/src/components/data-display/Table/Table.test.tsx +0 -732
  292. package/src/components/data-display/Table/Table.tsx +0 -123
  293. package/src/components/data-display/Table/Table.types.ts +0 -20
  294. package/src/components/data-display/Table/Table.variants.ts +0 -123
  295. package/src/components/data-display/Table/index.ts +0 -1
  296. package/src/components/data-display/Timeline/README.md +0 -366
  297. package/src/components/data-display/Timeline/Timeline.test.tsx +0 -701
  298. package/src/components/data-display/Timeline/Timeline.tsx +0 -328
  299. package/src/components/data-display/Timeline/Timeline.types.ts +0 -59
  300. package/src/components/data-display/Timeline/Timeline.variants.ts +0 -152
  301. package/src/components/data-display/Timeline/index.ts +0 -15
  302. package/src/components/data-display/Tracker/Tracker.tsx +0 -105
  303. package/src/components/data-display/Tracker/Tracker.types.ts +0 -45
  304. package/src/components/data-display/Tracker/Tracker.variants.ts +0 -24
  305. package/src/components/data-display/Tracker/index.ts +0 -2
  306. package/src/components/data-display/VirtualTable/README.md +0 -383
  307. package/src/components/data-display/VirtualTable/VirtualTable.test.tsx +0 -295
  308. package/src/components/data-display/VirtualTable/VirtualTable.tsx +0 -354
  309. package/src/components/data-display/VirtualTable/VirtualTable.types.ts +0 -62
  310. package/src/components/data-display/VirtualTable/VirtualTable.variants.ts +0 -61
  311. package/src/components/data-display/VirtualTable/index.ts +0 -2
  312. package/src/components/data-display/index.ts +0 -35
  313. package/src/components/feedback/Alert/Alert.test.tsx +0 -614
  314. package/src/components/feedback/Alert/Alert.tsx +0 -48
  315. package/src/components/feedback/Alert/Alert.types.ts +0 -42
  316. package/src/components/feedback/Alert/Alert.variants.ts +0 -20
  317. package/src/components/feedback/Alert/README.md +0 -522
  318. package/src/components/feedback/Alert/index.ts +0 -3
  319. package/src/components/feedback/AlertDialog/AlertDialog.test.tsx +0 -1237
  320. package/src/components/feedback/AlertDialog/AlertDialog.tsx +0 -160
  321. package/src/components/feedback/AlertDialog/AlertDialog.types.ts +0 -139
  322. package/src/components/feedback/AlertDialog/README.md +0 -723
  323. package/src/components/feedback/AlertDialog/index.ts +0 -2
  324. package/src/components/feedback/CLAUDE.md +0 -87
  325. package/src/components/feedback/ConfirmModal/ConfirmModal.test.tsx +0 -404
  326. package/src/components/feedback/ConfirmModal/ConfirmModal.tsx +0 -139
  327. package/src/components/feedback/ConfirmModal/ConfirmModal.types.ts +0 -117
  328. package/src/components/feedback/ConfirmModal/README.md +0 -546
  329. package/src/components/feedback/ConfirmModal/index.ts +0 -2
  330. package/src/components/feedback/Dialog/Dialog.test.tsx +0 -1070
  331. package/src/components/feedback/Dialog/Dialog.tsx +0 -137
  332. package/src/components/feedback/Dialog/Dialog.types.ts +0 -119
  333. package/src/components/feedback/Dialog/README.md +0 -770
  334. package/src/components/feedback/Dialog/index.ts +0 -2
  335. package/src/components/feedback/ErrorPage/ErrorPage.test.tsx +0 -338
  336. package/src/components/feedback/ErrorPage/ErrorPage.tsx +0 -232
  337. package/src/components/feedback/ErrorPage/ErrorPage.types.ts +0 -95
  338. package/src/components/feedback/ErrorPage/README.md +0 -573
  339. package/src/components/feedback/ErrorPage/index.ts +0 -6
  340. package/src/components/feedback/FocusTrap/FocusTrap.test.tsx +0 -378
  341. package/src/components/feedback/FocusTrap/FocusTrap.tsx +0 -115
  342. package/src/components/feedback/FocusTrap/FocusTrap.types.ts +0 -119
  343. package/src/components/feedback/FocusTrap/README.md +0 -571
  344. package/src/components/feedback/FocusTrap/index.ts +0 -2
  345. package/src/components/feedback/Message/Message.test.tsx +0 -143
  346. package/src/components/feedback/Message/Message.tsx +0 -66
  347. package/src/components/feedback/Message/Message.types.ts +0 -44
  348. package/src/components/feedback/Message/Message.variants.ts +0 -24
  349. package/src/components/feedback/Message/README.md +0 -522
  350. package/src/components/feedback/Message/index.ts +0 -2
  351. package/src/components/feedback/Modal/Modal.test.tsx +0 -475
  352. package/src/components/feedback/Modal/Modal.tsx +0 -168
  353. package/src/components/feedback/Modal/Modal.types.ts +0 -91
  354. package/src/components/feedback/Modal/README.md +0 -517
  355. package/src/components/feedback/Modal/index.ts +0 -2
  356. package/src/components/feedback/Notification/Notification.test.tsx +0 -908
  357. package/src/components/feedback/Notification/Notification.tsx +0 -222
  358. package/src/components/feedback/Notification/Notification.types.ts +0 -90
  359. package/src/components/feedback/Notification/Notification.variants.ts +0 -54
  360. package/src/components/feedback/Notification/README.md +0 -602
  361. package/src/components/feedback/Notification/index.ts +0 -11
  362. package/src/components/feedback/Popover/Popover.test.tsx +0 -901
  363. package/src/components/feedback/Popover/Popover.tsx +0 -60
  364. package/src/components/feedback/Popover/Popover.types.ts +0 -158
  365. package/src/components/feedback/Popover/Popover.variants.ts +0 -27
  366. package/src/components/feedback/Popover/README.md +0 -700
  367. package/src/components/feedback/Popover/index.ts +0 -2
  368. package/src/components/feedback/Toast/README.md +0 -613
  369. package/src/components/feedback/Toast/Toast.test.tsx +0 -1116
  370. package/src/components/feedback/Toast/Toast.tsx +0 -44
  371. package/src/components/feedback/Toast/Toast.types.ts +0 -156
  372. package/src/components/feedback/Toast/index.ts +0 -1
  373. package/src/components/feedback/Tooltip/README.md +0 -671
  374. package/src/components/feedback/Tooltip/Tooltip.test.tsx +0 -413
  375. package/src/components/feedback/Tooltip/Tooltip.tsx +0 -110
  376. package/src/components/feedback/Tooltip/Tooltip.types.ts +0 -138
  377. package/src/components/feedback/Tooltip/Tooltip.variants.ts +0 -54
  378. package/src/components/feedback/Tooltip/index.ts +0 -3
  379. package/src/components/feedback/index.ts +0 -13
  380. package/src/components/forms/Autocomplete/Autocomplete.test.tsx +0 -2351
  381. package/src/components/forms/Autocomplete/Autocomplete.tsx +0 -696
  382. package/src/components/forms/Autocomplete/Autocomplete.types.ts +0 -211
  383. package/src/components/forms/Autocomplete/Autocomplete.variants.ts +0 -154
  384. package/src/components/forms/Autocomplete/README.md +0 -919
  385. package/src/components/forms/Autocomplete/index.ts +0 -7
  386. package/src/components/forms/CLAUDE.md +0 -124
  387. package/src/components/forms/Checkbox/Checkbox.test.tsx +0 -475
  388. package/src/components/forms/Checkbox/Checkbox.tsx +0 -35
  389. package/src/components/forms/Checkbox/Checkbox.types.ts +0 -24
  390. package/src/components/forms/Checkbox/Checkbox.variants.ts +0 -46
  391. package/src/components/forms/Checkbox/README.md +0 -861
  392. package/src/components/forms/Checkbox/index.ts +0 -3
  393. package/src/components/forms/CheckboxGroup/CheckboxGroup.test.tsx +0 -338
  394. package/src/components/forms/CheckboxGroup/CheckboxGroup.tsx +0 -212
  395. package/src/components/forms/CheckboxGroup/CheckboxGroup.types.ts +0 -150
  396. package/src/components/forms/CheckboxGroup/CheckboxGroup.variants.ts +0 -85
  397. package/src/components/forms/CheckboxGroup/README.md +0 -124
  398. package/src/components/forms/CheckboxGroup/index.ts +0 -21
  399. package/src/components/forms/ColorPicker/ColorPicker.test.tsx +0 -916
  400. package/src/components/forms/ColorPicker/ColorPicker.tsx +0 -282
  401. package/src/components/forms/ColorPicker/ColorPicker.types.ts +0 -99
  402. package/src/components/forms/ColorPicker/ColorPicker.variants.ts +0 -84
  403. package/src/components/forms/ColorPicker/README.md +0 -809
  404. package/src/components/forms/ColorPicker/index.ts +0 -14
  405. package/src/components/forms/Combobox/Combobox.test.tsx +0 -975
  406. package/src/components/forms/Combobox/Combobox.tsx +0 -194
  407. package/src/components/forms/Combobox/Combobox.types.ts +0 -113
  408. package/src/components/forms/Combobox/Combobox.variants.ts +0 -108
  409. package/src/components/forms/Combobox/README.md +0 -923
  410. package/src/components/forms/Combobox/index.ts +0 -7
  411. package/src/components/forms/DatePicker/DatePicker.test.tsx +0 -1181
  412. package/src/components/forms/DatePicker/DatePicker.tsx +0 -503
  413. package/src/components/forms/DatePicker/DatePicker.types.ts +0 -196
  414. package/src/components/forms/DatePicker/DatePicker.variants.ts +0 -38
  415. package/src/components/forms/DatePicker/README.md +0 -821
  416. package/src/components/forms/DatePicker/index.ts +0 -8
  417. package/src/components/forms/DateRangePicker/DateRangeInput.tsx +0 -139
  418. package/src/components/forms/DateRangePicker/DateRangePicker.test.tsx +0 -1684
  419. package/src/components/forms/DateRangePicker/DateRangePicker.tsx +0 -375
  420. package/src/components/forms/DateRangePicker/DateRangePicker.types.ts +0 -145
  421. package/src/components/forms/DateRangePicker/DateRangePicker.variants.ts +0 -133
  422. package/src/components/forms/DateRangePicker/DateRangePresets.tsx +0 -44
  423. package/src/components/forms/DateRangePicker/index.ts +0 -25
  424. package/src/components/forms/DateRangePicker/presets.ts +0 -104
  425. package/src/components/forms/EmailInput/EmailInput.test.tsx +0 -562
  426. package/src/components/forms/EmailInput/EmailInput.tsx +0 -59
  427. package/src/components/forms/EmailInput/EmailInput.types.ts +0 -46
  428. package/src/components/forms/EmailInput/EmailInput.variants.ts +0 -30
  429. package/src/components/forms/EmailInput/README.md +0 -708
  430. package/src/components/forms/EmailInput/index.ts +0 -6
  431. package/src/components/forms/ErrorMessage/ErrorMessage.test.tsx +0 -457
  432. package/src/components/forms/ErrorMessage/ErrorMessage.tsx +0 -128
  433. package/src/components/forms/ErrorMessage/ErrorMessage.types.ts +0 -54
  434. package/src/components/forms/ErrorMessage/ErrorMessage.variants.ts +0 -78
  435. package/src/components/forms/ErrorMessage/README.md +0 -855
  436. package/src/components/forms/ErrorMessage/index.ts +0 -4
  437. package/src/components/forms/Field/Field.test.tsx +0 -811
  438. package/src/components/forms/Field/Field.tsx +0 -195
  439. package/src/components/forms/Field/Field.types.ts +0 -94
  440. package/src/components/forms/Field/Field.variants.ts +0 -114
  441. package/src/components/forms/Field/README.md +0 -931
  442. package/src/components/forms/Field/index.ts +0 -3
  443. package/src/components/forms/FloatLabel/FloatLabel.test.tsx +0 -248
  444. package/src/components/forms/FloatLabel/FloatLabel.tsx +0 -110
  445. package/src/components/forms/FloatLabel/FloatLabel.types.ts +0 -37
  446. package/src/components/forms/FloatLabel/index.ts +0 -2
  447. package/src/components/forms/Form/Form.test.tsx +0 -1167
  448. package/src/components/forms/Form/Form.tsx +0 -170
  449. package/src/components/forms/Form/Form.types.ts +0 -126
  450. package/src/components/forms/Form/Form.variants.ts +0 -81
  451. package/src/components/forms/Form/README.md +0 -787
  452. package/src/components/forms/Form/index.ts +0 -3
  453. package/src/components/forms/FormValidation/FormValidation.test.tsx +0 -376
  454. package/src/components/forms/FormValidation/FormValidation.tsx +0 -99
  455. package/src/components/forms/FormValidation/FormValidation.types.ts +0 -37
  456. package/src/components/forms/FormValidation/FormValidation.variants.ts +0 -24
  457. package/src/components/forms/FormValidation/README.md +0 -592
  458. package/src/components/forms/FormValidation/index.ts +0 -4
  459. package/src/components/forms/HelpText/HelpText.test.tsx +0 -558
  460. package/src/components/forms/HelpText/HelpText.tsx +0 -111
  461. package/src/components/forms/HelpText/HelpText.types.ts +0 -51
  462. package/src/components/forms/HelpText/HelpText.variants.ts +0 -54
  463. package/src/components/forms/HelpText/README.md +0 -739
  464. package/src/components/forms/HelpText/index.ts +0 -4
  465. package/src/components/forms/IftaLabel/IftaLabel.test.tsx +0 -193
  466. package/src/components/forms/IftaLabel/IftaLabel.tsx +0 -72
  467. package/src/components/forms/IftaLabel/IftaLabel.types.ts +0 -18
  468. package/src/components/forms/IftaLabel/index.ts +0 -2
  469. package/src/components/forms/InputGroup/InputGroup.test.tsx +0 -782
  470. package/src/components/forms/InputGroup/InputGroup.tsx +0 -128
  471. package/src/components/forms/InputGroup/InputGroup.types.ts +0 -66
  472. package/src/components/forms/InputGroup/InputGroup.variants.ts +0 -102
  473. package/src/components/forms/InputGroup/README.md +0 -845
  474. package/src/components/forms/InputGroup/index.ts +0 -24
  475. package/src/components/forms/InputOTP/InputOTP.test.tsx +0 -793
  476. package/src/components/forms/InputOTP/InputOTP.tsx +0 -90
  477. package/src/components/forms/InputOTP/InputOTP.types.ts +0 -74
  478. package/src/components/forms/InputOTP/InputOTP.variants.ts +0 -64
  479. package/src/components/forms/InputOTP/README.md +0 -1149
  480. package/src/components/forms/InputOTP/index.ts +0 -18
  481. package/src/components/forms/InputOTPField/InputOTPField.test.tsx +0 -220
  482. package/src/components/forms/InputOTPField/InputOTPField.tsx +0 -148
  483. package/src/components/forms/InputOTPField/InputOTPField.types.ts +0 -91
  484. package/src/components/forms/InputOTPField/InputOTPField.variants.ts +0 -83
  485. package/src/components/forms/InputOTPField/README.md +0 -195
  486. package/src/components/forms/InputOTPField/index.ts +0 -12
  487. package/src/components/forms/MultiSelect/MultiSelect.test.tsx +0 -1036
  488. package/src/components/forms/MultiSelect/MultiSelect.tsx +0 -291
  489. package/src/components/forms/MultiSelect/MultiSelect.types.ts +0 -147
  490. package/src/components/forms/MultiSelect/MultiSelect.variants.ts +0 -132
  491. package/src/components/forms/MultiSelect/README.md +0 -897
  492. package/src/components/forms/MultiSelect/index.ts +0 -7
  493. package/src/components/forms/NativeSelect/NativeSelect.test.tsx +0 -856
  494. package/src/components/forms/NativeSelect/NativeSelect.tsx +0 -75
  495. package/src/components/forms/NativeSelect/NativeSelect.types.ts +0 -17
  496. package/src/components/forms/NativeSelect/NativeSelect.variants.ts +0 -106
  497. package/src/components/forms/NativeSelect/README.md +0 -1033
  498. package/src/components/forms/NativeSelect/index.ts +0 -3
  499. package/src/components/forms/NumberInput/NumberInput.test.tsx +0 -636
  500. package/src/components/forms/NumberInput/NumberInput.tsx +0 -131
  501. package/src/components/forms/NumberInput/NumberInput.types.ts +0 -45
  502. package/src/components/forms/NumberInput/NumberInput.variants.ts +0 -85
  503. package/src/components/forms/NumberInput/README.md +0 -766
  504. package/src/components/forms/NumberInput/index.ts +0 -9
  505. package/src/components/forms/PasswordInput/PasswordInput.test.tsx +0 -525
  506. package/src/components/forms/PasswordInput/PasswordInput.tsx +0 -67
  507. package/src/components/forms/PasswordInput/PasswordInput.types.ts +0 -35
  508. package/src/components/forms/PasswordInput/PasswordInput.variants.ts +0 -34
  509. package/src/components/forms/PasswordInput/README.md +0 -698
  510. package/src/components/forms/PasswordInput/index.ts +0 -6
  511. package/src/components/forms/PaymentInput/PaymentInput.test.tsx +0 -252
  512. package/src/components/forms/PaymentInput/PaymentInput.tsx +0 -178
  513. package/src/components/forms/PaymentInput/PaymentInput.types.ts +0 -69
  514. package/src/components/forms/PaymentInput/PaymentInput.variants.ts +0 -81
  515. package/src/components/forms/PaymentInput/README.md +0 -263
  516. package/src/components/forms/PaymentInput/card-utils.ts +0 -219
  517. package/src/components/forms/PaymentInput/index.ts +0 -23
  518. package/src/components/forms/PhoneInput/PhoneInput.test.tsx +0 -270
  519. package/src/components/forms/PhoneInput/PhoneInput.tsx +0 -215
  520. package/src/components/forms/PhoneInput/PhoneInput.types.ts +0 -74
  521. package/src/components/forms/PhoneInput/PhoneInput.variants.ts +0 -103
  522. package/src/components/forms/PhoneInput/README.md +0 -258
  523. package/src/components/forms/PhoneInput/countries.ts +0 -134
  524. package/src/components/forms/PhoneInput/index.ts +0 -22
  525. package/src/components/forms/RadioButton/README.md +0 -832
  526. package/src/components/forms/RadioButton/RadioButton.test.tsx +0 -583
  527. package/src/components/forms/RadioButton/RadioButton.tsx +0 -82
  528. package/src/components/forms/RadioButton/RadioButton.types.ts +0 -23
  529. package/src/components/forms/RadioButton/RadioButton.variants.ts +0 -80
  530. package/src/components/forms/RadioButton/index.ts +0 -15
  531. package/src/components/forms/RadioCardGroup/RadioCardGroup.tsx +0 -130
  532. package/src/components/forms/RadioCardGroup/RadioCardGroup.types.ts +0 -66
  533. package/src/components/forms/RadioCardGroup/RadioCardGroup.variants.ts +0 -131
  534. package/src/components/forms/RadioCardGroup/index.ts +0 -3
  535. package/src/components/forms/RadioGroup/README.md +0 -908
  536. package/src/components/forms/RadioGroup/RadioGroup.test.tsx +0 -764
  537. package/src/components/forms/RadioGroup/RadioGroup.tsx +0 -75
  538. package/src/components/forms/RadioGroup/RadioGroup.types.ts +0 -36
  539. package/src/components/forms/RadioGroup/RadioGroup.variants.ts +0 -58
  540. package/src/components/forms/RadioGroup/index.ts +0 -15
  541. package/src/components/forms/Rating/README.md +0 -729
  542. package/src/components/forms/Rating/Rating.test.tsx +0 -729
  543. package/src/components/forms/Rating/Rating.tsx +0 -258
  544. package/src/components/forms/Rating/Rating.types.ts +0 -89
  545. package/src/components/forms/Rating/Rating.variants.ts +0 -56
  546. package/src/components/forms/Rating/index.ts +0 -8
  547. package/src/components/forms/SearchInput/README.md +0 -729
  548. package/src/components/forms/SearchInput/SearchInput.test.tsx +0 -579
  549. package/src/components/forms/SearchInput/SearchInput.tsx +0 -103
  550. package/src/components/forms/SearchInput/SearchInput.types.ts +0 -40
  551. package/src/components/forms/SearchInput/SearchInput.variants.ts +0 -51
  552. package/src/components/forms/SearchInput/index.ts +0 -8
  553. package/src/components/forms/Select/README.md +0 -1286
  554. package/src/components/forms/Select/Select.test.tsx +0 -1136
  555. package/src/components/forms/Select/Select.tsx +0 -170
  556. package/src/components/forms/Select/Select.types.ts +0 -75
  557. package/src/components/forms/Select/Select.variants.ts +0 -133
  558. package/src/components/forms/Select/index.ts +0 -3
  559. package/src/components/forms/Slider/README.md +0 -1246
  560. package/src/components/forms/Slider/Slider.test.tsx +0 -731
  561. package/src/components/forms/Slider/Slider.tsx +0 -235
  562. package/src/components/forms/Slider/Slider.types.ts +0 -90
  563. package/src/components/forms/Slider/Slider.variants.ts +0 -239
  564. package/src/components/forms/Slider/index.ts +0 -34
  565. package/src/components/forms/SuccessMessage/README.md +0 -534
  566. package/src/components/forms/SuccessMessage/SuccessMessage.test.tsx +0 -257
  567. package/src/components/forms/SuccessMessage/SuccessMessage.tsx +0 -43
  568. package/src/components/forms/SuccessMessage/SuccessMessage.types.ts +0 -11
  569. package/src/components/forms/SuccessMessage/SuccessMessage.variants.ts +0 -15
  570. package/src/components/forms/SuccessMessage/index.ts +0 -4
  571. package/src/components/forms/Switch/README.md +0 -785
  572. package/src/components/forms/Switch/Switch.test.tsx +0 -636
  573. package/src/components/forms/Switch/Switch.tsx +0 -28
  574. package/src/components/forms/Switch/Switch.types.ts +0 -24
  575. package/src/components/forms/Switch/Switch.variants.ts +0 -49
  576. package/src/components/forms/Switch/index.ts +0 -3
  577. package/src/components/forms/TagsInput/README.md +0 -216
  578. package/src/components/forms/TagsInput/TagsInput.test.tsx +0 -308
  579. package/src/components/forms/TagsInput/TagsInput.tsx +0 -189
  580. package/src/components/forms/TagsInput/TagsInput.types.ts +0 -85
  581. package/src/components/forms/TagsInput/TagsInput.variants.ts +0 -58
  582. package/src/components/forms/TagsInput/index.ts +0 -12
  583. package/src/components/forms/TextInput/README.md +0 -871
  584. package/src/components/forms/TextInput/TextInput.test.tsx +0 -484
  585. package/src/components/forms/TextInput/TextInput.tsx +0 -76
  586. package/src/components/forms/TextInput/TextInput.types.ts +0 -61
  587. package/src/components/forms/TextInput/TextInput.variants.ts +0 -117
  588. package/src/components/forms/TextInput/index.ts +0 -14
  589. package/src/components/forms/Textarea/README.md +0 -905
  590. package/src/components/forms/Textarea/Textarea.test.tsx +0 -482
  591. package/src/components/forms/Textarea/Textarea.tsx +0 -24
  592. package/src/components/forms/Textarea/Textarea.types.ts +0 -39
  593. package/src/components/forms/Textarea/Textarea.variants.ts +0 -48
  594. package/src/components/forms/Textarea/index.ts +0 -3
  595. package/src/components/forms/TextareaField/README.md +0 -172
  596. package/src/components/forms/TextareaField/TextareaField.test.tsx +0 -260
  597. package/src/components/forms/TextareaField/TextareaField.tsx +0 -73
  598. package/src/components/forms/TextareaField/TextareaField.types.ts +0 -37
  599. package/src/components/forms/TextareaField/TextareaField.variants.ts +0 -83
  600. package/src/components/forms/TextareaField/index.ts +0 -12
  601. package/src/components/forms/TimePicker/README.md +0 -750
  602. package/src/components/forms/TimePicker/TimePicker.test.tsx +0 -780
  603. package/src/components/forms/TimePicker/TimePicker.tsx +0 -383
  604. package/src/components/forms/TimePicker/TimePicker.types.ts +0 -94
  605. package/src/components/forms/TimePicker/TimePicker.variants.ts +0 -83
  606. package/src/components/forms/TimePicker/index.ts +0 -14
  607. package/src/components/forms/ToggleGroup/README.md +0 -870
  608. package/src/components/forms/ToggleGroup/ToggleGroup.test.tsx +0 -941
  609. package/src/components/forms/ToggleGroup/ToggleGroup.tsx +0 -5
  610. package/src/components/forms/ToggleGroup/ToggleGroup.types.ts +0 -17
  611. package/src/components/forms/ToggleGroup/ToggleGroup.variants.ts +0 -42
  612. package/src/components/forms/ToggleGroup/index.ts +0 -9
  613. package/src/components/forms/URLInput/README.md +0 -701
  614. package/src/components/forms/URLInput/URLInput.test.tsx +0 -602
  615. package/src/components/forms/URLInput/URLInput.tsx +0 -71
  616. package/src/components/forms/URLInput/URLInput.types.ts +0 -51
  617. package/src/components/forms/URLInput/URLInput.variants.ts +0 -52
  618. package/src/components/forms/URLInput/index.ts +0 -8
  619. package/src/components/forms/index.ts +0 -44
  620. package/src/components/index.ts +0 -26
  621. package/src/components/layout/AppContent/AppContent.test.tsx +0 -34
  622. package/src/components/layout/AppContent/AppContent.tsx +0 -23
  623. package/src/components/layout/AppContent/AppContent.variants.ts +0 -23
  624. package/src/components/layout/AppContent/index.ts +0 -2
  625. package/src/components/layout/AppHeader/AppHeader.test.tsx +0 -26
  626. package/src/components/layout/AppHeader/AppHeader.tsx +0 -17
  627. package/src/components/layout/AppHeader/AppHeader.variants.ts +0 -21
  628. package/src/components/layout/AppHeader/AppHeaderActions.tsx +0 -13
  629. package/src/components/layout/AppHeader/AppHeaderNav.tsx +0 -13
  630. package/src/components/layout/AppHeader/AppHeaderTitle.tsx +0 -13
  631. package/src/components/layout/AppHeader/index.ts +0 -5
  632. package/src/components/layout/AppRail/AppRail.test.tsx +0 -50
  633. package/src/components/layout/AppRail/AppRail.tsx +0 -24
  634. package/src/components/layout/AppRail/AppRail.variants.ts +0 -31
  635. package/src/components/layout/AppRail/AppRailFooter.tsx +0 -13
  636. package/src/components/layout/AppRail/AppRailGroup.tsx +0 -13
  637. package/src/components/layout/AppRail/AppRailHeader.tsx +0 -13
  638. package/src/components/layout/AppRail/AppRailItem.tsx +0 -57
  639. package/src/components/layout/AppRail/index.ts +0 -5
  640. package/src/components/layout/AppShell/AppShell.context.tsx +0 -34
  641. package/src/components/layout/AppShell/AppShell.test.tsx +0 -61
  642. package/src/components/layout/AppShell/AppShell.tsx +0 -91
  643. package/src/components/layout/AppShell/AppShell.variants.ts +0 -21
  644. package/src/components/layout/AppShell/index.ts +0 -2
  645. package/src/components/layout/AppSidebar/AppSidebar.test.tsx +0 -69
  646. package/src/components/layout/AppSidebar/AppSidebar.tsx +0 -58
  647. package/src/components/layout/AppSidebar/AppSidebar.variants.ts +0 -41
  648. package/src/components/layout/AppSidebar/AppSidebarContent.tsx +0 -18
  649. package/src/components/layout/AppSidebar/AppSidebarFooter.tsx +0 -13
  650. package/src/components/layout/AppSidebar/AppSidebarGroup.tsx +0 -22
  651. package/src/components/layout/AppSidebar/AppSidebarHeader.tsx +0 -13
  652. package/src/components/layout/AppSidebar/AppSidebarItem.tsx +0 -54
  653. package/src/components/layout/AppSidebar/AppSidebarTrigger.tsx +0 -25
  654. package/src/components/layout/AppSidebar/index.ts +0 -7
  655. package/src/components/layout/CLAUDE.md +0 -112
  656. package/src/components/layout/Card/Card.test.tsx +0 -339
  657. package/src/components/layout/Card/Card.tsx +0 -102
  658. package/src/components/layout/Card/Card.types.ts +0 -52
  659. package/src/components/layout/Card/Card.variants.ts +0 -85
  660. package/src/components/layout/Card/README.md +0 -994
  661. package/src/components/layout/Card/index.ts +0 -3
  662. package/src/components/layout/Collapsible/Collapsible.test.tsx +0 -491
  663. package/src/components/layout/Collapsible/Collapsible.tsx +0 -50
  664. package/src/components/layout/Collapsible/Collapsible.types.ts +0 -26
  665. package/src/components/layout/Collapsible/Collapsible.variants.ts +0 -52
  666. package/src/components/layout/Collapsible/README.md +0 -885
  667. package/src/components/layout/Collapsible/index.ts +0 -3
  668. package/src/components/layout/Container/Container.test.tsx +0 -283
  669. package/src/components/layout/Container/Container.tsx +0 -25
  670. package/src/components/layout/Container/Container.types.ts +0 -36
  671. package/src/components/layout/Container/Container.variants.ts +0 -59
  672. package/src/components/layout/Container/README.md +0 -700
  673. package/src/components/layout/Container/index.ts +0 -3
  674. package/src/components/layout/Flex/Flex.test.tsx +0 -545
  675. package/src/components/layout/Flex/Flex.tsx +0 -52
  676. package/src/components/layout/Flex/Flex.types.ts +0 -61
  677. package/src/components/layout/Flex/Flex.variants.ts +0 -98
  678. package/src/components/layout/Flex/README.md +0 -812
  679. package/src/components/layout/Flex/index.ts +0 -3
  680. package/src/components/layout/Grid/Grid.test.tsx +0 -601
  681. package/src/components/layout/Grid/Grid.tsx +0 -61
  682. package/src/components/layout/Grid/Grid.types.ts +0 -47
  683. package/src/components/layout/Grid/Grid.variants.ts +0 -100
  684. package/src/components/layout/Grid/README.md +0 -762
  685. package/src/components/layout/Grid/index.ts +0 -3
  686. package/src/components/layout/PageContent/PageContent.tsx +0 -13
  687. package/src/components/layout/PageContent/index.ts +0 -1
  688. package/src/components/layout/PageHeader/PageHeader.tsx +0 -43
  689. package/src/components/layout/PageHeader/index.ts +0 -1
  690. package/src/components/layout/PageSection/PageSection.tsx +0 -28
  691. package/src/components/layout/PageSection/index.ts +0 -1
  692. package/src/components/layout/Panel/Panel.test.tsx +0 -427
  693. package/src/components/layout/Panel/Panel.tsx +0 -75
  694. package/src/components/layout/Panel/Panel.types.ts +0 -59
  695. package/src/components/layout/Panel/Panel.variants.ts +0 -94
  696. package/src/components/layout/Panel/README.md +0 -861
  697. package/src/components/layout/Panel/index.ts +0 -3
  698. package/src/components/layout/ResizablePanels/README.md +0 -369
  699. package/src/components/layout/ResizablePanels/ResizablePanels.test.tsx +0 -506
  700. package/src/components/layout/ResizablePanels/ResizablePanels.tsx +0 -64
  701. package/src/components/layout/ResizablePanels/ResizablePanels.types.ts +0 -41
  702. package/src/components/layout/ResizablePanels/ResizablePanels.variants.ts +0 -67
  703. package/src/components/layout/ResizablePanels/index.ts +0 -3
  704. package/src/components/layout/ResponsiveContainer/README.md +0 -267
  705. package/src/components/layout/ResponsiveContainer/ResponsiveContainer.test.tsx +0 -386
  706. package/src/components/layout/ResponsiveContainer/ResponsiveContainer.tsx +0 -54
  707. package/src/components/layout/ResponsiveContainer/ResponsiveContainer.types.ts +0 -43
  708. package/src/components/layout/ResponsiveContainer/ResponsiveContainer.variants.ts +0 -106
  709. package/src/components/layout/ResponsiveContainer/index.ts +0 -3
  710. package/src/components/layout/ScrollArea/README.md +0 -278
  711. package/src/components/layout/ScrollArea/ScrollArea.test.tsx +0 -352
  712. package/src/components/layout/ScrollArea/ScrollArea.tsx +0 -61
  713. package/src/components/layout/ScrollArea/ScrollArea.types.ts +0 -36
  714. package/src/components/layout/ScrollArea/ScrollArea.variants.ts +0 -85
  715. package/src/components/layout/ScrollArea/index.ts +0 -3
  716. package/src/components/layout/Section/README.md +0 -315
  717. package/src/components/layout/Section/Section.test.tsx +0 -293
  718. package/src/components/layout/Section/Section.tsx +0 -60
  719. package/src/components/layout/Section/Section.types.ts +0 -38
  720. package/src/components/layout/Section/Section.variants.ts +0 -45
  721. package/src/components/layout/Section/index.ts +0 -3
  722. package/src/components/layout/Sheet/README.md +0 -533
  723. package/src/components/layout/Sheet/Sheet.test.tsx +0 -702
  724. package/src/components/layout/Sheet/Sheet.tsx +0 -142
  725. package/src/components/layout/Sheet/Sheet.types.ts +0 -92
  726. package/src/components/layout/Sheet/Sheet.variants.ts +0 -98
  727. package/src/components/layout/Sheet/index.ts +0 -3
  728. package/src/components/layout/Stack/README.md +0 -346
  729. package/src/components/layout/Stack/Stack.test.tsx +0 -492
  730. package/src/components/layout/Stack/Stack.tsx +0 -58
  731. package/src/components/layout/Stack/Stack.types.ts +0 -58
  732. package/src/components/layout/Stack/Stack.variants.ts +0 -77
  733. package/src/components/layout/Stack/index.ts +0 -3
  734. package/src/components/layout/index.ts +0 -21
  735. package/src/components/navigation/Breadcrumb/Breadcrumb.test.tsx +0 -875
  736. package/src/components/navigation/Breadcrumb/Breadcrumb.tsx +0 -183
  737. package/src/components/navigation/Breadcrumb/Breadcrumb.types.ts +0 -49
  738. package/src/components/navigation/Breadcrumb/Breadcrumb.variants.ts +0 -63
  739. package/src/components/navigation/Breadcrumb/README.md +0 -608
  740. package/src/components/navigation/Breadcrumb/index.ts +0 -24
  741. package/src/components/navigation/CLAUDE.md +0 -118
  742. package/src/components/navigation/ContextMenu/ContextMenu.test.tsx +0 -881
  743. package/src/components/navigation/ContextMenu/ContextMenu.tsx +0 -304
  744. package/src/components/navigation/ContextMenu/ContextMenu.types.ts +0 -119
  745. package/src/components/navigation/ContextMenu/ContextMenu.variants.ts +0 -167
  746. package/src/components/navigation/ContextMenu/README.md +0 -660
  747. package/src/components/navigation/ContextMenu/index.ts +0 -34
  748. package/src/components/navigation/Drawer/Drawer.test.tsx +0 -721
  749. package/src/components/navigation/Drawer/Drawer.tsx +0 -178
  750. package/src/components/navigation/Drawer/Drawer.types.ts +0 -66
  751. package/src/components/navigation/Drawer/Drawer.variants.ts +0 -121
  752. package/src/components/navigation/Drawer/README.md +0 -723
  753. package/src/components/navigation/Drawer/index.ts +0 -24
  754. package/src/components/navigation/DropdownMenu/DropdownMenu.test.tsx +0 -881
  755. package/src/components/navigation/DropdownMenu/DropdownMenu.tsx +0 -305
  756. package/src/components/navigation/DropdownMenu/DropdownMenu.types.ts +0 -98
  757. package/src/components/navigation/DropdownMenu/DropdownMenu.variants.ts +0 -168
  758. package/src/components/navigation/DropdownMenu/README.md +0 -676
  759. package/src/components/navigation/DropdownMenu/index.ts +0 -33
  760. package/src/components/navigation/Header/Header.test.tsx +0 -418
  761. package/src/components/navigation/Header/Header.tsx +0 -133
  762. package/src/components/navigation/Header/Header.types.ts +0 -41
  763. package/src/components/navigation/Header/Header.variants.ts +0 -91
  764. package/src/components/navigation/Header/README.md +0 -567
  765. package/src/components/navigation/Header/index.ts +0 -14
  766. package/src/components/navigation/Menu/Menu.test.tsx +0 -658
  767. package/src/components/navigation/Menu/Menu.tsx +0 -247
  768. package/src/components/navigation/Menu/Menu.types.ts +0 -51
  769. package/src/components/navigation/Menu/Menu.variants.ts +0 -105
  770. package/src/components/navigation/Menu/README.md +0 -599
  771. package/src/components/navigation/Menu/index.ts +0 -17
  772. package/src/components/navigation/Menubar/Menubar.test.tsx +0 -1028
  773. package/src/components/navigation/Menubar/Menubar.tsx +0 -308
  774. package/src/components/navigation/Menubar/Menubar.types.ts +0 -104
  775. package/src/components/navigation/Menubar/Menubar.variants.ts +0 -182
  776. package/src/components/navigation/Menubar/README.md +0 -641
  777. package/src/components/navigation/Menubar/index.ts +0 -36
  778. package/src/components/navigation/MobileSidebar/MobileSidebar.test.tsx +0 -255
  779. package/src/components/navigation/MobileSidebar/MobileSidebar.tsx +0 -187
  780. package/src/components/navigation/MobileSidebar/MobileSidebar.types.ts +0 -62
  781. package/src/components/navigation/MobileSidebar/MobileSidebar.variants.ts +0 -79
  782. package/src/components/navigation/MobileSidebar/index.ts +0 -17
  783. package/src/components/navigation/Navbar/Navbar.test.tsx +0 -621
  784. package/src/components/navigation/Navbar/Navbar.tsx +0 -238
  785. package/src/components/navigation/Navbar/Navbar.types.ts +0 -69
  786. package/src/components/navigation/Navbar/Navbar.variants.ts +0 -176
  787. package/src/components/navigation/Navbar/README.md +0 -670
  788. package/src/components/navigation/Navbar/index.ts +0 -20
  789. package/src/components/navigation/NavigationMenu/NavigationMenu.test.tsx +0 -701
  790. package/src/components/navigation/NavigationMenu/NavigationMenu.tsx +0 -211
  791. package/src/components/navigation/NavigationMenu/NavigationMenu.types.ts +0 -52
  792. package/src/components/navigation/NavigationMenu/NavigationMenu.variants.ts +0 -122
  793. package/src/components/navigation/NavigationMenu/README.md +0 -697
  794. package/src/components/navigation/NavigationMenu/index.ts +0 -23
  795. package/src/components/navigation/Pagination/Pagination.test.tsx +0 -619
  796. package/src/components/navigation/Pagination/Pagination.tsx +0 -185
  797. package/src/components/navigation/Pagination/Pagination.types.ts +0 -42
  798. package/src/components/navigation/Pagination/Pagination.variants.ts +0 -36
  799. package/src/components/navigation/Pagination/README.md +0 -635
  800. package/src/components/navigation/Pagination/index.ts +0 -17
  801. package/src/components/navigation/Sidebar/README.md +0 -628
  802. package/src/components/navigation/Sidebar/Sidebar.test.tsx +0 -1169
  803. package/src/components/navigation/Sidebar/Sidebar.tsx +0 -761
  804. package/src/components/navigation/Sidebar/Sidebar.types.ts +0 -168
  805. package/src/components/navigation/Sidebar/Sidebar.variants.ts +0 -302
  806. package/src/components/navigation/Sidebar/index.ts +0 -59
  807. package/src/components/navigation/SkipLinks/README.md +0 -512
  808. package/src/components/navigation/SkipLinks/SkipLinks.test.tsx +0 -445
  809. package/src/components/navigation/SkipLinks/SkipLinks.tsx +0 -103
  810. package/src/components/navigation/SkipLinks/SkipLinks.types.ts +0 -39
  811. package/src/components/navigation/SkipLinks/SkipLinks.variants.ts +0 -102
  812. package/src/components/navigation/SkipLinks/index.ts +0 -12
  813. package/src/components/navigation/TabNavigation/TabNavigation.tsx +0 -196
  814. package/src/components/navigation/TabNavigation/TabNavigation.types.ts +0 -85
  815. package/src/components/navigation/TabNavigation/TabNavigation.variants.ts +0 -95
  816. package/src/components/navigation/TabNavigation/index.ts +0 -10
  817. package/src/components/navigation/TabPanel/README.md +0 -437
  818. package/src/components/navigation/TabPanel/TabPanel.test.tsx +0 -566
  819. package/src/components/navigation/TabPanel/TabPanel.tsx +0 -95
  820. package/src/components/navigation/TabPanel/TabPanel.types.ts +0 -29
  821. package/src/components/navigation/TabPanel/TabPanel.variants.ts +0 -61
  822. package/src/components/navigation/TabPanel/index.ts +0 -13
  823. package/src/components/navigation/Tabs/README.md +0 -669
  824. package/src/components/navigation/Tabs/Tabs.test.tsx +0 -500
  825. package/src/components/navigation/Tabs/Tabs.tsx +0 -112
  826. package/src/components/navigation/Tabs/Tabs.types.ts +0 -38
  827. package/src/components/navigation/Tabs/Tabs.variants.ts +0 -80
  828. package/src/components/navigation/Tabs/index.ts +0 -14
  829. package/src/components/navigation/Toolbar/README.md +0 -650
  830. package/src/components/navigation/Toolbar/Toolbar.test.tsx +0 -620
  831. package/src/components/navigation/Toolbar/Toolbar.tsx +0 -133
  832. package/src/components/navigation/Toolbar/Toolbar.types.ts +0 -42
  833. package/src/components/navigation/Toolbar/Toolbar.variants.ts +0 -95
  834. package/src/components/navigation/Toolbar/index.ts +0 -17
  835. package/src/components/navigation/UserProfileDropdown/UserProfileDropdown.test.tsx +0 -257
  836. package/src/components/navigation/UserProfileDropdown/UserProfileDropdown.tsx +0 -267
  837. package/src/components/navigation/UserProfileDropdown/UserProfileDropdown.types.ts +0 -84
  838. package/src/components/navigation/UserProfileDropdown/UserProfileDropdown.variants.ts +0 -77
  839. package/src/components/navigation/UserProfileDropdown/index.ts +0 -17
  840. package/src/components/navigation/WorkspaceDropdown/WorkspaceDropdown.tsx +0 -190
  841. package/src/components/navigation/WorkspaceDropdown/WorkspaceDropdown.types.ts +0 -56
  842. package/src/components/navigation/WorkspaceDropdown/WorkspaceDropdown.variants.ts +0 -82
  843. package/src/components/navigation/WorkspaceDropdown/index.ts +0 -20
  844. package/src/components/navigation/index.ts +0 -17
  845. package/src/components/primitives/ArrowAnimated/ArrowAnimated.test.tsx +0 -240
  846. package/src/components/primitives/ArrowAnimated/ArrowAnimated.tsx +0 -96
  847. package/src/components/primitives/ArrowAnimated/ArrowAnimated.types.ts +0 -16
  848. package/src/components/primitives/ArrowAnimated/ArrowAnimated.variants.ts +0 -43
  849. package/src/components/primitives/ArrowAnimated/index.ts +0 -9
  850. package/src/components/primitives/AspectRatio/AspectRatio.test.tsx +0 -306
  851. package/src/components/primitives/AspectRatio/AspectRatio.tsx +0 -11
  852. package/src/components/primitives/AspectRatio/AspectRatio.types.ts +0 -57
  853. package/src/components/primitives/AspectRatio/AspectRatio.variants.ts +0 -110
  854. package/src/components/primitives/AspectRatio/README.md +0 -914
  855. package/src/components/primitives/AspectRatio/index.ts +0 -7
  856. package/src/components/primitives/Avatar/Avatar.test.tsx +0 -1311
  857. package/src/components/primitives/Avatar/Avatar.tsx +0 -159
  858. package/src/components/primitives/Avatar/Avatar.types.ts +0 -70
  859. package/src/components/primitives/Avatar/AvatarAddButton.tsx +0 -59
  860. package/src/components/primitives/Avatar/AvatarBadge.tsx +0 -84
  861. package/src/components/primitives/Avatar/AvatarGroup.test.tsx +0 -1377
  862. package/src/components/primitives/Avatar/AvatarGroup.tsx +0 -101
  863. package/src/components/primitives/Avatar/AvatarLabelGroup.tsx +0 -154
  864. package/src/components/primitives/Avatar/AvatarSkeleton.tsx +0 -76
  865. package/src/components/primitives/Avatar/AvatarStatus.tsx +0 -71
  866. package/src/components/primitives/Avatar/README.md +0 -1174
  867. package/src/components/primitives/Avatar/index.ts +0 -8
  868. package/src/components/primitives/Badge/Badge.test.tsx +0 -1146
  869. package/src/components/primitives/Badge/Badge.tsx +0 -389
  870. package/src/components/primitives/Badge/Badge.types.ts +0 -102
  871. package/src/components/primitives/Badge/README.md +0 -814
  872. package/src/components/primitives/Badge/index.ts +0 -2
  873. package/src/components/primitives/Button/Button.test.tsx +0 -626
  874. package/src/components/primitives/Button/Button.tsx +0 -299
  875. package/src/components/primitives/Button/Button.types.ts +0 -137
  876. package/src/components/primitives/Button/README.md +0 -1112
  877. package/src/components/primitives/Button/index.ts +0 -8
  878. package/src/components/primitives/ButtonGroup/ButtonGroup.test.tsx +0 -945
  879. package/src/components/primitives/ButtonGroup/ButtonGroup.tsx +0 -224
  880. package/src/components/primitives/ButtonGroup/ButtonGroup.types.ts +0 -133
  881. package/src/components/primitives/ButtonGroup/README.md +0 -945
  882. package/src/components/primitives/ButtonGroup/index.ts +0 -12
  883. package/src/components/primitives/CLAUDE.md +0 -108
  884. package/src/components/primitives/ConfirmButton/ConfirmButton.test.tsx +0 -929
  885. package/src/components/primitives/ConfirmButton/ConfirmButton.tsx +0 -298
  886. package/src/components/primitives/ConfirmButton/ConfirmButton.types.ts +0 -116
  887. package/src/components/primitives/ConfirmButton/README.md +0 -1059
  888. package/src/components/primitives/ConfirmButton/index.ts +0 -6
  889. package/src/components/primitives/Divider/Divider.test.tsx +0 -304
  890. package/src/components/primitives/Divider/Divider.tsx +0 -209
  891. package/src/components/primitives/Divider/Divider.types.ts +0 -74
  892. package/src/components/primitives/Divider/README.md +0 -839
  893. package/src/components/primitives/Divider/index.ts +0 -8
  894. package/src/components/primitives/Heading/Heading.test.tsx +0 -611
  895. package/src/components/primitives/Heading/Heading.tsx +0 -120
  896. package/src/components/primitives/Heading/Heading.types.ts +0 -61
  897. package/src/components/primitives/Heading/README.md +0 -820
  898. package/src/components/primitives/Heading/index.ts +0 -2
  899. package/src/components/primitives/Icon/Icon.test.tsx +0 -466
  900. package/src/components/primitives/Icon/Icon.tsx +0 -74
  901. package/src/components/primitives/Icon/Icon.types.ts +0 -61
  902. package/src/components/primitives/Icon/README.md +0 -759
  903. package/src/components/primitives/Icon/index.ts +0 -8
  904. package/src/components/primitives/Image/Image.test.tsx +0 -734
  905. package/src/components/primitives/Image/Image.tsx +0 -239
  906. package/src/components/primitives/Image/Image.types.ts +0 -75
  907. package/src/components/primitives/Image/README.md +0 -863
  908. package/src/components/primitives/Image/index.ts +0 -8
  909. package/src/components/primitives/Kbd/Kbd.test.tsx +0 -432
  910. package/src/components/primitives/Kbd/Kbd.tsx +0 -53
  911. package/src/components/primitives/Kbd/Kbd.types.ts +0 -55
  912. package/src/components/primitives/Kbd/Kbd.variants.ts +0 -33
  913. package/src/components/primitives/Kbd/README.md +0 -659
  914. package/src/components/primitives/Kbd/index.ts +0 -3
  915. package/src/components/primitives/Label/Label.test.tsx +0 -311
  916. package/src/components/primitives/Label/Label.tsx +0 -46
  917. package/src/components/primitives/Label/Label.types.ts +0 -28
  918. package/src/components/primitives/Label/README.md +0 -816
  919. package/src/components/primitives/Label/index.ts +0 -2
  920. package/src/components/primitives/Link/Link.test.tsx +0 -764
  921. package/src/components/primitives/Link/Link.tsx +0 -143
  922. package/src/components/primitives/Link/Link.types.ts +0 -85
  923. package/src/components/primitives/Link/README.md +0 -954
  924. package/src/components/primitives/Link/index.ts +0 -8
  925. package/src/components/primitives/Paragraph/Paragraph.test.tsx +0 -463
  926. package/src/components/primitives/Paragraph/Paragraph.tsx +0 -119
  927. package/src/components/primitives/Paragraph/Paragraph.types.ts +0 -81
  928. package/src/components/primitives/Paragraph/README.md +0 -812
  929. package/src/components/primitives/Paragraph/index.ts +0 -2
  930. package/src/components/primitives/ProgressBar/ProgressBar.test.tsx +0 -598
  931. package/src/components/primitives/ProgressBar/ProgressBar.tsx +0 -268
  932. package/src/components/primitives/ProgressBar/ProgressBar.types.ts +0 -127
  933. package/src/components/primitives/ProgressBar/ProgressBar.variants.ts +0 -111
  934. package/src/components/primitives/ProgressBar/README.md +0 -772
  935. package/src/components/primitives/ProgressBar/index.ts +0 -3
  936. package/src/components/primitives/ProgressCircle/ProgressCircle.test.tsx +0 -219
  937. package/src/components/primitives/ProgressCircle/ProgressCircle.tsx +0 -264
  938. package/src/components/primitives/ProgressCircle/ProgressCircle.types.ts +0 -152
  939. package/src/components/primitives/ProgressCircle/ProgressCircle.variants.ts +0 -140
  940. package/src/components/primitives/ProgressCircle/README.md +0 -763
  941. package/src/components/primitives/ProgressCircle/index.ts +0 -3
  942. package/src/components/primitives/SkeletonLoader/README.md +0 -792
  943. package/src/components/primitives/SkeletonLoader/SkeletonLoader.test.tsx +0 -382
  944. package/src/components/primitives/SkeletonLoader/SkeletonLoader.tsx +0 -45
  945. package/src/components/primitives/SkeletonLoader/SkeletonLoader.types.ts +0 -56
  946. package/src/components/primitives/SkeletonLoader/SkeletonLoader.variants.ts +0 -87
  947. package/src/components/primitives/SkeletonLoader/index.ts +0 -3
  948. package/src/components/primitives/Spacer/README.md +0 -804
  949. package/src/components/primitives/Spacer/Spacer.test.tsx +0 -363
  950. package/src/components/primitives/Spacer/Spacer.tsx +0 -147
  951. package/src/components/primitives/Spacer/Spacer.types.ts +0 -72
  952. package/src/components/primitives/Spacer/index.ts +0 -9
  953. package/src/components/primitives/Spinner/README.md +0 -767
  954. package/src/components/primitives/Spinner/Spinner.test.tsx +0 -289
  955. package/src/components/primitives/Spinner/Spinner.tsx +0 -101
  956. package/src/components/primitives/Spinner/Spinner.types.ts +0 -62
  957. package/src/components/primitives/Spinner/Spinner.variants.ts +0 -50
  958. package/src/components/primitives/Spinner/index.ts +0 -3
  959. package/src/components/primitives/SplitButton/README.md +0 -1142
  960. package/src/components/primitives/SplitButton/SplitButton.test.tsx +0 -1020
  961. package/src/components/primitives/SplitButton/SplitButton.tsx +0 -215
  962. package/src/components/primitives/SplitButton/SplitButton.types.ts +0 -114
  963. package/src/components/primitives/SplitButton/index.ts +0 -8
  964. package/src/components/primitives/StatusIndicator/README.md +0 -730
  965. package/src/components/primitives/StatusIndicator/StatusIndicator.test.tsx +0 -446
  966. package/src/components/primitives/StatusIndicator/StatusIndicator.tsx +0 -100
  967. package/src/components/primitives/StatusIndicator/StatusIndicator.types.ts +0 -39
  968. package/src/components/primitives/StatusIndicator/index.ts +0 -2
  969. package/src/components/primitives/Tag/README.md +0 -793
  970. package/src/components/primitives/Tag/Tag.test.tsx +0 -410
  971. package/src/components/primitives/Tag/Tag.tsx +0 -302
  972. package/src/components/primitives/Tag/Tag.types.ts +0 -112
  973. package/src/components/primitives/Tag/Tag.variants.ts +0 -144
  974. package/src/components/primitives/Tag/TagGroup.tsx +0 -89
  975. package/src/components/primitives/Tag/index.ts +0 -15
  976. package/src/components/primitives/Text/README.md +0 -849
  977. package/src/components/primitives/Text/Text.test.tsx +0 -371
  978. package/src/components/primitives/Text/Text.tsx +0 -89
  979. package/src/components/primitives/Text/Text.types.ts +0 -21
  980. package/src/components/primitives/Text/index.ts +0 -2
  981. package/src/components/primitives/Thumbnail/README.md +0 -800
  982. package/src/components/primitives/Thumbnail/Thumbnail.test.tsx +0 -657
  983. package/src/components/primitives/Thumbnail/Thumbnail.tsx +0 -141
  984. package/src/components/primitives/Thumbnail/Thumbnail.types.ts +0 -102
  985. package/src/components/primitives/Thumbnail/index.ts +0 -9
  986. package/src/components/primitives/Toggle/README.md +0 -232
  987. package/src/components/primitives/Toggle/Toggle.test.tsx +0 -630
  988. package/src/components/primitives/Toggle/Toggle.tsx +0 -174
  989. package/src/components/primitives/Toggle/Toggle.types.ts +0 -161
  990. package/src/components/primitives/Toggle/index.ts +0 -2
  991. package/src/components/primitives/index.ts +0 -26
  992. package/src/components/workflow/ApprovalFlow/ApprovalFlow.test.tsx +0 -607
  993. package/src/components/workflow/ApprovalFlow/ApprovalFlow.tsx +0 -522
  994. package/src/components/workflow/ApprovalFlow/ApprovalFlow.types.ts +0 -233
  995. package/src/components/workflow/ApprovalFlow/ApprovalFlow.variants.ts +0 -207
  996. package/src/components/workflow/ApprovalFlow/README.md +0 -450
  997. package/src/components/workflow/ApprovalFlow/index.ts +0 -38
  998. package/src/components/workflow/ApprovalStatus/ApprovalStatus.test.tsx +0 -316
  999. package/src/components/workflow/ApprovalStatus/ApprovalStatus.tsx +0 -342
  1000. package/src/components/workflow/ApprovalStatus/ApprovalStatus.types.ts +0 -68
  1001. package/src/components/workflow/ApprovalStatus/ApprovalStatus.variants.ts +0 -60
  1002. package/src/components/workflow/ApprovalStatus/README.md +0 -359
  1003. package/src/components/workflow/ApprovalStatus/index.ts +0 -7
  1004. package/src/components/workflow/CLAUDE.md +0 -118
  1005. package/src/components/workflow/CommentSystem/CommentSystem.test.tsx +0 -901
  1006. package/src/components/workflow/CommentSystem/CommentSystem.tsx +0 -1014
  1007. package/src/components/workflow/CommentSystem/CommentSystem.types.ts +0 -290
  1008. package/src/components/workflow/CommentSystem/CommentSystem.variants.ts +0 -307
  1009. package/src/components/workflow/CommentSystem/README.md +0 -478
  1010. package/src/components/workflow/CommentSystem/index.ts +0 -37
  1011. package/src/components/workflow/Dashboard/Dashboard.test.tsx +0 -586
  1012. package/src/components/workflow/Dashboard/Dashboard.tsx +0 -447
  1013. package/src/components/workflow/Dashboard/Dashboard.types.ts +0 -232
  1014. package/src/components/workflow/Dashboard/Dashboard.variants.ts +0 -241
  1015. package/src/components/workflow/Dashboard/README.md +0 -445
  1016. package/src/components/workflow/Dashboard/index.ts +0 -39
  1017. package/src/components/workflow/DashboardBuilder/DashboardBuilder.test.tsx +0 -460
  1018. package/src/components/workflow/DashboardBuilder/DashboardBuilder.tsx +0 -944
  1019. package/src/components/workflow/DashboardBuilder/DashboardBuilder.types.ts +0 -389
  1020. package/src/components/workflow/DashboardBuilder/DashboardBuilder.variants.ts +0 -264
  1021. package/src/components/workflow/DashboardBuilder/README.md +0 -489
  1022. package/src/components/workflow/DashboardBuilder/index.ts +0 -61
  1023. package/src/components/workflow/KanbanBoard/KanbanBoard.test.tsx +0 -445
  1024. package/src/components/workflow/KanbanBoard/KanbanBoard.tsx +0 -806
  1025. package/src/components/workflow/KanbanBoard/KanbanBoard.types.ts +0 -183
  1026. package/src/components/workflow/KanbanBoard/KanbanBoard.variants.ts +0 -311
  1027. package/src/components/workflow/KanbanBoard/README.md +0 -495
  1028. package/src/components/workflow/KanbanBoard/index.ts +0 -40
  1029. package/src/components/workflow/ProgressSteps/ProgressSteps.test.tsx +0 -318
  1030. package/src/components/workflow/ProgressSteps/ProgressSteps.tsx +0 -350
  1031. package/src/components/workflow/ProgressSteps/ProgressSteps.types.ts +0 -84
  1032. package/src/components/workflow/ProgressSteps/ProgressSteps.variants.ts +0 -315
  1033. package/src/components/workflow/ProgressSteps/README.md +0 -412
  1034. package/src/components/workflow/ProgressSteps/index.ts +0 -20
  1035. package/src/components/workflow/ReportGenerator/README.md +0 -530
  1036. package/src/components/workflow/ReportGenerator/ReportGenerator.test.tsx +0 -723
  1037. package/src/components/workflow/ReportGenerator/ReportGenerator.tsx +0 -889
  1038. package/src/components/workflow/ReportGenerator/ReportGenerator.types.ts +0 -321
  1039. package/src/components/workflow/ReportGenerator/ReportGenerator.variants.ts +0 -378
  1040. package/src/components/workflow/ReportGenerator/index.ts +0 -44
  1041. package/src/components/workflow/Stepper/README.md +0 -390
  1042. package/src/components/workflow/Stepper/Stepper.test.tsx +0 -376
  1043. package/src/components/workflow/Stepper/Stepper.tsx +0 -301
  1044. package/src/components/workflow/Stepper/Stepper.types.ts +0 -73
  1045. package/src/components/workflow/Stepper/Stepper.variants.ts +0 -194
  1046. package/src/components/workflow/Stepper/index.ts +0 -16
  1047. package/src/components/workflow/TaskCard/README.md +0 -343
  1048. package/src/components/workflow/TaskCard/TaskCard.test.tsx +0 -375
  1049. package/src/components/workflow/TaskCard/TaskCard.tsx +0 -312
  1050. package/src/components/workflow/TaskCard/TaskCard.types.ts +0 -55
  1051. package/src/components/workflow/TaskCard/TaskCard.variants.ts +0 -64
  1052. package/src/components/workflow/TaskCard/index.ts +0 -14
  1053. package/src/components/workflow/TaskList/README.md +0 -317
  1054. package/src/components/workflow/TaskList/TaskList.test.tsx +0 -318
  1055. package/src/components/workflow/TaskList/TaskList.tsx +0 -556
  1056. package/src/components/workflow/TaskList/TaskList.types.ts +0 -78
  1057. package/src/components/workflow/TaskList/TaskList.variants.ts +0 -143
  1058. package/src/components/workflow/TaskList/index.ts +0 -19
  1059. package/src/components/workflow/TaskStatus/README.md +0 -358
  1060. package/src/components/workflow/TaskStatus/TaskStatus.test.tsx +0 -299
  1061. package/src/components/workflow/TaskStatus/TaskStatus.tsx +0 -246
  1062. package/src/components/workflow/TaskStatus/TaskStatus.types.ts +0 -65
  1063. package/src/components/workflow/TaskStatus/TaskStatus.variants.ts +0 -145
  1064. package/src/components/workflow/TaskStatus/index.ts +0 -24
  1065. package/src/components/workflow/Wizard/README.md +0 -440
  1066. package/src/components/workflow/Wizard/Wizard.test.tsx +0 -432
  1067. package/src/components/workflow/Wizard/Wizard.tsx +0 -279
  1068. package/src/components/workflow/Wizard/Wizard.types.ts +0 -61
  1069. package/src/components/workflow/Wizard/Wizard.variants.ts +0 -105
  1070. package/src/components/workflow/Wizard/index.ts +0 -9
  1071. package/src/components/workflow/index.ts +0 -14
  1072. package/src/hooks/index.ts +0 -4
  1073. package/src/hooks/use-media-query.ts +0 -24
  1074. package/src/hooks/use-mobile.ts +0 -30
  1075. package/src/hooks/use-on-window-resize.ts +0 -27
  1076. package/src/index.ts +0 -22
  1077. package/src/lib/chart-colors.ts +0 -195
  1078. package/src/lib/utils.ts +0 -6
  1079. package/src/test/setup.ts +0 -125
  1080. package/src/test/vitest.d.ts +0 -13
@@ -1,1112 +0,0 @@
1
- # Button
2
-
3
- ## Visão Geral
4
-
5
- O **Button** é o componente fundamental de interação do Design System ETUS, usado para disparar ações e submeter formulários. Como elemento atômico, serve de base para composições mais complexas como `IconButton`, `ButtonGroup` e `ToggleButton`.
6
-
7
- ### Casos de Uso
8
-
9
- - Submissão de formulários
10
- - Ações primárias e secundárias em interfaces
11
- - Navegação quando usado com `asChild` + Link
12
- - Ações destrutivas (deletar, remover)
13
- - Links estilizados como botões
14
-
15
- ### Classificação
16
-
17
- **Categoria:** Atom
18
- **Dependências:** `@radix-ui/react-slot`, `class-variance-authority`
19
-
20
- ---
21
-
22
- ## Design Specs
23
-
24
- ### Variantes (`variant`)
25
-
26
- | Variante | Uso | Tokens |
27
- | ----------------- | ------------------------- | ----------------------------------------------- |
28
- | `default` | Ação primária (legacy) | `bg-primary`, `text-primary-foreground` |
29
- | `primary` | Ação primária (Figma) | `bg-button-primary-*` |
30
- | `secondary` | Ação secundária (legacy) | `bg-secondary`, `text-secondary-foreground` |
31
- | `secondary-gray` | Secundário neutro | `bg-button-secondary-gray-*` |
32
- | `secondary-color` | Secundário colorido | `bg-button-secondary-color-*` |
33
- | `tertiary-gray` | Terciário neutro | `text-button-tertiary-gray-*` |
34
- | `tertiary-color` | Terciário colorido | `text-button-tertiary-color-*` |
35
- | `destructive` | Ações perigosas | `bg-destructive`, `text-destructive-foreground` |
36
- | `outline` | Baixa ênfase | `border`, `bg-background` |
37
- | `dashed` | Adicionar item / Builder | `border-dashed` |
38
- | `ghost` | Mínima ênfase | Transparente, hover `bg-accent` |
39
- | `link` | Navegação inline (legacy) | `text-shadow-button`, underline |
40
- | `link-gray` | Link neutro | `text-button-link-gray-*` |
41
- | `link-color` | Link colorido | `text-button-link-color-*` |
42
- | `unstyled` | Comportamento sem estilo | `bg-transparent`, `p-0` |
43
- | `success` | Estado positivo | `bg-green-*`, `text-white` |
44
- | `warning` | Estado de atenção | `bg-yellow-*`, `text-white` |
45
-
46
- > Atalho: use `tone="gray" | "color"` com `variant="secondary" | "tertiary" | "link"` para mapear automaticamente para `*-gray` ou `*-color`.
47
-
48
- ### Tamanhos (`size`)
49
-
50
- | Tamanho | Altura | Padding | Uso |
51
- | ---------- | -------------------- | ------- | -------------------------- |
52
- | `sm` | `h-8` (32px) | `px-3` | Espaços compactos, tabelas |
53
- | `default` | `h-9` (36px) | `px-4` | Uso geral |
54
- | `lg` | `h-10` (40px) | `px-6` | CTAs, ações principais |
55
- | `xl` | `h-12` (48px) | `px-8` | Destaque com mais presença |
56
- | `2xl` | `h-[60px]` (60px) | `px-10` | CTA extra grande |
57
- | `icon` | `size-9` (36px) | - | Apenas ícone |
58
- | `icon-sm` | `size-8` (32px) | - | Ícone compacto |
59
- | `icon-lg` | `size-10` (40px) | - | Ícone grande |
60
- | `icon-xl` | `size-12` (48px) | - | Ícone extra grande |
61
- | `icon-2xl` | `size-[60px]` (60px) | - | Ícone mega |
62
-
63
- ### Estados
64
-
65
- | Estado | Classes/Atributos | Comportamento |
66
- | -------- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------- |
67
- | Default | - | Aparência base |
68
- | Hover | `hover:bg-*/90` | Leve escurecimento |
69
- | Focus | `focus-visible:ring-4` | Ring de 4px com `ring-button-ring-brand` (z-index: 10) |
70
- | Loading | `data-loading`, `aria-busy="true"` | Spinner centralizado, preserva largura original (sem layout shift), `aria-label` automático se texto oculto |
71
- | Disabled | `disabled:opacity-50` | 50% opacidade, sem pointer events (previne clique em links) |
72
- | Invalid | `aria-invalid:ring-destructive/20` | Ring vermelho |
73
-
74
- ### Tokens Utilizados
75
-
76
- O Button utiliza tokens de componente específicos definidos em `@etus/tokens`. Os tokens seguem a convenção:
77
-
78
- ```
79
- --button-{variant}-{property}-{state}
80
- --button-size-{size}-{property}
81
- ```
82
-
83
- #### Tokens de Variante (Cores)
84
-
85
- ```css
86
- /* Primary */
87
- --button-primary-bg-DEFAULT /* Fundo padrão */
88
- --button-primary-bg-hover /* Fundo no hover */
89
- --button-primary-fg-DEFAULT /* Texto padrão */
90
- --button-primary-border-DEFAULT /* Borda padrão */
91
- --button-primary-border-hover /* Borda no hover */
92
-
93
- /* Secondary Gray */
94
- --button-secondary-gray-bg-DEFAULT
95
- --button-secondary-gray-bg-hover
96
- --button-secondary-gray-fg-DEFAULT
97
- --button-secondary-gray-fg-hover
98
- --button-secondary-gray-border-DEFAULT
99
- --button-secondary-gray-border-hover
100
-
101
- /* Secondary Color */
102
- --button-secondary-color-bg-DEFAULT
103
- --button-secondary-color-bg-hover
104
- --button-secondary-color-fg-DEFAULT
105
- --button-secondary-color-fg-hover
106
- --button-secondary-color-border-DEFAULT
107
- --button-secondary-color-border-hover
108
-
109
- /* Tertiary Gray/Color */
110
- --button-tertiary-gray-fg-DEFAULT
111
- --button-tertiary-gray-fg-hover
112
- --button-tertiary-gray-bg-hover
113
- --button-tertiary-color-fg-DEFAULT
114
- --button-tertiary-color-fg-hover
115
- --button-tertiary-color-bg-hover
116
-
117
- /* Link Gray/Color */
118
- --button-link-gray-fg-DEFAULT
119
- --button-link-gray-fg-hover
120
- --button-link-color-fg-DEFAULT
121
- --button-link-color-fg-hover
122
-
123
- /* Disabled */
124
- --button-disabled-bg
125
- --button-disabled-fg
126
- --button-disabled-border
127
-
128
- /* Focus Ring */
129
- --button-ring-brand
130
- --button-ring-gray
131
- ```
132
-
133
- #### Tokens de Tamanho (Dimensões)
134
-
135
- ```css
136
- /* Default (36px) */
137
- --button-size-default-h /* Altura */
138
- --button-size-default-px /* Padding horizontal */
139
- --button-size-default-py /* Padding vertical */
140
- --button-size-default-text /* Font size */
141
- --button-size-default-leading /* Line height */
142
- --button-size-default-gap /* Gap entre elementos */
143
-
144
- /* Small, Large, XL, 2XL seguem o mesmo padrão */
145
- --button-size-sm-*
146
- --button-size-lg-*
147
- --button-size-xl-*
148
- --button-size-2xl-*
149
-
150
- /* Icon sizes */
151
- --button-size-icon-size /* 36px */
152
- --button-size-icon-sm-size /* 32px */
153
- --button-size-icon-lg-size /* 40px */
154
- --button-size-icon-xl-size /* 48px */
155
- --button-size-icon-2xl-size /* 60px */
156
- ```
157
-
158
- #### Outros Tokens
159
-
160
- ```css
161
- /* Radius */
162
- --button-radius-default
163
-
164
- /* Sombras */
165
- --button-box-shadow-default
166
- --button-box-shadow-xs
167
-
168
- /* Transições (globais) */
169
- --duration-fast
170
- --easing-default
171
- ```
172
-
173
- ---
174
-
175
- ## Padrão de Tokens com Tailwind v4
176
-
177
- Esta seção documenta como usar tokens CSS com Tailwind CSS v4 e CVA (Class Variance Authority). Este padrão é fundamental para manter consistência no design system.
178
-
179
- ### Sintaxe de Valores Arbitrários
180
-
181
- Tailwind v4 usa **arbitrary values** com **type hints** para interpretar corretamente os tokens CSS:
182
-
183
- | Tipo de Token | Sintaxe Tailwind | Exemplo |
184
- | ------------- | ---------------------------- | ----------------------------------------------- |
185
- | **Cores** | `bg-[color:var(--token)]` | `bg-[color:var(--button-primary-bg-DEFAULT)]` |
186
- | **Dimensões** | `h-[var(--token)]` | `h-[var(--button-size-default-h)]` |
187
- | **Font Size** | `text-[length:var(--token)]` | `text-[length:var(--button-size-default-text)]` |
188
- | **Sombras** | `shadow-[var(--token)]` | `shadow-[var(--button-box-shadow-default)]` |
189
- | **Duração** | `duration-[var(--token)]` | `duration-[var(--duration-fast)]` |
190
- | **Easing** | `ease-[var(--token)]` | `ease-[var(--easing-default)]` |
191
-
192
- ### Por que usar Type Hints?
193
-
194
- Os tokens do ETUS usam **OKLCH** como espaço de cor. O Tailwind precisa do type hint `color:` para interpretar corretamente:
195
-
196
- ```tsx
197
- // ✅ CORRETO - Tailwind interpreta como cor
198
- bg-[color:var(--button-primary-bg-DEFAULT)]
199
-
200
- // ❌ INCORRETO - Tailwind não sabe o tipo
201
- bg-[var(--button-primary-bg-DEFAULT)]
202
-
203
- // ❌ INCORRETO - Tokens OKLCH não são HSL
204
- bg-[hsl(var(--button-primary-bg-DEFAULT))]
205
- ```
206
-
207
- ### Exemplo Completo de CVA
208
-
209
- ```tsx
210
- const buttonVariants = cva(
211
- // Base styles com tokens globais
212
- "inline-flex items-center justify-center rounded-[var(--button-radius-default)] font-medium transition-all duration-[var(--duration-fast)] ease-[var(--easing-default)]",
213
- {
214
- variants: {
215
- variant: {
216
- // Cores: sempre usar color: para bg, text, border
217
- primary:
218
- "bg-[color:var(--button-primary-bg-DEFAULT)] text-[color:var(--button-primary-fg-DEFAULT)] border-[color:var(--button-primary-border-DEFAULT)] hover:bg-[color:var(--button-primary-bg-hover)]",
219
- },
220
- size: {
221
- // Dimensões: h e px não precisam de type hint
222
- // Font size: PRECISA de length: para evitar conflito com text-color
223
- default:
224
- "h-[var(--button-size-default-h)] px-[var(--button-size-default-px)] text-[length:var(--button-size-default-text)]",
225
- },
226
- },
227
- },
228
- );
229
- ```
230
-
231
- ### Regras Importantes
232
-
233
- 1. **Cores (`bg-`, `text-color`, `border-`)**: Sempre usar `color:var(--token)`
234
- 2. **Font Size (`text-size`)**: Sempre usar `length:var(--token)` para distinguir de cores
235
- 3. **Dimensões (`h-`, `w-`, `px-`, `py-`)**: Não precisa de type hint
236
- 4. **Sombras (`shadow-`)**: Não precisa de type hint
237
- 5. **NUNCA usar `hsl()`**: Os tokens OKLCH são valores completos
238
-
239
- ### Estados com Tokens
240
-
241
- ```tsx
242
- // Hover
243
- hover:bg-[color:var(--button-primary-bg-hover)]
244
- hover:border-[color:var(--button-primary-border-hover)]
245
-
246
- // Disabled
247
- disabled:bg-[color:var(--button-disabled-bg)]
248
- disabled:text-[color:var(--button-disabled-fg)]
249
-
250
- // Focus
251
- focus-visible:ring-[color:var(--button-ring-brand)]
252
- ```
253
-
254
- ### Configuração do Tailwind v4
255
-
256
- Para que os tokens funcionem, o arquivo CSS do app deve incluir a diretiva `@source`:
257
-
258
- ```css
259
- /* index.css */
260
- @import "tailwindcss";
261
- @import "@etus/tokens/styles/tokens.css";
262
-
263
- /* IMPORTANTE: Incluir .ts para escanear definições de CVA */
264
- @source "../../../packages/ui/src/**/*.{ts,tsx}";
265
- ```
266
-
267
- ### data-slot
268
-
269
- ```html
270
- <button data-slot="button">...</button>
271
- ```
272
-
273
- ---
274
-
275
- ## API
276
-
277
- ### Props
278
-
279
- | Prop | Tipo | Padrão | Descrição |
280
- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | --------------------------------------------------- |
281
- | `variant` | `"default" \| "primary" \| "secondary" \| "secondary-gray" \| "secondary-color" \| "tertiary" \| "tertiary-gray" \| "tertiary-color" \| "destructive" \| "outline" \| "dashed" \| "ghost" \| "link" \| "link-gray" \| "link-color" \| "unstyled" \| "success" \| "warning"` | `"default"` | Estilo visual do botão |
282
- | `tone` | `"gray" \| "color"` | - | Atalho para variantes `secondary`/`tertiary`/`link` |
283
- | `size` | `"default" \| "sm" \| "lg" \| "xl" \| "2xl" \| "icon" \| "icon-sm" \| "icon-lg" \| "icon-xl" \| "icon-2xl"` | `"default"` | Tamanho do botão |
284
- | `asChild` | `boolean` | `false` | Renderiza children como elemento (polimorfismo) |
285
- | `loading` | `boolean` | `false` | Mostra spinner e desabilita interações |
286
- | `loadingText` | `string` | - | Texto alternativo durante loading |
287
- | `leftIcon` | `ReactNode` | - | Ícone à esquerda do texto |
288
- | `rightIcon` | `ReactNode` | - | Ícone à direita do texto |
289
- | `className` | `string` | - | Classes CSS adicionais |
290
- | `disabled` | `boolean` | `false` | Desabilita o botão |
291
- | `type` | `"button" \| "submit" \| "reset"` | `"submit"` | Tipo do botão HTML |
292
- | `children` | `ReactNode` | - | Conteúdo do botão |
293
- | `ref` | `Ref<HTMLButtonElement>` | - | Referência ao elemento DOM |
294
-
295
- > Herda todas as props de `React.ComponentProps<"button">`
296
-
297
- ### Callbacks
298
-
299
- Todos os callbacks recebem o evento nativo e um `ButtonEventPayload` com metadados úteis:
300
-
301
- | Callback | Tipo | Descrição |
302
- | ----------- | ------------------------------------------------------------- | ----------------------------- |
303
- | `onClick` | `(event: MouseEvent, payload: ButtonEventPayload) => void` | Disparado ao clicar |
304
- | `onFocus` | `(event: FocusEvent, payload: ButtonEventPayload) => void` | Disparado ao receber foco |
305
- | `onBlur` | `(event: FocusEvent, payload: ButtonEventPayload) => void` | Disparado ao perder foco |
306
- | `onKeyDown` | `(event: KeyboardEvent, payload: ButtonEventPayload) => void` | Disparado ao pressionar tecla |
307
-
308
- #### ButtonEventPayload
309
-
310
- ```typescript
311
- interface ButtonEventPayload {
312
- id?: string; // Valor de data-id
313
- timestamp: number; // Date.now() do momento do evento
314
- isLoading?: boolean; // Estado de loading no momento do evento
315
- }
316
- ```
317
-
318
- ### TypeScript
319
-
320
- ```typescript
321
- import type {
322
- ButtonProps,
323
- ButtonVariant,
324
- ButtonSize,
325
- ButtonEventPayload,
326
- } from "@etus/ui";
327
-
328
- // ButtonProps inclui:
329
- interface ButtonProps {
330
- variant?: ButtonVariant;
331
- tone?: "gray" | "color";
332
- size?: ButtonSize;
333
- asChild?: boolean;
334
- loading?: boolean;
335
- loadingText?: string;
336
- leftIcon?: ReactNode;
337
- rightIcon?: ReactNode;
338
- "data-id"?: string;
339
- // ... + todas as props de <button>
340
- }
341
-
342
- // Tipos derivados
343
- type ButtonVariant =
344
- | "default"
345
- | "primary"
346
- | "secondary"
347
- | "secondary-gray"
348
- | "secondary-color"
349
- | "tertiary"
350
- | "tertiary-gray"
351
- | "tertiary-color"
352
- | "destructive"
353
- | "outline"
354
- | "ghost"
355
- | "link"
356
- | "link-gray"
357
- | "link-color"
358
- | "success"
359
- | "warning";
360
- type ButtonSize =
361
- | "default"
362
- | "sm"
363
- | "lg"
364
- | "xl"
365
- | "2xl"
366
- | "icon"
367
- | "icon-sm"
368
- | "icon-lg"
369
- | "icon-xl"
370
- | "icon-2xl";
371
-
372
- // Payload de eventos
373
- interface ButtonEventPayload {
374
- id?: string;
375
- timestamp: number;
376
- isLoading?: boolean;
377
- }
378
- ```
379
-
380
- ### Comparativo com Design Systems de Referência
381
-
382
- #### Matriz de Features (12 Design Systems)
383
-
384
- | Feature | ETUS | Shadcn | Radix | Chakra | MUI | Mantine | AntD | NextUI | Headless | Ariakit | Fluent | Carbon |
385
- | --------------------- | :--: | :----: | :---: | :----: | :-: | :-----: | :--: | :----: | :------: | :-----: | :----: | :----: |
386
- | **Variantes** | 16 | 6 | - | 6 | 3 | 7 | 5 | 4 | - | - | 6 | 4 |
387
- | **Tamanhos** | 10 | 4 | - | 4 | 3 | 5 | 4 | 4 | - | - | 4 | 4 |
388
- | **CVA/cva** | ✓ | ✓ | - | - | - | - | - | ✓ | - | - | - | - |
389
- | **asChild/Slot** | ✓ | ✓ | ✓ | - | - | - | - | ✓ | ✓ | ✓ | - | - |
390
- | **loading** | ✓ | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | - | - | ✓ | ✓ |
391
- | **leftIcon** | ✓ | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | - | - | ✓ | ✓ |
392
- | **rightIcon** | ✓ | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | - | - | ✓ | - |
393
- | **fullWidth** | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | - | - | - | - |
394
- | **data-slot** | ✓ | ✓ | - | - | - | - | - | ✓ | - | - | - | - |
395
- | **Compound variants** | ✓ | ✓ | - | - | - | - | - | ✓ | - | - | - | - |
396
- | **ButtonGroup** | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | - | - | ✓ | ✓ |
397
- | **Tooltip built-in** | - | - | - | - | - | - | ✓ | ✓ | - | - | - | ✓ |
398
- | **Ripple effect** | - | - | - | - | ✓ | - | - | ✓ | - | - | ✓ | - |
399
-
400
- #### Comparativo de Variantes por Design System
401
-
402
- | Design System | Variantes Disponíveis |
403
- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
404
- | **ETUS** | `default`, `primary`, `secondary`, `secondary-gray/color`, `tertiary-gray/color`, `destructive`, `outline`, `ghost`, `link`, `link-gray/color`, `success`, `warning` |
405
- | **Shadcn/ui** | `default`, `secondary`, `destructive`, `outline`, `ghost`, `link` |
406
- | **Chakra UI** | `solid`, `outline`, `ghost`, `link`, `unstyled` + colorScheme |
407
- | **MUI** | `contained`, `outlined`, `text` + color |
408
- | **Mantine** | `filled`, `outline`, `light`, `subtle`, `default`, `transparent`, `white` |
409
- | **Ant Design** | `primary`, `default`, `dashed`, `text`, `link` |
410
- | **NextUI** | `solid`, `bordered`, `light`, `flat`, `faded`, `shadow`, `ghost` |
411
- | **Fluent UI** | `primary`, `secondary`, `outline`, `subtle`, `transparent` |
412
- | **Carbon** | `primary`, `secondary`, `tertiary`, `ghost`, `danger` |
413
-
414
- #### Comparativo de Props por Design System
415
-
416
- | Prop | ETUS | Chakra | MUI | Mantine | AntD | NextUI | Fluent |
417
- | ------------------ | :--: | :----------: | :---------------: | :--------------: | :-------: | :----------------: | :----------: |
418
- | `variant` | ✓ | ✓ | ✓ | ✓ | `type` | ✓ | `appearance` |
419
- | `size` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
420
- | `disabled` | ✓ | `isDisabled` | ✓ | ✓ | ✓ | `isDisabled` | ✓ |
421
- | `loading` | ✓ | `isLoading` | `loading` | `loading` | `loading` | `isLoading` | - |
422
- | `loadingText` | ✓ | ✓ | - | `loaderProps` | - | - | - |
423
- | `spinnerPlacement` | - | ✓ | `loadingPosition` | `loaderPosition` | - | `spinnerPlacement` | - |
424
- | `leftIcon` | ✓ | ✓ | `startIcon` | `leftSection` | `icon` | `startContent` | `icon` |
425
- | `rightIcon` | ✓ | ✓ | `endIcon` | `rightSection` | - | `endContent` | - |
426
- | `fullWidth` | - | ✓ | `fullWidth` | `fullWidth` | `block` | `fullWidth` | - |
427
- | `colorScheme` | - | ✓ | `color` | `color` | - | `color` | - |
428
- | `radius` | - | - | - | ✓ | `shape` | ✓ | `shape` |
429
- | `compact` | - | - | - | ✓ | - | - | - |
430
- | `gradient` | - | - | - | ✓ | - | - | - |
431
- | `asChild`/`as` | ✓ | `as` | `component` | `component` | - | `as` | `as` |
432
- | `href` | - | - | `href` | - | `href` | `href` | `href` |
433
-
434
- #### Análise por Categoria
435
-
436
- **Headless/Primitivos (máxima flexibilidade):**
437
-
438
- - **Radix UI** - Apenas Slot, sem estilos
439
- - **Headless UI** - Renderless, focado em a11y
440
- - **Ariakit** - Primitivos com hooks, máxima composabilidade
441
- - **React Aria** - Hooks de comportamento, sem UI
442
-
443
- **Styled/Opinionated (produtividade):**
444
-
445
- - **Chakra UI** - Style props, colorScheme, muito ergonômico
446
- - **MUI** - Sistema de theme completo, sx prop
447
- - **Mantine** - Moderno, muitos utilitários, excelente DX
448
- - **Ant Design** - Enterprise, muito completo, ConfigProvider
449
-
450
- **Hybrid (meio-termo):**
451
-
452
- - **Shadcn/ui** - CVA + Tailwind, copiável
453
- - **NextUI** - Tailwind + Framer Motion
454
- - **ETUS** - CVA + Tailwind, baseado em Shadcn
455
-
456
- **Enterprise/Legacy:**
457
-
458
- - **Fluent UI** - Microsoft, tokens complexos
459
- - **Carbon** - IBM, foco em data visualization
460
- - **Blueprint** - Palantir, data-dense UIs
461
-
462
- ---
463
-
464
- ## Acessibilidade (A11y)
465
-
466
- ### ARIA Attributes
467
-
468
- | Atributo | Uso |
469
- | --------------- | ------------------------------------------ |
470
- | `aria-disabled` | Quando `disabled={true}` |
471
- | `aria-pressed` | Para toggle buttons |
472
- | `aria-expanded` | Quando controla elemento expansível |
473
- | `aria-haspopup` | Quando abre menu/dialog |
474
- | `aria-label` | Quando não há texto visível (icon buttons) |
475
- | `aria-invalid` | Validação de formulário |
476
-
477
- ### Suporte a Teclado
478
-
479
- | Tecla | Ação |
480
- | ------- | ----------------------- |
481
- | `Tab` | Move foco para/do botão |
482
- | `Enter` | Ativa o botão |
483
- | `Space` | Ativa o botão |
484
-
485
- ### Focus Management
486
-
487
- ```tsx
488
- // Focus visible apenas para navegação por teclado
489
- focus-visible:border-ring
490
- focus-visible:ring-ring/50
491
- focus-visible:ring-[3px]
492
- ```
493
-
494
- ### Contraste de Cores
495
-
496
- Todos os pares de cores seguem WCAG 2.1 AA (mínimo 4.5:1):
497
-
498
- | Variante | Foreground | Background | Ratio |
499
- | ----------- | ------------------------ | --------------- | ------- |
500
- | default | `--primary-foreground` | `--primary` | ≥ 4.5:1 |
501
- | secondary | `--secondary-foreground` | `--secondary` | ≥ 4.5:1 |
502
- | destructive | white | `--destructive` | ≥ 4.5:1 |
503
-
504
- ### Screen Readers
505
-
506
- - Usar `aria-label` para icon buttons
507
- - Evitar "Click here" - usar texto descritivo
508
- - Anunciar estado de loading se implementado
509
-
510
- ### Reduced Motion
511
-
512
- ```tsx
513
- // Respeitar preferência do usuário
514
- @media (prefers-reduced-motion: reduce) {
515
- transition: none;
516
- }
517
- ```
518
-
519
- ### Comparativo A11y (12 Design Systems)
520
-
521
- | Feature | ETUS | React Aria | Radix | Ariakit | Headless | Chakra | MUI | Mantine | AntD | NextUI | Fluent | Carbon |
522
- | ------------------------ | :--: | :--------: | :---: | :-----: | :------: | :----: | :-: | :-----: | :--: | :----: | :----: | :----: |
523
- | **ARIA automático** | - | ✓ | ✓ | ✓ | ✓ | ~ | ~ | ~ | ~ | ~ | ✓ | ✓ |
524
- | **Focus visible** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
525
- | **Focus trap** | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | ✓ | ✓ | ✓ |
526
- | **Keyboard nav** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
527
- | **aria-disabled** | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | ✓ | ✓ | ✓ |
528
- | **aria-busy** | - | ✓ | - | ✓ | - | ✓ | - | ✓ | - | ✓ | ✓ | ✓ |
529
- | **aria-pressed** | - | ✓ | - | ✓ | ✓ | - | - | - | - | - | ✓ | - |
530
- | **Reduced motion** | ~ | ✓ | - | - | - | ✓ | ✓ | ✓ | - | ✓ | ✓ | ✓ |
531
- | **High contrast** | - | ✓ | - | - | - | - | - | - | - | - | ✓ | ✓ |
532
- | **RTL support** | - | ✓ | - | - | - | ✓ | ✓ | ✓ | ✓ | - | ✓ | ✓ |
533
- | **Screen reader tested** | - | ✓ | ✓ | ✓ | ✓ | ~ | ✓ | ~ | ~ | ~ | ✓ | ✓ |
534
-
535
- **Legenda:** ✓ = Suporte completo | ~ = Parcial/Manual | - = Não suportado
536
-
537
- #### Abordagens de Acessibilidade
538
-
539
- | Design System | Abordagem | Nível WCAG | Notas |
540
- | --------------- | --------------------- | ---------- | ----------------------------------------------- |
541
- | **React Aria** | Hooks comportamentais | AAA | Padrão ouro, testado com leitores de tela reais |
542
- | **Radix UI** | Primitivos acessíveis | AA | WAI-ARIA compliant, composable |
543
- | **Ariakit** | Hooks + componentes | AA | Muito flexível, ótima documentação a11y |
544
- | **Headless UI** | Renderless a11y | AA | Foco em estados e ARIA |
545
- | **Fluent UI** | Built-in | AAA | Microsoft a11y guidelines, high contrast |
546
- | **Carbon** | Built-in | AA | IBM Equal Access Toolkit |
547
- | **MUI** | Built-in | AA | Boa base, customização via props |
548
- | **Chakra UI** | Semi-automático | AA | `isDisabled` etc. mapeiam para ARIA |
549
- | **Mantine** | Semi-automático | AA | Bom suporte básico |
550
- | **Ant Design** | Manual | A-AA | Requer configuração adicional |
551
- | **NextUI** | Baseado em React Aria | AA | Herda de React Aria |
552
- | **ETUS** | Manual | AA | Baseado em Shadcn patterns |
553
-
554
- ---
555
-
556
- ## Exemplos
557
-
558
- ### Uso Básico
559
-
560
- ```tsx
561
- import { Button } from "@etus/ui";
562
-
563
- function Example() {
564
- return <Button>Click me</Button>;
565
- }
566
- ```
567
-
568
- ### Variantes
569
-
570
- ```tsx
571
- <Button variant="default">Primary</Button>
572
- <Button variant="primary">Primary (Figma)</Button>
573
- <Button variant="secondary">Secondary</Button>
574
- <Button variant="secondary" tone="gray">Secondary Gray</Button>
575
- <Button variant="secondary" tone="color">Secondary Color</Button>
576
- <Button variant="destructive">Delete</Button>
577
- <Button variant="outline">Outline</Button>
578
- <Button variant="ghost">Ghost</Button>
579
- <Button variant="link">Link</Button>
580
- <Button variant="link" tone="gray">Link Gray</Button>
581
- <Button variant="link" tone="color">Link Color</Button>
582
- <Button variant="dashed">Add New Item</Button>
583
- <Button variant="unstyled">Clickable Unstyled Area</Button>
584
- ```
585
-
586
- ### Tamanhos
587
-
588
- ```tsx
589
- <Button size="sm">Small</Button>
590
- <Button size="default">Default</Button>
591
- <Button size="lg">Large</Button>
592
- <Button size="xl">Extra Large</Button>
593
- <Button size="2xl">2XL</Button>
594
- ```
595
-
596
- ### Com Ícones
597
-
598
- ```tsx
599
- import { Mail, ChevronRight } from "lucide-react"
600
-
601
- // Ícone à esquerda (prop dedicada)
602
- <Button leftIcon={<Mail />}>Send Email</Button>
603
-
604
- // Ícone à direita (prop dedicada)
605
- <Button rightIcon={<ChevronRight />}>Next</Button>
606
-
607
- // Ambos os ícones
608
- <Button leftIcon={<Mail />} rightIcon={<ChevronRight />}>
609
- Action
610
- </Button>
611
-
612
- // Apenas ícone
613
- <Button size="icon" aria-label="Send email">
614
- <Mail />
615
- </Button>
616
-
617
- // Apenas ícone (extra grande)
618
- <Button size="icon-xl" aria-label="Send email">
619
- <Mail />
620
- </Button>
621
-
622
- // Apenas ícone (2XL)
623
- <Button size="icon-2xl" aria-label="Send email">
624
- <Mail />
625
- </Button>
626
-
627
- // Composição manual ainda funciona
628
- <Button>
629
- <Mail />
630
- Send Email
631
- </Button>
632
- ```
633
-
634
- ### Polimorfismo com asChild
635
-
636
- ```tsx
637
- import { Link } from "@tanstack/react-router"
638
-
639
- // Renderiza como Link mantendo estilos do Button
640
- <Button asChild>
641
- <Link to="/dashboard">Go to Dashboard</Link>
642
- </Button>
643
-
644
- // Com elemento anchor
645
- <Button asChild variant="link">
646
- <a href="https://example.com" target="_blank" rel="noopener">
647
- External Link
648
- </a>
649
- </Button>
650
- ```
651
-
652
- ### Estados
653
-
654
- ```tsx
655
- // Disabled
656
- <Button disabled>Disabled</Button>
657
-
658
- // Form submit
659
- <Button type="submit">Submit Form</Button>
660
-
661
- // Loading state (built-in)
662
- <Button loading>Saving...</Button>
663
-
664
- // Loading com texto alternativo
665
- <Button loading loadingText="Processing...">Submit</Button>
666
- ```
667
-
668
- ### Callbacks com Payload
669
-
670
- ```tsx
671
- import type { ButtonEventPayload } from "@etus/ui";
672
-
673
- function Example() {
674
- const handleClick = (
675
- e: React.MouseEvent<HTMLButtonElement>,
676
- payload: ButtonEventPayload,
677
- ) => {
678
- console.log("Clicked!", {
679
- buttonId: payload.id,
680
- at: new Date(payload.timestamp),
681
- wasLoading: payload.isLoading,
682
- });
683
- };
684
-
685
- return (
686
- <Button
687
- data-id="submit-btn"
688
- onClick={handleClick}
689
- onFocus={(e, payload) => console.log("Focused", payload.id)}
690
- >
691
- Interactive Button
692
- </Button>
693
- );
694
- }
695
- ```
696
-
697
- ### Responsividade
698
-
699
- ```tsx
700
- // Tamanho responsivo via className
701
- <Button className="h-8 px-3 md:h-9 md:px-4 lg:h-10 lg:px-6">
702
- Responsive
703
- </Button>
704
-
705
- // Full width em mobile
706
- <Button className="w-full sm:w-auto">
707
- Submit
708
- </Button>
709
- ```
710
-
711
- ### Com Container Queries
712
-
713
- ```tsx
714
- <div className="@container">
715
- <Button className="@sm:size-lg @md:w-auto w-full">Container Aware</Button>
716
- </div>
717
- ```
718
-
719
- ### Composição com Formulário
720
-
721
- ```tsx
722
- import { useForm } from "react-hook-form";
723
-
724
- function ContactForm() {
725
- const { handleSubmit, formState } = useForm();
726
- const { isSubmitting } = formState;
727
-
728
- return (
729
- <form onSubmit={handleSubmit(onSubmit)}>
730
- {/* campos... */}
731
- <Button type="submit" disabled={isSubmitting}>
732
- {isSubmitting ? (
733
- <>
734
- <Loader2 className="animate-spin" />
735
- Sending...
736
- </>
737
- ) : (
738
- "Send Message"
739
- )}
740
- </Button>
741
- </form>
742
- );
743
- }
744
- ```
745
-
746
- ---
747
-
748
- ## Testes
749
-
750
- ### Testes Unitários
751
-
752
- ```tsx
753
- // Button.test.tsx
754
- import { render, screen } from "@testing-library/react";
755
- import userEvent from "@testing-library/user-event";
756
- import { describe, expect, it, vi } from "vitest";
757
- import { Button } from "./Button";
758
-
759
- describe("Button", () => {
760
- it("renders children correctly", () => {
761
- render(<Button>Click me</Button>);
762
- expect(
763
- screen.getByRole("button", { name: "Click me" }),
764
- ).toBeInTheDocument();
765
- });
766
-
767
- it("applies variant classes", () => {
768
- render(<Button variant="destructive">Delete</Button>);
769
- expect(screen.getByRole("button")).toHaveClass("bg-destructive");
770
- });
771
-
772
- it("applies size classes", () => {
773
- render(<Button size="lg">Large</Button>);
774
- expect(screen.getByRole("button")).toHaveClass("h-10");
775
- });
776
-
777
- it("merges custom className", () => {
778
- render(<Button className="custom-class">Test</Button>);
779
- expect(screen.getByRole("button")).toHaveClass("custom-class");
780
- });
781
-
782
- it("has data-slot attribute", () => {
783
- render(<Button>Test</Button>);
784
- expect(screen.getByRole("button")).toHaveAttribute("data-slot", "button");
785
- });
786
- });
787
- ```
788
-
789
- ### Testes de Interação
790
-
791
- ```tsx
792
- describe("Button interactions", () => {
793
- it("calls onClick with event and payload", async () => {
794
- const user = userEvent.setup();
795
- const handleClick = vi.fn();
796
-
797
- render(
798
- <Button onClick={handleClick} data-id="test-btn">
799
- Click
800
- </Button>,
801
- );
802
- await user.click(screen.getByRole("button"));
803
-
804
- expect(handleClick).toHaveBeenCalledWith(
805
- expect.any(Object), // MouseEvent
806
- expect.objectContaining({
807
- id: "test-btn",
808
- timestamp: expect.any(Number),
809
- isLoading: false,
810
- }),
811
- );
812
- });
813
-
814
- it("does not call onClick when disabled", async () => {
815
- const user = userEvent.setup();
816
- const handleClick = vi.fn();
817
-
818
- render(
819
- <Button onClick={handleClick} disabled>
820
- Click
821
- </Button>,
822
- );
823
- await user.click(screen.getByRole("button"));
824
-
825
- expect(handleClick).not.toHaveBeenCalled();
826
- });
827
-
828
- it("can be activated with keyboard", async () => {
829
- const user = userEvent.setup();
830
- const handleClick = vi.fn();
831
-
832
- render(<Button onClick={handleClick}>Click</Button>);
833
- screen.getByRole("button").focus();
834
- await user.keyboard("{Enter}");
835
-
836
- expect(handleClick).toHaveBeenCalledTimes(1);
837
- });
838
- });
839
- ```
840
-
841
- ### Testes de Acessibilidade
842
-
843
- ```tsx
844
- import { axe, toHaveNoViolations } from "jest-axe";
845
-
846
- expect.extend(toHaveNoViolations);
847
-
848
- describe("Button accessibility", () => {
849
- it("has no accessibility violations", async () => {
850
- const { container } = render(<Button>Accessible</Button>);
851
- const results = await axe(container);
852
- expect(results).toHaveNoViolations();
853
- });
854
-
855
- it("icon button requires aria-label", async () => {
856
- const { container } = render(
857
- <Button size="icon" aria-label="Close dialog">
858
- <X />
859
- </Button>,
860
- );
861
- const results = await axe(container);
862
- expect(results).toHaveNoViolations();
863
- });
864
-
865
- it("is focusable", () => {
866
- render(<Button>Focus me</Button>);
867
- const button = screen.getByRole("button");
868
- button.focus();
869
- expect(button).toHaveFocus();
870
- });
871
-
872
- it("is not focusable when disabled", () => {
873
- render(<Button disabled>Disabled</Button>);
874
- expect(screen.getByRole("button")).toBeDisabled();
875
- });
876
- });
877
- ```
878
-
879
- ### Testes de Composição (asChild)
880
-
881
- ```tsx
882
- describe("Button asChild", () => {
883
- it("renders as child element", () => {
884
- render(
885
- <Button asChild>
886
- <a href="/test">Link Button</a>
887
- </Button>,
888
- );
889
-
890
- const link = screen.getByRole("link", { name: "Link Button" });
891
- expect(link).toBeInTheDocument();
892
- expect(link).toHaveAttribute("href", "/test");
893
- expect(link).toHaveClass("bg-primary"); // Mantém estilos
894
- });
895
-
896
- it("forwards ref to child element", () => {
897
- const ref = { current: null };
898
- render(
899
- <Button asChild ref={ref}>
900
- <a href="/test">Link</a>
901
- </Button>,
902
- );
903
- expect(ref.current).toBeInstanceOf(HTMLAnchorElement);
904
- });
905
- });
906
- ```
907
-
908
- ### Cenários Críticos
909
-
910
- ```tsx
911
- describe("Button edge cases", () => {
912
- it("handles rapid clicks correctly", async () => {
913
- const user = userEvent.setup();
914
- const handleClick = vi.fn();
915
-
916
- render(<Button onClick={handleClick}>Click</Button>);
917
-
918
- await user.tripleClick(screen.getByRole("button"));
919
- expect(handleClick).toHaveBeenCalledTimes(3);
920
- });
921
-
922
- it("works with form submission", async () => {
923
- const user = userEvent.setup();
924
- const handleSubmit = vi.fn((e) => e.preventDefault());
925
-
926
- render(
927
- <form onSubmit={handleSubmit}>
928
- <Button type="submit">Submit</Button>
929
- </form>,
930
- );
931
-
932
- await user.click(screen.getByRole("button"));
933
- expect(handleSubmit).toHaveBeenCalled();
934
- });
935
-
936
- it("preserves default type as submit in forms", () => {
937
- render(
938
- <form>
939
- <Button>Submit</Button>
940
- </form>,
941
- );
942
- // Default type is "submit" per HTML spec when in form
943
- expect(screen.getByRole("button")).toHaveAttribute("type", undefined);
944
- });
945
- });
946
- ```
947
-
948
- ---
949
-
950
- ## Roadmap / Features Futuras
951
-
952
- Baseado na análise comparativa com 14 design systems, as seguintes features são candidatas para implementação futura:
953
-
954
- ### ✅ Implementado
955
-
956
- #### `loading` + `loadingText`
957
-
958
- Estado de carregamento com spinner automático e preservação de layout (sem shift).
959
-
960
- ```tsx
961
- // API implementada
962
- <Button loading>Saving...</Button>
963
- <Button loading loadingText="Salvando...">Save</Button>
964
- ```
965
-
966
- #### `leftIcon` / `rightIcon`
967
-
968
- Props dedicadas para ícones.
969
-
970
- ```tsx
971
- // API implementada
972
- <Button leftIcon={<Mail />}>Send Email</Button>
973
- <Button rightIcon={<ChevronRight />}>Next</Button>
974
- ```
975
-
976
- #### Melhorias de A11y
977
-
978
- - `aria-busy="true"` automático quando `loading`.
979
- - `aria-label="Loading"` automático quando texto é ocultado pelo loading.
980
- - Prevenção de clique em links (`asChild`) quando `disabled`.
981
-
982
- ### Prioridade Média
983
-
984
- #### `fullWidth`
985
-
986
- Botão ocupa 100% da largura do container.
987
-
988
- ```tsx
989
- // Proposta de API
990
- interface ButtonProps {
991
- fullWidth?: boolean
992
- }
993
-
994
- // Uso
995
- <Button fullWidth>Submit</Button>
996
-
997
- // Equivalente atual via className
998
- <Button className="w-full">Submit</Button>
999
- ```
1000
-
1001
- **Referências:** Chakra, MUI, Mantine (`fullWidth`), AntD (`block`)
1002
-
1003
- #### Melhorias de A11y
1004
-
1005
- ```tsx
1006
- // aria-busy automático quando loading
1007
- <Button loading /> // → aria-busy="true" automático
1008
-
1009
- // aria-disabled além de disabled
1010
- <Button disabled /> // → aria-disabled="true" + disabled
1011
- ```
1012
-
1013
- **Referências:** React Aria, Ariakit, Fluent UI
1014
-
1015
- ### Prioridade Baixa
1016
-
1017
- #### `ButtonGroup`
1018
-
1019
- Componente compound para agrupar botões.
1020
-
1021
- ```tsx
1022
- // Proposta de API
1023
- <ButtonGroup variant="outline" size="sm">
1024
- <Button>Left</Button>
1025
- <Button>Center</Button>
1026
- <Button>Right</Button>
1027
- </ButtonGroup>
1028
- ```
1029
-
1030
- **Referências:** Chakra, MUI, Mantine, AntD, Fluent UI, Carbon
1031
-
1032
- #### `radius`
1033
-
1034
- Controle granular de border-radius.
1035
-
1036
- ```tsx
1037
- // Proposta de API
1038
- interface ButtonProps {
1039
- radius?: "none" | "sm" | "md" | "lg" | "full";
1040
- }
1041
-
1042
- // Uso
1043
- <Button radius="full">Pill Button</Button>;
1044
- ```
1045
-
1046
- **Referências:** Mantine, NextUI
1047
-
1048
- #### `color` / `colorScheme`
1049
-
1050
- Variação de cor independente da variante.
1051
-
1052
- ```tsx
1053
- // Proposta de API
1054
- interface ButtonProps {
1055
- colorScheme?: "primary" | "success" | "warning" | "error";
1056
- }
1057
-
1058
- // Uso
1059
- <Button variant="outline" colorScheme="success">
1060
- Approve
1061
- </Button>;
1062
- ```
1063
-
1064
- **Referências:** Chakra (`colorScheme`), MUI (`color`), Mantine (`color`)
1065
-
1066
- ### Decisões de Design
1067
-
1068
- | Feature | Recomendação | Justificativa |
1069
- | ---------------------- | -------------- | ----------------------------- |
1070
- | `loading` | ✅ Implementar | Alta demanda, UX melhor |
1071
- | `leftIcon`/`rightIcon` | ✅ Implementar | Ergonomia, type-safety |
1072
- | `fullWidth` | ⚠️ Avaliar | `className="w-full"` funciona |
1073
- | `ButtonGroup` | ✅ Implementar | Comum em UIs, boa composição |
1074
- | `radius` | ❌ Evitar | Usar variants ou className |
1075
- | `colorScheme` | ❌ Evitar | Complexidade, usar variants |
1076
-
1077
- ---
1078
-
1079
- ## Referências
1080
-
1081
- ### Design Systems Analisados
1082
-
1083
- | Design System | Documentação Button | GitHub |
1084
- | --------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
1085
- | **Shadcn/ui** | [Button](https://ui.shadcn.com/docs/components/button) | [shadcn-ui/ui](https://github.com/shadcn-ui/ui) |
1086
- | **Radix UI** | [Slot](https://www.radix-ui.com/primitives/docs/utilities/slot) | [radix-ui/primitives](https://github.com/radix-ui/primitives) |
1087
- | **React Aria** | [Button](https://react-spectrum.adobe.com/react-aria/Button.html) | [adobe/react-spectrum](https://github.com/adobe/react-spectrum) |
1088
- | **Chakra UI** | [Button](https://chakra-ui.com/docs/components/button) | [chakra-ui/chakra-ui](https://github.com/chakra-ui/chakra-ui) |
1089
- | **MUI** | [Button](https://mui.com/material-ui/react-button/) | [mui/material-ui](https://github.com/mui/material-ui) |
1090
- | **Mantine** | [Button](https://mantine.dev/core/button/) | [mantinedev/mantine](https://github.com/mantinedev/mantine) |
1091
- | **Ant Design** | [Button](https://ant.design/components/button) | [ant-design/ant-design](https://github.com/ant-design/ant-design) |
1092
- | **NextUI** | [Button](https://nextui.org/docs/components/button) | [nextui-org/nextui](https://github.com/nextui-org/nextui) |
1093
- | **Headless UI** | [Button](https://headlessui.com/react/button) | [tailwindlabs/headlessui](https://github.com/tailwindlabs/headlessui) |
1094
- | **Ariakit** | [Button](https://ariakit.org/components/button) | [ariakit/ariakit](https://github.com/ariakit/ariakit) |
1095
- | **Fluent UI** | [Button](https://react.fluentui.dev/?path=/docs/components-button-button--default) | [microsoft/fluentui](https://github.com/microsoft/fluentui) |
1096
- | **Carbon** | [Button](https://carbondesignsystem.com/components/button/usage/) | [carbon-design-system/carbon](https://github.com/carbon-design-system/carbon) |
1097
- | **Blueprint** | [Button](https://blueprintjs.com/docs/#core/components/button) | [palantir/blueprint](https://github.com/palantir/blueprint) |
1098
- | **PrimeReact** | [Button](https://primereact.org/button/) | [primefaces/primereact](https://github.com/primefaces/primereact) |
1099
-
1100
- ### Especificações e Padrões
1101
-
1102
- - [WAI-ARIA APG - Button Pattern](https://www.w3.org/WAI/ARIA/apg/patterns/button/)
1103
- - [WCAG 2.1 Success Criteria](https://www.w3.org/WAI/WCAG21/quickref/)
1104
- - [MDN - Button Element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button)
1105
- - [HTML Spec - Button](https://html.spec.whatwg.org/multipage/form-elements.html#the-button-element)
1106
-
1107
- ### Ferramentas Utilizadas
1108
-
1109
- - [CVA - Class Variance Authority](https://cva.style/docs)
1110
- - [Tailwind CSS](https://tailwindcss.com/docs)
1111
- - [Radix Slot](https://www.radix-ui.com/primitives/docs/utilities/slot)
1112
- - [Lucide Icons](https://lucide.dev/icons/)