@campxdev/react-blueprint 3.0.0-alpha.5 → 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 (255) 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 +41 -0
  37. package/dist/cjs/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +42 -0
  38. package/dist/cjs/types/src/components/Input/FileUpload/FileUpload.d.ts +41 -0
  39. package/dist/cjs/types/src/components/Input/FormActions/FormActions.d.ts +37 -0
  40. package/dist/cjs/types/src/components/Input/FormControlWrapper/FormControlWrapper.d.ts +31 -0
  41. package/dist/cjs/types/src/components/Input/FormWrapper/FormWrapper.d.ts +20 -0
  42. package/dist/cjs/types/src/components/Input/HelpButton/HelpButton.d.ts +14 -0
  43. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/DeleteButton.d.ts +16 -0
  44. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/EditButton.d.ts +16 -0
  45. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/RedirectButton.d.ts +16 -0
  46. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/ViewButton.d.ts +16 -0
  47. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons.d.ts +18 -0
  48. package/dist/cjs/types/src/components/Input/LabelWrapper/LabelWrapper.d.ts +26 -0
  49. package/dist/cjs/types/src/components/Input/MultiCheckBox/MultiCheckBox.d.ts +34 -0
  50. package/dist/cjs/types/src/components/Input/MultiSelect/MultiSelect.d.ts +40 -0
  51. package/dist/cjs/types/src/components/Input/OtpInput/OtpInput.d.ts +29 -0
  52. package/dist/cjs/types/src/components/Input/PasswordField/PasswordField.d.ts +34 -0
  53. package/dist/cjs/types/src/components/Input/RadioGroup/RadioGroup.d.ts +38 -0
  54. package/dist/cjs/types/src/components/Input/SearchBar/SearchBar.d.ts +26 -0
  55. package/dist/cjs/types/src/components/Input/Select/Select.d.ts +32 -0
  56. package/dist/cjs/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
  57. package/dist/cjs/types/src/components/Input/SingleSelect/SingleSelect.d.ts +40 -0
  58. package/dist/cjs/types/src/components/Input/Switch/Switch.d.ts +23 -0
  59. package/dist/cjs/types/src/components/Input/Tags/Tags.d.ts +26 -0
  60. package/dist/cjs/types/src/components/Input/TextField/TextField.d.ts +35 -0
  61. package/dist/cjs/types/src/components/Input/Textarea/Textarea.d.ts +36 -0
  62. package/dist/cjs/types/src/components/Layout/AppLayout/AppLayout.d.ts +32 -0
  63. package/dist/cjs/types/src/components/Layout/AppLayout/components/MenuToggleButton.d.ts +16 -0
  64. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/MenuBar.d.ts +26 -0
  65. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/MenuItem.d.ts +37 -0
  66. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/Sidebar.d.ts +30 -1
  67. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.d.ts +139 -0
  68. package/dist/cjs/types/src/components/Layout/AppLayout/components/UserProfilePopup.d.ts +34 -0
  69. package/dist/cjs/types/src/components/Layout/AppLayout/context/SidebarContext.d.ts +48 -0
  70. package/dist/cjs/types/src/components/Layout/AppLayout/types.d.ts +1 -1
  71. package/dist/cjs/types/src/components/Layout/PageContent/PageContent.d.ts +19 -0
  72. package/dist/cjs/types/src/components/Layout/PageHeader/PageHeader.d.ts +46 -0
  73. package/dist/cjs/types/src/components/Layout/PageHeader/components/SearchBar.d.ts +22 -0
  74. package/dist/cjs/types/src/components/Layout/UserBox/UserBox.d.ts +40 -0
  75. package/dist/cjs/types/src/components/Navigation/Breadcrumbs/Breadcrumbs.d.ts +33 -0
  76. package/dist/cjs/types/src/components/Navigation/Calendar/Calendar.d.ts +63 -0
  77. package/dist/cjs/types/src/components/Navigation/ConfirmDialog/ConfirmDialog.d.ts +64 -0
  78. package/dist/cjs/types/src/components/Navigation/Dialog/Dialog.d.ts +55 -0
  79. package/dist/cjs/types/src/components/Navigation/DialogButton/DialogButton.d.ts +64 -0
  80. package/dist/cjs/types/src/components/Navigation/DropDownMenu/DropDownMenu.d.ts +73 -0
  81. package/dist/cjs/types/src/components/Navigation/PreviewFiles/PreviewFiles.d.ts +54 -0
  82. package/dist/cjs/types/src/components/Navigation/Stepper/Stepper.d.ts +55 -10
  83. package/dist/cjs/types/src/components/Navigation/TabsContainer/TabsContainer.d.ts +80 -0
  84. package/dist/cjs/types/src/components/Navigation/UploadDialog/UploadDialog.d.ts +64 -0
  85. package/dist/esm/index.js +2 -2
  86. package/dist/esm/types/src/components/Assets/ErrorPages/ComingSoon.d.ts +24 -0
  87. package/dist/esm/types/src/components/Assets/ErrorPages/InternalServerError.d.ts +20 -0
  88. package/dist/esm/types/src/components/Assets/ErrorPages/NoInternetConnection.d.ts +20 -0
  89. package/dist/esm/types/src/components/Assets/ErrorPages/NoItemFound.d.ts +28 -0
  90. package/dist/esm/types/src/components/Assets/ErrorPages/PageNotFound.d.ts +21 -0
  91. package/dist/esm/types/src/components/Assets/ErrorPages/ResourceNotFound.d.ts +21 -0
  92. package/dist/esm/types/src/components/Assets/ErrorPages/UnAuthorized.d.ts +31 -0
  93. package/dist/esm/types/src/components/Assets/Icons/Icons.d.ts +54 -0
  94. package/dist/esm/types/src/components/Charts/BarChart/BarChart.d.ts +38 -0
  95. package/dist/esm/types/src/components/Charts/BarChart/HorizontalBarChart.d.ts +93 -0
  96. package/dist/esm/types/src/components/Charts/BarChart/VerticalBarChart.d.ts +110 -0
  97. package/dist/esm/types/src/components/Charts/LineChart/LineChart.d.ts +89 -0
  98. package/dist/esm/types/src/components/Charts/PieChart/PieChart.d.ts +86 -0
  99. package/dist/esm/types/src/components/Charts/TreeMap/TreeMap.d.ts +74 -0
  100. package/dist/esm/types/src/components/DataDisplay/Accordion/Accordion.d.ts +54 -0
  101. package/dist/esm/types/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.d.ts +35 -0
  102. package/dist/esm/types/src/components/DataDisplay/ActivityLogView/ActivityLogView.d.ts +78 -0
  103. package/dist/esm/types/src/components/DataDisplay/Avatar/Avatar.d.ts +40 -0
  104. package/dist/esm/types/src/components/DataDisplay/Chip/Chip.d.ts +28 -0
  105. package/dist/esm/types/src/components/DataDisplay/Chips/Chips.d.ts +55 -0
  106. package/dist/esm/types/src/components/DataDisplay/DataTable/DataTable.d.ts +95 -0
  107. package/dist/esm/types/src/components/DataDisplay/DataTable/components/TablePagination.d.ts +35 -0
  108. package/dist/esm/types/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.d.ts +30 -0
  109. package/dist/esm/types/src/components/DataDisplay/ReactJoyride/ReactJoyride.d.ts +64 -0
  110. package/dist/esm/types/src/components/DataDisplay/Separator/Separator.d.ts +30 -0
  111. package/dist/esm/types/src/components/DataDisplay/Skeleton/Skeleton.d.ts +20 -0
  112. package/dist/esm/types/src/components/DataDisplay/StatusCard/StatusCard.d.ts +36 -0
  113. package/dist/esm/types/src/components/DataDisplay/Timeline/Timeline.d.ts +58 -0
  114. package/dist/esm/types/src/components/DataDisplay/Typography/Typography.d.ts +25 -0
  115. package/dist/esm/types/src/components/Feedback/Alert/Alert.d.ts +31 -0
  116. package/dist/esm/types/src/components/Feedback/Snackbar/Snackbar.d.ts +54 -0
  117. package/dist/esm/types/src/components/Feedback/Spinner/Spinner.d.ts +15 -0
  118. package/dist/esm/types/src/components/Feedback/Tooltip/Tooltip.d.ts +54 -0
  119. package/dist/esm/types/src/components/Input/Button/Button.d.ts +26 -0
  120. package/dist/esm/types/src/components/Input/DatePicker/DatePicker.d.ts +41 -0
  121. package/dist/esm/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +42 -0
  122. package/dist/esm/types/src/components/Input/FileUpload/FileUpload.d.ts +41 -0
  123. package/dist/esm/types/src/components/Input/FormActions/FormActions.d.ts +37 -0
  124. package/dist/esm/types/src/components/Input/FormControlWrapper/FormControlWrapper.d.ts +31 -0
  125. package/dist/esm/types/src/components/Input/FormWrapper/FormWrapper.d.ts +20 -0
  126. package/dist/esm/types/src/components/Input/HelpButton/HelpButton.d.ts +14 -0
  127. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/DeleteButton.d.ts +16 -0
  128. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/EditButton.d.ts +16 -0
  129. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/RedirectButton.d.ts +16 -0
  130. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/ViewButton.d.ts +16 -0
  131. package/dist/esm/types/src/components/Input/IconButtons/IconButtons.d.ts +18 -0
  132. package/dist/esm/types/src/components/Input/LabelWrapper/LabelWrapper.d.ts +26 -0
  133. package/dist/esm/types/src/components/Input/MultiCheckBox/MultiCheckBox.d.ts +34 -0
  134. package/dist/esm/types/src/components/Input/MultiSelect/MultiSelect.d.ts +40 -0
  135. package/dist/esm/types/src/components/Input/OtpInput/OtpInput.d.ts +29 -0
  136. package/dist/esm/types/src/components/Input/PasswordField/PasswordField.d.ts +34 -0
  137. package/dist/esm/types/src/components/Input/RadioGroup/RadioGroup.d.ts +38 -0
  138. package/dist/esm/types/src/components/Input/SearchBar/SearchBar.d.ts +26 -0
  139. package/dist/esm/types/src/components/Input/Select/Select.d.ts +32 -0
  140. package/dist/esm/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
  141. package/dist/esm/types/src/components/Input/SingleSelect/SingleSelect.d.ts +40 -0
  142. package/dist/esm/types/src/components/Input/Switch/Switch.d.ts +23 -0
  143. package/dist/esm/types/src/components/Input/Tags/Tags.d.ts +26 -0
  144. package/dist/esm/types/src/components/Input/TextField/TextField.d.ts +35 -0
  145. package/dist/esm/types/src/components/Input/Textarea/Textarea.d.ts +36 -0
  146. package/dist/esm/types/src/components/Layout/AppLayout/AppLayout.d.ts +32 -0
  147. package/dist/esm/types/src/components/Layout/AppLayout/components/MenuToggleButton.d.ts +16 -0
  148. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/MenuBar.d.ts +26 -0
  149. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/MenuItem.d.ts +37 -0
  150. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/Sidebar.d.ts +30 -1
  151. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.d.ts +139 -0
  152. package/dist/esm/types/src/components/Layout/AppLayout/components/UserProfilePopup.d.ts +34 -0
  153. package/dist/esm/types/src/components/Layout/AppLayout/context/SidebarContext.d.ts +48 -0
  154. package/dist/esm/types/src/components/Layout/AppLayout/types.d.ts +1 -1
  155. package/dist/esm/types/src/components/Layout/PageContent/PageContent.d.ts +19 -0
  156. package/dist/esm/types/src/components/Layout/PageHeader/PageHeader.d.ts +46 -0
  157. package/dist/esm/types/src/components/Layout/PageHeader/components/SearchBar.d.ts +22 -0
  158. package/dist/esm/types/src/components/Layout/UserBox/UserBox.d.ts +40 -0
  159. package/dist/esm/types/src/components/Navigation/Breadcrumbs/Breadcrumbs.d.ts +33 -0
  160. package/dist/esm/types/src/components/Navigation/Calendar/Calendar.d.ts +63 -0
  161. package/dist/esm/types/src/components/Navigation/ConfirmDialog/ConfirmDialog.d.ts +64 -0
  162. package/dist/esm/types/src/components/Navigation/Dialog/Dialog.d.ts +55 -0
  163. package/dist/esm/types/src/components/Navigation/DialogButton/DialogButton.d.ts +64 -0
  164. package/dist/esm/types/src/components/Navigation/DropDownMenu/DropDownMenu.d.ts +73 -0
  165. package/dist/esm/types/src/components/Navigation/PreviewFiles/PreviewFiles.d.ts +54 -0
  166. package/dist/esm/types/src/components/Navigation/Stepper/Stepper.d.ts +55 -10
  167. package/dist/esm/types/src/components/Navigation/TabsContainer/TabsContainer.d.ts +80 -0
  168. package/dist/esm/types/src/components/Navigation/UploadDialog/UploadDialog.d.ts +64 -0
  169. package/dist/index.d.ts +2953 -12
  170. package/dist/styles.css +30 -9
  171. package/package.json +1 -1
  172. package/src/components/Assets/ErrorPages/ComingSoon.tsx +24 -0
  173. package/src/components/Assets/ErrorPages/InternalServerError.tsx +20 -0
  174. package/src/components/Assets/ErrorPages/NoInternetConnection.tsx +20 -0
  175. package/src/components/Assets/ErrorPages/NoItemFound.tsx +28 -0
  176. package/src/components/Assets/ErrorPages/PageNotFound.tsx +21 -0
  177. package/src/components/Assets/ErrorPages/ResourceNotFound.tsx +21 -0
  178. package/src/components/Assets/ErrorPages/UnAuthorized.tsx +31 -0
  179. package/src/components/Assets/Icons/Icons.tsx +55 -1
  180. package/src/components/Charts/BarChart/BarChart.tsx +38 -0
  181. package/src/components/Charts/BarChart/HorizontalBarChart.tsx +93 -0
  182. package/src/components/Charts/BarChart/VerticalBarChart.tsx +110 -0
  183. package/src/components/Charts/LineChart/LineChart.tsx +89 -0
  184. package/src/components/Charts/PieChart/PieChart.tsx +86 -0
  185. package/src/components/Charts/TreeMap/TreeMap.tsx +90 -0
  186. package/src/components/DataDisplay/Accordion/Accordion.tsx +54 -0
  187. package/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.tsx +35 -0
  188. package/src/components/DataDisplay/ActivityLogView/ActivityLogView.tsx +84 -0
  189. package/src/components/DataDisplay/Avatar/Avatar.tsx +40 -0
  190. package/src/components/DataDisplay/Chip/Chip.tsx +28 -0
  191. package/src/components/DataDisplay/Chips/Chips.tsx +56 -0
  192. package/src/components/DataDisplay/DataTable/DataTable.tsx +95 -0
  193. package/src/components/DataDisplay/DataTable/components/TablePagination.tsx +35 -0
  194. package/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.tsx +31 -0
  195. package/src/components/DataDisplay/ReactJoyride/ReactJoyride.tsx +64 -0
  196. package/src/components/DataDisplay/Separator/Separator.tsx +32 -0
  197. package/src/components/DataDisplay/Skeleton/Skeleton.tsx +20 -0
  198. package/src/components/DataDisplay/StatusCard/StatusCard.tsx +36 -0
  199. package/src/components/DataDisplay/Timeline/Timeline.tsx +58 -0
  200. package/src/components/DataDisplay/Typography/Typography.tsx +25 -0
  201. package/src/components/Feedback/Alert/Alert.tsx +38 -0
  202. package/src/components/Feedback/Snackbar/Snackbar.tsx +54 -0
  203. package/src/components/Feedback/Spinner/Spinner.tsx +15 -0
  204. package/src/components/Feedback/Tooltip/Tooltip.tsx +54 -0
  205. package/src/components/Input/Button/Button.tsx +26 -0
  206. package/src/components/Input/DatePicker/DatePicker.tsx +41 -0
  207. package/src/components/Input/DateTimePicker/DateTimePicker.tsx +42 -0
  208. package/src/components/Input/FileUpload/FileUpload.tsx +41 -0
  209. package/src/components/Input/FormActions/FormActions.tsx +37 -0
  210. package/src/components/Input/FormControlWrapper/FormControlWrapper.tsx +31 -0
  211. package/src/components/Input/FormWrapper/FormWrapper.tsx +20 -0
  212. package/src/components/Input/HelpButton/HelpButton.tsx +14 -0
  213. package/src/components/Input/IconButtons/IconButtons/DeleteButton.tsx +16 -0
  214. package/src/components/Input/IconButtons/IconButtons/EditButton.tsx +16 -0
  215. package/src/components/Input/IconButtons/IconButtons/RedirectButton.tsx +16 -0
  216. package/src/components/Input/IconButtons/IconButtons/ViewButton.tsx +16 -0
  217. package/src/components/Input/IconButtons/IconButtons.tsx +18 -0
  218. package/src/components/Input/LabelWrapper/LabelWrapper.tsx +26 -0
  219. package/src/components/Input/MultiCheckBox/MultiCheckBox.tsx +34 -0
  220. package/src/components/Input/MultiSelect/MultiSelect.tsx +40 -0
  221. package/src/components/Input/OtpInput/OtpInput.tsx +29 -0
  222. package/src/components/Input/PasswordField/PasswordField.tsx +34 -0
  223. package/src/components/Input/RadioGroup/RadioGroup.tsx +38 -0
  224. package/src/components/Input/SearchBar/SearchBar.tsx +26 -0
  225. package/src/components/Input/Select/Select.tsx +41 -0
  226. package/src/components/Input/SingleCheckBox/SingleCheckBox.tsx +29 -0
  227. package/src/components/Input/SingleSelect/SingleSelect.tsx +40 -0
  228. package/src/components/Input/Switch/Switch.tsx +23 -0
  229. package/src/components/Input/Tags/Tags.tsx +26 -0
  230. package/src/components/Input/TextField/TextField.tsx +35 -0
  231. package/src/components/Input/Textarea/Textarea.tsx +36 -0
  232. package/src/components/Layout/AppLayout/AppLayout.tsx +33 -1
  233. package/src/components/Layout/AppLayout/components/MenuToggleButton.tsx +16 -0
  234. package/src/components/Layout/AppLayout/components/Sidebar/MenuBar.tsx +26 -0
  235. package/src/components/Layout/AppLayout/components/Sidebar/MenuItem.tsx +51 -1
  236. package/src/components/Layout/AppLayout/components/Sidebar/Sidebar.tsx +173 -104
  237. package/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.tsx +139 -9
  238. package/src/components/Layout/AppLayout/components/UserProfilePopup.tsx +34 -0
  239. package/src/components/Layout/AppLayout/context/SidebarContext.tsx +48 -0
  240. package/src/components/Layout/AppLayout/types.ts +1 -1
  241. package/src/components/Layout/PageContent/PageContent.tsx +19 -0
  242. package/src/components/Layout/PageHeader/PageHeader.tsx +46 -0
  243. package/src/components/Layout/PageHeader/components/SearchBar.tsx +22 -0
  244. package/src/components/Layout/UserBox/UserBox.tsx +40 -0
  245. package/src/components/Navigation/Breadcrumbs/Breadcrumbs.tsx +33 -0
  246. package/src/components/Navigation/Calendar/Calendar.tsx +63 -0
  247. package/src/components/Navigation/ConfirmDialog/ConfirmDialog.tsx +64 -0
  248. package/src/components/Navigation/Dialog/Dialog.tsx +55 -0
  249. package/src/components/Navigation/DialogButton/DialogButton.tsx +64 -0
  250. package/src/components/Navigation/DropDownMenu/DropDownMenu.tsx +73 -0
  251. package/src/components/Navigation/PreviewFiles/PreviewFiles.tsx +93 -0
  252. package/src/components/Navigation/Stepper/Stepper.tsx +56 -10
  253. package/src/components/Navigation/TabsContainer/TabsContainer.tsx +80 -0
  254. package/src/components/Navigation/UploadDialog/UploadDialog.tsx +64 -0
  255. package/src/shadcn-components/Layout/Sheet/Sheet.tsx +2 -2
