@campxdev/shared 1.4.18 → 1.4.19

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 (214) hide show
  1. package/antd.customize.less +73 -73
  2. package/exports.ts +18 -18
  3. package/package.json +84 -84
  4. package/src/assets/fonts/avenir/index.ts +2 -2
  5. package/src/assets/fonts/poppins/index.ts +7 -7
  6. package/src/assets/images/index.ts +17 -17
  7. package/src/assets/images/unauth.svg +92 -92
  8. package/src/components/ActionButton.tsx +20 -20
  9. package/src/components/Attachment.tsx +26 -26
  10. package/src/components/AutocompleteSearch/AutocompleteSearch.tsx +57 -57
  11. package/src/components/AutocompleteSearch/index.tsx +1 -1
  12. package/src/components/Breadcrumbs.tsx +72 -72
  13. package/src/components/Card.tsx +98 -98
  14. package/src/components/CardsGrid.tsx +28 -28
  15. package/src/components/ChangePassword.tsx +123 -123
  16. package/src/components/Chips.tsx +81 -81
  17. package/src/components/Detail.tsx +15 -15
  18. package/src/components/DetailsGrid.tsx +52 -52
  19. package/src/components/DividerHeading.tsx +41 -41
  20. package/src/components/DrawerWrapper/DialogWrapper.tsx +67 -67
  21. package/src/components/DrawerWrapper/DrawerTemplate.tsx +53 -53
  22. package/src/components/DrawerWrapper/DrawerWrapper.tsx +53 -53
  23. package/src/components/DropDownButton/DropDownButton.tsx +177 -177
  24. package/src/components/DropDownButton/index.tsx +1 -1
  25. package/src/components/DropDownButton/styles.tsx +56 -56
  26. package/src/components/ErrorBoundary/ErrorBoundary.tsx +28 -28
  27. package/src/components/ErrorBoundary/ErrorFallback.tsx +236 -236
  28. package/src/components/ErrorBoundary/GlobalNetworkLoadingIndicator.tsx +13 -13
  29. package/src/components/ErrorBoundary/index.tsx +1 -1
  30. package/src/components/ErrorBox.tsx +42 -42
  31. package/src/components/FilterComponents/FilterButton.tsx +40 -39
  32. package/src/components/FilterComponents/SearchBar.tsx +40 -40
  33. package/src/components/FloatingContainer.tsx +33 -33
  34. package/src/components/Form/Form.tsx +156 -156
  35. package/src/components/Form/RenderForm.tsx +188 -188
  36. package/src/components/FullCalendar/Actions.tsx +162 -162
  37. package/src/components/FullCalendar/FullCalendarWrapper.tsx +54 -54
  38. package/src/components/FullScreenLoader.tsx +19 -19
  39. package/src/components/HookForm/AutoCompleteSearch.tsx +113 -113
  40. package/src/components/HookForm/DatePicker.tsx +40 -40
  41. package/src/components/HookForm/DateTimePicker.tsx +47 -47
  42. package/src/components/HookForm/FormLabel.tsx +14 -14
  43. package/src/components/HookForm/MultiCheckbox.tsx +69 -69
  44. package/src/components/HookForm/MultiSelect.tsx +53 -53
  45. package/src/components/HookForm/RadioGroup.tsx +45 -45
  46. package/src/components/HookForm/SingleCheckbox.tsx +34 -34
  47. package/src/components/HookForm/SingleSelect.tsx +46 -46
  48. package/src/components/HookForm/TextField.tsx +40 -40
  49. package/src/components/HookForm/TimePicker.tsx +40 -40
  50. package/src/components/HookForm/index.ts +23 -23
  51. package/src/components/IconButtons/IconButtons.tsx +137 -137
  52. package/src/components/IconButtons/Icons.tsx +268 -268
  53. package/src/components/IconButtons/assets/edit.svg +4 -4
  54. package/src/components/IconButtons/assets/eye.svg +6 -6
  55. package/src/components/IconButtons/assets/trash.svg +7 -7
  56. package/src/components/IconButtons/index.tsx +8 -8
  57. package/src/components/IconLabel.tsx +37 -37
  58. package/src/components/Image/Image.tsx +45 -45
  59. package/src/components/Image/index.tsx +1 -1
  60. package/src/components/ImageUpload.tsx +98 -98
  61. package/src/components/Input/AsyncSearchSelect/AsyncSearchSelect.tsx +216 -216
  62. package/src/components/Input/AsyncSearchSelect/index.tsx +1 -1
  63. package/src/components/Input/AsyncSearchSelect/styles.tsx +105 -105
  64. package/src/components/Input/AutoCompleteSearch.tsx +121 -121
  65. package/src/components/Input/DatePicker.tsx +69 -69
  66. package/src/components/Input/DateRangePicker.tsx +105 -84
  67. package/src/components/Input/DateTimePicker.tsx +77 -77
  68. package/src/components/Input/FormLabel.tsx +21 -21
  69. package/src/components/Input/MultiCheckbox.tsx +64 -64
  70. package/src/components/Input/MultiSelect.tsx +150 -150
  71. package/src/components/Input/RadioGroup.tsx +104 -104
  72. package/src/components/Input/SingleCheckbox.tsx +78 -78
  73. package/src/components/Input/SingleSelect.tsx +104 -104
  74. package/src/components/Input/TextField.tsx +46 -46
  75. package/src/components/Input/TimePicker.tsx +70 -70
  76. package/src/components/Input/index.ts +26 -26
  77. package/src/components/Input/types.ts +3 -3
  78. package/src/components/JsonPreview.tsx +7 -7
  79. package/src/components/LabelValue.tsx +21 -21
  80. package/src/components/Layout/ChangePassword.tsx +49 -49
  81. package/src/components/Layout/Header/AppHeader.tsx +102 -102
  82. package/src/components/Layout/Header/AppsMenu.tsx +98 -98
  83. package/src/components/Layout/Header/CogWheelMenu.tsx +33 -33
  84. package/src/components/Layout/Header/Notification.tsx +13 -13
  85. package/src/components/Layout/Header/UserBox.tsx +81 -81
  86. package/src/components/Layout/Header/applications.ts +91 -91
  87. package/src/components/Layout/Header/assets/campx_square_small.svg +9 -9
  88. package/src/components/Layout/Header/assets/commuteX.png +0 -0
  89. package/src/components/Layout/Header/assets/commutex.svg +14 -14
  90. package/src/components/Layout/Header/assets/commutexSmall.svg +11 -11
  91. package/src/components/Layout/Header/assets/enroll.svg +14 -14
  92. package/src/components/Layout/Header/assets/enrollx.svg +14 -14
  93. package/src/components/Layout/Header/assets/exams_small.svg +12 -12
  94. package/src/components/Layout/Header/assets/examsx.svg +14 -14
  95. package/src/components/Layout/Header/assets/hostel_small.svg +13 -13
  96. package/src/components/Layout/Header/assets/hostelx.svg +13 -13
  97. package/src/components/Layout/Header/assets/index.ts +33 -33
  98. package/src/components/Layout/Header/assets/libraryx.svg +12 -12
  99. package/src/components/Layout/Header/assets/pay_small.svg +16 -16
  100. package/src/components/Layout/Header/assets/payx.svg +19 -19
  101. package/src/components/Layout/Header/assets/people_small.svg +9 -9
  102. package/src/components/Layout/Header/assets/peoplex.svg +12 -12
  103. package/src/components/Layout/Header/assets/squarex.svg +12 -12
  104. package/src/components/Layout/Header/icons.tsx +57 -57
  105. package/src/components/Layout/Header/index.tsx +1 -1
  106. package/src/components/Layout/Header/styles.tsx +124 -124
  107. package/src/components/Layout/LayoutWrapper.tsx +28 -28
  108. package/src/components/Layout/SideMenuHeader.tsx +29 -29
  109. package/src/components/Layout/SideNav.tsx +168 -168
  110. package/src/components/Layout/Tickets/HelpWidget/HelpWidget.tsx +273 -273
  111. package/src/components/Layout/Tickets/HelpWidget/styles.tsx +94 -94
  112. package/src/components/Layout/Tickets/MyTickets.tsx +72 -72
  113. package/src/components/Layout/Tickets/TicketDetails.tsx +65 -65
  114. package/src/components/Layout/Tickets/TimeLine.tsx +64 -64
  115. package/src/components/Layout/Tickets/index.tsx +1 -1
  116. package/src/components/Layout/Tickets/services.ts +11 -11
  117. package/src/components/Layout/Tickets/styles.tsx +136 -136
  118. package/src/components/LinearProgress.tsx +19 -19
  119. package/src/components/ListItemButton.tsx +95 -95
  120. package/src/components/LoginForm.tsx +80 -80
  121. package/src/components/MediaRow/MediaRow.tsx +69 -69
  122. package/src/components/MediaRow/index.tsx +1 -1
  123. package/src/components/ModalButtons/DialogButton.tsx +93 -93
  124. package/src/components/ModalButtons/DrawerButton.tsx +84 -84
  125. package/src/components/ModalButtons/index.tsx +4 -4
  126. package/src/components/NoDataIllustration.tsx +32 -32
  127. package/src/components/PageContent.tsx +12 -12
  128. package/src/components/PageHeader.tsx +55 -55
  129. package/src/components/PageNotFound.tsx +26 -26
  130. package/src/components/PopupConfirm/ConfirmContextProvider.tsx +40 -40
  131. package/src/components/PopupConfirm/PopupConfirm.tsx +34 -34
  132. package/src/components/PopupConfirm/index.tsx +1 -1
  133. package/src/components/PopupConfirm/useConfirm.ts +47 -47
  134. package/src/components/Row.tsx +24 -24
  135. package/src/components/Spinner.tsx +18 -18
  136. package/src/components/StepsHeader/StepsHeader.tsx +115 -115
  137. package/src/components/StepsHeader/index.tsx +1 -1
  138. package/src/components/StyledTableContainer.tsx +33 -33
  139. package/src/components/SwitchButton.tsx +41 -41
  140. package/src/components/Table.tsx +42 -42
  141. package/src/components/TableComponent/BatchActionsHeader.tsx +58 -58
  142. package/src/components/TableComponent/Icons/index.tsx +50 -50
  143. package/src/components/TableComponent/ReactTable.tsx +295 -295
  144. package/src/components/TableComponent/RenderTableBody.tsx +68 -68
  145. package/src/components/TableComponent/Table.tsx +197 -197
  146. package/src/components/TableComponent/TableFooter/TableFooter.tsx +104 -104
  147. package/src/components/TableComponent/TableFooter/index.tsx +1 -1
  148. package/src/components/TableComponent/TableFooter/styles.tsx +28 -28
  149. package/src/components/TableComponent/index.tsx +1 -1
  150. package/src/components/TableComponent/react-table-config.d.ts +128 -128
  151. package/src/components/TableComponent/styles.tsx +170 -170
  152. package/src/components/TableComponent/types.ts +57 -57
  153. package/src/components/Tabs/Tabs.tsx +52 -52
  154. package/src/components/Tabs/TabsContainer.tsx +50 -50
  155. package/src/components/Tabs/index.tsx +1 -1
  156. package/src/components/Tabs/styles.tsx +55 -55
  157. package/src/components/ToastContainer/ToastContainer.tsx +42 -42
  158. package/src/components/ToastContainer/index.tsx +1 -1
  159. package/src/components/UploadButton/UploadButton.tsx +126 -126
  160. package/src/components/UploadButton/index.tsx +1 -1
  161. package/src/components/UploadButton/types.ts +19 -19
  162. package/src/components/UploadDocument.tsx +108 -108
  163. package/src/components/UploadFileDialog/UploadFileDialog.tsx +238 -238
  164. package/src/components/UploadFileDialog/index.tsx +1 -1
  165. package/src/components/index.ts +89 -89
  166. package/src/config/axios.ts +73 -73
  167. package/src/config/axiosEvaluator.ts +53 -53
  168. package/src/config/axiosXTenant.ts +57 -57
  169. package/src/constants/UIConstants.ts +97 -97
  170. package/src/constants/formValidations.ts +6 -6
  171. package/src/constants/index.ts +5 -5
  172. package/src/constants/isDevelopment.ts +3 -3
  173. package/src/constants/permissions.ts +67 -67
  174. package/src/constants/validateMessages.ts +12 -12
  175. package/src/contexts/LoginFormProvider.tsx +39 -39
  176. package/src/contexts/Providers.tsx +73 -73
  177. package/src/contexts/PublicProviders.tsx +30 -30
  178. package/src/contexts/QueryClientProvider.tsx +22 -22
  179. package/src/hooks/index.ts +3 -3
  180. package/src/hooks/useAuth.ts +96 -96
  181. package/src/hooks/useFetch.ts +53 -53
  182. package/src/hooks/useRouter.ts +31 -31
  183. package/src/layouts/Components/DashBoardMenu.tsx +232 -232
  184. package/src/layouts/Components/icons/index.tsx +403 -403
  185. package/src/layouts/Components/styles.tsx +74 -74
  186. package/src/layouts/ComponentsLayout.tsx +3 -3
  187. package/src/permissions/PageWithPermission.tsx +18 -18
  188. package/src/permissions/PermissionDeniedPage.tsx +16 -16
  189. package/src/permissions/ValidateAccess.tsx +18 -18
  190. package/src/permissions/index.ts +2 -2
  191. package/src/react-app-env.d.ts +1 -1
  192. package/src/shared-state/AssetsStore.ts +15 -15
  193. package/src/shared-state/PermissionsStore.ts +352 -352
  194. package/src/shared-state/UserStore.ts +13 -13
  195. package/src/shared-state/index.ts +4 -4
  196. package/src/theme/App.less +3 -3
  197. package/src/theme/MuiThemeProvider.tsx +13 -13
  198. package/src/theme/customCssBaseline.ts +78 -78
  199. package/src/theme/index.css +75 -75
  200. package/src/theme/muiTheme.ts +560 -560
  201. package/src/theme/theme.d.ts +75 -75
  202. package/src/utils/alphabet.ts +23 -23
  203. package/src/utils/arrayPadEnd.ts +3 -3
  204. package/src/utils/formatCurrency.ts +9 -9
  205. package/src/utils/getUrlParams.ts +5 -5
  206. package/src/utils/index.ts +7 -7
  207. package/src/utils/logout.ts +24 -24
  208. package/src/utils/ordinalSuffixOf.ts +14 -14
  209. package/src/utils/romanize.ts +40 -40
  210. package/src/utils/withRouteWrapper.tsx +25 -25
  211. package/src/utils/withSuspense.tsx +6 -6
  212. package/styled-components.tsx +60 -60
  213. package/tsconfig.json +21 -21
  214. package/yarn-error.log +0 -109
