@campxdev/shared 1.8.14 → 1.8.16

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 (267) hide show
  1. package/antd.customize.less +73 -0
  2. package/exports.ts +19 -0
  3. package/package.json +4 -20
  4. package/src/assets/fonts/avenir/Avenir-Book.ttf +0 -0
  5. package/src/assets/fonts/avenir/Avenir-Heavy.ttf +0 -0
  6. package/src/assets/fonts/avenir/Avenir-HeavyOblique.ttf +0 -0
  7. package/src/assets/fonts/avenir/Avenir-Medium.ttf +0 -0
  8. package/src/assets/fonts/avenir/Avenir-MediumOblique.ttf +0 -0
  9. package/src/assets/fonts/avenir/index.ts +13 -0
  10. package/src/assets/fonts/poppins/Poppins-Bold.ttf +0 -0
  11. package/src/assets/fonts/poppins/Poppins-Italic.ttf +0 -0
  12. package/src/assets/fonts/poppins/Poppins-Light.ttf +0 -0
  13. package/src/assets/fonts/poppins/Poppins-LightItalic.ttf +0 -0
  14. package/src/assets/fonts/poppins/Poppins-Medium.ttf +0 -0
  15. package/src/assets/fonts/poppins/Poppins-MediumItalic.ttf +0 -0
  16. package/src/assets/fonts/poppins/Poppins-Regular.ttf +0 -0
  17. package/src/assets/fonts/poppins/Poppins-SemiBold.ttf +0 -0
  18. package/src/assets/fonts/poppins/Poppins-SemiBoldItalic.ttf +0 -0
  19. package/src/assets/fonts/poppins/index.ts +18 -0
  20. package/src/assets/images/401.png +0 -0
  21. package/src/assets/images/403.png +0 -0
  22. package/src/assets/images/404.png +0 -0
  23. package/src/assets/images/404notfound.svg +1 -0
  24. package/src/assets/images/500.png +0 -0
  25. package/src/assets/images/avatar.png +0 -0
  26. package/src/assets/images/campx_logo__full_primary.png +0 -0
  27. package/src/assets/images/index.ts +17 -0
  28. package/src/assets/images/internalservererror.svg +1 -0
  29. package/src/assets/images/noInternet.svg +1 -0
  30. package/src/assets/images/nointernet.png +0 -0
  31. package/src/assets/images/notfound.png +0 -0
  32. package/src/assets/images/pagenotfound.svg +1 -0
  33. package/src/assets/images/permissiondenied.svg +1 -0
  34. package/src/assets/images/unauth.svg +92 -0
  35. package/src/components/ActionButton.tsx +20 -0
  36. package/src/components/Attachment.tsx +26 -0
  37. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -0
  38. package/src/components/AutocompleteSearch/index.tsx +1 -0
  39. package/src/components/Breadcrumbs.tsx +72 -0
  40. package/src/components/Card.tsx +98 -0
  41. package/src/components/CardsGrid.tsx +28 -0
  42. package/src/components/ChangePassword.tsx +123 -0
  43. package/src/components/Chips.tsx +81 -0
  44. package/src/components/Detail.tsx +15 -0
  45. package/src/components/DetailsGrid.tsx +52 -0
  46. package/src/components/DividerHeading.tsx +41 -0
  47. package/src/components/DrawerWrapper/DialogWrapper.tsx +67 -0
  48. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -0
  49. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -0
  50. package/src/components/DropDownButton/AnchorElement.tsx +44 -0
  51. package/src/components/DropDownButton/DropDownButton.tsx +184 -0
  52. package/src/components/DropDownButton/DropdownMenuItem.tsx +110 -0
  53. package/src/components/DropDownButton/index.tsx +1 -0
  54. package/src/components/DropDownButton/styles.tsx +59 -0
  55. package/src/components/ErrorBoundary/ErrorBoundary.tsx +33 -0
  56. package/src/components/ErrorBoundary/ErrorFallback.tsx +241 -0
  57. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -0
  58. package/src/components/ErrorBoundary/index.tsx +1 -0
  59. package/src/components/ErrorBox.tsx +42 -0
  60. package/src/components/ExcelToJsonInput/ExcelJsonUpload.tsx +50 -0
  61. package/src/components/ExcelToJsonInput/ExcelToJsonInput.tsx +57 -0
  62. package/src/components/ExcelToJsonInput/index.tsx +1 -0
  63. package/src/components/FilterComponents/FilterButton.tsx +56 -0
  64. package/src/components/FilterComponents/SearchBar.tsx +45 -0
  65. package/src/components/FloatingContainer.tsx +33 -0
  66. package/src/components/Form/Form.tsx +147 -0
  67. package/src/components/Form/RenderForm.tsx +189 -0
  68. package/src/components/FullScreenLoader.tsx +19 -0
  69. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -0
  70. package/src/components/HookForm/DatePicker.tsx +40 -0
  71. package/src/components/HookForm/DateTimePicker.tsx +47 -0
  72. package/src/components/HookForm/FormLabel.tsx +14 -0
  73. package/src/components/HookForm/MultiCheckbox.tsx +69 -0
  74. package/src/components/HookForm/MultiSelect.tsx +53 -0
  75. package/src/components/HookForm/RadioGroup.tsx +47 -0
  76. package/src/components/HookForm/SingleCheckbox.tsx +34 -0
  77. package/src/components/HookForm/SingleSelect.tsx +46 -0
  78. package/src/components/HookForm/TextField.tsx +40 -0
  79. package/src/components/HookForm/TimePicker.tsx +40 -0
  80. package/src/components/HookForm/index.ts +23 -0
  81. package/src/components/IconButtons/IconButtons.tsx +137 -0
  82. package/src/components/IconButtons/Icons.tsx +268 -0
  83. package/src/components/IconButtons/assets/edit.svg +4 -0
  84. package/src/components/IconButtons/assets/eye.svg +6 -0
  85. package/src/components/IconButtons/assets/trash.svg +7 -0
  86. package/src/components/IconButtons/index.tsx +8 -0
  87. package/src/components/IconLabel.tsx +37 -0
  88. package/src/components/Image/Image.tsx +45 -0
  89. package/src/components/Image/broken-image.png +0 -0
  90. package/src/components/Image/index.tsx +1 -0
  91. package/src/components/ImageUpload.tsx +98 -0
  92. package/src/components/Input/AsyncSearchSelect/AsyncSearchSelect.tsx +216 -0
  93. package/src/components/Input/AsyncSearchSelect/index.tsx +1 -0
  94. package/src/components/Input/AsyncSearchSelect/styles.tsx +105 -0
  95. package/src/components/Input/AutoCompleteSearch.tsx +121 -0
  96. package/src/components/Input/DatePicker.tsx +87 -0
  97. package/src/components/Input/DateRangePicker.tsx +105 -0
  98. package/src/components/Input/DateTimePicker.tsx +84 -0
  99. package/src/components/Input/FormLabel.tsx +21 -0
  100. package/src/components/Input/MultiCheckbox.tsx +64 -0
  101. package/src/components/Input/MultiSelect.tsx +150 -0
  102. package/src/components/Input/RadioGroup.tsx +104 -0
  103. package/src/components/Input/SingleCheckbox.tsx +78 -0
  104. package/src/components/Input/SingleSelect.tsx +104 -0
  105. package/src/components/Input/TextField.tsx +46 -0
  106. package/src/components/Input/TimePicker.tsx +77 -0
  107. package/src/components/Input/index.ts +26 -0
  108. package/src/components/Input/types.ts +3 -0
  109. package/src/components/JsonPreview.tsx +7 -0
  110. package/src/components/LabelValue.tsx +21 -0
  111. package/src/components/Layout/ChangePassword.tsx +49 -0
  112. package/src/components/Layout/Header/AppHeader.tsx +112 -0
  113. package/src/components/Layout/Header/AppsMenu.tsx +105 -0
  114. package/src/components/Layout/Header/HeaderActions/CogWheelMenu.tsx +33 -0
  115. package/src/components/Layout/Header/HeaderActions/FreshDeskHelpButton.tsx +24 -0
  116. package/src/components/Layout/Header/HeaderActions/HeaderActions.tsx +18 -0
  117. package/src/components/Layout/Header/HeaderActions/UserBox.tsx +56 -0
  118. package/src/components/Layout/Header/Notification.tsx +13 -0
  119. package/src/components/Layout/Header/applications.ts +103 -0
  120. package/src/components/Layout/Header/assets/background.png +0 -0
  121. package/src/components/Layout/Header/assets/campx.png +0 -0
  122. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -0
  123. package/src/components/Layout/Header/assets/commuteX.png +0 -0
  124. package/src/components/Layout/Header/assets/commutex.png +0 -0
  125. package/src/components/Layout/Header/assets/commutex.svg +14 -0
  126. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -0
  127. package/src/components/Layout/Header/assets/contactBg.png +0 -0
  128. package/src/components/Layout/Header/assets/enroll.svg +14 -0
  129. package/src/components/Layout/Header/assets/enroll_logo.svg +9 -0
  130. package/src/components/Layout/Header/assets/enrollx.svg +14 -0
  131. package/src/components/Layout/Header/assets/entrollx.png +0 -0
  132. package/src/components/Layout/Header/assets/exams_small.svg +12 -0
  133. package/src/components/Layout/Header/assets/examsx.svg +14 -0
  134. package/src/components/Layout/Header/assets/examx.png +0 -0
  135. package/src/components/Layout/Header/assets/hostel_small.svg +13 -0
  136. package/src/components/Layout/Header/assets/hostelx.png +0 -0
  137. package/src/components/Layout/Header/assets/hostelx.svg +13 -0
  138. package/src/components/Layout/Header/assets/index.ts +35 -0
  139. package/src/components/Layout/Header/assets/libraryx.svg +12 -0
  140. package/src/components/Layout/Header/assets/libreryx.png +0 -0
  141. package/src/components/Layout/Header/assets/pay_small.svg +16 -0
  142. package/src/components/Layout/Header/assets/payx.png +0 -0
  143. package/src/components/Layout/Header/assets/payx.svg +19 -0
  144. package/src/components/Layout/Header/assets/people_small.svg +9 -0
  145. package/src/components/Layout/Header/assets/peoplex.svg +12 -0
  146. package/src/components/Layout/Header/assets/pepolex.png +0 -0
  147. package/src/components/Layout/Header/assets/squarex.svg +12 -0
  148. package/src/components/Layout/Header/icons.tsx +57 -0
  149. package/src/components/Layout/Header/index.tsx +1 -0
  150. package/src/components/Layout/Header/styles.tsx +133 -0
  151. package/src/components/Layout/Helmet.tsx +49 -0
  152. package/src/components/Layout/LayoutWrapper.tsx +28 -0
  153. package/src/components/Layout/SideMenuHeader.tsx +29 -0
  154. package/src/components/Layout/SideNav.tsx +168 -0
  155. package/src/components/Layout/Tickets/HelpWidget/HelpWidget.tsx +273 -0
  156. package/src/components/Layout/Tickets/HelpWidget/styles.tsx +94 -0
  157. package/src/components/Layout/Tickets/MyTickets.tsx +72 -0
  158. package/src/components/Layout/Tickets/TicketDetails.tsx +65 -0
  159. package/src/components/Layout/Tickets/TimeLine.tsx +64 -0
  160. package/src/components/Layout/Tickets/index.tsx +1 -0
  161. package/src/components/Layout/Tickets/services.ts +11 -0
  162. package/src/components/Layout/Tickets/styles.tsx +136 -0
  163. package/src/components/LinearProgress.tsx +19 -0
  164. package/src/components/ListItemButton.tsx +95 -0
  165. package/src/components/LoginForm.tsx +279 -0
  166. package/src/components/MediaRow/MediaRow.tsx +67 -0
  167. package/src/components/MediaRow/index.tsx +1 -0
  168. package/src/components/ModalButtons/DialogButton.tsx +126 -0
  169. package/src/components/ModalButtons/DrawerButton.tsx +115 -0
  170. package/src/components/ModalButtons/index.tsx +4 -0
  171. package/src/components/NoDataIllustration.tsx +32 -0
  172. package/src/components/PageContent.tsx +12 -0
  173. package/src/components/PageHeader.tsx +55 -0
  174. package/src/components/PageNotFound.tsx +26 -0
  175. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -0
  176. package/src/components/PopupConfirm/PopupConfirm.tsx +67 -0
  177. package/src/components/PopupConfirm/animation.gif +0 -0
  178. package/src/components/PopupConfirm/index.tsx +1 -0
  179. package/src/components/PopupConfirm/useConfirm.ts +47 -0
  180. package/src/components/ResetPassword.tsx +107 -0
  181. package/src/components/Row.tsx +24 -0
  182. package/src/components/Spinner.tsx +18 -0
  183. package/src/components/StepsHeader/StepsHeader.tsx +115 -0
  184. package/src/components/StepsHeader/index.tsx +1 -0
  185. package/src/components/StyledTableContainer.tsx +33 -0
  186. package/src/components/SwitchButton.tsx +41 -0
  187. package/src/components/Table.tsx +42 -0
  188. package/src/components/Tables/BasicTable/Table.tsx +198 -0
  189. package/src/components/Tables/BasicTable/TableFooter.tsx +86 -0
  190. package/src/components/Tables/BasicTable/index.tsx +1 -0
  191. package/src/components/Tables/ReactTable/BatchActionsHeader.tsx +58 -0
  192. package/src/components/Tables/ReactTable/ReactTable.tsx +295 -0
  193. package/src/components/Tables/ReactTable/RenderTableBody.tsx +49 -0
  194. package/src/components/Tables/ReactTable/index.tsx +1 -0
  195. package/src/components/Tables/ReactTable/react-table-config.d.ts +128 -0
  196. package/src/components/Tables/common/NoRecordsFound.tsx +27 -0
  197. package/src/components/Tables/common/TableStats.tsx +22 -0
  198. package/src/components/Tables/common/icons.tsx +50 -0
  199. package/src/components/Tables/common/no-data-illu.svg +1 -0
  200. package/src/components/Tables/common/styles.tsx +170 -0
  201. package/src/components/Tables/common/types.ts +57 -0
  202. package/src/components/Tabs/NavigationTabs.tsx +80 -0
  203. package/src/components/Tabs/Tabs.tsx +53 -0
  204. package/src/components/Tabs/TabsContainer.tsx +53 -0
  205. package/src/components/Tabs/index.tsx +1 -0
  206. package/src/components/Tabs/styles.tsx +55 -0
  207. package/src/components/ToastContainer/ToastContainer.tsx +57 -0
  208. package/src/components/ToastContainer/index.tsx +1 -0
  209. package/src/components/UploadButton/UploadButton.tsx +126 -0
  210. package/src/components/UploadButton/index.tsx +1 -0
  211. package/src/components/UploadButton/types.ts +19 -0
  212. package/src/components/UploadDocument.tsx +108 -0
  213. package/src/components/UploadFileDialog/AnimatedUploadFile.gif +0 -0
  214. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -0
  215. package/src/components/UploadFileDialog/index.tsx +1 -0
  216. package/src/components/index.ts +106 -0
  217. package/src/config/axios.ts +73 -0
  218. package/src/config/axiosEvaluator.ts +53 -0
  219. package/src/config/axiosXTenant.ts +57 -0
  220. package/src/constants/UIConstants.ts +97 -0
  221. package/src/constants/formValidations.ts +6 -0
  222. package/src/constants/index.ts +5 -0
  223. package/src/constants/isDevelopment.ts +4 -0
  224. package/src/constants/permissions.ts +67 -0
  225. package/src/constants/validateMessages.ts +12 -0
  226. package/src/contexts/LoginFormProvider.tsx +44 -0
  227. package/src/contexts/Providers.tsx +50 -0
  228. package/src/contexts/PublicProviders.tsx +30 -0
  229. package/src/contexts/QueryClientProvider.tsx +22 -0
  230. package/src/hooks/index.ts +5 -0
  231. package/src/hooks/useAuth.ts +96 -0
  232. package/src/hooks/useExternalScript.ts +37 -0
  233. package/src/hooks/useFetch.ts +53 -0
  234. package/src/hooks/useFilters.ts +83 -0
  235. package/src/hooks/useRouter.ts +31 -0
  236. package/src/layouts/Components/DashBoardMenu.tsx +232 -0
  237. package/src/layouts/Components/icons/index.tsx +403 -0
  238. package/src/layouts/Components/styles.tsx +74 -0
  239. package/src/layouts/ComponentsLayout.tsx +3 -0
  240. package/src/permissions/PageWithPermission.tsx +18 -0
  241. package/src/permissions/PermissionDeniedPage.tsx +16 -0
  242. package/src/permissions/ValidateAccess.tsx +18 -0
  243. package/src/permissions/index.ts +2 -0
  244. package/src/react-app-env.d.ts +1 -0
  245. package/src/shared-state/AssetsStore.ts +15 -0
  246. package/src/shared-state/PermissionsStore.ts +392 -0
  247. package/src/shared-state/UserStore.ts +13 -0
  248. package/src/shared-state/index.ts +4 -0
  249. package/src/theme/App.less +3 -0
  250. package/src/theme/MuiThemeProvider.tsx +18 -0
  251. package/src/theme/customCssBaseline.ts +135 -0
  252. package/src/theme/index.css +28 -0
  253. package/src/theme/muiTheme.ts +597 -0
  254. package/src/theme/theme.d.ts +77 -0
  255. package/src/utils/adminAxios.ts +15 -0
  256. package/src/utils/alphabet.ts +23 -0
  257. package/src/utils/arrayPadEnd.ts +3 -0
  258. package/src/utils/formatCurrency.ts +9 -0
  259. package/src/utils/getUrlParams.ts +5 -0
  260. package/src/utils/index.ts +7 -0
  261. package/src/utils/logout.ts +25 -0
  262. package/src/utils/ordinalSuffixOf.ts +14 -0
  263. package/src/utils/romanize.ts +40 -0
  264. package/src/utils/withRouteWrapper.tsx +25 -0
  265. package/src/utils/withSuspense.tsx +6 -0
  266. package/styled-components.tsx +60 -0
  267. package/tsconfig.json +21 -0
