diff --git a/package-lock.json b/package-lock.json
index bb8bd9b9..850ce406 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,18 +9,22 @@
"version": "0.0.0",
"hasInstallScript": true,
"dependencies": {
- "@emotion/react": "^11.11.4",
- "@emotion/styled": "^11.11.5",
- "@mui/material": "^5.15.17",
+ "@emotion/react": "^11.13.0",
+ "@emotion/styled": "^11.13.0",
+ "@mui/icons-material": "^5.16.4",
+ "@mui/material": "^5.16.4",
+ "@mui/x-date-pickers": "^7.10.0",
"@testing-library/react": "^14.0.0",
"@vitest/coverage-v8": "^2.0.4",
"axios": "^1.7.2",
+ "dayjs": "^1.11.11",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.2.1",
"prettier": "^3.3.3",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-icons": "^5.2.1",
+ "react-number-format": "^5.4.0",
"react-router-dom": "^6.23.1",
"vitest-sonar-reporter": "^2.0.0"
},
@@ -611,6 +615,40 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/@floating-ui/core": {
+ "version": "1.6.5",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.5.tgz",
+ "integrity": "sha512-8GrTWmoFhm5BsMZOTHeGD2/0FLKLQQHvO/ZmQga4tKempYRLz8aqJGqXVuQgisnMObq2YZ2SgkwctN1LOOxcqA==",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.5"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.6.8",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.8.tgz",
+ "integrity": "sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q==",
+ "dependencies": {
+ "@floating-ui/core": "^1.6.0",
+ "@floating-ui/utils": "^0.2.5"
+ }
+ },
+ "node_modules/@floating-ui/react-dom": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz",
+ "integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==",
+ "dependencies": {
+ "@floating-ui/dom": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.5.tgz",
+ "integrity": "sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ=="
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.14",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
@@ -735,6 +773,37 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@mui/base": {
+ "version": "5.0.0-beta.40",
+ "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz",
+ "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "@floating-ui/react-dom": "^2.0.8",
+ "@mui/types": "^7.2.14",
+ "@mui/utils": "^5.15.14",
+ "@popperjs/core": "^2.11.8",
+ "clsx": "^2.1.0",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@mui/core-downloads-tracker": {
"version": "5.16.4",
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.4.tgz",
@@ -744,6 +813,31 @@
"url": "https://opencollective.com/mui-org"
}
},
+ "node_modules/@mui/icons-material": {
+ "version": "5.16.5",
+ "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.5.tgz",
+ "integrity": "sha512-bn88xxU/J9UV0s6+eutq7o3TTOrOlbCX+KshFb8kxgIxJZZfYz3JbAXVMivvoMF4Md6jCVUzM9HEkf4Ajab4tw==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@mui/material": "^5.0.0",
+ "@types/react": "^17.0.0 || ^18.0.0",
+ "react": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@mui/material": {
"version": "5.16.4",
"resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.4.tgz",
@@ -789,12 +883,12 @@
}
},
"node_modules/@mui/private-theming": {
- "version": "5.16.4",
- "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.4.tgz",
- "integrity": "sha512-ZsAm8cq31SJ37SVWLRlu02v9SRthxnfQofaiv14L5Bht51B0dz6yQEoVU/V8UduZDCCIrWkBHuReVfKhE/UuXA==",
+ "version": "5.16.5",
+ "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.5.tgz",
+ "integrity": "sha512-CSLg0YkpDqg0aXOxtjo3oTMd3XWMxvNb5d0v4AYVqwOltU8q6GvnZjhWyCLjGSCrcgfwm6/VDjaKLPlR14wxIA==",
"dependencies": {
"@babel/runtime": "^7.23.9",
- "@mui/utils": "^5.16.4",
+ "@mui/utils": "^5.16.5",
"prop-types": "^15.8.1"
},
"engines": {
@@ -846,15 +940,15 @@
}
},
"node_modules/@mui/system": {
- "version": "5.16.4",
- "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.4.tgz",
- "integrity": "sha512-ET1Ujl2/8hbsD611/mqUuNArMCGv/fIWO/f8B3ZqF5iyPHM2aS74vhTNyjytncc4i6dYwGxNk+tLa7GwjNS0/w==",
+ "version": "5.16.5",
+ "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.5.tgz",
+ "integrity": "sha512-uzIUGdrWddUx1HPxW4+B2o4vpgKyRxGe/8BxbfXVDPNPHX75c782TseoCnR/VyfnZJfqX87GcxDmnZEE1c031g==",
"dependencies": {
"@babel/runtime": "^7.23.9",
- "@mui/private-theming": "^5.16.4",
+ "@mui/private-theming": "^5.16.5",
"@mui/styled-engine": "^5.16.4",
"@mui/types": "^7.2.15",
- "@mui/utils": "^5.16.4",
+ "@mui/utils": "^5.16.5",
"clsx": "^2.1.0",
"csstype": "^3.1.3",
"prop-types": "^15.8.1"
@@ -898,11 +992,12 @@
}
},
"node_modules/@mui/utils": {
- "version": "5.16.4",
- "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.4.tgz",
- "integrity": "sha512-nlppYwq10TBIFqp7qxY0SvbACOXeOjeVL3pOcDsK0FT8XjrEXh9/+lkg8AEIzD16z7YfiJDQjaJG2OLkE7BxNg==",
+ "version": "5.16.5",
+ "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.5.tgz",
+ "integrity": "sha512-CwhcA9y44XwK7k2joL3Y29mRUnoBt+gOZZdGyw7YihbEwEErJYBtDwbZwVgH68zAljGe/b+Kd5bzfl63Gi3R2A==",
"dependencies": {
"@babel/runtime": "^7.23.9",
+ "@mui/types": "^7.2.15",
"@types/prop-types": "^15.7.12",
"clsx": "^2.1.1",
"prop-types": "^15.8.1",
@@ -925,6 +1020,71 @@
}
}
},
+ "node_modules/@mui/x-date-pickers": {
+ "version": "7.11.1",
+ "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.11.1.tgz",
+ "integrity": "sha512-CflouzTNSv0YeOA8iiYpJMtqGlwGC8LI9EE9egDGhatR9Mn5geRDTXsm0rRG/4pMOfaRxyJc6Yzr/axBhEXM7w==",
+ "dependencies": {
+ "@babel/runtime": "^7.24.8",
+ "@mui/base": "^5.0.0-beta.40",
+ "@mui/system": "^5.16.5",
+ "@mui/utils": "^5.16.5",
+ "@types/react-transition-group": "^4.4.10",
+ "clsx": "^2.1.1",
+ "prop-types": "^15.8.1",
+ "react-transition-group": "^4.4.5"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui-org"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.9.0",
+ "@emotion/styled": "^11.8.1",
+ "@mui/material": "^5.15.14",
+ "date-fns": "^2.25.0 || ^3.2.0",
+ "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0",
+ "dayjs": "^1.10.7",
+ "luxon": "^3.0.2",
+ "moment": "^2.29.4",
+ "moment-hijri": "^2.1.2",
+ "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0",
+ "react": "^17.0.0 || ^18.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/react": {
+ "optional": true
+ },
+ "@emotion/styled": {
+ "optional": true
+ },
+ "date-fns": {
+ "optional": true
+ },
+ "date-fns-jalali": {
+ "optional": true
+ },
+ "dayjs": {
+ "optional": true
+ },
+ "luxon": {
+ "optional": true
+ },
+ "moment": {
+ "optional": true
+ },
+ "moment-hijri": {
+ "optional": true
+ },
+ "moment-jalaali": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -995,9 +1155,9 @@
}
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.19.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz",
- "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz",
+ "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==",
"cpu": [
"x64"
],
@@ -1007,9 +1167,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.19.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz",
- "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz",
+ "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==",
"cpu": [
"x64"
],
@@ -1614,6 +1774,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/array.prototype.toreversed": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz",
+ "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
"node_modules/array.prototype.tosorted": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
@@ -1683,6 +1855,7 @@
"version": "1.7.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz",
"integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
+ "license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
@@ -1784,9 +1957,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001643",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz",
- "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==",
+ "version": "1.0.30001642",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001642.tgz",
+ "integrity": "sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==",
"dev": true,
"funding": [
{
@@ -2005,6 +2178,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/dayjs": {
+ "version": "1.11.12",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz",
+ "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg=="
+ },
"node_modules/debug": {
"version": "4.3.5",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
@@ -2165,9 +2343,9 @@
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
},
"node_modules/electron-to-chromium": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.0.tgz",
- "integrity": "sha512-Vb3xHHYnLseK8vlMJQKJYXJ++t4u1/qJ3vykuVrVjvdiOEhYyT1AuP4x03G8EnPmYvYOhe9T+dADTmthjRQMkA==",
+ "version": "1.4.828",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.828.tgz",
+ "integrity": "sha512-QOIJiWpQJDHAVO4P58pwb133Cwee0nbvy/MV1CwzZVGpkH1RX33N3vsaWRCpR6bF63AAq366neZrRTu7Qlsbbw==",
"dev": true
},
"node_modules/emoji-regex": {
@@ -2522,14 +2700,15 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.35.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz",
- "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==",
+ "version": "7.34.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.4.tgz",
+ "integrity": "sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==",
"dev": true,
"dependencies": {
"array-includes": "^3.1.8",
"array.prototype.findlast": "^1.2.5",
"array.prototype.flatmap": "^1.3.2",
+ "array.prototype.toreversed": "^1.1.2",
"array.prototype.tosorted": "^1.1.4",
"doctrine": "^2.1.0",
"es-iterator-helpers": "^1.0.19",
@@ -2550,7 +2729,7 @@
"node": ">=4"
},
"peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
}
},
"node_modules/eslint-plugin-react-hooks": {
@@ -2566,9 +2745,9 @@
}
},
"node_modules/eslint-plugin-react-refresh": {
- "version": "0.4.9",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.9.tgz",
- "integrity": "sha512-QK49YrBAo5CLNLseZ7sZgvgTy21E6NEw22eZqc4teZfH8pxV3yXc9XXOYfUI6JNpw7mfHNkAeWtBxrTyykB6HA==",
+ "version": "0.4.8",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.8.tgz",
+ "integrity": "sha512-MIKAclwaDFIiYtVBLzDdm16E+Ty4GwhB6wZlCAG1R3Ur+F9Qbo6PRxpA5DK7XtDgm+WlCoAY2WxAwqhmIDHg6Q==",
"dev": true,
"peerDependencies": {
"eslint": ">=7"
@@ -3418,9 +3597,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
- "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
+ "version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz",
+ "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==",
"dependencies": {
"hasown": "^2.0.2"
},
@@ -4135,9 +4314,9 @@
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
},
"node_modules/node-releases": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
- "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
"dev": true
},
"node_modules/npm-run-path": {
@@ -4474,9 +4653,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.40",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz",
- "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==",
+ "version": "8.4.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz",
+ "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==",
"funding": [
{
"type": "opencollective",
@@ -4657,6 +4836,18 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
"integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
},
+ "node_modules/react-number-format": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.0.tgz",
+ "integrity": "sha512-NWdICrqLhI7rAS8yUeLVd6Wr4cN7UjJ9IBTS0f/a9i7UB4x4Ti70kGnksBtZ7o4Z7YRbvCMMR/jQmkoOBa/4fg==",
+ "dependencies": {
+ "prop-types": "^15.7.2"
+ },
+ "peerDependencies": {
+ "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
"node_modules/react-refresh": {
"version": "0.14.2",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
@@ -4667,9 +4858,9 @@
}
},
"node_modules/react-router": {
- "version": "6.25.1",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.25.1.tgz",
- "integrity": "sha512-u8ELFr5Z6g02nUtpPAggP73Jigj1mRePSwhS/2nkTrlPU5yEkH1vYzWNyvSnSzeeE2DNqWdH+P8OhIh9wuXhTw==",
+ "version": "6.25.0",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.25.0.tgz",
+ "integrity": "sha512-bziKjCcDbcxgWS9WlWFcQIVZ2vJHnCP6DGpQDT0l+0PFDasfJKgzf9CM22eTyhFsZkjk8ApCdKjJwKtzqH80jQ==",
"dependencies": {
"@remix-run/router": "1.18.0"
},
@@ -4681,12 +4872,12 @@
}
},
"node_modules/react-router-dom": {
- "version": "6.25.1",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.25.1.tgz",
- "integrity": "sha512-0tUDpbFvk35iv+N89dWNrJp+afLgd+y4VtorJZuOCXK0kkCWjEvb3vTJM++SYvMEpbVwXKf3FjeVveVEb6JpDQ==",
+ "version": "6.25.0",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.25.0.tgz",
+ "integrity": "sha512-BhcczgDWWgvGZxjDDGuGHrA8HrsSudilqTaRSBYLWDayvo1ClchNIDVt5rldqp6e7Dro5dEFx9Mzc+r292lN0w==",
"dependencies": {
"@remix-run/router": "1.18.0",
- "react-router": "6.25.1"
+ "react-router": "6.25.0"
},
"engines": {
"node": ">=14.0.0"
@@ -4822,9 +5013,9 @@
}
},
"node_modules/rollup": {
- "version": "4.19.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.0.tgz",
- "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz",
+ "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==",
"dependencies": {
"@types/estree": "1.0.5"
},
@@ -4836,22 +5027,22 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.19.0",
- "@rollup/rollup-android-arm64": "4.19.0",
- "@rollup/rollup-darwin-arm64": "4.19.0",
- "@rollup/rollup-darwin-x64": "4.19.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.19.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.19.0",
- "@rollup/rollup-linux-arm64-gnu": "4.19.0",
- "@rollup/rollup-linux-arm64-musl": "4.19.0",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.19.0",
- "@rollup/rollup-linux-s390x-gnu": "4.19.0",
- "@rollup/rollup-linux-x64-gnu": "4.19.0",
- "@rollup/rollup-linux-x64-musl": "4.19.0",
- "@rollup/rollup-win32-arm64-msvc": "4.19.0",
- "@rollup/rollup-win32-ia32-msvc": "4.19.0",
- "@rollup/rollup-win32-x64-msvc": "4.19.0",
+ "@rollup/rollup-android-arm-eabi": "4.18.1",
+ "@rollup/rollup-android-arm64": "4.18.1",
+ "@rollup/rollup-darwin-arm64": "4.18.1",
+ "@rollup/rollup-darwin-x64": "4.18.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.18.1",
+ "@rollup/rollup-linux-arm-musleabihf": "4.18.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.18.1",
+ "@rollup/rollup-linux-arm64-musl": "4.18.1",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1",
+ "@rollup/rollup-linux-riscv64-gnu": "4.18.1",
+ "@rollup/rollup-linux-s390x-gnu": "4.18.1",
+ "@rollup/rollup-linux-x64-gnu": "4.18.1",
+ "@rollup/rollup-linux-x64-musl": "4.18.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.18.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.18.1",
+ "@rollup/rollup-win32-x64-msvc": "4.18.1",
"fsevents": "~2.3.2"
}
},
diff --git a/package.json b/package.json
index 02136770..079e12cd 100644
--- a/package.json
+++ b/package.json
@@ -14,19 +14,23 @@
"postinstall": "node_modules/.bin/husky install"
},
"dependencies": {
- "@emotion/react": "^11.11.4",
- "@emotion/styled": "^11.11.5",
- "@mui/material": "^5.15.17",
- "@testing-library/react": "^14.0.0",
- "@vitest/coverage-v8": "^2.0.4",
+ "@emotion/react": "^11.13.0",
+ "@emotion/styled": "^11.13.0",
+ "@mui/icons-material": "^5.16.4",
+ "@mui/material": "^5.16.4",
+ "@mui/x-date-pickers": "^7.10.0",
"axios": "^1.7.2",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.2.1",
- "prettier": "^3.3.3",
+ "dayjs": "^1.11.11",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-icons": "^5.2.1",
+ "react-number-format": "^5.4.0",
"react-router-dom": "^6.23.1",
+ "@testing-library/react": "^14.0.0",
+ "@vitest/coverage-v8": "^2.0.4",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-prettier": "^5.2.1",
+ "prettier": "^3.3.3",
"vitest-sonar-reporter": "^2.0.0"
},
"devDependencies": {
diff --git a/src/Components/Checklist/index.jsx b/src/Components/Checklist/index.jsx
new file mode 100644
index 00000000..3509b666
--- /dev/null
+++ b/src/Components/Checklist/index.jsx
@@ -0,0 +1,46 @@
+import Checkbox from "@mui/material/Checkbox";
+import List from "@mui/material/List";
+import ListItem from "@mui/material/ListItem";
+import ListItemText from "@mui/material/ListItemText";
+import Divider from "@mui/material/Divider";
+import React from "react";
+import PropTypes from "prop-types";
+
+export default function CheckList({ items, value, onChange }) {
+ const handleToggle = (e) => () => {
+ const currentIndex = value.indexOf(e);
+ const newChecked = [...value];
+
+ if (currentIndex === -1) {
+ newChecked.push(e);
+ } else {
+ newChecked.splice(currentIndex, 1);
+ }
+
+ onChange(newChecked);
+ };
+ return (
+
+ {items.map((item, index) => (
+
+
+
+
+
+ {index !== items.length - 1 && }
+
+ ))}
+
+ );
+}
+
+CheckList.propTypes = {
+ items: PropTypes.any,
+ value: PropTypes.any,
+ onChange: PropTypes.any,
+};
diff --git a/src/Components/DataSelect/index.jsx b/src/Components/DataSelect/index.jsx
new file mode 100644
index 00000000..6ff11cc1
--- /dev/null
+++ b/src/Components/DataSelect/index.jsx
@@ -0,0 +1,28 @@
+import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
+import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider";
+import { DatePicker } from "@mui/x-date-pickers/DatePicker";
+import { TextField } from "@mui/material";
+import PropTypes from "prop-types";
+
+export default function DataSelect({ label, value, onChange }) {
+ return (
+
+ }
+ sx={{
+ margin: ".7rem",
+ }}
+ />
+
+ );
+}
+
+DataSelect.propTypes = {
+ label: PropTypes.any,
+ value: PropTypes.any,
+ onChange: PropTypes.any,
+};
diff --git a/src/Components/FieldNumber/index.jsx b/src/Components/FieldNumber/index.jsx
new file mode 100644
index 00000000..29e58286
--- /dev/null
+++ b/src/Components/FieldNumber/index.jsx
@@ -0,0 +1,35 @@
+import PropTypes from "prop-types";
+import FieldText from "../FieldText";
+import { PatternFormat } from "react-number-format";
+
+export default function FieldNumber({
+ label,
+ value,
+ onChange,
+ disabled,
+ format,
+}) {
+ return (
+
+ );
+}
+FieldNumber.propTypes = {
+ label: PropTypes.string.isRequired,
+ value: PropTypes.string.isRequired,
+ onChange: PropTypes.func.isRequired,
+ disabled: PropTypes.bool,
+ format: PropTypes.string.isRequired,
+};
diff --git a/src/Components/FieldSelect/index.jsx b/src/Components/FieldSelect/index.jsx
new file mode 100644
index 00000000..e4053dce
--- /dev/null
+++ b/src/Components/FieldSelect/index.jsx
@@ -0,0 +1,62 @@
+import theme from "../../Styles/global";
+import { FormControl, InputLabel, MenuItem, Select } from "@mui/material";
+import "dayjs/locale/pt-br";
+import PropTypes from "prop-types";
+
+function FieldSelect({ label, value, onChange, options }) {
+ return (
+
+ {label}
+
+
+ );
+}
+
+FieldSelect.propTypes = {
+ label: PropTypes.any,
+ value: PropTypes.any,
+ onChange: PropTypes.any,
+ options: PropTypes.any,
+};
+
+export default FieldSelect;
diff --git a/src/Components/FieldText/index.jsx b/src/Components/FieldText/index.jsx
new file mode 100644
index 00000000..56f2afe3
--- /dev/null
+++ b/src/Components/FieldText/index.jsx
@@ -0,0 +1,51 @@
+import PropTypes from "prop-types";
+import theme from "../../Styles/global";
+import TextField from "@mui/material/TextField";
+
+export default function FieldText({ label, value, onChange, disabled }) {
+ return (
+
+ );
+}
+
+FieldText.propTypes = {
+ label: PropTypes.string.isRequired,
+ value: PropTypes.string.isRequired,
+ onChange: PropTypes.func.isRequired,
+ disabled: PropTypes.bool,
+};
diff --git a/src/Components/Modal/index.css b/src/Components/Modal/index.css
index 9f290fa2..0a7f4652 100644
--- a/src/Components/Modal/index.css
+++ b/src/Components/Modal/index.css
@@ -16,10 +16,12 @@
display: flex;
flex-direction: column;
align-items: center;
- width: 338px;
- height: 284px;
background: #eae3d7;
padding: 40px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
position: relative;
+ width: auto;
+ max-width: 90%;
+ max-height: 90vh;
+ overflow-y: auto;
}
diff --git a/src/Components/Modal/index.jsx b/src/Components/Modal/index.jsx
index 6fa926a5..8f74a2f8 100644
--- a/src/Components/Modal/index.jsx
+++ b/src/Components/Modal/index.jsx
@@ -1,19 +1,12 @@
import "./index.css";
import PropTypes from "prop-types";
import { Alert, AlertTitle } from "@mui/material";
-import SecondaryButton from "../SecondaryButton";
-import { useNavigate } from "react-router-dom";
import theme from "../../Styles/global";
-export default function Modal({ show, children, text, width }) {
- const navigate = useNavigate();
-
+export default function Modal({ show, children, alertTitle }) {
if (!show) {
return null;
}
- const handleLoginPage = () => {
- navigate("/");
- };
return (
@@ -22,20 +15,19 @@ export default function Modal({ show, children, text, width }) {
severity="success"
variant="filled"
sx={{
- backgroundColor: theme.pallete.button,
+ backgroundColor: theme.palette.button,
"& .MuiAlertTitle-root": {
fontFamily: theme.typography.fontFamilyPrimary,
},
"& .MuiAlert-message": {
fontFamily: theme.typography.fontFamilySecondary,
},
- width: "270px",
+ width: "100%", // Ajusta para 100% da largura do modal
}}
>
-
Solicitação enviada
- Você deve receber um e-mail em breve com mais informações.
+
{alertTitle}
-
+
{children}
@@ -43,8 +35,7 @@ export default function Modal({ show, children, text, width }) {
}
Modal.propTypes = {
- text: PropTypes.string.isRequired,
- width: PropTypes.string.isRequired,
show: PropTypes.bool.isRequired,
children: PropTypes.node.isRequired,
+ alertTitle: PropTypes.string.isRequired,
};
diff --git a/src/Components/SecondaryButton/index.jsx b/src/Components/SecondaryButton/index.jsx
index c709a2ac..5d140e02 100644
--- a/src/Components/SecondaryButton/index.jsx
+++ b/src/Components/SecondaryButton/index.jsx
@@ -29,6 +29,6 @@ export default function SecondaryButton({ text, onClick, maxWidth }) {
SecondaryButton.propTypes = {
text: PropTypes.string.isRequired,
- maxWidth: PropTypes.string.isRequired,
- onClick: PropTypes.func,
+ maxWidth: PropTypes.string,
+ onClick: PropTypes.func.isRequired,
};
diff --git a/src/Components/SideButton/index.jsx b/src/Components/SideButton/index.jsx
index 1add0c18..66557985 100644
--- a/src/Components/SideButton/index.jsx
+++ b/src/Components/SideButton/index.jsx
@@ -1,7 +1,8 @@
import PropTypes from "prop-types";
-import theme from "../../Styles/global";
import { Button } from "@mui/material";
+const rgbaValue01 = `rgba(174, 136, 60, 0.1);`;
+
export default function SideButton({ itemKey, text, onClick }) {
return (