@@ -1,560 +1,560 @@
1
- import { alpha, darken, lighten } from '@mui/material'
2
- import { createTheme } from '@mui/material/styles'
3
- import { customCssBaseline } from './customCssBaseline'
4
-
5
- const borderRadius = {
6
- small: '5px',
7
- large: '10px',
8
- }
9
-
10
- const PRIMARY_FONT = 'Avenir'
11
- const SECONDARY_FONT = 'Poppins'
12
-
13
- const themeColors = {
14
- primary: '#1E19F5',
15
- secondary: '#121212',
16
- secondaryLight: '#1212121A',
17
- success: '#57CA22',
18
- warning: '#FFA319',
19
- error: '#BC2C3D',
20
- info: '#33C2FF',
21
- black: '#223354',
22
- white: '#ffffff',
23
- primaryAlt: '#000C57',
24
- yellow: '#FFAF20',
25
- green: '#99C15B',
26
- grayLight: '#F2F2F2',
27
- pureBlack: '#000000',
28
- pureWhite: '#ffffff',
29
- secondaryDark: '#EFEFEF',
30
- offsetBlue: '#149ECD',
31
- }
32
-
33
- const colors = {
34
- primary: {
35
- main: themeColors.primary,
36
- light: alpha(themeColors.primary, 0.5),
37
- lighter: alpha(themeColors.primary, 0.1),
38
- },
39
- secondary: {
40
- main: themeColors.secondary,
41
- light: themeColors.grayLight,
42
- lighter: themeColors.secondaryLight,
43
- dark: themeColors.secondaryDark,
44
- },
45
- common: {
46
- green: themeColors.green,
47
- yellow: themeColors.yellow,
48
- black: themeColors.pureBlack,
49
- white: themeColors.pureWhite,
50
- blue: themeColors.offsetBlue,
51
- },
52
- error: {
53
- lighter: alpha(themeColors.error, 0.1),
54
- light: lighten(themeColors.error, 0.3),
55
- main: themeColors.error,
56
- dark: darken(themeColors.error, 0.2),
57
- },
58
- }
59
-
60
- const borders = {
61
- primary: `1px solid ${themeColors.primary}`,
62
- grayLight: `1px solid ${themeColors.secondaryLight}`,
63
- }
64
-
65
- // A custom theme for this app
66
- const muiTheme = createTheme({
67
- typography: {
68
- fontFamily: ['Poppins', 'Avenir', 'sans-serif'].join(','),
69
- },
70
- borders: {
71
- ...borders,
72
- },
73
- palette: {
74
- primary: {
75
- dark: '#1E19F5',
76
- main: colors.primary.main,
77
- light: colors.primary.light,
78
- lighter: colors.primary.lighter,
79
- },
80
- secondary: {
81
- main: '#121212',
82
- light: colors.secondary.light,
83
- dark: themeColors.secondaryDark,
84
- lighter: themeColors.secondaryLight,
85
- },
86
- common: {
87
- green: themeColors.green,
88
- yellow: themeColors.yellow,
89
- blue: themeColors.offsetBlue,
90
- },
91
- error: {
92
- main: '#BC2C3D',
93
- },
94
- text: {
95
- primary: '#121212',
96
- secondary: '#959595',
97
- disabled: '#12121280',
98
- },
99
- },
100
- components: {
101
- MuiTypography: {
102
- styleOverrides: {
103
- root: {
104
- color: '#121212',
105
- fontSize: '14px',
106
- fontWeight: 600,
107
- fontFamily: PRIMARY_FONT,
108
- },
109
- h1: {
110
- fontSize: '18px',
111
- fontWeight: 600,
112
- fontFamily: SECONDARY_FONT,
113
- },
114
- h3: {
115
- fontSize: '16px',
116
- fontWeight: 600,
117
- fontFamily: SECONDARY_FONT,
118
- },
119
- h5: {
120
- fontSize: '14px',
121
- fontWeight: 500,
122
- fontFamily: SECONDARY_FONT,
123
- },
124
- h6: {
125
- fontSize: '15px',
126
- fontWeight: 600,
127
- fontFamily: SECONDARY_FONT,
128
- },
129
- paragraph: {
130
- fontSize: '16px',
131
- marginBottom: 0,
132
- },
133
- body2: {
134
- fontWeight: 600,
135
- },
136
- subtitle1: {
137
- fontSize: '12px',
138
- fontWeight: 400,
139
- color: '#959595',
140
- },
141
- subtitle2: {
142
- fontSize: '13px',
143
- fontWeight: 400,
144
- color: '#959595',
145
- },
146
- },
147
- },
148
- MuiButton: {
149
- defaultProps: {
150
- variant: 'contained',
151
- disableRipple: true,
152
- disableElevation: true,
153
- disableFocusRipple: true,
154
- disableTouchRipple: true,
155
- },
156
- styleOverrides: {
157
- root: {
158
- fontFamily: SECONDARY_FONT,
159
- height: '40px',
160
- fontSize: '14px',
161
- padding: '10px 40px',
162
- textTransform: 'capitalize',
163
- fontWeight: 600,
164
- borderRadius: borderRadius.small,
165
- '&.MuiButton-sizeSmall': {
166
- padding: '6px 8px',
167
- height: '40px',
168
- fontSize: '14px',
169
- },
170
- },
171
- },
172
- },
173
- MuiButtonBase: {
174
- defaultProps: {
175
- disableRipple: true,
176
- disableTouchRipple: true,
177
- },
178
- styleOverrides: {
179
- root: {
180
- fontFamily: SECONDARY_FONT,
181
- fontSize: '14px',
182
- fontWeight: 600,
183
- },
184
- },
185
- },
186
- MuiInputBase: {
187
- styleOverrides: {
188
- root: {
189
- fontFamily: PRIMARY_FONT,
190
- fontWeight: 'normal',
191
- minHeight: '50px',
192
- borderRadius: '10px',
193
- '& input': {
194
- fontSize: '15px',
195
- boxSizing: 'border-box',
196
- minHeight: '50px',
197
- },
198
- '&.MuiInputBase-sizeSmall': {
199
- borderRadius: '6px',
200
- minHeight: '40px',
201
- '& input': { minHeight: '40px' },
202
- '& fieldset': { minHeight: '40px' },
203
- },
204
- },
205
- },
206
- },
207
- MuiOutlinedInput: {
208
- styleOverrides: {
209
- root: {
210
- borderRadius: borderRadius.large,
211
- '& .MuiInputAdornment-positionEnd.MuiInputAdornment-outlined': {
212
- paddingRight: '14px',
213
- },
214
- '& .MuiInputAdornment-positionStart.MuiInputAdornment-outlined': {
215
- paddingLeft: '14px',
216
- },
217
- '& .MuiOutlinedInput-notchedOutline': {
218
- top: 1,
219
- minHeight: '50px',
220
- border: borders.grayLight,
221
- '& legend': {
222
- '& > span': {
223
- paddingRight: 2,
224
- },
225
- },
226
- },
227
- '&:hover .MuiOutlinedInput-notchedOutline': {
228
- borderColor: alpha(colors.common.black, 0.2),
229
- },
230
- '&.Mui-focused .MuiOutlinedInput-notchedOutline': {
231
- borderColor: colors.primary.main,
232
- borderWidth: '0.5px',
233
- '& :hover': {
234
- borderColor: colors.primary.main,
235
- borderWidth: '0.5px',
236
- },
237
- },
238
- },
239
- },
240
- },
241
- MuiCheckbox: {
242
- defaultProps: {
243
- disableRipple: true,
244
- },
245
- styleOverrides: {
246
- root: {
247
- '& .MuiSvgIcon-root': {
248
- width: '18px',
249
- height: '18px',
250
- },
251
- },
252
- },
253
- },
254
- MuiFormControl: {
255
- styleOverrides: {
256
- root: {
257
- '&.MuiTextField-root > .MuiInputBase-root': {
258
- padding: 0,
259
- },
260
- '& .MuiInputBase-inputMultiline': {
261
- padding: '14px',
262
- },
263
- '& .MuiSelect-select': {
264
- padding: '14px',
265
- '&.MuiInputBase-inputSizeSmall': {
266
- padding: '10px 14px',
267
- },
268
- },
269
- '& .MuiAutocomplete-inputRoot.MuiInputBase-root': {
270
- padding: '5px',
271
- '& > .MuiInputBase-input': {
272
- marginLeft: '5px',
273
- minHeight: '40px',
274
- padding: 0,
275
- },
276
- },
277
- '& .MuiFormHelperText-root': {
278
- fontStyle: 'oblique',
279
- marginTop: '10px',
280
- fontSize: '13px',
281
- fontWeight: 600,
282
- textAlign: 'right',
283
- },
284
- },
285
- },
286
- },
287
- MuiAutocomplete: {
288
- styleOverrides: {
289
- tag: { margin: 1 },
290
- root: {
291
- '.MuiAutocomplete-inputRoot.MuiOutlinedInput-root .MuiAutocomplete-endAdornment':
292
- { right: 14 },
293
- },
294
- clearIndicator: {
295
- background: colors.error.lighter,
296
- borderRadius: '5px',
297
- color: colors.error.main,
298
- marginRight: 8,
299
- '&:hover': {
300
- background: colors.error.lighter,
301
- color: colors.error.dark,
302
- },
303
- },
304
- popupIndicator: {
305
- color: alpha(colors.common.black, 0.5),
306
- '&:hover': {
307
- background: colors.primary.lighter,
308
- color: colors.primary.main,
309
- },
310
- },
311
- },
312
- },
313
- MuiSwitch: {
314
- styleOverrides: {
315
- root: {
316
- height: '20px',
317
- padding: 0,
318
- '& .MuiSwitch-switchBase': {
319
- padding: 0,
320
- transitionDuration: '300ms',
321
- '&.Mui-checked': {
322
- color: colors.common.green,
323
- '& .MuiSwitch-thumb': {
324
- marginLeft: '0px',
325
- },
326
- '& + .MuiSwitch-track': {
327
- opacity: '1',
328
- border: `0.5px solid ${colors.common.green}`,
329
- background: '#EDEDED 0% 0% no-repeat padding-box',
330
- },
331
- '&.Mui-disabled + .MuiSwitch-track': {
332
- opacity: 0.5,
333
- },
334
- },
335
- '&.Mui-disabled .MuiSwitch-thumb': {
336
- color: colors.common.green,
337
- opacity: '0.5',
338
- },
339
- },
340
- '& .MuiSwitch-thumb': {
341
- width: '18px',
342
- height: '16px',
343
- borderRadius: '5px',
344
- marginTop: '2px',
345
- boxShadow: 'none',
346
- marginLeft: '2px',
347
- },
348
- '& .MuiSwitch-track': {
349
- borderRadius: '5px',
350
- width: '40px',
351
- height: '20px',
352
- backgroundColor: '#EDEDED',
353
- paddingLeft: '12px',
354
- opacity: '1',
355
- },
356
- },
357
- },
358
- },
359
- MuiMenu: {
360
- styleOverrides: {
361
- paper: {
362
- '&::-webkit-scrollbar': {
363
- width: '0.5em',
364
- height: '0.5em',
365
- },
366
-
367
- '&::-webkit-scrollbar-thumb': {
368
- backgroundColor: 'rgba(0, 0, 0, 0.15)',
369
- borderRadius: '3px',
370
-
371
- '&:hover': {
372
- background: 'rgba(0, 0, 0, 0.2)',
373
- },
374
- },
375
- },
376
- },
377
- },
378
- MuiIconButton: {
379
- defaultProps: {
380
- disableRipple: true,
381
- disableFocusRipple: true,
382
- disableTouchRipple: true,
383
- size: 'small',
384
- },
385
- styleOverrides: {
386
- root: {
387
- borderRadius: '10px',
388
- },
389
- },
390
- },
391
- MuiFormLabel: {
392
- styleOverrides: {
393
- root: {
394
- fontSize: '14px',
395
- color: '#959595',
396
- },
397
- },
398
- },
399
- MuiTextField: {
400
- defaultProps: {
401
- variant: 'outlined',
402
- color: 'primary',
403
- fullWidth: true,
404
- },
405
- },
406
- MuiTable: {
407
- styleOverrides: {
408
- root: {
409
- border: borders.grayLight,
410
- fontFamily: PRIMARY_FONT,
411
- fontSize: '14px',
412
- fontWeight: 600,
413
- },
414
- },
415
- },
416
- MuiTableHead: {
417
- styleOverrides: {
418
- root: {
419
- backgroundColor: themeColors.grayLight,
420
- '& th': {
421
- lineHeight: '20px',
422
- fontSize: '14px',
423
- fontWeight: 600,
424
- fontFamily: SECONDARY_FONT,
425
- },
426
- },
427
- },
428
- },
429
- MuiTableCell: {
430
- styleOverrides: {
431
- root: {
432
- lineHeight: '20px',
433
- padding: '15px',
434
- fontWeight: 600,
435
- fontFamily: PRIMARY_FONT,
436
- fontSize: '14px',
437
- '& .MuiCheckbox-root': {
438
- padding: 0,
439
- },
440
- },
441
- },
442
- },
443
- MuiCard: {
444
- styleOverrides: {
445
- root: {
446
- border: borders.grayLight,
447
- boxShadow: 'none',
448
- borderRadius: '10px',
449
- '&.MuiPaper-root': {
450
- height: 'fit-content',
451
- },
452
- },
453
- },
454
- },
455
- MuiMenuItem: {
456
- styleOverrides: {
457
- root: {
458
- fontWeight: 500,
459
- fontFamily: SECONDARY_FONT,
460
- fontSize: '14px',
461
- },
462
- },
463
- },
464
- MuiListItemText: {
465
- styleOverrides: {
466
- root: {
467
- '& .MuiTypography-root': {
468
- fontWeight: 500,
469
- fontFamily: SECONDARY_FONT,
470
- fontSize: '14px',
471
- },
472
- },
473
- },
474
- },
475
- MuiCardHeader: {
476
- styleOverrides: {
477
- root: {
478
- padding: '20px',
479
- '& .MuiCardHeader-title': {
480
- fontSize: '15px',
481
- fontFamily: SECONDARY_FONT,
482
- fontWeight: 500,
483
- },
484
- '& .MuiTypography-root.MuiCardHeader-subheader': {
485
- marginTop: '3px',
486
- fontSize: '13px',
487
- fontFamily: PRIMARY_FONT,
488
- fontWeight: 400,
489
- },
490
- },
491
- },
492
- },
493
- MuiCardContent: {
494
- styleOverrides: {
495
- root: {
496
- padding: '20px',
497
- paddingTop: 0,
498
- },
499
- },
500
- },
501
- MuiCardActions: {
502
- styleOverrides: {
503
- root: {
504
- padding: 0,
505
- },
506
- },
507
- },
508
- MuiFormHelperText: {
509
- styleOverrides: {
510
- root: {
511
- fontFamily: PRIMARY_FONT,
512
- fontSize: '12px',
513
- color: themeColors.error,
514
- marginLeft: '2px',
515
- marginRight: '2px',
516
- },
517
- },
518
- },
519
- MuiDialogTitle: {
520
- styleOverrides: {
521
- root: {
522
- fontFamily: SECONDARY_FONT,
523
- fontWeight: 500,
524
- fontSize: '16px',
525
- padding: 0,
526
- },
527
- },
528
- },
529
- MuiChip: {
530
- styleOverrides: {
531
- root: {
532
- fontFamily: PRIMARY_FONT,
533
- fontWeight: 600,
534
- fontSize: '14px',
535
- },
536
- },
537
- },
538
- MuiListItemButton: {
539
- styleOverrides: {
540
- root: {
541
- fontFamily: SECONDARY_FONT,
542
- fontSize: '14px',
543
- '& .MuiListItemText-primary.MuiTypography-root': {
544
- fontFamily: SECONDARY_FONT,
545
- },
546
- },
547
- },
548
- },
549
- MuiRadio: {
550
- defaultProps: {
551
- disableRipple: true,
552
- },
553
- },
554
- MuiCssBaseline: {
555
- styleOverrides: customCssBaseline,
556
- },
557
- },
558
- })
559
-
560
- export default muiTheme
1
+ import { alpha, darken, lighten } from '@mui/material'
2
+ import { createTheme } from '@mui/material/styles'
3
+ import { customCssBaseline } from './customCssBaseline'
4
+
5
+ const borderRadius = {
6
+ small: '5px',
7
+ large: '10px',
8
+ }
9
+
10
+ const PRIMARY_FONT = 'Avenir'
11
+ const SECONDARY_FONT = 'Poppins'
12
+
13
+ const themeColors = {
14
+ primary: '#1E19F5',
15
+ secondary: '#121212',
16
+ secondaryLight: '#1212121A',
17
+ success: '#57CA22',
18
+ warning: '#FFA319',
19
+ error: '#BC2C3D',
20
+ info: '#33C2FF',
21
+ black: '#223354',
22
+ white: '#ffffff',
23
+ primaryAlt: '#000C57',
24
+ yellow: '#FFAF20',
25
+ green: '#99C15B',
26
+ grayLight: '#F2F2F2',
27
+ pureBlack: '#000000',
28
+ pureWhite: '#ffffff',
29
+ secondaryDark: '#EFEFEF',
30
+ offsetBlue: '#149ECD',
31
+ }
32
+
33
+ const colors = {
34
+ primary: {
35
+ main: themeColors.primary,
36
+ light: alpha(themeColors.primary, 0.5),
37
+ lighter: alpha(themeColors.primary, 0.1),
38
+ },
39
+ secondary: {
40
+ main: themeColors.secondary,
41
+ light: themeColors.grayLight,
42
+ lighter: themeColors.secondaryLight,
43
+ dark: themeColors.secondaryDark,
44
+ },
45
+ common: {
46
+ green: themeColors.green,
47
+ yellow: themeColors.yellow,
48
+ black: themeColors.pureBlack,
49
+ white: themeColors.pureWhite,
50
+ blue: themeColors.offsetBlue,
51
+ },
52
+ error: {
53
+ lighter: alpha(themeColors.error, 0.1),
54
+ light: lighten(themeColors.error, 0.3),
55
+ main: themeColors.error,
56
+ dark: darken(themeColors.error, 0.2),
57
+ },
58
+ }
59
+
60
+ const borders = {
61
+ primary: `1px solid ${themeColors.primary}`,
62
+ grayLight: `1px solid ${themeColors.secondaryLight}`,
63
+ }
64
+
65
+ // A custom theme for this app
66
+ const muiTheme = createTheme({
67
+ typography: {
68
+ fontFamily: ['Poppins', 'Avenir', 'sans-serif'].join(','),
69
+ },
70
+ borders: {
71
+ ...borders,
72
+ },
73
+ palette: {
74
+ primary: {
75
+ dark: '#1E19F5',
76
+ main: colors.primary.main,
77
+ light: colors.primary.light,
78
+ lighter: colors.primary.lighter,
79
+ },
80
+ secondary: {
81
+ main: '#121212',
82
+ light: colors.secondary.light,
83
+ dark: themeColors.secondaryDark,
84
+ lighter: themeColors.secondaryLight,
85
+ },
86
+ common: {
87
+ green: themeColors.green,
88
+ yellow: themeColors.yellow,
89
+ blue: themeColors.offsetBlue,
90
+ },
91
+ error: {
92
+ main: '#BC2C3D',
93
+ },
94
+ text: {
95
+ primary: '#121212',
96
+ secondary: '#959595',
97
+ disabled: '#12121280',
98
+ },
99
+ },
100
+ components: {
101
+ MuiTypography: {
102
+ styleOverrides: {
103
+ root: {
104
+ color: '#121212',
105
+ fontSize: '14px',
106
+ fontWeight: 600,
107
+ fontFamily: PRIMARY_FONT,
108
+ },
109
+ h1: {
110
+ fontSize: '18px',
111
+ fontWeight: 600,
112
+ fontFamily: SECONDARY_FONT,
113
+ },
114
+ h3: {
115
+ fontSize: '16px',
116
+ fontWeight: 600,
117
+ fontFamily: SECONDARY_FONT,
118
+ },
119
+ h5: {
120
+ fontSize: '14px',
121
+ fontWeight: 500,
122
+ fontFamily: SECONDARY_FONT,
123
+ },
124
+ h6: {
125
+ fontSize: '15px',
126
+ fontWeight: 600,
127
+ fontFamily: SECONDARY_FONT,
128
+ },
129
+ paragraph: {
130
+ fontSize: '16px',
131
+ marginBottom: 0,
132
+ },
133
+ body2: {
134
+ fontWeight: 600,
135
+ },
136
+ subtitle1: {
137
+ fontSize: '12px',
138
+ fontWeight: 400,
139
+ color: '#959595',
140
+ },
141
+ subtitle2: {
142
+ fontSize: '13px',
143
+ fontWeight: 400,
144
+ color: '#959595',
145
+ },
146
+ },
147
+ },
148
+ MuiButton: {
149
+ defaultProps: {
150
+ variant: 'contained',
151
+ disableRipple: true,
152
+ disableElevation: true,
153
+ disableFocusRipple: true,
154
+ disableTouchRipple: true,
155
+ },
156
+ styleOverrides: {
157
+ root: {
158
+ fontFamily: SECONDARY_FONT,
159
+ height: '40px',
160
+ fontSize: '14px',
161
+ padding: '10px 40px',
162
+ textTransform: 'capitalize',
163
+ fontWeight: 600,
164
+ borderRadius: borderRadius.small,
165
+ '&.MuiButton-sizeSmall': {
166
+ padding: '6px 8px',
167
+ height: '40px',
168
+ fontSize: '14px',
169
+ },
170
+ },
171
+ },
172
+ },
173
+ MuiButtonBase: {
174
+ defaultProps: {
175
+ disableRipple: true,
176
+ disableTouchRipple: true,
177
+ },
178
+ styleOverrides: {
179
+ root: {
180
+ fontFamily: SECONDARY_FONT,
181
+ fontSize: '14px',
182
+ fontWeight: 600,
183
+ },
184
+ },
185
+ },
186
+ MuiInputBase: {
187
+ styleOverrides: {
188
+ root: {
189
+ fontFamily: PRIMARY_FONT,
190
+ fontWeight: 'normal',
191
+ minHeight: '50px',
192
+ borderRadius: '10px',
193
+ '& input': {
194
+ fontSize: '15px',
195
+ boxSizing: 'border-box',
196
+ minHeight: '50px',
197
+ },
198
+ '&.MuiInputBase-sizeSmall': {
199
+ borderRadius: '6px',
200
+ minHeight: '40px',
201
+ '& input': { minHeight: '40px' },
202
+ '& fieldset': { minHeight: '40px' },
203
+ },
204
+ },
205
+ },
206
+ },
207
+ MuiOutlinedInput: {
208
+ styleOverrides: {
209
+ root: {
210
+ borderRadius: borderRadius.large,
211
+ '& .MuiInputAdornment-positionEnd.MuiInputAdornment-outlined': {
212
+ paddingRight: '14px',
213
+ },
214
+ '& .MuiInputAdornment-positionStart.MuiInputAdornment-outlined': {
215
+ paddingLeft: '14px',
216
+ },
217
+ '& .MuiOutlinedInput-notchedOutline': {
218
+ top: 1,
219
+ minHeight: '50px',
220
+ border: borders.grayLight,
221
+ '& legend': {
222
+ '& > span': {
223
+ paddingRight: 2,
224
+ },
225
+ },
226
+ },
227
+ '&:hover .MuiOutlinedInput-notchedOutline': {
228
+ borderColor: alpha(colors.common.black, 0.2),
229
+ },
230
+ '&.Mui-focused .MuiOutlinedInput-notchedOutline': {
231
+ borderColor: colors.primary.main,
232
+ borderWidth: '0.5px',
233
+ '& :hover': {
234
+ borderColor: colors.primary.main,
235
+ borderWidth: '0.5px',
236
+ },
237
+ },
238
+ },
239
+ },
240
+ },
241
+ MuiCheckbox: {
242
+ defaultProps: {
243
+ disableRipple: true,
244
+ },
245
+ styleOverrides: {
246
+ root: {
247
+ '& .MuiSvgIcon-root': {
248
+ width: '18px',
249
+ height: '18px',
250
+ },
251
+ },
252
+ },
253
+ },
254
+ MuiFormControl: {
255
+ styleOverrides: {
256
+ root: {
257
+ '&.MuiTextField-root > .MuiInputBase-root': {
258
+ padding: 0,
259
+ },
260
+ '& .MuiInputBase-inputMultiline': {
261
+ padding: '14px',
262
+ },
263
+ '& .MuiSelect-select': {
264
+ padding: '14px',
265
+ '&.MuiInputBase-inputSizeSmall': {
266
+ padding: '10px 14px',
267
+ },
268
+ },
269
+ '& .MuiAutocomplete-inputRoot.MuiInputBase-root': {
270
+ padding: '5px',
271
+ '& > .MuiInputBase-input': {
272
+ marginLeft: '5px',
273
+ minHeight: '40px',
274
+ padding: 0,
275
+ },
276
+ },
277
+ '& .MuiFormHelperText-root': {
278
+ fontStyle: 'oblique',
279
+ marginTop: '10px',
280
+ fontSize: '13px',
281
+ fontWeight: 600,
282
+ textAlign: 'right',
283
+ },
284
+ },
285
+ },
286
+ },
287
+ MuiAutocomplete: {
288
+ styleOverrides: {
289
+ tag: { margin: 1 },
290
+ root: {
291
+ '.MuiAutocomplete-inputRoot.MuiOutlinedInput-root .MuiAutocomplete-endAdornment':
292
+ { right: 14 },
293
+ },
294
+ clearIndicator: {
295
+ background: colors.error.lighter,
296
+ borderRadius: '5px',
297
+ color: colors.error.main,
298
+ marginRight: 8,
299
+ '&:hover': {
300
+ background: colors.error.lighter,
301
+ color: colors.error.dark,
302
+ },
303
+ },
304
+ popupIndicator: {
305
+ color: alpha(colors.common.black, 0.5),
306
+ '&:hover': {
307
+ background: colors.primary.lighter,
308
+ color: colors.primary.main,
309
+ },
310
+ },
311
+ },
312
+ },
313
+ MuiSwitch: {
314
+ styleOverrides: {
315
+ root: {
316
+ height: '20px',
317
+ padding: 0,
318
+ '& .MuiSwitch-switchBase': {
319
+ padding: 0,
320
+ transitionDuration: '300ms',
321
+ '&.Mui-checked': {
322
+ color: colors.common.green,
323
+ '& .MuiSwitch-thumb': {
324
+ marginLeft: '0px',
325
+ },
326
+ '& + .MuiSwitch-track': {
327
+ opacity: '1',
328
+ border: `0.5px solid ${colors.common.green}`,
329
+ background: '#EDEDED 0% 0% no-repeat padding-box',
330
+ },
331
+ '&.Mui-disabled + .MuiSwitch-track': {
332
+ opacity: 0.5,
333
+ },
334
+ },
335
+ '&.Mui-disabled .MuiSwitch-thumb': {
336
+ color: colors.common.green,
337
+ opacity: '0.5',
338
+ },
339
+ },
340
+ '& .MuiSwitch-thumb': {
341
+ width: '18px',
342
+ height: '16px',
343
+ borderRadius: '5px',
344
+ marginTop: '2px',
345
+ boxShadow: 'none',
346
+ marginLeft: '2px',
347
+ },
348
+ '& .MuiSwitch-track': {
349
+ borderRadius: '5px',
350
+ width: '40px',
351
+ height: '20px',
352
+ backgroundColor: '#EDEDED',
353
+ paddingLeft: '12px',
354
+ opacity: '1',
355
+ },
356
+ },
357
+ },
358
+ },
359
+ MuiMenu: {
360
+ styleOverrides: {
361
+ paper: {
362
+ '&::-webkit-scrollbar': {
363
+ width: '0.5em',
364
+ height: '0.5em',
365
+ },
366
+
367
+ '&::-webkit-scrollbar-thumb': {
368
+ backgroundColor: 'rgba(0, 0, 0, 0.15)',
369
+ borderRadius: '3px',
370
+
371
+ '&:hover': {
372
+ background: 'rgba(0, 0, 0, 0.2)',
373
+ },
374
+ },
375
+ },
376
+ },
377
+ },
378
+ MuiIconButton: {
379
+ defaultProps: {
380
+ disableRipple: true,
381
+ disableFocusRipple: true,
382
+ disableTouchRipple: true,
383
+ size: 'small',
384
+ },
385
+ styleOverrides: {
386
+ root: {
387
+ borderRadius: '10px',
388
+ },
389
+ },
390
+ },
391
+ MuiFormLabel: {
392
+ styleOverrides: {
393
+ root: {
394
+ fontSize: '14px',
395
+ color: '#959595',
396
+ },
397
+ },
398
+ },
399
+ MuiTextField: {
400
+ defaultProps: {
401
+ variant: 'outlined',
402
+ color: 'primary',
403
+ fullWidth: true,
404
+ },
405
+ },
406
+ MuiTable: {
407
+ styleOverrides: {
408
+ root: {
409
+ border: borders.grayLight,
410
+ fontFamily: PRIMARY_FONT,
411
+ fontSize: '14px',
412
+ fontWeight: 600,
413
+ },
414
+ },
415
+ },
416
+ MuiTableHead: {
417
+ styleOverrides: {
418
+ root: {
419
+ backgroundColor: themeColors.grayLight,
420
+ '& th': {
421
+ lineHeight: '20px',
422
+ fontSize: '14px',
423
+ fontWeight: 600,
424
+ fontFamily: SECONDARY_FONT,
425
+ },
426
+ },
427
+ },
428
+ },
429
+ MuiTableCell: {
430
+ styleOverrides: {
431
+ root: {
432
+ lineHeight: '20px',
433
+ padding: '15px',
434
+ fontWeight: 600,
435
+ fontFamily: PRIMARY_FONT,
436
+ fontSize: '14px',
437
+ '& .MuiCheckbox-root': {
438
+ padding: 0,
439
+ },
440
+ },
441
+ },
442
+ },
443
+ MuiCard: {
444
+ styleOverrides: {
445
+ root: {
446
+ border: borders.grayLight,
447
+ boxShadow: 'none',
448
+ borderRadius: '10px',
449
+ '&.MuiPaper-root': {
450
+ height: 'fit-content',
451
+ },
452
+ },
453
+ },
454
+ },
455
+ MuiMenuItem: {
456
+ styleOverrides: {
457
+ root: {
458
+ fontWeight: 500,
459
+ fontFamily: SECONDARY_FONT,
460
+ fontSize: '14px',
461
+ },
462
+ },
463
+ },
464
+ MuiListItemText: {
465
+ styleOverrides: {
466
+ root: {
467
+ '& .MuiTypography-root': {
468
+ fontWeight: 500,
469
+ fontFamily: SECONDARY_FONT,
470
+ fontSize: '14px',
471
+ },
472
+ },
473
+ },
474
+ },
475
+ MuiCardHeader: {
476
+ styleOverrides: {
477
+ root: {
478
+ padding: '20px',
479
+ '& .MuiCardHeader-title': {
480
+ fontSize: '15px',
481
+ fontFamily: SECONDARY_FONT,
482
+ fontWeight: 500,
483
+ },
484
+ '& .MuiTypography-root.MuiCardHeader-subheader': {
485
+ marginTop: '3px',
486
+ fontSize: '13px',
487
+ fontFamily: PRIMARY_FONT,
488
+ fontWeight: 400,
489
+ },
490
+ },
491
+ },
492
+ },
493
+ MuiCardContent: {
494
+ styleOverrides: {
495
+ root: {
496
+ padding: '20px',
497
+ paddingTop: 0,
498
+ },
499
+ },
500
+ },
501
+ MuiCardActions: {
502
+ styleOverrides: {
503
+ root: {
504
+ padding: 0,
505
+ },
506
+ },
507
+ },
508
+ MuiFormHelperText: {
509
+ styleOverrides: {
510
+ root: {
511
+ fontFamily: PRIMARY_FONT,
512
+ fontSize: '12px',
513
+ color: themeColors.error,
514
+ marginLeft: '2px',
515
+ marginRight: '2px',
516
+ },
517
+ },
518
+ },
519
+ MuiDialogTitle: {
520
+ styleOverrides: {
521
+ root: {
522
+ fontFamily: SECONDARY_FONT,
523
+ fontWeight: 500,
524
+ fontSize: '16px',
525
+ padding: 0,
526
+ },
527
+ },
528
+ },
529
+ MuiChip: {
530
+ styleOverrides: {
531
+ root: {
532
+ fontFamily: PRIMARY_FONT,
533
+ fontWeight: 600,
534
+ fontSize: '14px',
535
+ },
536
+ },
537
+ },
538
+ MuiListItemButton: {
539
+ styleOverrides: {
540
+ root: {
541
+ fontFamily: SECONDARY_FONT,
542
+ fontSize: '14px',
543
+ '& .MuiListItemText-primary.MuiTypography-root': {
544
+ fontFamily: SECONDARY_FONT,
545
+ },
546
+ },
547
+ },
548
+ },
549
+ MuiRadio: {
550
+ defaultProps: {
551
+ disableRipple: true,
552
+ },
553
+ },
554
+ MuiCssBaseline: {
555
+ styleOverrides: customCssBaseline,
556
+ },
557
+ },
558
+ })
559
+
560
+ export default muiTheme