@campxdev/react-blueprint 3.0.0-alpha.5 → 3.0.0-alpha.7

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 (263) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/cjs/types/src/components/Assets/ErrorPages/ComingSoon.d.ts +24 -0
  3. package/dist/cjs/types/src/components/Assets/ErrorPages/InternalServerError.d.ts +20 -0
  4. package/dist/cjs/types/src/components/Assets/ErrorPages/NoInternetConnection.d.ts +20 -0
  5. package/dist/cjs/types/src/components/Assets/ErrorPages/NoItemFound.d.ts +28 -0
  6. package/dist/cjs/types/src/components/Assets/ErrorPages/PageNotFound.d.ts +21 -0
  7. package/dist/cjs/types/src/components/Assets/ErrorPages/ResourceNotFound.d.ts +21 -0
  8. package/dist/cjs/types/src/components/Assets/ErrorPages/UnAuthorized.d.ts +31 -0
  9. package/dist/cjs/types/src/components/Assets/Icons/Icons.d.ts +54 -0
  10. package/dist/cjs/types/src/components/Charts/BarChart/BarChart.d.ts +38 -0
  11. package/dist/cjs/types/src/components/Charts/BarChart/HorizontalBarChart.d.ts +93 -0
  12. package/dist/cjs/types/src/components/Charts/BarChart/VerticalBarChart.d.ts +110 -0
  13. package/dist/cjs/types/src/components/Charts/LineChart/LineChart.d.ts +89 -0
  14. package/dist/cjs/types/src/components/Charts/PieChart/PieChart.d.ts +86 -0
  15. package/dist/cjs/types/src/components/Charts/TreeMap/TreeMap.d.ts +74 -0
  16. package/dist/cjs/types/src/components/DataDisplay/Accordion/Accordion.d.ts +54 -0
  17. package/dist/cjs/types/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.d.ts +35 -0
  18. package/dist/cjs/types/src/components/DataDisplay/ActivityLogView/ActivityLogView.d.ts +78 -0
  19. package/dist/cjs/types/src/components/DataDisplay/Avatar/Avatar.d.ts +40 -0
  20. package/dist/cjs/types/src/components/DataDisplay/Chip/Chip.d.ts +28 -0
  21. package/dist/cjs/types/src/components/DataDisplay/Chips/Chips.d.ts +55 -0
  22. package/dist/cjs/types/src/components/DataDisplay/DataTable/DataTable.d.ts +96 -1
  23. package/dist/cjs/types/src/components/DataDisplay/DataTable/components/CardsView.d.ts +14 -2
  24. package/dist/cjs/types/src/components/DataDisplay/DataTable/components/TablePagination.d.ts +35 -0
  25. package/dist/cjs/types/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.d.ts +30 -0
  26. package/dist/cjs/types/src/components/DataDisplay/ReactJoyride/ReactJoyride.d.ts +64 -0
  27. package/dist/cjs/types/src/components/DataDisplay/Separator/Separator.d.ts +30 -0
  28. package/dist/cjs/types/src/components/DataDisplay/Skeleton/Skeleton.d.ts +20 -0
  29. package/dist/cjs/types/src/components/DataDisplay/StatusCard/StatusCard.d.ts +36 -0
  30. package/dist/cjs/types/src/components/DataDisplay/Timeline/Timeline.d.ts +58 -0
  31. package/dist/cjs/types/src/components/DataDisplay/Typography/Typography.d.ts +25 -0
  32. package/dist/cjs/types/src/components/Feedback/Alert/Alert.d.ts +31 -0
  33. package/dist/cjs/types/src/components/Feedback/Snackbar/Snackbar.d.ts +54 -0
  34. package/dist/cjs/types/src/components/Feedback/Spinner/Spinner.d.ts +15 -0
  35. package/dist/cjs/types/src/components/Feedback/Tooltip/Tooltip.d.ts +54 -0
  36. package/dist/cjs/types/src/components/Input/Button/Button.d.ts +26 -0
  37. package/dist/cjs/types/src/components/Input/DatePicker/DatePicker.d.ts +41 -0
  38. package/dist/cjs/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +42 -0
  39. package/dist/cjs/types/src/components/Input/FileUpload/FileUpload.d.ts +41 -0
  40. package/dist/cjs/types/src/components/Input/FormActions/FormActions.d.ts +37 -0
  41. package/dist/cjs/types/src/components/Input/FormControlWrapper/FormControlWrapper.d.ts +31 -0
  42. package/dist/cjs/types/src/components/Input/FormWrapper/FormWrapper.d.ts +20 -0
  43. package/dist/cjs/types/src/components/Input/HelpButton/HelpButton.d.ts +14 -0
  44. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/DeleteButton.d.ts +16 -0
  45. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/EditButton.d.ts +16 -0
  46. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/RedirectButton.d.ts +16 -0
  47. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/ViewButton.d.ts +16 -0
  48. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons.d.ts +18 -0
  49. package/dist/cjs/types/src/components/Input/LabelWrapper/LabelWrapper.d.ts +26 -0
  50. package/dist/cjs/types/src/components/Input/MultiCheckBox/MultiCheckBox.d.ts +34 -0
  51. package/dist/cjs/types/src/components/Input/MultiSelect/MultiSelect.d.ts +40 -0
  52. package/dist/cjs/types/src/components/Input/OtpInput/OtpInput.d.ts +29 -0
  53. package/dist/cjs/types/src/components/Input/PasswordField/PasswordField.d.ts +34 -0
  54. package/dist/cjs/types/src/components/Input/RadioGroup/RadioGroup.d.ts +38 -0
  55. package/dist/cjs/types/src/components/Input/SearchBar/SearchBar.d.ts +26 -0
  56. package/dist/cjs/types/src/components/Input/Select/Select.d.ts +32 -0
  57. package/dist/cjs/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
  58. package/dist/cjs/types/src/components/Input/SingleSelect/SingleSelect.d.ts +40 -0
  59. package/dist/cjs/types/src/components/Input/Switch/Switch.d.ts +23 -0
  60. package/dist/cjs/types/src/components/Input/Tags/Tags.d.ts +26 -0
  61. package/dist/cjs/types/src/components/Input/TextField/TextField.d.ts +35 -0
  62. package/dist/cjs/types/src/components/Input/Textarea/Textarea.d.ts +36 -0
  63. package/dist/cjs/types/src/components/Layout/AppLayout/AppLayout.d.ts +32 -0
  64. package/dist/cjs/types/src/components/Layout/AppLayout/components/MenuToggleButton.d.ts +16 -0
  65. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/MenuBar.d.ts +26 -0
  66. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/MenuItem.d.ts +37 -0
  67. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/Sidebar.d.ts +30 -1
  68. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.d.ts +139 -0
  69. package/dist/cjs/types/src/components/Layout/AppLayout/components/UserProfilePopup.d.ts +34 -0
  70. package/dist/cjs/types/src/components/Layout/AppLayout/context/SidebarContext.d.ts +48 -0
  71. package/dist/cjs/types/src/components/Layout/AppLayout/types.d.ts +1 -1
  72. package/dist/cjs/types/src/components/Layout/PageContent/PageContent.d.ts +21 -1
  73. package/dist/cjs/types/src/components/Layout/PageHeader/PageHeader.d.ts +46 -0
  74. package/dist/cjs/types/src/components/Layout/PageHeader/components/SearchBar.d.ts +22 -0
  75. package/dist/cjs/types/src/components/Layout/UserBox/UserBox.d.ts +40 -0
  76. package/dist/cjs/types/src/components/Navigation/Breadcrumbs/Breadcrumbs.d.ts +33 -0
  77. package/dist/cjs/types/src/components/Navigation/Calendar/Calendar.d.ts +63 -0
  78. package/dist/cjs/types/src/components/Navigation/ConfirmDialog/ConfirmDialog.d.ts +64 -0
  79. package/dist/cjs/types/src/components/Navigation/Dialog/Dialog.d.ts +55 -0
  80. package/dist/cjs/types/src/components/Navigation/DialogButton/DialogButton.d.ts +64 -0
  81. package/dist/cjs/types/src/components/Navigation/DropDownMenu/DropDownMenu.d.ts +73 -0
  82. package/dist/cjs/types/src/components/Navigation/PreviewFiles/PreviewFiles.d.ts +54 -0
  83. package/dist/cjs/types/src/components/Navigation/Stepper/Stepper.d.ts +55 -10
  84. package/dist/cjs/types/src/components/Navigation/TabsContainer/TabsContainer.d.ts +85 -1
  85. package/dist/cjs/types/src/components/Navigation/UploadDialog/UploadDialog.d.ts +64 -0
  86. package/dist/cjs/types/src/shadcn-components/Input/Button/Button.d.ts +1 -1
  87. package/dist/esm/index.js +2 -2
  88. package/dist/esm/types/src/components/Assets/ErrorPages/ComingSoon.d.ts +24 -0
  89. package/dist/esm/types/src/components/Assets/ErrorPages/InternalServerError.d.ts +20 -0
  90. package/dist/esm/types/src/components/Assets/ErrorPages/NoInternetConnection.d.ts +20 -0
  91. package/dist/esm/types/src/components/Assets/ErrorPages/NoItemFound.d.ts +28 -0
  92. package/dist/esm/types/src/components/Assets/ErrorPages/PageNotFound.d.ts +21 -0
  93. package/dist/esm/types/src/components/Assets/ErrorPages/ResourceNotFound.d.ts +21 -0
  94. package/dist/esm/types/src/components/Assets/ErrorPages/UnAuthorized.d.ts +31 -0
  95. package/dist/esm/types/src/components/Assets/Icons/Icons.d.ts +54 -0
  96. package/dist/esm/types/src/components/Charts/BarChart/BarChart.d.ts +38 -0
  97. package/dist/esm/types/src/components/Charts/BarChart/HorizontalBarChart.d.ts +93 -0
  98. package/dist/esm/types/src/components/Charts/BarChart/VerticalBarChart.d.ts +110 -0
  99. package/dist/esm/types/src/components/Charts/LineChart/LineChart.d.ts +89 -0
  100. package/dist/esm/types/src/components/Charts/PieChart/PieChart.d.ts +86 -0
  101. package/dist/esm/types/src/components/Charts/TreeMap/TreeMap.d.ts +74 -0
  102. package/dist/esm/types/src/components/DataDisplay/Accordion/Accordion.d.ts +54 -0
  103. package/dist/esm/types/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.d.ts +35 -0
  104. package/dist/esm/types/src/components/DataDisplay/ActivityLogView/ActivityLogView.d.ts +78 -0
  105. package/dist/esm/types/src/components/DataDisplay/Avatar/Avatar.d.ts +40 -0
  106. package/dist/esm/types/src/components/DataDisplay/Chip/Chip.d.ts +28 -0
  107. package/dist/esm/types/src/components/DataDisplay/Chips/Chips.d.ts +55 -0
  108. package/dist/esm/types/src/components/DataDisplay/DataTable/DataTable.d.ts +96 -1
  109. package/dist/esm/types/src/components/DataDisplay/DataTable/components/CardsView.d.ts +14 -2
  110. package/dist/esm/types/src/components/DataDisplay/DataTable/components/TablePagination.d.ts +35 -0
  111. package/dist/esm/types/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.d.ts +30 -0
  112. package/dist/esm/types/src/components/DataDisplay/ReactJoyride/ReactJoyride.d.ts +64 -0
  113. package/dist/esm/types/src/components/DataDisplay/Separator/Separator.d.ts +30 -0
  114. package/dist/esm/types/src/components/DataDisplay/Skeleton/Skeleton.d.ts +20 -0
  115. package/dist/esm/types/src/components/DataDisplay/StatusCard/StatusCard.d.ts +36 -0
  116. package/dist/esm/types/src/components/DataDisplay/Timeline/Timeline.d.ts +58 -0
  117. package/dist/esm/types/src/components/DataDisplay/Typography/Typography.d.ts +25 -0
  118. package/dist/esm/types/src/components/Feedback/Alert/Alert.d.ts +31 -0
  119. package/dist/esm/types/src/components/Feedback/Snackbar/Snackbar.d.ts +54 -0
  120. package/dist/esm/types/src/components/Feedback/Spinner/Spinner.d.ts +15 -0
  121. package/dist/esm/types/src/components/Feedback/Tooltip/Tooltip.d.ts +54 -0
  122. package/dist/esm/types/src/components/Input/Button/Button.d.ts +26 -0
  123. package/dist/esm/types/src/components/Input/DatePicker/DatePicker.d.ts +41 -0
  124. package/dist/esm/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +42 -0
  125. package/dist/esm/types/src/components/Input/FileUpload/FileUpload.d.ts +41 -0
  126. package/dist/esm/types/src/components/Input/FormActions/FormActions.d.ts +37 -0
  127. package/dist/esm/types/src/components/Input/FormControlWrapper/FormControlWrapper.d.ts +31 -0
  128. package/dist/esm/types/src/components/Input/FormWrapper/FormWrapper.d.ts +20 -0
  129. package/dist/esm/types/src/components/Input/HelpButton/HelpButton.d.ts +14 -0
  130. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/DeleteButton.d.ts +16 -0
  131. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/EditButton.d.ts +16 -0
  132. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/RedirectButton.d.ts +16 -0
  133. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/ViewButton.d.ts +16 -0
  134. package/dist/esm/types/src/components/Input/IconButtons/IconButtons.d.ts +18 -0
  135. package/dist/esm/types/src/components/Input/LabelWrapper/LabelWrapper.d.ts +26 -0
  136. package/dist/esm/types/src/components/Input/MultiCheckBox/MultiCheckBox.d.ts +34 -0
  137. package/dist/esm/types/src/components/Input/MultiSelect/MultiSelect.d.ts +40 -0
  138. package/dist/esm/types/src/components/Input/OtpInput/OtpInput.d.ts +29 -0
  139. package/dist/esm/types/src/components/Input/PasswordField/PasswordField.d.ts +34 -0
  140. package/dist/esm/types/src/components/Input/RadioGroup/RadioGroup.d.ts +38 -0
  141. package/dist/esm/types/src/components/Input/SearchBar/SearchBar.d.ts +26 -0
  142. package/dist/esm/types/src/components/Input/Select/Select.d.ts +32 -0
  143. package/dist/esm/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
  144. package/dist/esm/types/src/components/Input/SingleSelect/SingleSelect.d.ts +40 -0
  145. package/dist/esm/types/src/components/Input/Switch/Switch.d.ts +23 -0
  146. package/dist/esm/types/src/components/Input/Tags/Tags.d.ts +26 -0
  147. package/dist/esm/types/src/components/Input/TextField/TextField.d.ts +35 -0
  148. package/dist/esm/types/src/components/Input/Textarea/Textarea.d.ts +36 -0
  149. package/dist/esm/types/src/components/Layout/AppLayout/AppLayout.d.ts +32 -0
  150. package/dist/esm/types/src/components/Layout/AppLayout/components/MenuToggleButton.d.ts +16 -0
  151. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/MenuBar.d.ts +26 -0
  152. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/MenuItem.d.ts +37 -0
  153. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/Sidebar.d.ts +30 -1
  154. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.d.ts +139 -0
  155. package/dist/esm/types/src/components/Layout/AppLayout/components/UserProfilePopup.d.ts +34 -0
  156. package/dist/esm/types/src/components/Layout/AppLayout/context/SidebarContext.d.ts +48 -0
  157. package/dist/esm/types/src/components/Layout/AppLayout/types.d.ts +1 -1
  158. package/dist/esm/types/src/components/Layout/PageContent/PageContent.d.ts +21 -1
  159. package/dist/esm/types/src/components/Layout/PageHeader/PageHeader.d.ts +46 -0
  160. package/dist/esm/types/src/components/Layout/PageHeader/components/SearchBar.d.ts +22 -0
  161. package/dist/esm/types/src/components/Layout/UserBox/UserBox.d.ts +40 -0
  162. package/dist/esm/types/src/components/Navigation/Breadcrumbs/Breadcrumbs.d.ts +33 -0
  163. package/dist/esm/types/src/components/Navigation/Calendar/Calendar.d.ts +63 -0
  164. package/dist/esm/types/src/components/Navigation/ConfirmDialog/ConfirmDialog.d.ts +64 -0
  165. package/dist/esm/types/src/components/Navigation/Dialog/Dialog.d.ts +55 -0
  166. package/dist/esm/types/src/components/Navigation/DialogButton/DialogButton.d.ts +64 -0
  167. package/dist/esm/types/src/components/Navigation/DropDownMenu/DropDownMenu.d.ts +73 -0
  168. package/dist/esm/types/src/components/Navigation/PreviewFiles/PreviewFiles.d.ts +54 -0
  169. package/dist/esm/types/src/components/Navigation/Stepper/Stepper.d.ts +55 -10
  170. package/dist/esm/types/src/components/Navigation/TabsContainer/TabsContainer.d.ts +85 -1
  171. package/dist/esm/types/src/components/Navigation/UploadDialog/UploadDialog.d.ts +64 -0
  172. package/dist/esm/types/src/shadcn-components/Input/Button/Button.d.ts +1 -1
  173. package/dist/index.d.ts +2961 -16
  174. package/dist/styles.css +30 -81
  175. package/package.json +1 -1
  176. package/src/components/Assets/ErrorPages/ComingSoon.tsx +24 -0
  177. package/src/components/Assets/ErrorPages/InternalServerError.tsx +20 -0
  178. package/src/components/Assets/ErrorPages/NoInternetConnection.tsx +20 -0
  179. package/src/components/Assets/ErrorPages/NoItemFound.tsx +28 -0
  180. package/src/components/Assets/ErrorPages/PageNotFound.tsx +21 -0
  181. package/src/components/Assets/ErrorPages/ResourceNotFound.tsx +21 -0
  182. package/src/components/Assets/ErrorPages/UnAuthorized.tsx +31 -0
  183. package/src/components/Assets/Icons/Icons.tsx +55 -1
  184. package/src/components/Charts/BarChart/BarChart.tsx +38 -0
  185. package/src/components/Charts/BarChart/HorizontalBarChart.tsx +93 -0
  186. package/src/components/Charts/BarChart/VerticalBarChart.tsx +110 -0
  187. package/src/components/Charts/LineChart/LineChart.tsx +89 -0
  188. package/src/components/Charts/PieChart/PieChart.tsx +86 -0
  189. package/src/components/Charts/TreeMap/TreeMap.tsx +90 -0
  190. package/src/components/DataDisplay/Accordion/Accordion.tsx +54 -0
  191. package/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.tsx +35 -0
  192. package/src/components/DataDisplay/ActivityLogView/ActivityLogView.tsx +84 -0
  193. package/src/components/DataDisplay/Avatar/Avatar.tsx +40 -0
  194. package/src/components/DataDisplay/Chip/Chip.tsx +28 -0
  195. package/src/components/DataDisplay/Chips/Chips.tsx +56 -0
  196. package/src/components/DataDisplay/DataTable/DataTable.tsx +109 -2
  197. package/src/components/DataDisplay/DataTable/components/CardsView.tsx +28 -13
  198. package/src/components/DataDisplay/DataTable/components/ColumnSelector/ColumnSelector.tsx +22 -4
  199. package/src/components/DataDisplay/DataTable/components/TableHeaders/TableActionHeader.tsx +9 -4
  200. package/src/components/DataDisplay/DataTable/components/TablePagination.tsx +35 -0
  201. package/src/components/DataDisplay/DataTable/components/TableView.tsx +5 -1
  202. package/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.tsx +31 -0
  203. package/src/components/DataDisplay/ReactJoyride/ReactJoyride.tsx +64 -0
  204. package/src/components/DataDisplay/Separator/Separator.tsx +32 -0
  205. package/src/components/DataDisplay/Skeleton/Skeleton.tsx +20 -0
  206. package/src/components/DataDisplay/StatusCard/StatusCard.tsx +36 -0
  207. package/src/components/DataDisplay/Timeline/Timeline.tsx +58 -0
  208. package/src/components/DataDisplay/Typography/Typography.tsx +25 -0
  209. package/src/components/Feedback/Alert/Alert.tsx +38 -0
  210. package/src/components/Feedback/Snackbar/Snackbar.tsx +54 -0
  211. package/src/components/Feedback/Spinner/Spinner.tsx +15 -0
  212. package/src/components/Feedback/Tooltip/Tooltip.tsx +54 -0
  213. package/src/components/Input/Button/Button.tsx +26 -0
  214. package/src/components/Input/DatePicker/DatePicker.tsx +41 -0
  215. package/src/components/Input/DateTimePicker/DateTimePicker.tsx +42 -0
  216. package/src/components/Input/FileUpload/FileUpload.tsx +41 -0
  217. package/src/components/Input/FormActions/FormActions.tsx +37 -0
  218. package/src/components/Input/FormControlWrapper/FormControlWrapper.tsx +31 -0
  219. package/src/components/Input/FormWrapper/FormWrapper.tsx +20 -0
  220. package/src/components/Input/HelpButton/HelpButton.tsx +14 -0
  221. package/src/components/Input/IconButtons/IconButtons/DeleteButton.tsx +16 -0
  222. package/src/components/Input/IconButtons/IconButtons/EditButton.tsx +16 -0
  223. package/src/components/Input/IconButtons/IconButtons/RedirectButton.tsx +16 -0
  224. package/src/components/Input/IconButtons/IconButtons/ViewButton.tsx +16 -0
  225. package/src/components/Input/IconButtons/IconButtons.tsx +18 -0
  226. package/src/components/Input/LabelWrapper/LabelWrapper.tsx +26 -0
  227. package/src/components/Input/MultiCheckBox/MultiCheckBox.tsx +34 -0
  228. package/src/components/Input/MultiSelect/MultiSelect.tsx +40 -0
  229. package/src/components/Input/OtpInput/OtpInput.tsx +29 -0
  230. package/src/components/Input/PasswordField/PasswordField.tsx +34 -0
  231. package/src/components/Input/RadioGroup/RadioGroup.tsx +38 -0
  232. package/src/components/Input/SearchBar/SearchBar.tsx +26 -0
  233. package/src/components/Input/Select/Select.tsx +41 -0
  234. package/src/components/Input/SingleCheckBox/SingleCheckBox.tsx +29 -0
  235. package/src/components/Input/SingleSelect/SingleSelect.tsx +40 -0
  236. package/src/components/Input/Switch/Switch.tsx +23 -0
  237. package/src/components/Input/Tags/Tags.tsx +26 -0
  238. package/src/components/Input/TextField/TextField.tsx +35 -0
  239. package/src/components/Input/Textarea/Textarea.tsx +36 -0
  240. package/src/components/Layout/AppLayout/AppLayout.tsx +34 -11
  241. package/src/components/Layout/AppLayout/components/MenuToggleButton.tsx +16 -0
  242. package/src/components/Layout/AppLayout/components/Sidebar/MenuBar.tsx +26 -0
  243. package/src/components/Layout/AppLayout/components/Sidebar/MenuItem.tsx +51 -1
  244. package/src/components/Layout/AppLayout/components/Sidebar/Sidebar.tsx +173 -104
  245. package/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.tsx +139 -9
  246. package/src/components/Layout/AppLayout/components/UserProfilePopup.tsx +35 -1
  247. package/src/components/Layout/AppLayout/context/SidebarContext.tsx +48 -0
  248. package/src/components/Layout/AppLayout/types.ts +1 -1
  249. package/src/components/Layout/PageContent/PageContent.tsx +23 -3
  250. package/src/components/Layout/PageHeader/PageHeader.tsx +68 -7
  251. package/src/components/Layout/PageHeader/components/SearchBar.tsx +22 -0
  252. package/src/components/Layout/UserBox/UserBox.tsx +40 -0
  253. package/src/components/Navigation/Breadcrumbs/Breadcrumbs.tsx +53 -4
  254. package/src/components/Navigation/Calendar/Calendar.tsx +63 -0
  255. package/src/components/Navigation/ConfirmDialog/ConfirmDialog.tsx +64 -0
  256. package/src/components/Navigation/Dialog/Dialog.tsx +62 -2
  257. package/src/components/Navigation/DialogButton/DialogButton.tsx +64 -0
  258. package/src/components/Navigation/DropDownMenu/DropDownMenu.tsx +73 -0
  259. package/src/components/Navigation/PreviewFiles/PreviewFiles.tsx +93 -0
  260. package/src/components/Navigation/Stepper/Stepper.tsx +56 -10
  261. package/src/components/Navigation/TabsContainer/TabsContainer.tsx +86 -1
  262. package/src/components/Navigation/UploadDialog/UploadDialog.tsx +64 -0
  263. package/src/shadcn-components/Layout/Sheet/Sheet.tsx +2 -2
