@campxdev/react-blueprint 1.1.7 → 1.1.9

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 (240) hide show
  1. package/.vscode/settings.json +5 -1
  2. package/craco.config.js +18 -0
  3. package/package.json +6 -5
  4. package/src/AppContent.tsx +6 -6
  5. package/src/assets/fonts/heebo/index.ts +2 -2
  6. package/src/assets/fonts/poppins/index.ts +5 -5
  7. package/src/assets/images/gif/confirmation-alert.gif +0 -0
  8. package/src/assets/images/gif/delete-confirmation-alert.gif +0 -0
  9. package/src/assets/images/gif/index.ts +11 -0
  10. package/src/assets/images/gif/upload-file.gif +0 -0
  11. package/src/assets/images/gif/uploading-file.gif +0 -0
  12. package/src/assets/images/svg/index.ts +5 -21
  13. package/src/components/Assets/ErrorPages/InternalServerError.tsx +7 -7
  14. package/src/components/Assets/ErrorPages/NoInternetConnection.tsx +7 -7
  15. package/src/components/Assets/ErrorPages/NoItemFound.tsx +7 -7
  16. package/src/components/Assets/ErrorPages/PageNotFound.tsx +5 -5
  17. package/src/components/Assets/ErrorPages/UnAuthorized.tsx +6 -6
  18. package/src/components/Assets/ErrorPages/styles.tsx +15 -15
  19. package/src/components/Assets/Icons/IconComponents/AcademicIcon.tsx +7 -1
  20. package/src/components/Assets/Icons/IconComponents/ActiveDevicesIcon.tsx +1 -1
  21. package/src/components/Assets/Icons/IconComponents/AdminIcon.tsx +1 -1
  22. package/src/components/Assets/Icons/IconComponents/AdministratorIcon.tsx +1 -1
  23. package/src/components/Assets/Icons/IconComponents/AlertFilledIcon.tsx +1 -1
  24. package/src/components/Assets/Icons/IconComponents/ArrowBackIcon.tsx +1 -1
  25. package/src/components/Assets/Icons/IconComponents/AttachmentIcon.tsx +32 -0
  26. package/src/components/Assets/Icons/IconComponents/BulbIcon.tsx +1 -1
  27. package/src/components/Assets/Icons/IconComponents/CampxFullLogoIcon.tsx +3 -3
  28. package/src/components/Assets/Icons/IconComponents/CampxIcon.tsx +2 -2
  29. package/src/components/Assets/Icons/IconComponents/CareerIcon.tsx +1 -1
  30. package/src/components/Assets/Icons/IconComponents/CheckedCheckBoxIcon.tsx +1 -1
  31. package/src/components/Assets/Icons/IconComponents/CheckedRadioIcon.tsx +1 -1
  32. package/src/components/Assets/Icons/IconComponents/ClogWheelIcon.tsx +1 -1
  33. package/src/components/Assets/Icons/IconComponents/CollapseIcon.tsx +1 -1
  34. package/src/components/Assets/Icons/IconComponents/CrossIcon.tsx +1 -1
  35. package/src/components/Assets/Icons/IconComponents/DashBoardIcon.tsx +1 -1
  36. package/src/components/Assets/Icons/IconComponents/DeleteIcon.tsx +1 -1
  37. package/src/components/Assets/Icons/IconComponents/DeviceIcon.tsx +1 -1
  38. package/src/components/Assets/Icons/IconComponents/DocumentIcon.tsx +52 -0
  39. package/src/components/Assets/Icons/IconComponents/DownloadIcon.tsx +52 -0
  40. package/src/components/Assets/Icons/IconComponents/EditIcon.tsx +1 -1
  41. package/src/components/Assets/Icons/IconComponents/ExamResultIcon.tsx +1 -1
  42. package/src/components/Assets/Icons/IconComponents/ExcelIcon.tsx +56 -0
  43. package/src/components/Assets/Icons/IconComponents/ExpandIcon.tsx +1 -1
  44. package/src/components/Assets/Icons/IconComponents/ExportIcon.tsx +1 -1
  45. package/src/components/Assets/Icons/IconComponents/FilterIcon.tsx +1 -1
  46. package/src/components/Assets/Icons/IconComponents/HelpIcon.tsx +1 -1
  47. package/src/components/Assets/Icons/IconComponents/HomeIcon.tsx +1 -1
  48. package/src/components/Assets/Icons/IconComponents/ImageIcon.tsx +44 -0
  49. package/src/components/Assets/Icons/IconComponents/InfoFilledIcon.tsx +1 -1
  50. package/src/components/Assets/Icons/IconComponents/InfoIcon.tsx +1 -1
  51. package/src/components/Assets/Icons/IconComponents/InstitutionsIcon.tsx +1 -1
  52. package/src/components/Assets/Icons/IconComponents/LeftIcon.tsx +1 -1
  53. package/src/components/Assets/Icons/IconComponents/LocationIcon.tsx +1 -1
  54. package/src/components/Assets/Icons/IconComponents/LogoutIcon.tsx +2 -2
  55. package/src/components/Assets/Icons/IconComponents/NavigationIcon.tsx +1 -1
  56. package/src/components/Assets/Icons/IconComponents/NoteIcon.tsx +7 -1
  57. package/src/components/Assets/Icons/IconComponents/NotificationIcon.tsx +1 -1
  58. package/src/components/Assets/Icons/IconComponents/PdfIcon.tsx +52 -0
  59. package/src/components/Assets/Icons/IconComponents/ProductFeaturesIcon.tsx +1 -1
  60. package/src/components/Assets/Icons/IconComponents/ProfileIcon.tsx +1 -1
  61. package/src/components/Assets/Icons/IconComponents/RedirectIcon.tsx +1 -1
  62. package/src/components/Assets/Icons/IconComponents/RedoIcon.tsx +1 -1
  63. package/src/components/Assets/Icons/IconComponents/RightIcon.tsx +1 -1
  64. package/src/components/Assets/Icons/IconComponents/SaveIcon.tsx +39 -39
  65. package/src/components/Assets/Icons/IconComponents/SearchIcon.tsx +1 -1
  66. package/src/components/Assets/Icons/IconComponents/ShareIcon.tsx +1 -1
  67. package/src/components/Assets/Icons/IconComponents/SuccessFilledIcon.tsx +1 -1
  68. package/src/components/Assets/Icons/IconComponents/TicketsIcon.tsx +1 -1
  69. package/src/components/Assets/Icons/IconComponents/UncheckCheckBoxIcon.tsx +1 -1
  70. package/src/components/Assets/Icons/IconComponents/UncheckedRadioIcon.tsx +1 -1
  71. package/src/components/Assets/Icons/IconComponents/ViewIcon.tsx +1 -1
  72. package/src/components/Assets/Icons/IconComponents/VisibiityOffIcon.tsx +1 -1
  73. package/src/components/Assets/Icons/IconComponents/VisibilityIcon.tsx +1 -1
  74. package/src/components/Assets/Icons/IconComponents/WarningFilledIcon.tsx +1 -1
  75. package/src/components/Assets/Icons/Icons.tsx +12 -0
  76. package/src/components/Assets/export.ts +6 -6
  77. package/src/components/Charts/BarChart/BarChart.tsx +17 -19
  78. package/src/components/Charts/LineChart/LineChart.tsx +12 -14
  79. package/src/components/Charts/PieChart/PieChart.tsx +8 -8
  80. package/src/components/Charts/TreeMap/TreeMap.tsx +15 -15
  81. package/src/components/Charts/export.ts +4 -4
  82. package/src/components/Charts/types/types.ts +3 -3
  83. package/src/components/DataDisplay/Accordion/Accordion.tsx +2 -0
  84. package/src/components/DataDisplay/Avatar/Avatar.tsx +14 -3
  85. package/src/components/DataDisplay/Card/Card.tsx +18 -18
  86. package/src/components/DataDisplay/Card/styles.tsx +24 -25
  87. package/src/components/DataDisplay/Chips/Chips.tsx +14 -14
  88. package/src/components/DataDisplay/DataTable/DataTable.tsx +4 -1
  89. package/src/components/DataDisplay/DataTable/TablePagination.tsx +10 -10
  90. package/src/components/DataDisplay/SidePanel/SidePanel.tsx +1 -1
  91. package/src/components/DataDisplay/Typography/Typography.tsx +1 -1
  92. package/src/components/Feedback/Alert/Alert.tsx +8 -8
  93. package/src/components/Feedback/Snackbar/Snackbar.tsx +27 -27
  94. package/src/components/Feedback/Spinner/Spinner.tsx +2 -2
  95. package/src/components/Feedback/Tooltip/Tooltip.tsx +6 -6
  96. package/src/components/Feedback/Tutorial/Tutorial.tsx +45 -45
  97. package/src/components/Feedback/export.ts +5 -0
  98. package/src/components/Image/Image.tsx +8 -8
  99. package/src/components/Input/Button/Button.tsx +2 -2
  100. package/src/components/Input/DatePicker/DatePicker.tsx +18 -4
  101. package/src/components/Input/FormActions/FormActions.tsx +15 -4
  102. package/src/components/Input/FormControlWrapper/FormControlWrapper.tsx +20 -5
  103. package/src/components/Input/HelpButton/HelpButton.stories.tsx +9 -9
  104. package/src/components/Input/HelpButton/HelpButton.tsx +4 -4
  105. package/src/components/Input/IconButtons/IconButtons/DeleteButton.tsx +2 -2
  106. package/src/components/Input/IconButtons/IconButtons/EditButton.tsx +2 -2
  107. package/src/components/Input/IconButtons/IconButtons/RedirectButton.tsx +2 -2
  108. package/src/components/Input/IconButtons/IconButtons/ViewButton.tsx +2 -2
  109. package/src/components/Input/LabelWrapper/LabelWrapper.tsx +5 -5
  110. package/src/components/Input/MultiCheckBox/MultiCheckBox.tsx +6 -6
  111. package/src/components/Input/OtpInput/OtpInput.tsx +17 -17
  112. package/src/components/Input/PasswordField/PasswordField.tsx +8 -8
  113. package/src/components/Input/RadioGroup/RadioGroup.tsx +5 -5
  114. package/src/components/Input/SearchBar/SearchBar.tsx +20 -20
  115. package/src/components/Input/SingleCheckBox/SIngleCheckBox.tsx +5 -5
  116. package/src/components/Input/SingleSelect/SingleSelect.tsx +39 -6
  117. package/src/components/Input/Switch/Switch.tsx +1 -1
  118. package/src/components/Input/TextField/TextField.tsx +3 -3
  119. package/src/components/Input/TimePicker/TimePicker.tsx +18 -4
  120. package/src/components/Input/components/FetchingOptionsLoader.tsx +3 -3
  121. package/src/components/Input/styles.tsx +6 -6
  122. package/src/components/Layout/AppHeader/AppHeader.tsx +10 -12
  123. package/src/components/Layout/AppHeader/AppHeaderActions/CogWheelMenu.tsx +5 -5
  124. package/src/components/Layout/AppHeader/AppHeaderActions/HeaderActions.tsx +6 -6
  125. package/src/components/Layout/AppHeader/AppHeaderActions/SwitchInstitution.tsx +37 -37
  126. package/src/components/Layout/AppHeader/AppHeaderActions/UserBox.tsx +28 -28
  127. package/src/components/Layout/AppHeader/styles/styles.tsx +24 -24
  128. package/src/components/Layout/PageHeader/PageHeader.tsx +8 -3
  129. package/src/components/Layout/TabsLayout/Tabs.tsx +16 -16
  130. package/src/components/Layout/TabsLayout/TabsLayout.tsx +6 -6
  131. package/src/components/Layout/export.ts +4 -0
  132. package/src/components/Navigation/Breadcrumbs/Breadcrumbs.tsx +35 -23
  133. package/src/components/Navigation/ConfirmDialog/ConfirmDialog.tsx +74 -0
  134. package/src/components/Navigation/Dialog/Dialog.tsx +33 -0
  135. package/src/components/Navigation/DialogButton/DialogButton.tsx +17 -81
  136. package/src/components/Navigation/DropDownMenu/DropDownButton.tsx +4 -4
  137. package/src/components/Navigation/DropDownMenu/DropDownIcon.tsx +4 -4
  138. package/src/components/Navigation/DropDownMenu/DropDownMenu.tsx +8 -8
  139. package/src/components/Navigation/DropDownMenu/DropdownMenuItem.tsx +3 -3
  140. package/src/components/Navigation/DropDownMenu/styles.tsx +13 -13
  141. package/src/components/Navigation/PreviewFiles/PreviewFiles.tsx +165 -0
  142. package/src/components/Navigation/Sidebar/Components.tsx +18 -18
  143. package/src/components/Navigation/Sidebar/MenuItem.tsx +1 -1
  144. package/src/components/Navigation/Sidebar/SubMenuItem.tsx +2 -1
  145. package/src/components/Navigation/Sidebar/interfaces.ts +1 -1
  146. package/src/components/Navigation/Sidebar/styles.tsx +64 -64
  147. package/src/components/Navigation/Stepper/Stepper.tsx +5 -5
  148. package/src/components/Navigation/Stepper/StepperComponents.tsx +15 -15
  149. package/src/components/Navigation/TabsContainer/TabsContainer.tsx +4 -4
  150. package/src/components/Navigation/UploadDialog/LoadingUploadDialogContainer.tsx +23 -0
  151. package/src/components/Navigation/UploadDialog/Styles.tsx +34 -0
  152. package/src/components/Navigation/UploadDialog/UploadDialog.tsx +143 -0
  153. package/src/components/Navigation/UploadDialog/UploadDialogContainer.tsx +82 -0
  154. package/src/components/Navigation/export.ts +13 -0
  155. package/src/components/export.ts +7 -7
  156. package/src/contexts/Providers.tsx +2 -2
  157. package/src/index.tsx +2 -2
  158. package/src/store/activeStore.ts +1 -1
  159. package/src/stories/Assets/Icons.stories.tsx +6 -6
  160. package/src/stories/Charts/BarChart.stories.tsx +56 -56
  161. package/src/stories/Charts/LineChart.stories.tsx +49 -49
  162. package/src/stories/Charts/PieChart.stories.tsx +53 -53
  163. package/src/stories/Charts/Treemap.stories.tsx +122 -122
  164. package/src/stories/DataDisplay/AccordionGroup.stories.tsx +11 -12
  165. package/src/stories/DataDisplay/Card.stories.tsx +34 -34
  166. package/src/stories/DataDisplay/Chips.stories.tsx +10 -10
  167. package/src/stories/DataDisplay/CircularAvatar.stories.tsx +6 -6
  168. package/src/stories/DataDisplay/DataTable.stories.tsx +32 -32
  169. package/src/stories/DataDisplay/SidePanel.stories.tsx +14 -14
  170. package/src/stories/DataDisplay/SquareAvatar.stories.tsx +15 -15
  171. package/src/stories/DesignSystem/colorTokens.stories.tsx +10 -10
  172. package/src/stories/DesignSystem/typography.stories.tsx +19 -19
  173. package/src/stories/Feedback/Alert.stories.tsx +9 -9
  174. package/src/stories/Feedback/Snackbar.stories.tsx +11 -11
  175. package/src/stories/Feedback/Spinner.stories.tsx +4 -4
  176. package/src/stories/Feedback/Tooltip.stories.tsx +5 -5
  177. package/src/stories/Feedback/Tutorial.stories.tsx +13 -13
  178. package/src/stories/Input/Button.stories.tsx +26 -26
  179. package/src/stories/Input/DatePicker.stories.tsx +48 -8
  180. package/src/stories/Input/IconButtons.stories.tsx +6 -6
  181. package/src/stories/Input/MultiCheckBox.stories.tsx +15 -15
  182. package/src/stories/Input/OtpInput.stories.tsx +5 -5
  183. package/src/stories/Input/Password.stories.tsx +7 -7
  184. package/src/stories/Input/RadioGroup.stories.tsx +14 -14
  185. package/src/stories/Input/SearchBar.stories.tsx +10 -10
  186. package/src/stories/Input/SingleCheckBox.stories.tsx +7 -7
  187. package/src/stories/Input/SingleSelect.stories.tsx +47 -47
  188. package/src/stories/Input/Switch.stories.tsx +22 -22
  189. package/src/stories/Input/TextField.stories.tsx +47 -47
  190. package/src/stories/Input/TimePicker.stories.tsx +44 -7
  191. package/src/stories/Layout/AppHeader.stories.tsx +13 -13
  192. package/src/stories/Layout/TabsLayout.stories.tsx +24 -24
  193. package/src/stories/Navigation/ConfirmDialog.stories.tsx +90 -0
  194. package/src/stories/Navigation/DialogButton.stories.tsx +38 -45
  195. package/src/stories/Navigation/DropDownMenu.stories.tsx +24 -24
  196. package/src/stories/Navigation/FloatingSidebar.stories.tsx +23 -23
  197. package/src/stories/Navigation/ImportDialog.stories.tsx +45 -0
  198. package/src/stories/Navigation/PreviewFiles.stories.tsx +80 -0
  199. package/src/stories/Navigation/Stepper.stories.tsx +15 -15
  200. package/src/stories/Navigation/TabsContainer.stories.tsx +11 -11
  201. package/src/themes/MuiThemeProvider.tsx +3 -3
  202. package/src/themes/colorTokens/colorPalette.tsx +38 -38
  203. package/src/themes/colorTokens/darkColorTokens.tsx +1 -1
  204. package/src/themes/colorTokens/lightColorTokens.ts +1 -1
  205. package/src/themes/commonTheme.ts +13 -3
  206. package/src/themes/customCssBaseline.ts +2 -2
  207. package/src/themes/darkTheme.ts +4 -4
  208. package/src/themes/export.ts +3 -3
  209. package/src/themes/lightTheme.ts +4 -4
  210. package/src/utils/constants.ts +5 -5
  211. package/src/utils/logout.ts +8 -8
  212. package/tsconfig.json +2 -6
  213. package/src/assets/images/admin.png +0 -0
  214. package/src/assets/images/campx_logo__full_primary.png +0 -0
  215. package/src/assets/images/collegex.png +0 -0
  216. package/src/assets/images/commutex.png +0 -0
  217. package/src/assets/images/enrollx.png +0 -0
  218. package/src/assets/images/examx.png +0 -0
  219. package/src/assets/images/hostelx copy.png +0 -0
  220. package/src/assets/images/hostelx.png +0 -0
  221. package/src/assets/images/index.ts +0 -25
  222. package/src/assets/images/payx.png +0 -0
  223. package/src/assets/images/pepolex.png +0 -0
  224. package/src/assets/images/svg/campx-logo.svg +0 -32
  225. package/src/assets/images/svg/commutex_small.svg +0 -11
  226. package/src/assets/images/svg/enroll_logo.svg +0 -9
  227. package/src/assets/images/svg/exams_small.svg +0 -12
  228. package/src/assets/images/svg/help-icon.svg +0 -8
  229. package/src/assets/images/svg/hostel_small.svg +0 -13
  230. package/src/assets/images/svg/payx_small.svg +0 -16
  231. package/src/assets/images/svg/people_small.svg +0 -9
  232. package/src/assets/images/svg/squareSmall.svg +0 -9
  233. package/src/assets/images/svg/square_small.svg +0 -9
  234. package/src/components/Feedback/exports.ts +0 -5
  235. package/src/components/Layout/exports.ts +0 -4
  236. package/src/components/Navigation/exports.ts +0 -10
  237. package/src/stories/Navigation/Breadcrumbs.stories.tsx +0 -34
  238. package/src/utils/applications.ts +0 -140
  239. package/src/utils/campxAxios.ts +0 -18
  240. package/src/utils/imageMap.ts +0 -22
