You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

594 lines
13 KiB

  1. import { createTheme, makeStyles } from "@mui/material";
  2. import { aborted } from "util";
  3. import { styled } from "@mui/system";
  4. import {
  5. Unstable_NumberInput as BaseNumberInput,
  6. NumberInputProps,
  7. numberInputClasses,
  8. } from "@mui/base/Unstable_NumberInput";
  9. import { AlignHorizontalCenter } from "@mui/icons-material";
  10. // - - - - - - WORK IN PROGRESS - - - - - - //
  11. export const chartColor = [
  12. "#CB4047",
  13. "#ED3A41",
  14. "#F47B50",
  15. "#FBA647",
  16. "#FDB64C",
  17. "#CCBB32",
  18. "#9ACC59",
  19. "#57B962",
  20. "#1E83C5",
  21. "#7C4A9D",
  22. ];
  23. export const chartSingleColor = [
  24. "#f2969a",
  25. "#fc9599",
  26. "#faa789",
  27. "#f7ae94",
  28. "#ffd491",
  29. "#ede5a1",
  30. "#d1f5a2",
  31. "#9de0a4",
  32. "#a2d4f5",
  33. "#b685d6",
  34. ];
  35. export const rankColor = [
  36. "#FFD700",
  37. "#C0C0C0",
  38. "#CD853F",
  39. "#57B962",
  40. "#57B962",
  41. "#57B962",
  42. "#57B962",
  43. "#57B962",
  44. "#57B962",
  45. "#57B962",
  46. ];
  47. export const piechartColor1 = [
  48. "#E84A3E",
  49. "#F2883C",
  50. "#FDCD4D",
  51. "#CE478A",
  52. "#B63D2A",
  53. "#6A8B9E",
  54. "#60667E",
  55. "#58865F",
  56. "#2F763E",
  57. "#7D80B5",
  58. ];
  59. export const piechartColor2 = [
  60. "#6A8B9E",
  61. "#60667E",
  62. "#58865F",
  63. "#2F763E",
  64. "#7D80B5",
  65. "#E84A3E",
  66. "#F2883C",
  67. "#FDCD4D",
  68. "#CE478A",
  69. "#B63D2A",
  70. ];
  71. export const cardBorderColor = ["#efb142", "#4bb641", "#448df2", "#e03c04"];
  72. export const chartLineColor = ["#FFFFFF", "#D9D9D9"];
  73. export const GENERAL_RED_COLOR = "#e03c04";
  74. export const TABLE_HEADER_TEXT_COLOR = "#3367D1";
  75. export const GENERAL_INFO_COLOR = "#448df2";
  76. export const GENERAL_SETTING_COLOR = "#666666";
  77. export const GENERAL_BORDER_COLOR = "#e6ebf1";
  78. export const GENERAL_TEXT_COLOR = "#262626";
  79. export const FONT_SIZE_L = "1.875rem";
  80. export const FONT_SIZE_M = "1.5rem";
  81. export const FONT_SIZE_S = "1.25rem";
  82. export const PROJECT_CARD_STYLE = {
  83. borderRadius: "10px",
  84. //border: '10px dotted #ccc',
  85. width: "20rem",
  86. margin: "20px",
  87. //backgroundColor:"pink"
  88. };
  89. export const PROJECT_MODAL_STYLE = {
  90. position: "absolute",
  91. width: "85%",
  92. borderRadius: "10px",
  93. height: "75%",
  94. // top: '50%',
  95. // left: '50%',
  96. transform: "translate(10%, 15%)",
  97. backgroundColor: "white",
  98. padding: "20px",
  99. display: "flex",
  100. flexDirection: "column",
  101. };
  102. export const DATAGRID_STYLE = {
  103. boxShadow: 2,
  104. border: 2,
  105. borderColor: "primary.light",
  106. "& .MuiDataGrid-cell:hover": {
  107. color: "primary.main",
  108. },
  109. "& .MuiDataGrid-root": {
  110. overflow: "auto",
  111. },
  112. };
  113. export const TAB_THEME = {
  114. components: {
  115. MuiTab: {
  116. styleOverrides: {
  117. root: {
  118. // fontSize: '1.0rem',
  119. fontSize: "1.25rem", //'20px',
  120. // height: '40px',
  121. // width: '40vw', // Default width for xs screen sizes
  122. // '@media (min-width: 600px)': { // sm breakpoint
  123. // width: '20vw',
  124. // },
  125. // '@media (min-width: 960px)': { // md breakpoint
  126. // width: '15vw',
  127. // },
  128. // '@media (min-width: 1280px)': { // lg breakpoint
  129. // width: '7vw',
  130. // },
  131. // textTransform: "none",
  132. // alignItems: 'center'
  133. },
  134. },
  135. },
  136. },
  137. };
  138. // copy from MTMS
  139. export const PW_RULE_THEME = createTheme({
  140. components: {
  141. MuiFormHelperText: {
  142. styleOverrides: {
  143. root: {
  144. color: "green",
  145. fontFamily: "Roboto",
  146. '& .icon': {
  147. alignItems: "center",
  148. AlignHorizontalCenter: "center",
  149. marginRight: '4px',
  150. fontSize: '1rem', // Adjust the font size as needed
  151. },
  152. },
  153. },
  154. },
  155. },
  156. });
  157. export const TSMS_BUTTON_THEME = createTheme({
  158. palette: {
  159. primary: {
  160. main: "#92C1E9",
  161. contrastText: "#FFFFFF",
  162. },
  163. secondary: {
  164. main: "#898D8D",
  165. contrastText: "#FFFFFF",
  166. },
  167. success: {
  168. main: "#ADCAB8",
  169. contrastText: "#FFFFFF",
  170. },
  171. danger: {
  172. main: "#F890A5",
  173. contrastText: "#FFFFFF",
  174. },
  175. warning: {
  176. main: "#EFBE7D",
  177. contrastText: "#FFFFFF",
  178. },
  179. disable: {
  180. main: "#B2B4B2",
  181. contrastText: "#FFFFFF",
  182. },
  183. create: {
  184. // main: '#57B962',
  185. main: "#ADCAB8",
  186. // light: will be calculated from palette.primary.main,
  187. // dark: will be calculated from palette.primary.main,
  188. // contrastText: will be calculated to contrast with palette.primary.main
  189. contrastText: "#FFFFFF",
  190. },
  191. delete: {
  192. // main: '#E03C04',
  193. main: "#F890A5",
  194. contrastText: "#FFFFFF",
  195. },
  196. cancel: {
  197. // main: '#999999',
  198. main: "#F890A5",
  199. contrastText: "#FFFFFF",
  200. },
  201. back: {
  202. // main: '#999999',
  203. main: "#898D8D",
  204. contrastText: "#FFFFFF",
  205. },
  206. reset: {
  207. main: "#EFBE7D",
  208. contrastText: "#FFFFFF",
  209. },
  210. save: {
  211. // main: '#448DF2',
  212. main: "#92C1E9",
  213. contrastText: "#FFFFFF",
  214. },
  215. export: {
  216. main: "#8C52FF",
  217. contrastText: "#FFFFFF",
  218. },
  219. import: {
  220. main: "#92C1E9",
  221. contrastText: "#FFFFFF",
  222. },
  223. saveAs: {
  224. main: "#FFBD59",
  225. contrastText: "#FFFFFF",
  226. },
  227. },
  228. components: {
  229. MuiButton: {
  230. styleOverrides: {
  231. root: {
  232. "& .MuiButtonBase-root-MuiButton-root": {
  233. fontSize: FONT_SIZE_S,
  234. },
  235. },
  236. },
  237. },
  238. MuiButtonBase: {
  239. styleOverrides: {
  240. root: {
  241. "&.MuiChip-root.Mui-disabled": {
  242. opacity: 0.75,
  243. },
  244. "&.MuiButton-root": {
  245. fontSize: FONT_SIZE_S,
  246. },
  247. },
  248. },
  249. },
  250. },
  251. });
  252. export const formTheme = createTheme({
  253. components: {
  254. MuiFormLabel: {
  255. root: {
  256. // Name of the rule
  257. color: "rgba(0, 0, 0, 1)",
  258. },
  259. styleOverrides: {
  260. asterisk: {
  261. color: "#db3131",
  262. "&$error": {
  263. color: "#db3131",
  264. },
  265. },
  266. },
  267. },
  268. },
  269. });
  270. export const ARS_BUTTON_THEME = createTheme({
  271. palette: {
  272. create: {
  273. main: "#57B962",
  274. // light: will be calculated from palette.primary.main,
  275. // dark: will be calculated from palette.primary.main,
  276. // contrastText: will be calculated to contrast with palette.primary.main
  277. contrastText: "#FFFFFF",
  278. },
  279. delete: {
  280. main: "#E03C04",
  281. contrastText: "#FFFFFF",
  282. },
  283. cancel: {
  284. main: "#999999",
  285. contrastText: "#FFFFFF",
  286. },
  287. save: {
  288. main: "#448DF2",
  289. contrastText: "#FFFFFF",
  290. },
  291. export: {
  292. main: "#8C52FF",
  293. contrastText: "#FFFFFF",
  294. },
  295. saveAs: {
  296. main: "#FFBD59",
  297. contrastText: "#FFFFFF",
  298. },
  299. edit: {
  300. main: "#F3AF2B",
  301. contrastText: "#FFFFFF",
  302. },
  303. exportExcel: {
  304. main: "#6A8B9E",
  305. contrastText: "#FFFFFF",
  306. },
  307. },
  308. components: {
  309. MuiDataGrid: {
  310. styleOverrides: {
  311. actionsCell: {
  312. "& .MuiDataGrid-actionsContainer .MuiIconButton-root": {
  313. fontSize: "80px", // Set the desired icon size here
  314. },
  315. },
  316. },
  317. },
  318. MuiButton: {
  319. styleOverrides: {
  320. root: {
  321. // fontSize: '1.0rem',
  322. fontSize: "1.25rem",
  323. height: "40px",
  324. width: "40vw", // Default width for xs screen sizes
  325. "@media (min-width: 600px)": {
  326. // sm breakpoint
  327. width: "20vw",
  328. },
  329. "@media (min-width: 960px)": {
  330. // md breakpoint
  331. width: "15vw",
  332. },
  333. "@media (min-width: 1280px)": {
  334. // lg breakpoint
  335. width: "7vw",
  336. },
  337. textTransform: "none",
  338. alignItems: "center",
  339. },
  340. },
  341. },
  342. },
  343. });
  344. //from ARS
  345. export const TSMS_LONG_BUTTON_THEME = createTheme({
  346. palette: {
  347. create: {
  348. main: "#57B962",
  349. // light: will be calculated from palette.primary.main,
  350. // dark: will be calculated from palette.primary.main,
  351. // contrastText: will be calculated to contrast with palette.primary.main
  352. contrastText: "#FFFFFF",
  353. },
  354. delete: {
  355. main: "#E03C04",
  356. contrastText: "#FFFFFF",
  357. },
  358. cancel: {
  359. main: "#999999",
  360. contrastText: "#FFFFFF",
  361. },
  362. save: {
  363. main: "#448DF2",
  364. contrastText: "#FFFFFF",
  365. },
  366. export: {
  367. main: "#8C52FF",
  368. contrastText: "#FFFFFF",
  369. },
  370. saveAs: {
  371. main: "#FFBD59",
  372. contrastText: "#FFFFFF",
  373. },
  374. edit: {
  375. main: "#F3AF2B",
  376. contrastText: "#FFFFFF",
  377. },
  378. exportExcel: {
  379. main: "#60667E",
  380. contrastText: "#FFFFFF",
  381. },
  382. },
  383. components: {
  384. MuiDataGrid: {
  385. styleOverrides: {
  386. actionsCell: {
  387. "& .MuiDataGrid-actionsContainer .MuiIconButton-root": {
  388. fontSize: "80px", // Set the desired icon size here
  389. },
  390. },
  391. },
  392. },
  393. MuiButton: {
  394. styleOverrides: {
  395. root: {
  396. fontSize: "1.25rem",
  397. height: "40px",
  398. width: "40vw", // Default width for xs screen sizes
  399. "@media (min-width: 600px)": {
  400. // sm breakpoint
  401. width: "30vw",
  402. },
  403. "@media (min-width: 960px)": {
  404. // md breakpoint
  405. width: "25vw",
  406. },
  407. "@media (min-width: 1280px)": {
  408. // lg breakpoint
  409. width: "14vw",
  410. },
  411. textTransform: "none",
  412. alignItems: "center",
  413. },
  414. },
  415. },
  416. },
  417. });
  418. export default function NumberInputBasic() {
  419. const [value, setValue] = (React.useState < number) | (null > null);
  420. return (
  421. <NumberInput
  422. aria-label="Demo number input"
  423. placeholder="Type a number…"
  424. value={value}
  425. onChange={(event, val) => setValue(val)}
  426. />
  427. );
  428. }
  429. const blue = {
  430. 100: "#DAECFF",
  431. 200: "#80BFFF",
  432. 400: "#3399FF",
  433. 500: "#007FFF",
  434. 600: "#0072E5",
  435. };
  436. const grey = {
  437. 50: "#F3F6F9",
  438. 100: "#E5EAF2",
  439. 200: "#DAE2ED",
  440. 300: "#C7D0DD",
  441. 400: "#B0B8C4",
  442. 500: "#9DA8B7",
  443. 600: "#6B7A90",
  444. 700: "#434D5B",
  445. 800: "#303740",
  446. 900: "#1C2025",
  447. };
  448. export const StyledInputRoot = styled("div")(
  449. ({ theme }) => `
  450. font-family: 'IBM Plex Sans', sans-serif;
  451. font-weight: 400;
  452. border-radius: 8px;
  453. color: ${theme.palette.mode === "dark" ? grey[300] : grey[900]};
  454. background: ${theme.palette.mode === "dark" ? grey[900] : "#fff"};
  455. border: 1px solid ${theme.palette.mode === "dark" ? grey[700] : grey[200]};
  456. box-shadow: 0px 2px 2px ${
  457. theme.palette.mode === "dark" ? grey[900] : grey[50]
  458. };
  459. display: grid;
  460. grid-template-columns: 1fr 19px;
  461. grid-template-rows: 1fr 1fr;
  462. overflow: hidden;
  463. column-gap: 8px;
  464. padding: 4px;
  465. &.${numberInputClasses.focused} {
  466. border-color: ${blue[400]};
  467. box-shadow: 0 0 0 3px ${
  468. theme.palette.mode === "dark" ? blue[600] : blue[200]
  469. };
  470. }
  471. &:hover {
  472. border-color: ${blue[400]};
  473. }
  474. // firefox
  475. &:focus-visible {
  476. outline: 0;
  477. }
  478. `
  479. );
  480. export const StyledInputElement = styled("input")(
  481. ({ theme }) => `
  482. font-size: 0.875rem;
  483. font-family: inherit;
  484. font-weight: 400;
  485. line-height: 1.5;
  486. grid-column: 1/2;
  487. grid-row: 1/3;
  488. color: ${theme.palette.mode === "dark" ? grey[300] : grey[900]};
  489. background: inherit;
  490. border: none;
  491. border-radius: inherit;
  492. padding: 8px 12px;
  493. outline: 0;
  494. `
  495. );
  496. export const StyledButton = styled("button")(
  497. ({ theme }) => `
  498. display: flex;
  499. flex-flow: row nowrap;
  500. justify-content: center;
  501. align-items: center;
  502. appearance: none;
  503. padding: 0;
  504. width: 19px;
  505. height: 19px;
  506. font-family: system-ui, sans-serif;
  507. font-size: 0.875rem;
  508. line-height: 1;
  509. box-sizing: border-box;
  510. background: ${theme.palette.mode === "dark" ? grey[900] : "#fff"};
  511. border: 0;
  512. color: ${theme.palette.mode === "dark" ? grey[300] : grey[900]};
  513. transition-property: all;
  514. transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  515. transition-duration: 120ms;
  516. &:hover {
  517. background: ${theme.palette.mode === "dark" ? grey[800] : grey[50]};
  518. border-color: ${theme.palette.mode === "dark" ? grey[600] : grey[300]};
  519. cursor: pointer;
  520. }
  521. &.${numberInputClasses.incrementButton} {
  522. grid-column: 2/3;
  523. grid-row: 1/2;
  524. border-top-left-radius: 4px;
  525. border-top-right-radius: 4px;
  526. border: 1px solid;
  527. border-bottom: 0;
  528. &:hover {
  529. cursor: pointer;
  530. background: ${blue[400]};
  531. color: ${grey[50]};
  532. }
  533. border-color: ${theme.palette.mode === "dark" ? grey[800] : grey[200]};
  534. background: ${theme.palette.mode === "dark" ? grey[900] : grey[50]};
  535. color: ${theme.palette.mode === "dark" ? grey[200] : grey[900]};
  536. }
  537. &.${numberInputClasses.decrementButton} {
  538. grid-column: 2/3;
  539. grid-row: 2/3;
  540. border-bottom-left-radius: 4px;
  541. border-bottom-right-radius: 4px;
  542. border: 1px solid;
  543. &:hover {
  544. cursor: pointer;
  545. background: ${blue[400]};
  546. color: ${grey[50]};
  547. }
  548. border-color: ${theme.palette.mode === "dark" ? grey[800] : grey[200]};
  549. background: ${theme.palette.mode === "dark" ? grey[900] : grey[50]};
  550. color: ${theme.palette.mode === "dark" ? grey[200] : grey[900]};
  551. }
  552. & .arrow {
  553. transform: translateY(-1px);
  554. }
  555. `
  556. );