@tecsinapse/react-web-kit 1.3.2 → 1.6.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 (337) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/dist/components/atoms/Accordion/Accordion.d.ts +9 -0
  3. package/dist/components/atoms/Accordion/Accordion.js +85 -0
  4. package/dist/components/atoms/Accordion/Accordion.js.map +1 -0
  5. package/dist/components/atoms/Accordion/animations.d.ts +41 -0
  6. package/dist/components/atoms/Accordion/animations.js +65 -0
  7. package/dist/components/atoms/Accordion/animations.js.map +1 -0
  8. package/dist/components/atoms/Accordion/index.d.ts +1 -0
  9. package/dist/components/atoms/Accordion/index.js +24 -0
  10. package/dist/components/atoms/Accordion/index.js.map +1 -0
  11. package/dist/components/atoms/Accordion/styled.d.ts +8 -0
  12. package/dist/components/atoms/Accordion/styled.js +53 -0
  13. package/dist/components/atoms/Accordion/styled.js.map +1 -0
  14. package/dist/components/atoms/Badge/index.js +2 -2
  15. package/dist/components/atoms/Button/index.js +2 -2
  16. package/dist/components/atoms/Button/styled.js +14 -5
  17. package/dist/components/atoms/Button/styled.js.map +1 -1
  18. package/dist/components/atoms/Input/index.js +2 -2
  19. package/dist/components/atoms/Modal/Modal.d.ts +8 -0
  20. package/dist/components/atoms/Modal/Modal.js +43 -0
  21. package/dist/components/atoms/Modal/Modal.js.map +1 -0
  22. package/dist/components/atoms/Modal/animations.d.ts +23 -0
  23. package/dist/components/atoms/Modal/animations.js +32 -0
  24. package/dist/components/atoms/Modal/animations.js.map +1 -0
  25. package/dist/components/atoms/Modal/index.d.ts +1 -0
  26. package/dist/components/atoms/Modal/index.js +24 -0
  27. package/dist/components/atoms/Modal/index.js.map +1 -0
  28. package/dist/components/atoms/Modal/styled.d.ts +2 -0
  29. package/dist/components/atoms/Modal/styled.js +39 -0
  30. package/dist/components/atoms/Modal/styled.js.map +1 -0
  31. package/dist/components/atoms/Overlay/Overlay.d.ts +10 -0
  32. package/dist/components/atoms/Overlay/Overlay.js +40 -0
  33. package/dist/components/atoms/Overlay/Overlay.js.map +1 -0
  34. package/dist/components/atoms/Overlay/animations.d.ts +18 -0
  35. package/dist/components/atoms/Overlay/animations.js +27 -0
  36. package/dist/components/atoms/Overlay/animations.js.map +1 -0
  37. package/dist/components/atoms/Overlay/index.d.ts +1 -0
  38. package/dist/components/atoms/Overlay/index.js +16 -0
  39. package/dist/components/atoms/Overlay/index.js.map +1 -0
  40. package/dist/components/atoms/Overlay/styled.d.ts +2 -0
  41. package/dist/components/atoms/Overlay/styled.js +36 -0
  42. package/dist/components/atoms/Overlay/styled.js.map +1 -0
  43. package/dist/components/atoms/Skeleton/Skeleton.d.ts +10 -0
  44. package/dist/components/atoms/Skeleton/Skeleton.js +35 -0
  45. package/dist/components/atoms/Skeleton/Skeleton.js.map +1 -0
  46. package/dist/components/atoms/Skeleton/index.d.ts +1 -0
  47. package/dist/components/atoms/Skeleton/index.js +24 -0
  48. package/dist/components/atoms/Skeleton/index.js.map +1 -0
  49. package/dist/components/atoms/Skeleton/styled.d.ts +5 -0
  50. package/dist/components/atoms/Skeleton/styled.js +79 -0
  51. package/dist/components/atoms/Skeleton/styled.js.map +1 -0
  52. package/dist/components/atoms/Table/Body/TBody.d.ts +3 -0
  53. package/dist/components/atoms/Table/Body/TBody.js +22 -0
  54. package/dist/components/atoms/Table/Body/TBody.js.map +1 -0
  55. package/dist/components/atoms/Table/Body/index.d.ts +1 -0
  56. package/dist/components/atoms/Table/Body/index.js +16 -0
  57. package/dist/components/atoms/Table/Body/index.js.map +1 -0
  58. package/dist/components/atoms/Table/Cell/Td.d.ts +3 -0
  59. package/dist/components/atoms/Table/Cell/Td.js +23 -0
  60. package/dist/components/atoms/Table/Cell/Td.js.map +1 -0
  61. package/dist/components/atoms/Table/Cell/index.d.ts +1 -0
  62. package/dist/components/atoms/Table/Cell/index.js +16 -0
  63. package/dist/components/atoms/Table/Cell/index.js.map +1 -0
  64. package/dist/components/atoms/Table/Cell/styled.d.ts +2 -0
  65. package/dist/components/atoms/Table/Cell/styled.js +34 -0
  66. package/dist/components/atoms/Table/Cell/styled.js.map +1 -0
  67. package/dist/components/atoms/Table/Container/TableContainer.d.ts +3 -0
  68. package/dist/components/atoms/Table/Container/TableContainer.js +23 -0
  69. package/dist/components/atoms/Table/Container/TableContainer.js.map +1 -0
  70. package/dist/components/atoms/Table/Container/index.d.ts +1 -0
  71. package/dist/components/atoms/Table/Container/index.js +16 -0
  72. package/dist/components/atoms/Table/Container/index.js.map +1 -0
  73. package/dist/components/atoms/Table/Container/styled.d.ts +2 -0
  74. package/dist/components/atoms/Table/Container/styled.js +30 -0
  75. package/dist/components/atoms/Table/Container/styled.js.map +1 -0
  76. package/dist/components/atoms/Table/Footer/TFoot.d.ts +3 -0
  77. package/dist/components/atoms/Table/Footer/TFoot.js +24 -0
  78. package/dist/components/atoms/Table/Footer/TFoot.js.map +1 -0
  79. package/dist/components/atoms/Table/Footer/index.d.ts +1 -0
  80. package/dist/components/atoms/Table/Footer/index.js +16 -0
  81. package/dist/components/atoms/Table/Footer/index.js.map +1 -0
  82. package/dist/components/atoms/Table/Footer/styled.d.ts +5 -0
  83. package/dist/components/atoms/Table/Footer/styled.js +19 -0
  84. package/dist/components/atoms/Table/Footer/styled.js.map +1 -0
  85. package/dist/components/atoms/Table/Header/THead.d.ts +3 -0
  86. package/dist/components/atoms/Table/Header/THead.js +27 -0
  87. package/dist/components/atoms/Table/Header/THead.js.map +1 -0
  88. package/dist/components/atoms/Table/Header/Th.d.ts +3 -0
  89. package/dist/components/atoms/Table/Header/Th.js +24 -0
  90. package/dist/components/atoms/Table/Header/Th.js.map +1 -0
  91. package/dist/components/atoms/Table/Header/index.d.ts +2 -0
  92. package/dist/components/atoms/Table/Header/index.js +24 -0
  93. package/dist/components/atoms/Table/Header/index.js.map +1 -0
  94. package/dist/components/atoms/Table/Header/styled.d.ts +4 -0
  95. package/dist/components/atoms/Table/Header/styled.js +54 -0
  96. package/dist/components/atoms/Table/Header/styled.js.map +1 -0
  97. package/dist/components/atoms/Table/Row/Tr.d.ts +3 -0
  98. package/dist/components/atoms/Table/Row/Tr.js +24 -0
  99. package/dist/components/atoms/Table/Row/Tr.js.map +1 -0
  100. package/dist/components/atoms/Table/Row/index.d.ts +1 -0
  101. package/dist/components/atoms/Table/Row/index.js +16 -0
  102. package/dist/components/atoms/Table/Row/index.js.map +1 -0
  103. package/dist/components/atoms/Table/Row/styled.d.ts +2 -0
  104. package/dist/components/atoms/Table/Row/styled.js +24 -0
  105. package/dist/components/atoms/Table/Row/styled.js.map +1 -0
  106. package/dist/components/atoms/Table/Table.d.ts +3 -0
  107. package/dist/components/atoms/Table/Table.js +24 -0
  108. package/dist/components/atoms/Table/Table.js.map +1 -0
  109. package/dist/components/atoms/Table/Toolbar/TableToolbar.d.ts +8 -0
  110. package/dist/components/atoms/Table/Toolbar/TableToolbar.js +30 -0
  111. package/dist/components/atoms/Table/Toolbar/TableToolbar.js.map +1 -0
  112. package/dist/components/atoms/Table/Toolbar/index.d.ts +1 -0
  113. package/dist/components/atoms/Table/Toolbar/index.js +24 -0
  114. package/dist/components/atoms/Table/Toolbar/index.js.map +1 -0
  115. package/dist/components/atoms/Table/Toolbar/styled.d.ts +5 -0
  116. package/dist/components/atoms/Table/Toolbar/styled.js +19 -0
  117. package/dist/components/atoms/Table/Toolbar/styled.js.map +1 -0
  118. package/dist/components/atoms/Table/index.d.ts +8 -0
  119. package/dist/components/atoms/Table/index.js +84 -0
  120. package/dist/components/atoms/Table/index.js.map +1 -0
  121. package/dist/components/atoms/Table/styled.d.ts +2 -0
  122. package/dist/components/atoms/Table/styled.js +20 -0
  123. package/dist/components/atoms/Table/styled.js.map +1 -0
  124. package/dist/components/atoms/Tag/index.js +2 -2
  125. package/dist/components/molecules/Breadcrumbs/BreadcrumbItem/index.js +2 -2
  126. package/dist/components/molecules/Breadcrumbs/index.js +2 -2
  127. package/dist/components/molecules/Drawer/Drawer.js +33 -3
  128. package/dist/components/molecules/Drawer/Drawer.js.map +1 -1
  129. package/dist/components/molecules/Drawer/animations.d.ts +42 -0
  130. package/dist/components/molecules/Drawer/animations.js +77 -0
  131. package/dist/components/molecules/Drawer/animations.js.map +1 -0
  132. package/dist/components/molecules/Drawer/index.js +2 -2
  133. package/dist/components/molecules/Drawer/styled.d.ts +0 -1
  134. package/dist/components/molecules/Drawer/styled.js +4 -19
  135. package/dist/components/molecules/Drawer/styled.js.map +1 -1
  136. package/dist/components/molecules/InputPassword/InputPassword.js +2 -2
  137. package/dist/components/molecules/InputPassword/index.js +2 -2
  138. package/dist/components/molecules/Menubar/MenuBlock/MenuBlock.d.ts +4 -3
  139. package/dist/components/molecules/Menubar/MenuBlock/MenuBlock.js +14 -5
  140. package/dist/components/molecules/Menubar/MenuBlock/MenuBlock.js.map +1 -1
  141. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/MenuItem.d.ts +1 -0
  142. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/MenuItem.js +6 -3
  143. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/MenuItem.js.map +1 -1
  144. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/SubMenuBlock.d.ts +1 -0
  145. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/SubMenuBlock.js +4 -2
  146. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/SubMenuBlock.js.map +1 -1
  147. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/styled.js +3 -0
  148. package/dist/components/molecules/Menubar/MenuBlock/MenuItem/styled.js.map +1 -1
  149. package/dist/components/molecules/Menubar/Menubar.d.ts +3 -2
  150. package/dist/components/molecules/Menubar/Menubar.js +33 -21
  151. package/dist/components/molecules/Menubar/Menubar.js.map +1 -1
  152. package/dist/components/molecules/Menubar/MostUsed/MostUsed.d.ts +3 -2
  153. package/dist/components/molecules/Menubar/MostUsed/MostUsed.js +6 -3
  154. package/dist/components/molecules/Menubar/MostUsed/MostUsed.js.map +1 -1
  155. package/dist/components/molecules/Menubar/animations.d.ts +4 -0
  156. package/dist/components/molecules/Menubar/animations.js +63 -0
  157. package/dist/components/molecules/Menubar/animations.js.map +1 -0
  158. package/dist/components/molecules/Menubar/index.js +2 -2
  159. package/dist/components/molecules/Menubar/styled.js +14 -1
  160. package/dist/components/molecules/Menubar/styled.js.map +1 -1
  161. package/dist/components/molecules/Menubar/types.js +4 -0
  162. package/dist/components/molecules/Select/Dropdown/Dropdown.d.ts +7 -0
  163. package/dist/components/molecules/Select/Dropdown/Dropdown.js +90 -0
  164. package/dist/components/molecules/Select/Dropdown/Dropdown.js.map +1 -0
  165. package/dist/components/molecules/Select/Dropdown/index.d.ts +1 -0
  166. package/dist/components/molecules/Select/Dropdown/index.js +16 -0
  167. package/dist/components/molecules/Select/Dropdown/index.js.map +1 -0
  168. package/dist/components/molecules/Select/Dropdown/styled.d.ts +13 -0
  169. package/dist/components/molecules/Select/Dropdown/styled.js +113 -0
  170. package/dist/components/molecules/Select/Dropdown/styled.js.map +1 -0
  171. package/dist/components/molecules/Select/Select.d.ts +15 -0
  172. package/dist/components/molecules/Select/Select.js +85 -0
  173. package/dist/components/molecules/Select/Select.js.map +1 -0
  174. package/dist/components/molecules/Select/SelectItem/SelectItem.d.ts +16 -0
  175. package/dist/components/molecules/Select/SelectItem/SelectItem.js +76 -0
  176. package/dist/components/molecules/Select/SelectItem/SelectItem.js.map +1 -0
  177. package/dist/components/molecules/Select/SelectItem/index.d.ts +1 -0
  178. package/dist/components/molecules/Select/SelectItem/index.js +16 -0
  179. package/dist/components/molecules/Select/SelectItem/index.js.map +1 -0
  180. package/dist/components/molecules/Select/SelectItem/styled.d.ts +4 -0
  181. package/dist/components/molecules/Select/SelectItem/styled.js +54 -0
  182. package/dist/components/molecules/Select/SelectItem/styled.js.map +1 -0
  183. package/dist/components/molecules/Select/animations.d.ts +27 -0
  184. package/dist/components/molecules/Select/animations.js +36 -0
  185. package/dist/components/molecules/Select/animations.js.map +1 -0
  186. package/dist/components/molecules/Select/functions.d.ts +1 -0
  187. package/dist/components/molecules/Select/functions.js +21 -0
  188. package/dist/components/molecules/Select/functions.js.map +1 -0
  189. package/dist/components/molecules/Select/index.d.ts +1 -0
  190. package/dist/components/molecules/Select/index.js +24 -0
  191. package/dist/components/molecules/Select/index.js.map +1 -0
  192. package/dist/components/molecules/Select/styled.d.ts +3 -0
  193. package/dist/components/molecules/Select/styled.js +28 -0
  194. package/dist/components/molecules/Select/styled.js.map +1 -0
  195. package/dist/components/molecules/Snackbar/index.js +2 -2
  196. package/dist/components/molecules/Snackbar/styled.js +2 -2
  197. package/dist/components/organisms/DataGrid/DataGrid.d.ts +28 -0
  198. package/dist/components/organisms/DataGrid/DataGrid.js +121 -0
  199. package/dist/components/organisms/DataGrid/DataGrid.js.map +1 -0
  200. package/dist/components/organisms/DataGrid/Footer/Footer.d.ts +15 -0
  201. package/dist/components/organisms/DataGrid/Footer/Footer.js +107 -0
  202. package/dist/components/organisms/DataGrid/Footer/Footer.js.map +1 -0
  203. package/dist/components/organisms/DataGrid/Footer/index.d.ts +1 -0
  204. package/dist/components/organisms/DataGrid/Footer/index.js +16 -0
  205. package/dist/components/organisms/DataGrid/Footer/index.js.map +1 -0
  206. package/dist/components/organisms/DataGrid/Footer/styled.d.ts +35 -0
  207. package/dist/components/organisms/DataGrid/Footer/styled.js +91 -0
  208. package/dist/components/organisms/DataGrid/Footer/styled.js.map +1 -0
  209. package/dist/components/organisms/DataGrid/Header/Header.d.ts +12 -0
  210. package/dist/components/organisms/DataGrid/Header/Header.js +88 -0
  211. package/dist/components/organisms/DataGrid/Header/Header.js.map +1 -0
  212. package/dist/components/organisms/DataGrid/Header/index.d.ts +1 -0
  213. package/dist/components/organisms/DataGrid/Header/index.js +16 -0
  214. package/dist/components/organisms/DataGrid/Header/index.js.map +1 -0
  215. package/dist/components/organisms/DataGrid/Header/styled.d.ts +1 -0
  216. package/dist/components/organisms/DataGrid/Header/styled.js +23 -0
  217. package/dist/components/organisms/DataGrid/Header/styled.js.map +1 -0
  218. package/dist/components/organisms/DataGrid/Header/utils.d.ts +10 -0
  219. package/dist/components/organisms/DataGrid/Header/utils.js +30 -0
  220. package/dist/components/organisms/DataGrid/Header/utils.js.map +1 -0
  221. package/dist/components/organisms/DataGrid/Row/Row.d.ts +10 -0
  222. package/dist/components/organisms/DataGrid/Row/Row.js +42 -0
  223. package/dist/components/organisms/DataGrid/Row/Row.js.map +1 -0
  224. package/dist/components/organisms/DataGrid/Row/index.d.ts +1 -0
  225. package/dist/components/organisms/DataGrid/Row/index.js +16 -0
  226. package/dist/components/organisms/DataGrid/Row/index.js.map +1 -0
  227. package/dist/components/organisms/DataGrid/index.d.ts +2 -0
  228. package/dist/components/organisms/DataGrid/index.js +42 -0
  229. package/dist/components/organisms/DataGrid/index.js.map +1 -0
  230. package/dist/components/organisms/DataGrid/styled.d.ts +1 -0
  231. package/dist/components/organisms/DataGrid/styled.js +23 -0
  232. package/dist/components/organisms/DataGrid/styled.js.map +1 -0
  233. package/dist/components/organisms/DataGrid/types.d.ts +7 -0
  234. package/dist/components/organisms/DataGrid/types.js +6 -0
  235. package/dist/components/organisms/DataGrid/types.js.map +1 -0
  236. package/dist/components/organisms/DataGrid/utils.d.ts +2 -0
  237. package/dist/components/organisms/DataGrid/utils.js +18 -0
  238. package/dist/components/organisms/DataGrid/utils.js.map +1 -0
  239. package/dist/hooks/index.d.ts +1 -0
  240. package/dist/hooks/index.js +14 -0
  241. package/dist/hooks/index.js.map +1 -0
  242. package/dist/hooks/useClickAwayListener.d.ts +2 -0
  243. package/dist/hooks/useClickAwayListener.js +28 -0
  244. package/dist/hooks/useClickAwayListener.js.map +1 -0
  245. package/dist/index.d.ts +6 -0
  246. package/dist/index.js +104 -3
  247. package/dist/index.js.map +1 -1
  248. package/package.json +7 -6
  249. package/src/components/atoms/Accordion/Accordion.stories.tsx +35 -0
  250. package/src/components/atoms/Accordion/Accordion.tsx +99 -0
  251. package/src/components/atoms/Accordion/animations.ts +51 -0
  252. package/src/components/atoms/Accordion/index.ts +1 -0
  253. package/src/components/atoms/Accordion/styled.ts +35 -0
  254. package/src/components/atoms/Button/styled.ts +11 -1
  255. package/src/components/atoms/Modal/Modal.stories.tsx +55 -0
  256. package/src/components/atoms/Modal/Modal.tsx +34 -0
  257. package/src/components/atoms/Modal/animations.ts +12 -0
  258. package/src/components/atoms/Modal/index.ts +1 -0
  259. package/src/components/atoms/Modal/styled.ts +17 -0
  260. package/src/components/atoms/Overlay/Overlay.tsx +40 -0
  261. package/src/components/atoms/Overlay/animations.ts +11 -0
  262. package/src/components/atoms/Overlay/index.ts +1 -0
  263. package/src/components/atoms/Overlay/styled.ts +20 -0
  264. package/src/components/atoms/Skeleton/Skeleton.stories.tsx +15 -0
  265. package/src/components/atoms/Skeleton/Skeleton.tsx +37 -0
  266. package/src/components/atoms/Skeleton/index.ts +1 -0
  267. package/src/components/atoms/Skeleton/styled.ts +68 -0
  268. package/src/components/atoms/Table/Body/TBody.tsx +10 -0
  269. package/src/components/atoms/Table/Body/index.ts +1 -0
  270. package/src/components/atoms/Table/Cell/Td.tsx +11 -0
  271. package/src/components/atoms/Table/Cell/index.ts +1 -0
  272. package/src/components/atoms/Table/Cell/styled.ts +12 -0
  273. package/src/components/atoms/Table/Container/TableContainer.tsx +11 -0
  274. package/src/components/atoms/Table/Container/index.ts +1 -0
  275. package/src/components/atoms/Table/Container/styled.ts +10 -0
  276. package/src/components/atoms/Table/Footer/TFoot.tsx +11 -0
  277. package/src/components/atoms/Table/Footer/index.ts +1 -0
  278. package/src/components/atoms/Table/Footer/styled.ts +8 -0
  279. package/src/components/atoms/Table/Header/THead.tsx +21 -0
  280. package/src/components/atoms/Table/Header/Th.tsx +10 -0
  281. package/src/components/atoms/Table/Header/index.ts +2 -0
  282. package/src/components/atoms/Table/Header/styled.ts +30 -0
  283. package/src/components/atoms/Table/Row/Tr.tsx +11 -0
  284. package/src/components/atoms/Table/Row/index.ts +1 -0
  285. package/src/components/atoms/Table/Row/styled.ts +8 -0
  286. package/src/components/atoms/Table/Table.stories.tsx +96 -0
  287. package/src/components/atoms/Table/Table.tsx +11 -0
  288. package/src/components/atoms/Table/Toolbar/TableToolbar.tsx +31 -0
  289. package/src/components/atoms/Table/Toolbar/index.ts +1 -0
  290. package/src/components/atoms/Table/Toolbar/styled.ts +8 -0
  291. package/src/components/atoms/Table/index.ts +8 -0
  292. package/src/components/atoms/Table/styled.ts +9 -0
  293. package/src/components/molecules/Drawer/Drawer.stories.tsx +19 -21
  294. package/src/components/molecules/Drawer/Drawer.tsx +34 -6
  295. package/src/components/molecules/Drawer/animations.ts +50 -0
  296. package/src/components/molecules/Drawer/styled.ts +3 -12
  297. package/src/components/molecules/InputPassword/InputPassword.stories.tsx +1 -1
  298. package/src/components/molecules/Menubar/MenuBlock/MenuBlock.tsx +38 -31
  299. package/src/components/molecules/Menubar/MenuBlock/MenuItem/MenuItem.tsx +4 -2
  300. package/src/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/SubMenuBlock.tsx +3 -2
  301. package/src/components/molecules/Menubar/MenuBlock/MenuItem/styled.ts +3 -0
  302. package/src/components/molecules/Menubar/Menubar.stories.tsx +20 -13
  303. package/src/components/molecules/Menubar/Menubar.tsx +65 -51
  304. package/src/components/molecules/Menubar/MostUsed/MostUsed.tsx +4 -2
  305. package/src/components/molecules/Menubar/animations.ts +64 -0
  306. package/src/components/molecules/Menubar/styled.ts +8 -1
  307. package/src/components/molecules/Select/Dropdown/Dropdown.tsx +106 -0
  308. package/src/components/molecules/Select/Dropdown/index.ts +1 -0
  309. package/src/components/molecules/Select/Dropdown/styled.ts +77 -0
  310. package/src/components/molecules/Select/Select.stories.tsx +108 -0
  311. package/src/components/molecules/Select/Select.tsx +92 -0
  312. package/src/components/molecules/Select/SelectItem/SelectItem.tsx +88 -0
  313. package/src/components/molecules/Select/SelectItem/index.ts +1 -0
  314. package/src/components/molecules/Select/SelectItem/styled.ts +34 -0
  315. package/src/components/molecules/Select/animations.ts +18 -0
  316. package/src/components/molecules/Select/functions.ts +32 -0
  317. package/src/components/molecules/Select/index.ts +1 -0
  318. package/src/components/molecules/Select/styled.ts +16 -0
  319. package/src/components/molecules/Snackbar/Snackbar.stories.tsx +24 -0
  320. package/src/components/organisms/DataGrid/DatGrid.stories.tsx +216 -0
  321. package/src/components/organisms/DataGrid/DataGrid.tsx +183 -0
  322. package/src/components/organisms/DataGrid/Footer/Footer.tsx +137 -0
  323. package/src/components/organisms/DataGrid/Footer/index.ts +1 -0
  324. package/src/components/organisms/DataGrid/Footer/styled.ts +59 -0
  325. package/src/components/organisms/DataGrid/Header/Header.tsx +111 -0
  326. package/src/components/organisms/DataGrid/Header/index.ts +1 -0
  327. package/src/components/organisms/DataGrid/Header/styled.ts +10 -0
  328. package/src/components/organisms/DataGrid/Header/utils.ts +28 -0
  329. package/src/components/organisms/DataGrid/Row/Row.tsx +33 -0
  330. package/src/components/organisms/DataGrid/Row/index.ts +1 -0
  331. package/src/components/organisms/DataGrid/index.ts +2 -0
  332. package/src/components/organisms/DataGrid/styled.ts +10 -0
  333. package/src/components/organisms/DataGrid/types.ts +11 -0
  334. package/src/components/organisms/DataGrid/utils.ts +15 -0
  335. package/src/hooks/index.ts +1 -0
  336. package/src/hooks/useClickAwayListener.ts +18 -0
  337. package/src/index.ts +10 -0
