@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
@@ -2,18 +2,76 @@ import { cn } from '@/lib/utils';
2
2
  import { Info, MinusSquare, PlusSquare, SquareCheck } from 'lucide-react';
3
3
  import { ReactNode } from 'react';
4
4
 
5
+ /**
6
+ * Props for individual timeline item
7
+ * @typedef {Object} TimelineItems
8
+ * @property {ReactNode} timelineContent - Main content of the timeline item
9
+ * @property {ReactNode} [timelineOppositeContent] - Optional opposite-side content (for alternate layouts)
10
+ * @property {'info' | 'success' | 'error' | 'warning'} [variant='info'] - Icon variant for the timeline marker
11
+ */
5
12
  export type TimelineItems = {
6
13
  timelineContent: ReactNode;
7
14
  timelineOppositeContent?: ReactNode;
8
15
  variant?: 'info' | 'success' | 'error' | 'warning';
9
16
  };
10
17
 
18
+ /**
19
+ * Props for Timeline component
20
+ * @typedef {Object} TimelineProps
21
+ * @property {TimelineItems[]} timelineItems - Array of timeline items to display
22
+ * @property {'left' | 'right' | 'alternate' | 'alternate-reverse'} [position='right'] - Timeline layout position
23
+ * @property {string} [className] - Optional CSS class for the timeline container
24
+ */
11
25
  export type TimelineProps = {
12
26
  timelineItems: TimelineItems[];
13
27
  position?: 'left' | 'right' | 'alternate' | 'alternate-reverse';
14
28
  className?: string;
15
29
  };
16
30
 