@@ -12,8 +12,20 @@ import {
12
12
  useIntersectionObserver,
13
13
  } from './service';
14
14
 
15
+ /**
16
+ * Type for activity action
17
+ * @typedef {'create' | 'update' | 'delete'} ActivityAction
18
+ */
15
19
  export type ActivityAction = 'create' | 'update' | 'delete';
16
20
 
21
+ /**
22
+ * Interface for a single activity entry
23
+ * @typedef {Object} Activity
24
+ * @property {string} [userName] - Name of user who performed the action
25
+ * @property {ActivityAction} [action] - Type of action performed
26
+ * @property {string} message - Description or details of the activity
27
+ * @property {string} timestamp - ISO timestamp of when activity occurred
28
+ */
17
29
  export interface Activity {
18
30
  userName?: string;
19
31
  action?: ActivityAction;
@@ -21,6 +33,22 @@ export interface Activity {
21
33
  timestamp: string;
22
34
  }
23
35
 
36
+ /**
37
+ * Props for ActivityLogView component
38
+ * @typedef {Object} ActivityLogProps
39
+ * @property {Activity[]} activitiesData - Array of activities to display
40
+ * @property {boolean} isFetchingNextPage - Whether next page is being fetched
41
+ * @property {() => void} fetchNextPage - Callback to fetch next page
42
+ * @property {boolean | undefined} hasNextPage - Whether more activities exist
43
+ * @property {Date | null} fromDate - Filter start date
44
+ * @property {Date | null} toDate - Filter end date
45
+ * @property {(date: Date | null) => void} setFromDate - Update filter start date
46
+ * @property {(date: Date | null) => void} setToDate - Update filter end date
47
+ * @property {boolean} isLoading - Whether data is loading
48
+ * @property {boolean} [hideLogFilter] - Hide the date filter controls
49
+ * @property {string} [className] - CSS class for container
50
+ * @property {string} [title] - Title to display above activities
51
+ */
24
52
  interface ActivityLogProps {
25
53
  activitiesData: Activity[];
26
54
  isFetchingNextPage: boolean;
@@ -36,6 +64,12 @@ interface ActivityLogProps {
36
64
  title?: string;
37
65
  }
38
66
 
67
+ /**
68
+ * Get icon component for activity action type
69
+ * @param {ActivityAction} [action] - The action type
70
+ * @returns {JSX.Element} Icon component for the action
71
+ * @private
72
+ */
39
73
  const getActivityIcon = (action?: ActivityAction) => {
40
74
  const iconProps = { size: 16, className: 'text-foreground' };
41
75
  switch (action) {
@@ -50,6 +84,56 @@ const getActivityIcon = (action?: ActivityAction) => {
50
84
  }
51
85
  };
52
86
 
87
+ /**
88
+ * ActivityLogView component for displaying chronological activity feed
89
+ * Groups activities by date, supports filtering and infinite scroll
90
+ *
91
+ * @component
92
+ * @param {ActivityLogProps} props - Activity log configuration
93
+ * @param {Activity[]} props.activitiesData - Array of activity entries to display
94
+ * @param {boolean} props.isFetchingNextPage - Whether next page is loading
95
+ * @param {() => void} props.fetchNextPage - Callback to load more activities
96
+ * @param {boolean | undefined} props.hasNextPage - Whether more activities available
97
+ * @param {Date | null} props.fromDate - Filter start date (null = no limit)
98
+ * @param {Date | null} props.toDate - Filter end date (null = no limit)
99
+ * @param {(date: Date | null) => void} props.setFromDate - Update filter start date
100
+ * @param {(date: Date | null) => void} props.setToDate - Update filter end date
101
+ * @param {boolean} props.isLoading - Initial load state
102
+ * @param {boolean} [props.hideLogFilter=false] - Hide filter controls
103
+ * @param {string} [props.className] - CSS class for container
104
+ * @param {string} [props.title] - Title to display above log
105
+ * @returns {JSX.Element} Activity log with timeline, filtering, and infinite scroll
106
+ *
107
+ * @example
108
+ * // Activity log with filtering
109
+ * <ActivityLogView
110
+ * activitiesData={activities}
111
+ * isFetchingNextPage={loading}
112
+ * fetchNextPage={() => loadMore()}
113
+ * hasNextPage={true}
114
+ * fromDate={startDate}
115
+ * toDate={endDate}
116
+ * setFromDate={setStartDate}
117
+ * setToDate={setEndDate}
118
+ * isLoading={false}
119
+ * title="Activity Feed"
120
+ * />
121
+ *
122
+ * @example
123
+ * // Activity log without filter
124
+ * <ActivityLogView
125
+ * activitiesData={activities}
126
+ * isFetchingNextPage={loading}
127
+ * fetchNextPage={() => loadMore()}
128
+ * hasNextPage={true}
129
+ * fromDate={null}
130
+ * toDate={null}
131
+ * setFromDate={() => {}}
132
+ * setToDate={() => {}}
133
+ * isLoading={false}
134
+ * hideLogFilter
135
+ * />
136
+ */
53
137
  export const ActivityLogView = ({
54
138
  activitiesData,
55
139
  isFetchingNextPage,
@@ -6,6 +6,16 @@ import {
6
6
  } from '@/shadcn-components/DataDisplay/Avatar/Avatar';
7
7
  import { Typography } from '../Typography/Typography';
8
8
 
9
+ /**
10
+ * Props for CircularAvatar component
11
+ * @typedef {Object} CircularAvatarProps
12
+ * @property {string} text - Text to display as fallback initials (e.g., "John Doe" -> "JD")
13
+ * @property {string} [src] - Optional image source URL for the avatar
14
+ * @property {string} [alt] - Optional alt text for the avatar image
15
+ * @property {string} [className] - Optional CSS class for the avatar container
16
+ * @property {string} [fallbackClassName] - Optional CSS class for the fallback text
17
+ * @property {(e: React.MouseEvent<HTMLDivElement>) => void} [onClick] - Optional click handler
18
+ */
9
19
  export type CircularAvatarProps = {
10
20
  text: string;
11
21
  src?: string;
@@ -15,6 +25,36 @@ export type CircularAvatarProps = {
15
25
  onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
16
26
  };
17
27
 
28
+ /**
29
+ * Circular avatar component with image and fallback initials
30
+ * Extracts first letter from each word to create initials fallback
31
+ *
32
+ * @component
33
+ * @param {CircularAvatarProps} props - Avatar configuration
34
+ * @param {string} props.text - Text to extract initials from for fallback display
35
+ * @param {string} [props.src] - Image URL to display; falls back to initials if not provided
36
+ * @param {string} [props.alt] - Alternative text for image accessibility
37
+ * @param {string} [props.className] - Additional CSS classes for avatar wrapper
38
+ * @param {string} [props.fallbackClassName] - Additional CSS classes for fallback text display
39
+ * @param {(e: React.MouseEvent<HTMLDivElement>) => void} [props.onClick] - Handler called when avatar is clicked
40
+ * @returns {JSX.Element} Circular avatar with image or initials
41
+ *
42
+ * @example
43
+ * // Avatar with image
44
+ * <CircularAvatar
45
+ * text="John Doe"
46
+ * src="/path/to/avatar.jpg"
47
+ * alt="John's avatar"
48
+ * />
49
+ *
50
+ * @example
51
+ * // Avatar with fallback initials and click handler
52
+ * <CircularAvatar
53
+ * text="Jane Smith"
54
+ * onClick={(e) => openUserMenu(e)}
55
+ * className="border-2 border-blue-500"
56
+ * />
57
+ */
18
58
  export const CircularAvatar = ({
19
59
  text,
20
60
  src,
@@ -1,10 +1,38 @@
1
1
  import { Badge } from '@/shadcn-components/DataDisplay/Badge/Badge';
2
2
  import * as React from 'react';
3
3
 
4
+ /**
5
+ * Props for Chip component
6
+ * @typedef {Object} ChipProps
7
+ * @property {string} label - The text content displayed in the chip
8
+ * @extends {React.ComponentPropsWithoutRef<typeof Badge>}
9
+ */
4
10
  export interface ChipProps extends React.ComponentPropsWithoutRef<typeof Badge> {
5
11
  label: string;
6
12
  }
7
13
 
14
+ /**
15
+ * Chip component for displaying compact, labeled badges
16
+ * Wrapper around shadcn Badge component with simpler API
17
+ *
18
+ * @component
19
+ * @param {ChipProps} props - Chip configuration
20
+ * @param {string} props.label - Text to display in the chip
21
+ * @param {...React.ComponentPropsWithoutRef<typeof Badge>} [props] - Additional Badge props (variant, className, etc.)
22
+ * @returns {JSX.Element} Chip badge element
23
+ *
24
+ * @example
25
+ * // Basic chip
26
+ * <Chip label="JavaScript" />
27
+ *
28
+ * @example
29
+ * // Chip with custom variant
30
+ * <Chip
31
+ * label="Active"
32
+ * variant="default"
33
+ * className="bg-green-500"
34
+ * />
35
+ */
8
36
  export const Chip = ({ label, ...rest }: ChipProps) => {
9
37
  return <Badge {...rest}>{label}</Badge>;
10
38
  };
@@ -2,6 +2,23 @@ import { cn } from '@/lib/utils';
2
2
  import { Badge } from '@/shadcn-components/DataDisplay/Badge/Badge';
3
3
  import { ReactNode, useEffect, useState } from 'react';
4
4
 
5
+ /**
6
+ * Props for individual chip item
7
+ * @typedef {Object} ChipItem
8
+ * @property {string | ReactNode} label - Display label for the chip
9
+ * @property {string | number} value - Unique value identifier for the chip
10
+ */
11
+
12
+ /**
13
+ * Props for Chips component (multi/single selection)
14
+ * @typedef {Object} ChipsProps
15
+ * @property {{ label: string | ReactNode; value: string | number }[]} list - Array of chip items
16
+ * @property {string[] | string | number} selected - Currently selected value(s)
17
+ * @property {(selected: string[] | string | number) => void} onSelected - Callback when selection changes
18
+ * @property {'row' | 'column'} [direction='row'] - Layout direction for chips
19
+ * @property {boolean} [singleSelection=true] - Enable single or multiple selection
20
+ * @property {boolean} [toggle=false] - Allow toggling selection off
21
+ */
5
22
  interface ChipsProps {
6
23
  list: { label: string | ReactNode; value: string | number }[];
7
24
  selected: string[] | string | number;
@@ -11,6 +28,45 @@ interface ChipsProps {
11
28
  toggle?: boolean;
12
29
  }
13
30
 
31
+ /**
32
+ * Chips component for single or multi-select chip groups
33
+ * Renders interactive chips with toggle/selection capabilities
34
+ *
35
+ * @component
36
+ * @param {ChipsProps} props - Chips configuration
37
+ * @param {{ label: string | ReactNode; value: string | number }[]} props.list - Array of chip options
38
+ * @param {string[] | string | number} props.selected - Current selected value(s)
39
+ * @param {(selected: string[] | string | number) => void} props.onSelected - Callback fired when selection changes
40
+ * @param {'row' | 'column'} [props.direction='row'] - Flex direction for chip layout
41
+ * @param {boolean} [props.singleSelection=true] - If true, only one chip can be selected at a time
42
+ * @param {boolean} [props.toggle=false] - If true, clicking selected chip deselects it (only in singleSelection mode)
43
+ * @returns {JSX.Element} Interactive chip group
44
+ *
45
+ * @example
46
+ * // Single selection chips
47
+ * <Chips
48
+ * list={[
49
+ * { label: "Option 1", value: "opt1" },
50
+ * { label: "Option 2", value: "opt2" }
51
+ * ]}
52
+ * selected="opt1"
53
+ * onSelected={(value) => setSelected(value)}
54
+ * />
55
+ *
56
+ * @example
57
+ * // Multi-selection chips with column layout
58
+ * <Chips
59
+ * list={[
60
+ * { label: "JavaScript", value: "js" },
61
+ * { label: "TypeScript", value: "ts" },
62
+ * { label: "Python", value: "py" }
63
+ * ]}
64
+ * selected={["js", "ts"]}
65
+ * onSelected={(values) => setTags(values)}
66
+ * singleSelection={false}
67
+ * direction="column"
68
+ * />
69
+ */
14
70
  export const Chips = ({
15
71
  list = [],
16
72
  selected: _selected,
@@ -26,6 +26,39 @@ import {
26
26
  processColumnsForSorting,
27
27
  } from './components/utils';
28
28
 
29
+ /**
30
+ * Props for the DataTable component
31
+ * @typedef {Object} DataTableProps
32
+ * @template TData - Type of data in table rows
33
+ *
34
+ * @property {number} [limit] - Number of rows per page for pagination
35
+ * @property {number} [offset] - Current page offset for pagination
36
+ * @property {number} [totalCount] - Total number of records in dataset
37
+ * @property {(page: number) => void} [onPageChange] - Callback when page changes
38
+ * @property {(limit: number) => void} [onLimitChange] - Callback when page limit changes
39
+ * @property {ColumnDef<TData, any>[]} columns - Column definitions for the table
40
+ * @property {TData[]} rows - Array of data rows to display
41
+ * @property {'standard' | 'compact' | 'comfortable'} [density='standard'] - Row height density
42
+ * @property {{ [x: string]: boolean }} [columnVisibilityModel] - Column visibility state
43
+ * @property {boolean} [isLoading=false] - Whether table is loading
44
+ * @property {boolean} [checkboxSelection=false] - Enable row checkboxes
45
+ * @property {Record<string, boolean>} [rowSelectionModel={}] - Selected rows state
46
+ * @property {(newRowSelectionModel: Record<string, boolean>) => void} [onRowSelectionModelChange] - Selection change callback
47
+ * @property {React.ReactNode[]} [selectionActions] - Actions to show when rows selected
48
+ * @property {(params: { row: Row<TData> }) => void} [onRowClick] - Row click handler
49
+ * @property {boolean} [enableSorting=false] - Enable column sorting
50
+ * @property {SortingState} [sortingState] - Current sorting state
51
+ * @property {(newSortingState: SortingState) => void} [onSortingChange] - Sorting change callback
52
+ * @property {boolean} [hideTableActionHeader] - Hide the action header
53
+ * @property {Object} [tableActionProps] - Table action header configuration
54
+ * @property {(row: TData, index: number) => React.ReactNode} [card] - Render function for card layout items
55
+ * @property {string} [className] - CSS class for wrapper
56
+ * @property {string} [tableClassName] - CSS class for table element
57
+ * @property {string} [headerClassName] - CSS class for header row
58
+ * @property {string | ((row: Row<TData>) => string)} [rowClassName] - CSS class for data rows
59
+ * @property {string} [cellClassName] - CSS class for cells
60
+ * @property {string} [cardContainerClassName] - CSS class for card container
61
+ */
29
62
  type DataTableProps<TData = any> = {
30
63
  // Pagination props
31
64
  limit?: number;
@@ -70,7 +103,7 @@ type DataTableProps<TData = any> = {
70
103
  };
71
104
 
72
105
  // Card view props
73
- cards: React.ReactNode[];
106
+ card?: (row: TData, index: number) => React.ReactNode;
74
107
 
75
108
  // Optional customization
76
109
  className?: string;
@@ -81,6 +114,68 @@ type DataTableProps<TData = any> = {
81
114
  cardContainerClassName?: string;
82
115
  };
83
116
 
117
+ /**
118
+ * DataTable component for displaying tabular data with advanced features
119
+ * Supports sorting, filtering, pagination, row selection, and card view layout
120
+ *
121
+ * @component
122
+ * @template TData - Type of data in table rows
123
+ * @param {DataTableProps<TData>} props - DataTable configuration
124
+ * @param {ColumnDef<TData, any>[]} props.columns - TanStack table column definitions
125
+ * @param {TData[]} props.rows - Array of data rows
126
+ * @param {number} [props.limit] - Rows per page (enables pagination)
127
+ * @param {number} [props.offset] - Page offset
128
+ * @param {number} [props.totalCount] - Total row count for pagination
129
+ * @param {(page: number) => void} [props.onPageChange] - Page change handler
130
+ * @param {(limit: number) => void} [props.onLimitChange] - Page limit change handler
131
+ * @param {'standard' | 'compact' | 'comfortable'} [props.density='standard'] - Row height
132
+ * @param {boolean} [props.checkboxSelection] - Show row selection checkboxes
133
+ * @param {Record<string, boolean>} [props.rowSelectionModel] - Selected rows
134
+ * @param {(newRowSelectionModel: Record<string, boolean>) => void} [props.onRowSelectionModelChange] - Selection changed callback
135
+ * @param {React.ReactNode[]} [props.selectionActions] - Actions when rows selected
136
+ * @param {(params: { row: Row<TData> }) => void} [props.onRowClick] - Row clicked callback
137
+ * @param {boolean} [props.enableSorting] - Enable column sorting
138
+ * @param {SortingState} [props.sortingState] - Current sort state
139
+ * @param {(newSortingState: SortingState) => void} [props.onSortingChange] - Sort changed callback
140
+ * @param {boolean} [props.isLoading] - Show loading skeletons
141
+ * @param {boolean} [props.hideTableActionHeader] - Hide action header
142
+ * @param {Object} [props.tableActionProps] - Table action configuration
143
+ * @param {(row: TData, index: number) => React.ReactNode} [props.card] - Card render function
144
+ * @param {string} [props.className] - Wrapper CSS class
145
+ * @param {string} [props.tableClassName] - Table CSS class
146
+ * @param {string} [props.headerClassName] - Header CSS class
147
+ * @param {string | ((row: Row<TData>) => string)} [props.rowClassName] - Row CSS class
148
+ * @param {string} [props.cellClassName] - Cell CSS class
149
+ * @param {string} [props.cardContainerClassName] - Card container CSS class
150
+ * @returns {JSX.Element} Data table with optional pagination, sorting, and selection
151
+ *
152
+ * @example
153
+ * // Basic table
154
+ * <DataTable
155
+ * columns={columns}
156
+ * rows={data}
157
+ * limit={10}
158
+ * offset={0}
159
+ * totalCount={100}
160
+ * />
161
+ *
162
+ * @example
163
+ * // Table with selection and sorting
164
+ * <DataTable
165
+ * columns={columns}
166
+ * rows={data}
167
+ * checkboxSelection
168
+ * rowSelectionModel={selected}
169
+ * onRowSelectionModelChange={setSelected}
170
+ * enableSorting
171
+ * sortingState={sorting}
172
+ * onSortingChange={setSorting}
173
+ * limit={20}
174
+ * offset={page * 20}
175
+ * totalCount={total}
176
+ * onPageChange={(offset) => setPage(offset / 20)}
177
+ * />
178
+ */
84
179
  const DataTable = <TData extends Record<string, any> = any>(
85
180
  props: DataTableProps<TData>,
86
181
  ) => {
@@ -277,7 +372,19 @@ const DataTable = <TData extends Record<string, any> = any>(
277
372
  )}
278
373
 
279
374
  {layoutMode === 'card' ? (
280
- <CardsView {...props} />
375
+ <CardsView
376
+ card={props.card}
377
+ rows={rows}
378
+ cardContainerClassName={props.cardContainerClassName}
379
+ limit={limit}
380
+ offset={offset}
381
+ totalCount={totalCount}
382
+ onPageChange={onPageChange}
383
+ onLimitChange={onLimitChange}
384
+ isLoading={isLoading}
385
+ rowSelectionModel={rowSelectionModel}
386
+ onRowSelectionModelChange={onRowSelectionModelChange}
387
+ />
281
388
  ) : (
282
389
  <TableView
283
390
  table={table}
@@ -2,11 +2,27 @@ import { cn } from '@/lib/utils';
2
2
  import { Card } from '@/shadcn-components/DataDisplay/Card/Card';
3
3
  import { Typography } from '@/shadcn-components/DataDisplay/Typography/Typography';
4
4
  import { Skeleton } from '../../Skeleton/Skeleton';
5
- import { DataTableProps } from '../DataTable';
6
5
  import { TablePagination } from './TablePagination';
7
6
 
7
+ type CardsViewProps<TData = any> = {
8
+ card?: (row: TData, index: number) => React.ReactNode;
9
+ rows: TData[];
10
+ cardContainerClassName?: string;
11
+ isLoading?: boolean;
12
+ limit?: number;
13
+ offset?: number;
14
+ totalCount?: number;
15
+ onPageChange?: (page: number) => void;
16
+ onLimitChange?: (limit: number) => void;
17
+ rowSelectionModel?: Record<string, boolean>;
18
+ onRowSelectionModelChange?: (
19
+ newRowSelectionModel: Record<string, boolean>,
20
+ ) => void;
21
+ };
22
+
8
23
  const CardsView = <TData extends Record<string, any> = any>({
9
- cards,
24
+ card,
25
+ rows,
10
26
  cardContainerClassName = '',
11
27
  limit,
12
28
  offset,
@@ -14,7 +30,7 @@ const CardsView = <TData extends Record<string, any> = any>({
14
30
  onPageChange,
15
31
  onLimitChange,
16
32
  isLoading,
17
- }: DataTableProps<TData>) => {
33
+ }: CardsViewProps<TData>) => {
18
34
  return (
19
35
  <Card
20
36
  className={cn('w-full rounded-md border bg-background p-0 m-0 gap-0')}
@@ -22,7 +38,7 @@ const CardsView = <TData extends Record<string, any> = any>({
22
38
  <Typography
23
39
  className="border-b p-3 bg-secondary text-muted-foreground"
24
40
  variant={'small'}
25
- >{`Showing ${cards?.length} cards`}</Typography>
41
+ >{`Showing ${rows?.length} cards`}</Typography>
26
42
  <div
27
43
  className={cn(
28
44
  'grid gap-2 p-3',
@@ -36,21 +52,20 @@ const CardsView = <TData extends Record<string, any> = any>({
36
52
  >
37
53
  {isLoading ? (
38
54
  Array.from({ length: 8 }).map((_, index) => (
39
- <div key={`skeleton-card-${index}`} className="flex flex-col h-full gap-3">
55
+ <div
56
+ key={`skeleton-card-${index}`}
57
+ className="flex flex-col h-full gap-3"
58
+ >
40
59
  <Skeleton className="h-40 w-full rounded-lg" />
41
60
  <Skeleton className="h-4 w-3/4" />
42
61
  <Skeleton className="h-4 w-1/2" />
43
62
  </div>
44
63
  ))
45
- ) : cards && cards.length > 0 ? (
46
- cards.map((card, index) => (
47
- <div key={index} className={cn('flex flex-col', 'h-full')}>
48
- {card}
49
- </div>
50
- ))
64
+ ) : card && rows && rows.length > 0 ? (
65
+ rows.map((row, index) => card(row, index))
51
66
  ) : (
52
67
  <div className="col-span-full p-4 text-center border rounded-md">
53
- <p className="text-muted-foreground">No cards available</p>
68
+ <p className="text-muted-foreground">No items available</p>
54
69
  </div>
55
70
  )}
56
71
  </div>
@@ -66,7 +81,7 @@ const CardsView = <TData extends Record<string, any> = any>({
66
81
  totalCount={totalCount}
67
82
  onPageChange={onPageChange}
68
83
  onLimitChange={onLimitChange}
69
- rowCount={cards?.length || 0}
84
+ rowCount={rows?.length || 0}
70
85
  />
71
86
  )}
72
87
  </Card>
@@ -48,6 +48,16 @@ const ColumnSelector: React.FC<ColumnSelectorProps> = ({
48
48
  );
49
49
  };
50
50
 
51
+ const handleClearAllHidden = () => {
52
+ // Clear all hidden columns by resetting to empty object
53
+ dispatch(
54
+ setColumnVisibilityModelForUniqueId({
55
+ uniqueId,
56
+ columnVisibilityModel: {},
57
+ }),
58
+ );
59
+ };
60
+
51
61
  return (
52
62
  <DropdownMenu
53
63
  anchor={({ open }) => (
@@ -55,8 +65,8 @@ const ColumnSelector: React.FC<ColumnSelectorProps> = ({
55
65
  <Columns3 size={16} />
56
66
  </Button>
57
67
  )}
58
- menu={() =>
59
- visibleColumns.map((column) => {
68
+ menu={() => [
69
+ ...visibleColumns.map((column) => {
60
70
  // React Table uses accessorKey as the column ID if no explicit id is set
61
71
  const columnId = column.id || (column as any).accessorKey || '';
62
72
  if (!columnId) return null;
@@ -88,8 +98,16 @@ const ColumnSelector: React.FC<ColumnSelectorProps> = ({
88
98
  )}
89
99
  </div>
90
100
  );
91
- })
92
- }
101
+ }),
102
+ <Button
103
+ variant={'link'}
104
+ size={'sm'}
105
+ className="text-destructive hover:no-underline"
106
+ onClick={handleClearAllHidden}
107
+ >
108
+ Clear
109
+ </Button>,
110
+ ]}
93
111
  />
94
112
  );
95
113
  };
@@ -95,10 +95,15 @@ const TableActionHeader = ({
95
95
  </div>
96
96
 
97
97
  <div className="flex items-center gap-2">
98
- {/* Density Selector */}
99
- <DensitySelector uniqueId={uniqueId} />
100
- {/* Column Selector */}
101
- <ColumnSelector columns={columns} uniqueId={uniqueId} />
98
+ {layoutMode === 'table' && (
99
+ <>
100
+ {' '}
101
+ {/* Density Selector */}
102
+ <DensitySelector uniqueId={uniqueId} />
103
+ {/* Column Selector */}
104
+ <ColumnSelector columns={columns} uniqueId={uniqueId} />
105
+ </>
106
+ )}
102
107
  {/* Layout Switcher */}
103
108
  <div className="flex gap-1 border rounded-md flex-shrink-0 bg-background">
104
109
  <Button
@@ -14,6 +14,16 @@ import { DropdownMenu } from '../../../Navigation/DropDownMenu/DropDownMenu';
14
14
  import { DropdownMenuItem } from '../../../Navigation/DropDownMenu/DropdownMenuItem';
15
15
  import { Typography } from '../../Typography/Typography';
16
16
 
17
+ /**
18
+ * Props for TablePagination component
19
+ * @typedef {Object} PaginationProps
20
+ * @property {number} limit - Number of rows per page
21
+ * @property {number} offset - Current page offset (0-indexed)
22
+ * @property {number} totalCount - Total number of records
23
+ * @property {(offset: number) => void} onPageChange - Callback when page changes
24
+ * @property {(limit: number) => void} onLimitChange - Callback when page limit changes
25
+ * @property {number} rowCount - Number of rows in current page
26
+ */
17
27
  export type PaginationProps = {
18
28
  limit: number;
19
29
  offset: number;
@@ -23,6 +33,31 @@ export type PaginationProps = {
23
33
  rowCount: number;
24
34
  };
25
35
 
36
+ /**
37
+ * TablePagination component for controlling data table pagination
38
+ * Displays page numbers, navigation arrows, row count, and page limit selector
39
+ *
40
+ * @component
41
+ * @param {PaginationProps} props - Pagination configuration
42
+ * @param {number} props.limit - Rows per page
43
+ * @param {number} props.offset - Current page offset
44
+ * @param {number} props.totalCount - Total records in dataset
45
+ * @param {(offset: number) => void} props.onPageChange - Handler for page navigation
46
+ * @param {(limit: number) => void} props.onLimitChange - Handler for limit changes
47
+ * @param {number} props.rowCount - Current page row count
48
+ * @returns {JSX.Element} Pagination controls with page selector and limit dropdown
49
+ *
50
+ * @example
51
+ * // Pagination with 20 rows per page
52
+ * <TablePagination
53
+ * limit={20}
54
+ * offset={0}
55
+ * totalCount={150}
56
+ * rowCount={20}
57
+ * onPageChange={(offset) => setOffset(offset)}
58
+ * onLimitChange={(limit) => setLimit(limit)}
59
+ * />
60
+ */
26
61
  export const TablePagination = (props: PaginationProps) => {
27
62
  const { limit, offset, totalCount, onPageChange, onLimitChange, rowCount } =
28
63
  props;
@@ -167,7 +167,11 @@ const TableView = React.forwardRef<HTMLDivElement, TableViewProps>(
167
167
  <TableRow
168
168
  key={row.id}
169
169
  data-state={row.getIsSelected() && 'selected'}
170
- className={cn(rowHeightClass, customRowClassName)}
170
+ className={cn(
171
+ rowHeightClass,
172
+ customRowClassName,
173
+ onRowClick && 'cursor-pointer',
174
+ )}
171
175
  onClick={() => onRowClick?.({ row })}
172
176
  >
173
177
  {row.getVisibleCells().map((cell: any, index: number) => (
@@ -5,6 +5,37 @@ import {
5
5
  TypographyProps,
6
6
  } from '../../DataDisplay/Typography/Typography';
7
7
 
8
+ /**
9
+ * Props for EmptyIllustration component
10
+ * @typedef {Object} EmptyIllustrationProps
11
+ * @property {string} message - Text message displayed below the empty illustration
12
+ * @property {TypographyProps} [messageProps] - Typography props for styling the message text
13
+ * @property {string} [containerClassName] - CSS class for the container div
14
+ */
15
+
16
+ /**
17
+ * EmptyIllustration component for displaying empty state messaging
18
+ * Shows decorative empty state icon with customizable message
19
+ *
20
+ * @component
21
+ * @param {Object} props - Component props
22
+ * @param {string} props.message - Text message to display below illustration
23
+ * @param {TypographyProps} [props.messageProps] - Typography styling props (variant, className, etc.)
24
+ * @param {string} [props.containerClassName] - Additional CSS classes for the container
25
+ * @returns {JSX.Element} Empty state illustration with message
26
+ *
27
+ * @example
28
+ * // Basic empty state
29
+ * <EmptyIllustration message="No data found" />
30
+ *
31
+ * @example
32
+ * // With custom styling
33
+ * <EmptyIllustration
34
+ * message="No search results match your criteria"
35
+ * messageProps={{ variant: "p", className: "text-gray-600" }}
36
+ * containerClassName="py-12"
37
+ * />
38
+ */
8
39
  export const EmptyIllustration = ({
9
40
  message,
10
41
  messageProps,