@campxdev/react-blueprint 3.0.0-alpha.4 → 3.0.0-alpha.6

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 (289) 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 +95 -0
  23. package/dist/cjs/types/src/components/DataDisplay/DataTable/components/TablePagination.d.ts +35 -0
  24. package/dist/cjs/types/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.d.ts +30 -0
  25. package/dist/cjs/types/src/components/DataDisplay/ReactJoyride/ReactJoyride.d.ts +64 -0
  26. package/dist/cjs/types/src/components/DataDisplay/Separator/Separator.d.ts +30 -0
  27. package/dist/cjs/types/src/components/DataDisplay/Skeleton/Skeleton.d.ts +20 -0
  28. package/dist/cjs/types/src/components/DataDisplay/StatusCard/StatusCard.d.ts +36 -0
  29. package/dist/cjs/types/src/components/DataDisplay/Timeline/Timeline.d.ts +58 -0
  30. package/dist/cjs/types/src/components/DataDisplay/Typography/Typography.d.ts +25 -0
  31. package/dist/cjs/types/src/components/Feedback/Alert/Alert.d.ts +31 -0
  32. package/dist/cjs/types/src/components/Feedback/Snackbar/Snackbar.d.ts +54 -0
  33. package/dist/cjs/types/src/components/Feedback/Spinner/Spinner.d.ts +15 -0
  34. package/dist/cjs/types/src/components/Feedback/Tooltip/Tooltip.d.ts +54 -0
  35. package/dist/cjs/types/src/components/Input/Button/Button.d.ts +26 -0
  36. package/dist/cjs/types/src/components/Input/DatePicker/DatePicker.d.ts +43 -1
  37. package/dist/cjs/types/src/components/Input/DatePicker/components/DatePickerFilter.d.ts +2 -0
  38. package/dist/cjs/types/src/components/Input/DatePicker/components/DatePickerInput.d.ts +2 -0
  39. package/dist/cjs/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +44 -1
  40. package/dist/cjs/types/src/components/Input/DateTimePicker/components/DateTimePickerFilter.d.ts +2 -0
  41. package/dist/cjs/types/src/components/Input/DateTimePicker/components/DateTimePickerInput.d.ts +2 -0
  42. package/dist/cjs/types/src/components/Input/FileUpload/FileUpload.d.ts +41 -0
  43. package/dist/cjs/types/src/components/Input/FormActions/FormActions.d.ts +37 -0
  44. package/dist/cjs/types/src/components/Input/FormControlWrapper/FormControlWrapper.d.ts +31 -0
  45. package/dist/cjs/types/src/components/Input/FormWrapper/FormWrapper.d.ts +20 -0
  46. package/dist/cjs/types/src/components/Input/HelpButton/HelpButton.d.ts +14 -0
  47. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/DeleteButton.d.ts +16 -0
  48. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/EditButton.d.ts +16 -0
  49. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/RedirectButton.d.ts +16 -0
  50. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/ViewButton.d.ts +16 -0
  51. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons.d.ts +18 -0
  52. package/dist/cjs/types/src/components/Input/LabelWrapper/LabelWrapper.d.ts +26 -0
  53. package/dist/cjs/types/src/components/Input/MultiCheckBox/MultiCheckBox.d.ts +34 -0
  54. package/dist/cjs/types/src/components/Input/MultiSelect/MultiSelect.d.ts +42 -0
  55. package/dist/cjs/types/src/components/Input/MultiSelect/components/MultiSelectFilter.d.ts +1 -1
  56. package/dist/cjs/types/src/components/Input/MultiSelect/components/MultiSelectInput.d.ts +1 -1
  57. package/dist/cjs/types/src/components/Input/OtpInput/OtpInput.d.ts +29 -0
  58. package/dist/cjs/types/src/components/Input/PasswordField/PasswordField.d.ts +34 -0
  59. package/dist/cjs/types/src/components/Input/RadioGroup/RadioGroup.d.ts +38 -0
  60. package/dist/cjs/types/src/components/Input/SearchBar/SearchBar.d.ts +26 -0
  61. package/dist/cjs/types/src/components/Input/Select/Select.d.ts +34 -1
  62. package/dist/cjs/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
  63. package/dist/cjs/types/src/components/Input/SingleSelect/SingleSelect.d.ts +42 -0
  64. package/dist/cjs/types/src/components/Input/SingleSelect/components/SingleFilter.d.ts +1 -1
  65. package/dist/cjs/types/src/components/Input/SingleSelect/components/SingleInput.d.ts +1 -1
  66. package/dist/cjs/types/src/components/Input/Switch/Switch.d.ts +23 -0
  67. package/dist/cjs/types/src/components/Input/Tags/Tags.d.ts +26 -0
  68. package/dist/cjs/types/src/components/Input/TextField/TextField.d.ts +35 -0
  69. package/dist/cjs/types/src/components/Input/Textarea/Textarea.d.ts +36 -0
  70. package/dist/cjs/types/src/components/Layout/AppLayout/AppLayout.d.ts +32 -0
  71. package/dist/cjs/types/src/components/Layout/AppLayout/components/MenuToggleButton.d.ts +16 -0
  72. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/MenuBar.d.ts +26 -0
  73. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/MenuItem.d.ts +37 -0
  74. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/Sidebar.d.ts +30 -1
  75. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.d.ts +139 -0
  76. package/dist/cjs/types/src/components/Layout/AppLayout/components/UserProfilePopup.d.ts +34 -0
  77. package/dist/cjs/types/src/components/Layout/AppLayout/context/SidebarContext.d.ts +48 -0
  78. package/dist/cjs/types/src/components/Layout/AppLayout/types.d.ts +1 -1
  79. package/dist/cjs/types/src/components/Layout/PageContent/PageContent.d.ts +19 -0
  80. package/dist/cjs/types/src/components/Layout/PageHeader/PageHeader.d.ts +46 -0
  81. package/dist/cjs/types/src/components/Layout/PageHeader/components/SearchBar.d.ts +22 -0
  82. package/dist/cjs/types/src/components/Layout/UserBox/UserBox.d.ts +40 -0
  83. package/dist/cjs/types/src/components/Navigation/Breadcrumbs/Breadcrumbs.d.ts +33 -0
  84. package/dist/cjs/types/src/components/Navigation/Calendar/Calendar.d.ts +63 -0
  85. package/dist/cjs/types/src/components/Navigation/ConfirmDialog/ConfirmDialog.d.ts +64 -0
  86. package/dist/cjs/types/src/components/Navigation/Dialog/Dialog.d.ts +55 -0
  87. package/dist/cjs/types/src/components/Navigation/DialogButton/DialogButton.d.ts +64 -0
  88. package/dist/cjs/types/src/components/Navigation/DropDownMenu/DropDownMenu.d.ts +73 -0
  89. package/dist/cjs/types/src/components/Navigation/PreviewFiles/PreviewFiles.d.ts +54 -0
  90. package/dist/cjs/types/src/components/Navigation/Stepper/Stepper.d.ts +55 -10
  91. package/dist/cjs/types/src/components/Navigation/TabsContainer/TabsContainer.d.ts +80 -0
  92. package/dist/cjs/types/src/components/Navigation/UploadDialog/UploadDialog.d.ts +64 -0
  93. package/dist/cjs/types/src/shadcn-components/Input/Select/Select.d.ts +2 -2
  94. package/dist/esm/index.js +2 -2
  95. package/dist/esm/types/src/components/Assets/ErrorPages/ComingSoon.d.ts +24 -0
  96. package/dist/esm/types/src/components/Assets/ErrorPages/InternalServerError.d.ts +20 -0
  97. package/dist/esm/types/src/components/Assets/ErrorPages/NoInternetConnection.d.ts +20 -0
  98. package/dist/esm/types/src/components/Assets/ErrorPages/NoItemFound.d.ts +28 -0
  99. package/dist/esm/types/src/components/Assets/ErrorPages/PageNotFound.d.ts +21 -0
  100. package/dist/esm/types/src/components/Assets/ErrorPages/ResourceNotFound.d.ts +21 -0
  101. package/dist/esm/types/src/components/Assets/ErrorPages/UnAuthorized.d.ts +31 -0
  102. package/dist/esm/types/src/components/Assets/Icons/Icons.d.ts +54 -0
  103. package/dist/esm/types/src/components/Charts/BarChart/BarChart.d.ts +38 -0
  104. package/dist/esm/types/src/components/Charts/BarChart/HorizontalBarChart.d.ts +93 -0
  105. package/dist/esm/types/src/components/Charts/BarChart/VerticalBarChart.d.ts +110 -0
  106. package/dist/esm/types/src/components/Charts/LineChart/LineChart.d.ts +89 -0
  107. package/dist/esm/types/src/components/Charts/PieChart/PieChart.d.ts +86 -0
  108. package/dist/esm/types/src/components/Charts/TreeMap/TreeMap.d.ts +74 -0
  109. package/dist/esm/types/src/components/DataDisplay/Accordion/Accordion.d.ts +54 -0
  110. package/dist/esm/types/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.d.ts +35 -0
  111. package/dist/esm/types/src/components/DataDisplay/ActivityLogView/ActivityLogView.d.ts +78 -0
  112. package/dist/esm/types/src/components/DataDisplay/Avatar/Avatar.d.ts +40 -0
  113. package/dist/esm/types/src/components/DataDisplay/Chip/Chip.d.ts +28 -0
  114. package/dist/esm/types/src/components/DataDisplay/Chips/Chips.d.ts +55 -0
  115. package/dist/esm/types/src/components/DataDisplay/DataTable/DataTable.d.ts +95 -0
  116. package/dist/esm/types/src/components/DataDisplay/DataTable/components/TablePagination.d.ts +35 -0
  117. package/dist/esm/types/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.d.ts +30 -0
  118. package/dist/esm/types/src/components/DataDisplay/ReactJoyride/ReactJoyride.d.ts +64 -0
  119. package/dist/esm/types/src/components/DataDisplay/Separator/Separator.d.ts +30 -0
  120. package/dist/esm/types/src/components/DataDisplay/Skeleton/Skeleton.d.ts +20 -0
  121. package/dist/esm/types/src/components/DataDisplay/StatusCard/StatusCard.d.ts +36 -0
  122. package/dist/esm/types/src/components/DataDisplay/Timeline/Timeline.d.ts +58 -0
  123. package/dist/esm/types/src/components/DataDisplay/Typography/Typography.d.ts +25 -0
  124. package/dist/esm/types/src/components/Feedback/Alert/Alert.d.ts +31 -0
  125. package/dist/esm/types/src/components/Feedback/Snackbar/Snackbar.d.ts +54 -0
  126. package/dist/esm/types/src/components/Feedback/Spinner/Spinner.d.ts +15 -0
  127. package/dist/esm/types/src/components/Feedback/Tooltip/Tooltip.d.ts +54 -0
  128. package/dist/esm/types/src/components/Input/Button/Button.d.ts +26 -0
  129. package/dist/esm/types/src/components/Input/DatePicker/DatePicker.d.ts +43 -1
  130. package/dist/esm/types/src/components/Input/DatePicker/components/DatePickerFilter.d.ts +2 -0
  131. package/dist/esm/types/src/components/Input/DatePicker/components/DatePickerInput.d.ts +2 -0
  132. package/dist/esm/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +44 -1
  133. package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerFilter.d.ts +2 -0
  134. package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerInput.d.ts +2 -0
  135. package/dist/esm/types/src/components/Input/FileUpload/FileUpload.d.ts +41 -0
  136. package/dist/esm/types/src/components/Input/FormActions/FormActions.d.ts +37 -0
  137. package/dist/esm/types/src/components/Input/FormControlWrapper/FormControlWrapper.d.ts +31 -0
  138. package/dist/esm/types/src/components/Input/FormWrapper/FormWrapper.d.ts +20 -0
  139. package/dist/esm/types/src/components/Input/HelpButton/HelpButton.d.ts +14 -0
  140. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/DeleteButton.d.ts +16 -0
  141. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/EditButton.d.ts +16 -0
  142. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/RedirectButton.d.ts +16 -0
  143. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/ViewButton.d.ts +16 -0
  144. package/dist/esm/types/src/components/Input/IconButtons/IconButtons.d.ts +18 -0
  145. package/dist/esm/types/src/components/Input/LabelWrapper/LabelWrapper.d.ts +26 -0
  146. package/dist/esm/types/src/components/Input/MultiCheckBox/MultiCheckBox.d.ts +34 -0
  147. package/dist/esm/types/src/components/Input/MultiSelect/MultiSelect.d.ts +42 -0
  148. package/dist/esm/types/src/components/Input/MultiSelect/components/MultiSelectFilter.d.ts +1 -1
  149. package/dist/esm/types/src/components/Input/MultiSelect/components/MultiSelectInput.d.ts +1 -1
  150. package/dist/esm/types/src/components/Input/OtpInput/OtpInput.d.ts +29 -0
  151. package/dist/esm/types/src/components/Input/PasswordField/PasswordField.d.ts +34 -0
  152. package/dist/esm/types/src/components/Input/RadioGroup/RadioGroup.d.ts +38 -0
  153. package/dist/esm/types/src/components/Input/SearchBar/SearchBar.d.ts +26 -0
  154. package/dist/esm/types/src/components/Input/Select/Select.d.ts +34 -1
  155. package/dist/esm/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
  156. package/dist/esm/types/src/components/Input/SingleSelect/SingleSelect.d.ts +42 -0
  157. package/dist/esm/types/src/components/Input/SingleSelect/components/SingleFilter.d.ts +1 -1
  158. package/dist/esm/types/src/components/Input/SingleSelect/components/SingleInput.d.ts +1 -1
  159. package/dist/esm/types/src/components/Input/Switch/Switch.d.ts +23 -0
  160. package/dist/esm/types/src/components/Input/Tags/Tags.d.ts +26 -0
  161. package/dist/esm/types/src/components/Input/TextField/TextField.d.ts +35 -0
  162. package/dist/esm/types/src/components/Input/Textarea/Textarea.d.ts +36 -0
  163. package/dist/esm/types/src/components/Layout/AppLayout/AppLayout.d.ts +32 -0
  164. package/dist/esm/types/src/components/Layout/AppLayout/components/MenuToggleButton.d.ts +16 -0
  165. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/MenuBar.d.ts +26 -0
  166. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/MenuItem.d.ts +37 -0
  167. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/Sidebar.d.ts +30 -1
  168. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.d.ts +139 -0
  169. package/dist/esm/types/src/components/Layout/AppLayout/components/UserProfilePopup.d.ts +34 -0
  170. package/dist/esm/types/src/components/Layout/AppLayout/context/SidebarContext.d.ts +48 -0
  171. package/dist/esm/types/src/components/Layout/AppLayout/types.d.ts +1 -1
  172. package/dist/esm/types/src/components/Layout/PageContent/PageContent.d.ts +19 -0
  173. package/dist/esm/types/src/components/Layout/PageHeader/PageHeader.d.ts +46 -0
  174. package/dist/esm/types/src/components/Layout/PageHeader/components/SearchBar.d.ts +22 -0
  175. package/dist/esm/types/src/components/Layout/UserBox/UserBox.d.ts +40 -0
  176. package/dist/esm/types/src/components/Navigation/Breadcrumbs/Breadcrumbs.d.ts +33 -0
  177. package/dist/esm/types/src/components/Navigation/Calendar/Calendar.d.ts +63 -0
  178. package/dist/esm/types/src/components/Navigation/ConfirmDialog/ConfirmDialog.d.ts +64 -0
  179. package/dist/esm/types/src/components/Navigation/Dialog/Dialog.d.ts +55 -0
  180. package/dist/esm/types/src/components/Navigation/DialogButton/DialogButton.d.ts +64 -0
  181. package/dist/esm/types/src/components/Navigation/DropDownMenu/DropDownMenu.d.ts +73 -0
  182. package/dist/esm/types/src/components/Navigation/PreviewFiles/PreviewFiles.d.ts +54 -0
  183. package/dist/esm/types/src/components/Navigation/Stepper/Stepper.d.ts +55 -10
  184. package/dist/esm/types/src/components/Navigation/TabsContainer/TabsContainer.d.ts +80 -0
  185. package/dist/esm/types/src/components/Navigation/UploadDialog/UploadDialog.d.ts +64 -0
  186. package/dist/esm/types/src/shadcn-components/Input/Select/Select.d.ts +2 -2
  187. package/dist/index.d.ts +2963 -15
  188. package/dist/styles.css +402 -13
  189. package/package.json +1 -1
  190. package/src/components/Assets/ErrorPages/ComingSoon.tsx +24 -0
  191. package/src/components/Assets/ErrorPages/InternalServerError.tsx +20 -0
  192. package/src/components/Assets/ErrorPages/NoInternetConnection.tsx +20 -0
  193. package/src/components/Assets/ErrorPages/NoItemFound.tsx +28 -0
  194. package/src/components/Assets/ErrorPages/PageNotFound.tsx +21 -0
  195. package/src/components/Assets/ErrorPages/ResourceNotFound.tsx +21 -0
  196. package/src/components/Assets/ErrorPages/UnAuthorized.tsx +31 -0
  197. package/src/components/Assets/Icons/Icons.tsx +55 -1
  198. package/src/components/Charts/BarChart/BarChart.tsx +38 -0
  199. package/src/components/Charts/BarChart/HorizontalBarChart.tsx +93 -0
  200. package/src/components/Charts/BarChart/VerticalBarChart.tsx +110 -0
  201. package/src/components/Charts/LineChart/LineChart.tsx +89 -0
  202. package/src/components/Charts/PieChart/PieChart.tsx +86 -0
  203. package/src/components/Charts/TreeMap/TreeMap.tsx +90 -0
  204. package/src/components/DataDisplay/Accordion/Accordion.tsx +54 -0
  205. package/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.tsx +35 -0
  206. package/src/components/DataDisplay/ActivityLogView/ActivityLogView.tsx +84 -0
  207. package/src/components/DataDisplay/Avatar/Avatar.tsx +40 -0
  208. package/src/components/DataDisplay/Chip/Chip.tsx +28 -0
  209. package/src/components/DataDisplay/Chips/Chips.tsx +56 -0
  210. package/src/components/DataDisplay/DataTable/DataTable.tsx +95 -0
  211. package/src/components/DataDisplay/DataTable/components/TablePagination.tsx +35 -0
  212. package/src/components/DataDisplay/DataTable/components/TableView.tsx +31 -5
  213. package/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.tsx +31 -0
  214. package/src/components/DataDisplay/ReactJoyride/ReactJoyride.tsx +64 -0
  215. package/src/components/DataDisplay/Separator/Separator.tsx +32 -0
  216. package/src/components/DataDisplay/Skeleton/Skeleton.tsx +20 -0
  217. package/src/components/DataDisplay/StatusCard/StatusCard.tsx +36 -0
  218. package/src/components/DataDisplay/Timeline/Timeline.tsx +58 -0
  219. package/src/components/DataDisplay/Typography/Typography.tsx +25 -0
  220. package/src/components/Feedback/Alert/Alert.tsx +38 -0
  221. package/src/components/Feedback/Snackbar/Snackbar.tsx +54 -0
  222. package/src/components/Feedback/Spinner/Spinner.tsx +15 -0
  223. package/src/components/Feedback/Tooltip/Tooltip.tsx +71 -3
  224. package/src/components/Input/Button/Button.tsx +26 -0
  225. package/src/components/Input/Button/ButtonLoader.css +2 -2
  226. package/src/components/Input/DatePicker/DatePicker.tsx +50 -188
  227. package/src/components/Input/DatePicker/components/DatePickerFilter.tsx +178 -0
  228. package/src/components/Input/DatePicker/components/DatePickerInput.tsx +192 -0
  229. package/src/components/Input/DateTimePicker/DateTimePicker.tsx +50 -294
  230. package/src/components/Input/DateTimePicker/components/DateTimePickerFilter.tsx +292 -0
  231. package/src/components/Input/DateTimePicker/components/DateTimePickerInput.tsx +297 -0
  232. package/src/components/Input/FileUpload/FileUpload.tsx +41 -0
  233. package/src/components/Input/FormActions/FormActions.tsx +37 -0
  234. package/src/components/Input/FormControlWrapper/FormControlWrapper.tsx +31 -0
  235. package/src/components/Input/FormWrapper/FormWrapper.tsx +20 -0
  236. package/src/components/Input/HelpButton/HelpButton.tsx +14 -0
  237. package/src/components/Input/IconButtons/IconButtons/DeleteButton.tsx +16 -0
  238. package/src/components/Input/IconButtons/IconButtons/EditButton.tsx +16 -0
  239. package/src/components/Input/IconButtons/IconButtons/RedirectButton.tsx +16 -0
  240. package/src/components/Input/IconButtons/IconButtons/ViewButton.tsx +16 -0
  241. package/src/components/Input/IconButtons/IconButtons.tsx +18 -0
  242. package/src/components/Input/LabelWrapper/LabelWrapper.tsx +26 -0
  243. package/src/components/Input/MultiCheckBox/MultiCheckBox.tsx +34 -0
  244. package/src/components/Input/MultiSelect/MultiSelect.tsx +42 -0
  245. package/src/components/Input/MultiSelect/components/MultiSelectFilter.tsx +7 -3
  246. package/src/components/Input/MultiSelect/components/MultiSelectInput.tsx +8 -3
  247. package/src/components/Input/OtpInput/OtpInput.tsx +29 -0
  248. package/src/components/Input/PasswordField/PasswordField.tsx +34 -0
  249. package/src/components/Input/RadioGroup/RadioGroup.tsx +38 -0
  250. package/src/components/Input/SearchBar/SearchBar.tsx +26 -0
  251. package/src/components/Input/Select/Select.tsx +63 -12
  252. package/src/components/Input/SingleCheckBox/SingleCheckBox.tsx +29 -0
  253. package/src/components/Input/SingleSelect/SingleSelect.tsx +42 -0
  254. package/src/components/Input/SingleSelect/components/SingleFilter.tsx +7 -3
  255. package/src/components/Input/SingleSelect/components/SingleInput.tsx +8 -3
  256. package/src/components/Input/Switch/Switch.tsx +23 -0
  257. package/src/components/Input/Tags/Tags.tsx +26 -0
  258. package/src/components/Input/TextField/TextField.tsx +35 -0
  259. package/src/components/Input/Textarea/Textarea.tsx +36 -0
  260. package/src/components/Layout/AppLayout/AppLayout.tsx +33 -1
  261. package/src/components/Layout/AppLayout/components/MenuToggleButton.tsx +16 -0
  262. package/src/components/Layout/AppLayout/components/Sidebar/MenuBar.tsx +26 -0
  263. package/src/components/Layout/AppLayout/components/Sidebar/MenuItem.tsx +51 -1
  264. package/src/components/Layout/AppLayout/components/Sidebar/Sidebar.tsx +173 -104
  265. package/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.tsx +139 -9
  266. package/src/components/Layout/AppLayout/components/UserProfilePopup.tsx +34 -0
  267. package/src/components/Layout/AppLayout/context/SidebarContext.tsx +48 -0
  268. package/src/components/Layout/AppLayout/types.ts +1 -1
  269. package/src/components/Layout/PageContent/PageContent.tsx +19 -0
  270. package/src/components/Layout/PageHeader/PageHeader.tsx +46 -0
  271. package/src/components/Layout/PageHeader/components/SearchBar.tsx +22 -0
  272. package/src/components/Layout/UserBox/UserBox.tsx +40 -0
  273. package/src/components/Navigation/Breadcrumbs/Breadcrumbs.tsx +33 -0
  274. package/src/components/Navigation/Calendar/Calendar.tsx +63 -0
  275. package/src/components/Navigation/ConfirmDialog/ConfirmDialog.tsx +64 -0
  276. package/src/components/Navigation/Dialog/Dialog.tsx +55 -0
  277. package/src/components/Navigation/DialogButton/DialogButton.tsx +70 -1
  278. package/src/components/Navigation/DropDownMenu/DropDownMenu.tsx +74 -1
  279. package/src/components/Navigation/PreviewFiles/PreviewFiles.tsx +93 -0
  280. package/src/components/Navigation/Stepper/Stepper.tsx +56 -10
  281. package/src/components/Navigation/TabsContainer/TabsContainer.tsx +81 -1
  282. package/src/components/Navigation/UploadDialog/UploadDialog.tsx +64 -0
  283. package/src/shadcn-components/DataDisplay/Dialog/Dialog.tsx +2 -2
  284. package/src/shadcn-components/Input/Popover/Popover.tsx +1 -1
  285. package/src/shadcn-components/Input/Select/Select.tsx +8 -8
  286. package/src/shadcn-components/Layout/Sheet/Sheet.tsx +2 -2
  287. package/src/shadcn-components/Navigation/DropdownMenu/DropdownMenu.tsx +2 -2
  288. package/src/styles/globals.css +4 -2
  289. package/src/styles/index.css +5 -0
