@rufous/ui 0.2.0-beta.0 โ†’ 0.2.1

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 (408) hide show
  1. package/README.md +485 -219
  2. package/dist/main.cjs +14129 -947
  3. package/dist/main.css +14077 -5884
  4. package/dist/main.d.cts +1719 -70
  5. package/dist/main.d.ts +1719 -70
  6. package/dist/main.js +15345 -210
  7. package/package.json +32 -5
  8. package/dist/Buttons/addButton.cjs +0 -39
  9. package/dist/Buttons/addButton.d.cts +0 -8
  10. package/dist/Buttons/addButton.d.ts +0 -8
  11. package/dist/Buttons/addButton.js +0 -7
  12. package/dist/Buttons/cancelButton.cjs +0 -37
  13. package/dist/Buttons/cancelButton.d.cts +0 -8
  14. package/dist/Buttons/cancelButton.d.ts +0 -8
  15. package/dist/Buttons/cancelButton.js +0 -7
  16. package/dist/Buttons/index.cjs +0 -155
  17. package/dist/Buttons/index.d.cts +0 -5
  18. package/dist/Buttons/index.d.ts +0 -5
  19. package/dist/Buttons/index.js +0 -21
  20. package/dist/Buttons/stdButton.cjs +0 -39
  21. package/dist/Buttons/stdButton.d.cts +0 -8
  22. package/dist/Buttons/stdButton.d.ts +0 -8
  23. package/dist/Buttons/stdButton.js +0 -7
  24. package/dist/Buttons/submitButton.cjs +0 -124
  25. package/dist/Buttons/submitButton.d.cts +0 -13
  26. package/dist/Buttons/submitButton.d.ts +0 -13
  27. package/dist/Buttons/submitButton.js +0 -8
  28. package/dist/CheckBoxes/CheckBox.cjs +0 -62
  29. package/dist/CheckBoxes/CheckBox.d.cjs +0 -17
  30. package/dist/CheckBoxes/CheckBox.d.cts +0 -15
  31. package/dist/CheckBoxes/CheckBox.d.d.cts +0 -15
  32. package/dist/CheckBoxes/CheckBox.d.d.ts +0 -15
  33. package/dist/CheckBoxes/CheckBox.d.js +0 -0
  34. package/dist/CheckBoxes/CheckBox.d.ts +0 -15
  35. package/dist/CheckBoxes/CheckBox.js +0 -7
  36. package/dist/Contexts/rufousThemeProvider.cjs +0 -157
  37. package/dist/Contexts/rufousThemeProvider.d.cts +0 -8
  38. package/dist/Contexts/rufousThemeProvider.d.ts +0 -8
  39. package/dist/Contexts/rufousThemeProvider.js +0 -10
  40. package/dist/DataGrid/DataGrid.cjs +0 -418
  41. package/dist/DataGrid/DataGrid.d.cts +0 -8
  42. package/dist/DataGrid/DataGrid.d.ts +0 -8
  43. package/dist/DataGrid/DataGrid.js +0 -9
  44. package/dist/DataGrid/index.cjs +0 -418
  45. package/dist/DataGrid/index.d.cts +0 -3
  46. package/dist/DataGrid/index.d.ts +0 -3
  47. package/dist/DataGrid/index.js +0 -8
  48. package/dist/DataGrid/types.cjs +0 -17
  49. package/dist/DataGrid/types.d.cts +0 -31
  50. package/dist/DataGrid/types.d.ts +0 -31
  51. package/dist/DataGrid/types.js +0 -0
  52. package/dist/Dialogs/BaseDialog.cjs +0 -133
  53. package/dist/Dialogs/BaseDialog.css +0 -8361
  54. package/dist/Dialogs/BaseDialog.d.cts +0 -31
  55. package/dist/Dialogs/BaseDialog.d.ts +0 -31
  56. package/dist/Dialogs/BaseDialog.js +0 -78
  57. package/dist/Dialogs/index.cjs +0 -139
  58. package/dist/Dialogs/index.css +0 -8361
  59. package/dist/Dialogs/index.d.cts +0 -2
  60. package/dist/Dialogs/index.d.ts +0 -2
  61. package/dist/Dialogs/index.js +0 -78
  62. package/dist/Editors/RichTextEditor.cjs +0 -29477
  63. package/dist/Editors/RichTextEditor.css +0 -7179
  64. package/dist/Editors/RichTextEditor.d.cts +0 -57
  65. package/dist/Editors/RichTextEditor.d.ts +0 -57
  66. package/dist/Editors/RichTextEditor.js +0 -9
  67. package/dist/Editors/index.cjs +0 -29477
  68. package/dist/Editors/index.css +0 -7179
  69. package/dist/Editors/index.d.cts +0 -2
  70. package/dist/Editors/index.d.ts +0 -2
  71. package/dist/Editors/index.js +0 -8
  72. package/dist/Progress/circularProgress.cjs +0 -60
  73. package/dist/Progress/circularProgress.d.cts +0 -9
  74. package/dist/Progress/circularProgress.d.ts +0 -9
  75. package/dist/Progress/circularProgress.js +0 -7
  76. package/dist/TextFields/AddressLookup.cjs +0 -390
  77. package/dist/TextFields/AddressLookup.d.cts +0 -49
  78. package/dist/TextFields/AddressLookup.d.ts +0 -49
  79. package/dist/TextFields/AddressLookup.js +0 -304
  80. package/dist/TextFields/FloatingInput.cjs +0 -67
  81. package/dist/TextFields/FloatingInput.d.cts +0 -17
  82. package/dist/TextFields/FloatingInput.d.ts +0 -17
  83. package/dist/TextFields/FloatingInput.js +0 -7
  84. package/dist/chunk-2AJACSJ3.js +0 -8
  85. package/dist/chunk-3IBCGGN3.js +0 -48
  86. package/dist/chunk-3Y6QBRGD.js +0 -8
  87. package/dist/chunk-4BTXGP7U.js +0 -19
  88. package/dist/chunk-4Y7SQ5EP.js +0 -8
  89. package/dist/chunk-5GK5B3FD.js +0 -8
  90. package/dist/chunk-5JWTJ5PY.js +0 -8
  91. package/dist/chunk-5XKFPQLH.js +0 -8
  92. package/dist/chunk-66HHM7VI.js +0 -468
  93. package/dist/chunk-6FEUS4CQ.js +0 -41
  94. package/dist/chunk-6KIFTMUN.js +0 -8
  95. package/dist/chunk-6SUKO6QW.js +0 -8
  96. package/dist/chunk-763IHEJ2.js +0 -8
  97. package/dist/chunk-77QDKDFI.js +0 -8
  98. package/dist/chunk-7II4Q2WY.js +0 -8
  99. package/dist/chunk-7KRG7VNW.js +0 -0
  100. package/dist/chunk-AH6RCYDL.js +0 -45
  101. package/dist/chunk-AXSFVJ3H.js +0 -10
  102. package/dist/chunk-B2LVMM55.js +0 -8
  103. package/dist/chunk-BMMDUQDJ.js +0 -8
  104. package/dist/chunk-CTBYVXFP.js +0 -31
  105. package/dist/chunk-CTWVJQJ5.js +0 -8
  106. package/dist/chunk-DK3DA5LH.js +0 -8
  107. package/dist/chunk-DLJHWFNG.js +0 -18
  108. package/dist/chunk-DMP72IAP.js +0 -8
  109. package/dist/chunk-E5RTHYCU.js +0 -0
  110. package/dist/chunk-EZI3QGYJ.js +0 -8
  111. package/dist/chunk-FPRXN3DS.js +0 -18
  112. package/dist/chunk-FZCFFVXW.js +0 -10
  113. package/dist/chunk-G2GZDPUL.js +0 -61
  114. package/dist/chunk-GESVGIAP.js +0 -10
  115. package/dist/chunk-GJGRMMAQ.js +0 -0
  116. package/dist/chunk-GL43GPEM.js +0 -18
  117. package/dist/chunk-H372BAXA.js +0 -42
  118. package/dist/chunk-J6E3UO2W.js +0 -402
  119. package/dist/chunk-JI5XMLWT.js +0 -8
  120. package/dist/chunk-JVN6QVET.js +0 -8
  121. package/dist/chunk-MNPAE2ZF.js +0 -100
  122. package/dist/chunk-N26C33E6.js +0 -8
  123. package/dist/chunk-N4EJKMJK.js +0 -8
  124. package/dist/chunk-OJV6F5JC.js +0 -8
  125. package/dist/chunk-Q4DHI3B5.js +0 -8
  126. package/dist/chunk-Q5XKCUE3.js +0 -8
  127. package/dist/chunk-QDMNCTXT.js +0 -8
  128. package/dist/chunk-QGXXOQJF.js +0 -61
  129. package/dist/chunk-QIEQRNBE.js +0 -10
  130. package/dist/chunk-QJPQC544.js +0 -29
  131. package/dist/chunk-QPGJCRBS.js +0 -0
  132. package/dist/chunk-QTGVW36I.js +0 -8
  133. package/dist/chunk-QZFGQ5JM.js +0 -157
  134. package/dist/chunk-R3GARAVJ.js +0 -10
  135. package/dist/chunk-R4ISYGEP.js +0 -8
  136. package/dist/chunk-RJ43D3XB.js +0 -18
  137. package/dist/chunk-TYTZEAV5.js +0 -99
  138. package/dist/chunk-U7SARO5B.js +0 -10
  139. package/dist/chunk-UPCMMCPQ.js +0 -34
  140. package/dist/chunk-UTBCFDOX.js +0 -8
  141. package/dist/chunk-UTYIBUY2.js +0 -8
  142. package/dist/chunk-WG3Q6GZN.js +0 -29
  143. package/dist/chunk-WHGVO3HV.js +0 -8
  144. package/dist/chunk-WNZLBFLQ.js +0 -73
  145. package/dist/chunk-WXANSSXF.js +0 -8
  146. package/dist/chunk-WZAU77G7.js +0 -55
  147. package/dist/chunk-X357WQOT.js +0 -29
  148. package/dist/chunk-XCE3QE6Q.js +0 -8
  149. package/dist/chunk-XHY3OCAQ.js +0 -8
  150. package/dist/chunk-XPJVVKOU.js +0 -8
  151. package/dist/chunk-YRLN3TBF.js +0 -69
  152. package/dist/chunk-YTVUM76D.js +0 -10
  153. package/dist/chunk-Z7USRFM2.js +0 -8
  154. package/dist/chunk-ZJAV3FEQ.js +0 -48
  155. package/dist/chunk-ZLJDOLXZ.js +0 -8
  156. package/dist/icons/activateUserIcon.cjs +0 -74
  157. package/dist/icons/activateUserIcon.d.cts +0 -8
  158. package/dist/icons/activateUserIcon.d.ts +0 -8
  159. package/dist/icons/activateUserIcon.js +0 -7
  160. package/dist/icons/archivedIcon.cjs +0 -77
  161. package/dist/icons/archivedIcon.d.cts +0 -8
  162. package/dist/icons/archivedIcon.d.ts +0 -8
  163. package/dist/icons/archivedIcon.js +0 -7
  164. package/dist/icons/assignGroupIcon.cjs +0 -129
  165. package/dist/icons/assignGroupIcon.d.cts +0 -8
  166. package/dist/icons/assignGroupIcon.d.ts +0 -8
  167. package/dist/icons/assignGroupIcon.js +0 -7
  168. package/dist/icons/closeIcon.cjs +0 -37
  169. package/dist/icons/closeIcon.d.cts +0 -8
  170. package/dist/icons/closeIcon.d.ts +0 -8
  171. package/dist/icons/closeIcon.js +0 -7
  172. package/dist/icons/copyIcon.cjs +0 -70
  173. package/dist/icons/copyIcon.d.cts +0 -8
  174. package/dist/icons/copyIcon.d.ts +0 -8
  175. package/dist/icons/copyIcon.js +0 -7
  176. package/dist/icons/difficultyAllIcon.cjs +0 -37
  177. package/dist/icons/difficultyAllIcon.d.cts +0 -8
  178. package/dist/icons/difficultyAllIcon.d.ts +0 -8
  179. package/dist/icons/difficultyAllIcon.js +0 -7
  180. package/dist/icons/difficultyEasyIcon.cjs +0 -37
  181. package/dist/icons/difficultyEasyIcon.d.cts +0 -8
  182. package/dist/icons/difficultyEasyIcon.d.ts +0 -8
  183. package/dist/icons/difficultyEasyIcon.js +0 -7
  184. package/dist/icons/difficultyHardIcon.cjs +0 -37
  185. package/dist/icons/difficultyHardIcon.d.cts +0 -8
  186. package/dist/icons/difficultyHardIcon.d.ts +0 -8
  187. package/dist/icons/difficultyHardIcon.js +0 -7
  188. package/dist/icons/difficultyMediumIcon.cjs +0 -37
  189. package/dist/icons/difficultyMediumIcon.d.cts +0 -8
  190. package/dist/icons/difficultyMediumIcon.d.ts +0 -8
  191. package/dist/icons/difficultyMediumIcon.js +0 -7
  192. package/dist/icons/dollarIcon.cjs +0 -47
  193. package/dist/icons/dollarIcon.d.cts +0 -8
  194. package/dist/icons/dollarIcon.d.ts +0 -8
  195. package/dist/icons/dollarIcon.js +0 -7
  196. package/dist/icons/downloadIcon.cjs +0 -39
  197. package/dist/icons/downloadIcon.d.cts +0 -8
  198. package/dist/icons/downloadIcon.d.ts +0 -8
  199. package/dist/icons/downloadIcon.js +0 -7
  200. package/dist/icons/downloadPdfIcon.cjs +0 -37
  201. package/dist/icons/downloadPdfIcon.d.cts +0 -8
  202. package/dist/icons/downloadPdfIcon.d.ts +0 -8
  203. package/dist/icons/downloadPdfIcon.js +0 -7
  204. package/dist/icons/editChatIcon.cjs +0 -37
  205. package/dist/icons/editChatIcon.d.cts +0 -8
  206. package/dist/icons/editChatIcon.d.ts +0 -8
  207. package/dist/icons/editChatIcon.js +0 -7
  208. package/dist/icons/editIcon.cjs +0 -71
  209. package/dist/icons/editIcon.d.cts +0 -8
  210. package/dist/icons/editIcon.d.ts +0 -8
  211. package/dist/icons/editIcon.js +0 -7
  212. package/dist/icons/engagementIcon.cjs +0 -37
  213. package/dist/icons/engagementIcon.d.cts +0 -8
  214. package/dist/icons/engagementIcon.d.ts +0 -8
  215. package/dist/icons/engagementIcon.js +0 -7
  216. package/dist/icons/functionIcon.cjs +0 -37
  217. package/dist/icons/functionIcon.d.cts +0 -8
  218. package/dist/icons/functionIcon.d.ts +0 -8
  219. package/dist/icons/functionIcon.js +0 -7
  220. package/dist/icons/helpOutlinedIcon.cjs +0 -39
  221. package/dist/icons/helpOutlinedIcon.d.cts +0 -8
  222. package/dist/icons/helpOutlinedIcon.d.ts +0 -8
  223. package/dist/icons/helpOutlinedIcon.js +0 -7
  224. package/dist/icons/hierarchyIcon.cjs +0 -84
  225. package/dist/icons/hierarchyIcon.d.cts +0 -8
  226. package/dist/icons/hierarchyIcon.d.ts +0 -8
  227. package/dist/icons/hierarchyIcon.js +0 -7
  228. package/dist/icons/inactiveGroupIcon.cjs +0 -37
  229. package/dist/icons/inactiveGroupIcon.d.cts +0 -8
  230. package/dist/icons/inactiveGroupIcon.d.ts +0 -8
  231. package/dist/icons/inactiveGroupIcon.js +0 -7
  232. package/dist/icons/index.cjs +0 -1056
  233. package/dist/icons/index.d.cts +0 -57
  234. package/dist/icons/index.d.ts +0 -57
  235. package/dist/icons/index.js +0 -228
  236. package/dist/icons/industryIcon.cjs +0 -48
  237. package/dist/icons/industryIcon.d.cts +0 -8
  238. package/dist/icons/industryIcon.d.ts +0 -8
  239. package/dist/icons/industryIcon.js +0 -7
  240. package/dist/icons/invoiceIcon.cjs +0 -37
  241. package/dist/icons/invoiceIcon.d.cts +0 -8
  242. package/dist/icons/invoiceIcon.d.ts +0 -8
  243. package/dist/icons/invoiceIcon.js +0 -7
  244. package/dist/icons/locationPinIcon.cjs +0 -37
  245. package/dist/icons/locationPinIcon.d.cts +0 -8
  246. package/dist/icons/locationPinIcon.d.ts +0 -8
  247. package/dist/icons/locationPinIcon.js +0 -7
  248. package/dist/icons/logsIcon.cjs +0 -37
  249. package/dist/icons/logsIcon.d.cts +0 -8
  250. package/dist/icons/logsIcon.d.ts +0 -8
  251. package/dist/icons/logsIcon.js +0 -7
  252. package/dist/icons/minExperienceIcon.cjs +0 -47
  253. package/dist/icons/minExperienceIcon.d.cts +0 -8
  254. package/dist/icons/minExperienceIcon.d.ts +0 -8
  255. package/dist/icons/minExperienceIcon.js +0 -7
  256. package/dist/icons/nineDotMenuIcon.cjs +0 -39
  257. package/dist/icons/nineDotMenuIcon.d.cts +0 -8
  258. package/dist/icons/nineDotMenuIcon.d.ts +0 -8
  259. package/dist/icons/nineDotMenuIcon.js +0 -7
  260. package/dist/icons/notificationIcon.cjs +0 -39
  261. package/dist/icons/notificationIcon.d.cts +0 -8
  262. package/dist/icons/notificationIcon.d.ts +0 -8
  263. package/dist/icons/notificationIcon.js +0 -7
  264. package/dist/icons/projectIcon.cjs +0 -47
  265. package/dist/icons/projectIcon.d.cts +0 -8
  266. package/dist/icons/projectIcon.d.ts +0 -8
  267. package/dist/icons/projectIcon.js +0 -7
  268. package/dist/icons/qualificationsIcon.cjs +0 -37
  269. package/dist/icons/qualificationsIcon.d.cts +0 -8
  270. package/dist/icons/qualificationsIcon.d.ts +0 -8
  271. package/dist/icons/qualificationsIcon.js +0 -7
  272. package/dist/icons/questionStatusAllIcon.cjs +0 -37
  273. package/dist/icons/questionStatusAllIcon.d.cts +0 -8
  274. package/dist/icons/questionStatusAllIcon.d.ts +0 -8
  275. package/dist/icons/questionStatusAllIcon.js +0 -7
  276. package/dist/icons/questionStatusPrivateIcon.cjs +0 -37
  277. package/dist/icons/questionStatusPrivateIcon.d.cts +0 -8
  278. package/dist/icons/questionStatusPrivateIcon.d.ts +0 -8
  279. package/dist/icons/questionStatusPrivateIcon.js +0 -7
  280. package/dist/icons/questionStatusPublicIcon.cjs +0 -37
  281. package/dist/icons/questionStatusPublicIcon.d.cts +0 -8
  282. package/dist/icons/questionStatusPublicIcon.d.ts +0 -8
  283. package/dist/icons/questionStatusPublicIcon.js +0 -7
  284. package/dist/icons/questionTypeAllIcon.cjs +0 -37
  285. package/dist/icons/questionTypeAllIcon.d.cts +0 -8
  286. package/dist/icons/questionTypeAllIcon.d.ts +0 -8
  287. package/dist/icons/questionTypeAllIcon.js +0 -7
  288. package/dist/icons/questionTypeCodingIcon.cjs +0 -37
  289. package/dist/icons/questionTypeCodingIcon.d.cts +0 -8
  290. package/dist/icons/questionTypeCodingIcon.d.ts +0 -8
  291. package/dist/icons/questionTypeCodingIcon.js +0 -7
  292. package/dist/icons/questionTypeDescriptiveIcon.cjs +0 -37
  293. package/dist/icons/questionTypeDescriptiveIcon.d.cts +0 -8
  294. package/dist/icons/questionTypeDescriptiveIcon.d.ts +0 -8
  295. package/dist/icons/questionTypeDescriptiveIcon.js +0 -7
  296. package/dist/icons/questionTypeMultipleIcon.cjs +0 -37
  297. package/dist/icons/questionTypeMultipleIcon.d.cts +0 -8
  298. package/dist/icons/questionTypeMultipleIcon.d.ts +0 -8
  299. package/dist/icons/questionTypeMultipleIcon.js +0 -7
  300. package/dist/icons/questionTypeSingleIcon.cjs +0 -37
  301. package/dist/icons/questionTypeSingleIcon.d.cts +0 -8
  302. package/dist/icons/questionTypeSingleIcon.d.ts +0 -8
  303. package/dist/icons/questionTypeSingleIcon.js +0 -7
  304. package/dist/icons/refreshIcon.cjs +0 -39
  305. package/dist/icons/refreshIcon.d.cts +0 -8
  306. package/dist/icons/refreshIcon.d.ts +0 -8
  307. package/dist/icons/refreshIcon.js +0 -7
  308. package/dist/icons/resendInviteIcon.cjs +0 -58
  309. package/dist/icons/resendInviteIcon.d.cts +0 -8
  310. package/dist/icons/resendInviteIcon.d.ts +0 -8
  311. package/dist/icons/resendInviteIcon.js +0 -7
  312. package/dist/icons/rolesIcon.cjs +0 -47
  313. package/dist/icons/rolesIcon.d.cts +0 -8
  314. package/dist/icons/rolesIcon.d.ts +0 -8
  315. package/dist/icons/rolesIcon.js +0 -7
  316. package/dist/icons/rufousAiIcon.cjs +0 -37
  317. package/dist/icons/rufousAiIcon.d.cts +0 -8
  318. package/dist/icons/rufousAiIcon.d.ts +0 -8
  319. package/dist/icons/rufousAiIcon.js +0 -7
  320. package/dist/icons/rufousBirdIcon.cjs +0 -37
  321. package/dist/icons/rufousBirdIcon.d.cts +0 -8
  322. package/dist/icons/rufousBirdIcon.d.ts +0 -8
  323. package/dist/icons/rufousBirdIcon.js +0 -7
  324. package/dist/icons/rufousLauncherBird.cjs +0 -186
  325. package/dist/icons/rufousLauncherBird.d.cts +0 -8
  326. package/dist/icons/rufousLauncherBird.d.ts +0 -8
  327. package/dist/icons/rufousLauncherBird.js +0 -7
  328. package/dist/icons/sidebarIcon.cjs +0 -37
  329. package/dist/icons/sidebarIcon.d.cts +0 -8
  330. package/dist/icons/sidebarIcon.d.ts +0 -8
  331. package/dist/icons/sidebarIcon.js +0 -7
  332. package/dist/icons/softSkillsIcon.cjs +0 -37
  333. package/dist/icons/softSkillsIcon.d.cts +0 -8
  334. package/dist/icons/softSkillsIcon.d.ts +0 -8
  335. package/dist/icons/softSkillsIcon.js +0 -7
  336. package/dist/icons/subscribeIcon.cjs +0 -37
  337. package/dist/icons/subscribeIcon.d.cts +0 -8
  338. package/dist/icons/subscribeIcon.d.ts +0 -8
  339. package/dist/icons/subscribeIcon.js +0 -7
  340. package/dist/icons/suspendUserIcon.cjs +0 -37
  341. package/dist/icons/suspendUserIcon.d.cts +0 -8
  342. package/dist/icons/suspendUserIcon.d.ts +0 -8
  343. package/dist/icons/suspendUserIcon.js +0 -7
  344. package/dist/icons/technicalSkillsIcon.cjs +0 -37
  345. package/dist/icons/technicalSkillsIcon.d.cts +0 -8
  346. package/dist/icons/technicalSkillsIcon.d.ts +0 -8
  347. package/dist/icons/technicalSkillsIcon.js +0 -7
  348. package/dist/icons/tickIcon.cjs +0 -37
  349. package/dist/icons/tickIcon.d.cts +0 -8
  350. package/dist/icons/tickIcon.d.ts +0 -8
  351. package/dist/icons/tickIcon.js +0 -7
  352. package/dist/icons/timerIcon.cjs +0 -37
  353. package/dist/icons/timerIcon.d.cts +0 -8
  354. package/dist/icons/timerIcon.d.ts +0 -8
  355. package/dist/icons/timerIcon.js +0 -7
  356. package/dist/icons/trashIcon.cjs +0 -37
  357. package/dist/icons/trashIcon.d.cts +0 -8
  358. package/dist/icons/trashIcon.d.ts +0 -8
  359. package/dist/icons/trashIcon.js +0 -7
  360. package/dist/icons/unArchivedIcon.cjs +0 -77
  361. package/dist/icons/unArchivedIcon.d.cts +0 -8
  362. package/dist/icons/unArchivedIcon.d.ts +0 -8
  363. package/dist/icons/unArchivedIcon.js +0 -7
  364. package/dist/icons/unsubscribeIcon.cjs +0 -37
  365. package/dist/icons/unsubscribeIcon.d.cts +0 -8
  366. package/dist/icons/unsubscribeIcon.d.ts +0 -8
  367. package/dist/icons/unsubscribeIcon.js +0 -7
  368. package/dist/icons/uploadIcon.cjs +0 -37
  369. package/dist/icons/uploadIcon.d.cts +0 -8
  370. package/dist/icons/uploadIcon.d.ts +0 -8
  371. package/dist/icons/uploadIcon.js +0 -7
  372. package/dist/icons/userAssignIcon.cjs +0 -90
  373. package/dist/icons/userAssignIcon.d.cts +0 -8
  374. package/dist/icons/userAssignIcon.d.ts +0 -8
  375. package/dist/icons/userAssignIcon.js +0 -7
  376. package/dist/icons/viewIcon.cjs +0 -37
  377. package/dist/icons/viewIcon.d.cts +0 -8
  378. package/dist/icons/viewIcon.d.ts +0 -8
  379. package/dist/icons/viewIcon.js +0 -7
  380. package/dist/icons/workItemIcon.cjs +0 -58
  381. package/dist/icons/workItemIcon.d.cts +0 -8
  382. package/dist/icons/workItemIcon.d.ts +0 -8
  383. package/dist/icons/workItemIcon.js +0 -7
  384. package/dist/style.css +0 -1181
  385. package/dist/style.d.cts +0 -2
  386. package/dist/style.d.ts +0 -2
  387. package/dist/styles/button.css +0 -109
  388. package/dist/styles/button.d.cts +0 -2
  389. package/dist/styles/button.d.ts +0 -2
  390. package/dist/styles/checkbox.css +0 -60
  391. package/dist/styles/checkbox.d.cts +0 -2
  392. package/dist/styles/checkbox.d.ts +0 -2
  393. package/dist/styles/datagrid.css +0 -531
  394. package/dist/styles/datagrid.d.cts +0 -2
  395. package/dist/styles/datagrid.d.ts +0 -2
  396. package/dist/styles/dialog.css +0 -118
  397. package/dist/styles/dialog.d.cts +0 -2
  398. package/dist/styles/dialog.d.ts +0 -2
  399. package/dist/styles/editor.css +0 -211
  400. package/dist/styles/editor.d.cts +0 -2
  401. package/dist/styles/editor.d.ts +0 -2
  402. package/dist/styles/progress.css +0 -36
  403. package/dist/styles/progress.d.cts +0 -2
  404. package/dist/styles/progress.d.ts +0 -2
  405. package/dist/utils/constants.cjs +0 -84
  406. package/dist/utils/constants.d.cts +0 -58
  407. package/dist/utils/constants.d.ts +0 -58
  408. package/dist/utils/constants.js +0 -7