@@ -31,7 +31,18 @@ type ButtonProps = {
31
31
  onClick?: () => void;
32
32
  } & React.HTMLAttributes<HTMLButtonElement>;
33
33
 
34
- // Main sidebar container
34
+ /**
35
+ * SidebarContainer Component
36
+ *
37
+ * Main container for the sidebar with flex layout, rounded corners, and overflow hidden.
38
+ * Serves as the root wrapper for all sidebar content including header, menu, and footer.
39
+ *
40
+ * @param {React.ReactNode} children - Content to render inside the sidebar
41
+ * @param {string} [className] - Additional CSS classes to apply
42
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Additional HTML div attributes
43
+ *
44
+ * @returns {React.ReactElement} A flex container for sidebar content
45
+ */
35
46
  export const SidebarContainer: React.FC<BaseProps> = ({
36
47
  children,
37
48
  className,
@@ -50,7 +61,19 @@ export const SidebarContainer: React.FC<BaseProps> = ({
50
61
  );
51
62
  };
52
63
 
53
- // Menu bar container with scrolling
64
+ /**
65
+ * MenuBarContainer Component
66
+ *
67
+ * Scrollable container for menu items with custom scrollbar styling. Includes responsive
68
+ * design with different width and margin behavior on mobile vs desktop. Custom scrollbar
69
+ * uses theme colors with thin width.
70
+ *
71
+ * @param {React.ReactNode} children - Menu items to render inside the container
72
+ * @param {string} [className] - Additional CSS classes to apply
73
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Additional HTML div attributes
74
+ *
75
+ * @returns {React.ReactElement} A vertically scrollable menu container
76
+ */
54
77
  export const MenuBarContainer: React.FC<BaseProps> = ({
55
78
  children,
56
79
  className,
@@ -77,7 +100,19 @@ export const MenuBarContainer: React.FC<BaseProps> = ({
77
100
  );
78
101
  };
79
102
 
80
- // Menu header with back button
103
+ /**
104
+ * MenuHeaderContainer Component
105
+ *
106
+ * Header container for displaying nested menu titles with back navigation.
107
+ * Provides fixed height with flex layout for centered or start-aligned content.
108
+ * Includes hover background effect.
109
+ *
110
+ * @param {React.ReactNode} children - Header content (typically back button and title)
111
+ * @param {string} [className] - Additional CSS classes to apply
112
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Additional HTML div attributes
113
+ *
114
+ * @returns {React.ReactElement} A header container for menu navigation
115
+ */
81
116
  export const MenuHeaderContainer: React.FC<BaseProps> = ({
82
117
  children,
83
118
  className,
@@ -96,7 +131,18 @@ export const MenuHeaderContainer: React.FC<BaseProps> = ({
96
131
  );
97
132
  };
98
133
 
99
- // Menu item containers
134
+ /**
135
+ * MenuItemContainer Component
136
+ *
137
+ * Wrapper container for individual menu items with flex centering and rounded corners.
138
+ * Provides consistent spacing and layout for menu items.
139
+ *
140
+ * @param {React.ReactNode} children - Menu item content
141
+ * @param {string} [className] - Additional CSS classes to apply
142
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Additional HTML div attributes
143
+ *
144
+ * @returns {React.ReactElement} A centered flex container for a menu item
145
+ */
100
146
  export const MenuItemContainer: React.FC<BaseProps> = ({
101
147
  children,
102
148
  className,
@@ -109,6 +155,18 @@ export const MenuItemContainer: React.FC<BaseProps> = ({
109
155
  );
110
156
  };
111
157
 
158
+ /**
159
+ * MenuItemButton Component
160
+ *
161
+ * Styled button for menu items with flex layout, whitespace handling, and rounded appearance.
162
+ * Based on Button component with ghost variant and custom padding.
163
+ *
164
+ * @param {React.ReactNode} children - Button content (icon and/or text)
165
+ * @param {string} [className] - Additional CSS classes to apply
166
+ * @param {React.HTMLAttributes<HTMLButtonElement>} props - Additional button attributes
167
+ *
168
+ * @returns {React.ReactElement} A styled button for menu navigation
169
+ */
112
170
  export const MenuItemButton: React.FC<ButtonProps> = ({
113
171
  children,
114
172
  className,
@@ -128,6 +186,18 @@ export const MenuItemButton: React.FC<ButtonProps> = ({
128
186
  );
129
187
  };
130
188
 
189
+ /**
190
+ * MenuItemIcon Component
191
+ *
192
+ * Container for menu item icons with flex centering and right margin.
193
+ * Ensures icons are properly sized and aligned within menu items.
194
+ *
195
+ * @param {React.ReactNode} children - Icon element
196
+ * @param {string} [className] - Additional CSS classes to apply
197
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Additional HTML div attributes
198
+ *
199
+ * @returns {React.ReactElement} A centered flex container for an icon
200
+ */
131
201
  export const MenuItemIcon: React.FC<BaseProps> = ({
132
202
  children,
133
203
  className,
@@ -143,7 +213,20 @@ export const MenuItemIcon: React.FC<BaseProps> = ({
143
213
  );
144
214
  };
145
215
 
146
- // Link components for navigation
216
+ /**
217
+ * MenuLink Component
218
+ *
219
+ * React Router Link component styled as a menu item. Shows different background color
220
+ * when the route matches the current location. Includes hover effects and transitions.
221
+ *
222
+ * @param {boolean} [match] - Whether the link destination matches current route
223
+ * @param {string} [to=''] - Route path to navigate to
224
+ * @param {React.ReactNode} children - Link content
225
+ * @param {string} [className] - Additional CSS classes to apply
226
+ * @param {any} props - Additional Link properties
227
+ *
228
+ * @returns {React.ReactElement} A styled navigation link
229
+ */
147
230
  export const MenuLink: React.FC<StyledLinkButtonProps> = ({
148
231
  match,
149
232
  to = '',
@@ -167,7 +250,20 @@ export const MenuLink: React.FC<StyledLinkButtonProps> = ({
167
250
  );
168
251
  };
169
252
 
170
- // Sub menu containers
253
+ /**
254
+ * SubMenuContainer Component
255
+ *
256
+ * Container for sub-menu items that can expand/collapse or navigate.
257
+ * Shows different background color when active/matched. Used for menu items
258
+ * with expandable sub-items or internal navigation.
259
+ *
260
+ * @param {boolean} [match] - Whether the sub-menu is currently active/matched
261
+ * @param {React.ReactNode} children - Sub-menu content
262
+ * @param {string} [className] - Additional CSS classes to apply
263
+ * @param {any} props - Additional HTML attributes
264
+ *
265
+ * @returns {React.ReactElement} A styled container for sub-menu items
266
+ */
171
267
  export const SubMenuContainer: React.FC<StyledLinkButtonProps> = ({
172
268
  match,
173
269
  children,
@@ -189,7 +285,19 @@ export const SubMenuContainer: React.FC<StyledLinkButtonProps> = ({
189
285
  );
190
286
  };
191
287
 
192
- // Sub menu items
288
+ /**
289
+ * SubMenuItemContainer Component
290
+ *
291
+ * Container for a list of sub-menu items that appear below a parent menu item.
292
+ * Includes left border, gap spacing, and left margin for visual hierarchy.
293
+ * Used to display expandable/collapsible sub-menu items.
294
+ *
295
+ * @param {React.ReactNode} children - Sub-menu item elements
296
+ * @param {string} [className] - Additional CSS classes to apply
297
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Additional HTML div attributes
298
+ *
299
+ * @returns {React.ReactElement} A flex column container for sub-menu items
300
+ */
193
301
  export const SubMenuItemContainer: React.FC<BaseProps> = ({
194
302
  children,
195
303
  className,
@@ -208,7 +316,18 @@ export const SubMenuItemContainer: React.FC<BaseProps> = ({
208
316
  );
209
317
  };
210
318
 
211
- // Hover icons
319
+ /**
320
+ * HoverIcon Component
321
+ *
322
+ * Container for icons that appear on hover within menu items.
323
+ * Hidden by default and shown only when parent element is hovered.
324
+ *
325
+ * @param {React.ReactNode} children - Icon element to show on hover
326
+ * @param {string} [className] - Additional CSS classes to apply
327
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Additional HTML div attributes
328
+ *
329
+ * @returns {React.ReactElement} A hidden flex container that shows on hover
330
+ */
212
331
  export const HoverIcon: React.FC<BaseProps> = ({
213
332
  children,
214
333
  className,
@@ -227,7 +346,18 @@ export const HoverIcon: React.FC<BaseProps> = ({
227
346
  );
228
347
  };
229
348
 
230
- // Animation wrapper
349
+ /**
350
+ * AnimationWrapper Component
351
+ *
352
+ * Generic wrapper component for content that may have animation effects.
353
+ * Provides full width and height to accommodate animated children.
354
+ *
355
+ * @param {React.ReactNode} children - Content to wrap with animation support
356
+ * @param {string} [className] - Additional CSS classes to apply
357
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Additional HTML div attributes
358
+ *
359
+ * @returns {React.ReactElement} A full-size flex container for animated content
360
+ */
231
361
  export const AnimationWrapper: React.FC<BaseProps> = ({
232
362
  children,
233
363
  className,
@@ -29,6 +29,40 @@ export interface UserProfilePopupProps {
29
29
  collapsed?: boolean;
30
30
  }
31
31
 
32
+ /**
33
+ * UserProfilePopup Component
34
+ *
35
+ * User profile dropdown menu component displayed in the sidebar footer. Shows user avatar/initials,
36
+ * and provides a menu with Account section, optional Active Devices, custom profile actions, and Logout.
37
+ * Automatically adapts layout when sidebar is collapsed (centered alignment, avatar only).
38
+ *
39
+ * @param {string} userFullName - User's full name (required, used for avatar text and display)
40
+ * @param {string} [email=''] - User's email address (shown in account section)
41
+ * @param {React.ReactNode[]} [profileActions=[]] - Custom menu items to include in the dropdown
42
+ * @param {() => void} [onLogout] - Callback handler when user clicks logout
43
+ * @param {string} [profileUrl] - URL to user's profile image (uses initials fallback if not provided)
44
+ * @param {string} [avatarClassName=''] - Additional CSS classes for the avatar component
45
+ * @param {boolean} [showActiveDevices=false] - Whether to show the "Active Devices" menu item
46
+ * @param {() => void} [onActiveDevicesClick] - Callback handler when user clicks active devices
47
+ * @param {() => void} [onAccountClick] - Callback handler when user clicks the account section
48
+ * @param {boolean} [collapsed] - Whether the sidebar is in collapsed state (affects layout)
49
+ *
50
+ * @returns {React.ReactElement} A dropdown menu anchored to user avatar with profile options
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * <UserProfilePopup
55
+ * userFullName="Jane Smith"
56
+ * email="jane@example.com"
57
+ * profileUrl="/avatar.jpg"
58
+ * showActiveDevices={true}
59
+ * onLogout={handleLogout}
60
+ * onAccountClick={navigateToSettings}
61
+ * onActiveDevicesClick={showDevices}
62
+ * collapsed={false}
63
+ * />
64
+ * ```
65
+ */
32
66
  export const UserProfilePopup: React.FC<UserProfilePopupProps> = ({
33
67
  collapsed,
34
68
  userFullName,
@@ -13,6 +13,27 @@ interface SidebarProviderProps {
13
13
  initialCollapsed?: boolean;
14
14
  }
15
15
 
16
+ /**
17
+ * SidebarProvider Component
18
+ *
19
+ * React Context provider that manages global sidebar collapse state and provides methods
20
+ * to toggle and set the collapse state. Wraps the application or specific layout sections
21
+ * to enable sidebar state management across the component tree.
22
+ *
23
+ * @param {React.ReactNode} children - Child components that will have access to sidebar context
24
+ * @param {boolean} [initialCollapsed=false] - Initial collapsed state of the sidebar
25
+ *
26
+ * @returns {React.ReactElement} Context provider wrapping children with sidebar state
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * <SidebarProvider initialCollapsed={isMobile}>
31
+ * <AppLayout>
32
+ * <Content />
33
+ * </AppLayout>
34
+ * </SidebarProvider>
35
+ * ```
36
+ */
16
37
  export const SidebarProvider: React.FC<SidebarProviderProps> = ({
17
38
  children,
18
39
  initialCollapsed = false,
@@ -30,6 +51,33 @@ export const SidebarProvider: React.FC<SidebarProviderProps> = ({
30
51
  );
31
52
  };
32
53
 
54
+ /**
55
+ * useSidebar Hook
56
+ *
57
+ * Custom React hook to access the sidebar context state and methods.
58
+ * Must be used within a SidebarProvider component, otherwise it throws an error.
59
+ *
60
+ * @returns {{
61
+ * collapsed: boolean;
62
+ * toggleSidebar: () => void;
63
+ * setCollapsed: (collapsed: boolean) => void;
64
+ * }} Object containing sidebar state and methods to control it
65
+ *
66
+ * @throws {Error} If used outside of SidebarProvider
67
+ *
68
+ * @example
69
+ * ```tsx
70
+ * function MyComponent() {
71
+ * const { collapsed, toggleSidebar, setCollapsed } = useSidebar();
72
+ *
73
+ * return (
74
+ * <button onClick={toggleSidebar}>
75
+ * {collapsed ? 'Expand' : 'Collapse'}
76
+ * </button>
77
+ * );
78
+ * }
79
+ * ```
80
+ */
33
81
  export const useSidebar = () => {
34
82
  const context = useContext(SidebarContext);
35
83
  if (!context) {
@@ -22,7 +22,7 @@ export interface AppLayoutProps {
22
22
  menu: SideMenuItemProps[];
23
23
 
24
24
  /**User profile parameters */
25
- userProfileParams: UserProfilePopupProps;
25
+ userProfileParams?: UserProfilePopupProps;
26
26
 
27
27
  /** Switchers section customization - receives collapsed state */
28
28
  actions?: ReactNode | ((params: { collapsed: boolean }) => ReactNode);
@@ -7,6 +7,25 @@ interface PageContentProps {
7
7
  className?: string;
8
8
  }
9
9
 
10
+ /**
11
+ * PageContent Component
12
+ *
13
+ * Main content area wrapper that provides responsive padding, scrolling behavior, and custom scrollbar styling.
14
+ * Automatically adjusts height based on screen size to account for page header and other UI elements.
15
+ * Includes thin scrollbar styling using Tailwind's scrollbar utilities.
16
+ *
17
+ * @param {React.ReactNode} children - Content to render inside the page content area
18
+ * @param {string} [className=''] - Additional CSS classes to apply to the container
19
+ *
20
+ * @returns {React.ReactElement} A scrollable content container with responsive height and styling
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * <PageContent className="bg-white">
25
+ * <YourPageContent />
26
+ * </PageContent>
27
+ * ```
28
+ */
10
29
  const PageContent = ({ children, className }: PageContentProps) => {
11
30
  const isSmallScreen = useMediaQuery('(max-width: 768px)');
12
31
 
@@ -33,6 +33,52 @@ interface PageHeaderProps {
33
33
  };
34
34
  }
35
35
 
36
+ /**
37
+ * PageHeader Component
38
+ *
39
+ * Header component for page content that displays breadcrumbs and action bar with search,
40
+ * filter, add button, and custom action menus. Supports Redux integration for maintaining
41
+ * search and filter state across re-renders. Responsive design with mobile optimization.
42
+ *
43
+ * @param {string} [uniqueId] - Optional unique identifier for Redux state management of this header
44
+ * @param {number} pathTrimCount - Number of path segments to trim from breadcrumb
45
+ * @param {React.ReactElement} [breadcrumbAction] - Optional element to display next to breadcrumbs
46
+ * @param {SearchBarProps & { uniqueId?: string; searchText?: string }} [searchBarProps] - Configuration for search bar including placeholder
47
+ * @param {{
48
+ * label?: string;
49
+ * startIcon?: React.ReactNode;
50
+ * components: React.ReactElement[];
51
+ * }} [filterButtonProps] - Configuration for filter dropdown with filter components
52
+ * @param {{
53
+ * label?: string;
54
+ * onClick: () => void;
55
+ * }} [addButtonProps] - Configuration for add/create button
56
+ * @param {{
57
+ * menu: React.ReactNode[] | ((props: { close: () => void }) => React.ReactNode[]);
58
+ * }} [actionProps] - Configuration for additional action menu
59
+ *
60
+ * @returns {React.ReactElement} A responsive header with breadcrumbs and action controls
61
+ *
62
+ * @example
63
+ * ```tsx
64
+ * <PageHeader
65
+ * uniqueId="users-list"
66
+ * pathTrimCount={1}
67
+ * searchBarProps={{
68
+ * placeholder: "Search users...",
69
+ * uniqueId: "users-list"
70
+ * }}
71
+ * filterButtonProps={{
72
+ * label: "Filters",
73
+ * components: [<StatusFilter />, <RoleFilter />]
74
+ * }}
75
+ * addButtonProps={{
76
+ * label: "Add User",
77
+ * onClick: handleAddUser
78
+ * }}
79
+ * />
80
+ * ```
81
+ */
36
82
  const PageHeader = ({
37
83
  uniqueId,
38
84
  pathTrimCount,
@@ -3,6 +3,28 @@ import { setSearchForUniqueId } from '../../../../redux/slices/pageHeaderSlice';
3
3
  import { RootState } from '../../../../redux/store';
4
4
  import { SearchBar, type SearchBarProps } from '../../../export';
5
5
 
6
+ /**
7
+ * PageHeaderSearchBar Component
8
+ *
9
+ * Redux-integrated search bar component that automatically manages search state in Redux store.
10
+ * The search value is persisted and retrieved using the provided uniqueId, allowing search state
11
+ * to survive component re-renders and navigation.
12
+ *
13
+ * @param {string} [uniqueId='default'] - Unique identifier for Redux state persistence (should match PageHeader uniqueId)
14
+ * @param {string} [searchText='Search'] - Placeholder text for the search input
15
+ * @param {SearchBarProps} props - Additional SearchBar component props
16
+ *
17
+ * @returns {React.ReactElement} A controlled search bar connected to Redux store
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <PageHeaderSearchBar
22
+ * uniqueId="users-list"
23
+ * searchText="Search users..."
24
+ * onSearch={handleSearch}
25
+ * />
26
+ * ```
27
+ */
6
28
  export const PageHeaderSearchBar = ({
7
29
  uniqueId = 'default',
8
30
  searchText = 'Search',
@@ -5,6 +5,46 @@ import { Typography } from '../../DataDisplay/Typography/Typography';
5
5
  import { DropdownMenu } from '../../Navigation/DropDownMenu/DropDownMenu';
6
6
  import { DropdownMenuItem } from '../../Navigation/DropDownMenu/DropdownMenuItem';
7
7
 
8
+ /**
9
+ * UserBox Component
10
+ *
11
+ * User profile information and dropdown menu component with customizable sections.
12
+ * Displays user avatar with fallback to initials, supports optional designation,
13
+ * active devices toggle, custom actions, and logout. Avatar click can trigger
14
+ * custom handler or open the dropdown menu.
15
+ *
16
+ * @param {string} fullName - User's full name (required, used for avatar initials and display)
17
+ * @param {string} [designation=''] - User's job designation or title (optional)
18
+ * @param {any[]} [institutionsData] - Optional array of institution data (for future use)
19
+ * @param {React.ReactNode[]} actions - Array of custom menu item elements to include in dropdown
20
+ * @param {() => void} [onLogoutClick] - Callback handler when logout menu item is clicked
21
+ * @param {string} [profileUrl] - URL to user's profile image (uses initials fallback if not provided)
22
+ * @param {React.ReactNode} [changePassword] - Optional change password component/element
23
+ * @param {any} [profileSx={}] - Custom styles/className to apply to avatar element
24
+ * @param {boolean} [avatar=true] - Whether to show the avatar in the account menu section
25
+ * @param {boolean} [navigationIcon=true] - Whether to show the navigation icon next to account info
26
+ * @param {boolean} [showActiveDevices=true] - Whether to show the "Active Devices" menu item
27
+ * @param {() => void} [onAccountClick] - Callback handler when account section is clicked
28
+ * @param {() => void} [onActiveDevicesClick] - Callback handler when active devices item is clicked
29
+ * @param {() => void} [onChangeInstitutionClick] - Callback handler for changing institution (future use)
30
+ * @param {() => void} [onAvatarClick] - Callback handler when avatar is clicked (prevents menu opening if provided)
31
+ *
32
+ * @returns {React.ReactElement} A user profile dropdown menu component
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * <UserBox
37
+ * fullName="John Doe"
38
+ * designation="Software Engineer"
39
+ * profileUrl="/avatars/john.jpg"
40
+ * onLogoutClick={handleLogout}
41
+ * onAccountClick={navigateToSettings}
42
+ * onActiveDevicesClick={showActiveDevices}
43
+ * actions={[<CustomMenuAction1 />, <CustomMenuAction2 />]}
44
+ * showActiveDevices={true}
45
+ * />
46
+ * ```
47
+ */
8
48
  export default function UserBox({
9
49
  fullName,
10
50
  onLogoutClick,
@@ -22,12 +22,45 @@ import { ReactElement } from 'react';
22
22
  import { getBreadcrumbsCharacter } from '../../../utils/export';
23
23
  import { MenuToggleButton } from '../../Layout/AppLayout/components/MenuToggleButton';
24
24
 
25
+ /**
26
+ * Props for the Breadcrumbs component
27
+ */
25
28
  export type BreadcrumbsProps = {
29
+ /** Number of path segments to trim from the beginning of the current URL path */
26
30
  pathTrimCount: number;
31
+ /** Optional CSS class names for the container element */
27
32
  containerClassName?: string;
33
+ /** Optional React element to render as an action button/component on the right side */
28
34
  action?: ReactElement;
29
35
  };
30
36
 
37
+ /**
38
+ * Breadcrumbs component that displays a navigation breadcrumb trail based on the current URL path.
39
+ *
40
+ * Automatically generates breadcrumb items from the URL pathname and displays them with navigation links.
41
+ * When there are more than 2 breadcrumb items, it shows the first item, a dropdown menu with middle items,
42
+ * and the last item to save space.
43
+ *
44
+ * @component
45
+ * @param {BreadcrumbsProps} props - The component props
46
+ * @param {number} props.pathTrimCount - Number of path segments to trim from the beginning of the URL path
47
+ * @param {string} [props.containerClassName] - Optional CSS class names to apply to the container div
48
+ * @param {ReactElement} [props.action] - Optional React element displayed on the right side of the breadcrumb
49
+ *
50
+ * @returns {React.ReactElement} A div containing the breadcrumb navigation component with a menu toggle button and breadcrumb list
51
+ *
52
+ * @example
53
+ * // Basic usage
54
+ * <Breadcrumbs pathTrimCount={1} />
55
+ *
56
+ * @example
57
+ * // With custom action button
58
+ * <Breadcrumbs
59
+ * pathTrimCount={2}
60
+ * action={<button>Export</button>}
61
+ * containerClassName="bg-gray-50 border-b"
62
+ * />
63
+ */
31
64
  export const Breadcrumbs = ({
32
65
  pathTrimCount,
33
66
  containerClassName,
@@ -8,6 +8,69 @@ import { cn } from '../../../lib/utils';
8
8
  import './Calendar.css';
9
9
  import { CalendarProps } from './types';
10
10
 
11
+ /**
12
+ * Calendar component that provides a fully-featured calendar interface with FullCalendar integration.
13
+ *
14
+ * This component displays an interactive calendar with support for events, drag-and-drop,
15
+ * resizing, and various view modes (month, week, day). It offers extensive customization options
16
+ * for appearance, behavior, and event handling.
17
+ *
18
+ * @component
19
+ * @param {CalendarProps} props - The component props
20
+ * @param {CalendarEvent[]} [props.events] - Array of calendar events to display. Defaults to empty array
21
+ * @param {(eventInfo: CalendarEventClickInfo) => void} [props.onEventClick] - Callback fired when an event is clicked
22
+ * @param {(dropInfo: CalendarEventDropInfo) => void} [props.onEventDrop] - Callback fired when an event is drag-dropped
23
+ * @param {(resizeInfo: CalendarEventResizeInfo) => void} [props.onEventResize] - Callback fired when an event is resized
24
+ * @param {(dateInfo: CalendarDateClickInfo) => void} [props.onDateClick] - Callback fired when a date is clicked
25
+ * @param {(selectInfo: CalendarDateSelectInfo) => void} [props.onDateSelect] - Callback fired when a date range is selected
26
+ * @param {(events: EventApi[]) => void} [props.onEventsSet] - Callback fired when the list of events changes
27
+ * @param {CalendarView} [props.initialView='dayGridMonth'] - Initial view mode to display (dayGridMonth, timeGridWeek, timeGridDay, listWeek)
28
+ * @param {CalendarView[]} [props.views] - Array of available view modes to show in view switcher
29
+ * @param {CalendarHeaderToolbar | boolean} [props.headerToolbar] - Header toolbar configuration object or false to hide it
30
+ * @param {boolean} [props.editable=false] - Whether events can be dragged/resized to modify dates
31
+ * @param {boolean} [props.selectable=false] - Whether users can select date ranges by clicking and dragging
32
+ * @param {boolean} [props.selectMirror=true] - Whether to show a visual mirror while selecting date ranges
33
+ * @param {boolean} [props.eventResizable=false] - Whether events can be resized by dragging their edges
34
+ * @param {boolean} [props.eventDraggable=false] - Whether events can be dragged to change their dates
35
+ * @param {boolean | number} [props.dayMaxEvents=true] - Maximum number of events to show per day (true for auto, false for unlimited)
36
+ * @param {string | number} [props.height='auto'] - Height of the calendar (CSS string or number in pixels)
37
+ * @param {number} [props.aspectRatio] - Aspect ratio for the calendar dimensions
38
+ * @param {React.HTMLAttributes<HTMLDivElement>} [props.containerProps] - Additional HTML attributes for the container div
39
+ * @param {string} [props.locale='en'] - Locale/language code for calendar text (e.g., 'en', 'es', 'fr')
40
+ * @param {string} [props.timezone='local'] - Timezone for displaying dates ('local' or standard timezone identifier)
41
+ * @param {0 | 1 | 2 | 3 | 4 | 5 | 6} [props.firstDayOfWeek=0] - First day of the week (0=Sunday, 1=Monday, etc.)
42
+ * @param {(eventInfo: any) => React.ReactNode} [props.eventContent] - Custom render function for event content
43
+ * @param {(dayInfo: any) => React.ReactNode} [props.dayCellContent] - Custom render function for day cell content
44
+ * @param {boolean} [props.showNavigationButtons=true] - Whether to show previous/next navigation buttons
45
+ * @param {boolean} [props.showViewSwitcher=true] - Whether to show view mode selector buttons
46
+ * @param {boolean} [props.showToday=true] - Whether to show the "today" button
47
+ * @param {boolean} [props.weekends=true] - Whether to display weekend days
48
+ * @param {any} [props.businessHours] - Business hours configuration
49
+ * @param {any} [props.eventConstraint] - Constraint rules for event dragging
50
+ * @param {any} [props.selectConstraint] - Constraint rules for date selection
51
+ *
52
+ * @returns {React.ReactElement} A div container with the FullCalendar component
53
+ *
54
+ * @example
55
+ * // Basic calendar with events
56
+ * <Calendar
57
+ * events={[
58
+ * { id: '1', title: 'Meeting', start: '2024-01-15' }
59
+ * ]}
60
+ * onEventClick={(info) => console.log(info.event.title)}
61
+ * />
62
+ *
63
+ * @example
64
+ * // Editable calendar with custom height
65
+ * <Calendar
66
+ * events={events}
67
+ * editable={true}
68
+ * eventDraggable={true}
69
+ * eventResizable={true}
70
+ * height={600}
71
+ * onEventDrop={(info) => updateEventDate(info)}
72
+ * />
73
+ */
11
74
  export const Calendar: React.FC<CalendarProps> = ({
12
75
  events = [],
13
76