@@ -10,6 +10,29 @@ import { Treemap as ReTreeMap } from 'recharts';
10
10
  import { AnimationTiming } from 'recharts/types/util/types';
11
11
  import { MarginProps, SubTitleProps, TitleProps } from '../types/types';
12
12
 
13
+ /**
14
+ * Props for the TreeMap component
15
+ * @typedef {Object} TreeMapProps
16
+ * @property {any} data - Hierarchical data structure for the treemap (should have children property for nested data)
17
+ * @property {string|number} dataKey - The key to use for treemap cell sizing
18
+ * @property {ChartConfig} config - Chart configuration with color mappings
19
+ * @property {string} [title='Tree Map'] - Chart title text
20
+ * @property {boolean} [showSubtitle=false] - Whether to display subtitle
21
+ * @property {string} [subTitle=''] - Chart subtitle text
22
+ * @property {TitleProps} [titleProps={variant: 'large'}] - Title styling props
23
+ * @property {SubTitleProps} [subTitleProps={variant: 'small'}] - Subtitle styling props
24
+ * @property {number} [width=400] - Chart width in pixels
25
+ * @property {number} [height=200] - Chart height in pixels
26
+ * @property {MarginProps} [margin] - Chart margins
27
+ * @property {number} [aspectRatio] - Aspect ratio of treemap cells
28
+ * @property {string} [fill='#F8C12D'] - Default fill color for cells
29
+ * @property {string} [stroke='#fff'] - Border color for cells
30
+ * @property {string[]} [colors] - Array of colors for cells (overrides fill if provided)
31
+ * @property {string} [className] - CSS class for the container
32
+ * @property {boolean} [showToolTip=true] - Whether to show tooltip on hover
33
+ * @property {boolean} [isAnimationActive=false] - Whether to animate cells
34
+ * @property {AnimationTiming} [animationEasing='linear'] - Animation easing function
35
+ */
13
36
  export interface TreeMapProps {
14
37
  // Core data
15
38
  data: any;
@@ -41,6 +64,57 @@ export interface TreeMapProps {
41
64
  animationEasing?: AnimationTiming;
42
65
  }
43
66
 
67
+ /**
68
+ * TreeMap Component
69
+ * Displays hierarchical data as a treemap visualization where cell sizes represent values.
70
+ * Each cell can be colored based on configured colors or a single fill color.
71
+ *
72
+ * @component
73
+ * @param {TreeMapProps} props - The component props
74
+ * @param {any} props.data - Hierarchical data structure with nested children
75
+ * @param {string|number} props.dataKey - Key for cell sizing calculation
76
+ * @param {ChartConfig} props.config - Chart color configuration
77
+ * @param {string} [props.title] - Chart title
78
+ * @param {boolean} [props.showSubtitle] - Show/hide subtitle
79
+ * @param {string} [props.subTitle] - Chart subtitle
80
+ * @param {TitleProps} [props.titleProps] - Title styling
81
+ * @param {SubTitleProps} [props.subTitleProps] - Subtitle styling
82
+ * @param {number} [props.width] - Chart width in pixels
83
+ * @param {number} [props.height] - Chart height in pixels
84
+ * @param {MarginProps} [props.margin] - Chart margins
85
+ * @param {number} [props.aspectRatio] - Cell aspect ratio
86
+ * @param {string} [props.fill] - Default cell fill color
87
+ * @param {string} [props.stroke] - Cell border color
88
+ * @param {string[]} [props.colors] - Array of colors for cells
89
+ * @param {string} [props.className] - Container CSS class
90
+ * @param {boolean} [props.showToolTip] - Show/hide tooltip
91
+ * @param {boolean} [props.isAnimationActive] - Enable/disable animations
92
+ * @param {AnimationTiming} [props.animationEasing] - Animation easing function
93
+ * @returns {React.ReactElement} Rendered treemap chart
94
+ *
95
+ * @example
96
+ * const data = {
97
+ * name: 'Root',
98
+ * children: [
99
+ * { name: 'Category A', value: 400 },
100
+ * { name: 'Category B', value: 300 },
101
+ * { name: 'Category C', value: 200 }
102
+ * ]
103
+ * };
104
+ * const config = {
105
+ * value: { label: 'Value', color: '#3b82f6' }
106
+ * };
107
+ *
108
+ * return (
109
+ * <TreeMap
110
+ * data={data}
111
+ * dataKey="value"
112
+ * config={config}
113
+ * title="Market Share"
114
+ * colors={['#3b82f6', '#10b981', '#f59e0b']}
115
+ * />
116
+ * );
117
+ */
44
118
  const TreeMap: React.FC<TreeMapProps> = ({
45
119
  title = 'Tree Map',
46
120
  titleProps = { variant: 'large' },
@@ -105,6 +179,22 @@ const TreeMap: React.FC<TreeMapProps> = ({
105
179
 
106
180
  export default TreeMap;
107
181
 
182
+ /**
183
+ * CustomizedContent Component
184
+ * Renders custom content for treemap cells with text labels and borders.
185
+ * Only displays text for depth level 1 to avoid cluttering smaller cells.
186
+ *
187
+ * @param {Object} props - Treemap cell props
188
+ * @param {number} props.depth - Nesting depth of the cell
189
+ * @param {number} props.x - X coordinate of the cell
190
+ * @param {number} props.y - Y coordinate of the cell
191
+ * @param {number} props.width - Width of the cell
192
+ * @param {number} props.height - Height of the cell
193
+ * @param {string} props.name - Name/label of the cell
194
+ * @param {string} props.fill - Fill color of the cell
195
+ * @param {string} props.stroke - Border color of the cell
196
+ * @returns {React.ReactElement} SVG group element with rectangle and text
197
+ */
108
198
  const CustomizedContent = (props: any) => {
109
199
  const { depth, x, y, width, height, name, fill, stroke } = props;
110
200
 
@@ -8,6 +8,16 @@ import {
8
8
  import { ReactNode, useEffect, useState } from 'react';
9
9
  import { Typography } from '../Typography/Typography';
10
10
 
11
+ /**
12
+ * Props for individual accordion items
13
+ * @typedef {Object} AccordionItemProps
14
+ * @property {ReactNode} title - The title/header content of the accordion item
15
+ * @property {ReactNode} content - The main content displayed when item is expanded
16
+ * @property {ReactNode} [actions] - Optional action buttons or elements displayed in the header
17
+ * @property {string[]} [errorKeys] - Array of error field keys associated with this item
18
+ * @property {string} [className] - Optional CSS class for the accordion item container
19
+ * @property {string} [contentClassName] - Optional CSS class for the content section
20
+ */
11
21
  export type AccordionItemProps = {
12
22
  title: ReactNode;
13
23
  content: ReactNode;
@@ -17,6 +27,14 @@ export type AccordionItemProps = {
17
27
  contentClassName?: string;
18
28
  };
19
29
 
30
+ /**
31
+ * Props for the Accordion component
32
+ * @typedef {Object} AccordionProps
33
+ * @property {AccordionItemProps[]} data - Array of accordion items to display
34
+ * @property {string} [className] - Optional CSS class for the accordion container
35
+ * @property {number} [defaultExpandedIndex] - Index of item to expand by default
36
+ * @property {string} [errorField] - Error field name to auto-expand item containing this error
37
+ */
20
38
  type AccordionProps = {
21
39
  data: AccordionItemProps[];
22
40
  className?: string;
@@ -24,6 +42,42 @@ type AccordionProps = {
24
42
  errorField?: string;
25
43
  };
26
44
 
45
+ /**
46
+ * Accordion component for displaying collapsible sections
47
+ * Auto-expands section containing error field, supports custom actions per item
48
+ *
49
+ * @component
50
+ * @param {AccordionProps} props - Accordion configuration
51
+ * @param {AccordionItemProps[]} props.data - Array of accordion items with title, content, and optional actions
52
+ * @param {string} [props.className] - Additional CSS class for the accordion wrapper
53
+ * @param {number} [props.defaultExpandedIndex] - Index of the item to expand on initial render (0-based)
54
+ * @param {string} [props.errorField] - Field name containing error; matching item will auto-expand
55
+ * @returns {JSX.Element} Accordion component with collapsible sections
56
+ *
57
+ * @example
58
+ * // Basic accordion
59
+ * <Accordion
60
+ * data={[
61
+ * { title: "Section 1", content: "Content 1" },
62
+ * { title: "Section 2", content: "Content 2" }
63
+ * ]}
64
+ * defaultExpandedIndex={0}
65
+ * />
66
+ *
67
+ * @example
68
+ * // With actions and error handling
69
+ * <Accordion
70
+ * data={[
71
+ * {
72
+ * title: "Personal Info",
73
+ * content: <PersonForm />,
74
+ * actions: <Button>Edit</Button>,
75
+ * errorKeys: ["firstName", "lastName"]
76
+ * }
77
+ * ]}
78
+ * errorField="firstName"
79
+ * />
80
+ */
27
81
  export const Accordion = ({
28
82
  data,
29
83
  className,
@@ -4,6 +4,16 @@ import { useState } from 'react';
4
4
  import { Button } from '../../Input/Button/Button';
5
5
  import { DatePicker } from '../../Input/DatePicker/DatePicker';
6
6
 
7
+ /**
8
+ * Props for ActivityLogFilter component
9
+ * @typedef {Object} ActivityLogFilterProps
10
+ * @property {Date | null} fromDate - Current filter start date
11
+ * @property {Date | null} toDate - Current filter end date
12
+ * @property {(date: Date | null) => void} setFromDate - Update start date
13
+ * @property {(date: Date | null) => void} setToDate - Update end date
14
+ * @property {() => void} fetchNextPage - Callback to apply filters
15
+ * @property {boolean} isLoading - Whether data is loading
16
+ */
7
17
  interface ActivityLogFilterProps {
8
18
  fromDate: Date | null;
9
19
  toDate: Date | null;
@@ -13,6 +23,31 @@ interface ActivityLogFilterProps {
13
23
  isLoading: boolean;
14
24
  }
15
25
 
26
+ /**
27
+ * ActivityLogFilter component for date range filtering
28
+ * Provides popover with date pickers and apply/clear buttons
29
+ *
30
+ * @component
31
+ * @param {ActivityLogFilterProps} props - Filter configuration
32
+ * @param {Date | null} props.fromDate - Start date filter
33
+ * @param {Date | null} props.toDate - End date filter
34
+ * @param {(date: Date | null) => void} props.setFromDate - Handler for start date change
35
+ * @param {(date: Date | null) => void} props.setToDate - Handler for end date change
36
+ * @param {() => void} props.fetchNextPage - Handler to apply filters
37
+ * @param {boolean} props.isLoading - Disable controls while loading
38
+ * @returns {JSX.Element} Filter button with date picker popover
39
+ *
40
+ * @example
41
+ * // Activity filter with date range
42
+ * <ActivityLogFilter
43
+ * fromDate={startDate}
44
+ * toDate={endDate}
45
+ * setFromDate={setStart}
46
+ * setToDate={setEnd}
47
+ * fetchNextPage={() => applyFilters()}
48
+ * isLoading={false}
49
+ * />
50
+ */
16
51
  export const ActivityLogFilter = ({
17
52
  fromDate,
18
53
  toDate,
@@ -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 {React.ReactNode[]} cards - Card view items for card layout
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;
@@ -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 {React.ReactNode[]} props.cards - Card view items
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
  ) => {
@@ -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;