@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
@@ -1,6 +1,22 @@
1
1
  import { Pencil } from 'lucide-react';
2
2
  import { Button, ButtonProps } from '../../Button/Button';
3
3
 
4
+ /**
5
+ * EditButton component for edit actions
6
+ *
7
+ * An icon button with a pencil icon for triggering edit/modify 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 edit button
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <EditButton onClick={handleEdit} />
18
+ * ```
19
+ */
4
20
  export function EditButton({ disabled, ...props }: ButtonProps) {
5
21
  return (
6
22
  <Button size="icon" variant="ghost" disabled={disabled} {...props}>
@@ -1,6 +1,22 @@
1
1
  import { SquareArrowOutUpRight } from 'lucide-react';
2
2
  import { Button, ButtonProps } from '../../Button/Button';
3
3
 
4
+ /**
5
+ * RedirectButton component for navigation/external link actions
6
+ *
7
+ * An icon button with an external link arrow icon for redirecting users
8
+ * to other pages or external URLs. 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 redirect button
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <RedirectButton onClick={() => window.open(url)} />
18
+ * ```
19
+ */
4
20
  export function RedirectButton({ disabled, ...props }: ButtonProps) {
5
21
  return (
6
22
  <Button size="icon" variant="ghost" disabled={disabled} {...props}>
@@ -1,6 +1,22 @@
1
1
  import { Eye } from 'lucide-react';
2
2
  import { Button, ButtonProps } from '../../Button/Button';
3
3
 
4
+ /**
5
+ * ViewButton component for view/preview actions
6
+ *
7
+ * An icon button with an eye icon for triggering view/preview 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 view button
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <ViewButton onClick={handleView} />
18
+ * ```
19
+ */
4
20
  export function ViewButton({ disabled, ...props }: ButtonProps) {
5
21
  return (
6
22
  <Button size="icon" variant="ghost" disabled={disabled} {...props}>
@@ -3,6 +3,24 @@ import { EditButton } from './IconButtons/EditButton';
3
3
  import { RedirectButton } from './IconButtons/RedirectButton';
4
4
  import { ViewButton } from './IconButtons/ViewButton';
5
5
 
6
+ /**
7
+ * IconButtons object namespace
8
+ *
9
+ * A collection of common action icon buttons for use in tables and lists.
10
+ * All buttons are minimal icon-only buttons with consistent styling.
11
+ *
12
+ * @namespace IconButtons
13
+ * @property {typeof DeleteButton} DeleteButton - Button with trash icon for delete actions
14
+ * @property {typeof EditButton} EditButton - Button with pencil icon for edit actions
15
+ * @property {typeof ViewButton} ViewButton - Button with eye icon for view/preview actions
16
+ * @property {typeof RedirectButton} RedirectButton - Button with external link icon for navigation
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <IconButtons.DeleteButton onClick={handleDelete} />
21
+ * <IconButtons.EditButton onClick={handleEdit} />
22
+ * ```
23
+ */
6
24
  export const IconButtons = {
7
25
  DeleteButton,
8
26
  EditButton,
@@ -9,6 +9,32 @@ export interface LabelWrapperProps {
9
9
  containerProps?: React.HTMLAttributes<HTMLDivElement>;
10
10
  }
11
11
 
12
+ /**
13
+ * LabelWrapper component for form field labeling
14
+ *
15
+ * A wrapper component that provides consistent label styling and required field indicators.
16
+ * Automatically handles string labels and custom label elements.
17
+ *
18
+ * @component
19
+ * @param {LabelWrapperProps} props - The wrapper properties
20
+ * @param {boolean} props.required - Whether the field is required (adds asterisk indicator)
21
+ * @param {string} [props.name] - Name attribute for the associated label
22
+ * @param {ReactNode | string} [props.label] - The label text or element
23
+ * @param {ReactNode} props.children - The form element to be labeled
24
+ * @param {React.HTMLAttributes<HTMLDivElement>} [props.containerProps] - Additional container attributes
25
+ * @returns {React.ReactElement} The label and children wrapped in a container
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * <LabelWrapper
30
+ * label="Email Address"
31
+ * name="email"
32
+ * required
33
+ * >
34
+ * <Input type="email" />
35
+ * </LabelWrapper>
36
+ * ```
37
+ */
12
38
  export const LabelWrapper = ({
13
39
  required,
14
40
  name,
@@ -15,6 +15,40 @@ export type MultiCheckboxProps = {
15
15
  className?: string;
16
16
  };
17
17
 
18
+ /**
19
+ * MultiCheckBox component for multi-value checkbox selection
20
+ *
21
+ * A component that renders multiple checkboxes in a row or column layout,
22
+ * allowing users to select multiple values from a set of options.
23
+ *
24
+ * @component
25
+ * @param {MultiCheckboxProps} props - The checkbox group properties
26
+ * @param {string} props.label - Group label text
27
+ * @param {Array<{label: ReactNode, value: any}>} props.options - Available checkbox options
28
+ * @param {any[]} props.values - Currently selected values
29
+ * @param {(values: any[]) => void} props.onChange - Callback when selection changes
30
+ * @param {string} props.name - Name attribute for the checkbox group
31
+ * @param {boolean} props.required - Whether the field is required
32
+ * @param {'row' | 'column'} [props.direction='column'] - Layout direction for checkboxes
33
+ * @param {string} [props.className] - Additional CSS classes for the options container
34
+ * @param {React.HTMLAttributes<HTMLDivElement>} [props.containerProps] - Additional container attributes
35
+ * @returns {React.ReactElement} The rendered checkbox group
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * <MultiCheckBox
40
+ * label="Select Features"
41
+ * name="features"
42
+ * values={selectedFeatures}
43
+ * onChange={setSelectedFeatures}
44
+ * required
45
+ * options={[
46
+ * { label: 'Feature A', value: 'a' },
47
+ * { label: 'Feature B', value: 'b' }
48
+ * ]}
49
+ * />
50
+ * ```
51
+ */
18
52
  export const MultiCheckBox = ({
19
53
  name,
20
54
  options,
@@ -46,6 +46,46 @@ export type MultiSelectProps = {
46
46
  loading?: boolean;
47
47
  };
48
48
 
49
+ /**
50
+ * MultiSelect component for multi-value selection
51
+ *
52
+ * A feature-rich multi-select component supporting both local and API-driven options,
53
+ * with search, pagination, filtering, and flexible display modes.
54
+ *
55
+ * @component
56
+ * @param {MultiSelectProps} props - The select properties
57
+ * @param {Array<{label: string, subLabel?: string, value: any, icon?: ReactNode}>} [props.options] - Static options array
58
+ * @param {string} [props.optionsApiEndPoint] - API endpoint for dynamic options loading
59
+ * @param {any} [props.optionsApiEndpointParams] - Additional parameters for API requests
60
+ * @param {AxiosInstance} [props.externalAxios] - Custom axios instance for API calls
61
+ * @param {any[]} [props.value] - Currently selected values
62
+ * @param {(values: any[]) => void} [props.onChange] - Callback fired when selection changes
63
+ * @param {(option: any) => any} [props.getValue] - Function to extract value from option object
64
+ * @param {{valueKey: string, isObjectId?: boolean, isInt?: boolean, isFloat?: boolean}} [props.dbValueProps] - Database value mapping properties
65
+ * @param {{labelKey: string, subLabelKey?: string, useLabelStartCase?: boolean, useSubLabelStartCase?: boolean}} [props.dbLabelProps] - Database label mapping properties
66
+ * @param {string} [props.label] - Label for the select
67
+ * @param {string} [props.name] - Name attribute
68
+ * @param {boolean} [props.required] - Whether the field is required
69
+ * @param {boolean} [props.disabled] - Whether the select is disabled
70
+ * @param {boolean} [props.loading] - Whether options are loading
71
+ * @param {boolean} [props.disableClear] - Whether to hide the clear button
72
+ * @param {boolean} [props.fullWidth] - Whether the select takes full width
73
+ * @param {'input' | 'filter'} [props.type='input'] - Display type
74
+ * @param {(event: SyntheticEvent) => void} [props.onOpen] - Callback when menu opens
75
+ * @param {(event: SyntheticEvent, reason: string) => void} [props.onClose] - Callback when menu closes
76
+ * @returns {React.ReactElement} The rendered multi-select component
77
+ *
78
+ * @example
79
+ * ```tsx
80
+ * <MultiSelect
81
+ * label="Select Users"
82
+ * value={selectedUsers}
83
+ * onChange={setSelectedUsers}
84
+ * options={users}
85
+ * required
86
+ * />
87
+ * ```
88
+ */
49
89
  export const MultiSelect = ({
50
90
  options,
51
91
  optionsApiEndPoint,
@@ -16,6 +16,35 @@ interface OtpInputProps {
16
16
  helperText?: string;
17
17
  }
18
18
 
19
+ /**
20
+ * OtpInput component for one-time password entry
21
+ *
22
+ * A component that renders a sequence of single-digit input fields for OTP entry,
23
+ * with auto-focus, paste support, and keyboard navigation.
24
+ *
25
+ * @component
26
+ * @param {OtpInputProps} props - The OTP input properties
27
+ * @param {number} props.length - Number of OTP digits
28
+ * @param {(otp: string) => void} props.onChangeOtp - Callback fired when OTP changes
29
+ * @param {string} [props.label] - Optional label for the OTP input group
30
+ * @param {string} [props.name] - Name attribute for the inputs
31
+ * @param {boolean} [props.required] - Whether the field is required
32
+ * @param {boolean} [props.error=false] - Whether there's a validation error
33
+ * @param {string} [props.helperText] - Helper or error text to display
34
+ * @param {string} [props.containerClassName] - Additional CSS classes for the input container
35
+ * @param {string} [props.inputClassName] - Additional CSS classes for individual inputs
36
+ * @returns {React.ReactElement} The rendered OTP input component
37
+ *
38
+ * @example
39
+ * ```tsx
40
+ * <OtpInput
41
+ * length={6}
42
+ * onChangeOtp={setOtp}
43
+ * label="Enter Verification Code"
44
+ * required
45
+ * />
46
+ * ```
47
+ */
19
48
  export const OtpInput = ({
20
49
  length,
21
50
  onChangeOtp,
@@ -21,6 +21,40 @@ export type PasswordFieldProps = {
21
21
  fullWidth?: boolean;
22
22
  } & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'>;
23
23
 
24
+ /**
25
+ * PasswordField component for password input
26
+ *
27
+ * A text input field specialized for password entry with visibility toggle,
28
+ * error states, and helper text support.
29
+ *
30
+ * @component
31
+ * @param {PasswordFieldProps} props - The password field properties
32
+ * @param {string} [props.label] - Label for the field
33
+ * @param {string} [props.name] - Name attribute for the input
34
+ * @param {string} [props.value] - Current input value
35
+ * @param {(e: React.ChangeEvent<HTMLInputElement>) => void} [props.onChange] - Callback when value changes
36
+ * @param {string} [props.placeholder='Enter password'] - Placeholder text
37
+ * @param {boolean} [props.required] - Whether the field is required
38
+ * @param {boolean} [props.disabled] - Whether the field is disabled
39
+ * @param {boolean} [props.error] - Whether there's a validation error
40
+ * @param {string} [props.helperText] - Helper or error text
41
+ * @param {string} [props.description] - Additional description text
42
+ * @param {boolean} [props.fullWidth] - Whether the field takes full width
43
+ * @param {string} [props.className] - Additional CSS classes
44
+ * @param {React.HTMLAttributes<HTMLDivElement>} [props.containerProps] - Container attributes
45
+ * @returns {React.ReactElement} The rendered password field component
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * <PasswordField
50
+ * label="Password"
51
+ * name="password"
52
+ * value={password}
53
+ * onChange={(e) => setPassword(e.target.value)}
54
+ * required
55
+ * />
56
+ * ```
57
+ */
24
58
  export const PasswordField = ({
25
59
  name,
26
60
  label,
@@ -22,6 +22,44 @@ export type RadioGroupProps = {
22
22
  helperText?: ReactNode;
23
23
  };
24
24
 
25
+ /**
26
+ * RadioGroup component for exclusive single-value selection
27
+ *
28
+ * A component that renders a group of radio buttons allowing users to select
29
+ * exactly one value from a set of options, with row or column layout.
30
+ *
31
+ * @component
32
+ * @param {RadioGroupProps} props - The radio group properties
33
+ * @param {string} props.name - Name attribute for the radio group
34
+ * @param {Array<{label: ReactNode, value: any, disabled?: boolean}>} props.options - Available radio options
35
+ * @param {string} [props.label] - Group label text
36
+ * @param {any} [props.value] - Currently selected value (controlled)
37
+ * @param {any} [props.defaultValue] - Default selected value (uncontrolled)
38
+ * @param {(value: any) => void} [props.onChange] - Callback when selection changes
39
+ * @param {(value: string) => void} [props.onValueChange] - Alternative callback when selection changes
40
+ * @param {boolean} [props.required] - Whether the field is required
41
+ * @param {boolean} [props.disabled] - Whether all options are disabled
42
+ * @param {'row' | 'column'} [props.direction='column'] - Layout direction for radio buttons
43
+ * @param {boolean} [props.error] - Whether there's a validation error
44
+ * @param {ReactNode} [props.helperText] - Helper or error text
45
+ * @param {string} [props.className] - Additional CSS classes for the radio container
46
+ * @param {React.HTMLAttributes<HTMLDivElement>} [props.containerProps] - Container attributes
47
+ * @returns {React.ReactElement} The rendered radio group component
48
+ *
49
+ * @example
50
+ * ```tsx
51
+ * <RadioGroup
52
+ * name="status"
53
+ * label="Select Status"
54
+ * value={status}
55
+ * onChange={setStatus}
56
+ * options={[
57
+ * { label: 'Active', value: 'active' },
58
+ * { label: 'Inactive', value: 'inactive' }
59
+ * ]}
60
+ * />
61
+ * ```
62
+ */
25
63
  export const RadioGroup = ({
26
64
  label,
27
65
  required = false,
@@ -15,6 +15,32 @@ export type SearchBarProps = {
15
15
  inputClassName?: string;
16
16
  } & Omit<React.ComponentProps<'input'>, 'onChange' | 'value'>;
17
17
 
18
+ /**
19
+ * SearchBar component for search input
20
+ *
21
+ * A search input component with built-in debouncing for efficient search operations,
22
+ * featuring a search icon and customizable styling.
23
+ *
24
+ * @component
25
+ * @param {SearchBarProps} props - The search bar properties
26
+ * @param {string} [props.placeholder='Search by Name'] - Placeholder text
27
+ * @param {string | ReactNode} [props.label] - Optional label above the search input
28
+ * @param {string} [props.value=''] - Current search value
29
+ * @param {(value: string) => void} [props.onSearch] - Callback fired when search value changes (debounced)
30
+ * @param {string} [props.className] - Additional CSS classes for the input wrapper
31
+ * @param {string} [props.containerClassName] - Additional CSS classes for the container
32
+ * @param {string} [props.inputClassName] - Additional CSS classes for the input element
33
+ * @returns {React.ReactElement} The rendered search bar component
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * <SearchBar
38
+ * label="Search Users"
39
+ * placeholder="Enter username..."
40
+ * onSearch={handleSearch}
41
+ * />
42
+ * ```
43
+ */
18
44
  export const SearchBar = ({
19
45
  placeholder = 'Search by Name',
20
46
  label,
@@ -33,6 +33,15 @@ export type SelectProps = {
33
33
  loading?: boolean;
34
34
  };
35
35
 
36
+ /**
37
+ * Helper function to get color CSS classes for select options
38
+ *
39
+ * Maps color names to Tailwind CSS classes for styling select options.
40
+ *
41
+ * @param {string} [color] - Color name ('red', 'green', 'blue', 'pink', 'yellow', 'orange', 'secondary')
42
+ * @returns {string} Tailwind CSS classes for the color
43
+ * @internal
44
+ */
36
45
  const getColorClasses = (
37
46
  color?: 'red' | 'green' | 'blue' | 'pink' | 'yellow' | 'orange' | 'secondary',
38
47
  ) => {
@@ -56,6 +65,38 @@ const getColorClasses = (
56
65
  }
57
66
  };
58
67
 
68
+ /**
69
+ * Select component for single-value selection
70
+ *
71
+ * A select dropdown component with support for colors, loading states, and flexible sizing.
72
+ * Built on shadcn's Select component with additional enhancements.
73
+ *
74
+ * @component
75
+ * @param {SelectProps} props - The select properties
76
+ * @param {Array<{label: React.ReactNode, value: string | number, color?: string}>} props.options - Available select options
77
+ * @param {(value: string) => void} [props.onChange] - Callback fired when selection changes
78
+ * @param {string | number} [props.value] - Currently selected value (controlled)
79
+ * @param {string | number} [props.defaultValue] - Default selected value (uncontrolled)
80
+ * @param {string} [props.placeholder='Select an option...'] - Placeholder text when no value selected
81
+ * @param {boolean} [props.disabled] - Whether the select is disabled
82
+ * @param {boolean} [props.loading] - Whether options are loading
83
+ * @param {boolean} [props.fullWidth] - Whether the select takes full width
84
+ * @param {string} [props.className] - Additional CSS classes
85
+ * @returns {React.ReactElement} The rendered select component
86
+ *
87
+ * @example
88
+ * ```tsx
89
+ * <Select
90
+ * options={[
91
+ * { label: 'Option 1', value: 'opt1', color: 'blue' },
92
+ * { label: 'Option 2', value: 'opt2', color: 'green' }
93
+ * ]}
94
+ * value={selected}
95
+ * onChange={setSelected}
96
+ * placeholder="Choose an option"
97
+ * />
98
+ * ```
99
+ */
59
100
  export const Select = ({
60
101
  options = [],
61
102
  onChange,
@@ -18,6 +18,35 @@ export type CheckboxProps = {
18
18
  'checked' | 'onChange' | 'onCheckedChange'
19
19
  >;
20
20
 
21
+ /**
22
+ * SingleCheckBox component for single checkbox selection
23
+ *
24
+ * A checkbox component with label support, validation states, and required field indicators.
25
+ * Built on Radix UI's checkbox primitive.
26
+ *
27
+ * @component
28
+ * @param {CheckboxProps} props - The checkbox properties
29
+ * @param {ReactNode} props.label - Label text for the checkbox
30
+ * @param {boolean} [props.checked] - Whether the checkbox is checked (controlled)
31
+ * @param {(checked: boolean) => void} [props.onChange] - Callback when checked state changes
32
+ * @param {string} [props.name] - Name attribute for the checkbox
33
+ * @param {boolean} [props.required] - Whether the field is required
34
+ * @param {boolean} [props.disabled] - Whether the checkbox is disabled
35
+ * @param {string} [props.className] - Additional CSS classes for the checkbox
36
+ * @param {string} [props.labelClassName] - Additional CSS classes for the label
37
+ * @param {string} [props.containerClassName='flex items-center space-x-2'] - Additional CSS classes for the container
38
+ * @returns {React.ReactElement} The rendered checkbox component
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * <SingleCheckBox
43
+ * label="I agree to the terms"
44
+ * checked={agreed}
45
+ * onChange={setAgreed}
46
+ * required
47
+ * />
48
+ * ```
49
+ */
21
50
  export const SingleCheckBox = ({
22
51
  checked,
23
52
  label,
@@ -54,6 +54,46 @@ export type SingleSelectProps = {
54
54
  loading?: boolean;
55
55
  };
56
56
 
57
+ /**
58
+ * SingleSelect component for single-value selection
59
+ *
60
+ * A feature-rich single-select component supporting both local and API-driven options,
61
+ * with search, pagination, filtering, and flexible display modes.
62
+ *
63
+ * @component
64
+ * @param {SingleSelectProps} props - The select properties
65
+ * @param {Array<{label: string, subLabel?: string, value: any, icon?: ReactNode}>} [props.options] - Static options array
66
+ * @param {string} [props.optionsApiEndPoint] - API endpoint for dynamic options loading
67
+ * @param {any} [props.optionsApiEndpointParams] - Additional parameters for API requests
68
+ * @param {AxiosInstance} [props.externalAxios] - Custom axios instance for API calls
69
+ * @param {any} [props.value] - Currently selected value
70
+ * @param {(value: any) => void} [props.onChange] - Callback fired when selection changes
71
+ * @param {(option: any) => any} [props.getValue] - Function to extract value from option object
72
+ * @param {{valueKey: string, isObjectId?: boolean, isInt?: boolean, isFloat?: boolean}} [props.dbValueProps] - Database value mapping properties
73
+ * @param {{labelKey: string, subLabelKey?: string, useLabelStartCase?: boolean, useSubLabelStartCase?: boolean}} [props.dbLabelProps] - Database label mapping properties
74
+ * @param {string} [props.label] - Label for the select
75
+ * @param {string} [props.name] - Name attribute
76
+ * @param {boolean} [props.required] - Whether the field is required
77
+ * @param {boolean} [props.disabled] - Whether the select is disabled
78
+ * @param {boolean} [props.loading] - Whether options are loading
79
+ * @param {boolean} [props.disableClear] - Whether to hide the clear button
80
+ * @param {boolean} [props.fullWidth] - Whether the select takes full width
81
+ * @param {'input' | 'filter'} [props.type='input'] - Display type
82
+ * @param {(event: SyntheticEvent) => void} [props.onOpen] - Callback when menu opens
83
+ * @param {(event: SyntheticEvent, reason: string) => void} [props.onClose] - Callback when menu closes
84
+ * @returns {React.ReactElement} The rendered single-select component
85
+ *
86
+ * @example
87
+ * ```tsx
88
+ * <SingleSelect
89
+ * label="Select User"
90
+ * value={selectedUser}
91
+ * onChange={setSelectedUser}
92
+ * options={users}
93
+ * required
94
+ * />
95
+ * ```
96
+ */
57
97
  export const SingleSelect = ({
58
98
  options,
59
99
  optionsApiEndPoint,
@@ -7,6 +7,29 @@ export interface SwitchProps
7
7
  label?: string;
8
8
  }
9
9
 
10
+ /**
11
+ * Switch component for boolean toggle input
12
+ *
13
+ * A toggle switch component with optional label support, built on shadcn's Switch.
14
+ * Renders a label beside the switch if provided.
15
+ *
16
+ * @component
17
+ * @param {SwitchProps} props - The switch properties
18
+ * @param {string} [props.label] - Optional label text to display next to the switch
19
+ * @param {boolean} [props.checked] - Whether the switch is checked
20
+ * @param {(checked: boolean) => void} [props.onCheckedChange] - Callback when switch state changes
21
+ * @param {boolean} [props.disabled] - Whether the switch is disabled
22
+ * @returns {React.ReactElement} The rendered switch component
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * <Switch
27
+ * label="Enable notifications"
28
+ * checked={enabled}
29
+ * onCheckedChange={setEnabled}
30
+ * />
31
+ * ```
32
+ */
10
33
  export const Switch = React.forwardRef<
11
34
  React.ElementRef<typeof ShadcnSwitch>,
12
35
  SwitchProps
@@ -9,6 +9,32 @@ export type TagsProps = {
9
9
  className?: string;
10
10
  };
11
11
 
12
+ /**
13
+ * Tags component for displaying and managing tag badges
14
+ *
15
+ * A component that renders a collection of tags/badges with optional delete functionality.
16
+ * Useful for displaying categories, labels, or removable items.
17
+ *
18
+ * @component
19
+ * @param {TagsProps} props - The tags properties
20
+ * @param {Array<{label: string, value: any}>} props.tags - Array of tags to display
21
+ * @param {(deletedChip: any) => void} [props.onDelete] - Callback fired when a tag is deleted
22
+ * @param {'default' | 'secondary' | 'destructive' | 'outline'} [props.variant='secondary'] - Badge variant style
23
+ * @param {string} [props.className] - Additional CSS classes for the container
24
+ * @returns {React.ReactElement} The rendered tags component
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * <Tags
29
+ * tags={[
30
+ * { label: 'React', value: 'react' },
31
+ * { label: 'TypeScript', value: 'ts' }
32
+ * ]}
33
+ * onDelete={handleTagDelete}
34
+ * variant="secondary"
35
+ * />
36
+ * ```
37
+ */
12
38
  export const Tags = ({
13
39
  tags,
14
40
  onDelete,
@@ -14,6 +14,41 @@ export type TextFieldProps = {
14
14
  helperText?: React.ReactNode;
15
15
  } & React.ComponentProps<typeof Input>;
16
16
 
17
+ /**
18
+ * TextField component for text input
19
+ *
20
+ * A general-purpose text input field with label support, validation states,
21
+ * helper/error text, and optional description.
22
+ *
23
+ * @component
24
+ * @param {TextFieldProps} props - The text field properties
25
+ * @param {React.ReactNode | string} [props.label] - Label for the field
26
+ * @param {string} [props.name] - Name attribute for the input
27
+ * @param {string} [props.value] - Current input value
28
+ * @param {(e: React.ChangeEvent<HTMLInputElement>) => void} [props.onChange] - Callback when value changes
29
+ * @param {string} [props.placeholder] - Placeholder text
30
+ * @param {boolean} [props.required] - Whether the field is required
31
+ * @param {boolean} [props.disabled] - Whether the field is disabled
32
+ * @param {boolean} [props.error] - Whether there's a validation error
33
+ * @param {React.ReactNode} [props.helperText] - Helper or error text
34
+ * @param {string} [props.description] - Additional description text
35
+ * @param {boolean} [props.fullWidth] - Whether the field takes full width
36
+ * @param {string} [props.className] - Additional CSS classes
37
+ * @param {React.HTMLAttributes<HTMLDivElement>} [props.containerProps] - Container attributes
38
+ * @returns {React.ReactElement} The rendered text field component
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * <TextField
43
+ * label="Username"
44
+ * name="username"
45
+ * value={username}
46
+ * onChange={(e) => setUsername(e.target.value)}
47
+ * placeholder="Enter your username"
48
+ * required
49
+ * />
50
+ * ```
51
+ */
17
52
  export const TextField = ({
18
53
  name,
19
54
  label,
@@ -14,6 +14,42 @@ export type TextareaProps = {
14
14
  helperText?: React.ReactNode;
15
15
  } & React.ComponentProps<typeof ShadcnTextarea>;
16
16
 
17
+ /**
18
+ * Textarea component for multi-line text input
19
+ *
20
+ * A multi-line text input field with label support, validation states,
21
+ * helper/error text, and optional description.
22
+ *
23
+ * @component
24
+ * @param {TextareaProps} props - The textarea properties
25
+ * @param {React.ReactNode | string} [props.label] - Label for the field
26
+ * @param {string} [props.name] - Name attribute for the textarea
27
+ * @param {string} [props.value] - Current input value
28
+ * @param {(e: React.ChangeEvent<HTMLTextAreaElement>) => void} [props.onChange] - Callback when value changes
29
+ * @param {string} [props.placeholder] - Placeholder text
30
+ * @param {number} [props.rows] - Number of visible rows
31
+ * @param {boolean} [props.required] - Whether the field is required
32
+ * @param {boolean} [props.disabled] - Whether the field is disabled
33
+ * @param {boolean} [props.error] - Whether there's a validation error
34
+ * @param {React.ReactNode} [props.helperText] - Helper or error text
35
+ * @param {string} [props.description] - Additional description text
36
+ * @param {boolean} [props.fullWidth] - Whether the field takes full width
37
+ * @param {string} [props.className] - Additional CSS classes
38
+ * @param {React.HTMLAttributes<HTMLDivElement>} [props.containerProps] - Container attributes
39
+ * @returns {React.ReactElement} The rendered textarea component
40
+ *
41
+ * @example
42
+ * ```tsx
43
+ * <Textarea
44
+ * label="Comments"
45
+ * name="comments"
46
+ * value={comments}
47
+ * onChange={(e) => setComments(e.target.value)}
48
+ * placeholder="Enter your comments..."
49
+ * rows={4}
50
+ * />
51
+ * ```
52
+ */
17
53
  export const Textarea = ({
18
54
  name,
19
55
  label,