@@ -7,44 +7,44 @@ import {
7
7
  ListItemIcon,
8
8
  Stack,
9
9
  styled,
10
- } from "@mui/material";
11
- import { Link } from "react-router-dom";
10
+ } from '@mui/material';
11
+ import { Link } from 'react-router-dom';
12
12
 
13
13
  export const createSidebarStyles = (collapsed: boolean) => {
14
14
  const StyledSidebarContainer = styled(Stack)(({ theme }) => {
15
15
  return {
16
16
  backgroundColor: theme.palette.surface.defaultBackground,
17
- height: "100%",
18
- justifyContent: "space-between",
19
- overflow: "hidden",
17
+ height: '100%',
18
+ justifyContent: 'space-between',
19
+ overflow: 'hidden',
20
20
  };
21
21
  });
22
22
 
23
23
  const StyledLogoArea = styled(Box)(
24
24
  ({ theme, collapsed }: { theme?: any; collapsed: boolean }) => ({
25
- display: "flex",
26
- alignItems: "center",
27
- justifyContent: "center",
28
- padding: collapsed ? "0px" : "12px 36px",
25
+ display: 'flex',
26
+ alignItems: 'center',
27
+ justifyContent: 'center',
28
+ padding: collapsed ? '0px' : '12px 36px',
29
29
  backgroundColor: theme.palette.surface.paperBackground,
30
- height: "60px",
31
- borderRadius: "8px",
32
- })
30
+ height: '60px',
31
+ borderRadius: '8px',
32
+ }),
33
33
  );
