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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/cjs/types/src/components/Assets/ErrorPages/ComingSoon.d.ts +24 -0
  3. package/dist/cjs/types/src/components/Assets/ErrorPages/InternalServerError.d.ts +20 -0
  4. package/dist/cjs/types/src/components/Assets/ErrorPages/NoInternetConnection.d.ts +20 -0
  5. package/dist/cjs/types/src/components/Assets/ErrorPages/NoItemFound.d.ts +28 -0
  6. package/dist/cjs/types/src/components/Assets/ErrorPages/PageNotFound.d.ts +21 -0
  7. package/dist/cjs/types/src/components/Assets/ErrorPages/ResourceNotFound.d.ts +21 -0
  8. package/dist/cjs/types/src/components/Assets/ErrorPages/UnAuthorized.d.ts +31 -0
  9. package/dist/cjs/types/src/components/Assets/Icons/Icons.d.ts +54 -0
  10. package/dist/cjs/types/src/components/Charts/BarChart/BarChart.d.ts +38 -0
  11. package/dist/cjs/types/src/components/Charts/BarChart/HorizontalBarChart.d.ts +93 -0
  12. package/dist/cjs/types/src/components/Charts/BarChart/VerticalBarChart.d.ts +110 -0
  13. package/dist/cjs/types/src/components/Charts/LineChart/LineChart.d.ts +89 -0
  14. package/dist/cjs/types/src/components/Charts/PieChart/PieChart.d.ts +86 -0
  15. package/dist/cjs/types/src/components/Charts/TreeMap/TreeMap.d.ts +74 -0
  16. package/dist/cjs/types/src/components/DataDisplay/Accordion/Accordion.d.ts +54 -0
  17. package/dist/cjs/types/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.d.ts +35 -0
  18. package/dist/cjs/types/src/components/DataDisplay/ActivityLogView/ActivityLogView.d.ts +78 -0
  19. package/dist/cjs/types/src/components/DataDisplay/Avatar/Avatar.d.ts +40 -0
  20. package/dist/cjs/types/src/components/DataDisplay/Chip/Chip.d.ts +28 -0
  21. package/dist/cjs/types/src/components/DataDisplay/Chips/Chips.d.ts +55 -0
  22. package/dist/cjs/types/src/components/DataDisplay/DataTable/DataTable.d.ts +95 -0
  23. package/dist/cjs/types/src/components/DataDisplay/DataTable/components/TablePagination.d.ts +35 -0
  24. package/dist/cjs/types/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.d.ts +30 -0
  25. package/dist/cjs/types/src/components/DataDisplay/ReactJoyride/ReactJoyride.d.ts +64 -0
  26. package/dist/cjs/types/src/components/DataDisplay/Separator/Separator.d.ts +30 -0
  27. package/dist/cjs/types/src/components/DataDisplay/Skeleton/Skeleton.d.ts +20 -0
  28. package/dist/cjs/types/src/components/DataDisplay/StatusCard/StatusCard.d.ts +36 -0
  29. package/dist/cjs/types/src/components/DataDisplay/Timeline/Timeline.d.ts +58 -0
  30. package/dist/cjs/types/src/components/DataDisplay/Typography/Typography.d.ts +25 -0
  31. package/dist/cjs/types/src/components/Feedback/Alert/Alert.d.ts +31 -0
  32. package/dist/cjs/types/src/components/Feedback/Snackbar/Snackbar.d.ts +54 -0
  33. package/dist/cjs/types/src/components/Feedback/Spinner/Spinner.d.ts +15 -0
  34. package/dist/cjs/types/src/components/Feedback/Tooltip/Tooltip.d.ts +54 -0
  35. package/dist/cjs/types/src/components/Input/Button/Button.d.ts +26 -0
  36. package/dist/cjs/types/src/components/Input/DatePicker/DatePicker.d.ts +43 -1
  37. package/dist/cjs/types/src/components/Input/DatePicker/components/DatePickerFilter.d.ts +2 -0
  38. package/dist/cjs/types/src/components/Input/DatePicker/components/DatePickerInput.d.ts +2 -0
  39. package/dist/cjs/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +44 -1
  40. package/dist/cjs/types/src/components/Input/DateTimePicker/components/DateTimePickerFilter.d.ts +2 -0
  41. package/dist/cjs/types/src/components/Input/DateTimePicker/components/DateTimePickerInput.d.ts +2 -0
  42. package/dist/cjs/types/src/components/Input/FileUpload/FileUpload.d.ts +41 -0
  43. package/dist/cjs/types/src/components/Input/FormActions/FormActions.d.ts +37 -0
  44. package/dist/cjs/types/src/components/Input/FormControlWrapper/FormControlWrapper.d.ts +31 -0
  45. package/dist/cjs/types/src/components/Input/FormWrapper/FormWrapper.d.ts +20 -0
  46. package/dist/cjs/types/src/components/Input/HelpButton/HelpButton.d.ts +14 -0
  47. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/DeleteButton.d.ts +16 -0
  48. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/EditButton.d.ts +16 -0
  49. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/RedirectButton.d.ts +16 -0
  50. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/ViewButton.d.ts +16 -0
  51. package/dist/cjs/types/src/components/Input/IconButtons/IconButtons.d.ts +18 -0
  52. package/dist/cjs/types/src/components/Input/LabelWrapper/LabelWrapper.d.ts +26 -0
  53. package/dist/cjs/types/src/components/Input/MultiCheckBox/MultiCheckBox.d.ts +34 -0
  54. package/dist/cjs/types/src/components/Input/MultiSelect/MultiSelect.d.ts +42 -0
  55. package/dist/cjs/types/src/components/Input/MultiSelect/components/MultiSelectFilter.d.ts +1 -1
  56. package/dist/cjs/types/src/components/Input/MultiSelect/components/MultiSelectInput.d.ts +1 -1
  57. package/dist/cjs/types/src/components/Input/OtpInput/OtpInput.d.ts +29 -0
  58. package/dist/cjs/types/src/components/Input/PasswordField/PasswordField.d.ts +34 -0
  59. package/dist/cjs/types/src/components/Input/RadioGroup/RadioGroup.d.ts +38 -0
  60. package/dist/cjs/types/src/components/Input/SearchBar/SearchBar.d.ts +26 -0
  61. package/dist/cjs/types/src/components/Input/Select/Select.d.ts +34 -1
  62. package/dist/cjs/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
  63. package/dist/cjs/types/src/components/Input/SingleSelect/SingleSelect.d.ts +42 -0
  64. package/dist/cjs/types/src/components/Input/SingleSelect/components/SingleFilter.d.ts +1 -1
  65. package/dist/cjs/types/src/components/Input/SingleSelect/components/SingleInput.d.ts +1 -1
  66. package/dist/cjs/types/src/components/Input/Switch/Switch.d.ts +23 -0
  67. package/dist/cjs/types/src/components/Input/Tags/Tags.d.ts +26 -0
  68. package/dist/cjs/types/src/components/Input/TextField/TextField.d.ts +35 -0
  69. package/dist/cjs/types/src/components/Input/Textarea/Textarea.d.ts +36 -0
  70. package/dist/cjs/types/src/components/Layout/AppLayout/AppLayout.d.ts +32 -0
  71. package/dist/cjs/types/src/components/Layout/AppLayout/components/MenuToggleButton.d.ts +16 -0
  72. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/MenuBar.d.ts +26 -0
  73. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/MenuItem.d.ts +37 -0
  74. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/Sidebar.d.ts +30 -1
  75. package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.d.ts +139 -0
  76. package/dist/cjs/types/src/components/Layout/AppLayout/components/UserProfilePopup.d.ts +34 -0
  77. package/dist/cjs/types/src/components/Layout/AppLayout/context/SidebarContext.d.ts +48 -0
  78. package/dist/cjs/types/src/components/Layout/AppLayout/types.d.ts +1 -1
  79. package/dist/cjs/types/src/components/Layout/PageContent/PageContent.d.ts +19 -0
  80. package/dist/cjs/types/src/components/Layout/PageHeader/PageHeader.d.ts +46 -0
  81. package/dist/cjs/types/src/components/Layout/PageHeader/components/SearchBar.d.ts +22 -0
  82. package/dist/cjs/types/src/components/Layout/UserBox/UserBox.d.ts +40 -0
  83. package/dist/cjs/types/src/components/Navigation/Breadcrumbs/Breadcrumbs.d.ts +33 -0
  84. package/dist/cjs/types/src/components/Navigation/Calendar/Calendar.d.ts +63 -0
  85. package/dist/cjs/types/src/components/Navigation/ConfirmDialog/ConfirmDialog.d.ts +64 -0
  86. package/dist/cjs/types/src/components/Navigation/Dialog/Dialog.d.ts +55 -0
  87. package/dist/cjs/types/src/components/Navigation/DialogButton/DialogButton.d.ts +64 -0
  88. package/dist/cjs/types/src/components/Navigation/DropDownMenu/DropDownMenu.d.ts +73 -0
  89. package/dist/cjs/types/src/components/Navigation/PreviewFiles/PreviewFiles.d.ts +54 -0
  90. package/dist/cjs/types/src/components/Navigation/Stepper/Stepper.d.ts +55 -10
  91. package/dist/cjs/types/src/components/Navigation/TabsContainer/TabsContainer.d.ts +80 -0
  92. package/dist/cjs/types/src/components/Navigation/UploadDialog/UploadDialog.d.ts +64 -0
  93. package/dist/cjs/types/src/shadcn-components/Input/Select/Select.d.ts +2 -2
  94. package/dist/esm/index.js +2 -2
  95. package/dist/esm/types/src/components/Assets/ErrorPages/ComingSoon.d.ts +24 -0
  96. package/dist/esm/types/src/components/Assets/ErrorPages/InternalServerError.d.ts +20 -0
  97. package/dist/esm/types/src/components/Assets/ErrorPages/NoInternetConnection.d.ts +20 -0
  98. package/dist/esm/types/src/components/Assets/ErrorPages/NoItemFound.d.ts +28 -0
  99. package/dist/esm/types/src/components/Assets/ErrorPages/PageNotFound.d.ts +21 -0
  100. package/dist/esm/types/src/components/Assets/ErrorPages/ResourceNotFound.d.ts +21 -0
  101. package/dist/esm/types/src/components/Assets/ErrorPages/UnAuthorized.d.ts +31 -0
  102. package/dist/esm/types/src/components/Assets/Icons/Icons.d.ts +54 -0
  103. package/dist/esm/types/src/components/Charts/BarChart/BarChart.d.ts +38 -0
  104. package/dist/esm/types/src/components/Charts/BarChart/HorizontalBarChart.d.ts +93 -0
  105. package/dist/esm/types/src/components/Charts/BarChart/VerticalBarChart.d.ts +110 -0
  106. package/dist/esm/types/src/components/Charts/LineChart/LineChart.d.ts +89 -0
  107. package/dist/esm/types/src/components/Charts/PieChart/PieChart.d.ts +86 -0
  108. package/dist/esm/types/src/components/Charts/TreeMap/TreeMap.d.ts +74 -0
  109. package/dist/esm/types/src/components/DataDisplay/Accordion/Accordion.d.ts +54 -0
  110. package/dist/esm/types/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.d.ts +35 -0
  111. package/dist/esm/types/src/components/DataDisplay/ActivityLogView/ActivityLogView.d.ts +78 -0
  112. package/dist/esm/types/src/components/DataDisplay/Avatar/Avatar.d.ts +40 -0
  113. package/dist/esm/types/src/components/DataDisplay/Chip/Chip.d.ts +28 -0
  114. package/dist/esm/types/src/components/DataDisplay/Chips/Chips.d.ts +55 -0
  115. package/dist/esm/types/src/components/DataDisplay/DataTable/DataTable.d.ts +95 -0
  116. package/dist/esm/types/src/components/DataDisplay/DataTable/components/TablePagination.d.ts +35 -0
  117. package/dist/esm/types/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.d.ts +30 -0
  118. package/dist/esm/types/src/components/DataDisplay/ReactJoyride/ReactJoyride.d.ts +64 -0
  119. package/dist/esm/types/src/components/DataDisplay/Separator/Separator.d.ts +30 -0
  120. package/dist/esm/types/src/components/DataDisplay/Skeleton/Skeleton.d.ts +20 -0
  121. package/dist/esm/types/src/components/DataDisplay/StatusCard/StatusCard.d.ts +36 -0
  122. package/dist/esm/types/src/components/DataDisplay/Timeline/Timeline.d.ts +58 -0
  123. package/dist/esm/types/src/components/DataDisplay/Typography/Typography.d.ts +25 -0
  124. package/dist/esm/types/src/components/Feedback/Alert/Alert.d.ts +31 -0
  125. package/dist/esm/types/src/components/Feedback/Snackbar/Snackbar.d.ts +54 -0
  126. package/dist/esm/types/src/components/Feedback/Spinner/Spinner.d.ts +15 -0
  127. package/dist/esm/types/src/components/Feedback/Tooltip/Tooltip.d.ts +54 -0
  128. package/dist/esm/types/src/components/Input/Button/Button.d.ts +26 -0
  129. package/dist/esm/types/src/components/Input/DatePicker/DatePicker.d.ts +43 -1
  130. package/dist/esm/types/src/components/Input/DatePicker/components/DatePickerFilter.d.ts +2 -0
  131. package/dist/esm/types/src/components/Input/DatePicker/components/DatePickerInput.d.ts +2 -0
  132. package/dist/esm/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +44 -1
  133. package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerFilter.d.ts +2 -0
  134. package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerInput.d.ts +2 -0
  135. package/dist/esm/types/src/components/Input/FileUpload/FileUpload.d.ts +41 -0
  136. package/dist/esm/types/src/components/Input/FormActions/FormActions.d.ts +37 -0
  137. package/dist/esm/types/src/components/Input/FormControlWrapper/FormControlWrapper.d.ts +31 -0
  138. package/dist/esm/types/src/components/Input/FormWrapper/FormWrapper.d.ts +20 -0
  139. package/dist/esm/types/src/components/Input/HelpButton/HelpButton.d.ts +14 -0
  140. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/DeleteButton.d.ts +16 -0
  141. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/EditButton.d.ts +16 -0
  142. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/RedirectButton.d.ts +16 -0
  143. package/dist/esm/types/src/components/Input/IconButtons/IconButtons/ViewButton.d.ts +16 -0
  144. package/dist/esm/types/src/components/Input/IconButtons/IconButtons.d.ts +18 -0
  145. package/dist/esm/types/src/components/Input/LabelWrapper/LabelWrapper.d.ts +26 -0
  146. package/dist/esm/types/src/components/Input/MultiCheckBox/MultiCheckBox.d.ts +34 -0
  147. package/dist/esm/types/src/components/Input/MultiSelect/MultiSelect.d.ts +42 -0
  148. package/dist/esm/types/src/components/Input/MultiSelect/components/MultiSelectFilter.d.ts +1 -1
  149. package/dist/esm/types/src/components/Input/MultiSelect/components/MultiSelectInput.d.ts +1 -1
  150. package/dist/esm/types/src/components/Input/OtpInput/OtpInput.d.ts +29 -0
  151. package/dist/esm/types/src/components/Input/PasswordField/PasswordField.d.ts +34 -0
  152. package/dist/esm/types/src/components/Input/RadioGroup/RadioGroup.d.ts +38 -0
  153. package/dist/esm/types/src/components/Input/SearchBar/SearchBar.d.ts +26 -0
  154. package/dist/esm/types/src/components/Input/Select/Select.d.ts +34 -1
  155. package/dist/esm/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
  156. package/dist/esm/types/src/components/Input/SingleSelect/SingleSelect.d.ts +42 -0
  157. package/dist/esm/types/src/components/Input/SingleSelect/components/SingleFilter.d.ts +1 -1
  158. package/dist/esm/types/src/components/Input/SingleSelect/components/SingleInput.d.ts +1 -1
  159. package/dist/esm/types/src/components/Input/Switch/Switch.d.ts +23 -0
  160. package/dist/esm/types/src/components/Input/Tags/Tags.d.ts +26 -0
  161. package/dist/esm/types/src/components/Input/TextField/TextField.d.ts +35 -0
  162. package/dist/esm/types/src/components/Input/Textarea/Textarea.d.ts +36 -0
  163. package/dist/esm/types/src/components/Layout/AppLayout/AppLayout.d.ts +32 -0
  164. package/dist/esm/types/src/components/Layout/AppLayout/components/MenuToggleButton.d.ts +16 -0
  165. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/MenuBar.d.ts +26 -0
  166. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/MenuItem.d.ts +37 -0
  167. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/Sidebar.d.ts +30 -1
  168. package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.d.ts +139 -0
  169. package/dist/esm/types/src/components/Layout/AppLayout/components/UserProfilePopup.d.ts +34 -0
  170. package/dist/esm/types/src/components/Layout/AppLayout/context/SidebarContext.d.ts +48 -0
  171. package/dist/esm/types/src/components/Layout/AppLayout/types.d.ts +1 -1
  172. package/dist/esm/types/src/components/Layout/PageContent/PageContent.d.ts +19 -0
  173. package/dist/esm/types/src/components/Layout/PageHeader/PageHeader.d.ts +46 -0
  174. package/dist/esm/types/src/components/Layout/PageHeader/components/SearchBar.d.ts +22 -0
  175. package/dist/esm/types/src/components/Layout/UserBox/UserBox.d.ts +40 -0
  176. package/dist/esm/types/src/components/Navigation/Breadcrumbs/Breadcrumbs.d.ts +33 -0
  177. package/dist/esm/types/src/components/Navigation/Calendar/Calendar.d.ts +63 -0
  178. package/dist/esm/types/src/components/Navigation/ConfirmDialog/ConfirmDialog.d.ts +64 -0
  179. package/dist/esm/types/src/components/Navigation/Dialog/Dialog.d.ts +55 -0
  180. package/dist/esm/types/src/components/Navigation/DialogButton/DialogButton.d.ts +64 -0
  181. package/dist/esm/types/src/components/Navigation/DropDownMenu/DropDownMenu.d.ts +73 -0
  182. package/dist/esm/types/src/components/Navigation/PreviewFiles/PreviewFiles.d.ts +54 -0
  183. package/dist/esm/types/src/components/Navigation/Stepper/Stepper.d.ts +55 -10
  184. package/dist/esm/types/src/components/Navigation/TabsContainer/TabsContainer.d.ts +80 -0
  185. package/dist/esm/types/src/components/Navigation/UploadDialog/UploadDialog.d.ts +64 -0
  186. package/dist/esm/types/src/shadcn-components/Input/Select/Select.d.ts +2 -2
  187. package/dist/index.d.ts +2963 -15
  188. package/dist/styles.css +402 -13
  189. package/package.json +1 -1
  190. package/src/components/Assets/ErrorPages/ComingSoon.tsx +24 -0
  191. package/src/components/Assets/ErrorPages/InternalServerError.tsx +20 -0
  192. package/src/components/Assets/ErrorPages/NoInternetConnection.tsx +20 -0
  193. package/src/components/Assets/ErrorPages/NoItemFound.tsx +28 -0
  194. package/src/components/Assets/ErrorPages/PageNotFound.tsx +21 -0
  195. package/src/components/Assets/ErrorPages/ResourceNotFound.tsx +21 -0
  196. package/src/components/Assets/ErrorPages/UnAuthorized.tsx +31 -0
  197. package/src/components/Assets/Icons/Icons.tsx +55 -1
  198. package/src/components/Charts/BarChart/BarChart.tsx +38 -0
  199. package/src/components/Charts/BarChart/HorizontalBarChart.tsx +93 -0
  200. package/src/components/Charts/BarChart/VerticalBarChart.tsx +110 -0
  201. package/src/components/Charts/LineChart/LineChart.tsx +89 -0
  202. package/src/components/Charts/PieChart/PieChart.tsx +86 -0
  203. package/src/components/Charts/TreeMap/TreeMap.tsx +90 -0
  204. package/src/components/DataDisplay/Accordion/Accordion.tsx +54 -0
  205. package/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.tsx +35 -0
  206. package/src/components/DataDisplay/ActivityLogView/ActivityLogView.tsx +84 -0
  207. package/src/components/DataDisplay/Avatar/Avatar.tsx +40 -0
  208. package/src/components/DataDisplay/Chip/Chip.tsx +28 -0
  209. package/src/components/DataDisplay/Chips/Chips.tsx +56 -0
  210. package/src/components/DataDisplay/DataTable/DataTable.tsx +95 -0
  211. package/src/components/DataDisplay/DataTable/components/TablePagination.tsx +35 -0
  212. package/src/components/DataDisplay/DataTable/components/TableView.tsx +31 -5
  213. package/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.tsx +31 -0
  214. package/src/components/DataDisplay/ReactJoyride/ReactJoyride.tsx +64 -0
  215. package/src/components/DataDisplay/Separator/Separator.tsx +32 -0
  216. package/src/components/DataDisplay/Skeleton/Skeleton.tsx +20 -0
  217. package/src/components/DataDisplay/StatusCard/StatusCard.tsx +36 -0
  218. package/src/components/DataDisplay/Timeline/Timeline.tsx +58 -0
  219. package/src/components/DataDisplay/Typography/Typography.tsx +25 -0
  220. package/src/components/Feedback/Alert/Alert.tsx +38 -0
  221. package/src/components/Feedback/Snackbar/Snackbar.tsx +54 -0
  222. package/src/components/Feedback/Spinner/Spinner.tsx +15 -0
  223. package/src/components/Feedback/Tooltip/Tooltip.tsx +71 -3
  224. package/src/components/Input/Button/Button.tsx +26 -0
  225. package/src/components/Input/Button/ButtonLoader.css +2 -2
  226. package/src/components/Input/DatePicker/DatePicker.tsx +50 -188
  227. package/src/components/Input/DatePicker/components/DatePickerFilter.tsx +178 -0
  228. package/src/components/Input/DatePicker/components/DatePickerInput.tsx +192 -0
  229. package/src/components/Input/DateTimePicker/DateTimePicker.tsx +50 -294
  230. package/src/components/Input/DateTimePicker/components/DateTimePickerFilter.tsx +292 -0
  231. package/src/components/Input/DateTimePicker/components/DateTimePickerInput.tsx +297 -0
  232. package/src/components/Input/FileUpload/FileUpload.tsx +41 -0
  233. package/src/components/Input/FormActions/FormActions.tsx +37 -0
  234. package/src/components/Input/FormControlWrapper/FormControlWrapper.tsx +31 -0
  235. package/src/components/Input/FormWrapper/FormWrapper.tsx +20 -0
  236. package/src/components/Input/HelpButton/HelpButton.tsx +14 -0
  237. package/src/components/Input/IconButtons/IconButtons/DeleteButton.tsx +16 -0
  238. package/src/components/Input/IconButtons/IconButtons/EditButton.tsx +16 -0
  239. package/src/components/Input/IconButtons/IconButtons/RedirectButton.tsx +16 -0
  240. package/src/components/Input/IconButtons/IconButtons/ViewButton.tsx +16 -0
  241. package/src/components/Input/IconButtons/IconButtons.tsx +18 -0
  242. package/src/components/Input/LabelWrapper/LabelWrapper.tsx +26 -0
  243. package/src/components/Input/MultiCheckBox/MultiCheckBox.tsx +34 -0
  244. package/src/components/Input/MultiSelect/MultiSelect.tsx +42 -0
  245. package/src/components/Input/MultiSelect/components/MultiSelectFilter.tsx +7 -3
  246. package/src/components/Input/MultiSelect/components/MultiSelectInput.tsx +8 -3
  247. package/src/components/Input/OtpInput/OtpInput.tsx +29 -0
  248. package/src/components/Input/PasswordField/PasswordField.tsx +34 -0
  249. package/src/components/Input/RadioGroup/RadioGroup.tsx +38 -0
  250. package/src/components/Input/SearchBar/SearchBar.tsx +26 -0
  251. package/src/components/Input/Select/Select.tsx +63 -12
  252. package/src/components/Input/SingleCheckBox/SingleCheckBox.tsx +29 -0
  253. package/src/components/Input/SingleSelect/SingleSelect.tsx +42 -0
  254. package/src/components/Input/SingleSelect/components/SingleFilter.tsx +7 -3
  255. package/src/components/Input/SingleSelect/components/SingleInput.tsx +8 -3
  256. package/src/components/Input/Switch/Switch.tsx +23 -0
  257. package/src/components/Input/Tags/Tags.tsx +26 -0
  258. package/src/components/Input/TextField/TextField.tsx +35 -0
  259. package/src/components/Input/Textarea/Textarea.tsx +36 -0
  260. package/src/components/Layout/AppLayout/AppLayout.tsx +33 -1
  261. package/src/components/Layout/AppLayout/components/MenuToggleButton.tsx +16 -0
  262. package/src/components/Layout/AppLayout/components/Sidebar/MenuBar.tsx +26 -0
  263. package/src/components/Layout/AppLayout/components/Sidebar/MenuItem.tsx +51 -1
  264. package/src/components/Layout/AppLayout/components/Sidebar/Sidebar.tsx +173 -104
  265. package/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.tsx +139 -9
  266. package/src/components/Layout/AppLayout/components/UserProfilePopup.tsx +34 -0
  267. package/src/components/Layout/AppLayout/context/SidebarContext.tsx +48 -0
  268. package/src/components/Layout/AppLayout/types.ts +1 -1
  269. package/src/components/Layout/PageContent/PageContent.tsx +19 -0
  270. package/src/components/Layout/PageHeader/PageHeader.tsx +46 -0
  271. package/src/components/Layout/PageHeader/components/SearchBar.tsx +22 -0
  272. package/src/components/Layout/UserBox/UserBox.tsx +40 -0
  273. package/src/components/Navigation/Breadcrumbs/Breadcrumbs.tsx +33 -0
  274. package/src/components/Navigation/Calendar/Calendar.tsx +63 -0
  275. package/src/components/Navigation/ConfirmDialog/ConfirmDialog.tsx +64 -0
  276. package/src/components/Navigation/Dialog/Dialog.tsx +55 -0
  277. package/src/components/Navigation/DialogButton/DialogButton.tsx +70 -1
  278. package/src/components/Navigation/DropDownMenu/DropDownMenu.tsx +74 -1
  279. package/src/components/Navigation/PreviewFiles/PreviewFiles.tsx +93 -0
  280. package/src/components/Navigation/Stepper/Stepper.tsx +56 -10
  281. package/src/components/Navigation/TabsContainer/TabsContainer.tsx +81 -1
  282. package/src/components/Navigation/UploadDialog/UploadDialog.tsx +64 -0
  283. package/src/shadcn-components/DataDisplay/Dialog/Dialog.tsx +2 -2
  284. package/src/shadcn-components/Input/Popover/Popover.tsx +1 -1
  285. package/src/shadcn-components/Input/Select/Select.tsx +8 -8
  286. package/src/shadcn-components/Layout/Sheet/Sheet.tsx +2 -2
  287. package/src/shadcn-components/Navigation/DropdownMenu/DropdownMenu.tsx +2 -2
  288. package/src/styles/globals.css +4 -2
  289. package/src/styles/index.css +5 -0