@@ -0,0 +1,183 @@
1
+ import React, { CSSProperties } from 'react';
2
+ import {
3
+ Table,
4
+ TableToolbar,
5
+ TableContainer,
6
+ Tr,
7
+ Td,
8
+ TBody,
9
+ } from '../../atoms/Table';
10
+ import { Header } from './Header';
11
+ import { Row } from './Row';
12
+ import { HeadersType } from './types';
13
+ import { Footer } from './Footer';
14
+ import { Skeleton } from '../../atoms/Skeleton';
15
+ import { getData, removeElement } from './utils';
16
+
17
+ export interface DataGridProps<Data> {
18
+ headers: HeadersType<Data>[];
19
+ data: Data[];
20
+ /** Unique identifier for row data */
21
+ rowKeyExtractor: (data: Data) => string;
22
+ toolbarRightIcons?: React.ReactNode;
23
+ toolbarFooter?: React.ReactNode;
24
+ toolbarTitle: string;
25
+ /** Enable rows selection */
26
+ selectable?: boolean;
27
+ /** Selected items */
28
+ selectedRows?: Data[];
29
+ /** Selection handler */
30
+ onSelectedRows?: (data: Data[] | ((prevState: Data[]) => Data[])) => void;
31
+ /** Shows pagination controls */
32
+ pagination?: boolean;
33
+ /** Results per page */
34
+ rowsPerPage?: number;
35
+ /** Results per page handler */
36
+ onRowsPerPageChange?: (value: number) => void;
37
+ rowsPerPageOptions?: number[];
38
+ rowsPerPageLabel?: (value: number) => string;
39
+ /** Export button label */
40
+ exportLabel?: string;
41
+ exportFunction?: () => void;
42
+ /** Total data elements. Only specify this property if your data is server-side */
43
+ rowsCount?: number;
44
+ /** Current page. Always start in 0 */
45
+ page?: number;
46
+ /** Current page handler */
47
+ onPageChange?: (page: number) => void;
48
+ /** Loading state. The amount of skeleton rows is based on current rowsPerPage */
49
+ loading?: boolean;
50
+ /** Custom skeleton component for better visual */
51
+ skeletonComponent?: React.ReactNode;
52
+ /** CSS style spread to TableContainer */
53
+ style?: CSSProperties;
54
+ }
55
+
56
+ /** Note: Consider memoizing functions for a better performance */
57
+ const DataGrid = <Data extends unknown>({
58
+ headers,
59
+ data,
60
+ rowKeyExtractor,
61
+ toolbarTitle,
62
+ toolbarFooter,
63
+ toolbarRightIcons,
64
+ selectable = false,
65
+ selectedRows = [],
66
+ onSelectedRows,
67
+ pagination = false,
68
+ rowsPerPage = 10,
69
+ onRowsPerPageChange,
70
+ rowsPerPageOptions: _rowsPerPageOptions,
71
+ rowsPerPageLabel: _rowsPerPageLabel,
72
+ exportLabel = 'Exportar',
73
+ exportFunction,
74
+ rowsCount,
75
+ page = 0,
76
+ onPageChange,
77
+ loading = false,
78
+ skeletonComponent,
79
+ style,
80
+ }: DataGridProps<Data>): JSX.Element => {
81
+ if (selectable && (!selectedRows || !onSelectedRows)) {
82
+ throw new Error(
83
+ '[DataGrid] You should specify selection handlers (selectedRows, onSelectedRows)'
84
+ );
85
+ }
86
+
87
+ const rowsPerPageLabel = React.useCallback(
88
+ value =>
89
+ _rowsPerPageLabel
90
+ ? _rowsPerPageLabel(value)
91
+ : `Exibir por página: ${value} itens`,
92
+ [_rowsPerPageLabel]
93
+ );
94
+ const rowsPerPageOptions = React.useMemo(
95
+ () => _rowsPerPageOptions ?? [10, 25, 50],
96
+ [_rowsPerPageOptions]
97
+ );
98
+
99
+ const handleSelect = React.useCallback(
100
+ (current, checked) => {
101
+ if (checked) {
102
+ onSelectedRows?.(prevState => [...prevState, current]);
103
+ return;
104
+ }
105
+
106
+ onSelectedRows?.(prevState => {
107
+ const idx = prevState.findIndex(
108
+ el => rowKeyExtractor(el) === rowKeyExtractor(current)
109
+ );
110
+ return [...removeElement(prevState, idx)];
111
+ });
112
+ },
113
+ [onSelectedRows, rowKeyExtractor]
114
+ );
115
+
116
+ return (
117
+ <TableContainer style={style}>
118
+ <TableToolbar
119
+ title={toolbarTitle}
120
+ rightIcons={toolbarRightIcons}
121
+ footer={toolbarFooter}
122
+ />
123
+ <Table>
124
+ <Header
125
+ selectable={selectable}
126
+ headers={headers}
127
+ data={data}
128
+ rowsCount={rowsCount ?? data.length}
129
+ rowKeyExtractor={rowKeyExtractor}
130
+ selectedRows={selectedRows}
131
+ onSelected={onSelectedRows}
132
+ />
133
+
134
+ {!loading ? (
135
+ <TBody>
136
+ {getData(data, rowsCount, page, rowsPerPage).map(item => (
137
+ <Row
138
+ key={rowKeyExtractor(item)}
139
+ rowKeyExtractor={rowKeyExtractor}
140
+ handleSelect={handleSelect}
141
+ selectable={selectable}
142
+ headers={headers}
143
+ data={item}
144
+ checked={selectedRows?.some(
145
+ sel => rowKeyExtractor(sel) === rowKeyExtractor(item)
146
+ )}
147
+ />
148
+ ))}
149
+ </TBody>
150
+ ) : (
151
+ <TBody>
152
+ {[...Array(rowsPerPage).keys()].map(idx => (
153
+ <Tr key={`skeleton-${idx}`}>
154
+ <Td colSpan={99} style={{ padding: 0 }}>
155
+ {skeletonComponent ?? (
156
+ <Skeleton height={55} radius="mili" animation="wave">
157
+ <div style={{ width: '100%' }} />
158
+ </Skeleton>
159
+ )}
160
+ </Td>
161
+ </Tr>
162
+ ))}
163
+ </TBody>
164
+ )}
165
+
166
+ <Footer
167
+ exportFunction={exportFunction}
168
+ exportLabel={exportLabel}
169
+ rowsPerPageLabel={rowsPerPageLabel}
170
+ rowsPerPage={rowsPerPage}
171
+ onRowsPerPageChange={onRowsPerPageChange}
172
+ rowsPerPageOptions={rowsPerPageOptions}
173
+ rowsCount={rowsCount ?? data.length}
174
+ page={page}
175
+ onPageChange={onPageChange}
176
+ pagination={pagination}
177
+ />
178
+ </Table>
179
+ </TableContainer>
180
+ );
181
+ };
182
+
183
+ export default DataGrid;
@@ -0,0 +1,137 @@
1
+ import React from 'react';
2
+ import { Button, Icon, Select, Text } from '@tecsinapse/react-web-kit';
3
+ import { TFoot, Tr } from '../../../atoms/Table';
4
+ import {
5
+ FooterContainer,
6
+ FooterContainerEnd,
7
+ FooterContainerStart,
8
+ HoveredText,
9
+ NavigationButton,
10
+ PageButton,
11
+ PagesContainer,
12
+ SelectContainer,
13
+ TdFooterStyled,
14
+ } from './styled';
15
+
16
+ interface DataGridFooterProps {
17
+ rowsPerPage: number;
18
+ onRowsPerPageChange?: (value: number) => void;
19
+ rowsPerPageOptions: number[];
20
+ rowsPerPageLabel: (value: number) => string;
21
+ exportLabel?: string;
22
+ exportFunction?: () => void;
23
+ /** Total data elements */
24
+ rowsCount: number;
25
+ page: number;
26
+ onPageChange?: (page: number) => void;
27
+ pagination: boolean;
28
+ }
29
+
30
+ const Footer: React.FC<DataGridFooterProps> = ({
31
+ rowsPerPage,
32
+ onRowsPerPageChange,
33
+ rowsPerPageOptions,
34
+ rowsPerPageLabel,
35
+ exportFunction,
36
+ exportLabel,
37
+ rowsCount,
38
+ page,
39
+ onPageChange,
40
+ pagination,
41
+ }) => {
42
+ if (pagination && (!onPageChange || !onRowsPerPageChange)) {
43
+ throw new Error(
44
+ '[DataGrid] You should specify pagination handlers (onPageChange, onRowsPerPageChange)'
45
+ );
46
+ }
47
+
48
+ const getPaginationSlice = (): { start: number; end: number } => {
49
+ const totalPages = Math.ceil(rowsCount / rowsPerPage);
50
+ if (totalPages < 4) {
51
+ return { start: 0, end: totalPages };
52
+ }
53
+ if (page === 0) {
54
+ return { start: page, end: page + 3 };
55
+ }
56
+ if (page === totalPages - 1) {
57
+ return { start: page - 2, end: page + 1 };
58
+ }
59
+ return { start: page - 1, end: page + 2 };
60
+ };
61
+
62
+ return (
63
+ <TFoot>
64
+ <Tr>
65
+ <TdFooterStyled colSpan={99}>
66
+ <FooterContainer>
67
+ <FooterContainerStart>
68
+ {pagination && (
69
+ <SelectContainer>
70
+ <Select
71
+ options={rowsPerPageOptions}
72
+ onSelect={value => onRowsPerPageChange?.(value as number)}
73
+ value={rowsPerPage}
74
+ type={'single'}
75
+ keyExtractor={value => String(value)}
76
+ labelExtractor={rowsPerPageLabel}
77
+ />
78
+ </SelectContainer>
79
+ )}
80
+ {exportFunction && (
81
+ <HoveredText>
82
+ <Button variant="outlined" onPress={() => exportFunction()}>
83
+ <Text fontColor="orange" fontWeight="bold">
84
+ {exportLabel}
85
+ </Text>
86
+ </Button>
87
+ </HoveredText>
88
+ )}
89
+ </FooterContainerStart>
90
+ {pagination && (
91
+ <FooterContainerEnd>
92
+ <NavigationButton
93
+ onPress={() => onPageChange?.(page - 1)}
94
+ disabled={page === 0}
95
+ >
96
+ <Icon
97
+ name={'chevron-left'}
98
+ type={'material-community'}
99
+ fontColor={'light'}
100
+ />
101
+ </NavigationButton>
102
+ <PagesContainer>
103
+ {[...Array(Math.ceil(rowsCount / rowsPerPage)).keys()]
104
+ .slice(getPaginationSlice().start, getPaginationSlice().end)
105
+ .map(value => (
106
+ <HoveredText key={`page-${value}`}>
107
+ <PageButton
108
+ variant={page === value ? 'outlined' : 'text'}
109
+ onPress={() => onPageChange?.(value)}
110
+ >
111
+ <Text fontColor="medium" fontWeight="bold">
112
+ {value + 1}
113
+ </Text>
114
+ </PageButton>
115
+ </HoveredText>
116
+ ))}
117
+ </PagesContainer>
118
+ <NavigationButton
119
+ onPress={() => onPageChange?.(page + 1)}
120
+ disabled={page === Math.ceil(rowsCount / rowsPerPage) - 1}
121
+ >
122
+ <Icon
123
+ name={'chevron-right'}
124
+ type={'material-community'}
125
+ fontColor={'light'}
126
+ />
127
+ </NavigationButton>
128
+ </FooterContainerEnd>
129
+ )}
130
+ </FooterContainer>
131
+ </TdFooterStyled>
132
+ </Tr>
133
+ </TFoot>
134
+ );
135
+ };
136
+
137
+ export default React.memo(Footer);
@@ -0,0 +1 @@
1
+ export { default as Footer } from './Footer';
@@ -0,0 +1,59 @@
1
+ import styled from '@emotion/styled';
2
+ import { default as nativeStyled } from '@emotion/native';
3
+ import { StyleProps } from '@tecsinapse/react-core';
4
+ import { Td } from '../../../atoms/Table';
5
+ import { Button } from '../../../atoms/Button';
6
+
7
+ export const TdFooterStyled = styled(Td)<Partial<StyleProps>>`
8
+ padding: ${({ theme }) => theme.spacing.centi} 0 0 0;
9
+ `;
10
+
11
+ export const FlexContainer = styled('div')`
12
+ display: flex;
13
+ flex-grow: 1;
14
+ `;
15
+
16
+ export const FooterContainer = styled(FlexContainer)`
17
+ justify-content: space-between;
18
+ align-items: center;
19
+ `;
20
+
21
+ export const FooterContainerStart = styled(FlexContainer)`
22
+ justify-content: flex-start;
23
+ `;
24
+
25
+ export const FooterContainerEnd = styled(FlexContainer)`
26
+ justify-content: flex-end;
27
+ `;
28
+
29
+ export const SelectContainer = styled('div')<Partial<StyleProps>>`
30
+ margin-right: ${({ theme }) => theme.spacing.deca};
31
+ `;
32
+
33
+ export const NavigationButton = nativeStyled(Button)<Partial<StyleProps>>`
34
+ padding: ${({ theme }) => theme.spacing.centi};
35
+ border-radius: ${({ theme }) => theme.borderRadius.mili};
36
+ justify-content: center;
37
+ `;
38
+
39
+ // Se o botão estiver ativo, renderizar outlined, caso contrario o botão é text
40
+ export const PageButton = nativeStyled(NavigationButton)<Partial<StyleProps>>`
41
+ padding-right: ${({ theme }) => theme.spacing.deca};
42
+ padding-left: ${({ theme }) => theme.spacing.deca};
43
+ border-radius: ${({ theme }) => theme.borderRadius.mili};
44
+ justify-content: center;
45
+ margin-left: ${({ theme }) => theme.spacing.micro};
46
+ margin-right: ${({ theme }) => theme.spacing.micro};
47
+ `;
48
+
49
+ export const PagesContainer = styled('div')<Partial<StyleProps>>`
50
+ margin: 0 20px;
51
+ display: flex;
52
+ `;
53
+
54
+ export const HoveredText = styled('div')<Partial<StyleProps>>`
55
+ user-select: none;
56
+ &:hover * {
57
+ color: ${({ theme }) => theme.font.color.light};
58
+ }
59
+ `;
@@ -0,0 +1,111 @@
1
+ import React from 'react';
2
+ import { Checkbox, Icon, PressableSurface } from '@tecsinapse/react-core';
3
+ import { Th, THead, Tr } from '../../../atoms/Table';
4
+ import { CheckboxHeader } from './styled';
5
+ import { HeadersType } from '../types';
6
+ import {
7
+ findCurrentItemsOnData,
8
+ findUnselectedItemsOnData,
9
+ getIconColor,
10
+ getIconSuffix,
11
+ NEXT_STATE,
12
+ } from './utils';
13
+
14
+ export interface DataGridHeaderProps<Data> {
15
+ headers: HeadersType<Data>[];
16
+ data: Data[];
17
+ selectedRows: Data[];
18
+ onSelected?: (data: Data[]) => void;
19
+ rowKeyExtractor: (data: Data) => string;
20
+ rowsCount: number;
21
+ selectable?: boolean;
22
+ }
23
+
24
+ const Header = <Data extends unknown>({
25
+ selectable,
26
+ rowsCount,
27
+ headers,
28
+ data,
29
+ rowKeyExtractor,
30
+ selectedRows,
31
+ onSelected,
32
+ }: DataGridHeaderProps<Data>): JSX.Element => {
33
+ const [sortDirection, setSortDirection] = React.useState<string>(
34
+ NEXT_STATE.initial
35
+ );
36
+
37
+ const handleSortDirection = sort => {
38
+ sort(NEXT_STATE[sortDirection]);
39
+ setSortDirection(NEXT_STATE[sortDirection]);
40
+ };
41
+
42
+ const handleSelectAll = checked => {
43
+ if (!checked) {
44
+ onSelected?.([]);
45
+ return;
46
+ }
47
+
48
+ const currentItemsOnData = findCurrentItemsOnData(
49
+ selectedRows,
50
+ data,
51
+ rowKeyExtractor
52
+ );
53
+
54
+ const unselectedItemsOnData = findUnselectedItemsOnData(
55
+ selectedRows,
56
+ data,
57
+ rowKeyExtractor
58
+ );
59
+
60
+ if (checked && selectedRows.length < 1) {
61
+ onSelected?.(data);
62
+ return;
63
+ }
64
+ if (checked && currentItemsOnData.length < 1) {
65
+ onSelected?.(unselectedItemsOnData.concat(selectedRows));
66
+ return;
67
+ }
68
+ onSelected?.(selectedRows.concat(unselectedItemsOnData));
69
+ };
70
+
71
+ return (
72
+ <THead>
73
+ <Tr>
74
+ {selectable && (
75
+ <CheckboxHeader>
76
+ <Checkbox
77
+ checked={rowsCount === selectedRows?.length}
78
+ onChange={handleSelectAll}
79
+ />
80
+ </CheckboxHeader>
81
+ )}
82
+ {headers.map(({ label, sort, justifyContent = 'flex-start' }) => (
83
+ <Th key={label}>
84
+ <div
85
+ style={{
86
+ display: 'flex',
87
+ alignItems: 'center',
88
+ justifyContent,
89
+ }}
90
+ >
91
+ {label}
92
+ {sort && (
93
+ <div style={{ marginLeft: 8 }}>
94
+ <PressableSurface onPress={() => handleSortDirection(sort)}>
95
+ <Icon
96
+ name={`sort-alphabetical-${getIconSuffix(sortDirection)}`}
97
+ type={'material-community'}
98
+ fontColor={getIconColor(sortDirection)}
99
+ />
100
+ </PressableSurface>
101
+ </div>
102
+ )}
103
+ </div>
104
+ </Th>
105
+ ))}
106
+ </Tr>
107
+ </THead>
108
+ );
109
+ };
110
+
111
+ export default Header;