34
34
 
35
35
  const StyledMenuBar = styled(Box)(({ theme }) => ({
36
- height: "100%",
37
- borderRadius: "8px",
36
+ height: '100%',
37
+ borderRadius: '8px',
38
38
  backgroundColor: theme.palette.surface.paperBackground,
39
39
  }));
40
40
 
41
41
  const StyledCollapsibleSection = styled(IconButton)(({ theme }) => ({
42
- display: "flex",
43
- alignItems: "center",
44
- justifyContent: "center",
45
- borderRadius: "8px",
42
+ display: 'flex',
43
+ alignItems: 'center',
44
+ justifyContent: 'center',
45
+ borderRadius: '8px',
46
46
  backgroundColor: theme.palette.surface.paperBackground,
47
- height: "60px",
47
+ height: '60px',
48
48
  }));
49
49
 
50
50
  interface StyledLinkButtonProps {
@@ -54,34 +54,34 @@ export const createSidebarStyles = (collapsed: boolean) => {
54
54
  const StyledListItem = styled(ListItem)(({ theme }) => ({
55
55
  // width: collapsed ? "min-content" : "auto",
56
56
  // backgroundColor: match ? theme.palette.secondary.main : "none",
57
- display: "flex",
58
- justifyContent: "center",
59
- borderRadius: "4px",
57
+ display: 'flex',
58
+ justifyContent: 'center',
59
+ borderRadius: '4px',
60
60
  }));
61
61
 
62
62
  const StyledLinkButton = styled(Link)<StyledLinkButtonProps>(
63
63
  ({ theme, match }) => ({
64
- width: collapsed ? "auto" : "100%",
65
- textDecoration: "none",
66
- display: "flex",
67
- margin: collapsed ? "5px 0px 0px 0px" : "5px 8px",
64
+ width: collapsed ? 'auto' : '100%',
65
+ textDecoration: 'none',
66
+ display: 'flex',
67
+ margin: collapsed ? '5px 0px 0px 0px' : '5px 8px',
68
68
 
69
- backgroundColor: match ? theme.palette.secondary.main : "none",
70
- justifyContent: "center",
71
- "&:hover": {
72
- color: "unset",
69
+ backgroundColor: match ? theme.palette.secondary.main : 'none',
70
+ justifyContent: 'center',
71
+ '&:hover': {
72
+ color: 'unset',
73
73
  },
74
- borderRadius: "4px",
75
- })
74
+ borderRadius: '4px',
75
+ }),
76
76
  );
77
77
 
78
78
  const StyledListItemIcon = styled(ListItemIcon)(
79
79
  ({ collapsed }: { collapsed: boolean }) => ({
80
- display: "flex",
81
- justifyContent: "center",
82
- minWidth: "0px",
83
- marginRight: "10px",
84
- })
80
+ display: 'flex',
81
+ justifyContent: 'center',
82
+ minWidth: '0px',
83
+ marginRight: '10px',
84
+ }),
85
85
  );