@@ -87,11 +87,13 @@ const TableView = React.forwardRef<HTMLDivElement, TableViewProps>(
87
87
  index === 0 && 'pl-4 rounded-tl-md',
88
88
  index === headerGroup.headers.length - 1 &&
89
89
  'rounded-tr-md',
90
+ (header.column.columnDef.maxSize || header.column.columnDef.size) && 'overflow-hidden text-ellipsis whitespace-nowrap',
90
91
  cellClassName,
91
92
  )}
92
93
  style={{
93
- width:
94
- header.getSize() !== 150 ? header.getSize() : undefined,
94
+ width: header.column.columnDef.size ?? (header.getSize() !== 150 ? header.getSize() : undefined),
95
+ maxWidth: header.column.columnDef.maxSize ?? undefined,
96
+ minWidth: header.column.columnDef.minSize ?? undefined,
95
97
  }}
96
98
  >
97
99
  {header.isPlaceholder ? null : (
@@ -135,10 +137,19 @@ const TableView = React.forwardRef<HTMLDivElement, TableViewProps>(
135
137
  {/* Use visible header columns count to render correct number of skeleton cells */}
136
138
  {table
137
139
  .getHeaderGroups()[0]
138
- ?.headers.map((_: any, cellIndex: number) => (
140
+ ?.headers.map((header: any, cellIndex: number) => (
139
141
  <TableCell
140
142
  key={`skeleton-cell-${rowIndex}-${cellIndex}`}
141
- className={cn(cellIndex === 0 && 'pl-4', cellClassName)}
143
+ className={cn(
144
+ cellIndex === 0 && 'pl-4',
145
+ (header.column.columnDef.maxSize || header.column.columnDef.size) && 'overflow-hidden text-ellipsis whitespace-nowrap',
146
+ cellClassName
147
+ )}
148
+ style={{
149
+ width: header.column.columnDef.size ?? (header.getSize() !== 150 ? header.getSize() : undefined),
150
+ maxWidth: header.column.columnDef.maxSize ?? undefined,
151
+ minWidth: header.column.columnDef.minSize ?? undefined,
152
+ }}
142
153
  >
143
154
  <Skeleton className="h-4 w-full" />
144
155
  </TableCell>
@@ -162,7 +173,22 @@ const TableView = React.forwardRef<HTMLDivElement, TableViewProps>(
162
173
  {row.getVisibleCells().map((cell: any, index: number) => (
163
174
  <TableCell
164
175
  key={cell.id}
165
- className={cn(index === 0 && 'pl-4', cellClassName)}
176
+ className={cn(
177
+ index === 0 && 'pl-4',
178
+ (cell.column.columnDef.maxSize || cell.column.columnDef.size) && 'overflow-hidden text-ellipsis whitespace-nowrap',
179
+ cellClassName
180
+ )}
181
+ style={{
182
+ width: cell.column.columnDef.size ?? (cell.column.getSize() !== 150 ? cell.column.getSize() : undefined),
183
+ maxWidth: cell.column.columnDef.maxSize ?? undefined,
184
+ minWidth: cell.column.columnDef.minSize ?? undefined,
185
+ }}
186
+ onClick={(e) => {
187
+ // Prevent row click when clicking on checkbox column
188
+ if (cell.column.id === 'select') {
189
+ e.stopPropagation();
190
+ }
191
+ }}
166
192
  >
167
193
  {flexRender(
168
194
  cell.column.columnDef.cell,
@@ -5,6 +5,37 @@ import {
5
5
  TypographyProps,
6
6
  } from '../../DataDisplay/Typography/Typography';
7
7
 
8
+ /**
9
+ * Props for EmptyIllustration component
10
+ * @typedef {Object} EmptyIllustrationProps
11
+ * @property {string} message - Text message displayed below the empty illustration
12
+ * @property {TypographyProps} [messageProps] - Typography props for styling the message text
13
+ * @property {string} [containerClassName] - CSS class for the container div
14
+ */
15
+
16
+ /**
17
+ * EmptyIllustration component for displaying empty state messaging
18
+ * Shows decorative empty state icon with customizable message
19
+ *
20
+ * @component
21
+ * @param {Object} props - Component props
22
+ * @param {string} props.message - Text message to display below illustration
23
+ * @param {TypographyProps} [props.messageProps] - Typography styling props (variant, className, etc.)
24
+ * @param {string} [props.containerClassName] - Additional CSS classes for the container
25
+ * @returns {JSX.Element} Empty state illustration with message
26
+ *
27
+ * @example
28
+ * // Basic empty state
29
+ * <EmptyIllustration message="No data found" />
30
+ *
31
+ * @example
32
+ * // With custom styling
33
+ * <EmptyIllustration
34
+ * message="No search results match your criteria"
35
+ * messageProps={{ variant: "p", className: "text-gray-600" }}
36
+ * containerClassName="py-12"
37
+ * />
38
+ */
8
39
  export const EmptyIllustration = ({
9
40
  message,
10
41
  messageProps,
@@ -4,6 +4,20 @@ import { Button } from '../../Input/Button/Button';
4
4
  import { Typography } from '../Typography/Typography';
5
5
  import './CustomJoyRideStyles.css';
6
6
 
7
+ /**
8
+ * Configuration for individual tour step
9
+ * @typedef {Object} JoyrideStep
10
+ * @property {string} target - CSS selector for the element to highlight
11
+ * @property {string | ReactNode} content - Description or content for the step
12
+ * @property {string} [title] - Title text for the step tooltip
13
+ * @property {'top' | 'bottom' | 'left' | 'right' | 'center' | 'auto'} [placement='auto'] - Tooltip placement relative to target
14
+ * @property {boolean} [disableBeacon] - Hide the beacon pulse animation
15
+ * @property {boolean} [hideCloseButton] - Hide close button in tooltip
16
+ * @property {boolean} [showProgress] - Display progress indicator
17
+ * @property {boolean} [showSkipButton] - Show skip button in tooltip
18
+ * @property {boolean} [spotlightClicks] - Allow clicking inside spotlight area
19
+ * @property {Record<string, any>} [styles] - Custom styles for tooltip
20
+ */
7
21
  interface JoyrideStep {
8
22
  target: string;
9
23
  content: string | ReactNode;
@@ -17,6 +31,56 @@ interface JoyrideStep {
17
31
  styles?: Record<string, any>;
18
32
  }
19
33
 
34
+ /**
35
+ * ReactJoyride component for interactive product tours
36
+ * Provides guided walkthrough of UI elements with customizable steps
37
+ *
38
+ * @component
39
+ * @param {Object} props - Tour configuration
40
+ * @param {JoyrideStep[]} props.steps - Array of tour steps with targets, content, and placement
41
+ * @param {ReactNode} [props.children] - Application content to overlay tour on
42
+ * @param {string} props.tourName - Unique identifier for the tour (for state management)
43
+ * @returns {JSX.Element} Tour overlay component with tour trigger button
44
+ *
45
+ * @example
46
+ * // Basic product tour
47
+ * <ReactJoyRide
48
+ * tourName="dashboard-tour"
49
+ * steps={[
50
+ * {
51
+ * target: ".logo",
52
+ * title: "Welcome",
53
+ * content: "Welcome to our dashboard!",
54
+ * placement: "bottom"
55
+ * },
56
+ * {
57
+ * target: ".user-menu",
58
+ * title: "Profile",
59
+ * content: "Access your profile and settings here",
60
+ * placement: "left"
61
+ * }
62
+ * ]}
63
+ * >
64
+ * <Dashboard />
65
+ * </ReactJoyRide>
66
+ *
67
+ * @example
68
+ * // Advanced tour with custom placement and styling
69
+ * <ReactJoyRide
70
+ * tourName="feature-tour"
71
+ * steps={[
72
+ * {
73
+ * target: ".new-feature",
74
+ * title: "New Feature",
75
+ * content: "Check out this exciting new feature",
76
+ * placement: "right",
77
+ * disableBeacon: false
78
+ * }
79
+ * ]}
80
+ * >
81
+ * <App />
82
+ * </ReactJoyRide>
83
+ */
20
84
  export const ReactJoyRide = ({
21
85
  steps,
22
86
  children,
@@ -2,6 +2,14 @@ import * as React from 'react';
2
2
 
3
3
  import { Separator as ShadcnSaperator } from '@/shadcn-components/DataDisplay/Seperator/Seperator';
4
4
 
5
+ /**
6
+ * Props for Separator component
7
+ * @typedef {Object} SeparatorProps
8
+ * @property {'horizontal' | 'vertical'} [orientation='horizontal'] - Direction of the separator
9
+ * @property {boolean} [decorative=true] - If true, renders as non-semantic element for styling
10
+ * @property {string} [className] - Optional CSS class for custom styling
11
+ * @extends {React.ComponentPropsWithoutRef<typeof ShadcnSaperator>}
12
+ */
5
13
  interface SeparatorProps
6
14
  extends React.ComponentPropsWithoutRef<typeof ShadcnSaperator> {
7
15
  orientation?: 'horizontal' | 'vertical';
@@ -9,6 +17,28 @@ interface SeparatorProps
9
17
  className?: string;
10
18
  }
11
19
 
20
+ /**
21
+ * Separator component for dividing content sections
22
+ * Renders semantic or decorative separator line
23
+ *
24
+ * @component
25
+ * @param {SeparatorProps} props - Separator configuration
26
+ * @param {'horizontal' | 'vertical'} [props.orientation='horizontal'] - Direction of the dividing line
27
+ * @param {boolean} [props.decorative=true] - Whether separator is decorative (non-semantic)
28
+ * @param {string} [props.className] - Additional CSS classes for styling
29
+ * @param {...React.ComponentPropsWithoutRef<typeof ShadcnSaperator>} [props] - Additional separator props
30
+ * @returns {JSX.Element} Separator line element
31
+ * @example
32
+ * // Horizontal separator
33
+ * <Separator />
34
+ *
35
+ * @example
36
+ * // Vertical separator with custom styling
37
+ * <Separator
38
+ * orientation="vertical"
39
+ * className="h-12"
40
+ * />
41
+ */
12
42
  const Separator = React.forwardRef<
13
43
  React.ElementRef<typeof ShadcnSaperator>,
14
44
  SeparatorProps
@@ -29,4 +59,6 @@ const Separator = React.forwardRef<
29
59
  },
30
60
  );
31
61
 
62
+ Separator.displayName = 'Separator';
63
+
32
64
  export { Separator };
@@ -1,3 +1,23 @@
1
1
  import { Skeleton as SkeletonUI } from '@/shadcn-components/DataDisplay/Skeleton/Skeleton';
2
2
 
3
+ /**
4
+ * Skeleton component for loading placeholder animations
5
+ * Re-export of shadcn Skeleton component for use in DataDisplay module
6
+ *
7
+ * @component
8
+ * @param {React.ComponentProps<typeof SkeletonUI>} props - Standard HTML div props with className for styling
9
+ * @param {string} [props.className] - CSS classes for sizing and styling the skeleton (e.g., "h-12 w-12 rounded-full")
10
+ * @returns {JSX.Element} Animated skeleton placeholder
11
+ *
12
+ * @example
13
+ * // Skeleton for profile picture
14
+ * <Skeleton className="h-12 w-12 rounded-full" />
15
+ *
16
+ * @example
17
+ * // Skeleton for content block
18
+ * <div className="space-y-2">
19
+ * <Skeleton className="h-4 w-full" />
20
+ * <Skeleton className="h-4 w-3/4" />
21
+ * </div>
22
+ */
3
23
  export { SkeletonUI as Skeleton };
@@ -1,6 +1,14 @@
1
1
  import { cn } from '@/lib/utils';
2
2
  import { Typography, TypographyProps } from '../Typography/Typography';
3
3
 
4
+ /**
5
+ * Props for StatusCard component
6
+ * @typedef {Object} StatusCardProps
7
+ * @property {'green' | 'red' | 'orange' | 'yellow' | 'blue' | 'pink'} color - Color theme for the status card
8
+ * @property {string} text - Text content to display in the status card
9
+ * @property {string} [className] - Optional additional CSS classes
10
+ * @property {TypographyProps['variant']} [typographyVariant='small'] - Typography variant for text styling
11
+ */
4
12
  export type StatusCardProps = {
5
13
  color: 'green' | 'red' | 'orange' | 'yellow' | 'blue' | 'pink';
6
14
  text: string;
@@ -8,6 +16,34 @@ export type StatusCardProps = {
8
16
  typographyVariant?: TypographyProps['variant'];
9
17
  };
10
18
 
19
+ /**
20
+ * StatusCard component for displaying colored status badges
21
+ * Renders status indicators with color-coded backgrounds and text
22
+ *
23
+ * @component
24
+ * @param {StatusCardProps} props - StatusCard configuration
25
+ * @param {'green' | 'red' | 'orange' | 'yellow' | 'blue' | 'pink'} props.color - Status color (determines styling)
26
+ * @param {string} props.text - Status text to display
27
+ * @param {string} [props.className] - Additional CSS classes for custom styling
28
+ * @param {TypographyProps['variant']} [props.typographyVariant='small'] - Typography variant (h1-h6, p, small, etc.)
29
+ * @returns {JSX.Element} Colored status badge
30
+ *
31
+ * @example
32
+ * // Active status
33
+ * <StatusCard
34
+ * color="green"
35
+ * text="Active"
36
+ * />
37
+ *
38
+ * @example
39
+ * // Error status with custom styling
40
+ * <StatusCard
41
+ * color="red"
42
+ * text="Error"
43
+ * typographyVariant="p"
44
+ * className="font-bold"
45
+ * />
46
+ */
11
47
  export const StatusCard = ({
12
48
  color,
13
49
  text,
@@ -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)]" />
@@ -1,7 +1,23 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode, useEffect, useRef, useState } from 'react';
2
2
 
3
- import { Tooltip as ShadcnTooltip, TooltipContent, TooltipTrigger } from '@/shadcn-components/Feedback/Tooltip/Tooltip';
3
+ import {
4
+ Tooltip as ShadcnTooltip,
5
+ TooltipContent,
6
+ TooltipTrigger,
7
+ } from '@/shadcn-components/Feedback/Tooltip/Tooltip';
4
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
+ */
5
21
  export type TooltipProps = {
6
22
  children: ReactNode;
7
23
  title: ReactNode;
@@ -13,6 +29,48 @@ export type TooltipProps = {
13
29
  delayDuration?: number;
14
30
  };
15
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
+ */
16
74
  export const Tooltip = ({
17
75
  children,
18
76
  title,
@@ -22,6 +80,14 @@ export const Tooltip = ({
22
80
  onOpenChange,
23
81
  delayDuration,
24
82
  }: TooltipProps) => {
83
+ const wrapperRef = useRef<HTMLSpanElement>(null);
84
+
85
+ // Force re-render on mount to ensure positioning works
86
+ const [, forceUpdate] = useState({});
87
+ useEffect(() => {
88
+ forceUpdate({});
89
+ }, []);
90
+
25
91
  return (
26
92
  <ShadcnTooltip
27
93
  open={open}
@@ -29,7 +95,9 @@ export const Tooltip = ({
29
95
  onOpenChange={onOpenChange}
30
96
  delayDuration={delayDuration}
31
97
  >
32
- <TooltipTrigger asChild>{children}</TooltipTrigger>
98
+ <span ref={wrapperRef}>
99
+ <TooltipTrigger asChild>{children}</TooltipTrigger>
100
+ </span>
33
101
  <TooltipContent side={placement}>{title}</TooltipContent>
34
102
  </ShadcnTooltip>
35
103
  );