@@ -0,0 +1,403 @@
1
+ export const DashboardIcon = () => {
2
+ return (
3
+ <svg
4
+ id="apps_2_"
5
+ data-name="apps (2)"
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ width="16"
8
+ height="16"
9
+ viewBox="0 0 16 16"
10
+ >
11
+ <path
12
+ id="Path_1377"
13
+ data-name="Path 1377"
14
+ d="M4.667,0h-2A2.667,2.667,0,0,0,0,2.667v2A2.667,2.667,0,0,0,2.667,7.333h2A2.667,2.667,0,0,0,7.333,4.667v-2A2.667,2.667,0,0,0,4.667,0ZM6,4.667A1.333,1.333,0,0,1,4.667,6h-2A1.333,1.333,0,0,1,1.333,4.667v-2A1.333,1.333,0,0,1,2.667,1.333h2A1.333,1.333,0,0,1,6,2.667Z"
15
+ fill="#fff"
16
+ />
17
+ <path
18
+ id="Path_1378"
19
+ data-name="Path 1378"
20
+ d="M17.667,0h-2A2.667,2.667,0,0,0,13,2.667v2a2.667,2.667,0,0,0,2.667,2.667h2a2.667,2.667,0,0,0,2.667-2.667v-2A2.667,2.667,0,0,0,17.667,0ZM19,4.667A1.333,1.333,0,0,1,17.667,6h-2a1.333,1.333,0,0,1-1.333-1.333v-2a1.333,1.333,0,0,1,1.333-1.333h2A1.333,1.333,0,0,1,19,2.667Z"
21
+ transform="translate(-4.333)"
22
+ fill="#fff"
23
+ />
24
+ <path
25
+ id="Path_1379"
26
+ data-name="Path 1379"
27
+ d="M4.667,13h-2A2.667,2.667,0,0,0,0,15.667v2a2.667,2.667,0,0,0,2.667,2.667h2a2.667,2.667,0,0,0,2.667-2.667v-2A2.667,2.667,0,0,0,4.667,13ZM6,17.667A1.333,1.333,0,0,1,4.667,19h-2a1.333,1.333,0,0,1-1.333-1.333v-2a1.333,1.333,0,0,1,1.333-1.333h2A1.333,1.333,0,0,1,6,15.667Z"
28
+ transform="translate(0 -4.333)"
29
+ fill="#fff"
30
+ />
31
+ <path
32
+ id="Path_1380"
33
+ data-name="Path 1380"
34
+ d="M17.667,13h-2A2.667,2.667,0,0,0,13,15.667v2a2.667,2.667,0,0,0,2.667,2.667h2a2.667,2.667,0,0,0,2.667-2.667v-2A2.667,2.667,0,0,0,17.667,13ZM19,17.667A1.333,1.333,0,0,1,17.667,19h-2a1.333,1.333,0,0,1-1.333-1.333v-2a1.333,1.333,0,0,1,1.333-1.333h2A1.333,1.333,0,0,1,19,15.667Z"
35
+ transform="translate(-4.333 -4.333)"
36
+ fill="#fff"
37
+ />
38
+ </svg>
39
+ )
40
+ }
41
+
42
+ export const LogsIcon = () => {
43
+ return (
44
+ <svg
45
+ xmlns="http://www.w3.org/2000/svg"
46
+ width="16"
47
+ height="16"
48
+ viewBox="0 0 16 16"
49
+ >
50
+ <g id="clock_5_" data-name="clock (5)" transform="translate(0 0)">
51
+ <path
52
+ id="Path_1791"
53
+ data-name="Path 1791"
54
+ d="M8,0a8,8,0,1,0,8,8A8,8,0,0,0,8,0ZM8,14.667A6.667,6.667,0,1,1,14.667,8,6.667,6.667,0,0,1,8,14.667Z"
55
+ fill="#fff"
56
+ />
57
+ <path
58
+ id="Path_1792"
59
+ data-name="Path 1792"
60
+ d="M10.386,6a.667.667,0,0,0-.667.667V9.55L7.472,10.958a.668.668,0,0,0,.708,1.133l2.56-1.6a.667.667,0,0,0,.313-.572V6.667A.667.667,0,0,0,10.386,6Z"
61
+ transform="translate(-2.386 -2)"
62
+ fill="#fff"
63
+ />
64
+ </g>
65
+ </svg>
66
+ )
67
+ }
68
+
69
+ export const ClassroomsIcon = () => {
70
+ return (
71
+ <svg
72
+ xmlns="http://www.w3.org/2000/svg"
73
+ width="16"
74
+ height="16"
75
+ viewBox="0 0 16 16"
76
+ >
77
+ <path
78
+ id="presentation_1_"
79
+ data-name="presentation (1)"
80
+ d="M15.333,9.333h-.667v-6A3.337,3.337,0,0,0,11.333,0H4.667A3.337,3.337,0,0,0,1.333,3.333v6H.667a.667.667,0,1,0,0,1.333H7.333v2.667H6a2,2,0,0,0-2,2,.667.667,0,0,0,1.333,0A.667.667,0,0,1,6,14.667h4a.667.667,0,0,1,.667.667.667.667,0,0,0,1.333,0,2,2,0,0,0-2-2H8.667V10.667h6.667a.667.667,0,0,0,0-1.333Zm-12.667-6a2,2,0,0,1,2-2h6.667a2,2,0,0,1,2,2v6H2.667Z"
81
+ fill="#fff"
82
+ />
83
+ </svg>
84
+ )
85
+ }
86
+
87
+ export const ReceiptIcon = () => {
88
+ return (
89
+ <svg
90
+ xmlns="http://www.w3.org/2000/svg"
91
+ width="12"
92
+ height="16"
93
+ viewBox="0 0 12 16"
94
+ >
95
+ <g id="receipt_2_" data-name="receipt (2)" transform="translate(-3)">
96
+ <path
97
+ id="Path_1412"
98
+ data-name="Path 1412"
99
+ d="M11.667,0H6.333A3.337,3.337,0,0,0,3,3.333v12a.667.667,0,0,0,1.043.55l1.4-.959,1.4.959a.667.667,0,0,0,.753,0L9,14.924l1.4.959a.667.667,0,0,0,.754,0l1.4-.959,1.4.958A.667.667,0,0,0,15,15.333v-12A3.337,3.337,0,0,0,11.667,0Zm2,14.067-.733-.5a.667.667,0,0,0-.755,0l-1.4.959-1.4-.959a.667.667,0,0,0-.754,0l-1.4.959-1.4-.959a.667.667,0,0,0-.753,0l-.739.5V3.333a2,2,0,0,1,2-2h5.333a2,2,0,0,1,2,2Z"
100
+ fill="#fff"
101
+ />
102
+ <rect
103
+ id="Rectangle_1393"
104
+ data-name="Rectangle 1393"
105
+ width="6.667"
106
+ height="1.333"
107
+ rx="0.667"
108
+ transform="translate(5.667 5.333)"
109
+ fill="#fff"
110
+ />
111
+ <rect
112
+ id="Rectangle_1394"
113
+ data-name="Rectangle 1394"
114
+ width="5.333"
115
+ height="1.333"
116
+ rx="0.667"
117
+ transform="translate(5.667 8)"
118
+ fill="#fff"
119
+ />
120
+ </g>
121
+ </svg>
122
+ )
123
+ }
124
+
125
+ export const SettingsIcon = () => {
126
+ return (
127
+ <svg
128
+ xmlns="http://www.w3.org/2000/svg"
129
+ width="14.396"
130
+ height="16"
131
+ viewBox="0 0 14.396 16"
132
+ >
133
+ <g
134
+ id="settings_12_"
135
+ data-name="settings (12)"
136
+ transform="translate(-1.203)"
137
+ >
138
+ <path
139
+ id="Path_1405"
140
+ data-name="Path 1405"
141
+ d="M10.667,8a2.667,2.667,0,1,0,2.667,2.667A2.667,2.667,0,0,0,10.667,8Zm0,4A1.333,1.333,0,1,1,12,10.667,1.333,1.333,0,0,1,10.667,12Z"
142
+ transform="translate(-2.266 -2.667)"
143
+ fill="#fff"
144
+ />
145
+ <path
146
+ id="Path_1406"
147
+ data-name="Path 1406"
148
+ d="M14.6,9.267,14.3,9.1a6.067,6.067,0,0,0,0-2.193l.3-.171a2,2,0,1,0-2-3.467l-.3.171a5.985,5.985,0,0,0-1.9-1.095V2a2,2,0,1,0-4,0v.342a5.985,5.985,0,0,0-1.9,1.1l-.3-.173a2,2,0,1,0-2,3.467l.3.171A6.067,6.067,0,0,0,2.5,9.1l-.3.171a2,2,0,0,0,2,3.467l.3-.171a5.985,5.985,0,0,0,1.9,1.095V14a2,2,0,0,0,4,0v-.342a5.985,5.985,0,0,0,1.9-1.1l.3.172a2,2,0,1,0,2-3.467ZM12.9,6.749a4.7,4.7,0,0,1,0,2.5.667.667,0,0,0,.309.755l.723.417a.667.667,0,1,1-.667,1.155l-.724-.419a.667.667,0,0,0-.81.11,4.656,4.656,0,0,1-2.162,1.25.667.667,0,0,0-.5.646V14a.667.667,0,1,1-1.333,0v-.835a.667.667,0,0,0-.5-.646,4.656,4.656,0,0,1-2.161-1.253.667.667,0,0,0-.81-.11l-.723.418a.667.667,0,1,1-.667-1.155L3.595,10A.667.667,0,0,0,3.9,9.247a4.7,4.7,0,0,1,0-2.5.667.667,0,0,0-.31-.753l-.723-.417a.667.667,0,1,1,.667-1.155l.724.419a.667.667,0,0,0,.809-.107,4.656,4.656,0,0,1,2.162-1.25.667.667,0,0,0,.5-.649V2A.667.667,0,1,1,9.068,2v.835a.667.667,0,0,0,.5.646A4.656,4.656,0,0,1,11.73,4.733a.667.667,0,0,0,.81.11l.723-.418A.667.667,0,1,1,13.93,5.58L13.207,6a.667.667,0,0,0-.309.753Z"
149
+ transform="translate(0 0)"
150
+ fill="#fff"
151
+ />
152
+ </g>
153
+ </svg>
154
+ )
155
+ }
156
+
157
+ export const ReportsIcon = () => {
158
+ return (
159
+ <svg
160
+ id="stats_1_"
161
+ data-name="stats (1)"
162
+ xmlns="http://www.w3.org/2000/svg"
163
+ width="16"
164
+ height="16"
165
+ viewBox="0 0 16 16"
166
+ >
167
+ <path
168
+ id="Path_1407"
169
+ data-name="Path 1407"
170
+ d="M15.333,14.667H2A.667.667,0,0,1,1.333,14V.667A.667.667,0,1,0,0,.667V14a2,2,0,0,0,2,2H15.333a.667.667,0,0,0,0-1.333Z"
171
+ fill="#fff"
172
+ />
173
+ <path
174
+ id="Path_1408"
175
+ data-name="Path 1408"
176
+ d="M14.667,17a.667.667,0,0,0,.667-.667V11.667a.667.667,0,1,0-1.333,0v4.667A.667.667,0,0,0,14.667,17Z"
177
+ transform="translate(-4.667 -3.667)"
178
+ fill="#fff"
179
+ />
180
+ <path
181
+ id="Path_1409"
182
+ data-name="Path 1409"
183
+ d="M6.667,17a.667.667,0,0,0,.667-.667V11.667a.667.667,0,1,0-1.333,0v4.667A.667.667,0,0,0,6.667,17Z"
184
+ transform="translate(-2 -3.667)"
185
+ fill="#fff"
186
+ />
187
+ <path
188
+ id="Path_1410"
189
+ data-name="Path 1410"
190
+ d="M18.667,15.333a.667.667,0,0,0,.667-.667v-8a.667.667,0,1,0-1.333,0v8A.667.667,0,0,0,18.667,15.333Z"
191
+ transform="translate(-6 -2)"
192
+ fill="#fff"
193
+ />
194
+ <path
195
+ id="Path_1411"
196
+ data-name="Path 1411"
197
+ d="M10.667,15.333a.667.667,0,0,0,.667-.667v-8a.667.667,0,1,0-1.333,0v8A.667.667,0,0,0,10.667,15.333Z"
198
+ transform="translate(-3.333 -2)"
199
+ fill="#fff"
200
+ />
201
+ </svg>
202
+ )
203
+ }
204
+
205
+ export const ExamsIcon = () => {
206
+ return (
207
+ <svg
208
+ xmlns="http://www.w3.org/2000/svg"
209
+ width="12"
210
+ height="16"
211
+ viewBox="0 0 12 16"
212
+ >
213
+ <path
214
+ id="test_5_"
215
+ data-name="test (5)"
216
+ d="M11.667,11.333a.667.667,0,0,1,0,1.333H11a.667.667,0,0,1,0-1.333ZM10.333,10a.667.667,0,0,1-.667-.667V8.667H8.333v.667A.667.667,0,0,1,7,9.333V6.667a2,2,0,1,1,4,0V9.333A.667.667,0,0,1,10.333,10ZM9.667,7.333V6.667a.667.667,0,1,0-1.333,0v.667ZM8.526,10.867,7.451,11.953a.167.167,0,0,1-.229.007l-.411-.427a.668.668,0,0,0-.956.933l.417.429a1.5,1.5,0,0,0,2.124,0l1.077-1.1a.667.667,0,0,0-.948-.933ZM15,4.438v8.229A3.337,3.337,0,0,1,11.667,16H6.333A3.337,3.337,0,0,1,3,12.667V3.333A3.337,3.337,0,0,1,6.333,0h4.229a3.313,3.313,0,0,1,2.357.977l1.1,1.1A3.313,3.313,0,0,1,15,4.438ZM11.977,1.919a2.028,2.028,0,0,0-.31-.253V3.333h1.667a2.028,2.028,0,0,0-.253-.31Zm1.69,2.747h-2a1.333,1.333,0,0,1-1.333-1.333v-2h-4a2,2,0,0,0-2,2v9.333a2,2,0,0,0,2,2h5.333a2,2,0,0,0,2-2Z"
217
+ transform="translate(-3 0)"
218
+ fill="#fff"
219
+ />
220
+ </svg>
221
+ )
222
+ }
223
+
224
+ export const ActivitiesIcon = () => {
225
+ return (
226
+ <svg
227
+ xmlns="http://www.w3.org/2000/svg"
228
+ width="16"
229
+ height="16"
230
+ viewBox="0 0 16 16"
231
+ >
232
+ <path
233
+ id="trophy_1_"
234
+ data-name="trophy (1)"
235
+ d="M10.061,10.667C14.441,10.643,16,8.323,16,6.333a2.333,2.333,0,0,0-1.843-2.279c.091-.258.169-.495.222-.674a2.591,2.591,0,0,0-.417-2.305A2.653,2.653,0,0,0,11.819,0H4.181A2.653,2.653,0,0,0,2.038,1.075,2.591,2.591,0,0,0,1.621,3.38c.053.179.133.416.222.674A2.333,2.333,0,0,0,0,6.333c0,1.989,1.559,4.309,5.939,4.333A3.373,3.373,0,0,1,6,11.281v2.053a1.255,1.255,0,0,1-1.333,1.333H4A.667.667,0,0,0,4,16h8a.667.667,0,0,0,0-1.333h-.661A1.257,1.257,0,0,1,10,13.333V11.28a3.372,3.372,0,0,1,.061-.613Zm3.606-5.333a1,1,0,0,1,1,1c0,1.356-1.073,2.8-4.024,2.98a3.231,3.231,0,0,1,.508-.547,10.088,10.088,0,0,0,2.485-3.439C13.646,5.327,13.655,5.333,13.667,5.333Zm-12.333,1a1,1,0,0,1,1-1c.011,0,.021-.006.031-.007A10.088,10.088,0,0,0,4.849,8.766a3.231,3.231,0,0,1,.508.547C2.406,9.133,1.333,7.689,1.333,6.333Zm5.675,8.333a2.72,2.72,0,0,0,.325-1.333V11.281a4.62,4.62,0,0,0-1.621-3.53A10.225,10.225,0,0,1,2.9,3a1.267,1.267,0,0,1,.207-1.129,1.329,1.329,0,0,1,1.075-.537h7.639a1.329,1.329,0,0,1,1.075.54A1.267,1.267,0,0,1,13.1,3a10.225,10.225,0,0,1-2.813,4.748A4.619,4.619,0,0,0,8.667,11.28v2.053a2.72,2.72,0,0,0,.325,1.333Z"
236
+ transform="translate(0 0)"
237
+ fill="#fff"
238
+ />
239
+ </svg>
240
+ )
241
+ }
242
+
243
+ export const AdmissionsIcon = () => {
244
+ return (
245
+ <svg
246
+ id="user-add"
247
+ xmlns="http://www.w3.org/2000/svg"
248
+ width="16"
249
+ height="16"
250
+ viewBox="0 0 16 16"
251
+ >
252
+ <path
253
+ id="Path_1381"
254
+ data-name="Path 1381"
255
+ d="M20.667,10H19.333V8.667a.667.667,0,1,0-1.333,0V10H16.667a.667.667,0,0,0,0,1.333H18v1.333a.667.667,0,1,0,1.333,0V11.333h1.333a.667.667,0,0,0,0-1.333Z"
256
+ transform="translate(-5.333 -2.667)"
257
+ fill="#fff"
258
+ />
259
+ <path
260
+ id="Path_1382"
261
+ data-name="Path 1382"
262
+ d="M7,8A4,4,0,1,0,3,4,4,4,0,0,0,7,8ZM7,1.333A2.667,2.667,0,1,1,4.333,4,2.667,2.667,0,0,1,7,1.333Z"
263
+ transform="translate(-1 0)"
264
+ fill="#fff"
265
+ />
266
+ <path
267
+ id="Path_1383"
268
+ data-name="Path 1383"
269
+ d="M6,14a6.007,6.007,0,0,0-6,6,.667.667,0,1,0,1.333,0,4.667,4.667,0,1,1,9.333,0A.667.667,0,0,0,12,20,6.007,6.007,0,0,0,6,14Z"
270
+ transform="translate(0 -4.667)"
271
+ fill="#fff"
272
+ />
273
+ </svg>
274
+ )
275
+ }
276
+
277
+ export const NotificationIcon = () => {
278
+ return (
279
+ <svg
280
+ xmlns="http://www.w3.org/2000/svg"
281
+ width="15.974"
282
+ height="16"
283
+ viewBox="0 0 15.974 16"
284
+ >
285
+ <path
286
+ id="bell-ring"
287
+ d="M13.907,10.22l-2.515,4.1a3.49,3.49,0,0,1-2.58,1.651A3.543,3.543,0,0,1,8.394,16a3.475,3.475,0,0,1-2-.637,3.161,3.161,0,0,1-4.459-4.377l-.877-.875a3.509,3.509,0,0,1,.637-5.467L5.539,2.266a5.906,5.906,0,0,1,6.885.367L13.53,1.528a.667.667,0,1,1,.943.943l-1.1,1.105a5.967,5.967,0,0,1,.539,6.645ZM5.378,14.431,2.9,11.951a1.814,1.814,0,0,0,.309,2.176A1.885,1.885,0,0,0,5.378,14.431Zm6.614-10.4A4.591,4.591,0,0,0,6.247,3.4L2.4,5.777A2.177,2.177,0,0,0,2,9.168l4.86,4.861a2.177,2.177,0,0,0,3.4-.4l2.5-4.083a4.625,4.625,0,0,0-.768-5.517ZM12.845,16a.667.667,0,0,1-.394-1.205,5.755,5.755,0,0,0,2.21-3.6.667.667,0,1,1,1.3.287,7.133,7.133,0,0,1-2.725,4.4.667.667,0,0,1-.393.128ZM.668,3.826A.667.667,0,0,1,.135,2.763,7.128,7.128,0,0,1,4.61.013.667.667,0,0,1,4.877,1.32,5.757,5.757,0,0,0,1.2,3.556a.667.667,0,0,1-.533.27Z"
288
+ transform="translate(-0.004 0)"
289
+ fill="#fff"
290
+ />
291
+ </svg>
292
+ )
293
+ }
294
+
295
+ export const LibraryIcon = () => {
296
+ return (
297
+ <svg
298
+ xmlns="http://www.w3.org/2000/svg"
299
+ width="16.207"
300
+ height="16.294"
301
+ viewBox="0 0 16.207 16.294"
302
+ >
303
+ <path
304
+ id="books"
305
+ d="M15.851,12.979,11.137,1.213A2,2,0,0,0,8.531.117L7.915.369a2.015,2.015,0,0,0-.453.268A1.986,1.986,0,0,0,6-.011H2a2,2,0,0,0-2,2V13.984a2,2,0,0,0,2,2H6a2,2,0,0,0,2-2V5.917l3.534,8.824a2.005,2.005,0,0,0,2.6,1.094l.617-.252a2.008,2.008,0,0,0,1.1-2.6ZM9.045,4.952,10.9,4.2l2.779,6.938-1.851.754ZM8.418,1.6l.616-.252a.667.667,0,0,1,.868.362l.5,1.247-1.851.754-.5-1.243A.667.667,0,0,1,8.419,1.6ZM1.333,4.654h2v6.664h-2Zm3.332,0h2v6.664h-2Zm2-2.666V3.322h-2v-2H6A.667.667,0,0,1,6.664,1.989ZM2,1.323H3.332v2h-2V1.989A.667.667,0,0,1,2,1.323ZM1.333,13.984V12.651h2v2H2A.667.667,0,0,1,1.333,13.984ZM6,14.65H4.665v-2h2v1.333A.667.667,0,0,1,6,14.65Zm8.616-.66a.663.663,0,0,1-.363.359h0l-.617.252a.667.667,0,0,1-.866-.36l-.446-1.114,1.851-.754.443,1.107a.658.658,0,0,1,0,.51Z"
306
+ transform="translate(0.1 0.204)"
307
+ fill="#fff"
308
+ stroke="#121212"
309
+ strokeWidth="0.2"
310
+ />
311
+ </svg>
312
+ )
313
+ }
314
+
315
+ export const PlacementIcon = () => {
316
+ return (
317
+ <svg
318
+ xmlns="http://www.w3.org/2000/svg"
319
+ width="16"
320
+ height="16"
321
+ viewBox="0 0 16 16"
322
+ >
323
+ <path
324
+ id="briefcase"
325
+ d="M12.667,2.667h-.733A3.339,3.339,0,0,0,8.667,0H7.333A3.339,3.339,0,0,0,4.067,2.667H3.333A3.337,3.337,0,0,0,0,6v6.667A3.337,3.337,0,0,0,3.333,16h9.333A3.337,3.337,0,0,0,16,12.667V6a3.337,3.337,0,0,0-3.333-3.333ZM7.333,1.333H8.667a2,2,0,0,1,1.877,1.333H5.456A2,2,0,0,1,7.333,1.333ZM3.333,4h9.333a2,2,0,0,1,2,2V8H1.333V6a2,2,0,0,1,2-2Zm9.333,10.667H3.333a2,2,0,0,1-2-2V9.333h6V10a.667.667,0,0,0,1.333,0V9.333h6v3.333A2,2,0,0,1,12.667,14.667Z"
326
+ fill="#fff"
327
+ />
328
+ </svg>
329
+ )
330
+ }
331
+
332
+ export const StudentsIcon = () => {
333
+ return (
334
+ <svg
335
+ xmlns="http://www.w3.org/2000/svg"
336
+ width="16"
337
+ height="16"
338
+ viewBox="0 0 16 16"
339
+ >
340
+ <path
341
+ id="users_3_"
342
+ data-name="users (3)"
343
+ d="M5,8.667a3,3,0,1,1,3-3,3,3,0,0,1-3,3ZM5,4A1.667,1.667,0,1,0,6.667,5.667,1.667,1.667,0,0,0,5,4Zm5,11.333V15A5,5,0,0,0,0,15v.333a.667.667,0,0,0,1.333,0V15a3.667,3.667,0,0,1,7.333,0v.333a.667.667,0,0,0,1.333,0ZM16,12A4.667,4.667,0,0,0,8.222,8.522a.667.667,0,1,0,.889.993A3.333,3.333,0,0,1,14.667,12,.667.667,0,0,0,16,12ZM11.667,6a3,3,0,1,1,3-3,3,3,0,0,1-3,3Zm0-4.667A1.667,1.667,0,1,0,13.333,3,1.667,1.667,0,0,0,11.667,1.333Z"
344
+ fill="#fff"
345
+ />
346
+ </svg>
347
+ )
348
+ }
349
+
350
+ export const HostelsIcon = () => {
351
+ return (
352
+ <svg
353
+ xmlns="http://www.w3.org/2000/svg"
354
+ width="16"
355
+ height="16"
356
+ viewBox="0 0 16 16"
357
+ >
358
+ <path
359
+ id="building"
360
+ d="M4.667,9.333A.667.667,0,0,1,4,10H3.333a.667.667,0,1,1,0-1.333H4A.667.667,0,0,1,4.667,9.333Zm2.667-.667H6.667a.667.667,0,1,0,0,1.333h.667a.667.667,0,1,0,0-1.333ZM4,11.333H3.333a.667.667,0,1,0,0,1.333H4a.667.667,0,1,0,0-1.333Zm3.333,0H6.667a.667.667,0,1,0,0,1.333h.667a.667.667,0,1,0,0-1.333ZM4,3.333H3.333a.667.667,0,1,0,0,1.333H4A.667.667,0,1,0,4,3.333Zm3.333,0H6.667a.667.667,0,1,0,0,1.333h.667a.667.667,0,0,0,0-1.333ZM4,6H3.333a.667.667,0,1,0,0,1.333H4A.667.667,0,1,0,4,6ZM7.333,6H6.667a.667.667,0,1,0,0,1.333h.667A.667.667,0,0,0,7.333,6ZM16,6.667v6A3.337,3.337,0,0,1,12.667,16H3.333A3.337,3.337,0,0,1,0,12.667V3.333A3.337,3.337,0,0,1,3.333,0h4a3.337,3.337,0,0,1,3.333,3.333h2A3.337,3.337,0,0,1,16,6.667Zm-12.667,8h6V3.333a2,2,0,0,0-2-2h-4a2,2,0,0,0-2,2v9.333a2,2,0,0,0,2,2Zm11.333-8a2,2,0,0,0-2-2h-2v10h2a2,2,0,0,0,2-2Zm-2,2a.667.667,0,1,0,.667.667A.667.667,0,0,0,12.667,8.667Zm0,2.667a.667.667,0,1,0,.667.667A.667.667,0,0,0,12.667,11.333Zm0-5.333a.667.667,0,1,0,.667.667A.667.667,0,0,0,12.667,6Z"
361
+ fill="#fff"
362
+ />
363
+ </svg>
364
+ )
365
+ }
366
+
367
+ export const TaskListIcon = () => {
368
+ return (
369
+ <svg
370
+ xmlns="http://www.w3.org/2000/svg"
371
+ width="16.452"
372
+ height="15.229"
373
+ viewBox="0 0 16.452 15.229"
374
+ >
375
+ <path
376
+ id="list-check"
377
+ d="M2.666,4.007a1.988,1.988,0,0,1-1.415-.586L.222,2.506a.667.667,0,0,1,.888-1l1.057.943a.667.667,0,0,0,.971.027L5.54.192a.667.667,0,0,1,.919.965L4.066,3.433A1.976,1.976,0,0,1,2.666,4.007ZM16,2.674a.667.667,0,0,0-.667-.667H8.666a.667.667,0,0,0,0,1.333h6.666A.667.667,0,0,0,16,2.674ZM4.066,8.766,6.459,6.49a.667.667,0,1,0-.919-.965L3.14,7.812a.682.682,0,0,1-.943,0L1.138,6.755A.667.667,0,1,0,.195,7.7L1.252,8.755a2,2,0,0,0,2.817.011ZM16,8.007a.667.667,0,0,0-.667-.667H8.666a.667.667,0,0,0,0,1.333h6.666A.667.667,0,0,0,16,8.007ZM4.066,14.1l2.39-2.276a.667.667,0,1,0-.919-.965l-2.4,2.287a.667.667,0,0,1-.971-.027L1.11,12.176a.667.667,0,1,0-.888,1l1.029.916a2,2,0,0,0,2.817.011ZM16,13.341a.667.667,0,0,0-.667-.667H8.666a.667.667,0,1,0,0,1.333h6.666A.667.667,0,0,0,16,13.341Z"
378
+ transform="translate(0.253 0.225)"
379
+ fill="#fff"
380
+ stroke="#fff"
381
+ stroke-width="0.4"
382
+ />
383
+ </svg>
384
+ )
385
+ }
386
+
387
+ export const HrmsIcon = () => {
388
+ return (
389
+ <svg
390
+ id="user-add"
391
+ xmlns="http://www.w3.org/2000/svg"
392
+ width="16"
393
+ height="16"
394
+ viewBox="0 0 16 16"
395
+ >
396
+ <path
397
+ id="users-alt"
398
+ d="M8,10.667A2.667,2.667,0,1,1,10.667,8,2.667,2.667,0,0,1,8,10.667Zm0-4A1.333,1.333,0,1,0,9.333,8,1.333,1.333,0,0,0,8,6.667Zm4,8.667a4,4,0,1,0-8,0,.667.667,0,1,0,1.333,0,2.667,2.667,0,1,1,5.333,0,.667.667,0,0,0,1.333,0Zm0-10a2.667,2.667,0,1,1,2.667-2.667A2.667,2.667,0,0,1,12,5.333Zm0-4a1.333,1.333,0,1,0,1.333,1.333A1.333,1.333,0,0,0,12,1.333ZM16,10a4,4,0,0,0-4-4,.667.667,0,1,0,0,1.333A2.667,2.667,0,0,1,14.667,10,.667.667,0,0,0,16,10ZM4,5.333A2.667,2.667,0,1,1,6.667,2.667,2.667,2.667,0,0,1,4,5.333Zm0-4A1.333,1.333,0,1,0,5.333,2.667,1.333,1.333,0,0,0,4,1.333ZM1.333,10A2.667,2.667,0,0,1,4,7.333.667.667,0,0,0,4,6a4,4,0,0,0-4,4,.667.667,0,0,0,1.333,0Z"
399
+ fill="#fff"
400
+ />
401
+ </svg>
402
+ )
403
+ }
@@ -0,0 +1,74 @@
1
+ import styled from 'styled-components'
2
+ import { styled as muiStyled } from '@mui/material'
3
+
4
+ export const headerHeight = '64px'
5
+ export const sideNavWidth = '220px'
6
+
7
+ export const StyledLayoutContainer = styled.div`
8
+ & > div {
9
+ }
10
+ `
11
+
12
+ export const StyledHeaderContainer = styled.header`
13
+ z-index: 300;
14
+ width: 100%;
15
+ position: fixed;
16
+ top: 0;
17
+ left: 0;
18
+ min-height: ${headerHeight};
19
+ background: #fff;
20
+ box-shadow: 0px 0px 3px #0000001a;
21
+ & > div {
22
+ height: ${headerHeight};
23
+ }
24
+ `
25
+
26
+ export const StyledLeftNavContainer = muiStyled('aside')(({ theme }) => ({
27
+ width: sideNavWidth,
28
+ background: theme.palette.secondary.main,
29
+ color: 'white',
30
+ position: 'fixed',
31
+ top: headerHeight,
32
+ left: 0,
33
+ height: `calc(100vh - ${headerHeight})`,
34
+ overflowY: 'auto',
35
+
36
+ '&::-webkit-scrollbar': {
37
+ width: '0.5em',
38
+ height: '0.5em',
39
+ },
40
+
41
+ '&::-webkit-scrollbar-thumb': {
42
+ backgroundColor: 'rgba(255, 255, 255, 0.3)',
43
+ borderRadius: '3px',
44
+
45
+ '&:hover': {
46
+ background: 'rgba(255, 255, 255, 0.4)',
47
+ },
48
+ },
49
+
50
+ zIndex: 100,
51
+ }))
52
+
53
+ export const StyledMainContentContainer = muiStyled('main')(() => ({
54
+ width: `calc(100% - ${sideNavWidth})`,
55
+ height: `calc(100vh - ${headerHeight})`,
56
+ position: 'fixed',
57
+ top: headerHeight,
58
+ left: sideNavWidth,
59
+ overflowY: 'auto',
60
+
61
+ '&::-webkit-scrollbar': {
62
+ width: '0.6em',
63
+ height: '0.6em',
64
+ },
65
+
66
+ '&::-webkit-scrollbar-thumb': {
67
+ backgroundColor: 'rgba(0,0,0, 0.3)',
68
+ borderRadius: '3px',
69
+
70
+ '&:hover': {
71
+ background: 'rgba(0,0,0, 0.4)',
72
+ },
73
+ },
74
+ }))
@@ -0,0 +1,3 @@
1
+ export default function ComponentsLayout() {
2
+ return <div>ComponentsLayout</div>
3
+ }
@@ -0,0 +1,18 @@
1
+ import PermissionDeniedPage from './PermissionDeniedPage'
2
+ import { PermissionsStore } from '../shared-state/PermissionsStore'
3
+
4
+ const accessIfNoKey = process.env.NODE_ENV === 'development' ? true : false
5
+
6
+ export default function PageWithPermission({
7
+ permissionKey,
8
+ children,
9
+ }: {
10
+ permissionKey: string
11
+ children?: any
12
+ }) {
13
+ const permissions = PermissionsStore.useState((s) => s).permissions
14
+ const hasAccess = permissionKey ? permissions[permissionKey] : accessIfNoKey
15
+
16
+ if (hasAccess) return children
17
+ return <PermissionDeniedPage />
18
+ }
@@ -0,0 +1,16 @@
1
+ import { Box, Typography } from '@mui/material'
2
+
3
+ export default function PermissionDeniedPage() {
4
+ return (
5
+ <Box
6
+ sx={{
7
+ height: '100vh',
8
+ width: '100%',
9
+ display: 'grid',
10
+ placeItems: 'center',
11
+ }}
12
+ >
13
+ <Typography variant="h6">Permission Denied</Typography>
14
+ </Box>
15
+ )
16
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import { Permission, PermissionsStore } from '../shared-state/PermissionsStore'
3
+
4
+ export default function ValidateAccess({
5
+ accessKey,
6
+ children,
7
+ }: {
8
+ accessKey: Permission
9
+ children: React.ReactNode
10
+ }) {
11
+ const permissions = PermissionsStore.useState((s) => s).permissions
12
+ const hasAccess = accessKey ? permissions[accessKey] : true
13
+
14
+ if (hasAccess) {
15
+ return <>{children}</>
16
+ }
17
+ return null
18
+ }
@@ -0,0 +1,2 @@
1
+ export { default as ValidateAccess } from './ValidateAccess'
2
+ export { default as PageWithPermission } from './PageWithPermission'
@@ -0,0 +1 @@
1
+ /// <reference types="react-scripts" />
@@ -0,0 +1,15 @@
1
+ import { Store } from 'pullstate'
2
+
3
+ export interface IAssetsStore {
4
+ logo: string
5
+ logo_square: string
6
+ school_name: string
7
+ address: string | any
8
+ }
9
+
10
+ export const AssetsStore = new Store({
11
+ logo: null,
12
+ logo_square: null,
13
+ school_name: null,
14
+ address: '',
15
+ })