package/README.md CHANGED
@@ -1,10 +1,12 @@
1
- # @rufous/ui
1
+ # Rufous UI
2
2
 
3
- A lightweight React UI component library with theming, buttons, inputs, dialogs, progress and a rich icon set.
3
+ A polished React component library built with design tokens, TypeScript, and zero runtime dependencies beyond React. Every component supports the `sx` prop for scoped style overrides.
4
+
5
+ **Live Showcase โ†’ [ui.dev.rufous.com](https://ui.dev.rufous.com/)**
4
6
 
5
7
  ---
6
8
 
7
- ## ๐Ÿ“ฆ Installation
9
+ ## Installation
8
10
 
9
11
  ```bash
10
12
  npm install @rufous/ui
@@ -14,21 +16,19 @@ yarn add @rufous/ui
14
16
 
15
17
  ---
16
18
 
17
- ## ๐Ÿ”ง Setup
19
+ ## Setup
18
20
 
19
- Import the global styles once in your app entry (e.g. `src/main.tsx`, `pages/_app.tsx`).
21
+ Import the global styles once in your app entry:
20
22
 
21
- ```javascript
22
- import "@rufous/ui/style.css";
23
+ ```tsx
24
+ import "@rufous/ui/main.css";
23
25
  ```
24
26
 
25
- Optional but recommended: wrap your app with the theme provider to enable theme utilities.
27
+ Wrap your app with the theme provider:
26
28
 
27
29
  ```tsx
28
- import React from "react";
29
- import ReactDOM from "react-dom/client";
30
30
  import { RufousThemeProvider } from "@rufous/ui";
31
- import "@rufous/ui/style.css";
31
+ import "@rufous/ui/main.css";
32
32
 
33
33
  ReactDOM.createRoot(document.getElementById("root")!).render(
34
34
  <RufousThemeProvider>
@@ -39,265 +39,531 @@ ReactDOM.createRoot(document.getElementById("root")!).render(
39
39
 
40
40
  ---
41
41
 
42
- ## ๐ŸŽจ Theming
42
+ ## Components
43
43
 
44
- `RufousThemeProvider` exposes `useRufousTheme` and `APP_THEMES`.
44
+ ### Buttons
45
45
 
46
46
  ```tsx
47
- import { useRufousTheme, APP_THEMES, Button } from "@rufous/ui";
47
+ import { StandardButton, AddButton, SubmitButton, CancelButton } from "@rufous/ui";
48
48
 
49
- export function ThemeToggle() {
50
- const { previewTheme } = useRufousTheme();
51
- return (
52
- <div style={{ display: "flex", gap: 12 }}>
53
- <Button
54
- onClick={() => previewTheme(APP_THEMES.default.name.toLowerCase())}
55
- >
56
- Light
57
- </Button>
58
- <Button
59
- onClick={() => previewTheme(APP_THEMES.rufous.name.toLowerCase())}
60
- >
61
- Dark
62
- </Button>
63
- </div>
64
- );
65
- }
49
+ <StandardButton onClick={fn}>Standard</StandardButton>
50
+ <AddButton onClick={fn}>Add Item</AddButton>
51
+ <SubmitButton onClick={asyncFn}>Save</SubmitButton>
52
+ <CancelButton onClick={fn}>Cancel</CancelButton>
66
53
  ```
67
54
 
55
+ | Prop | Type | Default | Description |
56
+ |------|------|---------|-------------|
57
+ | `onClick` | `() => void \| Promise<void>` | โ€” | Supports async; shows loader until resolved |
58
+ | `isLoading` | `boolean` | `false` | External loading state control |
59
+ | `disabled` | `boolean` | `false` | Disables the button |
60
+ | `sx` | `SxProp` | โ€” | Scoped style overrides |
61
+
68
62
  ---
69
63
 
70
- ## ๐Ÿงฉ Components
64
+ ### TextField
65
+
66
+ ```tsx
67
+ import { TextField } from "@rufous/ui";
68
+
69
+ <TextField
70
+ label="Email"
71
+ value={email}
72
+ onChange={(e) => setEmail(e.target.value)}
73
+ variant="outlined"
74
+ required
75
+ />
76
+ ```
77
+
78
+ | Prop | Type | Default |
79
+ |------|------|---------|
80
+ | `label` | `string` | โ€” |
81
+ | `variant` | `'outlined' \| 'filled' \| 'standard'` | `'outlined'` |
82
+ | `size` | `'small' \| 'medium'` | `'medium'` |
83
+ | `color` | `'primary' \| 'secondary' \| 'error' \| 'success' \| 'warning' \| 'info'` | `'primary'` |
84
+ | `error` | `boolean` | `false` |
85
+ | `helperText` | `ReactNode` | โ€” |
86
+ | `fullWidth` | `boolean` | `false` |
87
+ | `InputProps` | `{ startAdornment?, endAdornment? }` | โ€” |
88
+ | `sx` | `SxProp` | โ€” |
89
+
90
+ ---
71
91
 
72
- Below are the primary components exported by the library with usage patterns and key props.
92
+ ### Select
73
93
 
74
- ### Buttons
94
+ ```tsx
95
+ import { Select } from "@rufous/ui";
96
+
97
+ <Select
98
+ options={[{ value: "us", label: "United States" }]}
99
+ value={country}
100
+ onChange={setCountry}
101
+ label="Country"
102
+ />
103
+
104
+ // Multiple selection
105
+ <Select options={options} value={selected} onChange={setSelected} multiple label="Tags" />
106
+ ```
107
+
108
+ ---
109
+
110
+ ### DateField / DateRangeField
111
+
112
+ ```tsx
113
+ import { DateField, DateRangeField } from "@rufous/ui";
114
+
115
+ <DateField label="Start Date" value={date} onChange={setDate} />
116
+
117
+ <DateRangeField
118
+ label="Date Range"
119
+ value={range}
120
+ onChange={setRange}
121
+ />
122
+ ```
123
+
124
+ ---
125
+
126
+ ### Autocomplete
127
+
128
+ ```tsx
129
+ import { Autocomplete } from "@rufous/ui";
130
+
131
+ <Autocomplete
132
+ options={["React", "Vue", "Angular"]}
133
+ value={val}
134
+ onChange={setVal}
135
+ label="Framework"
136
+ />
137
+ ```
138
+
139
+ ---
75
140
 
76
- All buttons accept native button props via `...rest`.
77
-
78
- - **StandardButton**: Base neutral button
79
- - **AddButton**: Prefixed with `+`
80
- - **SubmitButton**: Submit/async actions with built-in loading and double-click handling
81
- - **CancelButton**: Secondary/cancel action
82
-
83
- ```tsx
84
- import {
85
- StandardButton,
86
- AddButton,
87
- SubmitButton,
88
- CancelButton,
89
- } from "@rufous/ui";
90
-
91
- export function ButtonsDemo() {
92
- return (
93
- <div style={{ display: "flex", gap: 12 }}>
94
- <StandardButton onClick={() => alert("Standard")}>
95
- Standard
96
- </StandardButton>
97
- <AddButton onClick={() => alert("Added")}>Add Item</AddButton>
98
- <SubmitButton
99
- onClick={async () => await new Promise((r) => setTimeout(r, 800))}
100
- >
101
- Save
102
- </SubmitButton>
103
- <CancelButton onClick={() => alert("Cancelled")}>Cancel</CancelButton>
104
- </div>
105
- );
106
- }
107
- ```
108
-
109
- - **SubmitButton props**
110
- - `type`: "button" | "submit" | "reset" (auto-managed when `onClick` provided)
111
- - `onClick(e)`: supports async; shows loader until resolved
112
- - `onDoubleClick(e)`: optional alternate handler; debounced vs single click
113
- - `isLoading`: boolean external control of loader
114
- - `bgGradiant`: boolean gradient background
115
-
116
- ### Text Inputs
117
-
118
- - **FloatingInput**: Floating label text input
119
-
120
- ```tsx
121
- import { FloatingInput } from "@rufous/ui";
122
-
123
- export function NameField() {
124
- const [name, setName] = React.useState("");
125
- return (
126
- <FloatingInput
127
- label="Your Name"
128
- name="name"
129
- value={name}
130
- onChange={(e) => setName(e.target.value)}
131
- required
132
- />
133
- );
134
- }
135
- ```
136
-
137
- - **FloatingInput props**
138
- - `label`: string (required)
139
- - `name`: string (required)
140
- - `id`: string (defaults to `name`)
141
- - `type`: string = "text"
142
- - `value`: string
143
- - `onChange(e)`: (required for controlled usage)
144
- - `required`: boolean = false
145
- - `placeholder`: string
146
- - `className`: string
147
- - `...divProps` applied to the wrapper
148
-
149
- ### Checkboxes
150
-
151
- - **Checkbox**: Controlled checkbox with label
141
+ ### Checkbox
152
142
 
153
143
  ```tsx
154
144
  import { Checkbox } from "@rufous/ui";
155
145
 
156
- export function Terms() {
157
- const [checked, setChecked] = React.useState(false);
158
- return (
159
- <Checkbox
160
- id="terms"
161
- label="I agree to the terms"
162
- checked={checked}
163
- onChange={setChecked}
164
- />
165
- );
166
- }
167
- ```
168
-
169
- - **Checkbox props**
170
- - `id`: string
171
- - `label`: string
172
- - `checked`: boolean
173
- - `onChange(nextChecked: boolean)`: required
174
- - `disabled`: boolean = false
175
- - `className`: string
176
- - `style`: React.CSSProperties
177
-
178
- ### Dialogs
179
-
180
- - **BaseDialog**: Unopinionated modal container with header, close button, footer actions
181
-
182
- ```tsx
183
- import { BaseDialog, SubmitButton } from "@rufous/ui";
184
-
185
- export function ConfirmDialog({ open, onClose, onConfirm }) {
186
- return (
187
- <BaseDialog
188
- open={open}
189
- title="Confirm delete"
190
- onClose={onClose}
191
- onCancel={onClose}
192
- onConfirm={onConfirm}
193
- buttonAlign="flex-end"
194
- showCancelButton
195
- fullWidth
196
- >
197
- <p>Are you sure you want to delete this item?</p>
198
- </BaseDialog>
199
- );
200
- }
201
- ```
202
-
203
- - **BaseDialog props (key)**
204
- - `open`: boolean (required to show)
205
- - `title`: string
206
- - `onClose()`: close handler
207
- - `onCancel()`: cancel handler
208
- - `onConfirm()`: sync/async confirm; built-in loading toggle
209
- - `cancelText`, `confirmText`, `submitText`: strings
210
- - `isLoading`, `loading`, `disableConfirmBtn`: booleans
211
- - `minWidth`, `minHeight`, `fullWidth`, `fullScreen`: sizing controls
212
- - `buttonAlign`: "flex-start" | "center" | "flex-end"
213
- - `showCloseButton`, `showCancelButton`, `formatTitle`
214
- - `className`, `dialogBodyStyle`
146
+ <Checkbox
147
+ label="I agree to the terms"
148
+ checked={checked}
149
+ onChange={setChecked}
150
+ />
151
+ ```
152
+
153
+ ---
154
+
155
+ ### Dialog
156
+
157
+ ```tsx
158
+ import { BaseDialog } from "@rufous/ui";
159
+
160
+ <BaseDialog
161
+ open={open}
162
+ title="Confirm Delete"
163
+ onClose={onClose}
164
+ onConfirm={onConfirm}
165
+ showCancelButton
166
+ fullWidth
167
+ >
168
+ <p>Are you sure you want to delete this item?</p>
169
+ </BaseDialog>
170
+ ```
171
+
172
+ | Prop | Type | Description |
173
+ |------|------|-------------|
174
+ | `open` | `boolean` | Controls visibility |
175
+ | `title` | `string` | Dialog title |
176
+ | `onClose` | `() => void` | Close handler |
177
+ | `onConfirm` | `() => void \| Promise<void>` | Async confirm; shows loader |
178
+ | `showCancelButton` | `boolean` | Show cancel button |
179
+ | `fullWidth` | `boolean` | Full container width |
180
+ | `sx` | `SxProp` | Scoped style overrides |
181
+
182
+ ---
183
+
184
+ ### Slider
185
+
186
+ ```tsx
187
+ import { Slider } from "@rufous/ui";
188
+
189
+ <Slider label="Volume" value={vol} onChange={setVol} valueLabelDisplay="auto" />
190
+
191
+ // Range
192
+ <Slider label="Price" value={[20, 80]} onChange={setRange} range min={0} max={200} />
193
+ ```
194
+
195
+ ---
196
+
197
+ ### Switch
198
+
199
+ ```tsx
200
+ import { Switch } from "@rufous/ui";
201
+
202
+ <Switch checked={on} onChange={setOn} label="Enable notifications" />
203
+ ```
204
+
205
+ ---
206
+
207
+ ### RadioGroup
208
+
209
+ ```tsx
210
+ import { RadioGroup, Radio } from "@rufous/ui";
211
+
212
+ <RadioGroup label="Payment" options={options} value={val} onChange={setVal} />
213
+
214
+ // Composed
215
+ <RadioGroup value={val} onChange={setVal}>
216
+ <Radio value="card" label="Credit Card" />
217
+ <Radio value="paypal" label="PayPal" />
218
+ </RadioGroup>
219
+ ```
220
+
221
+ ---
222
+
223
+ ### Rating
224
+
225
+ ```tsx
226
+ import { Rating } from "@rufous/ui";
227
+
228
+ <Rating value={stars} onChange={setStars} />
229
+ <Rating value={4.5} precision={0.5} readOnly />
230
+ ```
231
+
232
+ ---
233
+
234
+ ### ToggleButton
235
+
236
+ ```tsx
237
+ import { ToggleButtonGroup, ToggleButton } from "@rufous/ui";
238
+
239
+ // Exclusive (radio)
240
+ <ToggleButtonGroup value={alignment} onChange={setAlignment} exclusive>
241
+ <ToggleButton value="left">Left</ToggleButton>
242
+ <ToggleButton value="center">Center</ToggleButton>
243
+ <ToggleButton value="right">Right</ToggleButton>
244
+ </ToggleButtonGroup>
245
+
246
+ // Multi-select
247
+ <ToggleButtonGroup value={formats} onChange={setFormats}>
248
+ <ToggleButton value="bold"><strong>B</strong></ToggleButton>
249
+ <ToggleButton value="italic"><em>I</em></ToggleButton>
250
+ </ToggleButtonGroup>
251
+ ```
252
+
253
+ ---
254
+
255
+ ### Avatar
256
+
257
+ ```tsx
258
+ import { Avatar, AvatarGroup } from "@rufous/ui";
259
+
260
+ <Avatar src="/photo.jpg" alt="Alice Johnson" size="medium" />
261
+ <Avatar alt="Alice Johnson" color="#a41b06" /> // initials fallback
262
+
263
+ <AvatarGroup max={4}>
264
+ <Avatar alt="Alice" />
265
+ <Avatar alt="Bob" color="#1565c0" />
266
+ </AvatarGroup>
267
+ ```
268
+
269
+ ---
270
+
271
+ ### Chip
272
+
273
+ ```tsx
274
+ import { Chip } from "@rufous/ui";
275
+
276
+ <Chip label="React" color="primary" />
277
+ <Chip label="Remove me" color="error" onDelete={() => {}} />
278
+ <Chip label="Click me" color="default" variant="outlined" onClick={fn} />
279
+ ```
280
+
281
+ ---
282
+
283
+ ### Divider
284
+
285
+ ```tsx
286
+ import { Divider } from "@rufous/ui";
287
+
288
+ <Divider />
289
+ <Divider variant="middle" />
290
+ <Divider textAlign="center">OR</Divider>
291
+ <Divider orientation="vertical" flexItem />
292
+ ```
293
+
294
+ ---
295
+
296
+ ### List
297
+
298
+ ```tsx
299
+ import { List, ListItem, ListItemText, ListItemButton, ListItemIcon, ListSubheader } from "@rufous/ui";
300
+
301
+ <List subheader={<ListSubheader>Inbox</ListSubheader>}>
302
+ <ListItemButton selected onClick={fn}>
303
+ <ListItemIcon>๐Ÿ“ฉ</ListItemIcon>
304
+ <ListItemText primary="Messages" secondary="3 unread" />
305
+ </ListItemButton>
306
+ </List>
307
+ ```
308
+
309
+ ---
310
+
311
+ ### Typography
312
+
313
+ ```tsx
314
+ import { Typography } from "@rufous/ui";
315
+
316
+ <Typography variant="h1">Heading</Typography>
317
+ <Typography variant="body1" color="textSecondary">Paragraph text</Typography>
318
+ <Typography variant="caption" gutterBottom>Caption</Typography>
319
+ ```
320
+
321
+ ---
322
+
323
+ ### Skeleton
324
+
325
+ ```tsx
326
+ import { Skeleton } from "@rufous/ui";
327
+
328
+ <Skeleton variant="text" width={200} />
329
+ <Skeleton variant="circular" width={40} height={40} />
330
+ <Skeleton variant="rounded" width={300} height={120} animation="wave" />
331
+ ```
332
+
333
+ ---
334
+
335
+ ### Tooltip
336
+
337
+ ```tsx
338
+ import { Tooltip } from "@rufous/ui";
339
+
340
+ <Tooltip title="Delete this item" placement="top" arrow>
341
+ <button>Delete</button>
342
+ </Tooltip>
343
+ ```
344
+
345
+ ---
215
346
 
216
347
  ### Progress
217
348
 
218
- - **CircularProgress**: Stroke-based loader
349
+ ```tsx
350
+ import { CircularProgress, RufousLogoLoader } from "@rufous/ui";
351
+
352
+ <CircularProgress size={36} />
353
+ <RufousLogoLoader />
354
+ ```
355
+
356
+ ---
357
+
358
+ ### Box / Stack / Grid
359
+
360
+ ```tsx
361
+ import { Box, Stack, Grid } from "@rufous/ui";
362
+
363
+ // Box โ€” generic flex/layout container
364
+ <Box display="flex" gap={16} padding={24}>...</Box>
365
+
366
+ // Stack โ€” 1D flex layout
367
+ <Stack direction="row" spacing={2}>
368
+ <div>A</div>
369
+ <div>B</div>
370
+ </Stack>
371
+
372
+ // Grid โ€” 12-column responsive grid
373
+ <Grid container spacing={3}>
374
+ <Grid item xs={12} md={6}>Main</Grid>
375
+ <Grid item xs={12} md={6}>Sidebar</Grid>
376
+ </Grid>
377
+ ```
378
+
379
+ ---
380
+
381
+ ### Paper / Card / Accordion
219
382
 
220
383
  ```tsx
221
- import { CircularProgess } from "@rufous/ui"; // exported via SubmitButton internally as well
384
+ import { Paper, Card, CardContent, CardHeader, CardActions, Accordion, AccordionSummary, AccordionDetails } from "@rufous/ui";
385
+
386
+ <Paper elevation={3}>Content</Paper>
387
+
388
+ <Card>
389
+ <CardHeader title="Title" subheader="Subtitle" />
390
+ <CardContent>Body</CardContent>
391
+ <CardActions><button>Action</button></CardActions>
392
+ </Card>
222
393
 
223
- export function LoadingExample() {
224
- return <CircularProgess size={36} color="#a81c08" />;
225
- }
394
+ <Accordion>
395
+ <AccordionSummary>FAQ Question</AccordionSummary>
396
+ <AccordionDetails>Answer text here.</AccordionDetails>
397
+ </Accordion>
226
398
  ```
227
399
 
228
- - **CircularProgess props**
229
- - `size`: number = 50
230
- - `color`: string = "#a81c08"
231
- - `...divProps`
400
+ ---
232
401
 
233
- ### Icons
402
+ ### Tabs
234
403
 
235
- All icons are React components that accept standard `svg`/`div`-style props depending on implementation; at minimum `className`, event handlers, and often `color` when applicable.
404
+ ```tsx
405
+ import { Tabs, Tab } from "@rufous/ui";
236
406
 
237
- Usage pattern:
407
+ <Tabs value={tab} onChange={setTab}>
408
+ <Tab value="home" label="Home" />
409
+ <Tab value="settings" label="Settings" />
410
+ </Tabs>
411
+ ```
412
+
413
+ ---
414
+
415
+ ### Breadcrumbs
238
416
 
239
417
  ```tsx
240
- import { CopyIcon, EditIcon, DownloadIcon } from "@rufous/ui";
418
+ import { Breadcrumbs } from "@rufous/ui";
419
+
420
+ <Breadcrumbs separator="โ€บ">
421
+ <a href="/">Home</a>
422
+ <a href="/products">Products</a>
423
+ <span>Current</span>
424
+ </Breadcrumbs>
425
+ ```
241
426
 
242
- export function IconRow() {
243
- return (
244
- <div style={{ display: "flex", gap: 10 }}>
245
- <CopyIcon onClick={() => alert("Copied!")} />
246
- <EditIcon />
247
- <DownloadIcon />
248
- </div>
249
- );
250
- }
427
+ ---
428
+
429
+ ### Stepper
430
+
431
+ ```tsx
432
+ import { Stepper, Step, StepLabel, StepContent } from "@rufous/ui";
433
+
434
+ <Stepper activeStep={activeStep}>
435
+ {steps.map((label) => (
436
+ <Step key={label}>
437
+ <StepLabel>{label}</StepLabel>
438
+ </Step>
439
+ ))}
440
+ </Stepper>
251
441
  ```
252
442
 
253
- Available icons include (non-exhaustive): `ActivateUserIcon`, `ArchivedIcon`, `AssignGroupIcon`, `CloseIcon`, `CopyIcon`, `DifficultyAllIcon`, `DifficultyEasyIcon`, `DifficultyMediumIcon`, `DifficultyHardIcon`, `DollarIcon`, `DownloadIcon`, `DownloadPdfIcon`, `EditChatIcon`, `EditIcon`, `EngagementIcon`, `FunctionIcon`, `HelpOutlinedIcon`, `HierarchyIcon`, `InactiveGroupIcon`, `IndustryIcon`, `InvoiceIcon`, `LocationPinIcon`, `LogsIcon`, `MinExperienceIcon`, `NineDotMenuIcon`, `NotificationIcon`, `ProjectIcon`, `QuestionStatusAllIcon`, `QuestionStatusPrivateIcon`, `QuestionStatusPublicIcon`, `QuestionTypeAllIcon`, `QuestionTypeCodingIcon`, `QuestionTypeDescriptiveIcon`, `QuestionTypeMultipleIcon`, `QuestionTypeSingleIcon`, `RefreshIcon`, `ResendInviteIcon`, `RolesIcon`, `RufousAiIcon`, `RufousBirdIcon`, `RufousLauncherIcon`, `SidebarIcon`, `SubscribeIcon`, `SuspendUserIcon`, `TickIcon`, `TimerIcon`, `TrashIcon`, `UnArchivedIcon`, `UnsubscribeIcon`, `UploadIcon`, `UserAssignIcon`, `ViewIcon`, `WorkItemIcon`, `SoftSkillsIcon`, `TechnicalSkillsIcon`, `QualificationsIcon`.
443
+ ---
444
+
445
+ ### Menu
446
+
447
+ ```tsx
448
+ import { Menu, MenuItem, MenuList, MenuDivider } from "@rufous/ui";
449
+
450
+ <Menu open={open} anchorEl={anchorRef.current} onClose={() => setOpen(false)}>
451
+ <MenuList>
452
+ <MenuItem icon="๐Ÿ‘ค">Profile</MenuItem>
453
+ <MenuItem icon="โš™๏ธ">Settings</MenuItem>
454
+ <MenuDivider />
455
+ <MenuItem icon="๐Ÿšช">Sign Out</MenuItem>
456
+ </MenuList>
457
+ </Menu>
458
+ ```
254
459
 
255
460
  ---
256
461
 
257
- ## ๐Ÿงพ Exports
462
+ ### Drawer
258
463
 
259
- The package main re-exports everything you need from a single entry point:
464
+ ```tsx
465
+ import { Drawer } from "@rufous/ui";
260
466
 
261
- ```ts
262
- // main entry exports
263
- export { APP_THEMES } from "./utils/constants";
264
- export * from "./icons"; // all icons
265
- export * from "./Buttons"; // AddButton, SubmitButton, CancelButton, StandardButton
266
- export * from "./Dialogs"; // BaseDialog
267
- export {
268
- RufousThemeProvider,
269
- useRufousTheme,
270
- } from "./Contexts/rufousThemeProvider";
467
+ <Drawer open={open} onClose={() => setOpen(false)} anchor="right" width={320}>
468
+ <div style={{ padding: 24 }}>Drawer content</div>
469
+ </Drawer>
271
470
  ```
272
471
 
273
- Import from `@rufous/ui` directly:
472
+ ---
473
+
474
+ ### Snackbar
274
475
 
275
476
  ```tsx
276
- import {
277
- SubmitButton,
278
- BaseDialog,
279
- RufousThemeProvider,
280
- useRufousTheme,
281
- APP_THEMES,
282
- } from "@rufous/ui";
477
+ import { Snackbar } from "@rufous/ui";
478
+
479
+ <Snackbar
480
+ open={open}
481
+ onClose={() => setOpen(false)}
482
+ message="Changes saved successfully"
483
+ severity="success"
484
+ autoHideDuration={4000}
485
+ anchorOrigin={{ vertical: "bottom", horizontal: "left" }}
486
+ />
283
487
  ```
284
488
 
285
489
  ---
286
490
 
287
- ## ๐Ÿง  Notes
491
+ ### Link
288
492
 
289
- - Always import `@rufous/ui/style.css` once to get base styles.
290
- - `SubmitButton` manages `type` automatically when `onClick` is provided.
291
- - Dialog confirm button disables while running async `onConfirm` to prevent repeats.
493
+ ```tsx
494
+ import { Link } from "@rufous/ui";
495
+
496
+ <Link href="/docs" color="primary">Documentation</Link>
497
+ <Link component="button" color="primary" onClick={fn}>Trigger action</Link>
498
+ ```
292
499
 
293
500
  ---
294
501
 
295
- ## ๐Ÿ› Issues / Feedback
502
+ ### Popper / Popover
503
+
504
+ ```tsx
505
+ import { Popper, Popover } from "@rufous/ui";
506
+
507
+ // Popper โ€” no backdrop, low-level
508
+ <Popper open={open} anchorEl={anchorRef.current} placement="bottom-start">
509
+ <div>Custom dropdown content</div>
510
+ </Popper>
296
511
 
297
- Please open an issue or PR in your repository to report bugs, request components, or propose improvements.
512
+ // Popover โ€” backdrop, closes on outside click
513
+ <Popover open={open} anchorEl={anchorRef.current} onClose={() => setOpen(false)}>
514
+ <div style={{ padding: 20 }}>Popover content</div>
515
+ </Popover>
516
+ ```
517
+
518
+ ---
519
+
520
+ ### Transitions
521
+
522
+ ```tsx
523
+ import { Fade, Slide, Grow, Collapse, Zoom } from "@rufous/ui";
524
+
525
+ <Fade in={show}><div>Fades in/out</div></Fade>
526
+ <Slide in={show} direction="up"><div>Slides in from bottom</div></Slide>
527
+ <Grow in={show}><div>Grows from center</div></Grow>
528
+ <Collapse in={show}><div>Collapses vertically</div></Collapse>
529
+ <Zoom in={show}><div>Zooms in/out</div></Zoom>
530
+ ```
531
+
532
+ ---
533
+
534
+ ### Icons
535
+
536
+ ```tsx
537
+ import { CopyIcon, EditIcon, TrashIcon, DownloadIcon } from "@rufous/ui";
538
+
539
+ <CopyIcon onClick={() => copy(text)} />
540
+ <EditIcon />
541
+ <TrashIcon />
542
+ <DownloadIcon />
543
+ ```
544
+
545
+ ---
546
+
547
+ ## The `sx` Prop
548
+
549
+ Every component accepts an `sx` prop for scoped, per-instance style overrides using nested CSS selectors. Values are injected as a scoped `<style>` tag โ€” no inline style conflicts.
550
+
551
+ ```tsx
552
+ import { TextField } from "@rufous/ui";
553
+ import type { SxProp } from "@rufous/ui";
554
+
555
+ <TextField
556
+ label="Search"
557
+ sx={{
558
+ borderRadius: "12px",
559
+ "& .rf-text-field__input": { fontSize: "0.9rem" },
560
+ "&:hover": { boxShadow: "0 0 0 3px rgba(164,27,6,0.15)" },
561
+ }}
562
+ />
563
+ ```
298
564
 
299
565
  ---
300
566
 
301
- ## ๐Ÿ“„ License
567
+ ## License
302
568
 
303
569
  MIT ยฉ Rufous UI