86
86
 
87
87
  interface StyledListItemButtonProps {
@@ -89,47 +89,47 @@ export const createSidebarStyles = (collapsed: boolean) => {
89
89
  }
90
90
 
91
91
  const StyledListItemButton = styled(
92
- ListItemButton
92
+ ListItemButton,
93
93
  )<StyledListItemButtonProps>(({ collapsed }) => ({
94
- display: "flex",
95
- alignItems: "center",
96
- justifyContent: collapsed ? "center" : "flex-start",
97
- paddingBottom: "5px",
98
- paddingTop: "5px",
99
- width: "100%",
100
- borderRadius: "5px",
101
- "&:hover .hoverIcon": {
102
- display: "flex",
94
+ display: 'flex',
95
+ alignItems: 'center',
96
+ justifyContent: collapsed ? 'center' : 'flex-start',
97
+ paddingBottom: '5px',
98
+ paddingTop: '5px',
99
+ width: '100%',
100
+ borderRadius: '5px',
101
+ '&:hover .hoverIcon': {
102
+ display: 'flex',
103
103
  },
104
104
  }));
105
105
 
106
106
  const HoverIcon = styled(Box)(({ theme }) => ({
107
- display: "none",
107
+ display: 'none',
108
108
  }));
109
109
 
110
110
  const StyledSubMenuButton = styled(Button)<StyledLinkButtonProps>(
111
111
  ({ theme, match }) => ({
112
- width: collapsed ? "auto" : "100%",
113
- textDecoration: "none",
114
- display: "flex",
115
- margin: collapsed ? "5px 0px 0px 0px" : "5px 8px",
116
- backgroundColor: match ? theme.palette.secondary.main : "none",
117
- justifyContent: "center",
118
- "&:hover": {
119
- color: "unset",
112
+ width: collapsed ? 'auto' : '100%',
113
+ textDecoration: 'none',
114
+ display: 'flex',
115
+ margin: collapsed ? '5px 0px 0px 0px' : '5px 8px',
116
+ backgroundColor: match ? theme.palette.secondary.main : 'none',
117
+ justifyContent: 'center',
118
+ '&:hover': {
119
+ color: 'unset',
120
120
  },
121
- borderRadius: "4px",
122
- })
121
+ borderRadius: '4px',
122
+ }),
123
123
  );
124
124
 
125
125
  const StyledMenuHeaderButton = styled(Stack)(({ theme }) => ({
126
- alignItems: "end",
127
- height: "50px",
128
- width: "100%",
129
- padding: "12px 16px",
126
+ alignItems: 'end',
127
+ height: '50px',
128
+ width: '100%',
129
+ padding: '12px 16px',
130
130
  backgroundColor: theme.palette.surface.grey,
131
- cursor: "pointer",
132
- borderRadius: "8px 8px 0px 0px",
131
+ cursor: 'pointer',
132
+ borderRadius: '8px 8px 0px 0px',
133
133
  }));
134
134
 
135
135
  return {
@@ -5,11 +5,11 @@ import {
5
5
  StepLabel,
6
6
  SxProps,
7
7
  Typography,
8
- } from "@mui/material";
9
- import { Connector, StepIcon, StyledStepContent } from "./StepperComponents";
8
+ } from '@mui/material';
9
+ import { Connector, StepIcon, StyledStepContent } from './StepperComponents';
10
10
 
11
11
  interface StepperProps {
12
- orientation: "vertical" | "horizontal";
12
+ orientation: 'vertical' | 'horizontal';
13
13
  activeStep: number;
14
14
  steps: StepItem[];
15
15
  containerSx: SxProps;
@@ -26,12 +26,12 @@ export const Stepper = ({
26
26
  activeStep = 0,
27
27
  containerSx,
28
28
  }: StepperProps) => {
29
- const isVertical = orientation === "vertical";
29
+ const isVertical = orientation === 'vertical';
30
30
 
31
31
  return (
32
32
  <Box
33
33
  sx={{
34
- ...(isVertical ? { maxWidth: "300px" } : {}),
34
+ ...(isVertical ? { maxWidth: '300px' } : {}),
35
35
  ...containerSx,
36
36
  }}
37
37
  >
@@ -4,10 +4,10 @@ import {
4
4
  StepContent,
5
5
  StepIconProps,
6
6
  styled,
7
- } from "@mui/material";
8
- import { CheckedRadioIcon } from "../../Assets/Icons/IconComponents/CheckedRadioIcon";
9
- import { CompletedStateIcon } from "../../Assets/Icons/IconComponents/CompletedStateIcon";
10
- import { UnCheckedRadioIcon } from "../../Assets/Icons/IconComponents/UncheckedRadioIcon";
7
+ } from '@mui/material';
8
+ import { CheckedRadioIcon } from '../../Assets/Icons/IconComponents/CheckedRadioIcon';
9
+ import { CompletedStateIcon } from '../../Assets/Icons/IconComponents/CompletedStateIcon';
10
+ import { UnCheckedRadioIcon } from '../../Assets/Icons/IconComponents/UncheckedRadioIcon';
11
11
 
12
12
  interface StepContentProps {
13
13
  isVertical: boolean;
@@ -23,11 +23,11 @@ export const StyledStepContent = styled(StepContent)<StepContentProps>(
23
23
  borderLeft: `2px solid ${theme.palette.primary.light}`,
24
24
  }),
25
25
  ...(!isVertical && {
26
- borderLeft: "none",
27
- paddingLeft: "20px",
28
- margin: "20px 0px 0px 20px",
26
+ borderLeft: 'none',
27
+ paddingLeft: '20px',
28
+ margin: '20px 0px 0px 20px',
29
29
  }),
30
- })
30
+ }),
31
31
  );