31
+ /**
32
+ * Timeline component for displaying chronological events or steps
33
+ * Supports multiple layout positions and icon variants per item
34
+ *
35
+ * @component
36
+ * @param {TimelineProps} props - Timeline configuration
37
+ * @param {TimelineItems[]} props.timelineItems - Array of timeline events with content and optional opposite content
38
+ * @param {'left' | 'right' | 'alternate' | 'alternate-reverse'} [props.position='right'] - Position of timeline connector
39
+ * - 'left': All content on left side
40
+ * - 'right': All content on right side
41
+ * - 'alternate': Content alternates left/right starting with left
42
+ * - 'alternate-reverse': Content alternates left/right starting with right
43
+ * @param {string} [props.className] - Additional CSS classes for the timeline wrapper
44
+ * @returns {JSX.Element} Timeline visualization with ordered events
45
+ *
46
+ * @example
47
+ * // Basic timeline (content on right)
48
+ * <Timeline
49
+ * position="right"
50
+ * timelineItems={[
51
+ * { timelineContent: "Project started", variant: "success" },
52
+ * { timelineContent: "First milestone", variant: "info" },
53
+ * { timelineContent: "Completed", variant: "success" }
54
+ * ]}
55
+ * />
56
+ *
57
+ * @example
58
+ * // Alternating timeline with opposite content
59
+ * <Timeline
60
+ * position="alternate"
61
+ * timelineItems={[
62
+ * {
63
+ * timelineContent: "Development",
64
+ * timelineOppositeContent: "Jan 2024",
65
+ * variant: "info"
66
+ * },
67
+ * {
68
+ * timelineContent: "Testing",
69
+ * timelineOppositeContent: "Feb 2024",
70
+ * variant: "warning"
71
+ * }
72
+ * ]}
73
+ * />
74
+ */
17
75
  export const Timeline = ({
18
76
  timelineItems,
19
77
  position = 'right',
@@ -4,6 +4,31 @@ import {
4
4
  typographyVariants,
5
5
  } from '@/shadcn-components/DataDisplay/Typography/Typography';
6
6
 
7
+ /**
8
+ * Typography component wrapper around shadcn Typography
9
+ * Provides semantic text rendering with predefined variants
10
+ *
11
+ * @component
12
+ * @param {TypographyProps} props - Typography configuration
13
+ * @param {'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'blockquote' | 'code' | 'lead' | 'large' | 'small' | 'muted'} [props.variant='p'] - Predefined typography variant
14
+ * @param {React.ReactNode} props.children - Content to render with typography styling
15
+ * @param {...TypographyProps} [props] - Additional typography props (className, etc.)
16
+ * @returns {JSX.Element} Styled typography element
17
+ *
18
+ * @example
19
+ * // Heading
20
+ * <Typography variant="h1">Page Title</Typography>
21
+ *
22
+ * @example
23
+ * // Paragraph with custom class
24
+ * <Typography variant="p" className="text-gray-600">
25
+ * This is a paragraph with custom styling
26
+ * </Typography>
27
+ *
28
+ * @example
29
+ * // Small text
30
+ * <Typography variant="small">Small disclaimer text</Typography>
31
+ */
7
32
  export const Typography = ({
8
33
  variant = 'p',
9
34
  children,
@@ -2,6 +2,14 @@ import { AlertDescription, Alert as ShadcnAlert } from '@/shadcn-components/Feed
2
2
  import { AlertCircle, CheckCircle2, Info, TriangleAlert } from 'lucide-react';
3
3
  import { ReactNode } from 'react';
4
4
 
5
+ /**
6
+ * Props for the Alert component.
7
+ * @typedef {Object} AlertProps
8
+ * @property {string | ReactNode} message - The message content to display in the alert
9
+ * @property {'success' | 'error' | 'info' | 'warning'} [severity] - The severity level of the alert that determines the icon displayed
10
+ * @property {'default' | 'destructive'} [variant] - The visual variant of the alert. Defaults to 'destructive' if severity is 'error'
11
+ * @property {string} [className] - Additional CSS classes to apply to the alert component
12
+ */
5
13
  export type AlertProps = {
6
14
  message: string | ReactNode;
7
15
  severity?: 'success' | 'error' | 'info' | 'warning';
@@ -9,6 +17,13 @@ export type AlertProps = {
9
17
  className?: string;
10
18
  };
11
19
 
20
+ /**
21
+ * Returns an icon component based on the alert severity level.
22
+ * @param {AlertProps['severity']} severity - The severity level of the alert
23
+ * @returns {JSX.Element | null} The icon element corresponding to the severity, or null if no severity is provided
24
+ * @example
25
+ * const icon = getIcon('success'); // Returns CheckCircle2 icon
26
+ */
12
27
  const getIcon = (severity: AlertProps['severity']) => {
13
28
  switch (severity) {
14
29
  case 'success':
@@ -24,6 +39,29 @@ const getIcon = (severity: AlertProps['severity']) => {
24
39
  }
25
40
  };
26
41
 
42
+ /**
43
+ * Alert component that displays a message with an optional severity-based icon.
44
+ * Renders a styled alert box with appropriate visual indicators based on severity level.
45
+ *
46
+ * @param {AlertProps} props - The component props
47
+ * @param {string | ReactNode} props.message - The message content to display
48
+ * @param {'success' | 'error' | 'info' | 'warning'} [props.severity] - The severity level determining icon and styling
49
+ * @param {'default' | 'destructive'} [props.variant] - The visual variant. Overrides default variant selection
50
+ * @param {string} [props.className] - Additional CSS classes to apply to the alert
51
+ * @returns {JSX.Element} The rendered alert component
52
+ *
53
+ * @example
54
+ * // Display a success alert
55
+ * <Alert message="Operation completed successfully" severity="success" />
56
+ *
57
+ * @example
58
+ * // Display an error alert with custom styling
59
+ * <Alert
60
+ * message="An error occurred"
61
+ * severity="error"
62
+ * className="mt-4"
63
+ * />
64
+ */
27
65
  export const Alert = ({
28
66
  severity,
29
67
  message,
@@ -9,13 +9,33 @@ import { useEffect } from 'react';
9
9
  import { Typography } from '../../DataDisplay/Typography/Typography';
10
10
  import { Button } from '../../Input/Button/Button';
11
11
 
12
+ /**
13
+ * Severity levels for snackbar alerts.
14
+ * @typedef {'success' | 'info' | 'warning' | 'error'} Severity
15
+ */
12
16
  export type Severity = 'success' | 'info' | 'warning' | 'error';
13
17
 
18
+ /**
19
+ * Position configuration for snackbar placement on screen.
20
+ * @typedef {Object} SnackbarPosition
21
+ * @property {'top' | 'bottom'} vertical - Vertical alignment of the snackbar
22
+ * @property {'left' | 'center' | 'right'} horizontal - Horizontal alignment of the snackbar
23
+ */
14
24
  export type SnackbarPosition = {
15
25
  vertical: 'top' | 'bottom';
16
26
  horizontal: 'left' | 'center' | 'right';
17
27
  };
18
28
 
29
+ /**
30
+ * Props for the Snackbar component.
31
+ * @typedef {Object} SnackbarProps
32
+ * @property {Severity} severity - The severity level of the snackbar (success, info, warning, error)
33
+ * @property {string} message - The message text to display in the snackbar
34
+ * @property {boolean} open - Whether the snackbar is visible
35
+ * @property {Function} [onClose] - Callback function when snackbar is closed. Called with reason ('timeout' or 'clickaway')
36
+ * @property {SnackbarPosition} [anchorOrigin] - Position configuration for the snackbar placement. Defaults to {vertical: 'top', horizontal: 'center'}
37
+ * @property {number} [autoHideDuration] - Duration in milliseconds after which the snackbar auto-closes. If not provided, snackbar stays open until manually closed
38
+ */
19
39
  export type SnackbarProps = {
20
40
  severity: Severity;
21
41
  message: string;
@@ -25,6 +45,40 @@ export type SnackbarProps = {
25
45
  autoHideDuration?: number;
26
46
  };
27
47
 
48
+ /**
49
+ * Snackbar component for displaying temporary notification messages.
50
+ * Displays a dismissible notification box with icon and message based on severity.
51
+ * Auto-hides after specified duration or when close button is clicked.
52
+ *
53
+ * @param {SnackbarProps} props - The component props
54
+ * @param {Severity} props.severity - The severity level of the notification
55
+ * @param {string} props.message - The message text to display
56
+ * @param {boolean} props.open - Whether the snackbar is visible
57
+ * @param {Function} [props.onClose] - Callback when snackbar is closed. Receives close reason as parameter
58
+ * @param {SnackbarPosition} [props.anchorOrigin] - Position configuration for placement (defaults to top center)
59
+ * @param {number} [props.autoHideDuration] - Duration in milliseconds before auto-closing (undefined = no auto-close)
60
+ * @returns {JSX.Element | null} The rendered snackbar component or null if not open
61
+ *
62
+ * @example
63
+ * // Display a success message that auto-hides after 3 seconds
64
+ * <Snackbar
65
+ * severity="success"
66
+ * message="Changes saved successfully"
67
+ * open={true}
68
+ * autoHideDuration={3000}
69
+ * onClose={(reason) => console.log('Closed:', reason)}
70
+ * />
71
+ *
72
+ * @example
73
+ * // Position snackbar at bottom-right
74
+ * <Snackbar
75
+ * severity="info"
76
+ * message="New updates available"
77
+ * open={isOpen}
78
+ * anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}
79
+ * onClose={() => setIsOpen(false)}
80
+ * />
81
+ */
28
82
  export const Snackbar = ({
29
83
  severity,
30
84
  message,
@@ -1,3 +1,18 @@
1
+ /**
2
+ * Spinner component that displays an animated loading indicator.
3
+ * Renders a dual-colored rotating spinner with smooth continuous animation.
4
+ * No props required - it's a simple stateless component.
5
+ *
6
+ * @returns {JSX.Element} The rendered spinner component
7
+ *
8
+ * @example
9
+ * // Display a loading spinner
10
+ * <Spinner />
11
+ *
12
+ * @example
13
+ * // Use in a loading state
14
+ * {isLoading ? <Spinner /> : <div>Content loaded</div>}
15
+ */
1
16
  export const Spinner = () => {
2
17
  return (
3
18
  <div className="relative h-10 w-10 scale-[0.4] rounded-full [animation:rotate_1s_linear_infinite] before:absolute before:inset-0 before:box-border before:rounded-full before:border-[5px] before:border-[#7D60D9] before:content-[''] before:[animation:prixClipFix_1.5s_linear_infinite] after:absolute after:inset-0 after:box-border after:rounded-full after:border-[5px] after:border-[#FF3D00] after:content-[''] after:[animation:prixClipFix_1.5s_linear_infinite] after:[transform:rotate3d(90,90,0,180deg)]" />
@@ -6,6 +6,18 @@ import {
6
6
  TooltipTrigger,
7
7
  } from '@/shadcn-components/Feedback/Tooltip/Tooltip';
8
8
 
9
+ /**
10
+ * Props for the Tooltip component.
11
+ * @typedef {Object} TooltipProps
12
+ * @property {ReactNode} children - The element that triggers the tooltip on hover
13
+ * @property {ReactNode} title - The tooltip content to display
14
+ * @property {'top' | 'right' | 'bottom' | 'left'} [placement] - The direction to place the tooltip relative to the trigger element. Defaults to 'right'
15
+ * @property {boolean} [arrow] - Whether to display an arrow pointing to the trigger element. Currently not implemented in UI
16
+ * @property {boolean} [open] - Controlled open state of the tooltip
17
+ * @property {boolean} [defaultOpen] - Initial open state if tooltip is uncontrolled
18
+ * @property {Function} [onOpenChange] - Callback fired when tooltip open state changes
19
+ * @property {number} [delayDuration] - Delay in milliseconds before tooltip appears on hover
20
+ */
9
21
  export type TooltipProps = {
10
22
  children: ReactNode;
11
23
  title: ReactNode;
@@ -17,6 +29,48 @@ export type TooltipProps = {
17
29
  delayDuration?: number;
18
30
  };
19
31
 
32
+ /**
33
+ * Tooltip component that displays contextual information on hover.
34
+ * Wraps the shadcn tooltip component with enhanced positioning and configuration options.
35
+ * Supports both controlled and uncontrolled modes for tooltip visibility.
36
+ *
37
+ * @param {TooltipProps} props - The component props
38
+ * @param {ReactNode} props.children - The element that triggers the tooltip
39
+ * @param {ReactNode} props.title - The tooltip content to display
40
+ * @param {'top' | 'right' | 'bottom' | 'left'} [props.placement] - Tooltip placement direction (defaults to 'right')
41
+ * @param {boolean} [props.arrow] - Arrow display option (not currently implemented)
42
+ * @param {boolean} [props.open] - Controlled open state
43
+ * @param {boolean} [props.defaultOpen] - Initial open state for uncontrolled mode
44
+ * @param {Function} [props.onOpenChange] - Callback when open state changes
45
+ * @param {number} [props.delayDuration] - Delay before showing tooltip in milliseconds
46
+ * @returns {JSX.Element} The rendered tooltip component
47
+ *
48
+ * @example
49
+ * // Basic tooltip with default placement
50
+ * <Tooltip title="This is a helpful tip">
51
+ * <button>Hover me</button>
52
+ * </Tooltip>
53
+ *
54
+ * @example
55
+ * // Tooltip positioned at bottom with delay
56
+ * <Tooltip
57
+ * title="Additional information"
58
+ * placement="bottom"
59
+ * delayDuration={500}
60
+ * >
61
+ * <span>Information icon</span>
62
+ * </Tooltip>
63
+ *
64
+ * @example
65
+ * // Controlled tooltip state
66
+ * <Tooltip
67
+ * title="Controlled tooltip"
68
+ * open={isTooltipOpen}
69
+ * onOpenChange={setIsTooltipOpen}
70
+ * >
71
+ * <button>Toggle</button>
72
+ * </Tooltip>
73
+ */
20
74
  export const Tooltip = ({
21
75
  children,
22
76
  title,
@@ -13,6 +13,32 @@ export type ButtonProps = React.ComponentProps<'button'> &
13
13
  fullWidth?: boolean;
14
14
  };
15
15
 
16
+ /**
17
+ * Button component with enhanced features
18
+ *
19
+ * A customizable button component that wraps the shadcn Button with additional
20
+ * functionality including loading states, icons, and full width options.
21
+ *
22
+ * @component
23
+ * @param {ButtonProps} props - The button properties
24
+ * @param {boolean} [props.loading=false] - Whether the button is in a loading state
25
+ * @param {ReactNode} [props.startIcon] - Icon to display at the start of the button
26
+ * @param {ReactNode} [props.endIcon] - Icon to display at the end of the button
27
+ * @param {boolean} [props.fullWidth=false] - Whether the button should take full width
28
+ * @param {boolean} [props.disabled] - Whether the button is disabled
29
+ * @param {ReactNode} [props.children] - The button content/label
30
+ * @param {string} [props.className] - Additional CSS classes to apply
31
+ * @param {string} [props.variant] - Button style variant from buttonVariants
32
+ * @param {string} [props.size] - Button size variant from buttonVariants
33
+ * @returns {React.ReactElement} The rendered button element
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * <Button loading={isLoading} startIcon={<SendIcon />} variant="default">
38
+ * Submit
39
+ * </Button>
40
+ * ```
41
+ */
16
42
  export const Button = ({
17
43
  loading = false,
18
44
  disabled,
@@ -33,6 +33,47 @@ export type DatePickerProps = {
33
33
  [key: string]: any;
34
34
  };
35
35
 
36
+ /**
37
+ * DatePicker component for date selection
38
+ *
39
+ * A flexible date picker component that supports both input and filter modes,
40
+ * with customizable date formats, restrictions, and shortcuts.
41
+ *
42
+ * @component
43
+ * @param {DatePickerProps} props - The date picker properties
44
+ * @param {React.ReactNode | string} [props.label] - Label for the date picker
45
+ * @param {string} [props.name] - Name attribute for the input
46
+ * @param {Date} [props.value] - Currently selected date
47
+ * @param {(date: Date | undefined) => void} [props.onChange] - Callback fired when date changes
48
+ * @param {DateFormat} [props.format='dd/MM/yyyy'] - Date format for display
49
+ * @param {string} [props.placeholder] - Placeholder text
50
+ * @param {string} [props.helperText] - Helper text below the input
51
+ * @param {boolean} [props.required] - Whether the field is required
52
+ * @param {boolean} [props.disabled] - Whether the picker is disabled
53
+ * @param {Date} [props.minDate] - Minimum selectable date
54
+ * @param {Date} [props.maxDate] - Maximum selectable date
55
+ * @param {boolean} [props.disablePast] - Whether past dates are disabled
56
+ * @param {boolean} [props.disableFuture] - Whether future dates are disabled
57
+ * @param {(date: Date) => boolean} [props.shouldDisableDate] - Custom date disable logic
58
+ * @param {(date: Date) => boolean} [props.shouldDisableMonth] - Custom month disable logic
59
+ * @param {(date: Date) => boolean} [props.shouldDisableYear] - Custom year disable logic
60
+ * @param {boolean} [props.fullWidth] - Whether the picker takes full width
61
+ * @param {'input' | 'filter'} [props.type='input'] - Display type of the picker
62
+ * @param {() => void} [props.onOpen] - Callback when picker opens
63
+ * @param {() => void} [props.onClose] - Callback when picker closes
64
+ * @returns {React.ReactElement} The rendered date picker component
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * <DatePicker
69
+ * label="Select Date"
70
+ * value={date}
71
+ * onChange={setDate}
72
+ * format="dd/MM/yyyy"
73
+ * required
74
+ * />
75
+ * ```
76
+ */
36
77
  export const DatePicker = ({
37
78
  type = 'input',
38
79
  ...props
@@ -61,6 +61,48 @@ export type DateTimePickerProps = {
61
61
  [key: string]: any;
62
62
  };
63
63
 
64
+ /**
65
+ * DateTimePicker component for date and time selection
66
+ *
67
+ * A comprehensive date and time picker component supporting both input and filter modes,
68
+ * with flexible date/time formats, time unit selection, and date restrictions.
69
+ *
70
+ * @component
71
+ * @param {DateTimePickerProps} props - The date time picker properties
72
+ * @param {React.ReactNode | string} [props.label] - Label for the picker
73
+ * @param {string} [props.name] - Name attribute for the input
74
+ * @param {Date} [props.value] - Currently selected date and time
75
+ * @param {(date: Date | undefined) => void} [props.onChange] - Callback fired when date/time changes
76
+ * @param {DateTimeFormat} [props.format] - Date and time format for display
77
+ * @param {DateTimePickerViews[]} [props.views] - Which time units to display (year, month, day, hours, minutes, seconds)
78
+ * @param {string} [props.placeholder] - Placeholder text
79
+ * @param {string} [props.helperText] - Helper text below the input
80
+ * @param {boolean} [props.required] - Whether the field is required
81
+ * @param {boolean} [props.disabled] - Whether the picker is disabled
82
+ * @param {Date} [props.minDate] - Minimum selectable date/time
83
+ * @param {Date} [props.maxDate] - Maximum selectable date/time
84
+ * @param {boolean} [props.disablePast] - Whether past dates/times are disabled
85
+ * @param {boolean} [props.disableFuture] - Whether future dates/times are disabled
86
+ * @param {(date: Date) => boolean} [props.shouldDisableDate] - Custom date disable logic
87
+ * @param {(date: Date) => boolean} [props.shouldDisableMonth] - Custom month disable logic
88
+ * @param {(date: Date) => boolean} [props.shouldDisableYear] - Custom year disable logic
89
+ * @param {boolean} [props.fullWidth] - Whether the picker takes full width
90
+ * @param {'input' | 'filter'} [props.type='input'] - Display type of the picker
91
+ * @param {() => void} [props.onOpen] - Callback when picker opens
92
+ * @param {() => void} [props.onClose] - Callback when picker closes
93
+ * @returns {React.ReactElement} The rendered date time picker component
94
+ *
95
+ * @example
96
+ * ```tsx
97
+ * <DateTimePicker
98
+ * label="Select Date & Time"
99
+ * value={dateTime}
100
+ * onChange={setDateTime}
101
+ * format="dd/MM/yyyy hh:mm a"
102
+ * views={['year', 'month', 'day', 'hours', 'minutes']}
103
+ * />
104
+ * ```
105
+ */
64
106
  export const DateTimePicker = ({
65
107
  type = 'input',
66
108
  ...props
@@ -26,6 +26,47 @@ export type FileUploadProps = {
26
26
  required?: boolean;
27
27
  };
28
28
 
29
+ /**
30
+ * FileUpload component for file selection and management
31
+ *
32
+ * A comprehensive file upload component with drag-and-drop support, file validation,
33
+ * preview capabilities, and file management features.
34
+ *
35
+ * @component
36
+ * @param {FileUploadProps} props - The file upload properties
37
+ * @param {string} props.label - Label text for the upload field
38
+ * @param {string} props.name - Name attribute for the input element
39
+ * @param {File[]} [props.files=[]] - Array of currently selected files
40
+ * @param {(files: File[]) => void} [props.onChange] - Callback fired when files are selected
41
+ * @param {(index: number) => void} [props.handleRemove] - Callback to remove a file by index
42
+ * @param {'image/*' | '.pdf' | '.docx' | '.txt' | '*'} [props.accept='*'] - File type filter
43
+ * @param {(file: File) => void} [props.onInvalidFile] - Callback fired when an invalid file is selected
44
+ * @param {string} [props.inputText] - Custom text for the upload prompt
45
+ * @param {boolean} [props.multiple=true] - Whether multiple files can be selected
46
+ * @param {boolean} [props.disabled=false] - Whether the upload is disabled
47
+ * @param {boolean} [props.hideDeleteButton=false] - Whether to hide delete buttons on files
48
+ * @param {boolean} [props.hideInput=false] - Whether to hide the file input area
49
+ * @param {string} [props.errorText] - Error message to display
50
+ * @param {string} [props.className] - Additional CSS classes for the upload area
51
+ * @param {string} [props.containerClassName] - Additional CSS classes for the container
52
+ * @param {boolean} [props.showImage] - Whether to show image previews instead of file list
53
+ * @param {string} [props.previewClassName] - Additional CSS classes for previews
54
+ * @param {boolean} [props.required] - Whether the field is required
55
+ * @returns {React.ReactElement} The rendered file upload component
56
+ *
57
+ * @example
58
+ * ```tsx
59
+ * <FileUpload
60
+ * label="Upload Documents"
61
+ * name="documents"
62
+ * files={files}
63
+ * onChange={setFiles}
64
+ * accept=".pdf,.docx"
65
+ * multiple
66
+ * required
67
+ * />
68
+ * ```
69
+ */
29
70
  export const FileUpload = ({
30
71
  label,
31
72
  name = 'file-input',
@@ -14,6 +14,43 @@ export interface FormActionsProps {
14
14
  showTopBorder?: boolean;
15
15
  }
16
16
 
17
+ /**
18
+ * FormActions component for form submission and cancellation
19
+ *
20
+ * A component that renders submit and cancel buttons with customizable configurations
21
+ * and visibility options. Typically used at the bottom of forms.
22
+ *
23
+ * @component
24
+ * @param {FormActionsProps} props - The form actions properties
25
+ * @param {ButtonConfig} [props.submitButtonProps] - Configuration for the submit button
26
+ * @param {ButtonConfig} [props.submitButtonProps.show=true] - Whether to show the submit button
27
+ * @param {string} [props.submitButtonProps.title='Submit'] - Submit button label
28
+ * @param {() => void} [props.submitButtonProps.onClick] - Callback when submit is clicked
29
+ * @param {ButtonConfig} [props.cancelButtonProps] - Configuration for the cancel button
30
+ * @param {ButtonConfig} [props.cancelButtonProps.show=true] - Whether to show the cancel button
31
+ * @param {string} [props.cancelButtonProps.title='Cancel'] - Cancel button label
32
+ * @param {() => void} [props.cancelButtonProps.onClick] - Callback when cancel is clicked
33
+ * @param {string} [props.className] - Additional CSS classes to apply
34
+ * @param {boolean} [props.showTopBorder=false] - Whether to show a top border
35
+ * @returns {React.ReactElement} The rendered form actions component
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * <FormActions
40
+ * submitButtonProps={{
41
+ * title: 'Save Changes',
42
+ * onClick: handleSubmit,
43
+ * variant: 'default'
44
+ * }}
45
+ * cancelButtonProps={{
46
+ * title: 'Discard',
47
+ * onClick: handleCancel,
48
+ * variant: 'ghost'
49
+ * }}
50
+ * showTopBorder
51
+ * />
52
+ * ```
53
+ */
17
54
  export const FormActions = ({
18
55
  submitButtonProps,
19
56
  cancelButtonProps,
@@ -32,6 +32,37 @@ type ControlledElementProps<T extends FieldValues = FieldValues> = {
32
32
  [key: string]: any;
33
33
  };
34
34
 
35
+ /**
36
+ * FormControlWrapper component for react-hook-form integration
37
+ *
38
+ * A wrapper component that integrates react-hook-form's Controller with form elements,
39
+ * automatically handling field registration, validation, and error display.
40
+ *
41
+ * @component
42
+ * @template T - The form values type from react-hook-form
43
+ * @param {FormControlWrapperProps<T>} props - The wrapper properties
44
+ * @param {Control<T>} props.control - React Hook Form control instance from useForm()
45
+ * @param {ReactNode} props.children - Child form elements to be controlled
46
+ * @param {string} [props.containerClassName] - Additional CSS classes for the container
47
+ * @param {FormActionsProps} [props.formActionProps] - Properties for form submit/cancel buttons
48
+ * @param {boolean} [props.disabled=false] - Whether all controlled fields are disabled
49
+ * @returns {React.ReactElement} The rendered wrapper with controlled form elements
50
+ *
51
+ * @example
52
+ * ```tsx
53
+ * const { control, handleSubmit } = useForm();
54
+ *
55
+ * <FormControlWrapper
56
+ * control={control}
57
+ * formActionProps={{
58
+ * submitButtonProps: { onClick: handleSubmit(onSubmit) }
59
+ * }}
60
+ * >
61
+ * <TextField name="email" label="Email" />
62
+ * <PasswordField name="password" label="Password" />
63
+ * </FormControlWrapper>
64
+ * ```
65
+ */
35
66
  export function FormControlWrapper<T extends FieldValues = FieldValues>({
36
67
  control,
37
68
  children,
@@ -6,6 +6,26 @@ type FormWrapperProps = {
6
6
  className?: string;
7
7
  };
8
8
 
9
+ /**
10
+ * FormWrapper component for layout styling
11
+ *
12
+ * A simple wrapper component that provides default styling and spacing for form elements.
13
+ * Used to maintain consistent form layout and spacing throughout the application.
14
+ *
15
+ * @component
16
+ * @param {FormWrapperProps} props - The wrapper properties
17
+ * @param {ReactNode} props.children - Child form elements
18
+ * @param {string} [props.className] - Additional CSS classes to apply
19
+ * @returns {React.ReactElement} The styled form wrapper container
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <FormWrapper>
24
+ * <TextField label="Name" name="name" />
25
+ * <TextField label="Email" name="email" />
26
+ * </FormWrapper>
27
+ * ```
28
+ */
9
29
  export const FormWrapper = ({ children, className }: FormWrapperProps) => {
10
30
  return (
11
31
  <div className={cn('flex flex-col gap-3 m-4', className)}>{children}</div>
@@ -1,6 +1,20 @@
1
1
  import { MessageCircleQuestionMark } from 'lucide-react';
2
2
  import { Button } from '../../export';
3
3
 
4
+ /**
5
+ * HelpButton component for documentation access
6
+ *
7
+ * A button component that opens the help/documentation page in a new window
8
+ * when clicked. Features a question mark icon.
9
+ *
10
+ * @component
11
+ * @returns {React.ReactElement} The rendered help button
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * <HelpButton />
16
+ * ```
17
+ */
4
18
  const HelpButton = () => {
5
19
  return (
6
20
  <Button
@@ -1,6 +1,22 @@
1
1
  import { Trash2 } from 'lucide-react';
2
2
  import { Button, ButtonProps } from '../../Button/Button';
3
3
 
4
+ /**
5
+ * DeleteButton component for delete actions
6
+ *
7
+ * An icon button with a trash icon for triggering delete/remove actions.
8
+ * Minimal styling suitable for use in tables and lists.
9
+ *
10
+ * @component
11
+ * @param {ButtonProps} props - Button properties
12
+ * @param {boolean} [props.disabled] - Whether the button is disabled
13
+ * @returns {React.ReactElement} The rendered delete button
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <DeleteButton onClick={handleDelete} />
18
+ * ```
19
+ */
4
20
  export function DeleteButton({ disabled, ...props }: ButtonProps) {
5
21
  return (
6
22
  <Button size="icon" variant="ghost" disabled={disabled} {...props}>