32
32
 
33
33
  interface ConnectorProps {
@@ -38,17 +38,17 @@ export const Connector = styled(StepConnector)<ConnectorProps>(
38
38
  ({ theme, isVertical }) => ({
39
39
  [`&.${stepConnectorClasses.active}`]: {
40
40
  [`& .${stepConnectorClasses.line}`]: {
41
- [isVertical ? "borderLeft" : "border"]:
41
+ [isVertical ? 'borderLeft' : 'border']:
42
42
  `2px solid ${theme.palette.primary.light}`,
43
43
  },
44
44
  },
45
45
  [`&.${stepConnectorClasses.completed}`]: {
46
46
  [`& .${stepConnectorClasses.line}`]: {
47
- [isVertical ? "borderLeft" : "border"]:
47
+ [isVertical ? 'borderLeft' : 'border']:
48
48
  `2px solid ${theme.palette.primary.light}`,
49
49
  },
50
50
  },
51
- })
51
+ }),
52
52
  );
53
53
 
54
54
  export function StepIcon(props: StepIconProps) {
@@ -63,10 +63,10 @@ export function StepIcon(props: StepIconProps) {
63
63
  return <StepIconRoot className={className}>{getIcon()}</StepIconRoot>;
64
64
  }
65
65
 
66
- const StepIconRoot = styled("div")<{}>(({ theme }) => ({
66
+ const StepIconRoot = styled('div')<{}>(({ theme }) => ({
67
67
  width: 20,
68
68
  height: 20,
69
- display: "flex",
70
- justifyContent: "center",
71
- alignItems: "center",
69
+ display: 'flex',
70
+ justifyContent: 'center',
71
+ alignItems: 'center',
72
72
  }));
@@ -1,7 +1,7 @@
1
- import { Box, Tab, TabProps, Tabs, TabsProps } from "@mui/material";
2
- import { ChangeEvent, useEffect, useState } from "react";
1
+ import { Box, Tab, TabProps, Tabs, TabsProps } from '@mui/material';
2
+ import { ChangeEvent, useEffect, useState } from 'react';
3
3
 
4
- interface CustomTabProps extends Omit<TabProps, "component"> {
4
+ interface CustomTabProps extends Omit<TabProps, 'component'> {
5
5
  component: React.ReactNode;
6
6
  highlight?: boolean;
7
7
  key: string | number;
@@ -46,7 +46,7 @@ export const TabsContainer = ({
46
46
  <Tab
47
47
  label={tab.label}
48
48
  value={tab?.key}
49
- icon={tab.highlight ? <span>{"."}</span> : <></>}
49
+ icon={tab.highlight ? <span>{'.'}</span> : <></>}
50
50
  iconPosition="end"
51
51
  {...tab}
52
52
  />
@@ -0,0 +1,23 @@
1
+ import { Typography, useTheme } from '@mui/material';
2
+ import { AnimatedGifs } from '../../../assets/images/gif';
3
+ import { ImageContainer, UploadDialogBox } from './Styles';
4
+
5
+ export const LoadingUploadDialogConatiner = () => {
6
+ const theme = useTheme();
7
+ return (
8
+ <UploadDialogBox dragging={false}>
9
+ <ImageContainer
10
+ src={AnimatedGifs.UploadingFile}
11
+ alt={'Import animation'}
12
+ />
13
+ <Typography
14
+ fontSize="18px"
15
+ color={theme.palette.primary.main}
16
+ lineHeight="27px"
17
+ variant="subtitle3"
18
+ >
19
+ Uploading File
20
+ </Typography>
21
+ </UploadDialogBox>
22
+ );
23
+ };
@@ -0,0 +1,34 @@
1
+ import { Box, styled } from '@mui/material';
2
+ import React from 'react';
3
+
4
+ interface StyledBoxProps {
5
+ dragging: boolean;
6
+ }
7
+
8
+ export const UploadDialogBox = styled(Box)<StyledBoxProps>(
9
+ ({ theme, dragging }) => ({
10
+ display: 'flex',
11
+ flexDirection: 'column',
12
+ width: '100%',
13
+ height: '250px',
14
+ border: '1.5px dashed',
15
+ borderRadius: '10px',
16
+ borderColor: dragging
17
+ ? theme.palette.primary.dark
18
+ : theme.palette.primary.main,
19
+ backgroundColor: dragging
20
+ ? theme.palette.secondary.dark
21
+ : theme.palette.secondary.light,
22
+ justifyContent: 'center',
23
+ alignItems: 'center',
24
+ transition: 'background-color 0.3s, border-color 0.3s',
25
+ }),
26
+ );
27
+
28
+ export const ImageContainer = React.memo(
29
+ styled('img')<{ size?: number }>(({ size }) => ({
30
+ height: size ? `${size}px` : '110px',
31
+ width: size ? `${size}px` : '120px',
32
+ objectFit: 'contain',
33
+ })),
34
+ );
@@ -0,0 +1,143 @@
1
+ import { Divider, Stack } from '@mui/material';
2
+ import { ReactNode, useEffect, useState } from 'react';
3
+ import { Button } from '../../export';
4
+ import { Dialog, DialogProps } from '../export';
5
+ import { PreviewFiles } from '../PreviewFiles/PreviewFiles';
6
+ import { LoadingUploadDialogConatiner } from './LoadingUploadDialogContainer';
7
+ import { UploadDialogContainer } from './UploadDialogContainer';
8
+
9
+ export type UploadDialogProps = {
10
+ anchor: (props: { open: () => void }) => ReactNode;
11
+ onDialogOpen?: () => void;
12
+ onDialogClose?: () => void;
13
+ title?: string;
14
+ sampleFileUrl?: string;
15
+ onUpload: (file: File | null) => void;
16
+ acceptFileType?: string;
17
+ loading?: boolean;
18
+ } & Omit<DialogProps, 'content' | 'onClose' | 'open'>;
19
+
20
+ export const UploadDialog = ({
21
+ onUpload,
22
+ sampleFileUrl,
23
+ acceptFileType,
24
+ loading = false,
25
+ title = 'Upload File',
26
+ anchor,
27
+ onDialogClose,
28
+ onDialogOpen,
29
+ ...props
30
+ }: UploadDialogProps) => {
31
+ const [open, setOpen] = useState(false);
32
+ const [file, setFile] = useState<File | null>(null);
33
+ const [uploading, setUploading] = useState(false);
34
+
35
+ const onClose = () => {
36
+ onDialogClose && onDialogClose();
37
+ setOpen(false);
38
+ };
39
+
40
+ const onOpen = () => {
41
+ onDialogOpen && onDialogOpen();
42
+ setOpen(true);
43
+ };
44
+
45
+ const handleUpload = async (close: () => void) => {
46
+ if (file) {
47
+ try {
48
+ setUploading(true);
49
+ await onUpload(file);
50
+ setUploading(false);
51
+ } catch (error) {
52
+ console.error('Upload failed:', error);
53
+ setUploading(false);
54
+ }
55
+ }
56
+ };
57
+
58
+ useEffect(() => {
59
+ setUploading(loading);
60
+ }, [loading]);
61
+
62
+ useEffect(() => {
63
+ if (!uploading) {
64
+ setFile(null);
65
+ setOpen(false);
66
+ }
67
+ }, [uploading]);
68
+
69
+ return (
70
+ <>
71
+ {anchor({
72
+ open: onOpen,
73
+ })}
74
+ <Dialog
75
+ title={title}
76
+ maxWidth={'sm'}
77
+ open={open}
78
+ content={({ close }: { close: () => void }) => {
79
+ return (
80
+ <>
81
+ {uploading ? (
82
+ <LoadingUploadDialogConatiner />
83
+ ) : (
84
+ <UploadDialogContainer
85
+ setFile={setFile}
86
+ acceptFileType={acceptFileType}
87
+ />
88
+ )}
89
+
90
+ {sampleFileUrl && (
91
+ <a href={sampleFileUrl} target="_blank" rel="noreferrer">
92
+ <Button
93
+ sx={{ margin: '12px 0px' }}
94
+ color="secondary"
95
+ fullWidth
96
+ variant="contained"
97
+ >
98
+ Download Sample File
99
+ </Button>
100
+ </a>
101
+ )}
102
+ {file && !uploading && (
103
+ <PreviewFiles
104
+ sx={{ margin: '16px 0px' }}
105
+ key={file.name + file.lastModified}
106
+ files={file}
107
+ label="Selected Files"
108
+ setFiles={setFile}
109
+ />
110
+ )}
111
+ <Divider
112
+ component="div"
113
+ variant="fullWidth"
114
+ orientation="horizontal"
115
+ />
116
+ <Stack direction={'row'} gap={2} padding={'12px 0px'}>
117
+ <Button
118
+ variant="contained"
119
+ disabled={!file || uploading}
120
+ onClick={() => {
121
+ handleUpload(close);
122
+ }}
123
+ >
124
+ Upload Now
125
+ </Button>
126
+ <Button
127
+ onClick={() => {
128
+ setFile(null);
129
+ close();
130
+ }}
131
+ >
132
+ Cancel
133
+ </Button>
134
+ </Stack>
135
+ </>
136
+ );
137
+ }}
138
+ onClose={onClose}
139
+ {...props}
140
+ />
141
+ </>
142
+ );
143
+ };
@@ -0,0 +1,82 @@
1
+ import { FormLabel, Typography, useTheme } from '@mui/material';
2
+ import React, { useCallback, useState } from 'react';
3
+ import { AnimatedGifs } from '../../../assets/images/gif';
4
+ import { ImageContainer, UploadDialogBox } from './Styles';
5
+
6
+ export const UploadDialogContainer = ({
7
+ setFile,
8
+ acceptFileType,
9
+ }: {
10
+ setFile: React.Dispatch<React.SetStateAction<File | null>>;
11
+ acceptFileType?: string;
12
+ }) => {
13
+ const theme = useTheme();
14
+ const [dragging, setDragging] = useState(false);
15
+
16
+ const resetFile = useCallback(() => setFile(null), [setFile]);
17
+
18
+ const handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {
19
+ const selectedFile = event.target.files?.[0];
20
+ if (selectedFile) {
21
+ resetFile();
22
+ setFile(selectedFile);
23
+ event.target.value = '';
24
+ }
25
+ };
26
+
27
+ const handleDragOver = (event: React.DragEvent<HTMLDivElement>) => {
28
+ event.preventDefault();
29
+ setDragging(true);
30
+ };
31
+
32
+ const handleDragLeave = () => setDragging(false);
33
+
34
+ const handleDrop = (event: React.DragEvent<HTMLDivElement>) => {
35
+ event.preventDefault();
36
+ setDragging(false);
37
+ const droppedFile = event.dataTransfer.files?.[0];
38
+ if (droppedFile) {
39
+ setFile(droppedFile);
40
+ event.dataTransfer.clearData();
41
+ }
42
+ };
43
+
44
+ return (
45
+ <FormLabel htmlFor="file">
46
+ <UploadDialogBox
47
+ onDragOver={handleDragOver}
48
+ onDragLeave={handleDragLeave}
49
+ onDrop={handleDrop}
50
+ dragging={dragging}
51
+ >
52
+ <ImageContainer
53
+ src={AnimatedGifs.UploadFile}
54
+ alt={'Import animation'}
55
+ />
56
+ <Typography
57
+ fontSize="18px"
58
+ color={theme.palette.primary.main}
59
+ lineHeight="27px"
60
+ variant="subtitle3"
61
+ >
62
+ Import your file
63
+ </Typography>
64
+ <Typography
65
+ color={theme.palette.primary.light}
66
+ lineHeight="27px"
67
+ variant="body2"
68
+ >
69
+ Click or drag and drop it here
70
+ </Typography>
71
+ <input
72
+ id="file"
73
+ type="file"
74
+ accept={acceptFileType}
75
+ onChange={handleFileChange}
76
+ hidden
77
+ multiple
78
+ />
79
+ </UploadDialogBox>
80
+ </FormLabel>
81
+ );
82
+ };
@@ -0,0 +1,13 @@
1
+ export * from './Breadcrumbs/Breadcrumbs';
2
+ export * from './ConfirmDialog/ConfirmDialog';
3
+ export * from './Dialog/Dialog';
4
+ export * from './DialogButton/DialogButton';
5
+ export * from './DropDownMenu/DropDownButton';
6
+ export * from './DropDownMenu/DropDownIcon';
7
+ export * from './DropDownMenu/DropDownMenu';
8
+ export * from './DropDownMenu/DropdownMenuItem';
9
+ export * from './PreviewFiles/PreviewFiles';
10
+ export * from './Sidebar/Sidebar';
11
+ export * from './Stepper/Stepper';
12
+ export * from './TabsContainer/TabsContainer';
13
+ export * from './UploadDialog/UploadDialog';
@@ -1,7 +1,7 @@
1
- export * from "./Assets/export";
2
- export * from "./DataDisplay/export";
3
- export * from "./Feedback/exports";
4
- export * from "./Input/export";
5
- export * from "./Layout/exports";
6
- export * from "./Navigation/exports";
7
- export * from "./Charts/export";
1
+ export * from './Assets/export';
2
+ export * from './Charts/export';
3
+ export * from './DataDisplay/export';
4
+ export * from './Feedback/export';
5
+ export * from './Input/export';
6
+ export * from './Layout/export';
7
+ export * from './Navigation/export';
@@ -1,5 +1,5 @@
1
- import { ReactNode } from "react";
2
- import { MuiThemeProvider } from "../themes/MuiThemeProvider";
1
+ import { ReactNode } from 'react';
2
+ import { MuiThemeProvider } from '../themes/MuiThemeProvider';
3
3
 
4
4
  export default function Providers({ children }: { children: ReactNode }) {
5
5
  return <MuiThemeProvider>{children}</MuiThemeProvider>;
package/src/index.tsx CHANGED
@@ -5,12 +5,12 @@ import App from './App';
5
5
  import reportWebVitals from './reportWebVitals';
6
6
 
7
7
  const root = ReactDOM.createRoot(
8
- document.getElementById('root') as HTMLElement
8
+ document.getElementById('root') as HTMLElement,
9
9
  );
10
10
  root.render(
11
11
  <React.StrictMode>
12
12
  <App />
13
- </React.StrictMode>
13
+ </React.StrictMode>,
14
14
  );
15
15
 
16
16
  // If you want to start measuring performance in your app, pass a function
@@ -1,4 +1,4 @@
1
- import { Store } from "pullstate";
1
+ import { Store } from 'pullstate';
2
2
 
3
3
  export const activeStore = new Store({
4
4
  active: 0,