diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1b15fe3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,48 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/build +/dist +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel + + +#others +rz.txt +README.txt + +# typescript +*.tsbuildinfo + +# yarn.lock diff --git a/index.html b/index.html new file mode 100644 index 0000000..f9076e0 --- /dev/null +++ b/index.html @@ -0,0 +1,25 @@ + + + + + + + + + + + CLV Group + + +
+ + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..df83de4 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + } + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f104439 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7300 @@ +{ + "name": "dashkit-react-kitp", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "dashkit-react-kitp", + "version": "0.0.0", + "dependencies": { + "@coreui/coreui": "^5.4.0", + "@coreui/coreui-pro": "^5.14.2", + "@coreui/react": "^5.7.0", + "@coreui/react-pro": "^5.17.0", + "@dnd-kit/core": "^6.3.1", + "@dnd-kit/modifiers": "^9.0.0", + "@fullcalendar/core": "^6.1.4", + "@fullcalendar/daygrid": "^6.1.19", + "@fullcalendar/interaction": "^6.1.19", + "@fullcalendar/list": "^6.1.4", + "@fullcalendar/react": "^6.1.19", + "@fullcalendar/timegrid": "^6.1.19", + "@headlessui/react": "^1.7.4", + "@hookform/resolvers": "^2.9.10", + "@iconify/react": "^4.0.0", + "@react-google-maps/api": "^2.20.6", + "@react-spring/web": "^10.0.3", + "@reduxjs/toolkit": "^1.9.0", + "@rollup/plugin-replace": "^5.0.2", + "@south-paw/react-vector-maps": "^3.2.0", + "@svg-maps/world": "^1.0.1", + "@tippyjs/react": "^4.2.6", + "@vis.gl/react-google-maps": "^1.5.2", + "@vitejs/plugin-react-refresh": "^1.3.6", + "antd": "^5.27.1", + "apexcharts": "^3.36.3", + "axios": "^1.10.0", + "blueimp-md5": "^2.19.0", + "chart.js": "^4.2.0", + "cleave.js": "^1.6.0", + "crypto-js": "^4.2.0", + "d3-array": "^3.2.2", + "dayjs": "^1.11.7", + "framer-motion": "^10.12.12", + "leaflet": "^1.9.3", + "localforage": "^1.10.0", + "lucide-react": "^0.507.0", + "match-sorter": "^6.3.1", + "md5": "^2.3.0", + "organization-chart-react": "^1.1.2", + "primereact": "^10.9.6", + "quill": "^2.0.3", + "react": "^18.2.0", + "react-apexcharts": "^1.4.0", + "react-beautiful-dnd": "^13.1.1", + "react-calendar": "^4.0.0", + "react-chartjs-2": "^5.2.0", + "react-collapse": "^5.1.1", + "react-color": "^2.19.3", + "react-colorful": "^5.6.1", + "react-csv": "^2.2.2", + "react-data-table-component": "^7.7.0", + "react-dnd": "^16.0.1", + "react-dnd-html5-backend": "^16.0.1", + "react-dom": "^18.2.0", + "react-dropzone": "^14.2.3", + "react-flatpickr": "^3.10.13", + "react-hook-form": "^7.39.5", + "react-icons": "^5.5.0", + "react-leaflet": "^4.2.0", + "react-redux": "^8.0.5", + "react-router-dom": "^6.4.3", + "react-select": "^5.7.0", + "react-table": "^7.8.0", + "react-tailwindcss-datepicker": "^1.4.2", + "react-toastify": "^9.1.3", + "react-transition-group": "^4.4.5", + "recharts": "^2.3.2", + "sass": "^1.56.1", + "simplebar-react": "^2.4.3", + "sort-by": "^0.0.2", + "sweetalert2": "^11.4.8", + "swiper": "^8.4.5", + "uuidv4": "^6.2.13", + "yarn": "^1.22.19", + "yup": "^0.32.11" + }, + "devDependencies": { + "@faker-js/faker": "^8.0.2", + "@types/react": "^18.0.24", + "@types/react-dom": "^18.0.8", + "@vitejs/plugin-react": "^5.0.0", + "autoprefixer": "^10.4.13", + "miragejs": "^0.1.47", + "postcss": "^8.4.19", + "tailwindcss": "^3.2.4", + "vite": "^7.1.1" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ant-design/colors": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.1.tgz", + "integrity": "sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.24.0.tgz", + "integrity": "sha512-K4cYrJBsgvL+IoozUXYjbT6LHHNt+19a9zkvpBPxLjFHas1UpPM2A5MlhROb0BT8N8WoavM5VsP9MeSeNK/3mg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.3.4" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/cssinjs-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", + "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.0", + "@babel/runtime": "^7.23.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/fast-color": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", + "license": "MIT" + }, + "node_modules/@ant-design/react-slick": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.4", + "classnames": "^2.2.5", + "json2mq": "^0.2.0", + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": ">=16.9.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", + "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@coreui/coreui": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@coreui/coreui/-/coreui-5.4.0.tgz", + "integrity": "sha512-PtLossDHiU8Q7l/MDwaNjvpleDcPKDhkqvYGAhF+/rolZQteQFwjTx/7jD+v5c0YP+PHu9kmhrfTCaHMwK0UPA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/coreui" + } + ], + "license": "MIT", + "dependencies": { + "html-entities": "^2.6.0", + "html-to-md": "^0.8.8" + }, + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/@coreui/coreui-pro": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/@coreui/coreui-pro/-/coreui-pro-5.14.2.tgz", + "integrity": "sha512-WjZNLPKGe+VbCk4Jdzorwpd+h1xNaIk95mVHOS8as2ScFe2j7gtphP3SRpxr+n8+R6SsuKSFfp/CUfjk/JqtMA==", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "html-entities": "^2.6.0", + "html-to-md": "^0.8.8" + }, + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/@coreui/react": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@coreui/react/-/react-5.7.0.tgz", + "integrity": "sha512-iaR9VVCY9jKLhRWvM9evQ8hGaa74u+NuU3fRYfbC9sc2qgGrtUQXtG+IOnn+7C40kOwcswnnnp84cKRaoFZ+CQ==", + "license": "MIT", + "dependencies": { + "@coreui/coreui": "^5.4.0", + "@popperjs/core": "^2.11.8", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">=17", + "react-dom": ">=17" + } + }, + "node_modules/@coreui/react-pro": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@coreui/react-pro/-/react-pro-5.17.0.tgz", + "integrity": "sha512-W3hxa0ZI++A/Uoot+eZKtSjnTXZ+vRaBd4PEfSh4ncAa9eiEuh3jTs362ri5PkB/PzdQNHaeAqhNujWCHlHrFA==", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@coreui/coreui-pro": "^5.14.2", + "@popperjs/core": "^2.11.8", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">=17", + "react-dom": ">=17" + } + }, + "node_modules/@dnd-kit/accessibility": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", + "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/core": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", + "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", + "license": "MIT", + "dependencies": { + "@dnd-kit/accessibility": "^3.1.1", + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/modifiers": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-9.0.0.tgz", + "integrity": "sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==", + "license": "MIT", + "dependencies": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.3.0", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/utilities": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", + "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache/node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "license": "MIT" + }, + "node_modules/@emotion/cache/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "license": "MIT", + "optional": true + }, + "node_modules/@emotion/react": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.0.tgz", + "integrity": "sha512-ZSK3ZJsNkwfjT3JpDAWJZlrGD81Z3ytNDsxw1LKq1o+xkmO5pnWfr6gmCC8gHEFf3nSSX/09YrG67jybNPxSUw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/serialize/node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", + "license": "MIT" + }, + "node_modules/@emotion/serialize/node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "license": "MIT" + }, + "node_modules/@emotion/serialize/node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "license": "MIT" + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@faker-js/faker": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.0.2.tgz", + "integrity": "sha512-Uo3pGspElQW91PCvKSIAXoEgAUlRnH29sX2/p89kg7sP1m2PzCufHINd0FhTXQf6DYGiUlVncdSPa2F9wxed2A==", + "deprecated": "Please update to a newer version", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/fakerjs" + } + ], + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0", + "npm": ">=6.14.13" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz", + "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==", + "license": "MIT" + }, + "node_modules/@floating-ui/dom": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.8.tgz", + "integrity": "sha512-XLwhYV90MxiHDq6S0rzFZj00fnDM+A1R9jhSioZoMsa7G0Q0i+Q4x40ajR8FHSdYDE1bgjG45mIWe6jtv9UPmg==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.2.6" + } + }, + "node_modules/@fullcalendar/core": { + "version": "6.1.19", + "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.19.tgz", + "integrity": "sha512-z0aVlO5e4Wah6p6mouM0UEqtRf1MZZPt4mwzEyU6kusaNL+dlWQgAasF2cK23hwT4cmxkEmr4inULXgpyeExdQ==", + "license": "MIT", + "dependencies": { + "preact": "~10.12.1" + } + }, + "node_modules/@fullcalendar/daygrid": { + "version": "6.1.19", + "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.19.tgz", + "integrity": "sha512-IAAfnMICnVWPjpT4zi87i3FEw0xxSza0avqY/HedKEz+l5MTBYvCDPOWDATpzXoLut3aACsjktIyw9thvIcRYQ==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.19" + } + }, + "node_modules/@fullcalendar/interaction": { + "version": "6.1.19", + "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.19.tgz", + "integrity": "sha512-GOciy79xe8JMVp+1evAU3ytdwN/7tv35t5i1vFkifiuWcQMLC/JnLg/RA2s4sYmQwoYhTw/p4GLcP0gO5B3X5w==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.19" + } + }, + "node_modules/@fullcalendar/list": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/@fullcalendar/list/-/list-6.1.7.tgz", + "integrity": "sha512-Fl6jGKylhrk+g/RCISsv66vzpzjCFhd4r3nUDeHTAAE375OYGlVPKpH67YaKxpMrofj82JLIzS3JEzyQBZo0Cg==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.7" + } + }, + "node_modules/@fullcalendar/react": { + "version": "6.1.19", + "resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.19.tgz", + "integrity": "sha512-FP78vnyylaL/btZeHig8LQgfHgfwxLaIG6sKbNkzkPkKEACv11UyyBoTSkaavPsHtXvAkcTED1l7TOunAyPEnA==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.19", + "react": "^16.7.0 || ^17 || ^18 || ^19", + "react-dom": "^16.7.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/@fullcalendar/timegrid": { + "version": "6.1.19", + "resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-6.1.19.tgz", + "integrity": "sha512-OuzpUueyO9wB5OZ8rs7TWIoqvu4v3yEqdDxZ2VcsMldCpYJRiOe7yHWKr4ap5Tb0fs7Rjbserc/b6Nt7ol6BRg==", + "license": "MIT", + "dependencies": { + "@fullcalendar/daygrid": "~6.1.19" + }, + "peerDependencies": { + "@fullcalendar/core": "~6.1.19" + } + }, + "node_modules/@googlemaps/js-api-loader": { + "version": "1.16.8", + "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.8.tgz", + "integrity": "sha512-CROqqwfKotdO6EBjZO/gQGVTbeDps5V7Mt9+8+5Q+jTg5CRMi3Ii/L9PmV3USROrt2uWxtGzJHORmByxyo9pSQ==", + "license": "Apache-2.0" + }, + "node_modules/@googlemaps/markerclusterer": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.5.3.tgz", + "integrity": "sha512-x7lX0R5yYOoiNectr10wLgCBasNcXFHiADIBdmn7jQllF2B5ENQw5XtZK+hIw4xnV0Df0xhN4LN98XqA5jaiOw==", + "license": "Apache-2.0", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "supercluster": "^8.0.1" + } + }, + "node_modules/@headlessui/react": { + "version": "1.7.14", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.14.tgz", + "integrity": "sha512-znzdq9PG8rkwcu9oQ2FwIy0ZFtP9Z7ycS+BAqJ3R5EIqC/0bJGvhT7193rFf+45i9nnPsYvCQVW4V/bB9Xc+gA==", + "license": "MIT", + "dependencies": { + "client-only": "^0.0.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18" + } + }, + "node_modules/@hookform/resolvers": { + "version": "2.9.11", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-2.9.11.tgz", + "integrity": "sha512-bA3aZ79UgcHj7tFV7RlgThzwSSHZgvfbt2wprldRkYBcMopdMvHyO17Wwp/twcJasNFischFfS7oz8Katz8DdQ==", + "license": "MIT", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, + "node_modules/@iconify/react": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@iconify/react/-/react-4.1.0.tgz", + "integrity": "sha512-Mf72i3TNNKpKCKxmo7kzqyrUdCgaoljpqtWmtqpqwyxoV4ukhnDsSRNLhf2yBnqGr3cVZsdj/i0FMpXIY0Qk0g==", + "license": "MIT", + "dependencies": { + "@iconify/types": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/cyberalien" + }, + "peerDependencies": { + "react": ">=16" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@icons/material": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz", + "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "license": "Apache-2.0" + }, + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", + "license": "MIT" + }, + "node_modules/@miragejs/pretender-node-polyfill": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@miragejs/pretender-node-polyfill/-/pretender-node-polyfill-0.1.2.tgz", + "integrity": "sha512-M/BexG/p05C5lFfMunxo/QcgIJnMT2vDVCd00wNqK2ImZONIlEETZwWJu1QtLxtmYlSHlCFl3JNzp0tLe7OJ5g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rc-component/async-validator": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", + "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6", + "@babel/runtime": "^7.23.6", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/qrcode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.0.tgz", + "integrity": "sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz", + "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.0.tgz", + "integrity": "sha512-iwaxZyzOuK0D7lS+0AQEtW52zUWxoGqTGkke3dRyb8pYiShmRpCjB/8TzPI4R6YySCH7Vm9BZj/31VPiiQTLBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@react-dnd/asap": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz", + "integrity": "sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A==", + "license": "MIT" + }, + "node_modules/@react-dnd/invariant": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz", + "integrity": "sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw==", + "license": "MIT" + }, + "node_modules/@react-dnd/shallowequal": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz", + "integrity": "sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA==", + "license": "MIT" + }, + "node_modules/@react-google-maps/api": { + "version": "2.20.6", + "resolved": "https://registry.npmjs.org/@react-google-maps/api/-/api-2.20.6.tgz", + "integrity": "sha512-frxkSHWbd36ayyxrEVopSCDSgJUT1tVKXvQld2IyzU3UnDuqqNA3AZE4/fCdqQb2/zBQx3nrWnZB1wBXDcrjcw==", + "license": "MIT", + "dependencies": { + "@googlemaps/js-api-loader": "1.16.8", + "@googlemaps/markerclusterer": "2.5.3", + "@react-google-maps/infobox": "2.20.0", + "@react-google-maps/marker-clusterer": "2.20.0", + "@types/google.maps": "3.58.1", + "invariant": "2.2.4" + }, + "peerDependencies": { + "react": "^16.8 || ^17 || ^18 || ^19", + "react-dom": "^16.8 || ^17 || ^18 || ^19" + } + }, + "node_modules/@react-google-maps/infobox": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.20.0.tgz", + "integrity": "sha512-03PJHjohhaVLkX6+NHhlr8CIlvUxWaXhryqDjyaZ8iIqqix/nV8GFdz9O3m5OsjtxtNho09F/15j14yV0nuyLQ==", + "license": "MIT" + }, + "node_modules/@react-google-maps/marker-clusterer": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.20.0.tgz", + "integrity": "sha512-tieX9Va5w1yP88vMgfH1pHTacDQ9TgDTjox3tLlisKDXRQWdjw+QeVVghhf5XqqIxXHgPdcGwBvKY6UP+SIvLw==", + "license": "MIT" + }, + "node_modules/@react-leaflet/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz", + "integrity": "sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==", + "license": "Hippocratic-2.1", + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@react-spring/animated": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-10.0.3.tgz", + "integrity": "sha512-7MrxADV3vaUADn2V9iYhaIL6iOWRx9nCJjYrsk2AHD2kwPr6fg7Pt0v+deX5RnCDmCKNnD6W5fasiyM8D+wzJQ==", + "license": "MIT", + "dependencies": { + "@react-spring/shared": "~10.0.3", + "@react-spring/types": "~10.0.3" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-spring/core": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-10.0.3.tgz", + "integrity": "sha512-D4DwNO68oohDf/0HG2G0Uragzb9IA1oXblxrd6MZAcBcUQG2EHUWXewjdECMPLNmQvlYVyyBRH6gPxXM5DX7DQ==", + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~10.0.3", + "@react-spring/shared": "~10.0.3", + "@react-spring/types": "~10.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-spring/donate" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-spring/rafz": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-10.0.3.tgz", + "integrity": "sha512-Ri2/xqt8OnQ2iFKkxKMSF4Nqv0LSWnxXT4jXFzBDsHgeeH/cHxTLupAWUwmV9hAGgmEhBmh5aONtj3J6R/18wg==", + "license": "MIT" + }, + "node_modules/@react-spring/shared": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-10.0.3.tgz", + "integrity": "sha512-geCal66nrkaQzUVhPkGomylo+Jpd5VPK8tPMEDevQEfNSWAQP15swHm+MCRG4wVQrQlTi9lOzKzpRoTL3CA84Q==", + "license": "MIT", + "dependencies": { + "@react-spring/rafz": "~10.0.3", + "@react-spring/types": "~10.0.3" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-spring/types": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-10.0.3.tgz", + "integrity": "sha512-H5Ixkd2OuSIgHtxuHLTt7aJYfhMXKXT/rK32HPD/kSrOB6q6ooeiWAXkBy7L8F3ZxdkBb9ini9zP9UwnEFzWgQ==", + "license": "MIT" + }, + "node_modules/@react-spring/web": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-10.0.3.tgz", + "integrity": "sha512-ndU+kWY81rHsT7gTFtCJ6mrVhaJ6grFmgTnENipzmKqot4HGf5smPNK+cZZJqoGeDsj9ZsiWPW4geT/NyD484A==", + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~10.0.3", + "@react-spring/core": "~10.0.3", + "@react-spring/shared": "~10.0.3", + "@react-spring/types": "~10.0.3" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.5.tgz", + "integrity": "sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ==", + "license": "MIT", + "dependencies": { + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.0.2" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@remix-run/router": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.6.2.tgz", + "integrity": "sha512-LzqpSrMK/3JBAVBI9u3NWtOhWNw5AMQfrUFYB0+bDHTSw17z++WJLsPsxAuK+oSddsxk4d7F/JcdDPM1M5YAhA==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.30", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.30.tgz", + "integrity": "sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-replace": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.2.tgz", + "integrity": "sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.4.tgz", + "integrity": "sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.4.tgz", + "integrity": "sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz", + "integrity": "sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.4.tgz", + "integrity": "sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.4.tgz", + "integrity": "sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.4.tgz", + "integrity": "sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.4.tgz", + "integrity": "sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.4.tgz", + "integrity": "sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.4.tgz", + "integrity": "sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.4.tgz", + "integrity": "sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.4.tgz", + "integrity": "sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.4.tgz", + "integrity": "sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.4.tgz", + "integrity": "sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.4.tgz", + "integrity": "sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.4.tgz", + "integrity": "sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.4.tgz", + "integrity": "sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.4.tgz", + "integrity": "sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.4.tgz", + "integrity": "sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.4.tgz", + "integrity": "sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.4.tgz", + "integrity": "sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.4.tgz", + "integrity": "sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.4.tgz", + "integrity": "sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@south-paw/react-vector-maps": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@south-paw/react-vector-maps/-/react-vector-maps-3.2.0.tgz", + "integrity": "sha512-4Y88ZA8RuXxlBD7hgguVZjiTZsxvnN0Eheip/7YeM22B8hwae058C4Xx7Fi1PyIhOF5yWU/yXxyCMwFE7Awrwg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@svg-maps/world": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@svg-maps/world/-/world-1.0.1.tgz", + "integrity": "sha512-Mawh/jEYBBHnug9S17PyePLYKJ+Xd0Bbh96mCePebpbvcbJu5YKpfKhpyMeLFmmdWPrSFxl0f0MTsJfXU0gSaQ==", + "license": "CC-BY-4.0" + }, + "node_modules/@tippyjs/react": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/@tippyjs/react/-/react-4.2.6.tgz", + "integrity": "sha512-91RicDR+H7oDSyPycI13q3b7o4O60wa2oRbjlz2fyRLmHImc4vyDwuUP8NtZaN0VARJY5hybvDYrFzhY9+Lbyw==", + "license": "MIT", + "dependencies": { + "tippy.js": "^6.3.1" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/d3-array": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.0.4.tgz", + "integrity": "sha512-nwvEkG9vYOc0Ic7G7kwgviY4AQlTfYGIZ0fqB7CQHXGyYM6nO7kJh5EguSNA3jfh4rq7Sb7eMVq8isuvg2/miQ==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.0.tgz", + "integrity": "sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.0.tgz", + "integrity": "sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.3.tgz", + "integrity": "sha512-PATBiMCpvHJSMtZAMEhc2WyL+hnzarKzI6wAHYjhsonjWJYGq5BXTzQjv4l8m2jO183/4wZ90rKvSeT7o72xNQ==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.1.tgz", + "integrity": "sha512-6Uh86YFF7LGg4PQkuO2oG6EMBRLuW9cbavUW46zkIO5kuS2PfTqo2o9SkgtQzguBHbLgNnU90UNsITpsX1My+A==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.0.tgz", + "integrity": "sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/google.maps": { + "version": "3.58.1", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.58.1.tgz", + "integrity": "sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==", + "license": "MIT" + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "license": "MIT", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/lodash": { + "version": "4.14.194", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", + "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", + "license": "MIT" + }, + "node_modules/@types/lodash.memoize": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/lodash.memoize/-/lodash.memoize-4.1.7.tgz", + "integrity": "sha512-lGN7WeO4vO6sICVpf041Q7BX/9k1Y24Zo3FY0aUezr1QlKznpjzsDk3T3wvH8ofYzoK0QupN9TWcFAFZlyPwQQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz", + "integrity": "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.4.tgz", + "integrity": "sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-redux": { + "version": "7.1.25", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.25.tgz", + "integrity": "sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==", + "license": "MIT", + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", + "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", + "license": "MIT" + }, + "node_modules/@types/stylis": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==", + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "license": "MIT" + }, + "node_modules/@vis.gl/react-google-maps": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@vis.gl/react-google-maps/-/react-google-maps-1.5.2.tgz", + "integrity": "sha512-0Ypmde7M73GgV4TgcaUTNKXsbcXWToPVuawMNrVg7htXmhpEfLARHwhtmP6N1da3od195ZKC8ShXzC6Vm+zYHQ==", + "license": "MIT", + "dependencies": { + "@types/google.maps": "^3.54.10", + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "react": ">=16.8.0 || ^19.0 || ^19.0.0-rc", + "react-dom": ">=16.8.0 || ^19.0 || ^19.0.0-rc" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.0.tgz", + "integrity": "sha512-Jx9JfsTa05bYkS9xo0hkofp2dCmp1blrKjw9JONs5BTHOvJCgLbaPSuZLGSVJW6u2qe0tc4eevY0+gSNNi0YCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.30", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@vitejs/plugin-react-refresh": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-refresh/-/plugin-react-refresh-1.3.6.tgz", + "integrity": "sha512-iNR/UqhUOmFFxiezt0em9CgmiJBdWR+5jGxB2FihaoJfqGt76kiwaKoVOJVU5NYcDWMdN06LbyN2VIGIoYdsEA==", + "deprecated": "This package has been deprecated in favor of @vitejs/plugin-react", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.14.8", + "@babel/plugin-transform-react-jsx-self": "^7.14.5", + "@babel/plugin-transform-react-jsx-source": "^7.14.5", + "@rollup/pluginutils": "^4.1.1", + "react-refresh": "^0.10.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@vitejs/plugin-react-refresh/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "license": "MIT", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@vitejs/plugin-react-refresh/node_modules/react-refresh": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.10.0.tgz", + "integrity": "sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@wojtekmaj/date-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@wojtekmaj/date-utils/-/date-utils-1.1.3.tgz", + "integrity": "sha512-rHrDuTl1cx5LYo8F4K4HVauVjwzx4LwrKfEk4br4fj4nK8JjJZ8IG6a6pBHkYmPLBQHCOEDwstb0WNXMGsmdOw==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/date-utils?sponsor=1" + } + }, + "node_modules/antd": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.27.1.tgz", + "integrity": "sha512-jGMSdBN7hAMvPV27B4RhzZfL6n6yu8yDbo7oXrlJasaOqB7bSDPcjdEy1kXy3JPsny/Qazb1ykzRI4EfcByAPQ==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.2.1", + "@ant-design/cssinjs": "^1.23.0", + "@ant-design/cssinjs-utils": "^1.1.3", + "@ant-design/fast-color": "^2.0.6", + "@ant-design/icons": "^5.6.1", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.26.0", + "@rc-component/color-picker": "~2.0.1", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/qrcode": "~1.0.0", + "@rc-component/tour": "~1.15.1", + "@rc-component/trigger": "^2.3.0", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.11", + "rc-cascader": "~3.34.0", + "rc-checkbox": "~3.5.0", + "rc-collapse": "~3.9.0", + "rc-dialog": "~9.6.0", + "rc-drawer": "~7.3.0", + "rc-dropdown": "~4.2.1", + "rc-field-form": "~2.7.0", + "rc-image": "~7.12.0", + "rc-input": "~1.8.0", + "rc-input-number": "~9.5.0", + "rc-mentions": "~2.20.0", + "rc-menu": "~9.16.1", + "rc-motion": "^2.9.5", + "rc-notification": "~5.6.4", + "rc-pagination": "~5.1.0", + "rc-picker": "~4.11.3", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.1", + "rc-resize-observer": "^1.4.3", + "rc-segmented": "~2.7.0", + "rc-select": "~14.16.8", + "rc-slider": "~11.1.8", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.51.1", + "rc-tabs": "~15.7.0", + "rc-textarea": "~1.10.2", + "rc-tooltip": "~6.4.0", + "rc-tree": "~5.13.1", + "rc-tree-select": "~5.27.0", + "rc-upload": "~4.9.2", + "rc-util": "^5.44.4", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apexcharts": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.40.0.tgz", + "integrity": "sha512-dSi3BUfCJkFd67uFp+xffrJVd3lDT7AAUUyRp0qPYiglJ76CeZLddVhM3FAk1P9GCzf8VewqGYUPCYQvXm+b9A==", + "license": "MIT", + "dependencies": { + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/attr-accept": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", + "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", + "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/can-use-dom": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz", + "integrity": "sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ==", + "license": "MIT" + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001717", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", + "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/chart.js": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.3.0.tgz", + "integrity": "sha512-ynG0E79xGfMaV2xAHdbhwiPLczxnNNnasrmPEXriXsPJGjmhOBYzFVEsB65w2qMDz+CaBJJuJD0inE/ab/h36g==", + "license": "MIT", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=7" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/cleave.js": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/cleave.js/-/cleave.js-1.6.0.tgz", + "integrity": "sha512-ivqesy3j5hQVG3gywPfwKPbi/7ZSftY/UNp5uphnqjr25yI2CP8FS2ODQPzuLXXnNLi29e2+PgPkkiKUXLs/Nw==", + "license": "Apache-2.0" + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/core-js": { + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz", + "integrity": "sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "license": "MIT" + }, + "node_modules/css-box-model": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", + "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "license": "MIT", + "dependencies": { + "tiny-invariant": "^1.0.6" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==", + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/d3-array": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.3.tgz", + "integrity": "sha512-JRHwbQQ84XuAESWhvIPaUV4/1UYTBOLiOPGWqgFDHZS1D5QN9c57FbH3QpEnQMYiOXNzKUQyGTZf+EVO7RT5TQ==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dnd-core": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-16.0.1.tgz", + "integrity": "sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng==", + "license": "MIT", + "dependencies": { + "@react-dnd/asap": "^5.0.1", + "@react-dnd/invariant": "^4.0.1", + "redux": "^4.2.0" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom7": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.6.tgz", + "integrity": "sha512-emjdpPLhpNubapLFdjNL9tP06Sr+GZkrIHEXLWvOGsytACUrkbeIdjO5g77m00BrHTznnlcNqgmn7pCN192TBA==", + "license": "MIT", + "dependencies": { + "ssr-window": "^4.0.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.151", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.151.tgz", + "integrity": "sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==", + "license": "ISC" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/fake-xml-http-request": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fake-xml-http-request/-/fake-xml-http-request-2.1.2.tgz", + "integrity": "sha512-HaFMBi7r+oEC9iJNpc3bvcW7Z7iLmM26hPDmlb0mFwyANSsOQAtJxbdWsXITKOzZUyMYK0zYCv3h5yDj9TsiXg==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "license": "Apache-2.0" + }, + "node_modules/fast-equals": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", + "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-selector": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", + "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "node_modules/flatpickr": { + "version": "4.6.13", + "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz", + "integrity": "sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==", + "license": "MIT" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/framer-motion": { + "version": "10.12.12", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.12.12.tgz", + "integrity": "sha512-DDCqp60U6hR7aUrXj/BXc/t0Sd/U4ep6w/NZQkw898K+u7s+Vv/P8yxq4WTNA86kU9QCsqOgn1Qhz2DpYK0Oag==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-user-locale": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/get-user-locale/-/get-user-locale-2.2.1.tgz", + "integrity": "sha512-3814zipTZ2MvczOcppEXB3jXu+0HWwj5WmPI6//SeCnUIUaRXu7W4S54eQZTEPadlMZefE+jAlPOn+zY3tD4Qw==", + "license": "MIT", + "dependencies": { + "@types/lodash.memoize": "^4.1.7", + "lodash.memoize": "^4.1.1" + }, + "funding": { + "url": "https://github.com/wojtekmaj/get-user-locale?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-to-md": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/html-to-md/-/html-to-md-0.8.8.tgz", + "integrity": "sha512-lgK3KKagobOguNi1XOfNaTtFSsjySir1CPfzewzVUjFM4x0RASnyZu47Hoe9nStpWFwpOwIrdxXzhxLIRbWllQ==", + "license": "MIT" + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz", + "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflected": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz", + "integrity": "sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==", + "dev": true, + "license": "MIT" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "license": "MIT", + "dependencies": { + "string-convert": "^0.2.0" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", + "license": "ISC" + }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, + "node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "license": "Apache-2.0", + "dependencies": { + "lie": "3.1.1" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.507.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.507.0.tgz", + "integrity": "sha512-XfgE6gvAHwAtnbUvWiTTHx4S3VGR+cUJHEc0vrh9Ogu672I1Tue2+Cp/8JJqpytgcBHAB1FVI297W4XGNwc2dQ==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/match-sorter": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz", + "integrity": "sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "remove-accents": "0.4.2" + } + }, + "node_modules/material-colors": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==", + "license": "ISC" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/miragejs": { + "version": "0.1.48", + "resolved": "https://registry.npmjs.org/miragejs/-/miragejs-0.1.48.tgz", + "integrity": "sha512-MGZAq0Q3OuRYgZKvlB69z4gLN4G3PvgC4A2zhkCXCXrLD5wm2cCnwNB59xOBVA+srZ0zEes6u+VylcPIkB4SqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@miragejs/pretender-node-polyfill": "^0.1.0", + "inflected": "^2.0.4", + "lodash": "^4.0.0", + "pretender": "^3.4.7" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoclone": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", + "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT", + "optional": true + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/organization-chart-react": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/organization-chart-react/-/organization-chart-react-1.1.2.tgz", + "integrity": "sha512-oq8LbPpYrqRFmtIOXSwfSEHTS5LB+Ya+UiEWNKkoaESH2EsCivPWIH3qX/bvf4d9qW58CMYpfUF2dWYace0KGg==", + "license": "MIT", + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, + "node_modules/parchment": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-3.0.0.tgz", + "integrity": "sha512-HUrJFQ/StvgmXRcQ1ftY6VEZUq3jA2t9ncFN4F84J/vN0/FPpQF+8FKXb3l6fLces6q0uOHj6NJn+2xvZnxO6A==", + "license": "BSD-3-Clause" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/preact": { + "version": "10.12.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz", + "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/pretender": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/pretender/-/pretender-3.4.7.tgz", + "integrity": "sha512-jkPAvt1BfRi0RKamweJdEcnjkeu7Es8yix3bJ+KgBC5VpG/Ln4JE3hYN6vJym4qprm8Xo5adhWpm3HCoft1dOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fake-xml-http-request": "^2.1.2", + "route-recognizer": "^0.3.3" + } + }, + "node_modules/primereact": { + "version": "10.9.6", + "resolved": "https://registry.npmjs.org/primereact/-/primereact-10.9.6.tgz", + "integrity": "sha512-0Jjz/KzfUURSHaPTXJwjL2Dc7CDPnbO17MivyJz7T5smGAMLY5d+IqpQhV61R22G/rDmhMh3+32LCNva2M8fRw==", + "license": "MIT", + "dependencies": { + "@types/react-transition-group": "^4.4.1", + "react-transition-group": "^4.4.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-expr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", + "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==", + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quill": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/quill/-/quill-2.0.3.tgz", + "integrity": "sha512-xEYQBqfYx/sfb33VJiKnSJp8ehloavImQ2A6564GAbqG55PGw1dAWUn1MUbQB62t0azawUS2CZZhWCjO8gRvTw==", + "license": "BSD-3-Clause", + "dependencies": { + "eventemitter3": "^5.0.1", + "lodash-es": "^4.17.21", + "parchment": "^3.0.0", + "quill-delta": "^5.1.0" + }, + "engines": { + "npm": ">=8.2.3" + } + }, + "node_modules/quill-delta": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-5.1.0.tgz", + "integrity": "sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==", + "license": "MIT", + "dependencies": { + "fast-diff": "^1.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.isequal": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/raf-schd": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", + "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==", + "license": "MIT" + }, + "node_modules/rc-cascader": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.34.0.tgz", + "integrity": "sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "^2.3.1", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-checkbox": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz", + "integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.25.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-collapse": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz", + "integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.3.4", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dialog": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz", + "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", + "classnames": "^2.2.6", + "rc-motion": "^2.3.0", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-drawer": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.3.0.tgz", + "integrity": "sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz", + "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-util": "^5.44.1" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.0.tgz", + "integrity": "sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/async-validator": "^5.0.3", + "rc-util": "^5.32.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-image": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.12.0.tgz", + "integrity": "sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.6.0", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-input": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.8.0.tgz", + "integrity": "sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-input-number": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.5.0.tgz", + "integrity": "sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.8.0", + "rc-util": "^5.40.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.20.0.tgz", + "integrity": "sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-input": "~1.8.0", + "rc-menu": "~9.16.0", + "rc-textarea": "~1.10.0", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.16.1", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz", + "integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz", + "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.44.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.4.tgz", + "integrity": "sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.9.0", + "rc-util": "^5.20.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.4.1.tgz", + "integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-pagination": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz", + "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.3.tgz", + "integrity": "sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-progress": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.6", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-rate": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz", + "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.0.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz", + "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.44.1", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.0.tgz", + "integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-select": { + "version": "14.16.8", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz", + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "11.1.8", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.8.tgz", + "integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-steps": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.16.7", + "classnames": "^2.2.3", + "rc-util": "^5.16.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-switch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0", + "classnames": "^2.2.1", + "rc-util": "^5.30.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-table": { + "version": "7.51.1", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.51.1.tgz", + "integrity": "sha512-5iq15mTHhvC42TlBLRCoCBLoCmGlbRZAlyF21FonFnS/DIC8DeRqnmdyVREwt2CFbPceM0zSNdEeVfiGaqYsKw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.44.3", + "rc-virtual-list": "^3.14.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.7.0.tgz", + "integrity": "sha512-ZepiE+6fmozYdWf/9gVp7k56PKHB1YYoDsKeQA1CBlJ/POIhjkcYiv0AGP0w2Jhzftd3AVvZP/K+V+Lpi2ankA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.16.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.34.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-textarea": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.10.2.tgz", + "integrity": "sha512-HfaeXiaSlpiSp0I/pvWpecFEHpVysZ9tpDLNkxQbMvMz6gsr7aVZ7FpWP9kt4t7DB+jJXesYS0us1uPZnlRnwQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.8.0", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz", + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1", + "rc-util": "^5.44.3" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz", + "integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-tree-select": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz", + "integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "2.x", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-upload": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.9.2.tgz", + "integrity": "sha512-nHx+9rbd1FKMiMRYsqQ3NkXUv7COHPBo3X1Obwq9SWS6/diF/A0aJ5OHubvwUAIDs+4RMleljV0pcrNUc823GQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.5", + "rc-util": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util": { + "version": "5.44.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz", + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/rc-virtual-list": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.19.1.tgz", + "integrity": "sha512-DCapO2oyPqmooGhxBuXHM4lFuX+sshQwWqqkuyFA+4rShLe//+GEPVwiDgO+jKtKHtbeYwZoNvetwfHdOf+iUQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-apexcharts": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.4.0.tgz", + "integrity": "sha512-DrcMV4aAMrUG+n6412yzyATWEyCDWlpPBBhVbpzBC4PDeuYU6iF84SmExbck+jx5MUm4U5PM3/T307Mc3kzc9Q==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.5.7" + }, + "peerDependencies": { + "apexcharts": "^3.18.0", + "react": ">=0.13" + } + }, + "node_modules/react-beautiful-dnd": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz", + "integrity": "sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==", + "deprecated": "react-beautiful-dnd is now deprecated. Context and options: https://github.com/atlassian/react-beautiful-dnd/issues/2672", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.9.2", + "css-box-model": "^1.2.0", + "memoize-one": "^5.1.1", + "raf-schd": "^4.0.2", + "react-redux": "^7.2.0", + "redux": "^4.0.4", + "use-memo-one": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.5 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.5 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-beautiful-dnd/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, + "node_modules/react-beautiful-dnd/node_modules/react-redux": { + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", + "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-calendar": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-4.2.1.tgz", + "integrity": "sha512-T5oKXD+KLy/g6bmJJkZ7E9wj0iRMesWMZcrC7q2kI6ybOsu9NlPQx8uXJzG4A4C3Sh5Xi0deznyzWIVsUpF8tA==", + "license": "MIT", + "dependencies": { + "@types/react": "*", + "@wojtekmaj/date-utils": "^1.1.3", + "clsx": "^1.2.1", + "get-user-locale": "^2.2.1", + "prop-types": "^15.6.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/react-calendar?sponsor=1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-chartjs-2": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.2.0.tgz", + "integrity": "sha512-98iN5aguJyVSxp5U3CblRLH67J8gkfyGNbiK3c+l1QI/G4irHMPQw44aEPmjVag+YKTyQ260NcF82GTQ3bdscA==", + "license": "MIT", + "peerDependencies": { + "chart.js": "^4.1.1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-collapse": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-collapse/-/react-collapse-5.1.1.tgz", + "integrity": "sha512-k6cd7csF1o9LBhQ4AGBIdxB60SUEUMQDAnL2z1YvYNr9KoKr+nDkhN6FK7uGaBd/rYrYfrMpzpmJEIeHRYogBw==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.3.0" + } + }, + "node_modules/react-color": { + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.19.3.tgz", + "integrity": "sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==", + "license": "MIT", + "dependencies": { + "@icons/material": "^0.2.4", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15", + "material-colors": "^1.2.1", + "prop-types": "^15.5.10", + "reactcss": "^1.2.0", + "tinycolor2": "^1.4.1" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-colorful": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", + "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/react-csv": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-csv/-/react-csv-2.2.2.tgz", + "integrity": "sha512-RG5hOcZKZFigIGE8LxIEV/OgS1vigFQT4EkaHeKgyuCbUAu9Nbd/1RYq++bJcJJ9VOqO/n9TZRADsXNDR4VEpw==", + "license": "MIT" + }, + "node_modules/react-data-table-component": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/react-data-table-component/-/react-data-table-component-7.7.0.tgz", + "integrity": "sha512-5knL6zMSKlbvzu9P04KM5Lx8/EyQujb4I9z3rWeoVX++IDJadQ7aR4X5J6EeS90wjK0Xoa6btaVeglnCAqD2ag==", + "license": "Apache-2.0", + "dependencies": { + "deepmerge": "^4.3.1" + }, + "peerDependencies": { + "react": ">= 17.0.0", + "styled-components": ">= 5.0.0" + }, + "peerDependenciesMeta": { + "styled-components": { + "optional": false + } + } + }, + "node_modules/react-dnd": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-16.0.1.tgz", + "integrity": "sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==", + "license": "MIT", + "dependencies": { + "@react-dnd/invariant": "^4.0.1", + "@react-dnd/shallowequal": "^4.0.1", + "dnd-core": "^16.0.1", + "fast-deep-equal": "^3.1.3", + "hoist-non-react-statics": "^3.3.2" + }, + "peerDependencies": { + "@types/hoist-non-react-statics": ">= 3.3.1", + "@types/node": ">= 12", + "@types/react": ">= 16", + "react": ">= 16.14" + }, + "peerDependenciesMeta": { + "@types/hoist-non-react-statics": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-dnd-html5-backend": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz", + "integrity": "sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==", + "license": "MIT", + "dependencies": { + "dnd-core": "^16.0.1" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-dropzone": { + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz", + "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==", + "license": "MIT", + "dependencies": { + "attr-accept": "^2.2.2", + "file-selector": "^0.6.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "react": ">= 16.8 || 18.0.0" + } + }, + "node_modules/react-flatpickr": { + "version": "3.10.13", + "resolved": "https://registry.npmjs.org/react-flatpickr/-/react-flatpickr-3.10.13.tgz", + "integrity": "sha512-4m+K1K8jhvRFI8J/AHmQfA5hLALzhebEtEK8mLevXjX24MV3u502crzBn+EGFIBOfNUtrL5PId9FsGwgtuz/og==", + "license": "MIT", + "dependencies": { + "flatpickr": "^4.6.2", + "prop-types": "^15.5.10" + }, + "peerDependencies": { + "react": ">=16, <=18" + } + }, + "node_modules/react-hook-form": { + "version": "7.43.9", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.43.9.tgz", + "integrity": "sha512-AUDN3Pz2NSeoxQ7Hs6OhQhDr6gtF9YRuutGDwPQqhSUAHJSgGl2VeY3qN19MG0SucpjgDiuMJ4iC5T5uB+eaNQ==", + "license": "MIT", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/react-icons": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz", + "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-leaflet": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz", + "integrity": "sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==", + "license": "Hippocratic-2.1", + "dependencies": { + "@react-leaflet/core": "^2.1.0" + }, + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "license": "MIT" + }, + "node_modules/react-redux": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz", + "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.1", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/use-sync-external-store": "^0.0.3", + "hoist-non-react-statics": "^3.3.2", + "react-is": "^18.0.0", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^16.8 || ^17.0 || ^18.0", + "@types/react-dom": "^16.8 || ^17.0 || ^18.0", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0", + "react-native": ">=0.59", + "redux": "^4" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-redux/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-resize-detector": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-8.1.0.tgz", + "integrity": "sha512-S7szxlaIuiy5UqLhLL1KY3aoyGHbZzsTpYal9eYMwCyKqoqoVLCmIgAgNyIM1FhnP2KyBygASJxdhejrzjMb+w==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-router": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.11.2.tgz", + "integrity": "sha512-74z9xUSaSX07t3LM+pS6Un0T55ibUE/79CzfZpy5wsPDZaea1F8QkrsiyRnA2YQ7LwE/umaydzXZV80iDCPkMg==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.6.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.11.2.tgz", + "integrity": "sha512-JNbKtAeh1VSJQnH6RvBDNhxNwemRj7KxCzc5jb7zvDSKRnPWIFj9pO+eXqjM69gQJ0r46hSz1x4l9y0651DKWw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.6.2", + "react-router": "6.11.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-select": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.7.3.tgz", + "integrity": "sha512-z8i3NCuFFWL3w27xq92rBkVI2onT0jzIIPe480HlBjXJ3b5o6Q+Clp4ydyeKrj9DZZ3lrjawwLC5NGl0FSvUDg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.0", + "@emotion/cache": "^11.4.0", + "@emotion/react": "^11.8.1", + "@floating-ui/dom": "^1.0.1", + "@types/react-transition-group": "^4.4.0", + "memoize-one": "^6.0.0", + "prop-types": "^15.6.0", + "react-transition-group": "^4.3.0", + "use-isomorphic-layout-effect": "^1.1.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-select/node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" + }, + "node_modules/react-smooth": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.3.tgz", + "integrity": "sha512-yl4y3XiMorss7ayF5QnBiSprig0+qFHui8uh7Hgg46QX5O+aRMRKlfGGNGLHno35JkQSvSYY8eCWkBfHfrSHfg==", + "license": "MIT", + "dependencies": { + "fast-equals": "^5.0.0", + "react-transition-group": "2.9.0" + }, + "peerDependencies": { + "prop-types": "^15.6.0", + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-smooth/node_modules/dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/react-smooth/node_modules/react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "license": "BSD-3-Clause", + "dependencies": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0", + "react-dom": ">=15.0.0" + } + }, + "node_modules/react-table": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/react-table/-/react-table-7.8.0.tgz", + "integrity": "sha512-hNaz4ygkZO4bESeFfnfOft73iBUj8K5oKi1EcSHPAibEydfsX2MyU6Z8KCr3mv3C9Kqqh71U+DhZkFvibbnPbA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17.0.0-0 || ^18.0.0" + } + }, + "node_modules/react-tailwindcss-datepicker": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/react-tailwindcss-datepicker/-/react-tailwindcss-datepicker-1.6.1.tgz", + "integrity": "sha512-MJlwOquIeuQCS5QEHyOIRTCKabgBKZinJrglE+nTtrw45GzY+80mbR0zzM9FUBbWyTNCWg2/IsDzxYyeG9tNNA==", + "license": "MIT", + "peerDependencies": { + "dayjs": "^1.11.6", + "react": "^17.0.2 || ^18.2.0" + } + }, + "node_modules/react-toastify": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-9.1.3.tgz", + "integrity": "sha512-fPfb8ghtn/XMxw3LkxQBk3IyagNpF/LIKjOBflbexr2AWxAH1MJgvnESwEwBn9liLFXgTKWgBSdZpw9m4OTHTg==", + "license": "MIT", + "dependencies": { + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/reactcss": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", + "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", + "license": "MIT", + "dependencies": { + "lodash": "^4.0.1" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/recharts": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.6.2.tgz", + "integrity": "sha512-dVhNfgI21LlF+4AesO3mj+i+9YdAAjoGaDWIctUgH/G2iy14YVtb/DSUeic77xr19rbKCiq+pQGfeg2kJQDHig==", + "license": "MIT", + "dependencies": { + "classnames": "^2.2.5", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.19", + "react-is": "^16.10.2", + "react-resize-detector": "^8.0.4", + "react-smooth": "^2.0.2", + "recharts-scale": "^0.4.4", + "reduce-css-calc": "^2.1.8", + "victory-vendor": "^36.6.8" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "prop-types": "^15.6.0", + "react": "^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/recharts-scale": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "license": "MIT", + "dependencies": { + "decimal.js-light": "^2.4.1" + } + }, + "node_modules/recharts/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/reduce-css-calc": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", + "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", + "license": "MIT", + "dependencies": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/reduce-css-calc/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "license": "MIT" + }, + "node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "license": "MIT", + "peerDependencies": { + "redux": "^4" + } + }, + "node_modules/remove-accents": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", + "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==", + "license": "MIT" + }, + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", + "license": "MIT" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/route-recognizer": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/route-recognizer/-/route-recognizer-0.3.4.tgz", + "integrity": "sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sass": { + "version": "1.90.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.90.0.tgz", + "integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==", + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT", + "peer": true + }, + "node_modules/simplebar": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-5.3.9.tgz", + "integrity": "sha512-1vIIpjDvY9sVH14e0LGeiCiTFU3ILqAghzO6OI9axeG+mvU/vMSrvXeAXkBolqFFz3XYaY8n5ahH9MeP3sp2Ag==", + "license": "MIT", + "dependencies": { + "@juggle/resize-observer": "^3.3.1", + "can-use-dom": "^0.1.0", + "core-js": "^3.0.1", + "lodash.debounce": "^4.0.8", + "lodash.memoize": "^4.1.2", + "lodash.throttle": "^4.1.1" + } + }, + "node_modules/simplebar-react": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-2.4.3.tgz", + "integrity": "sha512-Ep8gqAUZAS5IC2lT5RE4t1ZFUIVACqbrSRQvFV9a6NbVUzXzOMnc4P82Hl8Ak77AnPQvmgUwZS7aUKLyBoMAcg==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.6.1", + "simplebar": "^5.3.9" + }, + "peerDependencies": { + "react": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0 || ^18.0.0", + "react-dom": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0 || ^18.0.0" + } + }, + "node_modules/sort-by": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sort-by/-/sort-by-0.0.2.tgz", + "integrity": "sha512-iOX5oHA4a0eqTMFiWrHYqv924UeRKFBLhym7iwSVG37Egg2wApgZKAjyzM9WZjMwKv6+8Zi+nIaJ7FYsO9EkoA==", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssr-window": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.2.tgz", + "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==", + "license": "MIT" + }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==", + "license": "MIT" + }, + "node_modules/styled-components": { + "version": "6.1.18", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.18.tgz", + "integrity": "sha512-Mvf3gJFzZCkhjY2Y/Fx9z1m3dxbza0uI9H1CbNZm/jSHCojzJhQ0R7bByrlFJINnMzz/gPulpoFFGymNwrsMcw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@emotion/is-prop-valid": "1.2.2", + "@emotion/unitless": "0.8.1", + "@types/stylis": "4.2.5", + "css-to-react-native": "3.2.0", + "csstype": "3.1.3", + "postcss": "8.4.49", + "shallowequal": "1.1.0", + "stylis": "4.3.2", + "tslib": "2.6.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/styled-components/node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "license": "MIT", + "peer": true + }, + "node_modules/styled-components/node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "license": "MIT", + "peer": true + }, + "node_modules/styled-components/node_modules/stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", + "license": "MIT", + "peer": true + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", + "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "license": "ISC", + "dependencies": { + "kdbush": "^4.0.2" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==", + "license": "MIT", + "dependencies": { + "svg.js": ">=2.3.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==", + "license": "MIT" + }, + "node_modules/svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js/node_modules/svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.6.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/sweetalert2": { + "version": "11.22.4", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.22.4.tgz", + "integrity": "sha512-JwcRODfozxiKmspFp+xctZ2izAmLAKbRPcoLMEW7LdugN/YmNrX1LT7hdBW87qsgupEO1ukBBuB17KzKFKW0tg==", + "license": "MIT", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/limonte" + } + }, + "node_modules/swiper": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-8.4.7.tgz", + "integrity": "sha512-VwO/KU3i9IV2Sf+W2NqyzwWob4yX9Qdedq6vBtS0rFqJ6Fa5iLUJwxQkuD4I38w0WDJwmFl8ojkdcRFPHWD+2g==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "dom7": "^4.0.4", + "ssr-window": "^4.0.2" + }, + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/tailwindcss": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz", + "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throttle-debounce": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", + "license": "MIT", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", + "license": "MIT" + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tippy.js": { + "version": "6.3.7", + "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", + "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", + "license": "MIT" + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "license": "0BSD" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-memo-one": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", + "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/uuidv4": { + "version": "6.2.13", + "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.13.tgz", + "integrity": "sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "@types/uuid": "8.3.4", + "uuid": "8.3.2" + } + }, + "node_modules/victory-vendor": { + "version": "36.6.10", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.6.10.tgz", + "integrity": "sha512-7YqYGtsA4mByokBhCjk+ewwPhUfzhR1I3Da6/ZsZUv/31ceT77RKoaqrxRq5Ki+9we4uzf7+A+7aG2sfYhm7nA==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/vite": { + "version": "7.1.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.10.tgz", + "integrity": "sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vite/node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/vite/node_modules/rollup": { + "version": "4.52.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz", + "integrity": "sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.52.4", + "@rollup/rollup-android-arm64": "4.52.4", + "@rollup/rollup-darwin-arm64": "4.52.4", + "@rollup/rollup-darwin-x64": "4.52.4", + "@rollup/rollup-freebsd-arm64": "4.52.4", + "@rollup/rollup-freebsd-x64": "4.52.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.52.4", + "@rollup/rollup-linux-arm-musleabihf": "4.52.4", + "@rollup/rollup-linux-arm64-gnu": "4.52.4", + "@rollup/rollup-linux-arm64-musl": "4.52.4", + "@rollup/rollup-linux-loong64-gnu": "4.52.4", + "@rollup/rollup-linux-ppc64-gnu": "4.52.4", + "@rollup/rollup-linux-riscv64-gnu": "4.52.4", + "@rollup/rollup-linux-riscv64-musl": "4.52.4", + "@rollup/rollup-linux-s390x-gnu": "4.52.4", + "@rollup/rollup-linux-x64-gnu": "4.52.4", + "@rollup/rollup-linux-x64-musl": "4.52.4", + "@rollup/rollup-openharmony-arm64": "4.52.4", + "@rollup/rollup-win32-arm64-msvc": "4.52.4", + "@rollup/rollup-win32-ia32-msvc": "4.52.4", + "@rollup/rollup-win32-x64-gnu": "4.52.4", + "@rollup/rollup-win32-x64-msvc": "4.52.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, + "node_modules/yarn": { + "version": "1.22.19", + "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.19.tgz", + "integrity": "sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ==", + "hasInstallScript": true, + "license": "BSD-2-Clause", + "bin": { + "yarn": "bin/yarn.js", + "yarnpkg": "bin/yarn.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/yup": { + "version": "0.32.11", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz", + "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/lodash": "^4.14.175", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5ea8728 --- /dev/null +++ b/package.json @@ -0,0 +1,103 @@ +{ + "name": "dashkit-react-kitp", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "build:cms": "vite build", + "preview": "vite preview", + "preview:cms": "vite preview --port 3000", + "deploy:cms": "npm run build:cms && echo 'Build completed. Files are in dist/cms folder.'" + }, + "dependencies": { + "@coreui/coreui": "^5.4.0", + "@coreui/coreui-pro": "^5.14.2", + "@coreui/react": "^5.7.0", + "@coreui/react-pro": "^5.17.0", + "@dnd-kit/core": "^6.3.1", + "@dnd-kit/modifiers": "^9.0.0", + "@fullcalendar/core": "^6.1.4", + "@fullcalendar/daygrid": "^6.1.19", + "@fullcalendar/interaction": "^6.1.19", + "@fullcalendar/list": "^6.1.4", + "@fullcalendar/react": "^6.1.19", + "@fullcalendar/timegrid": "^6.1.19", + "@headlessui/react": "^1.7.4", + "@hookform/resolvers": "^2.9.10", + "@iconify/react": "^4.0.0", + "@react-google-maps/api": "^2.20.6", + "@react-spring/web": "^10.0.3", + "@reduxjs/toolkit": "^1.9.0", + "@rollup/plugin-replace": "^5.0.2", + "@south-paw/react-vector-maps": "^3.2.0", + "@svg-maps/world": "^1.0.1", + "@tippyjs/react": "^4.2.6", + "@vis.gl/react-google-maps": "^1.5.2", + "@vitejs/plugin-react-refresh": "^1.3.6", + "antd": "^5.27.1", + "apexcharts": "^3.36.3", + "axios": "^1.10.0", + "blueimp-md5": "^2.19.0", + "chart.js": "^4.2.0", + "cleave.js": "^1.6.0", + "crypto-js": "^4.2.0", + "d3-array": "^3.2.2", + "dayjs": "^1.11.7", + "framer-motion": "^10.12.12", + "leaflet": "^1.9.3", + "localforage": "^1.10.0", + "lucide-react": "^0.507.0", + "match-sorter": "^6.3.1", + "md5": "^2.3.0", + "organization-chart-react": "^1.1.2", + "primereact": "^10.9.6", + "quill": "^2.0.3", + "react": "^18.2.0", + "react-apexcharts": "^1.4.0", + "react-beautiful-dnd": "^13.1.1", + "react-calendar": "^4.0.0", + "react-chartjs-2": "^5.2.0", + "react-collapse": "^5.1.1", + "react-color": "^2.19.3", + "react-colorful": "^5.6.1", + "react-csv": "^2.2.2", + "react-data-table-component": "^7.7.0", + "react-dnd": "^16.0.1", + "react-dnd-html5-backend": "^16.0.1", + "react-dom": "^18.2.0", + "react-dropzone": "^14.2.3", + "react-flatpickr": "^3.10.13", + "react-hook-form": "^7.39.5", + "react-icons": "^5.5.0", + "react-leaflet": "^4.2.0", + "react-redux": "^8.0.5", + "react-router-dom": "^6.4.3", + "react-select": "^5.7.0", + "react-table": "^7.8.0", + "react-tailwindcss-datepicker": "^1.4.2", + "react-toastify": "^9.1.3", + "react-transition-group": "^4.4.5", + "recharts": "^2.3.2", + "sass": "^1.56.1", + "simplebar-react": "^2.4.3", + "sort-by": "^0.0.2", + "sweetalert2": "^11.4.8", + "swiper": "^8.4.5", + "uuidv4": "^6.2.13", + "yarn": "^1.22.19", + "yup": "^0.32.11" + }, + "devDependencies": { + "@faker-js/faker": "^8.0.2", + "@types/react": "^18.0.24", + "@types/react-dom": "^18.0.8", + "@vitejs/plugin-react": "^5.0.0", + "autoprefixer": "^10.4.13", + "miragejs": "^0.1.47", + "postcss": "^8.4.19", + "tailwindcss": "^3.2.4", + "vite": "^7.1.1" + } +} diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..d163098 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,10 @@ + + RewriteEngine On + + # Serve existing files directly + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + + # Redirect everything to index.html + RewriteRule ^ index.html [L] + \ No newline at end of file diff --git a/public/notification.mp3 b/public/notification.mp3 new file mode 100644 index 0000000..6a02b91 Binary files /dev/null and b/public/notification.mp3 differ diff --git a/public/traveloka.mp3 b/public/traveloka.mp3 new file mode 100644 index 0000000..d2c00cb Binary files /dev/null and b/public/traveloka.mp3 differ diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..d3bae74 --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,262 @@ +import React, { lazy, Suspense, useEffect } from "react"; +import { Routes, Route, Navigate, useNavigate } from "react-router-dom"; +import { useSelector } from 'react-redux'; +// import { toast } from "react-toastify"; +import { useSessionManager } from "./hooks/useSessionManager"; +import SessionWarningModal from "./pages/components/sessionWarningModal"; +import AuthInterceptor from "./components/authinterceptor"; + +// home pages & dashboard +const Dashboard = lazy(() => import("./pages/dashboard")); + +// auth pages (login pages) +const Login = lazy(() => import("./pages/auth/login")); +const Login2 = lazy(() => import("./pages/auth/login2")); +const Login3 = lazy(() => import("./pages/auth/login3")); +const Error = lazy(() => import("./pages/404")); + +import Layout from "./layout/Layout"; +import AuthLayout from "./layout/AuthLayout"; + +// components pages +const Button = lazy(() => import("./pages/components/button")); +const Dropdown = lazy(() => import("./pages/components/dropdown")); +const Badges = lazy(() => import("./pages/components/badges")); +const Colors = lazy(() => import("./pages/components/colors")); +const Typography = lazy(() => import("./pages/components/typography")); +const Alert = lazy(() => import("./pages/components/alert")); +const Progressbar = lazy(() => import("./pages/components/progress-bar")); +const Card = lazy(() => import("./pages/components/card")); +const Image = lazy(() => import("./pages/components/image")); +const Placeholder = lazy(() => import("./pages/components/placeholder")); +const Tooltip = lazy(() => import("./pages/components/tooltip-popover")); +const Modal = lazy(() => import("./pages/components/modal")); +const Carousel = lazy(() => import("./pages/components/carousel")); +const Pagination = lazy(() => import("./pages/components/pagination")); +const TabsAc = lazy(() => import("./pages/components/tab-accordion")); +const Video = lazy(() => import("./pages/components/video")); + +const ComingSoonPage = lazy(() => import("./pages/utility/coming-soon")); +const UnderConstructionPage = lazy(() => + import("./pages/utility/under-construction") +); + +const Profile = lazy(() => import("./pages/utility/profile")); +const IconPage = lazy(() => import("./pages/icons")); +import Loading from "@/components/Loading"; + +import MemberPage from "./pages/member"; +import AddMember from "./pages/member/member-add"; +import MemberEditOverview from "./pages/member/member-edit-overview"; +import EditProfileMember from "./pages/member/member-edit-profile"; +import MemberEditAddress from "./pages/member/member-edit-address"; +import MemberAddAddress from "./pages/member/member-e-add-address"; +import MemberEditOrder from "./pages/member/member-edit-order"; +import MemberTopup from "./pages/member/member-edit-topup"; +import MemberEditWallet from "./pages/member/member-edit-wallet"; +import MemberEditVoucher from "./pages/member/member-edit-voucher"; +import MemberEditPoint from "./pages/member/member-edit-point"; +import EditDetailsMemberOrder from "./pages/member/member-e-edit-order"; +import EditMemberAddress from "./pages/member/member-e-edit-address"; +import MemberEditAdjustPoint from "./pages/member/member-edit-adjustpoint"; +import OrgChart from "./pages/member/member-chart"; +import MemberAdjustWallet from "./pages/member/member-edit-adjustwallet"; +import { APIProvider } from "@vis.gl/react-google-maps"; +import UserData from "./pages/settings/user"; +import UserEdit from "./pages/settings/user/user-edit"; +import AddNewUser from "./pages/settings/user/user-add"; +import SlideshowSettings from "./pages/settings/slideshow"; +import SlideshowAdd from "./pages/settings/slideshow/slideshow-add"; +import SlideshowEdit from "./pages/settings/slideshow/slideshow-edit"; +import CsvExport from "./pages/csv/index"; + +import SalesReport from "./pages/report/sales"; +import PromoReport from "./pages/report/promo"; +import ProductReport from "./pages/report/product"; + +import AllTasks from "./pages/task/all"; +import THTasks from "./pages/task/th"; +import TLTasks from "./pages/task/tl"; +import FLSSTasks from "./pages/task/flss"; +import LMTasks from "./pages/task/lm"; +import TPTasks from "./pages/task/tp"; + +import AllTaskboard from "./pages/taskboard/all"; +import THTaskboard from "./pages/taskboard/th"; +import TLTaskboard from "./pages/taskboard/tl"; +import FLSSTaskboard from "./pages/taskboard/flss"; +import LMTaskboard from "./pages/taskboard/lm"; +import TPTaskboard from "./pages/taskboard/tp"; + +function App() { + const navigate = useNavigate(); + const { isAuth } = useSelector(state => state.auth); + const { + showWarning, + timeLeft, + timeLeftMs, + expirationInfo, + checkAutoLogin, + extendSession, + handleLogout, + handleSessionExpiry, // Make sure this is destructured from useSessionManager + checkSession // Make sure this is destructured from useSessionManager + } = useSessionManager(); + + useEffect(() => { + console.log('App mounted, checking auto login...'); + if (!isAuth) { + const autoLoggedIn = checkAutoLogin(); + if (autoLoggedIn) { + console.log('Auto login successful, navigating to dashboard'); + navigate("/dashboard"); + } else { + navigate("/login"); + } + } + }, []); + + + useEffect(() => { + if (isAuth && window.location.pathname === '/') { + navigate("/dashboard"); + } + }, [isAuth, navigate]); + + return ( +
+ + + + }> + } /> + } /> + } /> + + + }> + } /> + } /> + + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + {/* Member routes */} + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + + } /> + + + } /> + } /> + } /> + } /> + + + {/* Components pages */} + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + } /> + + + }> + + + } + /> + }> + + + } + /> + }> + + + } + /> + + + + +
+ ); +} + +export default App; \ No newline at end of file diff --git a/src/assets/images/all-img/404-2.svg b/src/assets/images/all-img/404-2.svg new file mode 100644 index 0000000..67caf09 --- /dev/null +++ b/src/assets/images/all-img/404-2.svg @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/all-img/404.svg b/src/assets/images/all-img/404.svg new file mode 100644 index 0000000..8f41835 --- /dev/null +++ b/src/assets/images/all-img/404.svg @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/all-img/big-shap1.png b/src/assets/images/all-img/big-shap1.png new file mode 100644 index 0000000..5e0088f Binary files /dev/null and b/src/assets/images/all-img/big-shap1.png differ diff --git a/src/assets/images/all-img/big-shap2.png b/src/assets/images/all-img/big-shap2.png new file mode 100644 index 0000000..4b96d1c Binary files /dev/null and b/src/assets/images/all-img/big-shap2.png differ diff --git a/src/assets/images/all-img/big-shap3.png b/src/assets/images/all-img/big-shap3.png new file mode 100644 index 0000000..f39ec93 Binary files /dev/null and b/src/assets/images/all-img/big-shap3.png differ diff --git a/src/assets/images/all-img/big-shap4.png b/src/assets/images/all-img/big-shap4.png new file mode 100644 index 0000000..72044aa Binary files /dev/null and b/src/assets/images/all-img/big-shap4.png differ diff --git a/src/assets/images/all-img/c1.png b/src/assets/images/all-img/c1.png new file mode 100644 index 0000000..b9669ee Binary files /dev/null and b/src/assets/images/all-img/c1.png differ diff --git a/src/assets/images/all-img/c2.png b/src/assets/images/all-img/c2.png new file mode 100644 index 0000000..281c45e Binary files /dev/null and b/src/assets/images/all-img/c2.png differ diff --git a/src/assets/images/all-img/c3.png b/src/assets/images/all-img/c3.png new file mode 100644 index 0000000..a9995f7 Binary files /dev/null and b/src/assets/images/all-img/c3.png differ diff --git a/src/assets/images/all-img/c4.png b/src/assets/images/all-img/c4.png new file mode 100644 index 0000000..b9669ee Binary files /dev/null and b/src/assets/images/all-img/c4.png differ diff --git a/src/assets/images/all-img/card-1.png b/src/assets/images/all-img/card-1.png new file mode 100644 index 0000000..742ad1b Binary files /dev/null and b/src/assets/images/all-img/card-1.png differ diff --git a/src/assets/images/all-img/card-2.png b/src/assets/images/all-img/card-2.png new file mode 100644 index 0000000..c333aa1 Binary files /dev/null and b/src/assets/images/all-img/card-2.png differ diff --git a/src/assets/images/all-img/card-3.png b/src/assets/images/all-img/card-3.png new file mode 100644 index 0000000..fa8d52d Binary files /dev/null and b/src/assets/images/all-img/card-3.png differ diff --git a/src/assets/images/all-img/card-4.png b/src/assets/images/all-img/card-4.png new file mode 100644 index 0000000..543b1a1 Binary files /dev/null and b/src/assets/images/all-img/card-4.png differ diff --git a/src/assets/images/all-img/card-5.png b/src/assets/images/all-img/card-5.png new file mode 100644 index 0000000..8935bb3 Binary files /dev/null and b/src/assets/images/all-img/card-5.png differ diff --git a/src/assets/images/all-img/card-6.png b/src/assets/images/all-img/card-6.png new file mode 100644 index 0000000..f23281c Binary files /dev/null and b/src/assets/images/all-img/card-6.png differ diff --git a/src/assets/images/all-img/card-7.png b/src/assets/images/all-img/card-7.png new file mode 100644 index 0000000..104256d Binary files /dev/null and b/src/assets/images/all-img/card-7.png differ diff --git a/src/assets/images/all-img/ck.svg b/src/assets/images/all-img/ck.svg new file mode 100644 index 0000000..500c137 --- /dev/null +++ b/src/assets/images/all-img/ck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/all-img/cus-1.png b/src/assets/images/all-img/cus-1.png new file mode 100644 index 0000000..1d941b9 Binary files /dev/null and b/src/assets/images/all-img/cus-1.png differ diff --git a/src/assets/images/all-img/cus-2.png b/src/assets/images/all-img/cus-2.png new file mode 100644 index 0000000..c3fbe36 Binary files /dev/null and b/src/assets/images/all-img/cus-2.png differ diff --git a/src/assets/images/all-img/cus-3.png b/src/assets/images/all-img/cus-3.png new file mode 100644 index 0000000..b5b9cf6 Binary files /dev/null and b/src/assets/images/all-img/cus-3.png differ diff --git a/src/assets/images/all-img/customer_1.png b/src/assets/images/all-img/customer_1.png new file mode 100644 index 0000000..f28b2cc Binary files /dev/null and b/src/assets/images/all-img/customer_1.png differ diff --git a/src/assets/images/all-img/image-1.png b/src/assets/images/all-img/image-1.png new file mode 100644 index 0000000..e2c2356 Binary files /dev/null and b/src/assets/images/all-img/image-1.png differ diff --git a/src/assets/images/all-img/image-2.png b/src/assets/images/all-img/image-2.png new file mode 100644 index 0000000..7a32d73 Binary files /dev/null and b/src/assets/images/all-img/image-2.png differ diff --git a/src/assets/images/all-img/image-3.png b/src/assets/images/all-img/image-3.png new file mode 100644 index 0000000..9484cc2 Binary files /dev/null and b/src/assets/images/all-img/image-3.png differ diff --git a/src/assets/images/all-img/inbox-1.png b/src/assets/images/all-img/inbox-1.png new file mode 100644 index 0000000..a630019 Binary files /dev/null and b/src/assets/images/all-img/inbox-1.png differ diff --git a/src/assets/images/all-img/inbox-2.png b/src/assets/images/all-img/inbox-2.png new file mode 100644 index 0000000..a3b1294 Binary files /dev/null and b/src/assets/images/all-img/inbox-2.png differ diff --git a/src/assets/images/all-img/inbox-3.png b/src/assets/images/all-img/inbox-3.png new file mode 100644 index 0000000..44d0105 Binary files /dev/null and b/src/assets/images/all-img/inbox-3.png differ diff --git a/src/assets/images/all-img/login-bg.png b/src/assets/images/all-img/login-bg.png new file mode 100644 index 0000000..85e67ff Binary files /dev/null and b/src/assets/images/all-img/login-bg.png differ diff --git a/src/assets/images/all-img/main-user.png b/src/assets/images/all-img/main-user.png new file mode 100644 index 0000000..d9bbcf7 Binary files /dev/null and b/src/assets/images/all-img/main-user.png differ diff --git a/src/assets/images/all-img/p-1.png b/src/assets/images/all-img/p-1.png new file mode 100644 index 0000000..9fafef4 Binary files /dev/null and b/src/assets/images/all-img/p-1.png differ diff --git a/src/assets/images/all-img/p-2.png b/src/assets/images/all-img/p-2.png new file mode 100644 index 0000000..1e601f1 Binary files /dev/null and b/src/assets/images/all-img/p-2.png differ diff --git a/src/assets/images/all-img/p-3.png b/src/assets/images/all-img/p-3.png new file mode 100644 index 0000000..6694e3f Binary files /dev/null and b/src/assets/images/all-img/p-3.png differ diff --git a/src/assets/images/all-img/p-4.png b/src/assets/images/all-img/p-4.png new file mode 100644 index 0000000..caf3181 Binary files /dev/null and b/src/assets/images/all-img/p-4.png differ diff --git a/src/assets/images/all-img/p-5.png b/src/assets/images/all-img/p-5.png new file mode 100644 index 0000000..911a17f Binary files /dev/null and b/src/assets/images/all-img/p-5.png differ diff --git a/src/assets/images/all-img/p-6.png b/src/assets/images/all-img/p-6.png new file mode 100644 index 0000000..31f0b4e Binary files /dev/null and b/src/assets/images/all-img/p-6.png differ diff --git a/src/assets/images/all-img/page-bg.png b/src/assets/images/all-img/page-bg.png new file mode 100644 index 0000000..4bc1717 Binary files /dev/null and b/src/assets/images/all-img/page-bg.png differ diff --git a/src/assets/images/all-img/post-1.png b/src/assets/images/all-img/post-1.png new file mode 100644 index 0000000..c57f0e0 Binary files /dev/null and b/src/assets/images/all-img/post-1.png differ diff --git a/src/assets/images/all-img/post-2.png b/src/assets/images/all-img/post-2.png new file mode 100644 index 0000000..c53116d Binary files /dev/null and b/src/assets/images/all-img/post-2.png differ diff --git a/src/assets/images/all-img/shade-1.png b/src/assets/images/all-img/shade-1.png new file mode 100644 index 0000000..be7ffee Binary files /dev/null and b/src/assets/images/all-img/shade-1.png differ diff --git a/src/assets/images/all-img/shade-2.png b/src/assets/images/all-img/shade-2.png new file mode 100644 index 0000000..f466cb6 Binary files /dev/null and b/src/assets/images/all-img/shade-2.png differ diff --git a/src/assets/images/all-img/shade-3.png b/src/assets/images/all-img/shade-3.png new file mode 100644 index 0000000..a9f7552 Binary files /dev/null and b/src/assets/images/all-img/shade-3.png differ diff --git a/src/assets/images/all-img/shade-4.png b/src/assets/images/all-img/shade-4.png new file mode 100644 index 0000000..b63f2b7 Binary files /dev/null and b/src/assets/images/all-img/shade-4.png differ diff --git a/src/assets/images/all-img/t1.png b/src/assets/images/all-img/t1.png new file mode 100644 index 0000000..5b19b87 Binary files /dev/null and b/src/assets/images/all-img/t1.png differ diff --git a/src/assets/images/all-img/thumb-1.png b/src/assets/images/all-img/thumb-1.png new file mode 100644 index 0000000..81232db Binary files /dev/null and b/src/assets/images/all-img/thumb-1.png differ diff --git a/src/assets/images/all-img/thumb-2.png b/src/assets/images/all-img/thumb-2.png new file mode 100644 index 0000000..2913c9c Binary files /dev/null and b/src/assets/images/all-img/thumb-2.png differ diff --git a/src/assets/images/all-img/thumb-3.png b/src/assets/images/all-img/thumb-3.png new file mode 100644 index 0000000..e10580f Binary files /dev/null and b/src/assets/images/all-img/thumb-3.png differ diff --git a/src/assets/images/all-img/thumb-4.png b/src/assets/images/all-img/thumb-4.png new file mode 100644 index 0000000..c9f6660 Binary files /dev/null and b/src/assets/images/all-img/thumb-4.png differ diff --git a/src/assets/images/all-img/thumb-5.png b/src/assets/images/all-img/thumb-5.png new file mode 100644 index 0000000..0e7f719 Binary files /dev/null and b/src/assets/images/all-img/thumb-5.png differ diff --git a/src/assets/images/all-img/thumb-6.png b/src/assets/images/all-img/thumb-6.png new file mode 100644 index 0000000..e418410 Binary files /dev/null and b/src/assets/images/all-img/thumb-6.png differ diff --git a/src/assets/images/all-img/user-big.png b/src/assets/images/all-img/user-big.png new file mode 100644 index 0000000..289d099 Binary files /dev/null and b/src/assets/images/all-img/user-big.png differ diff --git a/src/assets/images/all-img/user.png b/src/assets/images/all-img/user.png new file mode 100644 index 0000000..7025a24 Binary files /dev/null and b/src/assets/images/all-img/user.png differ diff --git a/src/assets/images/all-img/user2.png b/src/assets/images/all-img/user2.png new file mode 100644 index 0000000..1af4ecb Binary files /dev/null and b/src/assets/images/all-img/user2.png differ diff --git a/src/assets/images/all-img/user3.png b/src/assets/images/all-img/user3.png new file mode 100644 index 0000000..326d8b5 Binary files /dev/null and b/src/assets/images/all-img/user3.png differ diff --git a/src/assets/images/all-img/user4.png b/src/assets/images/all-img/user4.png new file mode 100644 index 0000000..7b06f73 Binary files /dev/null and b/src/assets/images/all-img/user4.png differ diff --git a/src/assets/images/all-img/video-poster.png b/src/assets/images/all-img/video-poster.png new file mode 100644 index 0000000..401ca11 Binary files /dev/null and b/src/assets/images/all-img/video-poster.png differ diff --git a/src/assets/images/all-img/visa-card-bg.png b/src/assets/images/all-img/visa-card-bg.png new file mode 100644 index 0000000..62c9727 Binary files /dev/null and b/src/assets/images/all-img/visa-card-bg.png differ diff --git a/src/assets/images/all-img/widget-bg-1.png b/src/assets/images/all-img/widget-bg-1.png new file mode 100644 index 0000000..15d0933 Binary files /dev/null and b/src/assets/images/all-img/widget-bg-1.png differ diff --git a/src/assets/images/all-img/widget-bg-2.png b/src/assets/images/all-img/widget-bg-2.png new file mode 100644 index 0000000..5437d63 Binary files /dev/null and b/src/assets/images/all-img/widget-bg-2.png differ diff --git a/src/assets/images/all-img/widget-bg-3-1.png b/src/assets/images/all-img/widget-bg-3-1.png new file mode 100644 index 0000000..3ffcda4 Binary files /dev/null and b/src/assets/images/all-img/widget-bg-3-1.png differ diff --git a/src/assets/images/all-img/widget-bg-3.png b/src/assets/images/all-img/widget-bg-3.png new file mode 100644 index 0000000..5968644 Binary files /dev/null and b/src/assets/images/all-img/widget-bg-3.png differ diff --git a/src/assets/images/all-img/widget-bg-4.png b/src/assets/images/all-img/widget-bg-4.png new file mode 100644 index 0000000..d4d50d9 Binary files /dev/null and b/src/assets/images/all-img/widget-bg-4.png differ diff --git a/src/assets/images/all-img/widget-bg-5.png b/src/assets/images/all-img/widget-bg-5.png new file mode 100644 index 0000000..a0eec7a Binary files /dev/null and b/src/assets/images/all-img/widget-bg-5.png differ diff --git a/src/assets/images/all-img/widget-bg-6.png b/src/assets/images/all-img/widget-bg-6.png new file mode 100644 index 0000000..c605b44 Binary files /dev/null and b/src/assets/images/all-img/widget-bg-6.png differ diff --git a/src/assets/images/all-img/widget-bg-7.png b/src/assets/images/all-img/widget-bg-7.png new file mode 100644 index 0000000..1a42680 Binary files /dev/null and b/src/assets/images/all-img/widget-bg-7.png differ diff --git a/src/assets/images/all-img/widget-bg-8.png b/src/assets/images/all-img/widget-bg-8.png new file mode 100644 index 0000000..5d19626 Binary files /dev/null and b/src/assets/images/all-img/widget-bg-8.png differ diff --git a/src/assets/images/avatar/av-1.svg b/src/assets/images/avatar/av-1.svg new file mode 100644 index 0000000..579f70d --- /dev/null +++ b/src/assets/images/avatar/av-1.svg @@ -0,0 +1 @@ +Created with getavataaars.com \ No newline at end of file diff --git a/src/assets/images/avatar/av-2.svg b/src/assets/images/avatar/av-2.svg new file mode 100644 index 0000000..8df3797 --- /dev/null +++ b/src/assets/images/avatar/av-2.svg @@ -0,0 +1 @@ +Created with getavataaars.com \ No newline at end of file diff --git a/src/assets/images/avatar/av-3.svg b/src/assets/images/avatar/av-3.svg new file mode 100644 index 0000000..7546f56 --- /dev/null +++ b/src/assets/images/avatar/av-3.svg @@ -0,0 +1 @@ +Created with getavataaars.com \ No newline at end of file diff --git a/src/assets/images/avatar/av-4.svg b/src/assets/images/avatar/av-4.svg new file mode 100644 index 0000000..d8516dc --- /dev/null +++ b/src/assets/images/avatar/av-4.svg @@ -0,0 +1 @@ +Created with getavataaars.com \ No newline at end of file diff --git a/src/assets/images/avatar/av-5.svg b/src/assets/images/avatar/av-5.svg new file mode 100644 index 0000000..00eb900 --- /dev/null +++ b/src/assets/images/avatar/av-5.svg @@ -0,0 +1 @@ +Created with getavataaars.com \ No newline at end of file diff --git a/src/assets/images/avatar/av-6.svg b/src/assets/images/avatar/av-6.svg new file mode 100644 index 0000000..3a7c3b0 --- /dev/null +++ b/src/assets/images/avatar/av-6.svg @@ -0,0 +1 @@ +Created with getavataaars.com \ No newline at end of file diff --git a/src/assets/images/icon/ck-white.svg b/src/assets/images/icon/ck-white.svg new file mode 100644 index 0000000..4806a3a --- /dev/null +++ b/src/assets/images/icon/ck-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/icon/crown.svg b/src/assets/images/icon/crown.svg new file mode 100644 index 0000000..54af610 --- /dev/null +++ b/src/assets/images/icon/crown.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/icon/default_pizza.jpeg b/src/assets/images/icon/default_pizza.jpeg new file mode 100644 index 0000000..81b4e6b Binary files /dev/null and b/src/assets/images/icon/default_pizza.jpeg differ diff --git a/src/assets/images/icon/fb.svg b/src/assets/images/icon/fb.svg new file mode 100644 index 0000000..2a9c8b7 --- /dev/null +++ b/src/assets/images/icon/fb.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/icon/file-1.svg b/src/assets/images/icon/file-1.svg new file mode 100644 index 0000000..2a9a17d --- /dev/null +++ b/src/assets/images/icon/file-1.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/assets/images/icon/gp.svg b/src/assets/images/icon/gp.svg new file mode 100644 index 0000000..1ba083b --- /dev/null +++ b/src/assets/images/icon/gp.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/icon/home.svg b/src/assets/images/icon/home.svg new file mode 100644 index 0000000..e69de29 diff --git a/src/assets/images/icon/in.svg b/src/assets/images/icon/in.svg new file mode 100644 index 0000000..0b91b98 --- /dev/null +++ b/src/assets/images/icon/in.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/images/icon/logo.jpg b/src/assets/images/icon/logo.jpg new file mode 100644 index 0000000..90e48fd Binary files /dev/null and b/src/assets/images/icon/logo.jpg differ diff --git a/src/assets/images/icon/pdf-1.svg b/src/assets/images/icon/pdf-1.svg new file mode 100644 index 0000000..bedcc00 --- /dev/null +++ b/src/assets/images/icon/pdf-1.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/assets/images/icon/pdf-2.svg b/src/assets/images/icon/pdf-2.svg new file mode 100644 index 0000000..80cc2ee --- /dev/null +++ b/src/assets/images/icon/pdf-2.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/assets/images/icon/scr-1.svg b/src/assets/images/icon/scr-1.svg new file mode 100644 index 0000000..ffb3583 --- /dev/null +++ b/src/assets/images/icon/scr-1.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/assets/images/icon/success.svg b/src/assets/images/icon/success.svg new file mode 100644 index 0000000..8a51860 --- /dev/null +++ b/src/assets/images/icon/success.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/icon/tw.svg b/src/assets/images/icon/tw.svg new file mode 100644 index 0000000..774a9a8 --- /dev/null +++ b/src/assets/images/icon/tw.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/icon/white-s.svg b/src/assets/images/icon/white-s.svg new file mode 100644 index 0000000..c7e3b2c --- /dev/null +++ b/src/assets/images/icon/white-s.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/icon/zip-1.svg b/src/assets/images/icon/zip-1.svg new file mode 100644 index 0000000..5ea0005 --- /dev/null +++ b/src/assets/images/icon/zip-1.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/logo/logo-white.svg b/src/assets/images/logo/logo-white.svg new file mode 100644 index 0000000..c73ceca --- /dev/null +++ b/src/assets/images/logo/logo-white.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/logo/logo.png b/src/assets/images/logo/logo.png new file mode 100644 index 0000000..0a41e7e Binary files /dev/null and b/src/assets/images/logo/logo.png differ diff --git a/src/assets/images/logo/logo.svg b/src/assets/images/logo/logo.svg new file mode 100644 index 0000000..c73ceca --- /dev/null +++ b/src/assets/images/logo/logo.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/post/c1.png b/src/assets/images/post/c1.png new file mode 100644 index 0000000..b88610e Binary files /dev/null and b/src/assets/images/post/c1.png differ diff --git a/src/assets/images/post/c2.png b/src/assets/images/post/c2.png new file mode 100644 index 0000000..2068689 Binary files /dev/null and b/src/assets/images/post/c2.png differ diff --git a/src/assets/images/post/c3.png b/src/assets/images/post/c3.png new file mode 100644 index 0000000..1b54568 Binary files /dev/null and b/src/assets/images/post/c3.png differ diff --git a/src/assets/images/post/t-2.png b/src/assets/images/post/t-2.png new file mode 100644 index 0000000..5b5a80c Binary files /dev/null and b/src/assets/images/post/t-2.png differ diff --git a/src/assets/images/post/t-3.png b/src/assets/images/post/t-3.png new file mode 100644 index 0000000..2f48a96 Binary files /dev/null and b/src/assets/images/post/t-3.png differ diff --git a/src/assets/images/svg/blank.svg b/src/assets/images/svg/blank.svg new file mode 100644 index 0000000..d588012 --- /dev/null +++ b/src/assets/images/svg/blank.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/svg/dc.svg b/src/assets/images/svg/dc.svg new file mode 100644 index 0000000..b72e104 --- /dev/null +++ b/src/assets/images/svg/dc.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/images/svg/fb.svg b/src/assets/images/svg/fb.svg new file mode 100644 index 0000000..8bc2391 --- /dev/null +++ b/src/assets/images/svg/fb.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/images/svg/gift.svg b/src/assets/images/svg/gift.svg new file mode 100644 index 0000000..f333897 --- /dev/null +++ b/src/assets/images/svg/gift.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/assets/images/svg/img-1.svg b/src/assets/images/svg/img-1.svg new file mode 100644 index 0000000..254c55b --- /dev/null +++ b/src/assets/images/svg/img-1.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/svg/img-2.svg b/src/assets/images/svg/img-2.svg new file mode 100644 index 0000000..3b17467 --- /dev/null +++ b/src/assets/images/svg/img-2.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/svg/ins.svg b/src/assets/images/svg/ins.svg new file mode 100644 index 0000000..5abb170 --- /dev/null +++ b/src/assets/images/svg/ins.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/assets/images/svg/line.svg b/src/assets/images/svg/line.svg new file mode 100644 index 0000000..c646476 --- /dev/null +++ b/src/assets/images/svg/line.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/svg/ln.svg b/src/assets/images/svg/ln.svg new file mode 100644 index 0000000..bb7316b --- /dev/null +++ b/src/assets/images/svg/ln.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/assets/images/svg/loader.svg b/src/assets/images/svg/loader.svg new file mode 100644 index 0000000..e935b52 --- /dev/null +++ b/src/assets/images/svg/loader.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/svg/mobile-menu-bg.svg b/src/assets/images/svg/mobile-menu-bg.svg new file mode 100644 index 0000000..586f296 --- /dev/null +++ b/src/assets/images/svg/mobile-menu-bg.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/assets/images/svg/path.svg b/src/assets/images/svg/path.svg new file mode 100644 index 0000000..42dfa04 --- /dev/null +++ b/src/assets/images/svg/path.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/images/svg/q.svg b/src/assets/images/svg/q.svg new file mode 100644 index 0000000..1f262ed --- /dev/null +++ b/src/assets/images/svg/q.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/svg/rabit.svg b/src/assets/images/svg/rabit.svg new file mode 100644 index 0000000..d2a2073 --- /dev/null +++ b/src/assets/images/svg/rabit.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/svg/sk.svg b/src/assets/images/svg/sk.svg new file mode 100644 index 0000000..57250df --- /dev/null +++ b/src/assets/images/svg/sk.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/images/svg/tw.svg b/src/assets/images/svg/tw.svg new file mode 100644 index 0000000..742a8d9 --- /dev/null +++ b/src/assets/images/svg/tw.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/images/svg/upload.svg b/src/assets/images/svg/upload.svg new file mode 100644 index 0000000..5194916 --- /dev/null +++ b/src/assets/images/svg/upload.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/assets/images/svg/widgetvector.svg b/src/assets/images/svg/widgetvector.svg new file mode 100644 index 0000000..58e1e8a --- /dev/null +++ b/src/assets/images/svg/widgetvector.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/svg/widgetvector2.svg b/src/assets/images/svg/widgetvector2.svg new file mode 100644 index 0000000..a37443a --- /dev/null +++ b/src/assets/images/svg/widgetvector2.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/users/user-1.jpg b/src/assets/images/users/user-1.jpg new file mode 100644 index 0000000..fc01681 Binary files /dev/null and b/src/assets/images/users/user-1.jpg differ diff --git a/src/assets/images/users/user-2.jpg b/src/assets/images/users/user-2.jpg new file mode 100644 index 0000000..51ee347 Binary files /dev/null and b/src/assets/images/users/user-2.jpg differ diff --git a/src/assets/images/users/user-3.jpg b/src/assets/images/users/user-3.jpg new file mode 100644 index 0000000..34b3f37 Binary files /dev/null and b/src/assets/images/users/user-3.jpg differ diff --git a/src/assets/images/users/user-4.jpg b/src/assets/images/users/user-4.jpg new file mode 100644 index 0000000..7dd77ff Binary files /dev/null and b/src/assets/images/users/user-4.jpg differ diff --git a/src/assets/images/users/user-5.jpg b/src/assets/images/users/user-5.jpg new file mode 100644 index 0000000..fb4aaac Binary files /dev/null and b/src/assets/images/users/user-5.jpg differ diff --git a/src/assets/images/users/user-6.jpg b/src/assets/images/users/user-6.jpg new file mode 100644 index 0000000..1938888 Binary files /dev/null and b/src/assets/images/users/user-6.jpg differ diff --git a/src/assets/scss/app.css b/src/assets/scss/app.css new file mode 100644 index 0000000..654b879 --- /dev/null +++ b/src/assets/scss/app.css @@ -0,0 +1,1688 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; +@layer base { + body { + @apply h-full overflow-x-hidden dark:text-slate-300 text-slate-600 font-normal; + } + body.light, body.skin--default { + @apply bg-slate-100; + } + body.lght, body.skin--bordered { + @apply bg-transparent; + } + body.dark { + @apply bg-[#0f172a] text-slate-300; + } + html, + body { + @apply h-full; + } + .dashcode-app-wrapper { + @apply relative; + } + .single-sidebar-menu .ReactCollapse--collapse { + transition: height 400ms; + } + .space-xy-5 > div, + .space-xy-5 > button, + .space-xy-5 > a, + .space-xy-5 label, + .space-xy-5 > * { + @apply mr-2 mb-2; + } + .space-xy-6 > div, + .space-xy-6 > button, + .space-xy-6 > a, + .space-xy-6 label, + .space-xy-6 > * { + @apply mr-4 mb-2; + } + html[dir=rtl] .recharts-wrapper { + direction: rtl; + } + html[dir=rtl] .recharts-yAxis .recharts-text { + text-anchor: start; + } + .dashcode-app .leaflet-control { + z-index: 0 !important; + } + .dashcode-app .leaflet-control-container { + z-index: 555 !important; + position: relative; + } + .dashcode-app .recharts-curve.recharts-tooltip-cursor { + display: none; + } + .dashcode-app .recharts-wrapper.bar-chart .recharts-tooltip-cursor { + fill: transparent; + } + .dashcode-app .recharts-tooltip-wrapper { + border: none !important; + } +} +@layer components { + .table-th { + @apply text-slate-600 dark:text-slate-300 text-xs font-semibold uppercase py-5 px-6 ltr:text-left rtl:text-right; + } + .table-td { + @apply text-slate-600 dark:text-slate-300 text-sm font-normal capitalize px-6 py-5 border-slate-100 dark:border-slate-700; + } + .table-checkbox { + @apply relative before:flex before:flex-col before:items-center before:justify-center + before:w-[18px] before:h-[18px] before:m-[-0.7px] before:bg-slate-100 dark:before:bg-slate-500 before:absolute + before:inset-0 before:rounded w-4 h-4 rounded checked:before:bg-slate-900 + checked:before:content-[url("https://api.iconify.design/heroicons-outline/check.svg?color=white")] checked:before:leading-[10px] + checked:before:ring-2 checked:before:ring-black-500 + checked:before:ring-offset-2 checked:before:dark:ring-slate-700 + checked:before:dark:ring-offset-0; + } + .dash-codevmap path { + @apply fill-[#6794DC]; + } + .dash-codevmap .svg-map__location[aria-checked=true] { + @apply fill-primary-500; + } + .progress { + @apply bg-slate-900 dark:bg-slate-700 h-2; + } + .progress .progress-bar.stripes { + background-image: linear-gradient(45deg, hsla(0, 0%, 100%, 0.15) 25%, transparent 0, transparent 50%, hsla(0, 0%, 100%, 0.15) 0, hsla(0, 0%, 100%, 0.15) 75%, transparent 0, transparent); + background-size: 0.857rem 0.857rem; + } + @keyframes progress-bar-stripes { + 0% { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } + } + .animate-stripes { + animation: progress-bar-stripes 1s linear infinite; + } + .custom-tippy .tippy-box { + @apply bg-slate-900; + } + .custom-tippy .tippy-arrow { + @apply text-slate-900; + } + .custom-tippy .tippy-box[data-theme~=primary] { + @apply bg-primary-500 text-white; + } + .custom-tippy .tippy-box[data-theme~=secondary] { + @apply bg-secondary-500 text-white; + } + .custom-tippy .tippy-box[data-theme~=success] { + @apply bg-success-500 text-white; + } + .custom-tippy .tippy-box[data-theme~=info] { + @apply bg-info-500 text-white; + } + .custom-tippy .tippy-box[data-theme~=warning] { + @apply bg-warning-500 text-white; + } + .custom-tippy .tippy-box[data-theme~=danger] { + @apply bg-danger-500 text-white; + } + .custom-tippy .tippy-box[data-theme~=dark] { + @apply bg-slate-900 text-white dark:bg-slate-900; + } + .custom-tippy .tippy-box[data-theme~=custom-light] { + @apply bg-white text-slate-900 dark:bg-slate-700 shadow-dropdown dark:border-slate-700 dark:border; + } + .custom-tippy .tippy-box[data-theme~=custom-light2] { + @apply bg-white text-slate-900 dark:bg-slate-700 shadow-dropdown dark:border-slate-700 dark:border rounded; + } + .custom-tippy .tippy-box[data-theme~=custom-light2] .tippy-content { + @apply p-0; + } + .custom-tippy .tippy-box[data-theme~=custom-light][data-placement^=top] > .tippy-arrow::before { + @apply border-t-white dark:border-t-slate-700; + } + .custom-tippy .tippy-box[data-theme~=custom-light][data-placement^=bottom] > .tippy-arrow::before { + @apply border-b-white dark:border-b-slate-700; + } + .custom-tippy .tippy-box[data-theme~=custom-light][data-placement^=left] > .tippy-arrow::before { + @apply border-l-white dark:border-l-slate-700; + } + .custom-tippy .tippy-box[data-theme~=custom-light][data-placement^=right] > .tippy-arrow::before { + @apply border-r-white dark:border-r-slate-700; + } + .custom-tippy .tippy-box[data-theme~=primary][data-placement^=top] > .tippy-arrow::before { + @apply border-t-primary-500; + } + .custom-tippy .tippy-box[data-theme~=primary][data-placement^=bottom] > .tippy-arrow::before { + @apply border-b-primary-500; + } + .custom-tippy .tippy-box[data-theme~=primary][data-placement^=left] > .tippy-arrow::before { + @apply border-l-primary-500; + } + .custom-tippy .tippy-box[data-theme~=primary][data-placement^=right] > .tippy-arrow::before { + @apply border-r-primary-500; + } + .custom-tippy .tippy-box[data-theme~=secondary][data-placement^=top] > .tippy-arrow::before { + @apply border-t-secondary-500; + } + .custom-tippy .tippy-box[data-theme~=secondary][data-placement^=bottom] > .tippy-arrow::before { + @apply border-b-secondary-500; + } + .custom-tippy .tippy-box[data-theme~=secondary][data-placement^=left] > .tippy-arrow::before { + @apply border-l-secondary-500; + } + .custom-tippy .tippy-box[data-theme~=secondary][data-placement^=right] > .tippy-arrow::before { + @apply border-r-secondary-500; + } + .custom-tippy .tippy-box[data-theme~=success][data-placement^=top] > .tippy-arrow::before { + @apply border-t-success-500; + } + .custom-tippy .tippy-box[data-theme~=success][data-placement^=bottom] > .tippy-arrow::before { + @apply border-b-success-500; + } + .custom-tippy .tippy-box[data-theme~=success][data-placement^=left] > .tippy-arrow::before { + @apply border-l-success-500; + } + .custom-tippy .tippy-box[data-theme~=success][data-placement^=right] > .tippy-arrow::before { + @apply border-r-success-500; + } + .custom-tippy .tippy-box[data-theme~=info][data-placement^=top] > .tippy-arrow::before { + @apply border-t-info-500; + } + .custom-tippy .tippy-box[data-theme~=info][data-placement^=bottom] > .tippy-arrow::before { + @apply border-b-info-500; + } + .custom-tippy .tippy-box[data-theme~=info][data-placement^=left] > .tippy-arrow::before { + @apply border-l-info-500; + } + .custom-tippy .tippy-box[data-theme~=info][data-placement^=right] > .tippy-arrow::before { + @apply border-r-info-500; + } + .custom-tippy .tippy-box[data-theme~=warning][data-placement^=top] > .tippy-arrow::before { + @apply border-t-warning-500; + } + .custom-tippy .tippy-box[data-theme~=warning][data-placement^=bottom] > .tippy-arrow::before { + @apply border-b-warning-500; + } + .custom-tippy .tippy-box[data-theme~=warning][data-placement^=left] > .tippy-arrow::before { + @apply border-l-warning-500; + } + .custom-tippy .tippy-box[data-theme~=warning][data-placement^=right] > .tippy-arrow::before { + @apply border-r-warning-500; + } + .custom-tippy .tippy-box[data-theme~=danger][data-placement^=top] > .tippy-arrow::before { + @apply border-t-danger-500; + } + .custom-tippy .tippy-box[data-theme~=danger][data-placement^=bottom] > .tippy-arrow::before { + @apply border-b-danger-500; + } + .custom-tippy .tippy-box[data-theme~=danger][data-placement^=left] > .tippy-arrow::before { + @apply border-l-danger-500; + } + .custom-tippy .tippy-box[data-theme~=danger][data-placement^=right] > .tippy-arrow::before { + @apply border-r-danger-500; + } + .custom-tippy .tippy-box[data-theme~=dark][data-placement^=top] > .tippy-arrow::before { + @apply border-t-black-500 dark:border-t-slate-900; + } + .custom-tippy .tippy-box[data-theme~=dark][data-placement^=bottom] > .tippy-arrow::before { + @apply border-b-black-500 dark:border-b-slate-900; + } + .custom-tippy .tippy-box[data-theme~=dark][data-placement^=left] > .tippy-arrow::before { + @apply border-l-black-500 dark:border-l-slate-900; + } + .custom-tippy .tippy-box[data-theme~=dark][data-placement^=right] > .tippy-arrow::before { + @apply border-r-black-500 dark:border-r-slate-900; + } + .main-caro .swiper-button-next:after, + .main-caro .swiper-button-prev:after { + font-family: unset !important; + @apply rtl:rotate-180; + } + .main-caro .swiper-button-next:after { + content: url("https://api.iconify.design/heroicons-outline/chevron-right.svg?color=white&width=24"); + } + .main-caro .swiper-button-prev:after { + content: url("https://api.iconify.design/heroicons-outline/chevron-left.svg?color=white&width=24"); + } + .main-caro .swiper-pagination-bullet { + height: 2px; + width: 24px; + @apply rounded-[1px] bg-white bg-opacity-70; + } + .main-caro .swiper-pagination-bullet.swiper-pagination-bullet-active { + @apply bg-opacity-100; + } + .alert { + @apply py-[18px] px-6 font-normal text-sm rounded-md; + } + .alert-primary { + @apply bg-primary-500 text-white; + } + .alert-primary.light-mode { + @apply bg-opacity-[14%] text-primary-500; + } + .alert-secondary { + @apply bg-secondary-500 text-white; + } + .alert-secondary.light-mode { + @apply bg-opacity-[14%] text-slate-900; + } + .alert-success { + @apply bg-success-500 text-white; + } + .alert-success.light-mode { + @apply bg-opacity-[14%] text-success-500; + } + .alert-danger { + @apply bg-danger-500 text-white; + } + .alert-danger.light-mode { + @apply bg-opacity-[14%] text-danger-500; + } + .alert-warning { + @apply bg-warning-500 text-white; + } + .alert-warning.light-mode { + @apply bg-opacity-[14%] text-warning-500; + } + .alert-info { + @apply bg-info-500 text-white; + } + .alert-info.light-mode { + @apply bg-opacity-[14%] text-info-500; + } + .alert-light { + @apply bg-slate-100 text-slate-900; + } + .alert-light.light-mode { + @apply text-slate-500; + } + .alert-dark { + @apply bg-slate-900 text-white; + } + .alert-dark.light-mode { + @apply bg-opacity-[54%] text-slate-100; + } + .alert-outline-primary { + @apply border border-primary-500 text-primary-500; + } + .alert-outline-secondary { + @apply border border-secondary-500 text-secondary-500; + } + .alert-outline-success { + @apply border border-success-500 text-success-500; + } + .alert-outline-danger { + @apply border border-danger-500 text-danger-500; + } + .alert-outline-warning { + @apply border border-warning-500 text-warning-500; + } + .alert-outline-info { + @apply border border-info-500 text-info-500; + } + .alert-outline-light { + @apply border border-slate-200 text-slate-600; + } + .alert-outline-dark { + @apply border border-slate-900 text-slate-900; + } + .card-title { + @apply font-medium capitalize md:text-xl md:leading-[28px] text-lg leading-[24px] text-slate-900 dark:text-white; + } + .card-subtitle { + @apply text-sm leading-5 font-medium text-slate-600 dark:text-slate-300 mt-1; + } + .card-header { + @apply flex items-center justify-between px-6 pt-6; + } + .card-header:not(.no-border) { + @apply border-b border-slate-200 dark:border-slate-700 pb-5; + } + .card-footer { + @apply flex items-center justify-between px-6 pt-6 border-t border-slate-200 dark:border-slate-700 pb-5; + } + .card-height-auto .card { + @apply h-min; + } + .loginwrapper { + @apply flex w-full items-center overflow-hidden; + min-height: 100vh; + min-height: calc(var(--vh, 1vh) * 100); + height: 100vh; + flex-basis: 100%; + } + .loginwrapper .lg-inner-column { + height: 100vh; + height: calc(var(--vh, 1vh) * 100); + @apply overflow-y-auto flex flex-wrap w-full; + } + .loginwrapper .left-column { + @apply bg-slate-100 dark:bg-slate-900 lg:block hidden flex-1 overflow-hidden; + } + .loginwrapper .left-column h4 { + @apply text-[40px] leading-[48px] text-slate-600 dark:text-slate-400; + } + .loginwrapper .right-column { + @apply flex-1; + } + .loginwrapper .black-500-title { + @apply text-[40px] leading-[48px] text-white; + } + .auth-box { + @apply max-w-[524px] md:px-[42px] md:py-[44px] p-7 mx-auto w-full; + } + .auth-box h4 { + @apply text-2xl text-slate-900 dark:text-white mb-3; + } + .auth-box2 { + @apply max-w-[524px] mx-auto w-full md:px-[42px] md:py-[44px] p-7; + } + .auth-box2 h4 { + @apply text-2xl text-slate-900 dark:text-white mb-3; + } + .auth-box-3 h4 { + @apply text-2xl text-slate-900 dark:text-white mb-3; + } + .auth-footer { + @apply text-xs font-normal text-secondary-500 dark:text-slate-400 z-[999] pb-10; + } + .auth-box-3 { + @apply bg-white dark:bg-slate-800 relative h-auto lg:mr-[150px] mr-auto p-10 md:rounded-md max-w-[520px] w-full ml-auto; + } + .logo-box-3 { + @apply flex justify-center items-center min-h-screen; + } + .v3-right-column { + @apply flex flex-col items-center justify-center; + } + .auth-footer3 { + @apply absolute bottom-0 lg:block hidden; + } + .btn { + @apply font-semibold text-sm leading-6 md:px-6 md:py-3 px-4 py-[10px] rounded capitalize transition-all duration-150 md:whitespace-nowrap whitespace-normal relative; + } + .btn.btn-xl { + @apply text-[16px] md:px-10 px-7 md:py-4 py-3; + } + .btn.btn-sm { + @apply text-xs md:px-4 py-2 px-3; + } + .btn.block-btn { + @apply block w-full text-center; + } + .btn.block-btn span { + @apply justify-center; + } + .btn-dark { + @apply bg-slate-900 dark:bg-slate-900 dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-black-900 hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; + } + .btn-primary { + @apply bg-primary-500 dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-primary-500 hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; + } + .btn-secondary { + @apply bg-secondary-500 dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-secondary-500 hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; + } + .btn-success { + @apply bg-success-500 dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-success-500 hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; + } + .btn-info { + @apply bg-[#0CE7FA] dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-[#0CE7FA] hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; + } + .btn-warning { + @apply bg-[#FA916B] dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-[#FA916B] hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; + } + .btn-danger { + @apply bg-danger-500 dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-danger-500 hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; + } + .btn-light { + @apply bg-slate-100 dark:hover:bg-opacity-70 text-slate-900 hover:ring-2 hover:ring-opacity-80 ring-[#E0EAFF] hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; + } + .btn-outline-dark { + @apply bg-transparent text-slate-900 dark:text-slate-300 border border-black-500 dark:border-slate-600 hover:border-black-500 hover:bg-slate-900 hover:bg-opacity-5; + } + .btn-outline-dark.active { + @apply bg-slate-900 text-white dark:bg-slate-900 dark:text-slate-300; + } + [aria-expanded=true] > .btn-outline-dark { + @apply bg-slate-900 text-white; + } + .btn-outline-primary { + @apply bg-transparent text-primary-500 border border-primary-500 hover:border-primary-500 hover:bg-primary-500 hover:bg-opacity-5; + } + .btn-outline-primary.active { + @apply bg-primary-500 text-white; + } + [aria-expanded=true] > .btn-outline-primary { + @apply bg-primary-500 text-white; + } + .btn-outline-secondary { + @apply bg-transparent text-secondary-500 border border-secondary-500 hover:border-secondary-500 hover:bg-secondary-500 hover:bg-opacity-5; + } + .btn-outline-secondary.active { + @apply bg-secondary-500 text-white; + } + [aria-expanded=true] > .btn-outline-secondary { + @apply bg-secondary-500 text-white; + } + .btn-outline-success { + @apply bg-transparent text-success-500 border border-success-500 hover:border-success-500 hover:bg-success-500 hover:bg-opacity-5; + } + .btn-outline-success.active { + @apply bg-success-500 text-white; + } + [aria-expanded=true] > .btn-outline-success { + @apply bg-success-500 text-white; + } + .btn-outline-info { + @apply bg-transparent text-[#0CE7FA] border border-[#0CE7FA] hover:border-[#0CE7FA] hover:bg-[#0CE7FA] hover:bg-opacity-5; + } + .btn-outline-info.active { + @apply bg-[#0CE7FA] text-white; + } + [aria-expanded=true] > .btn-outline-info { + @apply bg-info-500 text-white; + } + .btn-outline-warning { + @apply bg-transparent text-[#FA916B] border border-[#FA916B] hover:border-[#FA916B] hover:bg-[#FA916B] hover:bg-opacity-5; + } + .btn-outline-warning.active { + @apply bg-[#FA916B] text-white; + } + [aria-expanded=true] > .btn-outline-warning { + @apply bg-warning-500 text-white; + } + .btn-outline-danger { + @apply bg-transparent text-danger-500 border border-danger-500 hover:border-danger-500 hover:bg-danger-500 hover:bg-opacity-5; + } + .btn-outline-danger.active { + @apply bg-danger-500 text-white; + } + [aria-expanded=true] > .btn-outline-danger { + @apply bg-danger-500 text-white; + } + .btn-outline-light { + @apply bg-transparent border border-[#E0EAFF] dark:text-white hover:border-[#E0EAFF] text-slate-900 hover:bg-[#E0EAFF] hover:bg-opacity-5; + } + .btn-outline-light.active { + @apply bg-[#E0EAFF] text-slate-900; + } + [aria-expanded=true] > .btn-outline-light { + @apply bg-[#E0EAFF] text-slate-900; + } + .btn.light { + @apply bg-opacity-[15%] ring-opacity-30 dark:hover:bg-opacity-10; + } + .btn-primary.light { + @apply text-primary-500 dark:hover:bg-opacity-10; + } + .btn-secondary.light { + @apply text-secondary-500 dark:hover:bg-opacity-10; + } + .btn-success.light { + @apply text-success-500 dark:hover:bg-opacity-10; + } + .btn-info.light { + @apply text-[#0CE7FA] dark:hover:bg-opacity-10; + } + .btn-warning.light { + @apply text-[#FA916B] dark:hover:bg-opacity-10; + } + .btn-danger.light { + @apply text-danger-500 dark:hover:bg-opacity-10; + } + .btn-light.light { + @apply text-opacity-80 dark:text-slate-300 dark:hover:bg-opacity-10; + } + .split-btngroup .btn { + @apply ltr:rounded-r-none rtl:rounded-l-none hover:ring-0; + } + .split-btngroup button { + @apply ltr:last:rounded-r-md rtl:last:rounded-l-md last:border-l last:border-white last:border-opacity-[0.10]; + } + .split-btngroup button:hover { + box-shadow: none !important; + } + .split-btngroup [class*=btn-outline-] { + @apply ltr:last:border-l-0 rtl:last:border-r-0 focus:bg-transparent focus:text-inherit; + } + .split-btngroup .btn-outline-primary { + @apply focus:text-primary-500 last:border-primary-500; + } + .split-btngroup .btn-outline-secondary { + @apply focus:text-secondary-500 last:border-secondary-500; + } + .split-btngroup .btn-outline-success { + @apply focus:text-success-500 last:border-success-500; + } + .split-btngroup .btn-outline-danger { + @apply focus:text-danger-500 last:border-danger-500; + } + .split-btngroup .btn-outline-warning { + @apply focus:text-warning-500 last:border-warning-500; + } + .split-btngroup .btn-outline-info { + @apply focus:text-info-500 last:border-info-500; + } + .split-btngroup .btn-outline-light { + @apply focus:text-slate-600 last:border-[#E0EAFF]; + } + .btn-link { + @apply text-slate-900 font-medium underline text-sm dark:text-white; + } + .btn-link.white { + @apply text-white; + } + .action-btn { + @apply h-6 w-6 flex flex-col items-center justify-center border border-slate-200 dark:border-slate-700 rounded; + } + .invocie-btn { + @apply hover:bg-slate-900 hover:text-slate-100 dark:hover:bg-slate-600 mr-3 mb-4; + } + .badge { + @apply py-1 px-2 text-xs capitalize font-semibold rounded-[.358rem] whitespace-nowrap align-baseline inline-flex; + } + .badge.pill { + @apply rounded-[999px]; + } + h1 { + @apply text-6xl font-semibold text-slate-900 dark:text-slate-300; + } + h2 { + @apply text-5xl font-semibold text-slate-900 dark:text-slate-300; + } + h3 { + @apply text-4xl font-medium text-slate-900 dark:text-slate-300; + } + h4 { + @apply text-3xl font-medium text-slate-900 dark:text-slate-300; + } + h5 { + @apply text-2xl font-medium text-slate-900 dark:text-slate-300; + } + h6 { + @apply text-xl leading-[20px] font-medium text-slate-900 dark:text-slate-300; + } + .display-1 { + @apply text-[70px] leading-[80px] text-slate-900 dark:text-slate-300 font-semibold; + } + .display-2 { + @apply text-[48px] leading-[58px] text-slate-900 dark:text-slate-300 font-semibold; + } + .display-3 { + @apply text-[40px] leading-[48px] text-slate-900 dark:text-slate-300 font-semibold; + } + .display-4 { + @apply text-[40px] leading-[48px] text-slate-900 dark:text-slate-300 font-normal; + } + blockquote { + @apply border-l-2 border-gray-500 pl-5 text-xl italic; + } + .gradient-1 { + background: linear-gradient(96.2deg, #0575e6 0%, #021b79 100%); + } + .gradient-2 { + background: linear-gradient(96.01deg, #00c9ff 0.29%, #fff94c 100%); + } + .gradient-3 { + background: linear-gradient(96.01deg, #aaffa9 0.29%, #11ffbd 100%); + } + .custom-list { + @apply relative pl-4 -mx-1; + list-style: none; + } + .custom-list li { + @apply relative; + } + .custom-list li::before { + @apply absolute ltr:left-0 rtl:right-0; + } + ol.custom-list ol, + ul.custom-list ul { + @apply mt-3; + } + ol.custom-list ol li, + ul.custom-list ul li { + @apply ltr:pl-6 rtl:pr-6; + } + .lits-by-numbaring { + counter-reset: listitem; + } + .lits-by-numbaring li { + @apply ltr:pl-[1.3em] rtl:pr-[1.3em] relative -mx-1; + } + .lits-by-numbaring li::before { + counter-increment: listitem; + content: counters(listitem, ".") "."; + } + .lits-by-slash li { + @apply pl-4 relative; + } + .lits-by-slash li::before { + left: 6px; + content: "-"; + } + .form-label { + @apply mb-2 text-slate-600 dark:text-slate-300 text-sm leading-6 capitalize cursor-pointer block w-full font-medium rtl:text-right rtl:block; + } + .form-control { + @apply bg-white dark:bg-slate-900 transition duration-300 ease-in-out border border-slate-200 + dark:border-slate-700 dark:text-slate-300 focus:ring-1 focus:ring-slate-600 + dark:focus:ring-slate-900 focus:outline-none focus:ring-opacity-90 rounded + placeholder:text-slate-400 text-slate-900 text-sm px-3 placeholder:font-normal dark:placeholder:text-slate-400 block w-full; + } + .input-description { + @apply block text-secondary-500 font-light leading-4 text-xs mt-2; + } + .fromGroup { + @apply relative; + } + .fromGroup.has-error .form-control { + @apply border-danger-500 focus:ring-danger-500 focus:ring-opacity-90 focus:ring-1; + } + .fromGroup.is-valid .form-control { + @apply border-success-500 focus:ring-success-500 focus:ring-opacity-90 focus:ring-1; + } + .form-control[readonly] { + @apply bg-slate-200 text-slate-400 dark:bg-slate-600 cursor-pointer placeholder:text-slate-400; + } + .form-control[disabled] { + @apply cursor-not-allowed bg-slate-50 text-slate-800 placeholder:text-opacity-60 dark:bg-slate-600; + } + .text-vtd-primary-500-600 { + color: #0f172a !important; + } + .bg-vtd-primary-500-500 { + background-color: #0f172a !important; + } + .text-vtd-primary-500-500 { + color: #0f172a !important; + } + .dark .text-vtd-primary-500-600 { + color: #f8fafc !important; + } + .dark .text-vtd-primary-500-500 { + color: #f8fafc !important; + } + .dark .bg-vtd-primary-500-500 { + background-color: #334155 !important; + } + .file-control { + @apply bg-transparent dark:bg-slate-900 dark:text-white transition duration-300 ease-in-out border border-slate-200 dark:border-slate-700 focus:ring-1 focus:ring-slate-900 dark:focus:ring-slate-900 focus:outline-none focus:ring-opacity-90 rounded text-sm ltr:pl-3 rtl:pr-3 placeholder:font-normal; + } + .badge-title { + @apply bg-slate-900 text-white px-2 py-[3px] rounded text-sm; + } + .flatpickr-day.selected, + .flatpickr-day.startRange, + .flatpickr-day.endRange, + .flatpickr-day.selected.inRange, + .flatpickr-day.startRange.inRange, + .flatpickr-day.endRange.inRange, + .flatpickr-day.selected:focus, + .flatpickr-day.startRange:focus, + .flatpickr-day.endRange:focus, + .flatpickr-day.selected:hover, + .flatpickr-day.startRange:hover, + .flatpickr-day.endRange:hover, + .flatpickr-day.selected.prevMonthDay, + .flatpickr-day.startRange.prevMonthDay, + .flatpickr-day.endRange.prevMonthDay, + .flatpickr-day.selected.nextMonthDay, + .flatpickr-day.startRange.nextMonthDay, + .flatpickr-day.endRange.nextMonthDay { + @apply bg-slate-900 border-black-500; + } + .input-group-control { + @apply bg-white dark:bg-slate-900 dark:placeholder:text-slate-400 transition duration-300 ease-in-out border border-slate-200 dark:border-slate-700 focus:ring-0 focus:outline-none + rounded placeholder:text-slate-400 text-slate-900 text-sm px-3 placeholder:font-light focus:border-slate-600 dark:focus:border-slate-900 dark:text-white; + } + .fromGroup2.has-error .input-group-control { + @apply border-danger-500 focus:ring-danger-500 focus:ring-opacity-90 focus:ring-1; + } + .fromGroup2.is-valid .input-group-control { + @apply border-success-500 focus:ring-success-500 focus:ring-opacity-90 focus:ring-1; + } + .input-group-control[readonly] { + @apply bg-slate-200 text-slate-400 dark:bg-slate-600; + } + .input-group-control[disabled] { + @apply cursor-not-allowed bg-slate-50 text-slate-400 placeholder:text-opacity-60 dark:bg-slate-600; + } + .input-group-text { + @apply bg-white dark:bg-slate-900 transition duration-300 ease-in-out flex items-center justify-center px-3 border + border-slate-200 dark:border-slate-700 ltr:rounded-tl rtl:rounded-tr rtl:rounded-br ltr:rounded-bl text-slate-400 text-base font-light; + } + .inputGroup.has-prepend .input-group-control { + @apply ltr:border-l-0 rtl:border-r-0 ltr:rounded-tl-[0] rtl:rounded-tr-[0] ltr:rounded-bl-[0] rtl:rounded-br-[0]; + } + .inputGroup.has-prepend-slot .input-group-control { + @apply ltr:border-l-0 rtl:border-r-0 ltr:rounded-tl-[0] rtl:rounded-tr-[0] ltr:rounded-bl-[0] rtl:rounded-br-[0] focus:ring-0 focus:border-slate-600 dark:focus:border-slate-700; + } + .inputGroup.has-append-slot .input-group-control { + @apply ltr:border-r-0 rtl:border-l-0 ltr:rounded-tr-[0] rtl:rounded-tl-[0] ltr:rounded-br-[0] rtl:rounded-bl-[0] focus:ring-0 focus:border-slate-600 dark:focus:border-slate-700; + } + .inputGroup.has-append .input-group-control { + @apply ltr:border-r-0 rtl:border-l-0 ltr:rounded-tr-[0] rtl:rounded-tl-[0] rounded-br-[0] rtl:rounded-bl-[0]; + } + .inputGroup.has-append .input-group-addon.right .input-group-text { + @apply ltr:rounded-tl-[0] ltr:rounded-bl-[0] ltr:rounded-tr ltr:rounded-br rtl:rounded-tl rtl:rounded-bl rtl:rounded-tr-[0] rtl:rounded-br-[0]; + } + .inputGroup:focus-within .input-group-text { + @apply border-black-500 dark:border-slate-900; + } + /* .merged .inputGroup:focus-within .input-group-text { + } */ + .inputGroup.is-invalid .input-group-text { + @apply border-danger-500; + } + .inputGroup.is-invalid:focus-within .input-group-text { + @apply ring-danger-500; + } + .inputGroup.is-valid .input-group-text { + @apply border-success-500; + } + .inputGroup.is-valid:focus-within .input-group-text { + @apply ring-success-500; + } + .prepend-slot .btn, + .append-slot .btn { + @apply pt-0 pb-0 h-full items-center hover:ring-0 rounded-tr-[0] rounded-br-[0] -mx-3; + } + .prepend-slot > div, + .prepend-slot button, + .append-slot > div, + .append-slot button { + @apply h-full; + } + .input-group-addon.right .append-slot .btn { + @apply rounded-tl-[0] rounded-bl-[0] rounded-tr rounded-br -mx-3; + } + .merged .input-group-addon .input-group-text { + @apply ltr:border-r-0 ltr:pr-0 rtl:border-l-0 rtl:pl-0; + } + .merged .input-group-addon.right .input-group-text { + @apply ltr:border-l-0 rtl:border-r-0 ltr:border-r rtl:border-l ltr:pr-3 rtl:pl-3 ltr:pl-0 rtl:pr-0; + } + .dashcode-app .react-select.is-invalid .select__control { + border-color: none !important; + } + .dashcode-app .select__control { + @apply border-slate-200; + } + .dashcode-app .has-error .select__control { + @apply border-danger-500; + } + .dashcode-app .select__control .select__input, + .dashcode-app .react-select__control .select__input { + @apply text-slate-500; + } + .dashcode-app .select__control.select__control--is-disabled, + .dashcode-app .react-select__control.select__control--is-disabled { + @apply cursor-not-allowed; + } + .dashcode-app .select__control.select__control--is-disabled .select__indicator-separator, + .dashcode-app .react-select__control.select__control--is-disabled .select__indicator-separator { + @apply bg-slate-50 text-slate-800 placeholder:text-opacity-60; + } + .dashcode-app .select__control.select__control--is-focused, .dashcode-app .select__control.react-select__control--is-focused, + .dashcode-app .react-select__control.select__control--is-focused, + .dashcode-app .react-select__control.react-select__control--is-focused { + box-shadow: none; + @apply border-slate-600; + } + .dashcode-app .select__control .select__indicator svg, + .dashcode-app .react-select__control .select__indicator svg { + cursor: pointer; + @apply text-slate-600; + } + .dashcode-app .select__control .select__indicator-separator, + .dashcode-app .react-select__control .select__indicator-separator { + display: none; + } + .dashcode-app .select__control .select__single-value, + .dashcode-app .react-select__control .select__single-value { + @apply text-slate-600 text-sm; + } + .dashcode-app .select__control .select__placeholder, + .dashcode-app .react-select__control .select__placeholder { + @apply text-slate-400; + } + .dashcode-app .has-error .select__control .select__indicator svg, + .dashcode-app .has-error .react-select__control .select__indicator svg { + @apply text-danger-500; + } + .dashcode-app .select__menu .select__menu-list .select__option, + .dashcode-app .select__menu .select__menu-list .react-select__option, + .dashcode-app .select__menu .react-select__menu-list .select__option, + .dashcode-app .select__menu .react-select__menu-list .react-select__option, + .dashcode-app .react-select__menu .select__menu-list .select__option, + .dashcode-app .react-select__menu .select__menu-list .react-select__option, + .dashcode-app .react-select__menu .react-select__menu-list .select__option, + .dashcode-app .react-select__menu .react-select__menu-list .react-select__option { + cursor: pointer; + } + .dashcode-app .select__menu .select__menu-list .select__option.select__option--is-focused, + .dashcode-app .select__menu .select__menu-list .react-select__option.select__option--is-focused, + .dashcode-app .select__menu .react-select__menu-list .select__option.select__option--is-focused, + .dashcode-app .select__menu .react-select__menu-list .react-select__option.select__option--is-focused, + .dashcode-app .react-select__menu .select__menu-list .select__option.select__option--is-focused, + .dashcode-app .react-select__menu .select__menu-list .react-select__option.select__option--is-focused, + .dashcode-app .react-select__menu .react-select__menu-list .select__option.select__option--is-focused, + .dashcode-app .react-select__menu .react-select__menu-list .react-select__option.select__option--is-focused { + @apply bg-secondary-500 text-slate-900 bg-opacity-30; + } + .dashcode-app .select__menu .select__menu-list .select__option.select__option--is-selected, + .dashcode-app .select__menu .select__menu-list .react-select__option.select__option--is-selected, + .dashcode-app .select__menu .react-select__menu-list .select__option.select__option--is-selected, + .dashcode-app .select__menu .react-select__menu-list .react-select__option.select__option--is-selected, + .dashcode-app .react-select__menu .select__menu-list .select__option.select__option--is-selected, + .dashcode-app .react-select__menu .select__menu-list .react-select__option.select__option--is-selected, + .dashcode-app .react-select__menu .react-select__menu-list .select__option.select__option--is-selected, + .dashcode-app .react-select__menu .react-select__menu-list .react-select__option.select__option--is-selected { + @apply bg-secondary-900 text-slate-200; + } + .dashcode-app .select__menu .select__menu-list .select__group .select__group-heading, + .dashcode-app .select__menu .react-select__menu-list .select__group .select__group-heading, + .dashcode-app .react-select__menu .select__menu-list .select__group .select__group-heading, + .dashcode-app .react-select__menu .react-select__menu-list .select__group .select__group-heading { + margin-bottom: 0.5rem; + @apply text-slate-900 capitalize; + font-weight: bolder; + font-size: inherit; + } + .dashcode-app .select__multi-value, + .dashcode-app .react-select__multi-value { + @apply text-white bg-slate-900; + border-radius: 3px; + margin: 0 0.7rem 0 0; + } + .dashcode-app .select__multi-value .select__multi-value__label, + .dashcode-app .react-select__multi-value .select__multi-value__label { + @apply text-white; + font-size: 0.85rem; + border-radius: 10px; + padding: 0.26rem 0.6rem; + } + .dashcode-app .select__multi-value .select__multi-value__remove, + .dashcode-app .react-select__multi-value .select__multi-value__remove { + padding-left: 0; + padding-right: 0.5rem; + } + .dashcode-app .select__multi-value .select__multi-value__remove:hover, + .dashcode-app .react-select__multi-value .select__multi-value__remove:hover { + background-color: inherit; + color: inherit; + } + .dashcode-app .select__multi-value .select__multi-value__remove svg, + .dashcode-app .react-select__multi-value .select__multi-value__remove svg { + height: 0.85rem; + width: 0.85rem; + } + .dashcode-app .select__multi-value .select__multi-value__remove svg:hover, + .dashcode-app .react-select__multi-value .select__multi-value__remove svg:hover { + cursor: pointer; + } + .select-borderless .select__control { + border: 0; + } + .select-borderless .select__control .select__indicators { + display: none; + } + .dark .select__control { + @apply bg-slate-900 border-slate-700; + } + .dark .select__control .select__indicator svg { + @apply fill-slate-500; + } + .dark .select__control .select__input { + color: #cbd5e1 !important; + } + .dark .select__control .select__indicator span, + .dark .select__control .select__single-value { + color: #cbd5e1; + } + .dark .select__control .select__multi-value { + @apply bg-slate-700; + } + .dark .select__control .select__multi-value .select__multi-value__label { + @apply text-slate-300; + } + .dark .select__control .select__multi-value__remove svg { + fill: #cbd5e1; + } + .dark .select__control .select__multi-value__remove:hover { + background-color: transparent !important; + } + .dark .select__control .select__placeholder { + @apply text-slate-400; + } + .dark .select__menu { + @apply bg-slate-800; + } + .dark .select__menu .select__menu-list .select__option.select__option--is-focused, + .dark .select__menu .select__menu-list .react-select__option.select__option--is-focused, + .dark .select__menu .react-select__menu-list .select__option.select__option--is-focused, + .dark .select__menu .react-select__menu-list .react-select__option.select__option--is-focused, + .dark .react-select__menu .select__menu-list .select__option.select__option--is-focused, + .dark .react-select__menu .select__menu-list .react-select__option.select__option--is-focused, + .dark .react-select__menu .react-select__menu-list .select__option.select__option--is-focused, + .dark .react-select__menu .react-select__menu-list .react-select__option.select__option--is-focused { + @apply bg-slate-500 text-slate-300 bg-opacity-50; + } + .dark .select__menu .select__menu-list .select__option.select__option--is-selected, + .dark .select__menu .select__menu-list .react-select__option.select__option--is-selected, + .dark .select__menu .react-select__menu-list .select__option.select__option--is-selected, + .dark .select__menu .react-select__menu-list .react-select__option.select__option--is-selected, + .dark .react-select__menu .select__menu-list .select__option.select__option--is-selected, + .dark .react-select__menu .select__menu-list .react-select__option.select__option--is-selected, + .dark .react-select__menu .react-select__menu-list .select__option.select__option--is-selected, + .dark .react-select__menu .react-select__menu-list .react-select__option.select__option--is-selected { + @apply bg-slate-900 text-slate-200; + } + html[dir=rtl] .select__control .select__loading-indicator { + flex-direction: row-reverse; + } + .pagination { + @apply flex items-center space-x-4 flex-wrap rtl:space-x-reverse; + } + .pagination li .prev-next-btn:disabled { + @apply cursor-not-allowed opacity-50; + } + .pagination li a, + .pagination li div, + .pagination li .page-link { + @apply bg-slate-100 dark:bg-slate-700 dark:text-slate-400 text-slate-900 text-sm font-normal rounded leading-[16px] flex h-6 w-6 items-center justify-center transition-all duration-150; + } + .pagination li a.active, + .pagination li div.active, + .pagination li .page-link.active { + @apply bg-slate-900 dark:bg-slate-600 dark:text-slate-200 text-white font-medium; + } + .pagination.bordered { + @apply border border-[#D8DEE6] rounded-[3px] py-1 px-2; + } + .pagination.bordered li { + @apply text-slate-500; + } + .pagination.bordered li:first-child button, .pagination.bordered li:last-child button { + @apply hover:bg-slate-900 hover:text-white transition duration-150 text-slate-500 h-6 w-6 flex items-center justify-center rounded; + } + .pagination.bordered li a, + .pagination.bordered li div, + .pagination.bordered li .page-link { + @apply bg-transparent text-slate-500; + } + .pagination.bordered li a.active, + .pagination.bordered li div.active, + .pagination.bordered li .page-link.active { + @apply bg-slate-900 text-white; + } + .pagination.border-group { + @apply border border-[#D8DEE6] rounded-[3px] px-0 space-x-0 rtl:space-x-reverse; + } + .pagination.border-group li { + @apply border-r border-[#D8DEE5] h-full flex flex-col justify-center px-3 last:border-none text-slate-500; + } + .pagination.border-group li a, + .pagination.border-group li div, + .pagination.border-group li .page-link { + @apply bg-transparent text-slate-500 dark:text-white h-auto w-auto; + } + .pagination.border-group li a.active, + .pagination.border-group li div.active, + .pagination.border-group li .page-link.active { + @apply text-slate-900 dark:text-white text-lg; + } + .breadcrumbs { + @apply flex text-sm space-x-2 items-center; + } + .breadcrumbs li { + @apply relative flex items-center space-x-2 capitalize font-normal rtl:space-x-reverse; + } + .breadcrumbs li .breadcrumbs-icon { + @apply text-lg text-secondary-500 dark:text-slate-500; + } + .has-sticky-header { + @apply my-5 top-5 rounded-md sticky z-[999]; + } + .has-sticky-header .app-header { + @apply md:mx-6 mx-[15px] rounded-md; + } + .has-sticky-header::after { + position: absolute; + z-index: -10; + --tw-backdrop-blur: blur(12px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + --tw-content: ""; + content: var(--tw-content); + background: linear-gradient(180deg, rgba(var(--v-theme-background), 70%) 44%, rgba(var(--v-theme-background), 43%) 73%, rgba(var(--v-theme-background), 0%)); + background-repeat: repeat; + block-size: 5.5rem; + inset-block-start: -1.5rem; + inset-inline-end: 0; + inset-inline-start: 0; + -webkit-mask: linear-gradient(black, black 18%, transparent 100%); + mask: linear-gradient(black, black 18%, transparent 100%); + } + .main-menu > ul > li { + @apply inline-block relative; + } + .main-menu > ul > li > a { + @apply relative flex capitalize items-start text-sm font-medium leading-6 text-slate-600 dark:text-slate-300 2xl:px-6 xl:px-5 py-6 transition-all duration-150; + } + .main-menu > ul > li > a .icon-box { + @apply text-slate-500 dark:text-slate-300 transition-all duration-150 text-lg; + } + .main-menu > ul > li:hover > a { + @apply text-primary-500; + } + .main-menu > ul > li:hover > a .icon-box { + @apply text-primary-500; + } + .main-menu > ul > li.has-megamenu { + @apply static; + } + .main-menu > ul > li.menu-item-has-children > ul.sub-menu, + .main-menu > ul > li.menu-item-has-children > .rt-mega-menu { + @apply absolute left-0 min-w-[178px] w-max top-[110%] px-4 py-3 bg-white + rounded-[4px] dark:bg-slate-800 z-[999] invisible opacity-0 transition-all duration-150 + shadow-base2; + } + .main-menu > ul > li.menu-item-has-children > .rt-mega-menu { + @apply max-w-[1170px] left-1/2 -translate-x-1/2; + } + .main-menu > ul > li.menu-item-has-children > .rt-mega-menu { + @apply w-full; + } + .main-menu > ul > li.menu-item-has-children:hover > ul.sub-menu, + .main-menu > ul > li.menu-item-has-children:hover > .rt-mega-menu { + @apply top-full visible opacity-100; + } + .main-menu > ul > li.menu-item-has-children > ul.sub-menu li { + @apply relative pb-2 last:pb-0; + } + .main-menu > ul > li.menu-item-has-children > ul.sub-menu li a { + @apply text-sm font-normal text-slate-600 dark:text-slate-300 dark:hover:text-primary-500 capitalize py-1 last:pb-0 block hover:text-primary-500; + } + .rt-mega-menu a { + @apply dark:text-slate-300 dark:hover:text-primary-500 text-sm py-[6px] block; + } + .sidebar-wrapper { + @apply fixed ltr:left-0 rtl:right-0 top-0 h-screen z-[999]; + transition: width 0.2s cubic-bezier(0.39, 0.575, 0.565, 1); + will-change: width; + } + .nav-shadow { + background: linear-gradient(rgb(255, 255, 255) 5%, rgba(255, 255, 255, 0.75) 45%, rgba(255, 255, 255, 0.2) 80%, transparent); + } + .dark .nav-shadow { + background: linear-gradient(#1e293b 5%, rgba(30, 41, 59, 0.75) 45%, rgba(30, 41, 59, 0.2) 80%, transparent); + } + .sidebar-wrapper.sidebar-hovered { + width: 248px !important; + } + .logo-segment.logo-hovered { + width: 248px !important; + } + .sidebar-menu-container { + height: calc(100% - 4.45rem) !important; + } + .submenu_enter-active, + .submenu_leave-active { + overflow: hidden; + transition: all 0.34s linear; + } + .not-collapsed .has-icon { + transition: all 0.34s linear; + } + .not-collapsed .has-icon { + @apply transform rotate-180; + } + .single-sidebar-menu { + @apply relative; + } + .single-sidebar-menu .menulabel { + @apply text-slate-800 dark:text-slate-300 text-xs font-semibold uppercase mb-4 mt-4; + } + .single-sidebar-menu > .menu-link { + @apply flex text-slate-600 font-medium dark:text-slate-300 text-sm capitalize px-[10px] py-3 rounded-[4px] cursor-pointer; + } + .single-sidebar-menu .menu-icon { + @apply icon-box inline-flex items-center text-slate-600 dark:text-slate-300 text-lg ltr:mr-3 rtl:ml-3; + } + .item-has-children .menu-arrow { + @apply h-5 w-5 text-base text-slate-300 bg-slate-100 dark:bg-[#334155] dark:text-slate-300 rounded-full flex justify-center items-center; + } + .close_sidebar .menulabel { + @apply hidden; + } + .menu-badge { + @apply py-1 px-2 text-xs capitalize font-semibold rounded-[.358rem] whitespace-nowrap align-baseline inline-flex bg-slate-900 text-slate-50 dark:bg-slate-700 dark:text-slate-300; + } + .close_sidebar:not(.sidebar-hovered) .menu-arrow { + @apply hidden; + } + .close_sidebar:not(.sidebar-hovered) .single-sidebar-menu .text-box { + @apply absolute left-full ml-5 w-[180px] top-0 px-4 py-3 bg-white shadow-dropdown rounded-[4px] dark:bg-slate-800 z-[999] invisible opacity-0 transition-all duration-150; + } + .close_sidebar:not(.sidebar-hovered) .single-sidebar-menu:hover .text-box { + @apply visible opacity-100; + } + .close_sidebar:not(.sidebar-hovered) .item-has-children .text-box { + @apply hidden; + } + .close_sidebar:not(.sidebar-hovered) .item-has-children ul.sub-menu { + @apply ml-4 absolute left-full top-0 w-[230px] bg-white shadow-dropdown rounded-[4px] dark:bg-slate-800 z-[999] px-4 pt-3 transition-all duration-150 invisible opacity-0; + display: block !important; + } + .close_sidebar:not(.sidebar-hovered) .item-has-children:hover > ul { + @apply visible opacity-100; + } + .close_sidebar:not(.sidebar-hovered) .menu-badge { + @apply hidden; + } + .item-has-children .parent_active { + @apply bg-secondary-500 bg-opacity-20; + } + .item-has-children .parent_active .icon-box, + .item-has-children .parent_active .menu-icon, + .item-has-children .parent_active .text-box { + @apply text-slate-700 dark:text-slate-200; + } + .item-has-children .parent_active .menu-arrow { + @apply bg-secondary-500 text-slate-600 text-opacity-70 bg-opacity-30 dark:text-white; + } + .menu-item-active .menu-link { + @apply bg-slate-800 dark:bg-slate-700; + } + .menu-item-active .menu-link .icon-box, + .menu-item-active .menu-link .menu-icon, + .menu-item-active .menu-link .text-box { + @apply text-white dark:text-slate-300; + } + .menu-item-active .menu-badge { + @apply bg-slate-100 text-slate-900; + } + .settings-enter { + opacity: 0; + transform: scale(0.9); + } + .settings-enter-active { + opacity: 1; + transform: translateX(0); + transition: opacity 300ms, transform 300ms; + } + .settings-exit { + opacity: 1; + } + .settings-exit-active { + opacity: 0; + transform: scale(0.9); + transition: opacity 300ms, transform 300ms; + } + .page-content { + @apply md:pt-6 md:pb-[37px] md:px-6 pt-[15px] px-[15px] pb-24; + } + .page-min-height { + min-height: calc(var(--vh, 1vh) * 100 - 132px); + } + .social-link { + @apply h-8 w-8 flex flex-col items-center justify-center border-black-500 dark:border-slate-700 border rounded-full text-slate-900 dark:text-slate-300 leading-[1] hover:bg-slate-900 dark:hover:bg-slate-700 hover:text-white transition duration-150; + } + .legend-ring .apexcharts-legend-series:nth-child(1) .apexcharts-legend-marker { + @apply ring-4 ring-primary-500 ring-opacity-30 rtl:ml-4; + } + .legend-ring .apexcharts-legend-series:nth-child(2) .apexcharts-legend-marker { + @apply ring-4 ring-info-500 ring-opacity-30 rtl:ml-4; + } + .legend-ring .apexcharts-legend-series:nth-child(3) .apexcharts-legend-marker { + @apply ring-4 ring-warning-500 ring-opacity-30 rtl:ml-4; + } + .legend-ring2 .apexcharts-legend-series:nth-child(1) .apexcharts-legend-marker { + @apply ring-4 ring-info-500 ring-opacity-30 rtl:ml-4; + } + .legend-ring2 .apexcharts-legend-series:nth-child(2) .apexcharts-legend-marker { + @apply ring-4 ring-warning-500 ring-opacity-30 rtl:ml-4; + } + .legend-ring3 .apexcharts-legend-series:nth-child(1) .apexcharts-legend-marker { + @apply ring-4 ring-success-500 ring-opacity-30 rtl:ml-4; + } + .legend-ring3 .apexcharts-legend-series:nth-child(2) .apexcharts-legend-marker { + @apply ring-4 ring-warning-500 ring-opacity-30 rtl:ml-4; + } + .legend-ring3 .apexcharts-legend-series:nth-child(3) .apexcharts-legend-marker { + @apply ring-4 ring-secondary-500 ring-opacity-30 rtl:ml-4; + } + .legend-ring4 .apexcharts-legend-series:nth-child(1) .apexcharts-legend-marker { + @apply ring-4 ring-primary-500 ring-opacity-30 rtl:ml-4; + } + .legend-ring4 .apexcharts-legend-series:nth-child(2) .apexcharts-legend-marker { + @apply ring-4 ring-warning-500 ring-opacity-30 rtl:ml-4; + } + [dir=rtl] .charts .apexcharts-legend-marker { + margin-left: 10px !important; + } + .app_height { + height: calc(var(--vh, 1vh) * 100 - 12.1rem); + } + .email-icon { + @apply h-8 w-8 bg-slate-100 dark:bg-slate-900 dark:text-slate-200 text-slate-600 flex flex-col justify-center items-center text-base rounded-full cursor-pointer; + } + .chat-height { + height: calc(var(--vh, 1vh) * 100 - 12.1rem); + } + @media (max-width: 768px) { + .chat-height { + height: calc(var(--vh, 1vh) * 100 - 10.5rem); + } + } + .contact-height { + height: calc(100% - 138px); + } + .msg-height { + height: calc(100% - 0px); + } + .parent-height { + height: calc(100% - 200px); + } + .msg-action-btn { + @apply md:h-8 md:w-8 h-6 w-6 cursor-pointer bg-slate-100 dark:bg-slate-900 dark:text-slate-400 text-slate-900 flex flex-col justify-center items-center md:text-xl text-sm rounded-full; + } + .info-500-list { + @apply text-xs text-slate-600; + } + .info-500-list li { + @apply flex space-x-2; + } + .info-500-list li span:nth-child(1) { + @apply font-medium flex-none text-right; + } + .info-500-list li span:nth-child(2) { + @apply flex-1 text-right; + } + .dashcode-app .ql-editor { + min-height: 120px; + } + .dashcode-app .ql-toolbar.ql-snow { + @apply border-none p-0 mb-2; + } + .dashcode-app .ql-container.ql-snow { + @apply bg-[#FBFBFB] dark:bg-slate-900 border-none text-base; + } + .dashcode-app .ql-editor { + @apply border-slate-200 dark:border-slate-700 border rounded text-base; + } + .dark .ql-snow .ql-stroke { + @apply stroke-slate-300; + } + .dark .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label { + @apply bg-slate-700; + } + .dark .ql-snow.ql-toolbar button:hover, + .dark .ql-snow .ql-toolbar button:hover, + .dark .ql-snow.ql-toolbar button:focus, + .dark .ql-snow .ql-toolbar button:focus, + .dark .ql-snow.ql-toolbar .ql-picker-label:hover, + .dark .ql-snow .ql-toolbar .ql-picker-label:hover, + .dark .ql-snow.ql-toolbar .ql-picker-item:hover, + .dark .ql-snow .ql-toolbar .ql-picker-item:hover { + @apply bg-slate-700; + } + .dark .ql-picker-label { + @apply text-slate-300; + } + .dark .ql-snow .ql-picker.ql-expanded .ql-picker-label { + @apply bg-slate-300 border-slate-700; + } + .date-label { + @apply text-xs text-slate-400 dark:text-slate-400 mb-1; + } + .date-text { + @apply text-xs text-slate-600 dark:text-slate-300 font-medium; + } + .icon-lists li { + margin-right: 12px; + margin-bottom: 12px; + } + .date-range-custom { + @apply relative w-[140px]; + } + .date-range-custom .input-class { + @apply opacity-0 cursor-pointer; + } + .date-range-custom .container-class { + @apply w-full h-[44px] bg-white dark:bg-slate-800 before:px-3 before:text-sm before:text-slate-900 rounded cursor-pointer; + } + .date-range-custom .container-class:before { + content: "Weekly"; + position: absolute; + top: 50%; + transform: translateY(-50%) translateX(-50%); + left: calc(50% + 10px); + } + .date-range-custom .container-class:after { + content: url("https://api.iconify.design/heroicons/calendar.svg?width=18&height=18"); + height: 20px; + position: absolute; + top: 50%; + transform: translateY(-50%) translateX(-50%); + left: calc(50% - 30px); + } + .date-range-custom .container-class > button { + @apply hidden; + } + .date-range-custom2 { + @apply relative w-[160px]; + } + .date-range-custom2 .input-class { + @apply opacity-0 cursor-pointer; + } + .date-range-custom2 .container-class { + @apply w-full h-[44px] bg-white dark:bg-slate-800 before:px-3 before:text-sm before:text-slate-900 rounded cursor-pointer; + } + .date-range-custom2 .container-class:before { + content: "Select date"; + position: absolute; + top: 50%; + transform: translateY(-50%); + left: 0; + padding-left: 30px; + width: 100%; + text-align: center; + } + .date-range-custom2 .container-class:after { + content: url("https://api.iconify.design/heroicons-outline/filter.svg?width=18&height=18"); + height: 20px; + position: absolute; + top: 50%; + transform: translateY(-50%) translateX(-50%); + left: calc(50% - 43px); + } + .date-range-custom2 .container-class > button { + @apply hidden; + } + .dark .date-range-custom .container-class::before, .dark .date-range-custom .container-class::after, + .dark .date-range-custom2 .container-class::before, + .dark .date-range-custom2 .container-class::after { + @apply text-slate-300; + } + .dark .date-range-custom .container-class:after { + content: url("https://api.iconify.design/heroicons/calendar.svg?color=white&width=18&height=18"); + } + .dark .date-range-custom2 .container-class:after { + content: url("https://api.iconify.design/heroicons-outline/filter.svg?color=white&width=18&height=18"); + } + .profileAnimation-enter { + opacity: 0; + transform: translateX(-100%); + } + .profileAnimation-enter-active { + opacity: 1; + transform: translateX(-120px); + transition: opacity 300ms, transform 300ms; + } + .profileAnimation-exit { + opacity: 1; + } + .profileAnimation-exit-active { + opacity: 0; + transform: translateX(-100%); + transition: opacity 300ms, transform 300ms; + } + .slide-in-left-enter { + opacity: 0; + transform: scale(0.9); + } + .slide-in-left-enter-active { + opacity: 1; + transform: translateX(0); + transition: opacity 300ms, transform 300ms; + } + .slide-in-left-exit { + opacity: 1; + } + .slide-in-left-exit-active { + opacity: 0; + transform: scale(0.9); + transition: opacity 300ms, transform 300ms; + } + .dashcode-app .react-calendar { + @apply w-full bg-white border-none; + } + .dashcode-app .react-calendar__navigation__prev2-button { + @apply hidden; + } + .dashcode-app .react-calendar__navigation__next2-button { + @apply hidden; + } + .dashcode-app .react-calendar__navigation__label { + @apply text-slate-900 text-2xl; + } + .dashcode-app .react-calendar__navigation button:enabled:hover, + .dashcode-app .react-calendar__navigation button:enabled:focus { + @apply bg-transparent; + } + .dashcode-app .react-calendar__navigation { + @apply mb-2; + } + .dashcode-app .react-calendar__navigation__arrow { + @apply text-4xl; + } + .dashcode-app .react-calendar__month-view__weekdays__weekday { + @apply text-sm font-normal text-slate-600 capitalize p-0 mb-2; + } + .dashcode-app .react-calendar__month-view__weekdays__weekday abbr { + @apply no-underline; + } + .dashcode-app .react-calendar__month-view__weekdays__weekday .react-calendar__tile { + @apply text-slate-600; + } + .dashcode-app .react-calendar__month-view__weekdays__weekday .react-calendar__tile.react-calendar__month-view__days__day--weekend { + @apply text-danger-500; + } + .dashcode-app .react-calendar__tile { + @apply text-sm font-normal capitalize w-8 h-8 flex flex-col items-center justify-center rounded; + } + .dashcode-app.dark .react-calendar { + @apply bg-slate-800; + } + .dashcode-app.dark .react-calendar__navigation__label { + @apply text-slate-300; + } + .dashcode-app.dark .react-calendar__month-view__weekdays__weekday { + @apply text-slate-300; + } + .dashcode-app.dark .react-calendar__tile { + @apply text-slate-400; + } + .dashcode-app.dark .react-calendar__tile.react-calendar__month-view__days__day--weekend { + @apply text-danger-500; + } + .dashcode-app.dark .react-calendar__tile:enabled:hover, + .dashcode-app.dark .react-calendar__tile:enabled:focus { + @apply bg-slate-700; + } + .dashcode-app .react-calendar__tile--active { + @apply bg-slate-900 text-white; + } + .dashcode-app .fc-toolbar-chunk button { + height: 50px; + } + .dashcode-app .fc-toolbar-chunk button.fc-prev-button:after { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + } + .dashcode-app .fc-toolbar-chunk button.fc-next-button:after { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + } + .dashcode-app .fc-button { + font-size: 14px !important; + line-height: 14px !important; + height: auto !important; + text-transform: capitalize !important; + font-family: Inter !important; + padding: 12px 20px 12px 20px !important; + } + .dashcode-app .fc .fc-button-primary { + background: transparent !important; + @apply text-slate-900 dark:text-white border-slate-100; + } + .dashcode-app .fc .fc-button-primary:not(:disabled):active, + .dashcode-app .fc .fc-button-primary:not(:disabled).fc-button-active, + .dashcode-app .fc .fc-button-primary:hover { + background: #111112 !important; + color: #fff !important; + } + .dashcode-app .fc .fc-button-primary:disabled { + background: #a0aec0 !important; + border-color: #a0aec0 !important; + @apply cursor-not-allowed; + } + .dashcode-app .fc .fc-daygrid-day.fc-day-today { + background: rgba(95, 99, 242, 0.04) !important; + } + .dashcode-app .fc .fc-button-primary:focus { + box-shadow: none !important; + } + .dashcode-app .fc-theme-standard .fc-scrollgrid { + border-color: #eef1f9 !important; + } + .dashcode-app .fc-theme-standard td, + .dashcode-app .fc-theme-standard th { + @apply border-slate-100 dark:border-slate-700; + } + .dashcode-app .fc-col-header-cell .fc-scrollgrid-sync-inner { + @apply bg-slate-50 dark:bg-slate-700 text-xs text-slate-500 dark:text-slate-300 font-normal py-3; + } + .dashcode-app .fc-daygrid-day-top { + @apply text-sm px-3 py-2 text-slate-900 dark:text-white font-normal; + } + .dashcode-app .fc-h-event .fc-event-main-frame { + @apply justify-center text-center w-max mx-auto; + } + .dashcode-app .fc-h-event .fc-event-main-frame .fc-event-time { + @apply font-normal flex-none; + } + .dashcode-app .fc-event-time { + @apply text-sm font-normal; + } + .dashcode-app .fc-event-title { + font-size: 14px !important; + font-weight: 300 !important; + } + .dashcode-app .fc .fc-toolbar-title { + @apply text-lg font-normal text-slate-600 dark:text-slate-300; + } + .dashcode-app .fc-daygrid-event-dot { + @apply hidden; + } + @media (max-width: 981px) { + .dashcode-app .fc-button-group, + .dashcode-app .fc .fc-toolbar { + display: block !important; + } + .dashcode-app .fc .fc-toolbar { + @apply space-y-4; + } + .dashcode-app .fc-toolbar-chunk { + @apply space-y-4; + } + .dashcode-app .fc .fc-button { + padding: 0.4em 0.65em !important; + } + } + .dashcode-app .fc .fc-timegrid-axis-cushion, + .dashcode-app .fc .fc-timegrid-slot-label-cushion { + @apply dark:text-slate-300; + } + .dashcode-app .fc .fc-list-event:hover td { + @apply bg-inherit; + } + .dashcode-app .fc .fc-list-event-dot { + @apply hidden; + } + .dashcode-app .fc-direction-ltr .fc-list-day-text, + .dashcode-app .fc-direction-rtl .fc-list-day-side-text, + .dashcode-app .fc-direction-ltr .fc-list-day-side-text, + .dashcode-app .fc-direction-rtl .fc-list-day-text { + font-size: 16px; + font-weight: 500; + } + .dark .fc-col-header-cell .fc-scrollgrid-sync-inner { + @apply bg-slate-700 text-slate-300; + } + .dark .fc-daygrid-day-top { + @apply text-slate-300; + } + .dark .fc .fc-day-other .fc-daygrid-day-top { + @apply opacity-70; + } + .dark .fc .fc-button-primary { + @apply border-slate-600 text-slate-300; + } + .dark .fc-theme-standard td, + .dark .fc-theme-standard th { + @apply border-slate-700; + } + .dark .fc .fc-toolbar-title { + @apply text-slate-300; + } + .dark .fc .fc-button-primary:not(:disabled):active, + .dark .fc .fc-button-primary:not(:disabled).fc-button-active, + .dark .fc .fc-button-primary:hover { + background: #0f172a !important; + } + .dark .fc .fc-button-primary:disabled { + background: #334155 !important; + border-color: #334155 !important; + } + .dark .fc .fc-daygrid-day.fc-day-today { + background: #334155 !important; + } + .dark .fc-theme-standard .fc-scrollgrid { + border-color: #334155 !important; + } + .dashcode-calender .primary { + @apply bg-[#4669FA] border-none text-white text-center px-2 font-medium text-sm; + } + .dashcode-calender .secondary { + @apply bg-[#A0AEC0] border-none text-white text-center px-2 font-medium text-sm; + } + .dashcode-calender .danger { + @apply bg-[#F1595C] border-none text-white text-center px-2 font-medium text-sm; + } + .dashcode-calender .info { + @apply bg-[#0CE7FA] border-none text-white text-center px-2 font-medium text-sm; + } + .dashcode-calender .warning { + @apply bg-[#FA916B] border-none text-white text-center px-2 font-medium text-sm; + } + .dashcode-calender .success { + @apply bg-[#50C793] border-none text-white text-center px-2 font-medium text-sm; + } + .dashcode-calender .dark { + @apply bg-[#222] border-none text-white text-center px-2 font-medium text-sm; + } + @media print { + .invocie-btn { + display: none; + } + .sidebar-wrapper, + .dashcode-app-header, + .site-footer, + .shadow-deep { + @apply hidden; + } + .content-wrapper { + @apply w-full ml-0; + } + } +} +@layer utilities {}/*# sourceMappingURL=app.css.map */ \ No newline at end of file diff --git a/src/assets/scss/app.css.map b/src/assets/scss/app.css.map new file mode 100644 index 0000000..c65327b --- /dev/null +++ b/src/assets/scss/app.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["app.scss","app.css","components/_table.scss","components/_map.scss","components/_progress.scss","components/_tippy.scss","components/_swiper.scss","components/_alert.scss","components/_card.scss","components/_auth.scss","components/_button.scss","components/_badge.scss","components/_typography.scss","components/_form.scss","components/_input-group.scss","components/_react-select.scss","components/_pagination.scss","components/_breadcrumbs.scss","layout/_header.scss","layout/_menu.scss","layout/_sidebar.scss","layout/_settings.scss","utility/_mix.scss","utility/_css-animation.scss","utility/_calander.scss","utility/_full-calender.scss","components/_print.scss"],"names":[],"mappings":"AAAA,cAAA;AACA,oBAAA;AACA,mBAAA;AAEA;EACE;IACE,8EAAA;ECAF;EDCE;IAEE,mBAAA;ECAJ;EDEE;IAEE,qBAAA;ECDJ;EDGE;IACE,kCAAA;ECDJ;EDIA;;IAEE,aAAA;ECFF;EDKA;IACE,eAAA;ECHF;EDKA;IACE,wBAAA;ECHF;EDME;;;;;IAKE,gBAAA;ECJJ;EDQE;;;;;IAKE,gBAAA;ECNJ;EDWE;IACE,cAAA;ECTJ;EDYI;IACE,kBAAA;ECVN;EDeE;IACE,qBAAA;ECbJ;EDeE;IACE,uBAAA;IACA,kBAAA;ECbJ;EDeE;IACE,aAAA;ECbJ;EDgBI;IACE,iBAAA;ECdN;EDiBE;IACE,uBAAA;ECfJ;AACF;ADyBA;EEvFA;IACE,kHAAA;EDiEA;EC9DF;IACE,2HAAA;EDgEA;EC7DF;IACE;;;;;;qCAAA;EDqEA;EE7EA;IACE,qBAAA;EF+EF;EE7EA;IACE,uBAAA;EF+EF;EGpFF;IACE,yCAAA;EHsFA;EGpFE;IACE,yLAAA;IAUA,kCAAA;EH6EJ;EGxEF;IACE;MACE,2BAAA;IH0EA;IGxEF;MACE,wBAAA;IH0EA;EACF;EGxEF;IACE,kDAAA;EH0EA;EIrGA;IACE,mBAAA;EJuGF;EIrGA;IACE,qBAAA;EJuGF;EIrGA;IACE,gCAAA;EJuGF;EIrGA;IACE,kCAAA;EJuGF;EIrGA;IACE,gCAAA;EJuGF;EIrGA;IACE,6BAAA;EJuGF;EIrGA;IACE,gCAAA;EJuGF;EIrGA;IACE,+BAAA;EJuGF;EIrGA;IACE,gDAAA;EJuGF;EIrGA;IACE,kGAAA;EJuGF;EIrGA;IACE,0GAAA;EJuGF;EItGE;IACE,UAAA;EJwGJ;EIpGA;IAEE,6CAAA;EJqGF;EInGA;IAEE,6CAAA;EJoGF;EIlGA;IAEE,6CAAA;EJmGF;EIjGA;IAEE,6CAAA;EJkGF;EI/FA;IAEE,2BAAA;EJgGF;EI9FA;IAEE,2BAAA;EJ+FF;EI7FA;IAEE,2BAAA;EJ8FF;EI5FA;IAEE,2BAAA;EJ6FF;EI3FA;IAEE,6BAAA;EJ4FF;EI1FA;IAEE,6BAAA;EJ2FF;EIzFA;IAEE,6BAAA;EJ0FF;EIxFA;IAEE,6BAAA;EJyFF;EIvFA;IAEE,2BAAA;EJwFF;EItFA;IAEE,2BAAA;EJuFF;EIrFA;IAEE,2BAAA;EJsFF;EIpFA;IAEE,2BAAA;EJqFF;EInFA;IACE,wBAAA;EJqFF;EInFA;IAEE,wBAAA;EJoFF;EIlFA;IAEE,wBAAA;EJmFF;EIjFA;IAEE,wBAAA;EJkFF;EIhFA;IAEE,2BAAA;EJiFF;EI/EA;IAEE,2BAAA;EJgFF;EI9EA;IAEE,2BAAA;EJ+EF;EI7EA;IAEE,2BAAA;EJ8EF;EI5EA;IAEE,0BAAA;EJ6EF;EI3EA;IAEE,0BAAA;EJ4EF;EI1EA;IAEE,0BAAA;EJ2EF;EIzEA;IAEE,0BAAA;EJ0EF;EIvEA;IACE,iDAAA;EJyEF;EIvEA;IAEE,iDAAA;EJwEF;EItEA;IAEE,iDAAA;EJuEF;EIrEA;IAEE,iDAAA;EJsEF;EKzOA;;IAEE,6BAAA;IACA,qBAAA;EL2OF;EKzOA;IACE,mGAAA;EL2OF;EKzOA;IACE,kGAAA;EL2OF;EKzOA;IACE,WAAA;IACA,WAAA;IACA,2CAAA;EL2OF;EK1OE;IACE,qBAAA;EL4OJ;EM7PF;IACE,oDAAA;EN+PA;EM7PF;IACE,gCAAA;EN+PA;EM9PA;IACE,wCAAA;ENgQF;EM7PF;IACE,kCAAA;EN+PA;EM7PA;IACE,sCAAA;EN+PF;EM5PF;IACE,gCAAA;EN8PA;EM5PA;IACE,wCAAA;EN8PF;EM3PF;IACE,+BAAA;EN6PA;EM5PA;IACE,uCAAA;EN8PF;EM3PF;IACE,gCAAA;EN6PA;EM5PA;IACE,wCAAA;EN8PF;EM3PF;IACE,6BAAA;EN6PA;EM5PA;IACE,qCAAA;EN8PF;EM3PF;IACE,kCAAA;EN6PA;EM3PA;IACE,qBAAA;EN6PF;EMzPF;IACE,8BAAA;EN2PA;EM1PA;IACE,sCAAA;EN4PF;EMvPF;IACE,iDAAA;ENyPA;EMvPF;IACE,qDAAA;ENyPA;EMvPF;IACE,iDAAA;ENyPA;EMvPF;IACE,+CAAA;ENyPA;EMvPF;IACE,iDAAA;ENyPA;EMvPF;IACE,2CAAA;ENyPA;EMvPF;IACE,6CAAA;ENyPA;EMvPF;IACE,6CAAA;ENyPA;EOxUF;IACE,kHAAA;EP0UA;EOxUF;IACE,4EAAA;EP0UA;EOvUF;IACE,kDAAA;EPyUA;EOvUF;IACE,2DAAA;EPyUA;EOtUF;IACE,uGAAA;EPwUA;EOpUA;IACE,YAAA;EPsUF;EQ1VF;IACE,+CAAA;IACA,iBAAA;IACA,sCAAA;IACA,aAAA;IACA,gBAAA;ER4VA;EQ1VA;IACE,aAAA;IACA,kCAAA;IACA,4CAAA;ER4VF;EQ1VA;IACE,6EAAA;ER4VF;EQ3VE;IACE,oEAAA;ER6VJ;EQ1VA;IACE,aAAA;ER4VF;EQ1VA;IACE,4CAAA;ER4VF;EQxVF;IACE,kEAAA;ER0VA;EQzVA;IACE,mDAAA;ER2VF;EQxVF;IACE,mEAAA;ER0VA;EQzVA;IACE,mDAAA;ER2VF;EQvVA;IACE,mDAAA;ERyVF;EQtVF;IACE,+EAAA;ERwVA;EQrVF;IACE,wHAAA;ERuVA;EQpVF;IACE,oDAAA;ERsVA;EQpVF;IACE,gDAAA;ERsVA;EQpVF;IACE,wCAAA;ERsVA;EShZF;IACE,sKAAA;ETkZA;EShZF;IACE,6CAAA;ETkZA;EShZF;IACE,gCAAA;ETkZA;EShZF;IACE,+BAAA;ETkZA;ESjZA;IACE,qBAAA;ETmZF;EShZF;IACE,+LAAA;ETkZA;EShZF;IACE,6KAAA;ETkZA;EShZF;IACE,iLAAA;ETkZA;EShZF;IACE,6KAAA;ETkZA;EShZF;IACE,yKAAA;ETkZA;EShZF;IACE,yKAAA;ETkZA;EShZF;IACE,2KAAA;ETkZA;EShZF;IACE,6KAAA;ETkZA;ES9YF;IACE,qKAAA;ETgZA;ES/YA;IACE,oEAAA;ETiZF;ES9YF;IACE,8BAAA;ETgZA;ES9YF;IACE,kIAAA;ETgZA;ES/YA;IACE,gCAAA;ETiZF;ES9YF;IACE,gCAAA;ETgZA;ES9YF;IACE,0IAAA;ETgZA;ES/YA;IACE,kCAAA;ETiZF;ES9YF;IACE,kCAAA;ETgZA;ES9YF;IACE,kIAAA;ETgZA;ES/YA;IACE,gCAAA;ETiZF;ES9YF;IACE,gCAAA;ETgZA;ES9YF;IACE,0HAAA;ETgZA;ES/YA;IACE,8BAAA;ETiZF;ES9YF;IACE,6BAAA;ETgZA;ES9YF;IACE,0HAAA;ETgZA;ES/YA;IACE,8BAAA;ETiZF;ES9YF;IACE,gCAAA;ETgZA;ES7YF;IACE,8HAAA;ET+YA;ES9YA;IACE,+BAAA;ETgZF;ES7YF;IACE,+BAAA;ET+YA;ES7YF;IACE,0IAAA;ET+YA;ES9YA;IACE,kCAAA;ETgZF;ES7YF;IACE,kCAAA;ET+YA;ES1YA;IACE,iEAAA;ET4YF;ESxYA;IACE,gDAAA;ET0YF;EStYA;IACE,kDAAA;ETwYF;ESpYA;IACE,gDAAA;ETsYF;ESlYA;IACE,8CAAA;EToYF;EShYA;IACE,8CAAA;ETkYF;ES9XA;IACE,+CAAA;ETgYF;ES5XA;IACE,mEAAA;ET8XF;ESxXA;IACE,yDAAA;ET0XF;ESxXA;IACE,8GAAA;ET0XF;ESzXE;IACE,2BAAA;ET2XJ;ESxXA;IACE,uFAAA;ET0XF;ESxXA;IACE,qDAAA;ET0XF;ESxXA;IACE,yDAAA;ET0XF;ESxXA;IACE,qDAAA;ET0XF;ESxXA;IACE,mDAAA;ET0XF;ESxXA;IACE,qDAAA;ET0XF;ESxXA;IACE,+CAAA;ET0XF;ESxXA;IACE,iDAAA;ET0XF;ESrXF;IACE,mEAAA;ETuXA;EStXA;IACE,iBAAA;ETwXF;ESnXF;IACE,8GAAA;ETqXA;ESlXF;IACE,gFAAA;EToXA;EUpkBF;IACE,kHAAA;EVskBA;EUrkBA;IACE,sBAAA;EVukBF;EW1kBF;IACE,gEAAA;EX4kBA;EW1kBF;IACE,gEAAA;EX4kBA;EWzkBF;IACE,8DAAA;EX2kBA;EWzkBF;IACE,8DAAA;EX2kBA;EWzkBF;IACE,8DAAA;EX2kBA;EWzkBF;IACE,4EAAA;EX2kBA;EWxkBF;IACE,kFAAA;EX0kBA;EWxkBF;IACE,kFAAA;EX0kBA;EWvkBF;IACE,kFAAA;EXykBA;EWtkBF;IACE,gFAAA;EXwkBA;EWtkBF;IACE,sDAAA;EXwkBA;EWrkBF;IACE,8DAAA;EXukBA;EWpkBF;IACE,kEAAA;EXskBA;EWnkBF;IACE,kEAAA;EXqkBA;EWjkBF;IACE,0BAAA;IACA,gBAAA;EXmkBA;EWlkBA;IACE,eAAA;EXokBF;EWnkBE;IACE,sCAAA;EXqkBJ;EWjkBF;;IAEE,WAAA;EXmkBA;EWlkBA;;IACE,wBAAA;EXqkBF;EWlkBF;IACE,uBAAA;EXokBA;EWlkBA;IACE,mDAAA;EXokBF;EWnkBE;IACE,2BAAA;IACA,oCAAA;EXqkBJ;EWhkBA;IACE,oBAAA;EXkkBF;EWjkBE;IACE,SAAA;IACA,YAAA;EXmkBJ;EYjpBF;IACE,4IAAA;EZmpBA;EYhpBF;IACE;;;gIAAA;EZqpBA;EY/oBF;IACE,iEAAA;EZipBA;EY/oBF;IACE,eAAA;EZipBA;EY/oBE;IACE,kFAAA;EZipBJ;EY7oBE;IACE,mFAAA;EZ+oBJ;EY1oBF;IACE,8FAAA;EZ4oBA;EYzoBF;IACE,kGAAA;EZ2oBA;EYvoBF;IACE,yBAAA;EZyoBA;EYvoBF;IACE,oCAAA;EZyoBA;EYvoBF;IACE,yBAAA;EZyoBA;EYroBA;IACE,yBAAA;EZuoBF;EYroBA;IACE,yBAAA;EZuoBF;EYroBA;IACE,oCAAA;EZuoBF;EYloBF;IACE,4SAAA;EZooBA;EYloBF;IACE,4DAAA;EZooBA;EYhoBF;;;;;;;;;;;;;;;;;;IAkBE,oCAAA;EZkoBA;Ea9tBF;IACE;4JAAA;EbiuBA;Ea3tBE;IACE,kFAAA;Eb6tBJ;EaztBE;IACE,mFAAA;Eb2tBJ;EattBF;IACE,oDAAA;EbwtBA;EartBF;IACE,kGAAA;EbutBA;EaptBF;IACE;yIAAA;EbutBA;EantBA;IACE,gHAAA;EbqtBF;EahtBE;IACE,gLAAA;EbktBJ;Ea9sBE;IACE,gLAAA;EbgtBJ;Ea3sBA;IACE,4GAAA;Eb6sBF;Ea1sBE;IACE,+IAAA;Eb4sBJ;EavsBF;IACE,6CAAA;EbysBA;EavsBF;KAAA;EAII;IACE,wBAAA;EbusBJ;EarsBE;IACE,sBAAA;EbusBJ;EansBE;IACE,yBAAA;EbqsBJ;EansBE;IACE,uBAAA;EbqsBJ;Ea/rBA;;IACE,qFAAA;EbksBF;EahsBA;;;;IAEE,aAAA;EbosBF;Ea9rBI;IACE,iEAAA;EbgsBN;EazrBE;IACE,uDAAA;Eb2rBJ;EaxrBI;IACE,kGAAA;Eb0rBN;EclyBE;IACE,6BAAA;EdoyBJ;Ec7xBA;IACE,uBAAA;Ed+xBF;Ec5xBE;IACE,wBAAA;Ed8xBJ;EczxBE;;IACE,qBAAA;Ed4xBJ;Ec1xBE;;IACE,yBAAA;Ed6xBJ;Ec5xBI;;IACE,6DAAA;Ed+xBN;Ec3xBE;;;IAEE,gBAAA;IACA,uBAAA;Ed8xBJ;Ec3xBE;;IACE,eAAA;IACA,qBAAA;Ed8xBJ;Ec3xBE;;IACE,aAAA;Ed8xBJ;Ec5xBE;;IACE,+BAAA;Ed+xBJ;Ec5xBE;;IACE,qBAAA;Ed+xBJ;EczxBI;;IACE,sBAAA;Ed4xBN;EchxBI;;;;;;;;IAEE,eAAA;EdwxBN;EctxBM;;;;;;;;IACE,oDAAA;Ed+xBR;Ec5xBM;;;;;;;;IACE,sCAAA;EdqyBR;Ec7xBM;;;;IACE,qBAAA;IACA,gCAAA;IACA,mBAAA;IACA,kBAAA;EdkyBR;Ec1xBA;;IAEE,8BAAA;IACA,kBAAA;IACA,oBAAA;Ed4xBF;Ec1xBE;;IACE,iBAAA;IACA,kBAAA;IACA,mBAAA;IACA,uBAAA;Ed6xBJ;Ec1xBE;;IACE,eAAA;IACA,qBAAA;Ed6xBJ;Ec3xBI;;IACE,yBAAA;IACA,cAAA;Ed8xBN;Ec3xBI;;IACE,eAAA;IACA,cAAA;Ed8xBN;Ec7xBM;;IACE,eAAA;EdgyBR;EcvxBA;IACE,SAAA;EdyxBF;EcxxBE;IACE,aAAA;Ed0xBJ;EcpxBA;IACE,oCAAA;EdsxBF;EcpxBE;IACE,qBAAA;EdsxBJ;EcnxBE;IACE,yBAAA;EdqxBJ;EclxBE;;IAEE,cAAA;EdoxBJ;EcjxBE;IACE,mBAAA;EdmxBJ;EclxBI;IACE,qBAAA;EdoxBN;EchxBI;IACE,aAAA;EdkxBN;EchxBI;IACE,wCAAA;EdkxBN;Ec/wBE;IACE,qBAAA;EdixBJ;Ec7wBA;IACE,mBAAA;Ed+wBF;EctwBM;;;;;;;;IACE,gDAAA;Ed+wBR;Ec5wBM;;;;;;;;IACE,kCAAA;EdqxBR;Ec5wBE;IACE,2BAAA;Ed8wBJ;Eex9BF;IAQE,gEAAA;Efm9BA;Eex9BI;IACE,oCAAA;Ef09BN;Eep9BE;;;IAGE,wLAAA;Efs9BJ;Eer9BI;;;IACE,iFAAA;Efy9BN;Eer9BA;IACE,sDAAA;Efu9BF;Eet9BE;IACE,qBAAA;Efw9BJ;Eer9BM;IACE,kIAAA;Efu9BR;Eep9BI;;;IAGE,oCAAA;Efs9BN;Eer9BM;;;IACE,8BAAA;Efy9BR;Eep9BA;IACE,gFAAA;Efs9BF;Eer9BE;IACE,2GAAA;Efu9BJ;Eet9BI;;;IAGE,kEAAA;Efw9BN;Eev9BM;;;IACE,6CAAA;Ef29BR;EgB3gCF;IACE,0CAAA;EhB6gCA;EgB5gCA;IACE,sFAAA;EhB8gCF;EgB7gCE;IACE,qDAAA;EhB+gCJ;EiBphCF;IACE,4CAAA;EjBshCA;EiBrhCA;IACE,mCAAA;EjBuhCF;EiBrhCA;IACE,kBAAA;IACA,YAAA;IACA,8BAAA;IACA,+QAAA;YAAA,uQAAA;IAKA,gBAAA;IACA,0BAAA;IACA,4JAAA;IAMA,yBAAA;IACA,kBAAA;IACA,0BAAA;IACA,mBAAA;IACA,qBAAA;IACA,iEAAA;IACA,yDAAA;EjB8gCF;EkBxiCE;IACE,4BAAA;ElB0iCJ;EkBziCI;IACE,+JAAA;ElB2iCN;EkB1iCM;IACE,6EAAA;ElB4iCR;EkBxiCM;IACE,uBAAA;ElB0iCR;EkBziCQ;IACE,uBAAA;ElB2iCV;EkBviCI;IACE,aAAA;ElByiCN;EkBniCF;;IAEE;;cAAA;ElBuiCA;EkBniCF;IACE,iDAAA;ElBqiCA;EkBniCF;IACE,aAAA;ElBqiCA;EkBniCF;;IAEE,mCAAA;ElBqiCA;EkBniCF;IACE,8BAAA;ElBqiCA;EkBniCF;IACE,mJAAA;ElBqiCA;EkBliCA;IACE,8EAAA;ElBoiCF;EmBrlCF;IACE,8DAAA;IACA,0DAAA;IACA,kBAAA;EnBulCA;EmBplCF;IACE,4HAAA;EnBslCA;EmB9kCA;IACE,2GAAA;EnBglCF;EmBvkCF;IACE,uBAAA;EnBykCA;EmBvkCF;IACE,uBAAA;EnBykCA;EmBtkCF;IACE,uCAAA;EnBwkCA;EmBpkCF;;IAEE,gBAAA;IACA,4BAAA;EnBskCA;EmBnkCF;IACE,4BAAA;EnBqkCA;EmBnkCF;IACE,2BAAA;EnBqkCA;EmBjkCF;IACE,eAAA;EnBmkCA;EmBlkCA;IACE,mFAAA;EnBokCF;EmBlkCA;IACE,yHAAA;EnBokCF;EmBlkCA;IACE,qGAAA;EnBokCF;EmB/jCA;IACE,wIAAA;EnBikCF;EmB5jCF;IACE,aAAA;EnB8jCA;EmB5jCF;IACE,iLAAA;EnB8jCA;EmB1jCA;IACE,aAAA;EnB4jCF;EmBzjCE;IACE,0KAAA;EnB2jCJ;EmBxjCI;IACE,0BAAA;EnB0jCN;EmBrjCE;IACE,aAAA;EnBujCJ;EmBpjCE;IACE,yKAAA;IACA,yBAAA;EnBsjCJ;EmBnjCI;IACE,0BAAA;EnBqjCN;EmBjjCA;IACE,aAAA;EnBmjCF;EmB7iCA;IACE,qCAAA;EnB+iCF;EmB9iCE;;;IAGE,yCAAA;EnBgjCJ;EmB9iCE;IACE,oFAAA;EnBgjCJ;EmB3iCA;IACE,qCAAA;EnB6iCF;EmB5iCE;;;IAGE,qCAAA;EnB8iCJ;EmB3iCA;IACE,mCAAA;EnB6iCF;EoBrrCF;IACE,UAAA;IACA,qBAAA;EpBurCA;EoBrrCF;IACE,UAAA;IACA,wBAAA;IACA,0CAAA;EpBurCA;EoBrrCF;IACE,UAAA;EpBurCA;EoBrrCF;IACE,UAAA;IACA,qBAAA;IACA,0CAAA;EpBurCA;EoBrrCF;IACE,6DAAA;EpBurCA;EoBprCF;IACE,8CAAA;EpBsrCA;EqB5sCF;IACE,sPAAA;ErB8sCA;EqB1sCA;IACE,wDAAA;ErB4sCF;EqB1sCA;IACE,qDAAA;ErB4sCF;EqB1sCA;IACE,wDAAA;ErB4sCF;EqBxsCA;IACE,qDAAA;ErB0sCF;EqBxsCA;IACE,wDAAA;ErB0sCF;EqBrsCA;IACE,wDAAA;ErBusCF;EqBrsCA;IACE,wDAAA;ErBusCF;EqBrsCA;IACE,0DAAA;ErBusCF;EqBlsCA;IACE,wDAAA;ErBosCF;EqBlsCA;IACE,wDAAA;ErBosCF;EqBjsCF;IACE,4BAAA;ErBmsCA;EqB/rCF;IACE,4CAAA;ErBisCA;EqB7rCF;IACE,gKAAA;ErB+rCA;EqB3rCF;IACE,4CAAA;ErB6rCA;EqB3rCF;IACE;MACE,4CAAA;IrB6rCA;EACF;EqB3rCF;IACE,0BAAA;ErB6rCA;EqB3rCF;IACE,wBAAA;ErB6rCA;EqB3rCF;IACE,0BAAA;ErB6rCA;EqB3rCF;IACE,uLAAA;ErB6rCA;EqB1rCF;IACE,6BAAA;ErB4rCA;EqB3rCA;IACE,qBAAA;ErB6rCF;EqB5rCE;IACE,uCAAA;ErB8rCJ;EqB5rCE;IACE,wBAAA;ErB8rCJ;EqBxrCA;IACE,iBAAA;ErB0rCF;EqBxrCA;IACE,2BAAA;ErB0rCF;EqBxrCA;IACE,2DAAA;ErB0rCF;EqBxrCA;IACE,sEAAA;ErB0rCF;EqBtrCA;IACE,uBAAA;ErBwrCF;EqBtrCA;IACE,mBAAA;ErBwrCF;EqBtrCA;;;;;;;;IAQE,mBAAA;ErBwrCF;EqBtrCA;IACE,qBAAA;ErBwrCF;EqBtrCA;IACE,oCAAA;ErBwrCF;EqBnrCF;IACE,sDAAA;ErBqrCA;EqBnrCF;IACE,6DAAA;ErBqrCA;EqB/qCA;IACE,kBAAA;IACA,mBAAA;ErBirCF;EqB5qCF;IACE,yBAAA;ErB8qCA;EqB7qCA;IACE,+BAAA;ErB+qCF;EqB7qCA;IACE,0HAAA;ErB+qCF;EqB9qCE;IACE,iBAAA;IACA,kBAAA;IACA,QAAA;IACA,4CAAA;IACA,sBAAA;ErBgrCJ;EqB9qCE;IACE,oFAAA;IACA,YAAA;IACA,kBAAA;IACA,QAAA;IACA,4CAAA;IACA,sBAAA;ErBgrCJ;EqB7qCE;IACE,aAAA;ErB+qCJ;EqB1qCF;IACE,yBAAA;ErB4qCA;EqB3qCA;IACE,+BAAA;ErB6qCF;EqB3qCA;IACE,0HAAA;ErB6qCF;EqB5qCE;IACE,sBAAA;IACA,kBAAA;IACA,QAAA;IACA,2BAAA;IACA,OAAA;IACA,kBAAA;IACA,WAAA;IACA,kBAAA;ErB8qCJ;EqB5qCE;IACE,0FAAA;IACA,YAAA;IACA,kBAAA;IACA,QAAA;IACA,4CAAA;IACA,sBAAA;ErB8qCJ;EqB3qCE;IACE,aAAA;ErB6qCJ;EqBpqCI;;;IAEE,qBAAA;ErBuqCN;EqBjqCI;IACE,gGAAA;ErBmqCN;EqB7pCI;IACE,sGAAA;ErB+pCN;EsBt4CF;IACE,UAAA;IACA,4BAAA;EtBw4CA;EsBt4CF;IACE,UAAA;IACA,6BAAA;IACA,0CAAA;EtBw4CA;EsBt4CF;IACE,UAAA;EtBw4CA;EsBt4CF;IACE,UAAA;IACA,4BAAA;IACA,0CAAA;EtBw4CA;EsBr4CF;IACE,UAAA;IACA,qBAAA;EtBu4CA;EsBr4CF;IACE,UAAA;IACA,wBAAA;IACA,0CAAA;EtBu4CA;EsBr4CF;IACE,UAAA;EtBu4CA;EsBr4CF;IACE,UAAA;IACA,qBAAA;IACA,0CAAA;EtBu4CA;EuBv6CA;IACE,kCAAA;EvBy6CF;EuBt6CA;IACE,aAAA;EvBw6CF;EuBt6CA;IACE,aAAA;EvBw6CF;EuBt6CA;IACE,+BAAA;EvBw6CF;EuBt6CA;;IAEE,qBAAA;EvBw6CF;EuBt6CA;IACE,WAAA;EvBw6CF;EuBt6CA;IACE,eAAA;EvBw6CF;EuBt6CA;IACE,8DAAA;EvBw6CF;EuBv6CE;IACE,mBAAA;EvBy6CJ;EuBv6CE;IACE,qBAAA;EvBy6CJ;EuBx6CI;IACE,sBAAA;EvB06CN;EuBt6CA;IACE,mGAAA;EvBw6CF;EuBr6CE;IACE,mBAAA;EvBu6CJ;EuBr6CE;IACE,qBAAA;EvBu6CJ;EuBr6CE;IACE,qBAAA;EvBu6CJ;EuBr6CE;IACE,qBAAA;EvBu6CJ;EuBt6CI;IACE,sBAAA;EvBw6CN;EuBr6CE;;IAEE,mBAAA;EvBu6CJ;EuBp6CA;IACE,8BAAA;EvBs6CF;EwBl+CA;IACE,YAAA;ExBo+CF;EwBj+CI;IAEE,kBAAA;IACA,SAAA;IACA,QAAA;IACA,gCAAA;ExBk+CN;EwB99CI;IAEE,kBAAA;IACA,SAAA;IACA,QAAA;IACA,gCAAA;ExB+9CN;EwB39CA;IACE,0BAAA;IACA,4BAAA;IACA,uBAAA;IACA,qCAAA;IACA,6BAAA;IACA,uCAAA;ExB69CF;EwB39CA;IACE,kCAAA;IACA,sDAAA;ExB69CF;EwB39CA;;;IAGE,8BAAA;IACA,sBAAA;ExB69CF;EwB19CA;IACE,8BAAA;IACA,gCAAA;IACA,yBAAA;ExB49CF;EwBz9CA;IACE,8CAAA;ExB29CF;EwBx9CA;IACE,2BAAA;ExB09CF;EwBx9CA;IACE,gCAAA;ExB09CF;EwBv9CA;;IAEE,6CAAA;ExBy9CF;EwBv9CA;IACE,iGAAA;ExBy9CF;EwBv9CA;IACE,oEAAA;ExBy9CF;EwBv9CA;IACE,+CAAA;ExBy9CF;EwBx9CE;IACE,4BAAA;ExB09CJ;EwBv9CA;IACE,0BAAA;ExBy9CF;EwBv9CA;IACE,0BAAA;IACA,2BAAA;ExBy9CF;EwBv9CA;IACE,6DAAA;ExBy9CF;EwBt9CA;IACE,aAAA;ExBw9CF;EwBr9CA;IACE;;MAEE,yBAAA;IxBu9CF;IwBr9CA;MACE,gBAAA;IxBu9CF;IwBr9CA;MACE,gBAAA;IxBu9CF;IwBr9CA;MACE,gCAAA;IxBu9CF;EACF;EwBr9CA;;IAEE,0BAAA;ExBu9CF;EwBr9CA;IACE,iBAAA;ExBu9CF;EwBr9CA;IACE,aAAA;ExBu9CF;EwBr9CA;;;;IAIE,eAAA;IACA,gBAAA;ExBu9CF;EwBh9CA;IACE,kCAAA;ExBk9CF;EwBh9CA;IACE,qBAAA;ExBk9CF;EwBh9CA;IACE,iBAAA;ExBk9CF;EwBh9CA;IACE,sCAAA;ExBk9CF;EwBh9CA;;IAEE,uBAAA;ExBk9CF;EwBh9CA;IACE,qBAAA;ExBk9CF;EwBh9CA;;;IAGE,8BAAA;ExBk9CF;EwB/8CA;IACE,8BAAA;IACA,gCAAA;ExBi9CF;EwB98CA;IACE,8BAAA;ExBg9CF;EwB78CA;IACE,gCAAA;ExB+8CF;EwB38CA;IACE,+EAAA;ExB68CF;EwB38CA;IACE,+EAAA;ExB68CF;EwB38CA;IACE,+EAAA;ExB68CF;EwB38CA;IACE,+EAAA;ExB68CF;EwB38CA;IACE,+EAAA;ExB68CF;EwB38CA;IACE,+EAAA;ExB68CF;EwB38CA;IACE,4EAAA;ExB68CF;EyBtoDF;IACE;MACE,aAAA;IzBwoDA;IyBtoDF;;;;MAIE,aAAA;IzBwoDA;IyBtoDF;MACE,kBAAA;IzBwoDA;EACF;AACF;ADliDA,kBAAA","file":"app.css"} \ No newline at end of file diff --git a/src/assets/scss/app.scss b/src/assets/scss/app.scss new file mode 100644 index 0000000..741722d --- /dev/null +++ b/src/assets/scss/app.scss @@ -0,0 +1,123 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + body { + @apply h-full overflow-x-hidden dark:text-slate-300 text-slate-600 font-normal; + &.light, + &.skin--default { + @apply bg-slate-100; + } + &.lght, + &.skin--bordered { + @apply bg-transparent; + } + &.dark { + @apply bg-[#0f172a] text-slate-300; + } + } + html, + body { + @apply h-full; + } + + .dashcode-app-wrapper { + @apply relative; + } + .single-sidebar-menu .ReactCollapse--collapse { + transition: height 400ms; + } + .space-xy-5 { + > div, + > button, + > a, + label, + > * { + @apply mr-2 mb-2; + } + } + .space-xy-6 { + > div, + > button, + > a, + label, + > * { + @apply mr-4 mb-2; + } + } + + html[dir="rtl"] { + .recharts-wrapper { + direction: rtl; + } + .recharts-yAxis { + .recharts-text { + text-anchor: start; + } + } + } + .dashcode-app { + .leaflet-control { + z-index: 0 !important; + } + .leaflet-control-container { + z-index: 555 !important; + position: relative; + } + .recharts-curve.recharts-tooltip-cursor { + display: none; + } + .recharts-wrapper.bar-chart { + .recharts-tooltip-cursor { + fill: transparent; + } + } + .recharts-tooltip-wrapper { + border: none !important; + } + + // .recharts-cartesian-grid line, + // .recharts-polar-grid-angle line, + // .recharts-yAxis line, + // .recharts-xAxis line { + // @apply stroke-black-200 dark:stroke-slate-700; + // } + } +} +@layer components { + @import "components/table.scss"; + @import "components/map.scss"; + @import "components/progress"; + @import "components/tippy"; + @import "components/swiper"; + @import "components/alert"; + @import "components/card"; + @import "components/auth"; + @import "components/button"; + @import "components/badge"; + @import "components/typography"; + @import "components/form"; + @import "components/input-group"; + @import "components/react-select"; + @import "components/pagination"; + @import "components/breadcrumbs"; + @import "layout/header"; + @import "layout/footer"; + @import "layout/sidebar"; + @import "layout/settings"; + @import "utility/mix"; + @import "layout/header"; + @import "layout/footer"; + @import "layout/sidebar"; + @import "layout/settings"; + @import "utility/css-animation"; + @import "utility/loading"; + @import "utility/css-animation"; + @import "utility/calander"; + @import "utility/full-calender"; + @import "components/print.scss"; + +} +@layer utilities { +} diff --git a/src/assets/scss/components/_alert.scss b/src/assets/scss/components/_alert.scss new file mode 100644 index 0000000..687f8cf --- /dev/null +++ b/src/assets/scss/components/_alert.scss @@ -0,0 +1,81 @@ +.alert { + @apply py-[18px] px-6 font-normal text-sm rounded-md; +} +.alert-primary { + @apply bg-primary-500 text-white; + &.light-mode { + @apply bg-opacity-[14%] text-primary-500; + } +} +.alert-secondary { + @apply bg-secondary-500 text-white; + + &.light-mode { + @apply bg-opacity-[14%] text-slate-900; + } +} +.alert-success { + @apply bg-success-500 text-white; + + &.light-mode { + @apply bg-opacity-[14%] text-success-500; + } +} +.alert-danger { + @apply bg-danger-500 text-white; + &.light-mode { + @apply bg-opacity-[14%] text-danger-500; + } +} +.alert-warning { + @apply bg-warning-500 text-white; + &.light-mode { + @apply bg-opacity-[14%] text-warning-500; + } +} +.alert-info { + @apply bg-info-500 text-white; + &.light-mode { + @apply bg-opacity-[14%] text-info-500; + } +} +.alert-light { + @apply bg-slate-100 text-slate-900; + + &.light-mode { + @apply text-slate-500; + } +} + +.alert-dark { + @apply bg-slate-900 text-white; + &.light-mode { + @apply bg-opacity-[54%] text-slate-100; + } +} + +// outline color +.alert-outline-primary { + @apply border border-primary-500 text-primary-500; +} +.alert-outline-secondary { + @apply border border-secondary-500 text-secondary-500; +} +.alert-outline-success { + @apply border border-success-500 text-success-500; +} +.alert-outline-danger { + @apply border border-danger-500 text-danger-500; +} +.alert-outline-warning { + @apply border border-warning-500 text-warning-500; +} +.alert-outline-info { + @apply border border-info-500 text-info-500; +} +.alert-outline-light { + @apply border border-slate-200 text-slate-600; +} +.alert-outline-dark { + @apply border border-slate-900 text-slate-900; +} diff --git a/src/assets/scss/components/_auth.scss b/src/assets/scss/components/_auth.scss new file mode 100644 index 0000000..0f43ebc --- /dev/null +++ b/src/assets/scss/components/_auth.scss @@ -0,0 +1,60 @@ +.loginwrapper { + @apply flex w-full items-center overflow-hidden; + min-height: 100vh; + min-height: calc(var(--vh, 1vh) * 100); + height: 100vh; + flex-basis: 100%; + + .lg-inner-column { + height: 100vh; + height: calc(var(--vh, 1vh) * 100); + @apply overflow-y-auto flex flex-wrap w-full; + } + .left-column { + @apply bg-slate-100 dark:bg-slate-900 lg:block hidden flex-1 overflow-hidden; + h4 { + @apply text-[40px] leading-[48px] text-slate-600 dark:text-slate-400; + } + } + .right-column { + @apply flex-1; + } + .black-500-title { + @apply text-[40px] leading-[48px] text-white; + } +} + +.auth-box { + @apply max-w-[524px] md:px-[42px] md:py-[44px] p-7 mx-auto w-full; + h4 { + @apply text-2xl text-slate-900 dark:text-white mb-3; + } +} +.auth-box2 { + @apply max-w-[524px] mx-auto w-full md:px-[42px] md:py-[44px] p-7; + h4 { + @apply text-2xl text-slate-900 dark:text-white mb-3; + } +} +.auth-box-3 { + h4 { + @apply text-2xl text-slate-900 dark:text-white mb-3; + } +} +.auth-footer { + @apply text-xs font-normal text-secondary-500 dark:text-slate-400 z-[999] pb-10; +} + +.auth-box-3 { + @apply bg-white dark:bg-slate-800 relative h-auto lg:mr-[150px] mr-auto p-10 md:rounded-md max-w-[520px] w-full ml-auto; +} + +.logo-box-3 { + @apply flex justify-center items-center min-h-screen; +} +.v3-right-column { + @apply flex flex-col items-center justify-center; +} +.auth-footer3 { + @apply absolute bottom-0 lg:block hidden; +} diff --git a/src/assets/scss/components/_badge.scss b/src/assets/scss/components/_badge.scss new file mode 100644 index 0000000..ee95467 --- /dev/null +++ b/src/assets/scss/components/_badge.scss @@ -0,0 +1,6 @@ +.badge { + @apply py-1 px-2 text-xs capitalize font-semibold rounded-[.358rem] whitespace-nowrap align-baseline inline-flex; + &.pill { + @apply rounded-[999px]; + } +} diff --git a/src/assets/scss/components/_breadcrumbs.scss b/src/assets/scss/components/_breadcrumbs.scss new file mode 100644 index 0000000..363946d --- /dev/null +++ b/src/assets/scss/components/_breadcrumbs.scss @@ -0,0 +1,9 @@ +.breadcrumbs { + @apply flex text-sm space-x-2 items-center; + li { + @apply relative flex items-center space-x-2 capitalize font-normal rtl:space-x-reverse; + .breadcrumbs-icon { + @apply text-lg text-secondary-500 dark:text-slate-500; + } + } +} diff --git a/src/assets/scss/components/_button.scss b/src/assets/scss/components/_button.scss new file mode 100644 index 0000000..b0e3d50 --- /dev/null +++ b/src/assets/scss/components/_button.scss @@ -0,0 +1,211 @@ +.btn { + @apply font-semibold text-sm leading-6 md:px-6 md:py-3 px-4 py-[10px] rounded capitalize transition-all duration-150 md:whitespace-nowrap whitespace-normal relative; +} +.btn.btn-xl { + @apply text-[16px] md:px-10 px-7 md:py-4 py-3; +} +.btn.btn-sm { + @apply text-xs md:px-4 py-2 px-3; +} +.btn.block-btn { + @apply block w-full text-center; + span { + @apply justify-center; + } +} +.btn-dark { + @apply bg-slate-900 dark:bg-slate-900 dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-black-900 hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; +} +.btn-primary { + @apply bg-primary-500 dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-primary-500 hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; +} +.btn-secondary { + @apply bg-secondary-500 dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-secondary-500 hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; +} +.btn-success { + @apply bg-success-500 dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-success-500 hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; +} +.btn-info { + @apply bg-[#0CE7FA] dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-[#0CE7FA] hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; +} +.btn-warning { + @apply bg-[#FA916B] dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-[#FA916B] hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; +} +.btn-danger { + @apply bg-danger-500 dark:hover:bg-opacity-70 text-white hover:ring-2 hover:ring-opacity-80 ring-danger-500 hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; +} +.btn-light { + @apply bg-slate-100 dark:hover:bg-opacity-70 text-slate-900 hover:ring-2 hover:ring-opacity-80 ring-[#E0EAFF] hover:ring-offset-1 dark:hover:ring-0 dark:hover:ring-offset-0; +} + +// btn outline +.btn-outline-dark { + @apply bg-transparent text-slate-900 dark:text-slate-300 border border-black-500 dark:border-slate-600 hover:border-black-500 hover:bg-slate-900 hover:bg-opacity-5; + &.active { + @apply bg-slate-900 text-white dark:bg-slate-900 dark:text-slate-300; + } +} +[aria-expanded="true"] > .btn-outline-dark { + @apply bg-slate-900 text-white; +} +.btn-outline-primary { + @apply bg-transparent text-primary-500 border border-primary-500 hover:border-primary-500 hover:bg-primary-500 hover:bg-opacity-5; + &.active { + @apply bg-primary-500 text-white; + } +} +[aria-expanded="true"] > .btn-outline-primary { + @apply bg-primary-500 text-white; +} +.btn-outline-secondary { + @apply bg-transparent text-secondary-500 border border-secondary-500 hover:border-secondary-500 hover:bg-secondary-500 hover:bg-opacity-5; + &.active { + @apply bg-secondary-500 text-white; + } +} +[aria-expanded="true"] > .btn-outline-secondary { + @apply bg-secondary-500 text-white; +} +.btn-outline-success { + @apply bg-transparent text-success-500 border border-success-500 hover:border-success-500 hover:bg-success-500 hover:bg-opacity-5; + &.active { + @apply bg-success-500 text-white; + } +} +[aria-expanded="true"] > .btn-outline-success { + @apply bg-success-500 text-white; +} +.btn-outline-info { + @apply bg-transparent text-[#0CE7FA] border border-[#0CE7FA] hover:border-[#0CE7FA] hover:bg-[#0CE7FA] hover:bg-opacity-5; + &.active { + @apply bg-[#0CE7FA] text-white; + } +} +[aria-expanded="true"] > .btn-outline-info { + @apply bg-info-500 text-white; +} +.btn-outline-warning { + @apply bg-transparent text-[#FA916B] border border-[#FA916B] hover:border-[#FA916B] hover:bg-[#FA916B] hover:bg-opacity-5; + &.active { + @apply bg-[#FA916B] text-white; + } +} +[aria-expanded="true"] > .btn-outline-warning { + @apply bg-warning-500 text-white; +} + +.btn-outline-danger { + @apply bg-transparent text-danger-500 border border-danger-500 hover:border-danger-500 hover:bg-danger-500 hover:bg-opacity-5; + &.active { + @apply bg-danger-500 text-white; + } +} +[aria-expanded="true"] > .btn-outline-danger { + @apply bg-danger-500 text-white; +} +.btn-outline-light { + @apply bg-transparent border border-[#E0EAFF] dark:text-white hover:border-[#E0EAFF] text-slate-900 hover:bg-[#E0EAFF] hover:bg-opacity-5; + &.active { + @apply bg-[#E0EAFF] text-slate-900; + } +} +[aria-expanded="true"] > .btn-outline-light { + @apply bg-[#E0EAFF] text-slate-900; +} + +// light color +.btn { + &.light { + @apply bg-opacity-[15%] ring-opacity-30 dark:hover:bg-opacity-10; + } +} +.btn-primary { + &.light { + @apply text-primary-500 dark:hover:bg-opacity-10; + } +} +.btn-secondary { + &.light { + @apply text-secondary-500 dark:hover:bg-opacity-10; + } +} +.btn-success { + &.light { + @apply text-success-500 dark:hover:bg-opacity-10; + } +} +.btn-info { + &.light { + @apply text-[#0CE7FA] dark:hover:bg-opacity-10; + } +} +.btn-warning { + &.light { + @apply text-[#FA916B] dark:hover:bg-opacity-10; + } +} +.btn-danger { + &.light { + @apply text-danger-500 dark:hover:bg-opacity-10; + } +} +.btn-light { + &.light { + @apply text-opacity-80 dark:text-slate-300 dark:hover:bg-opacity-10; + } +} + +// split dropdown +.split-btngroup { + .btn { + @apply ltr:rounded-r-none rtl:rounded-l-none hover:ring-0; + } + button { + @apply ltr:last:rounded-r-md rtl:last:rounded-l-md last:border-l last:border-white last:border-opacity-[0.10]; + &:hover { + box-shadow: none !important; + } + } + [class*="btn-outline-"] { + @apply ltr:last:border-l-0 rtl:last:border-r-0 focus:bg-transparent focus:text-inherit; + } + .btn-outline-primary { + @apply focus:text-primary-500 last:border-primary-500; + } + .btn-outline-secondary { + @apply focus:text-secondary-500 last:border-secondary-500; + } + .btn-outline-success { + @apply focus:text-success-500 last:border-success-500; + } + .btn-outline-danger { + @apply focus:text-danger-500 last:border-danger-500; + } + .btn-outline-warning { + @apply focus:text-warning-500 last:border-warning-500; + } + .btn-outline-info { + @apply focus:text-info-500 last:border-info-500; + } + .btn-outline-light { + @apply focus:text-slate-600 last:border-[#E0EAFF]; + } +} + +// link btn +.btn-link { + @apply text-slate-900 font-medium underline text-sm dark:text-white; + &.white { + @apply text-white; + } +} + +// action btn +.action-btn { + @apply h-6 w-6 flex flex-col items-center justify-center border border-slate-200 dark:border-slate-700 rounded; +} + +.invocie-btn { + @apply hover:bg-slate-900 hover:text-slate-100 dark:hover:bg-slate-600 mr-3 mb-4; +} + diff --git a/src/assets/scss/components/_card.scss b/src/assets/scss/components/_card.scss new file mode 100644 index 0000000..2b8afe7 --- /dev/null +++ b/src/assets/scss/components/_card.scss @@ -0,0 +1,23 @@ +.card-title { + @apply font-medium capitalize md:text-xl md:leading-[28px] text-lg leading-[24px] text-slate-900 dark:text-white; +} +.card-subtitle { + @apply text-sm leading-5 font-medium text-slate-600 dark:text-slate-300 mt-1; +} + +.card-header { + @apply flex items-center justify-between px-6 pt-6; +} +.card-header:not(.no-border) { + @apply border-b border-slate-200 dark:border-slate-700 pb-5; +} + +.card-footer { + @apply flex items-center justify-between px-6 pt-6 border-t border-slate-200 dark:border-slate-700 pb-5; +} + +.card-height-auto { + .card { + @apply h-min; + } +} diff --git a/src/assets/scss/components/_form.scss b/src/assets/scss/components/_form.scss new file mode 100644 index 0000000..4f352ff --- /dev/null +++ b/src/assets/scss/components/_form.scss @@ -0,0 +1,94 @@ +// .form-control { +// @apply bg-transparent dark:bg-slate-900 transition duration-300 ease-in-out border border-slate-200 +// dark:border-slate-700 focus:ring-1 focus:ring-slate-600 focus:outline-none focus:ring-opacity-90 rounded +// placeholder:text-slate-400 text-slate-900 text-sm px-3 placeholder:font-normal block w-full h-[40px] dark:text-white; +// } + +.form-label { + @apply mb-2 text-slate-600 dark:text-slate-300 text-sm leading-6 capitalize cursor-pointer block w-full font-medium rtl:text-right rtl:block; +} + +.form-control { + @apply bg-white dark:bg-slate-900 transition duration-300 ease-in-out border border-slate-200 + dark:border-slate-700 dark:text-slate-300 focus:ring-1 focus:ring-slate-600 + dark:focus:ring-slate-900 focus:outline-none focus:ring-opacity-90 rounded + placeholder:text-slate-400 text-slate-900 text-sm px-3 placeholder:font-normal dark:placeholder:text-slate-400 block w-full; +} + +.input-description { + @apply block text-secondary-500 font-light leading-4 text-xs mt-2; +} +.fromGroup { + @apply relative; + &.has-error { + .form-control { + @apply border-danger-500 focus:ring-danger-500 focus:ring-opacity-90 focus:ring-1; + } + } + &.is-valid { + .form-control { + @apply border-success-500 focus:ring-success-500 focus:ring-opacity-90 focus:ring-1; + } + } +} + +.form-control[readonly] { + @apply bg-slate-200 text-slate-400 dark:bg-slate-600 cursor-pointer placeholder:text-slate-400; +} + +.form-control[disabled] { + @apply cursor-not-allowed bg-slate-50 text-slate-800 placeholder:text-opacity-60 dark:bg-slate-600; +} + +// vue date range picker css +.text-vtd-primary-500-600 { + color: #0f172a !important; +} +.bg-vtd-primary-500-500 { + background-color: #0f172a !important; +} +.text-vtd-primary-500-500 { + color: #0f172a !important; +} + +.dark { + .text-vtd-primary-500-600 { + color: #f8fafc !important; + } + .text-vtd-primary-500-500 { + color: #f8fafc !important; + } + .bg-vtd-primary-500-500 { + background-color: #334155 !important; + } +} + +// file input +.file-control { + @apply bg-transparent dark:bg-slate-900 dark:text-white transition duration-300 ease-in-out border border-slate-200 dark:border-slate-700 focus:ring-1 focus:ring-slate-900 dark:focus:ring-slate-900 focus:outline-none focus:ring-opacity-90 rounded text-sm ltr:pl-3 rtl:pr-3 placeholder:font-normal; +} +.badge-title { + @apply bg-slate-900 text-white px-2 py-[3px] rounded text-sm; +} + +// datae picker +.flatpickr-day.selected, +.flatpickr-day.startRange, +.flatpickr-day.endRange, +.flatpickr-day.selected.inRange, +.flatpickr-day.startRange.inRange, +.flatpickr-day.endRange.inRange, +.flatpickr-day.selected:focus, +.flatpickr-day.startRange:focus, +.flatpickr-day.endRange:focus, +.flatpickr-day.selected:hover, +.flatpickr-day.startRange:hover, +.flatpickr-day.endRange:hover, +.flatpickr-day.selected.prevMonthDay, +.flatpickr-day.startRange.prevMonthDay, +.flatpickr-day.endRange.prevMonthDay, +.flatpickr-day.selected.nextMonthDay, +.flatpickr-day.startRange.nextMonthDay, +.flatpickr-day.endRange.nextMonthDay { + @apply bg-slate-900 border-black-500; +} diff --git a/src/assets/scss/components/_input-group.scss b/src/assets/scss/components/_input-group.scss new file mode 100644 index 0000000..401b8d1 --- /dev/null +++ b/src/assets/scss/components/_input-group.scss @@ -0,0 +1,112 @@ +.input-group-control { + @apply bg-white dark:bg-slate-900 dark:placeholder:text-slate-400 transition duration-300 ease-in-out border border-slate-200 dark:border-slate-700 focus:ring-0 focus:outline-none + rounded placeholder:text-slate-400 text-slate-900 text-sm px-3 placeholder:font-light focus:border-slate-600 dark:focus:border-slate-900 dark:text-white; +} + +.fromGroup2 { + &.has-error { + .input-group-control { + @apply border-danger-500 focus:ring-danger-500 focus:ring-opacity-90 focus:ring-1; + } + } + &.is-valid { + .input-group-control { + @apply border-success-500 focus:ring-success-500 focus:ring-opacity-90 focus:ring-1; + } + } +} + +.input-group-control[readonly] { + @apply bg-slate-200 text-slate-400 dark:bg-slate-600; +} + +.input-group-control[disabled] { + @apply cursor-not-allowed bg-slate-50 text-slate-400 placeholder:text-opacity-60 dark:bg-slate-600; +} + +.input-group-text { + @apply bg-white dark:bg-slate-900 transition duration-300 ease-in-out flex items-center justify-center px-3 border + border-slate-200 dark:border-slate-700 ltr:rounded-tl rtl:rounded-tr rtl:rounded-br ltr:rounded-bl text-slate-400 text-base font-light; +} +.inputGroup.has-prepend { + .input-group-control { + @apply ltr:border-l-0 rtl:border-r-0 ltr:rounded-tl-[0] rtl:rounded-tr-[0] ltr:rounded-bl-[0] rtl:rounded-br-[0]; + } +} +.inputGroup { + &.has-prepend-slot { + .input-group-control { + @apply ltr:border-l-0 rtl:border-r-0 ltr:rounded-tl-[0] rtl:rounded-tr-[0] ltr:rounded-bl-[0] rtl:rounded-br-[0] focus:ring-0 focus:border-slate-600 dark:focus:border-slate-700; + } + } + &.has-append-slot { + .input-group-control { + @apply ltr:border-r-0 rtl:border-l-0 ltr:rounded-tr-[0] rtl:rounded-tl-[0] ltr:rounded-br-[0] rtl:rounded-bl-[0] focus:ring-0 focus:border-slate-600 dark:focus:border-slate-700; + } + } +} +.inputGroup.has-append { + .input-group-control { + @apply ltr:border-r-0 rtl:border-l-0 ltr:rounded-tr-[0] rtl:rounded-tl-[0] rounded-br-[0] rtl:rounded-bl-[0]; + } + .input-group-addon.right { + .input-group-text { + @apply ltr:rounded-tl-[0] ltr:rounded-bl-[0] ltr:rounded-tr ltr:rounded-br rtl:rounded-tl rtl:rounded-bl rtl:rounded-tr-[0] rtl:rounded-br-[0]; + } + } +} + +.inputGroup:focus-within .input-group-text { + @apply border-black-500 dark:border-slate-900; +} +/* .merged .inputGroup:focus-within .input-group-text { +} */ +.inputGroup { + &.is-invalid { + .input-group-text { + @apply border-danger-500; + } + &:focus-within .input-group-text { + @apply ring-danger-500; + } + } + &.is-valid { + .input-group-text { + @apply border-success-500; + } + &:focus-within .input-group-text { + @apply ring-success-500; + } + } +} +.prepend-slot, +.append-slot { + .btn { + @apply pt-0 pb-0 h-full items-center hover:ring-0 rounded-tr-[0] rounded-br-[0] -mx-3; + } + > div, + button { + @apply h-full; + } +} +.input-group-addon { + &.right { + .append-slot { + .btn { + @apply rounded-tl-[0] rounded-bl-[0] rounded-tr rounded-br -mx-3; + } + } + } +} +.merged { + .input-group-addon { + .input-group-text { + @apply ltr:border-r-0 ltr:pr-0 rtl:border-l-0 rtl:pl-0; + } + &.right { + .input-group-text { + @apply ltr:border-l-0 rtl:border-r-0 ltr:border-r rtl:border-l ltr:pr-3 rtl:pl-3 ltr:pl-0 rtl:pr-0; + } + } + } +} diff --git a/src/assets/scss/components/_map.scss b/src/assets/scss/components/_map.scss new file mode 100644 index 0000000..7714835 --- /dev/null +++ b/src/assets/scss/components/_map.scss @@ -0,0 +1,8 @@ +.dash-codevmap { + path { + @apply fill-[#6794DC]; + } + .svg-map__location[aria-checked="true"] { + @apply fill-primary-500; + } +} diff --git a/src/assets/scss/components/_pagination.scss b/src/assets/scss/components/_pagination.scss new file mode 100644 index 0000000..2e9f501 --- /dev/null +++ b/src/assets/scss/components/_pagination.scss @@ -0,0 +1,54 @@ +.pagination { + li { + .prev-next-btn { + &:disabled { + @apply cursor-not-allowed opacity-50; + } + } + } + @apply flex items-center space-x-4 flex-wrap rtl:space-x-reverse; + li { + a, + div, + .page-link { + @apply bg-slate-100 dark:bg-slate-700 dark:text-slate-400 text-slate-900 text-sm font-normal rounded leading-[16px] flex h-6 w-6 items-center justify-center transition-all duration-150; + &.active { + @apply bg-slate-900 dark:bg-slate-600 dark:text-slate-200 text-white font-medium; + } + } + } + &.bordered { + @apply border border-[#D8DEE6] rounded-[3px] py-1 px-2; + li { + @apply text-slate-500; + &:first-child, + &:last-child { + button { + @apply hover:bg-slate-900 hover:text-white transition duration-150 text-slate-500 h-6 w-6 flex items-center justify-center rounded; + } + } + a, + div, + .page-link { + @apply bg-transparent text-slate-500; + &.active { + @apply bg-slate-900 text-white; + } + } + } + } + &.border-group { + @apply border border-[#D8DEE6] rounded-[3px] px-0 space-x-0 rtl:space-x-reverse; + li { + @apply border-r border-[#D8DEE5] h-full flex flex-col justify-center px-3 last:border-none text-slate-500; + a, + div, + .page-link { + @apply bg-transparent text-slate-500 dark:text-white h-auto w-auto; + &.active { + @apply text-slate-900 dark:text-white text-lg; + } + } + } + } +} diff --git a/src/assets/scss/components/_print.scss b/src/assets/scss/components/_print.scss new file mode 100644 index 0000000..a3f787e --- /dev/null +++ b/src/assets/scss/components/_print.scss @@ -0,0 +1,14 @@ +@media print { + .invocie-btn { + display: none; + } + .sidebar-wrapper, + .dashcode-app-header, + .site-footer, + .shadow-deep { + @apply hidden; + } + .content-wrapper { + @apply w-full ml-0; + } +} diff --git a/src/assets/scss/components/_progress.scss b/src/assets/scss/components/_progress.scss new file mode 100644 index 0000000..37fe3ca --- /dev/null +++ b/src/assets/scss/components/_progress.scss @@ -0,0 +1,30 @@ +.progress { + @apply bg-slate-900 dark:bg-slate-700 h-2; + .progress-bar { + &.stripes { + background-image: linear-gradient( + 45deg, + hsla(0, 0%, 100%, 0.15) 25%, + transparent 0, + transparent 50%, + hsla(0, 0%, 100%, 0.15) 0, + hsla(0, 0%, 100%, 0.15) 75%, + transparent 0, + transparent + ); + background-size: 0.857rem 0.857rem; + } + } +} + +@keyframes progress-bar-stripes { + 0% { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} +.animate-stripes { + animation: progress-bar-stripes 1s linear infinite; +} diff --git a/src/assets/scss/components/_react-select.scss b/src/assets/scss/components/_react-select.scss new file mode 100644 index 0000000..84ef16b --- /dev/null +++ b/src/assets/scss/components/_react-select.scss @@ -0,0 +1,226 @@ +// InValid Select +.dashcode-app { + .react-select.is-invalid { + .select__control { + border-color: none !important; + } + } +} + +// Select Control(Input) +.dashcode-app { + .select__control { + @apply border-slate-200; + } + + .has-error { + .select__control { + @apply border-danger-500; + } + } + + .select__control, + .react-select__control { + .select__input { + @apply text-slate-500; + } + + &.select__control--is-disabled { + @apply cursor-not-allowed; + .select__indicator-separator { + @apply bg-slate-50 text-slate-800 placeholder:text-opacity-60; + } + } + + &.select__control--is-focused, + &.react-select__control--is-focused { + box-shadow: none; + @apply border-slate-600; + } + + .select__indicator svg { + cursor: pointer; + @apply text-slate-600; + } + + .select__indicator-separator { + display: none; + } + + // ✅ Force white text for selected single value + .select__single-value, + .react-select__single-value { + color: #fff !important; + } + + .select__placeholder { + @apply text-slate-400; + } + } + + .has-error { + .select__control, + .react-select__control { + .select__indicator svg { + @apply text-danger-500; + } + } + } +} + +// Select Menu +.dashcode-app { + .select__menu, + .react-select__menu { + .select__menu-list, + .react-select__menu-list { + .select__option, + .react-select__option { + cursor: pointer; + + &.select__option--is-focused { + @apply bg-blue-100 text-blue-900; + } + + &.select__option--is-selected { + @apply bg-secondary-900 text-slate-200; + } + } + } + + .select__menu-list, + .react-select__menu-list { + .select__group { + .select__group-heading { + margin-bottom: 0.5rem; + @apply text-slate-900 capitalize; + font-weight: bolder; + font-size: inherit; + } + } + } + } +} + +.dashcode-app { + .select__multi-value, + .react-select__multi-value { + @apply text-white bg-blue-700; // 🔵 blue background + border-radius: 6px; + margin: 0 0.5rem 0.4rem 0; + + // ✅ Force white label text for tags + .select__multi-value__label, + .react-select__multi-value__label { + color: #fff !important; + font-size: 0.85rem; + border-radius: 6px; + padding: 0.25rem 0.6rem; + } + + .select__multi-value__remove, + .react-select__multi-value__remove { + color: #fff !important; + padding-left: 0; + padding-right: 0.5rem; + + &:hover { + @apply bg-blue-700 text-white; + } + + svg { + height: 0.85rem; + width: 0.85rem; + &:hover { + cursor: pointer; + } + } + } + } + .select__value-container { + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + } + } + +// Select Borderless +.select-borderless { + .select__control { + border: 0; + .select__indicators { + display: none; + } + } +} + +.dark { + .select__control { + @apply bg-slate-900 border-slate-700; + + .select__indicator svg { + @apply fill-slate-500; + } + + .select__input { + color: #cbd5e1 !important; + } + + .select__indicator span, + .select__single-value, + .react-select__single-value { + color: #cbd5e1 !important; + } + + .select__multi-value { + @apply bg-slate-700; + + .select__multi-value__label, + .react-select__multi-value__label { + @apply text-slate-300; + } + } + + .select__multi-value__remove { + svg { + fill: #cbd5e1; + } + &:hover { + background-color: transparent !important; + } + } + + .select__placeholder { + @apply text-slate-400; + } + } + + .select__menu { + @apply bg-slate-800; + } + + .select__menu, + .react-select__menu { + .select__menu-list, + .react-select__menu-list { + .select__option, + .react-select__option { + &.select__option--is-focused { + @apply bg-blue-100 text-blue-900; + } + + &.select__option--is-selected { + @apply bg-blue-700 text-white; + } + } + } + } +} + +html[dir="rtl"] { + .select__control { + .select__loading-indicator { + flex-direction: row-reverse; + } + } +} diff --git a/src/assets/scss/components/_swiper.scss b/src/assets/scss/components/_swiper.scss new file mode 100644 index 0000000..9bc87e2 --- /dev/null +++ b/src/assets/scss/components/_swiper.scss @@ -0,0 +1,21 @@ +.main-caro { + .swiper-button-next:after, + .swiper-button-prev:after { + font-family: unset !important; + @apply rtl:rotate-180; + } + .swiper-button-next:after { + content: url("https://api.iconify.design/heroicons-outline/chevron-right.svg?color=white&width=24"); + } + .swiper-button-prev:after { + content: url("https://api.iconify.design/heroicons-outline/chevron-left.svg?color=white&width=24"); + } + .swiper-pagination-bullet { + height: 2px; + width: 24px; + @apply rounded-[1px] bg-white bg-opacity-70; + &.swiper-pagination-bullet-active { + @apply bg-opacity-100; + } + } +} diff --git a/src/assets/scss/components/_table.scss b/src/assets/scss/components/_table.scss new file mode 100644 index 0000000..0d3b4ea --- /dev/null +++ b/src/assets/scss/components/_table.scss @@ -0,0 +1,17 @@ +.table-th { + @apply text-slate-600 dark:text-slate-300 text-xs font-semibold uppercase py-5 px-6 ltr:text-left rtl:text-right; +} + +.table-td { + @apply text-slate-600 dark:text-slate-300 text-sm font-normal capitalize px-6 py-5 border-slate-100 dark:border-slate-700; +} + +.table-checkbox { + @apply relative before:flex before:flex-col before:items-center before:justify-center + before:w-[18px] before:h-[18px] before:m-[-0.7px] before:bg-slate-100 dark:before:bg-slate-500 before:absolute + before:inset-0 before:rounded w-4 h-4 rounded checked:before:bg-slate-900 + checked:before:content-[url("https://api.iconify.design/heroicons-outline/check.svg?color=white")] checked:before:leading-[10px] + checked:before:ring-2 checked:before:ring-black-500 + checked:before:ring-offset-2 checked:before:dark:ring-slate-700 + checked:before:dark:ring-offset-0; +} diff --git a/src/assets/scss/components/_tippy.scss b/src/assets/scss/components/_tippy.scss new file mode 100644 index 0000000..7f8b23c --- /dev/null +++ b/src/assets/scss/components/_tippy.scss @@ -0,0 +1,167 @@ +.custom-tippy { + .tippy-box { + @apply bg-slate-900; + } + .tippy-arrow { + @apply text-slate-900; + } + .tippy-box[data-theme~="primary"] { + @apply bg-primary-500 text-white; + } + .tippy-box[data-theme~="secondary"] { + @apply bg-secondary-500 text-white; + } + .tippy-box[data-theme~="success"] { + @apply bg-success-500 text-white; + } + .tippy-box[data-theme~="info"] { + @apply bg-info-500 text-white; + } + .tippy-box[data-theme~="warning"] { + @apply bg-warning-500 text-white; + } + .tippy-box[data-theme~="danger"] { + @apply bg-danger-500 text-white; + } + .tippy-box[data-theme~="dark"] { + @apply bg-slate-900 text-white dark:bg-slate-900; + } + .tippy-box[data-theme~="custom-light"] { + @apply bg-white text-slate-900 dark:bg-slate-700 shadow-dropdown dark:border-slate-700 dark:border; + } + .tippy-box[data-theme~="custom-light2"] { + @apply bg-white text-slate-900 dark:bg-slate-700 shadow-dropdown dark:border-slate-700 dark:border rounded; + .tippy-content { + @apply p-0; + } + } + + .tippy-box[data-theme~="custom-light"][data-placement^="top"] + > .tippy-arrow::before { + @apply border-t-white dark:border-t-slate-700; + } + .tippy-box[data-theme~="custom-light"][data-placement^="bottom"] + > .tippy-arrow::before { + @apply border-b-white dark:border-b-slate-700; + } + .tippy-box[data-theme~="custom-light"][data-placement^="left"] + > .tippy-arrow::before { + @apply border-l-white dark:border-l-slate-700; + } + .tippy-box[data-theme~="custom-light"][data-placement^="right"] + > .tippy-arrow::before { + @apply border-r-white dark:border-r-slate-700; + } + + .tippy-box[data-theme~="primary"][data-placement^="top"] + > .tippy-arrow::before { + @apply border-t-primary-500; + } + .tippy-box[data-theme~="primary"][data-placement^="bottom"] + > .tippy-arrow::before { + @apply border-b-primary-500; + } + .tippy-box[data-theme~="primary"][data-placement^="left"] + > .tippy-arrow::before { + @apply border-l-primary-500; + } + .tippy-box[data-theme~="primary"][data-placement^="right"] + > .tippy-arrow::before { + @apply border-r-primary-500; + } + .tippy-box[data-theme~="secondary"][data-placement^="top"] + > .tippy-arrow::before { + @apply border-t-secondary-500; + } + .tippy-box[data-theme~="secondary"][data-placement^="bottom"] + > .tippy-arrow::before { + @apply border-b-secondary-500; + } + .tippy-box[data-theme~="secondary"][data-placement^="left"] + > .tippy-arrow::before { + @apply border-l-secondary-500; + } + .tippy-box[data-theme~="secondary"][data-placement^="right"] + > .tippy-arrow::before { + @apply border-r-secondary-500; + } + .tippy-box[data-theme~="success"][data-placement^="top"] + > .tippy-arrow::before { + @apply border-t-success-500; + } + .tippy-box[data-theme~="success"][data-placement^="bottom"] + > .tippy-arrow::before { + @apply border-b-success-500; + } + .tippy-box[data-theme~="success"][data-placement^="left"] + > .tippy-arrow::before { + @apply border-l-success-500; + } + .tippy-box[data-theme~="success"][data-placement^="right"] + > .tippy-arrow::before { + @apply border-r-success-500; + } + .tippy-box[data-theme~="info"][data-placement^="top"] > .tippy-arrow::before { + @apply border-t-info-500; + } + .tippy-box[data-theme~="info"][data-placement^="bottom"] + > .tippy-arrow::before { + @apply border-b-info-500; + } + .tippy-box[data-theme~="info"][data-placement^="left"] + > .tippy-arrow::before { + @apply border-l-info-500; + } + .tippy-box[data-theme~="info"][data-placement^="right"] + > .tippy-arrow::before { + @apply border-r-info-500; + } + .tippy-box[data-theme~="warning"][data-placement^="top"] + > .tippy-arrow::before { + @apply border-t-warning-500; + } + .tippy-box[data-theme~="warning"][data-placement^="bottom"] + > .tippy-arrow::before { + @apply border-b-warning-500; + } + .tippy-box[data-theme~="warning"][data-placement^="left"] + > .tippy-arrow::before { + @apply border-l-warning-500; + } + .tippy-box[data-theme~="warning"][data-placement^="right"] + > .tippy-arrow::before { + @apply border-r-warning-500; + } + .tippy-box[data-theme~="danger"][data-placement^="top"] + > .tippy-arrow::before { + @apply border-t-danger-500; + } + .tippy-box[data-theme~="danger"][data-placement^="bottom"] + > .tippy-arrow::before { + @apply border-b-danger-500; + } + .tippy-box[data-theme~="danger"][data-placement^="left"] + > .tippy-arrow::before { + @apply border-l-danger-500; + } + .tippy-box[data-theme~="danger"][data-placement^="right"] + > .tippy-arrow::before { + @apply border-r-danger-500; + } + + .tippy-box[data-theme~="dark"][data-placement^="top"] > .tippy-arrow::before { + @apply border-t-black-500 dark:border-t-slate-900; + } + .tippy-box[data-theme~="dark"][data-placement^="bottom"] + > .tippy-arrow::before { + @apply border-b-black-500 dark:border-b-slate-900; + } + .tippy-box[data-theme~="dark"][data-placement^="left"] + > .tippy-arrow::before { + @apply border-l-black-500 dark:border-l-slate-900; + } + .tippy-box[data-theme~="dark"][data-placement^="right"] + > .tippy-arrow::before { + @apply border-r-black-500 dark:border-r-slate-900; + } +} diff --git a/src/assets/scss/components/_typography.scss b/src/assets/scss/components/_typography.scss new file mode 100644 index 0000000..5de42f2 --- /dev/null +++ b/src/assets/scss/components/_typography.scss @@ -0,0 +1,88 @@ +h1 { + @apply text-6xl font-semibold text-slate-900 dark:text-slate-300; +} +h2 { + @apply text-5xl font-semibold text-slate-900 dark:text-slate-300; +} + +h3 { + @apply text-4xl font-medium text-slate-900 dark:text-slate-300; +} +h4 { + @apply text-3xl font-medium text-slate-900 dark:text-slate-300; +} +h5 { + @apply text-2xl font-medium text-slate-900 dark:text-slate-300; +} +h6 { + @apply text-xl leading-[20px] font-medium text-slate-900 dark:text-slate-300; +} + +.display-1 { + @apply text-[70px] leading-[80px] text-slate-900 dark:text-slate-300 font-semibold; +} +.display-2 { + @apply text-[48px] leading-[58px] text-slate-900 dark:text-slate-300 font-semibold; +} + +.display-3 { + @apply text-[40px] leading-[48px] text-slate-900 dark:text-slate-300 font-semibold; +} + +.display-4 { + @apply text-[40px] leading-[48px] text-slate-900 dark:text-slate-300 font-normal; +} +blockquote { + @apply border-l-2 border-gray-500 pl-5 text-xl italic; +} + +.gradient-1 { + background: linear-gradient(96.2deg, #0575e6 0%, #021b79 100%); +} + +.gradient-2 { + background: linear-gradient(96.01deg, #00c9ff 0.29%, #fff94c 100%); +} + +.gradient-3 { + background: linear-gradient(96.01deg, #aaffa9 0.29%, #11ffbd 100%); +} + +// order list +.custom-list { + @apply relative pl-4 -mx-1; + list-style: none; + li { + @apply relative; + &::before { + @apply absolute ltr:left-0 rtl:right-0; + } + } +} +ol.custom-list ol, +ul.custom-list ul { + @apply mt-3; + li { + @apply ltr:pl-6 rtl:pr-6; + } +} +.lits-by-numbaring { + counter-reset: listitem; + + li { + @apply ltr:pl-[1.3em] rtl:pr-[1.3em] relative -mx-1; + &::before { + counter-increment: listitem; + content: counters(listitem, ".") "."; + } + } +} +.lits-by-slash { + li { + @apply pl-4 relative; + &::before { + left: 6px; + content: "-"; + } + } +} diff --git a/src/assets/scss/layout/_footer.scss b/src/assets/scss/layout/_footer.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/assets/scss/layout/_header.scss b/src/assets/scss/layout/_header.scss new file mode 100644 index 0000000..3dbcd5c --- /dev/null +++ b/src/assets/scss/layout/_header.scss @@ -0,0 +1,32 @@ +.has-sticky-header { + @apply my-5 top-5 rounded-md sticky z-[999]; + .app-header { + @apply md:mx-6 mx-[15px] rounded-md; + } + &::after { + position: absolute; + z-index: -10; + --tw-backdrop-blur: blur(12px); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) + var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) + var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) + var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) + var(--tw-backdrop-sepia); + --tw-content: ""; + content: var(--tw-content); + background: linear-gradient( + 180deg, + rgba(var(--v-theme-background), 70%) 44%, + rgba(var(--v-theme-background), 43%) 73%, + rgba(var(--v-theme-background), 0%) + ); + background-repeat: repeat; + block-size: 5.5rem; + inset-block-start: -1.5rem; + inset-inline-end: 0; + inset-inline-start: 0; + -webkit-mask: linear-gradient(black, black 18%, transparent 100%); + mask: linear-gradient(black, black 18%, transparent 100%); + } +} +@import "menu"; diff --git a/src/assets/scss/layout/_menu.scss b/src/assets/scss/layout/_menu.scss new file mode 100644 index 0000000..a1a8594 --- /dev/null +++ b/src/assets/scss/layout/_menu.scss @@ -0,0 +1,52 @@ +.main-menu { + > ul { + > li { + @apply inline-block relative; + > a { + @apply relative flex capitalize items-start text-sm font-medium leading-6 text-slate-600 dark:text-slate-300 2xl:px-6 xl:px-5 py-6 transition-all duration-150; + .icon-box { + @apply text-slate-500 dark:text-slate-300 transition-all duration-150 text-lg; + } + } + &:hover { + > a { + @apply text-primary-500; + .icon-box { + @apply text-primary-500; + } + } + } + &.has-megamenu { + @apply static; + } + } + } +} + +.main-menu > ul > li.menu-item-has-children > ul.sub-menu, +.main-menu > ul > li.menu-item-has-children > .rt-mega-menu { + @apply absolute left-0 min-w-[178px] w-max top-[110%] px-4 py-3 bg-white + rounded-[4px] dark:bg-slate-800 z-[999] invisible opacity-0 transition-all duration-150 + shadow-base2; +} +.main-menu > ul > li.menu-item-has-children > .rt-mega-menu { + @apply max-w-[1170px] left-1/2 -translate-x-1/2; +} +.main-menu > ul > li.menu-item-has-children > .rt-mega-menu { + @apply w-full; +} +.main-menu > ul > li.menu-item-has-children:hover > ul.sub-menu, +.main-menu > ul > li.menu-item-has-children:hover > .rt-mega-menu { + @apply top-full visible opacity-100; +} +.main-menu > ul > li.menu-item-has-children > ul.sub-menu li { + @apply relative pb-2 last:pb-0; +} +.main-menu > ul > li.menu-item-has-children > ul.sub-menu li a { + @apply text-sm font-normal text-slate-600 dark:text-slate-300 dark:hover:text-primary-500 capitalize py-1 last:pb-0 block hover:text-primary-500; +} +.rt-mega-menu { + a { + @apply dark:text-slate-300 dark:hover:text-primary-500 text-sm py-[6px] block; + } +} diff --git a/src/assets/scss/layout/_settings.scss b/src/assets/scss/layout/_settings.scss new file mode 100644 index 0000000..3942598 --- /dev/null +++ b/src/assets/scss/layout/_settings.scss @@ -0,0 +1,24 @@ +.settings-enter { + opacity: 0; + transform: scale(0.9); +} +.settings-enter-active { + opacity: 1; + transform: translateX(0); + transition: opacity 300ms, transform 300ms; +} +.settings-exit { + opacity: 1; +} +.settings-exit-active { + opacity: 0; + transform: scale(0.9); + transition: opacity 300ms, transform 300ms; +} +.page-content { + @apply md:pt-6 md:pb-[37px] md:px-6 pt-[15px] px-[15px] pb-24; +} + +.page-min-height { + min-height: calc(var(--vh, 1vh) * 100 - 132px); +} diff --git a/src/assets/scss/layout/_sidebar.scss b/src/assets/scss/layout/_sidebar.scss new file mode 100644 index 0000000..8ab0240 --- /dev/null +++ b/src/assets/scss/layout/_sidebar.scss @@ -0,0 +1,139 @@ +.sidebar-wrapper { + @apply fixed ltr:left-0 rtl:right-0 top-0 h-screen z-[999]; + transition: width 0.2s cubic-bezier(0.39, 0.575, 0.565, 1); + will-change: width; +} + +.nav-shadow { + background: linear-gradient( + rgb(255, 255, 255) 5%, + rgba(255, 255, 255, 75%) 45%, + rgba(255, 255, 255, 20%) 80%, + transparent + ); +} +.dark { + .nav-shadow { + background: linear-gradient( + rgba(#1e293b, 100%) 5%, + rgba(#1e293b, 75%) 45%, + rgba(#1e293b, 20%) 80%, + transparent + ); + } +} + +.sidebar-wrapper.sidebar-hovered { + width: 248px !important; +} +.logo-segment.logo-hovered { + width: 248px !important; +} + +.sidebar-menu-container { + height: calc(100% - 4.45rem) !important; +} + +// menu link css +.submenu_enter-active, +.submenu_leave-active { + overflow: hidden; + transition: all 0.34s linear; +} + +.not-collapsed .has-icon { + transition: all 0.34s linear; +} +.not-collapsed .has-icon { + @apply transform rotate-180; +} + +// single sidebar menu css +.single-sidebar-menu { + @apply relative; + .menulabel { + @apply text-slate-800 dark:text-slate-300 text-xs font-semibold uppercase mb-4 mt-4; + } + > .menu-link { + @apply flex text-slate-600 font-medium dark:text-slate-300 text-sm capitalize px-[10px] py-3 rounded-[4px] cursor-pointer; + } + .menu-icon { + @apply icon-box inline-flex items-center text-slate-600 dark:text-slate-300 text-lg ltr:mr-3 rtl:ml-3; + } +} +// menu item has chilren +.item-has-children { + .menu-arrow { + @apply h-5 w-5 text-base text-slate-300 bg-slate-100 dark:bg-[#334155] dark:text-slate-300 rounded-full flex justify-center items-center; + } +} + +// close sidebar css +.close_sidebar .menulabel { + @apply hidden; +} +.menu-badge { + @apply py-1 px-2 text-xs capitalize font-semibold rounded-[.358rem] whitespace-nowrap align-baseline inline-flex bg-slate-900 text-slate-50 dark:bg-slate-700 dark:text-slate-300; +} + +.close_sidebar:not(.sidebar-hovered) { + .menu-arrow { + @apply hidden; + } + .single-sidebar-menu { + .text-box { + @apply absolute left-full ml-5 w-[180px] top-0 px-4 py-3 bg-white shadow-dropdown rounded-[4px] dark:bg-slate-800 z-[999] invisible opacity-0 transition-all duration-150; + } + &:hover { + .text-box { + @apply visible opacity-100; + } + } + } + .item-has-children { + .text-box { + @apply hidden; + } + + ul.sub-menu { + @apply ml-4 absolute left-full top-0 w-[230px] bg-white shadow-dropdown rounded-[4px] dark:bg-slate-800 z-[999] px-4 pt-3 transition-all duration-150 invisible opacity-0; + display: block !important; + } + &:hover { + > ul { + @apply visible opacity-100; + } + } + } + .menu-badge { + @apply hidden; + } +} + +// active menu +.item-has-children { + .parent_active { + @apply bg-secondary-500 bg-opacity-20; + .icon-box, + .menu-icon, + .text-box { + @apply text-slate-700 dark:text-slate-200; + } + .menu-arrow { + @apply bg-secondary-500 text-slate-600 text-opacity-70 bg-opacity-30 dark:text-white; + } + } +} +.menu-item-active { + .menu-link { + @apply bg-slate-800 dark:bg-slate-700; + .icon-box, + .menu-icon, + .text-box { + @apply text-white dark:text-slate-300; + } + } + .menu-badge { + @apply bg-slate-100 text-slate-900; + } +} diff --git a/src/assets/scss/style.css b/src/assets/scss/style.css new file mode 100644 index 0000000..897fc6a --- /dev/null +++ b/src/assets/scss/style.css @@ -0,0 +1,74 @@ +/* .ql-editor { + background-color: white; + padding: 1rem; + min-height: 250px; + font-size: 0.875rem; */ +/* text-sm */ +/* } */ +/* +.ql-container.ql-snow { + border: 1px solid #d1d5db; */ +/* gray-300 */ +/* border-radius: 1.5rem; +} */ + +/* Match input styles */ +.ql-editor { + background-color: white; + padding: 0.75rem 1rem; + /* py-3 px-4 */ + min-height: 250px; + font-size: 0.875rem; + /* text-sm */ + border-radius: 0.5rem; + /* rounded-lg */ + outline: none; + resize: none; +} + +/* Match border and focus ring */ +.ql-container.ql-snow { + border: 1px solid #d1d5db; + /* border-gray-300 */ + border-radius: 0.5rem; + /* rounded-lg */ + transition: box-shadow 0.2s; +} + +.ql-container.ql-snow:focus-within { + border-color: transparent; + box-shadow: 0 0 0 2px #3b82f6; + /* Tailwind blue-500 ring */ +} + +/* .p-multiselect .p-multiselect-token { */ +/* background-color: #3b82f6 !important; */ +/* color: white !important; */ +/* } */ + +.p-multiselect.p-focus { + border-color: #3b82f6 !important; + box-shadow: 0 0 0 2px #3b82f6 !important; +} + +.p-multiselect-item.p-highlight { + background-color: #e0e0e0 !important; + color: black !important; +} + +.p-checkbox-box { + border: 2px solid #ced4da; + background: #ffffff; +} + +/* When checkbox is checked */ +.p-checkbox-box.p-highlight { + background-color: #3b82f6 !important; + border-color: #3b82f6 !important; +} + +/* Check icon inside the box */ +.p-checkbox-icon { + color: black !important; + font-size: 0.75rem; +} \ No newline at end of file diff --git a/src/assets/scss/utility/_calander.scss b/src/assets/scss/utility/_calander.scss new file mode 100644 index 0000000..2ee9e7f --- /dev/null +++ b/src/assets/scss/utility/_calander.scss @@ -0,0 +1,64 @@ +.dashcode-app { + .react-calendar { + @apply w-full bg-white border-none; + } + + .react-calendar__navigation__prev2-button { + @apply hidden; + } + .react-calendar__navigation__next2-button { + @apply hidden; + } + .react-calendar__navigation__label { + @apply text-slate-900 text-2xl; + } + .react-calendar__navigation button:enabled:hover, + .react-calendar__navigation button:enabled:focus { + @apply bg-transparent; + } + .react-calendar__navigation { + @apply mb-2; + } + .react-calendar__navigation__arrow { + @apply text-4xl; + } + .react-calendar__month-view__weekdays__weekday { + @apply text-sm font-normal text-slate-600 capitalize p-0 mb-2; + abbr { + @apply no-underline; + } + .react-calendar__tile { + @apply text-slate-600; + &.react-calendar__month-view__days__day--weekend { + @apply text-danger-500; + } + } + } + .react-calendar__tile { + @apply text-sm font-normal capitalize w-8 h-8 flex flex-col items-center justify-center rounded; + } + &.dark { + .react-calendar { + @apply bg-slate-800; + } + .react-calendar__navigation__label { + @apply text-slate-300; + } + .react-calendar__month-view__weekdays__weekday { + @apply text-slate-300; + } + .react-calendar__tile { + @apply text-slate-400; + &.react-calendar__month-view__days__day--weekend { + @apply text-danger-500; + } + } + .react-calendar__tile:enabled:hover, + .react-calendar__tile:enabled:focus { + @apply bg-slate-700; + } + } + .react-calendar__tile--active { + @apply bg-slate-900 text-white; + } +} diff --git a/src/assets/scss/utility/_css-animation.scss b/src/assets/scss/utility/_css-animation.scss new file mode 100644 index 0000000..de35030 --- /dev/null +++ b/src/assets/scss/utility/_css-animation.scss @@ -0,0 +1,35 @@ +.profileAnimation-enter { + opacity: 0; + transform: translateX(-100%); +} +.profileAnimation-enter-active { + opacity: 1; + transform: translateX(-120px); + transition: opacity 300ms, transform 300ms; +} +.profileAnimation-exit { + opacity: 1; +} +.profileAnimation-exit-active { + opacity: 0; + transform: translateX(-100%); + transition: opacity 300ms, transform 300ms; +} + +.slide-in-left-enter { + opacity: 0; + transform: scale(0.9); +} +.slide-in-left-enter-active { + opacity: 1; + transform: translateX(0); + transition: opacity 300ms, transform 300ms; +} +.slide-in-left-exit { + opacity: 1; +} +.slide-in-left-exit-active { + opacity: 0; + transform: scale(0.9); + transition: opacity 300ms, transform 300ms; +} diff --git a/src/assets/scss/utility/_full-calender.scss b/src/assets/scss/utility/_full-calender.scss new file mode 100644 index 0000000..77ca537 --- /dev/null +++ b/src/assets/scss/utility/_full-calender.scss @@ -0,0 +1,188 @@ +.dashcode-app { + .fc-toolbar-chunk button { + height: 50px; + //min-width: 70px; + &.fc-prev-button { + &:after { + // content: url("https://api.iconify.design/akar-icons/chevron-left.svg?color=white&width=24"); + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + } + } + &.fc-next-button { + &:after { + //content: url("https://api.iconify.design/akar-icons/chevron-right.svg?color=white&width=24"); + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + } + } + } + .fc-button { + font-size: 14px !important; + line-height: 14px !important; + height: auto !important; + text-transform: capitalize !important; + font-family: Inter !important; + padding: 12px 20px 12px 20px !important; + } + .fc .fc-button-primary { + background: transparent !important; + @apply text-slate-900 dark:text-white border-slate-100; + } + .fc .fc-button-primary:not(:disabled):active, + .fc .fc-button-primary:not(:disabled).fc-button-active, + .fc .fc-button-primary:hover { + background: #111112 !important; + color: #fff !important; + } + + .fc .fc-button-primary:disabled { + background: #a0aec0 !important; + border-color: #a0aec0 !important; + @apply cursor-not-allowed; + } + + .fc .fc-daygrid-day.fc-day-today { + background: rgba(95, 99, 242, 0.04) !important; + } + + .fc .fc-button-primary:focus { + box-shadow: none !important; + } + .fc-theme-standard .fc-scrollgrid { + border-color: #eef1f9 !important; + } + + .fc-theme-standard td, + .fc-theme-standard th { + @apply border-slate-100 dark:border-slate-700; + } + .fc-col-header-cell .fc-scrollgrid-sync-inner { + @apply bg-slate-50 dark:bg-slate-700 text-xs text-slate-500 dark:text-slate-300 font-normal py-3; + } + .fc-daygrid-day-top { + @apply text-sm px-3 py-2 text-slate-900 dark:text-white font-normal; + } + .fc-h-event .fc-event-main-frame { + @apply justify-center text-center w-max mx-auto; + .fc-event-time { + @apply font-normal flex-none; + } + } + .fc-event-time { + @apply text-sm font-normal; + } + .fc-event-title { + font-size: 14px !important; + font-weight: 300 !important; + } + .fc .fc-toolbar-title { + @apply text-lg font-normal text-slate-600 dark:text-slate-300; + } + // event css + .fc-daygrid-event-dot { + @apply hidden; + } + + @media (max-width: 981px) { + .fc-button-group, + .fc .fc-toolbar { + display: block !important; + } + .fc .fc-toolbar { + @apply space-y-4; + } + .fc-toolbar-chunk { + @apply space-y-4; + } + .fc .fc-button { + padding: 0.4em 0.65em !important; + } + } + .fc .fc-timegrid-axis-cushion, + .fc .fc-timegrid-slot-label-cushion { + @apply dark:text-slate-300; + } + .fc .fc-list-event:hover td { + @apply bg-inherit; + } + .fc .fc-list-event-dot { + @apply hidden; + } + .fc-direction-ltr .fc-list-day-text, + .fc-direction-rtl .fc-list-day-side-text, + .fc-direction-ltr .fc-list-day-side-text, + .fc-direction-rtl .fc-list-day-text { + font-size: 16px; + font-weight: 500; + } +} + +// + +.dark { + .fc-col-header-cell .fc-scrollgrid-sync-inner { + @apply bg-slate-700 text-slate-300; + } + .fc-daygrid-day-top { + @apply text-slate-300; + } + .fc .fc-day-other .fc-daygrid-day-top { + @apply opacity-70; + } + .fc .fc-button-primary { + @apply border-slate-600 text-slate-300; + } + .fc-theme-standard td, + .fc-theme-standard th { + @apply border-slate-700; + } + .fc .fc-toolbar-title { + @apply text-slate-300; + } + .fc .fc-button-primary:not(:disabled):active, + .fc .fc-button-primary:not(:disabled).fc-button-active, + .fc .fc-button-primary:hover { + background: #0f172a !important; + } + + .fc .fc-button-primary:disabled { + background: #334155 !important; + border-color: #334155 !important; + } + + .fc .fc-daygrid-day.fc-day-today { + background: #334155 !important; + } + + .fc-theme-standard .fc-scrollgrid { + border-color: #334155 !important; + } +} +.dashcode-calender { + .primary { + @apply bg-[#4669FA] border-none text-white text-center px-2 font-medium text-sm; + } + .secondary { + @apply bg-[#A0AEC0] border-none text-white text-center px-2 font-medium text-sm; + } + .danger { + @apply bg-[#F1595C] border-none text-white text-center px-2 font-medium text-sm; + } + .info { + @apply bg-[#0CE7FA] border-none text-white text-center px-2 font-medium text-sm; + } + .warning { + @apply bg-[#FA916B] border-none text-white text-center px-2 font-medium text-sm; + } + .success { + @apply bg-[#50C793] border-none text-white text-center px-2 font-medium text-sm; + } + .dark { + @apply bg-[#222] border-none text-white text-center px-2 font-medium text-sm; + } +} diff --git a/src/assets/scss/utility/_loading.scss b/src/assets/scss/utility/_loading.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/assets/scss/utility/_mix.scss b/src/assets/scss/utility/_mix.scss new file mode 100644 index 0000000..571f7be --- /dev/null +++ b/src/assets/scss/utility/_mix.scss @@ -0,0 +1,236 @@ +.social-link { + @apply h-8 w-8 flex flex-col items-center justify-center border-black-500 dark:border-slate-700 border rounded-full text-slate-900 dark:text-slate-300 leading-[1] hover:bg-slate-900 dark:hover:bg-slate-700 hover:text-white transition duration-150; +} + +.legend-ring { + .apexcharts-legend-series:nth-child(1) .apexcharts-legend-marker { + @apply ring-4 ring-primary-500 ring-opacity-30 rtl:ml-4; + } + .apexcharts-legend-series:nth-child(2) .apexcharts-legend-marker { + @apply ring-4 ring-info-500 ring-opacity-30 rtl:ml-4; + } + .apexcharts-legend-series:nth-child(3) .apexcharts-legend-marker { + @apply ring-4 ring-warning-500 ring-opacity-30 rtl:ml-4; + } +} +.legend-ring2 { + .apexcharts-legend-series:nth-child(1) .apexcharts-legend-marker { + @apply ring-4 ring-info-500 ring-opacity-30 rtl:ml-4; + } + .apexcharts-legend-series:nth-child(2) .apexcharts-legend-marker { + @apply ring-4 ring-warning-500 ring-opacity-30 rtl:ml-4; + } +} + +.legend-ring3 { + .apexcharts-legend-series:nth-child(1) .apexcharts-legend-marker { + @apply ring-4 ring-success-500 ring-opacity-30 rtl:ml-4; + } + .apexcharts-legend-series:nth-child(2) .apexcharts-legend-marker { + @apply ring-4 ring-warning-500 ring-opacity-30 rtl:ml-4; + } + .apexcharts-legend-series:nth-child(3) .apexcharts-legend-marker { + @apply ring-4 ring-secondary-500 ring-opacity-30 rtl:ml-4; + } +} + +.legend-ring4 { + .apexcharts-legend-series:nth-child(1) .apexcharts-legend-marker { + @apply ring-4 ring-primary-500 ring-opacity-30 rtl:ml-4; + } + .apexcharts-legend-series:nth-child(2) .apexcharts-legend-marker { + @apply ring-4 ring-warning-500 ring-opacity-30 rtl:ml-4; + } +} +[dir="rtl"] .charts .apexcharts-legend-marker { + margin-left: 10px !important; +} + +// app todo css +.app_height { + height: calc(var(--vh, 1vh) * 100 - 12.1rem); +} + +// email +.email-icon { + @apply h-8 w-8 bg-slate-100 dark:bg-slate-900 dark:text-slate-200 text-slate-600 flex flex-col justify-center items-center text-base rounded-full cursor-pointer; +} + +// chat height +.chat-height { + height: calc(var(--vh, 1vh) * 100 - 12.1rem); +} +@media (max-width: 768px) { + .chat-height { + height: calc(var(--vh, 1vh) * 100 - 10.5rem); + } +} +.contact-height { + height: calc(100% - 138px); +} +.msg-height { + height: calc(100% - 0px); +} +.parent-height { + height: calc(100% - 200px); +} +.msg-action-btn { + @apply md:h-8 md:w-8 h-6 w-6 cursor-pointer bg-slate-100 dark:bg-slate-900 dark:text-slate-400 text-slate-900 flex flex-col justify-center items-center md:text-xl text-sm rounded-full; +} + +.info-500-list { + @apply text-xs text-slate-600; + li { + @apply flex space-x-2; + span:nth-child(1) { + @apply font-medium flex-none text-right; + } + span:nth-child(2) { + @apply flex-1 text-right; + } + } +} +// rich editor +.dashcode-app { + .ql-editor { + min-height: 120px; + } + .ql-toolbar.ql-snow { + @apply border-none p-0 mb-2; + } + .ql-container.ql-snow { + @apply bg-[#FBFBFB] dark:bg-slate-900 border-none text-base; + } + .ql-editor { + @apply border-slate-200 dark:border-slate-700 border rounded text-base; + } +} +.dark { + .ql-snow .ql-stroke { + @apply stroke-slate-300; + } + .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label { + @apply bg-slate-700; + } + .ql-snow.ql-toolbar button:hover, + .ql-snow .ql-toolbar button:hover, + .ql-snow.ql-toolbar button:focus, + .ql-snow .ql-toolbar button:focus, + .ql-snow.ql-toolbar .ql-picker-label:hover, + .ql-snow .ql-toolbar .ql-picker-label:hover, + .ql-snow.ql-toolbar .ql-picker-item:hover, + .ql-snow .ql-toolbar .ql-picker-item:hover { + @apply bg-slate-700; + } + .ql-picker-label { + @apply text-slate-300; + } + .ql-snow .ql-picker.ql-expanded .ql-picker-label { + @apply bg-slate-300 border-slate-700; + } +} + +// label +.date-label { + @apply text-xs text-slate-400 dark:text-slate-400 mb-1; +} +.date-text { + @apply text-xs text-slate-600 dark:text-slate-300 font-medium; +} + +// icons pages + +.icon-lists { + li { + margin-right: 12px; + margin-bottom: 12px; + } +} + +// date range picker +.date-range-custom { + @apply relative w-[140px]; + .input-class { + @apply opacity-0 cursor-pointer; + } + .container-class { + @apply w-full h-[44px] bg-white dark:bg-slate-800 before:px-3 before:text-sm before:text-slate-900 rounded cursor-pointer; + &:before { + content: "Weekly"; + position: absolute; + top: 50%; + transform: translateY(-50%) translateX(-50%); + left: calc(50% + 10px); + } + &:after { + content: url("https://api.iconify.design/heroicons/calendar.svg?width=18&height=18"); + height: 20px; + position: absolute; + top: 50%; + transform: translateY(-50%) translateX(-50%); + left: calc(50% - 30px); + } + + > button { + @apply hidden; + } + } +} + +.date-range-custom2 { + @apply relative w-[160px]; + .input-class { + @apply opacity-0 cursor-pointer; + } + .container-class { + @apply w-full h-[44px] bg-white dark:bg-slate-800 before:px-3 before:text-sm before:text-slate-900 rounded cursor-pointer; + &:before { + content: "Select date"; + position: absolute; + top: 50%; + transform: translateY(-50%); + left: 0; + padding-left: 30px; + width: 100%; + text-align: center; + } + &:after { + content: url("https://api.iconify.design/heroicons-outline/filter.svg?width=18&height=18"); + height: 20px; + position: absolute; + top: 50%; + transform: translateY(-50%) translateX(-50%); + left: calc(50% - 43px); + } + + > button { + @apply hidden; + } + } +} + +.dark { + .date-range-custom, + .date-range-custom2 { + .container-class { + &::before, + &::after { + @apply text-slate-300; + } + } + } + .date-range-custom { + .container-class { + &:after { + content: url("https://api.iconify.design/heroicons/calendar.svg?color=white&width=18&height=18"); + } + } + } + .date-range-custom2 { + .container-class { + &:after { + content: url("https://api.iconify.design/heroicons-outline/filter.svg?color=white&width=18&height=18"); + } + } + } +} diff --git a/src/components/Loader-circle.jsx b/src/components/Loader-circle.jsx new file mode 100644 index 0000000..e04bb65 --- /dev/null +++ b/src/components/Loader-circle.jsx @@ -0,0 +1,15 @@ +import React from "react"; +import Card from "./ui/Card"; + +const LoaderCircle = () => { + return ( + +
+
+ ); +}; + +export default LoaderCircle; diff --git a/src/components/Loading.jsx b/src/components/Loading.jsx new file mode 100644 index 0000000..b2d1fa3 --- /dev/null +++ b/src/components/Loading.jsx @@ -0,0 +1,48 @@ +import React from "react"; +import useDarkMode from "@/hooks/useDarkMode"; +// import LogoWhite from "@/assets/images/logo/logo-white.svg"; +import Logo from "@/assets/images/logo/logo.svg"; +import { useSelector } from "react-redux"; +const Loading = () => { + const [isDark] = useDarkMode(); + const { isAuth } = useSelector((state) => state.auth); + return ( +
+ {!isAuth && ( +
+ Logo +
+ )} + + + + + {isAuth && ( + + {" "} + Loading ... + + )} +
+ ); +}; + +export default Loading; diff --git a/src/components/Menu.jsx b/src/components/Menu.jsx new file mode 100644 index 0000000..05e42bc --- /dev/null +++ b/src/components/Menu.jsx @@ -0,0 +1,30 @@ +import React from "react"; +import { useDispatch } from "react-redux"; +import { logOut } from "@/store/api/auth/authSlice"; +import { menuItems } from "@/constant/data"; + +const Menu = () => { + const dispatch = useDispatch(); + + const handleMenuClick = (item) => { + if (item.action === "logout") { + localStorage.removeItem("user"); + dispatch(logOut()); + } else if (item.link) { + window.location.href = item.link; + } + }; + + return ( + + ); +}; + +export default Menu; \ No newline at end of file diff --git a/src/components/authinterceptor.js b/src/components/authinterceptor.js new file mode 100644 index 0000000..de773db --- /dev/null +++ b/src/components/authinterceptor.js @@ -0,0 +1,27 @@ +import { useEffect } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { useNavigate } from 'react-router-dom'; +import { logOut } from '@/store/api/auth/authSlice'; +import { toast } from 'react-toastify'; + +const AuthInterceptor = () => { + const dispatch = useDispatch(); + const navigate = useNavigate(); + const { expired } = useSelector(state => state.auth); + + useEffect(() => { + if (expired) { + // Perform cleanup and redirect + dispatch(logOut()); + toast.error('Your session has expired. Please log in again.', { + autoClose: 5000, + hideProgressBar: false, + }); + navigate('/login'); + } + }, [expired, dispatch, navigate]); + + return null; // This component doesn't render anything +}; + +export default AuthInterceptor; \ No newline at end of file diff --git a/src/components/logout.jsx b/src/components/logout.jsx new file mode 100644 index 0000000..de4d57c --- /dev/null +++ b/src/components/logout.jsx @@ -0,0 +1,19 @@ +import { useDispatch } from "react-redux"; +import { useNavigate } from "react-router-dom"; +import { logOut } from "@/store/api/auth/authSlice"; + +const useLogout = () => { + const dispatch = useDispatch(); + const navigate = useNavigate(); + + const handleLogout = () => { + dispatch(logOut()); + sessionStorage.clear(); + localStorage.clear(); + navigate("/login"); + }; + + return handleLogout; +}; + +export default useLogout; \ No newline at end of file diff --git a/src/components/partials/SelectMonth.jsx b/src/components/partials/SelectMonth.jsx new file mode 100644 index 0000000..eda00b9 --- /dev/null +++ b/src/components/partials/SelectMonth.jsx @@ -0,0 +1,46 @@ +import React from "react"; +import Dropdown from "@/components/ui/Dropdown"; +import Icon from "@/components/ui/Icon"; +import { Menu } from "@headlessui/react"; +const actions = [ + { + name: "Last 28 Days", + }, + { + name: " Last Month ", + }, + { + name: " Last Year ", + }, +]; +const SelectMonth = () => { + return ( + <> + + + + } + > +
+ {actions.map((item, i) => ( + +
+ {item.name} +
+
+ ))} +
+
+ + ); +}; + +export default SelectMonth; diff --git a/src/components/partials/Table/company-table.jsx b/src/components/partials/Table/company-table.jsx new file mode 100644 index 0000000..c3fd453 --- /dev/null +++ b/src/components/partials/Table/company-table.jsx @@ -0,0 +1,230 @@ +import React, { useState, useMemo } from "react"; +import { homeTable } from "../../../constant/table-data"; + +import Icon from "@/components/ui/Icon"; + +import { + useTable, + useRowSelect, + useSortBy, + useGlobalFilter, + usePagination, +} from "react-table"; + +const COLUMNS = [ + { + Header: "company", + accessor: "company", + Cell: (row) => { + return ( + +
+
+ +
+
+
+

+ Biffco Enterprises Ltd. +

+
+ Biffco@example.com +
+
+
+ ); + }, + }, + { + Header: "Category", + accessor: "category", + Cell: (row) => { + return Technology; + }, + }, + { + Header: "sales", + accessor: "sales", + Cell: (row) => { + return ( +
+ {row?.cell?.value + "%"} + 100 ? "text-success-500" : "text-danger-500"} + `} + > + {row?.cell?.value > 100 ? ( + + ) : ( + + )} + +
+ ); + }, + }, + { + Header: "views", + accessor: "views", + Cell: (row) => { + return {row?.cell?.value}; + }, + }, + { + Header: "revenue", + accessor: "revenue", + Cell: (row) => { + return {row?.cell?.value}; + }, + }, +]; + +const CompanyTable = () => { + const columns = useMemo(() => COLUMNS, []); + const data = useMemo(() => homeTable, []); + + const tableInstance = useTable( + { + columns, + data, + initialState: { + pageSize: 6, + }, + }, + + useGlobalFilter, + useSortBy, + usePagination, + useRowSelect + ); + const { + getTableProps, + getTableBodyProps, + headerGroups, + footerGroups, + page, + nextPage, + previousPage, + canNextPage, + canPreviousPage, + pageOptions, + state, + gotoPage, + pageCount, + setPageSize, + setGlobalFilter, + prepareRow, + } = tableInstance; + + const { pageIndex, pageSize } = state; + + return ( + <> +
+
+
+
+ + + {headerGroups.map((headerGroup) => ( + + {headerGroup.headers.map((column) => ( + + ))} + + ))} + + + {page.map((row) => { + prepareRow(row); + return ( + + {row.cells.map((cell) => { + return ( + + ); + })} + + ); + })} + +
+ {column.render("Header")} + + {column.isSorted + ? column.isSortedDesc + ? " 🔽" + : " 🔼" + : ""} + +
+ {cell.render("Cell")} +
+
+
+
+
+ +
+
+ + ); +}; + +export default CompanyTable; diff --git a/src/components/partials/Table/recentOrder-table.jsx b/src/components/partials/Table/recentOrder-table.jsx new file mode 100644 index 0000000..49ae206 --- /dev/null +++ b/src/components/partials/Table/recentOrder-table.jsx @@ -0,0 +1,241 @@ +import React, { useState, useMemo } from "react"; +import { recentOrder } from "@/constant/table-data"; + +import Icon from "@/components/ui/Icon"; + +import { + useTable, + useRowSelect, + useSortBy, + useGlobalFilter, + usePagination, +} from "react-table"; + +const COLUMNS = [ + { + Header: "user", + accessor: "user", + Cell: (row) => { + return ( +
+
+
+
+ +
+
+
+

+ {row?.cell?.value.name} +

+
+
+
+ ); + }, + }, + + { + Header: "invoice", + accessor: "invoice", + Cell: (row) => { + return {row?.cell?.value}; + }, + }, + { + Header: "price", + accessor: "price", + Cell: (row) => { + return {row?.cell?.value}; + }, + }, + { + Header: "status", + accessor: "status", + Cell: (row) => { + return ( + + + {row?.cell?.value} + + + ); + }, + }, +]; + +const RecentOrderTable = () => { + const columns = useMemo(() => COLUMNS, []); + const data = useMemo(() => recentOrder, []); + + const tableInstance = useTable( + { + columns, + data, + initialState: { + pageSize: 6, + }, + }, + + useGlobalFilter, + useSortBy, + usePagination, + useRowSelect + ); + const { + getTableProps, + getTableBodyProps, + headerGroups, + footerGroups, + page, + nextPage, + previousPage, + canNextPage, + canPreviousPage, + pageOptions, + state, + gotoPage, + pageCount, + setPageSize, + setGlobalFilter, + prepareRow, + } = tableInstance; + + const { pageIndex, pageSize } = state; + + return ( + <> +
+
+
+
+ + + {headerGroups.map((headerGroup) => ( + + {headerGroup.headers.map((column) => ( + + ))} + + ))} + + + {page.map((row) => { + prepareRow(row); + return ( + + {row.cells.map((cell) => { + return ( + + ); + })} + + ); + })} + +
+ {column.render("Header")} + + {column.isSorted + ? column.isSortedDesc + ? " 🔽" + : " 🔼" + : ""} + +
+ {cell.render("Cell")} +
+
+
+
+
+ +
+
+ + ); +}; + +export default RecentOrderTable; diff --git a/src/components/partials/Table/team-table.jsx b/src/components/partials/Table/team-table.jsx new file mode 100644 index 0000000..278aec8 --- /dev/null +++ b/src/components/partials/Table/team-table.jsx @@ -0,0 +1,310 @@ +import React, { useState, useMemo } from "react"; +import { teamData } from "../../../constant/table-data"; + +import Icon from "@/components/ui/Icon"; +import Dropdown from "@/components/ui/Dropdown"; +import { Menu } from "@headlessui/react"; +import Chart from "react-apexcharts"; +import { colors } from "@/constant/data"; + +import { + useTable, + useRowSelect, + useSortBy, + useGlobalFilter, + usePagination, +} from "react-table"; + +const series = [ + { + data: [800, 600, 1000, 800, 600, 1000, 800, 900], + }, +]; +const options = { + chart: { + toolbar: { + autoSelected: "pan", + show: false, + }, + offsetX: 0, + offsetY: 0, + zoom: { + enabled: false, + }, + sparkline: { + enabled: true, + }, + }, + dataLabels: { + enabled: false, + }, + stroke: { + curve: "smooth", + width: 2, + }, + colors: [colors.primary], + tooltip: { + theme: "light", + }, + grid: { + show: false, + padding: { + left: 0, + right: 0, + }, + }, + yaxis: { + show: false, + }, + fill: { + type: "solid", + opacity: [0.1], + }, + legend: { + show: false, + }, + xaxis: { + low: 0, + offsetX: 0, + offsetY: 0, + show: false, + labels: { + low: 0, + offsetX: 0, + show: false, + }, + axisBorder: { + low: 0, + offsetX: 0, + show: false, + }, + }, +}; + +const actions = [ + { + name: "view", + icon: "heroicons-outline:eye", + }, + { + name: "edit", + icon: "heroicons:pencil-square", + }, + { + name: "delete", + icon: "heroicons-outline:trash", + }, +]; +const COLUMNS = [ + { + Header: "assignee", + accessor: "customer", + Cell: (row) => { + return ( + + + {row?.cell?.value.name} + + + {row?.cell?.value.name} + + + ); + }, + }, + + { + Header: "status", + accessor: "status", + Cell: (row) => { + return ( + + + {row?.cell?.value === "progress" && ( + + + In progress + + )} + {row?.cell?.value === "complete" && ( + + + + Complete + + )} + + + ); + }, + }, + { + Header: "time", + accessor: "time", + Cell: (row) => { + return {row?.cell?.value}; + }, + }, + { + Header: "chart", + accessor: "chart", + Cell: (row) => { + return ( + + + + ); + }, + }, + { + Header: "action", + accessor: "action", + Cell: (row) => { + return ( +
+ + + + } + > +
+ {actions.map((item, i) => ( + +
+ + + + {item.name} +
+
+ ))} +
+
+
+ ); + }, + }, +]; + +const TeamTable = () => { + const columns = useMemo(() => COLUMNS, []); + const data = useMemo(() => teamData, []); + + const tableInstance = useTable( + { + columns, + data, + initialState: { + pageSize: 6, + }, + }, + + useGlobalFilter, + useSortBy, + usePagination, + useRowSelect + ); + const { + getTableProps, + getTableBodyProps, + headerGroups, + footerGroups, + page, + nextPage, + previousPage, + canNextPage, + canPreviousPage, + pageOptions, + state, + gotoPage, + pageCount, + setPageSize, + setGlobalFilter, + prepareRow, + } = tableInstance; + + const { pageIndex, pageSize } = state; + + return ( + <> +
+
+
+
+ + + {headerGroups.map((headerGroup) => ( + + {headerGroup.headers.map((column) => ( + + ))} + + ))} + + + {page.map((row) => { + prepareRow(row); + return ( + + {row.cells.map((cell) => { + return ( + + ); + })} + + ); + })} + +
+ {column.render("Header")} + + {column.isSorted + ? column.isSortedDesc + ? " 🔽" + : " 🔼" + : ""} + +
+ {cell.render("Cell")} +
+
+
+
+
+ + ); +}; + +export default TeamTable; diff --git a/src/components/partials/Table/transactions.jsx b/src/components/partials/Table/transactions.jsx new file mode 100644 index 0000000..954c327 --- /dev/null +++ b/src/components/partials/Table/transactions.jsx @@ -0,0 +1,261 @@ +import React, { useState, useMemo } from "react"; +import { advancedTable } from "@/constant/table-data"; +import Card from "@/components/ui/Card"; +import Icon from "@/components/ui/Icon"; +import Dropdown from "@/components/ui/Dropdown"; +import { Menu } from "@headlessui/react"; +import { + useTable, + useRowSelect, + useSortBy, + useGlobalFilter, + usePagination, +} from "react-table"; +import GlobalFilter from "../../../pages/table/react-tables/GlobalFilter"; + +const COLUMNS = [ + { + Header: "customer", + accessor: "customer", + Cell: (row) => { + return ( +
+ + + + + + {row?.cell?.value.name} + + +
+ ); + }, + }, + { + Header: "date", + accessor: "date", + Cell: (row) => { + return ( + + {row?.cell?.value} + + {Math.floor(Math.random() * 12) + 1}: + {Math.floor(Math.random() * 60) + 1} + + + ); + }, + }, + { + Header: "HISTORY", + accessor: "quantity", + Cell: (row) => { + return ( + + + Transfer + + + Trans ID: 8HG654Pk32 + + + ); + }, + }, + + { + Header: "amount", + accessor: "status", + Cell: (row) => { + return ( + + + {row?.cell?.value === "due" && +$ 1,200.00} + {row?.cell?.value === "paid" && +$ 200.00} + {row?.cell?.value === "cancled" && +$ 1400.00} + + + ); + }, + }, + { + Header: "action", + accessor: "action", + Cell: (row) => { + return ( +
+ + + + } + > +
+ {actions.map((item, i) => ( + +
+ + + + {item.name} +
+
+ ))} +
+
+
+ ); + }, + }, +]; + +const actions = [ + { + name: "view", + icon: "heroicons-outline:eye", + }, + { + name: "edit", + icon: "heroicons:pencil-square", + }, + { + name: "delete", + icon: "heroicons-outline:trash", + }, +]; + +const TransactionsTable = () => { + const columns = useMemo(() => COLUMNS, []); + const data = useMemo(() => advancedTable, []); + + const tableInstance = useTable( + { + columns, + data, + initialState: { + pageSize: 4, + }, + }, + + useGlobalFilter, + useSortBy, + usePagination, + useRowSelect + ); + const { + getTableProps, + getTableBodyProps, + headerGroups, + footerGroups, + page, + nextPage, + previousPage, + canNextPage, + canPreviousPage, + pageOptions, + state, + gotoPage, + pageCount, + setPageSize, + setGlobalFilter, + prepareRow, + } = tableInstance; + + const { globalFilter, pageIndex, pageSize } = state; + return ( + <> + +
+

All transactions

+
+ +
+
+
+
+
+ + + {headerGroups.map((headerGroup) => ( + + {headerGroup.headers.map((column) => ( + + ))} + + ))} + + + {page.map((row) => { + prepareRow(row); + return ( + + {row.cells.map((cell) => { + return ( + + ); + })} + + ); + })} + +
+ {column.render("Header")} + + {column.isSorted + ? column.isSortedDesc + ? " 🔽" + : " 🔼" + : ""} + +
+ {cell.render("Cell")} +
+
+
+
+
+ + ); +}; + +export default TransactionsTable; diff --git a/src/components/partials/cart/cart-item.jsx b/src/components/partials/cart/cart-item.jsx new file mode 100644 index 0000000..bab0f2c --- /dev/null +++ b/src/components/partials/cart/cart-item.jsx @@ -0,0 +1,62 @@ +import React from "react"; +import Icon from "@/components/ui/Icon"; +function CartItem({ + item, + handleDecreaseQuantity, + handleIncreaseQuantity, + handleRemoveFromCart, +}) { + return ( +
+
+
+ +
+
+
+
+ {item.name} +
+
+ Price: ${item.price * item.quantity} +
+ +
+
+ + + + {item.quantity} + + +
+ + +
+
+
+ ); +} + +export default CartItem; diff --git a/src/components/partials/cart/index.jsx b/src/components/partials/cart/index.jsx new file mode 100644 index 0000000..edbe764 --- /dev/null +++ b/src/components/partials/cart/index.jsx @@ -0,0 +1,153 @@ +import React, { Fragment } from "react"; +import Icon from "@/components/ui/Icon"; +import SimpleBar from "simplebar-react"; +import { useSelector, useDispatch } from "react-redux"; +import { motion, useCycle } from "framer-motion"; +import Button from "@/components/ui/Button"; +import { removeFromCart, updateQuantity } from "@/store/api/shop/cartSlice"; +import CartItem from "./cart-item"; +import NoItem from "./no-item"; +import clsx from "clsx"; +const variants = { + open: (height = 1000) => ({ + clipPath: `circle(${height * 2 + 200}px at 40px 40px)`, + transition: { + type: "spring", + stiffness: 20, + restDelta: 2, + }, + }), + closed: { + clipPath: "circle(0px at 160px 50px )", + transition: { + delay: 0.34, + type: "spring", + stiffness: 400, + damping: 40, + }, + }, +}; + +const variants2 = { + open: { + y: 0, + opacity: 1, + transition: { + y: { stiffness: 1000, velocity: -100 }, + }, + }, + closed: { + y: 50, + opacity: 0, + transition: { + y: { stiffness: 1000 }, + }, + }, +}; + +const CartPanel = ({ open, close }) => { + const { items, totalPrice } = useSelector((state) => state.cart); + + const dispatch = useDispatch(); + + const handleRemoveFromCart = (productId) => { + dispatch(removeFromCart(productId)); + }; + const handleIncreaseQuantity = (productId) => { + const item = items.find((item) => item.id === productId); + + if (item && item.quantity < 10) { + dispatch(updateQuantity({ id: productId, quantity: item.quantity + 1 })); + } + }; + + const handleDecreaseQuantity = (productId) => { + const item = items.find((item) => item.id === productId); + + if (item && item.quantity > 1) { + dispatch(updateQuantity({ id: productId, quantity: item.quantity - 1 })); + } + }; + return ( +
+ +
+
+
+ + Cart + + + Total Price ${totalPrice} + +
+
+ +
+
+ + {items.length > 0 ? ( + items?.map((item, i) => ( + + + + )) + ) : ( + + )} + + + +
+
+
+ ); +}; + +export default CartPanel; diff --git a/src/components/partials/cart/no-item.jsx b/src/components/partials/cart/no-item.jsx new file mode 100644 index 0000000..39a5054 --- /dev/null +++ b/src/components/partials/cart/no-item.jsx @@ -0,0 +1,17 @@ +import { Icon } from "@iconify/react"; +import React from "react"; + +const NoItem = () => { + return ( +
+
+ +
+
+ ); +}; + +export default NoItem; diff --git a/src/components/partials/ecommerce/brands-checkbox.jsx b/src/components/partials/ecommerce/brands-checkbox.jsx new file mode 100644 index 0000000..4b29efb --- /dev/null +++ b/src/components/partials/ecommerce/brands-checkbox.jsx @@ -0,0 +1,19 @@ +import React from "react"; +function BrandsCheckbox({ brand }) { + return ( +
+ + + {brand.count} + +
+ ); +} + +export default BrandsCheckbox; diff --git a/src/components/partials/ecommerce/catagories-filter-checkbox.jsx b/src/components/partials/ecommerce/catagories-filter-checkbox.jsx new file mode 100644 index 0000000..e7e752a --- /dev/null +++ b/src/components/partials/ecommerce/catagories-filter-checkbox.jsx @@ -0,0 +1,27 @@ +import React from "react"; + +function CatagoriesFilterCheckbox({ + category, + categoryFilter, + handleCategoryChange, +}) { + return ( +
+ + + {category.count} + +
+ ); +} + +export default CatagoriesFilterCheckbox; diff --git a/src/components/partials/ecommerce/checkbox-single.jsx b/src/components/partials/ecommerce/checkbox-single.jsx new file mode 100644 index 0000000..d624134 --- /dev/null +++ b/src/components/partials/ecommerce/checkbox-single.jsx @@ -0,0 +1,37 @@ +import React, { useState } from "react"; +import Checkbox from "@/components/ui/Checkbox"; +import Icon from "@/components/ui/Icon"; + +const CheckboxSingle = ({ item }) => { + const { label, count, value } = item; + + const [checked, setChecked] = useState(false); + + const normalStar = ; + const coloredStar = ; + + const generateStars = (rating) => { + const stars = Array.from({ length: value }, (_, starIndex) => ( + + {starIndex < rating ? coloredStar : normalStar} + + )); + return {stars}; + }; + + return ( +
+ setChecked(!checked)} + /> + + {count} + +
+ ); +}; + +export default CheckboxSingle; diff --git a/src/components/partials/ecommerce/counter-button.jsx b/src/components/partials/ecommerce/counter-button.jsx new file mode 100644 index 0000000..be63279 --- /dev/null +++ b/src/components/partials/ecommerce/counter-button.jsx @@ -0,0 +1,55 @@ +import React from "react"; +import Icon from "@/components/ui/Icon"; +import { useDispatch, useSelector } from "react-redux"; +import { updateQuantity } from "@/store/api/shop/cartSlice"; // Adjust the import path based on your project structure + +const CounterButton = ({ product }) => { + const dispatch = useDispatch(); + const cartItems = useSelector((state) => state.cart.items); + const cartItem = cartItems.find((item) => item.id === product.id); + + const handleIncreaseQuantity = () => { + if (cartItem && cartItem.quantity < 10) { + dispatch( + updateQuantity({ id: product.id, quantity: cartItem.quantity + 1 }) + ); + } + }; + + const handleDecreaseQuantity = () => { + if (cartItem && cartItem.quantity > 1) { + dispatch( + updateQuantity({ id: product.id, quantity: cartItem.quantity - 1 }) + ); + } + }; + + return ( +
+
+ + +
+ {cartItem ? cartItem.quantity : 0} +
+ +
+
+ ); +}; + +export default CounterButton; diff --git a/src/components/partials/ecommerce/price-checkbox.jsx b/src/components/partials/ecommerce/price-checkbox.jsx new file mode 100644 index 0000000..8e6704e --- /dev/null +++ b/src/components/partials/ecommerce/price-checkbox.jsx @@ -0,0 +1,19 @@ +import React from "react"; +function PriceCheckbox({ item }) { + return ( +
+ + + {item.count} + +
+ ); +} + +export default PriceCheckbox; diff --git a/src/components/partials/ecommerce/product-box.jsx b/src/components/partials/ecommerce/product-box.jsx new file mode 100644 index 0000000..79661c9 --- /dev/null +++ b/src/components/partials/ecommerce/product-box.jsx @@ -0,0 +1,123 @@ +import React, { useState } from "react"; +import Card from "@/components/ui/Card"; +import Icon from "@/components/ui/Icon"; +import Badge from "@/components/ui/Badge"; +import Button from "@/components/ui/Button"; +import { current } from "@reduxjs/toolkit"; +import CounterButton from "@/components/partials/ecommerce/counter-button"; +import clsx from "clsx"; +import { useDispatch, useSelector } from "react-redux"; +import { addToCart, updateQuantity } from "@/store/api/shop/cartSlice"; +import { Link } from "react-router-dom"; + +const ProductBox = ({ item, wish }) => { + const dispatch = useDispatch(); + + const { + name, + category, + img, + rating, + subtitle, + price, + oldPrice, + percent, + id, + } = item; + const cartItems = useSelector((state) => state.cart.items); + + const handleAddToCart = (product) => { + dispatch(addToCart(product)); + }; + + return ( + + +
+
+ {name} + {percent && ( + + {percent} + + )} +
+ {wish ? ( + + ) : ( + <> + + + + + )} +
+
+
+ + +
+
+

+ {category} +

+ {rating && ( + + + {rating} + + )} +
+
+ {name} +
+

+ {subtitle} +

+

+ + ${price} + + + {oldPrice} + +

+ {cartItems.some((cartItem) => cartItem.id === id) ? ( + + ) : ( +
+
+ ); +}; + +export default ProductBox; diff --git a/src/components/partials/ecommerce/product-list.jsx b/src/components/partials/ecommerce/product-list.jsx new file mode 100644 index 0000000..6796c8c --- /dev/null +++ b/src/components/partials/ecommerce/product-list.jsx @@ -0,0 +1,106 @@ +import React from "react"; +import Card from "@/components/ui/Card"; +import Icon from "@/components/ui/Icon"; +import Badge from "@/components/ui/Badge"; +import CounterButton from "@/components/partials/ecommerce/counter-button"; +import { useDispatch, useSelector } from "react-redux"; +import { addToCart, updateQuantity } from "@/store/api/shop/cartSlice"; +import { Link } from "react-router-dom"; +const ProductList = ({ item }) => { + const dispatch = useDispatch(); + const { name, category, img, rating, desc, price, oldPrice, percent, id } = + item; + const cartItems = useSelector((state) => state.cart.items); + + const handleAddToCart = (product) => { + dispatch(addToCart(product)); + }; + + return ( + + +
+
+ {name} + {percent && ( + + {percent} + + )} +
+ + + +
+
+
+ + +
+

+ {category} +

+
+ {name} +
+

+ + ${price} + + + {oldPrice} + +

+ {rating && ( + + + + + + {rating} + + )} +

+ {desc} +

+
+ + + +
+
+
+ ); +}; + +export default ProductList; diff --git a/src/components/partials/ecommerce/rangeSlider.jsx b/src/components/partials/ecommerce/rangeSlider.jsx new file mode 100644 index 0000000..4f5e0ef --- /dev/null +++ b/src/components/partials/ecommerce/rangeSlider.jsx @@ -0,0 +1,74 @@ +//Test + +import React, { useState } from "react"; + +const RangeSlider = () => { + const [minPrice, setMinPrice] = useState(0); + const [maxPrice, setMaxPrice] = useState(1000); + + const handleMinPriceChange = (e) => { + setMinPrice(parseInt(e.target.value)); + }; + + const handleMaxPriceChange = (e) => { + setMaxPrice(parseInt(e.target.value)); + }; + return ( +
+
+ + +
+
+ +
+ +
+ +
+
+
+
+ +
+
+ +
+
+
+
+ ); +}; + +export default RangeSlider; diff --git a/src/components/partials/ecommerce/steps/cart-step.jsx b/src/components/partials/ecommerce/steps/cart-step.jsx new file mode 100644 index 0000000..30ae208 --- /dev/null +++ b/src/components/partials/ecommerce/steps/cart-step.jsx @@ -0,0 +1,145 @@ +import React from "react"; +import Icon from "@/components/ui/Icon"; + +import products1 from "@/assets/images/e-commerce/product-card/classical-black-tshirt.png"; + +import { useSelector, useDispatch } from "react-redux"; +import { removeFromCart, updateQuantity } from "@/store/api/shop/cartSlice"; +const CartStep = () => { + const dispatch = useDispatch(); + const { items, totalPrice } = useSelector((state) => state.cart); + const handleRemoveFromCart = (productId) => { + dispatch(removeFromCart(productId)); + }; + const handleIncreaseQuantity = (productId) => { + const item = items.find((item) => item.id === productId); + + if (item && item.quantity < 10) { + dispatch(updateQuantity({ id: productId, quantity: item.quantity + 1 })); + } + }; + + const handleDecreaseQuantity = (productId) => { + const item = items.find((item) => item.id === productId); + + if (item && item.quantity > 1) { + dispatch(updateQuantity({ id: productId, quantity: item.quantity - 1 })); + } + }; + return ( +
+
+
+
+ + + + + + + + + + + + {items.length > 0 ? ( + items?.map((item, i) => ( + + + + + + + + )) + ) : ( + + + + )} + + + + + + + + +
+ Product + + Price + + Quantity + + Total + + Remove +
+
+ +
+
+

+ {item.name} +

+

+ + Brand: + + {item.brand} +

+
+
${item.price} +
+ + + + {item.quantity} + + +
+
+ ${item.price * item.quantity} + + +
+ No result's +
+

+ Subtotal: +

+
+

+ ${totalPrice} +

+
+
+
+
+
+ ); +}; + +export default CartStep; diff --git a/src/components/partials/ecommerce/steps/delivery-info.jsx b/src/components/partials/ecommerce/steps/delivery-info.jsx new file mode 100644 index 0000000..b34e0f0 --- /dev/null +++ b/src/components/partials/ecommerce/steps/delivery-info.jsx @@ -0,0 +1,94 @@ +import React, { useState } from "react"; +import Radio from "@/components/ui/Radio"; +import PickupModal from "./pickup-modal"; +import { useSelector } from "react-redux"; + +const DeliveryInfo = () => { + const [value, setValue] = useState("A"); + const [isOpen, setOpen] = useState(false); + const handleChange = (e) => { + setValue(e.target.value); + if (e.target.value === "B") { + setOpen(true); + } + }; + + const handleCloseModal = () => { + setOpen(false); + setValue("A"); + }; + const { items, totalPrice } = useSelector((state) => state.cart); + + return ( + <> +
+

+ Your Orders +

+
+ {items?.map((item, i) => ( +
+
+ {item.name} +
+
+

+ {item.name} +

+

+ + Brand: + + {item.brand} +

+
+
+ ))} +
+ +
+

+ Choose Delivery Type +

+
+ + +
+
+
+ + + ); +}; + +export default DeliveryInfo; diff --git a/src/components/partials/ecommerce/steps/invoice-cart.jsx b/src/components/partials/ecommerce/steps/invoice-cart.jsx new file mode 100644 index 0000000..fa5f538 --- /dev/null +++ b/src/components/partials/ecommerce/steps/invoice-cart.jsx @@ -0,0 +1,192 @@ +import React from "react"; +import { useSelector } from "react-redux"; + +const InvoiceCart = () => { + const { items, totalPrice } = useSelector((state) => state.cart); + + return ( +
+
+

+ Thank You for Your Order! +

+

+ A copy or your order summary has been sent to + + customer@example.com + +

+
+
+

+ Order Summary +

+
+
+
+
+

Order Date:

+

Name:

+

Email:

+

Shipping address:

+
+
+

23-07-2023 09:53 AM

+

Prantik Chakraborty

+

customer.example@gmail.com

+

+ 3947 West Side Avenue Hackensack, NJ 07601, College, United + States +

+
+
+
+
+
+
+

Order Status:

+

Total order amount:

+

Shipping:

+

Payment method:

+
+
+

Pending

+

$350.00

+

Flat shipping rate

+

Cash on Delivery

+
+
+
+
+
+
+ Order Code:{" "} + + 20230723-09532646 + +
+
+

+ Order Details +

+
+
+
+
+ + + + + + + + + + + {items?.map((item, i) => ( + + + + + + + ))} + +
+ Product + + Quantity + + Delivery Type + + Total +
+
+ +
+
+

+ {item.name} +

+
+
+ {item.quantity} + + Home Delivery + + $180.00 +
+
+
+
+
+ + Subtotal: + + + ${totalPrice} + +
+
+ + Tax: + + + $00.00 + +
+
+ + Shipping: + + + $00.00 + +
+
+ + Coupon Discount: + + + $00.00 + +
+
+
+
+ + Total: + + + ${totalPrice} + +
+
+
+
+
+
+
+
+
+
+ ); +}; + +export default InvoiceCart; diff --git a/src/components/partials/ecommerce/steps/note-modal.jsx b/src/components/partials/ecommerce/steps/note-modal.jsx new file mode 100644 index 0000000..79f154f --- /dev/null +++ b/src/components/partials/ecommerce/steps/note-modal.jsx @@ -0,0 +1,97 @@ +import React, { useState } from "react"; +import Modal from "@/components/ui/Modal"; +import Select from "@/components/ui/Select"; +import Textarea from "@/components/ui/Textarea"; +import Textinput from "@/components/ui/Textinput"; + + +const NoteModal = ({ activeModal, onclose }) => { + const options = [ + { + value: "option1", + label: "Option 1", + }, + { + value: "option2", + label: "Option 2", + }, + { + value: "option3", + label: "Option 3", + }, + ]; + + const [value, setValue] = useState("A"); + + const handleChange = (e) => { + setValue(e.target.value); + }; + + return ( + +
+ + )} + {!name && ( + + )} + + {/* icon */} +
+ {error && ( + + + + )} + {validate && ( + + + + )} +
+ + {/* error and success message*/} + {error && ( +
+ {error.message} +
+ )} + {/* validated and success message*/} + {validate && ( +
+ {validate} +
+ )} + {/* only description */} + {description && {description}} + + ); +}; + +export default Textarea; diff --git a/src/components/ui/Textinput.jsx b/src/components/ui/Textinput.jsx new file mode 100644 index 0000000..8d2737a --- /dev/null +++ b/src/components/ui/Textinput.jsx @@ -0,0 +1,171 @@ +import React, { useState } from "react"; +import Icon from "@/components/ui/Icon"; +import Cleave from "cleave.js/react"; +import "cleave.js/dist/addons/cleave-phone.us"; +const Textinput = ({ + type, + label, + placeholder = "Add placeholder", + classLabel = "form-label", + className = "", + classGroup = "", + register, + name, + readonly, + value, + error, + icon, + disabled, + id, + horizontal, + validate, + isMask, + msgTooltip, + description, + hasicon, + onChange, + options, + onFocus, + defaultValue, + + ...rest +}) => { + const [open, setOpen] = useState(false); + const handleOpen = () => { + setOpen(!open); + }; + + return ( +
+ {label && ( + + )} +
+ {name && !isMask && ( + + )} + {!name && !isMask && ( + + )} + {name && isMask && ( + + )} + {!name && isMask && ( + + )} + {/* icon */} +
+ {hasicon && ( + + {open && type === "password" && ( + + )} + {!open && type === "password" && ( + + )} + + )} + + {error && ( + + + + )} + {validate && ( + + + + )} +
+
+ {/* error and success message*/} + {error && ( +
+ {error.message} +
+ )} + {/* validated and success message*/} + {validate && ( +
+ {validate} +
+ )} + {/* only description */} + {description && {description}} +
+ ); +}; + +export default Textinput; diff --git a/src/components/ui/Tooltip.jsx b/src/components/ui/Tooltip.jsx new file mode 100644 index 0000000..1cd3b0e --- /dev/null +++ b/src/components/ui/Tooltip.jsx @@ -0,0 +1,57 @@ +import React from "react"; +import Tippy from "@tippyjs/react"; +import "tippy.js/dist/tippy.css"; +import "tippy.js/dist/tippy.css"; +import "tippy.js/themes/light.css"; +import "tippy.js/themes/light-border.css"; +import "tippy.js/animations/shift-away.css"; +import "tippy.js/animations/scale-subtle.css"; +import "tippy.js/animations/perspective-extreme.css"; +import "tippy.js/animations/perspective-subtle.css"; +import "tippy.js/animations/perspective.css"; +import "tippy.js/animations/scale-extreme.css"; +import "tippy.js/animations/scale-subtle.css"; +import "tippy.js/animations/scale.css"; +import "tippy.js/animations/shift-away-extreme.css"; +import "tippy.js/animations/shift-away-subtle.css"; +import "tippy.js/animations/shift-away.css"; +import "tippy.js/animations/shift-toward-extreme.css"; +import "tippy.js/animations/shift-toward-subtle.css"; +import "tippy.js/animations/shift-toward.css"; + +const Tooltip = ({ + children, + content = "content", + title, + className = "btn btn-dark", + placement = "top", + arrow = true, + theme = "dark", + animation = "shift-away", + trigger = "mouseenter focus", + interactive = false, + allowHTML = false, + maxWidth = 300, + duration = 200, +}) => { + return ( +
+ + {children ? children : } + +
+ ); +}; + +export default Tooltip; diff --git a/src/components/ui/VideoPlayer.jsx b/src/components/ui/VideoPlayer.jsx new file mode 100644 index 0000000..c5f208b --- /dev/null +++ b/src/components/ui/VideoPlayer.jsx @@ -0,0 +1,22 @@ +import React, { useState } from "react"; +import { useEffect } from "react"; + +function VideoPlayer({ url, className = "w-full" }) { + const [isPlaying, setIsPlaying] = useState(false); + const playPause = () => { + setIsPlaying(!isPlaying); + }; + + return ( +
+
+ ); +} + +export default VideoPlayer; diff --git a/src/configs/themeConfig.js b/src/configs/themeConfig.js new file mode 100644 index 0000000..63d4120 --- /dev/null +++ b/src/configs/themeConfig.js @@ -0,0 +1,26 @@ +import { v4 as uuidv4 } from "uuid"; +const themeConfig = { + app: { + name: "US Pizza React", + }, + // layout + layout: { + isRTL: false, + darkMode: false, + semiDarkMode: false, + skin: "default", + contentWidth: "full", + type: "vertical", + navBarType: "sticky", + footerType: "static", + isMonochrome: false, + menu: { + isCollapsed: false, + isHidden: false, + }, + mobileMenu: false, + customizer: false, + }, +}; + +export default themeConfig; diff --git a/src/constant/config.js b/src/constant/config.js new file mode 100644 index 0000000..2e969a3 --- /dev/null +++ b/src/constant/config.js @@ -0,0 +1,2 @@ +export const VITE_API_BASE_URL = "https://icom.ipsgroup.com.my/admin/"; +export const VITE_API_BASE_URL_CUS = "https://icom.ipsgroup.com.my/api/"; \ No newline at end of file diff --git a/src/constant/constants.js b/src/constant/constants.js new file mode 100644 index 0000000..3148b3c --- /dev/null +++ b/src/constant/constants.js @@ -0,0 +1 @@ +export const apiUrl = "https://icom.ipsgroup.com.my/"; \ No newline at end of file diff --git a/src/constant/data.js b/src/constant/data.js new file mode 100644 index 0000000..7380fb0 --- /dev/null +++ b/src/constant/data.js @@ -0,0 +1,309 @@ +export const menuItems = [ + { + title: "Task List", + icon: "heroicons-outline:home", + isOpen: true, + isHide: true, + link: "dashboard", + }, + { + title: "Arrange Jobs", + icon: "heroicons-outline:calendar-days", + link: "#", + isHide: true, + permissionKey: "ArrangeJobs", + child: [ + { + childtitle: "All", + childlink: "tasks/all", + permissionKey: "Lists", + }, + { + childtitle: "TH", + childlink: "tasks/th", + permissionKey: "Pending", + }, + { + childtitle: "TL", + childlink: "tasks/tl", + permissionKey: "Confirmed", + }, + { + childtitle: "FLSS", + childlink: "tasks/flss", + permissionKey: "Confirmed", + }, + { + childtitle: "LM", + childlink: "tasks/lm", + permissionKey: "Confirmed", + }, + { + childtitle: "TP", + childlink: "tasks/tp", + permissionKey: "Confirmed", + }, + ], + }, + { + title: "Task Board", + icon: "heroicons-outline:clipboard-document-list", + link: "#", + isHide: true, + permissionKey: "TaskBoard", + child: [ + { + childtitle: "All", + childlink: "taskboards/all", + permissionKey: "Lists", + }, + { + childtitle: "TH", + childlink: "taskboards/th", + permissionKey: "Pending", + }, + { + childtitle: "TL", + childlink: "taskboards/tl", + permissionKey: "Confirmed", + }, + { + childtitle: "FLSS", + childlink: "taskboards/flss", + permissionKey: "Confirmed", + }, + { + childtitle: "LM", + childlink: "taskboards/lm", + permissionKey: "Confirmed", + }, + { + childtitle: "TP", + childlink: "taskboards/tp", + permissionKey: "Confirmed", + }, + ], + }, +]; + +export const topMenu = []; + +export const initialCasesSeed = (() => { + const today = new Date().toISOString().split("T")[0]; // YYYY-MM-DD + const thicknesses = ["5mm", "6mm", "8mm", "10mm", "12mm"]; + const randomDetail = () => { + const thickness = thicknesses[Math.floor(Math.random() * thicknesses.length)]; + const pcs = Math.floor(Math.random() * 21) + 5; // 5–25 pieces + return `${thickness} x ${pcs}(s) PC`; + }; + + return [ + { + id: "UC-1026", + order: "100277", + category: "FLSS", + name: "VIP Facade Install", + requested: "2025-10-02", + priority: "High", + status: "Pending", + scheduled: "", + order_details: randomDetail(), + }, + { + id: "UC-1030", + order: "100280", + category: "TH", + name: "Aluminium Adjustment", + requested: "2025-10-10", + priority: "Medium", + status: "Scheduled", + scheduled: "2025-11-03T15:00", + order_details: randomDetail(), + }, + { + id: "UC-1031", + order: "100281", + category: "TP", + name: "Glass Replacement", + requested: "2025-10-12", + priority: "High", + status: "Approved", + scheduled: "", + order_details: randomDetail(), + }, + { + id: "UC-1032", + order: "100282", + category: "LM", + name: "Wood Frame Seal", + requested: "2025-10-13", + priority: "Low", + status: "Rejected", + scheduled: "", + order_details: randomDetail(), + }, + { + id: "UC-1033", + order: "100283", + category: "TL", + name: "AC Duct Repair", + requested: "2025-10-15", + priority: "Low", + status: "Scheduled", + scheduled: "2025-11-03T15:30", + order_details: randomDetail(), + }, + { + id: "UC-1034", + order: "100284", + category: "TP", + name: "Glass Panel Polishing", + requested: "2025-10-20", + priority: "Medium", + status: "Approved", + scheduled: "", + order_details: randomDetail(), + }, + { + id: "UC-1035", + order: "100285", + category: "FLSS", + name: "Smoke Detector Check", + requested: "2025-10-28", + priority: "Low", + status: "Pending", + scheduled: "", + order_details: randomDetail(), + }, + { + id: "UC-1036", + order: "100286", + category: "TH", + name: "Heater Temperature Calibration", + requested: "2025-11-01", + priority: "High", + status: "Approved", + scheduled: "", + order_details: randomDetail(), + }, + { + id: "UC-1037", + order: "100287", + category: "LM", + name: "Main Lobby Painting Touch-Up", + requested: "2025-11-02", + priority: "Medium", + status: "Pending", + scheduled: "", + order_details: randomDetail(), + }, + { + id: "UC-1038", + order: "100288", + category: "FLSS", + name: "Fire Hose Cabinet Maintenance", + requested: today, + priority: "High", + status: "Scheduled", + scheduled: "2025-11-03T10:00", + order_details: randomDetail(), + }, + { + id: "UC-1039", + order: "100289", + category: "TP", + name: "Glass Door Alignment", + requested: today, + priority: "Medium", + status: "Approved", + scheduled: "", + order_details: randomDetail(), + }, + { + id: "UC-1040", + order: "100290", + category: "TH", + name: "Chiller Unit Sensor Replacement", + requested: today, + priority: "High", + status: "Pending", + scheduled: "", + order_details: randomDetail(), + }, + { + id: "UC-1041", + order: "100291", + category: "TL", + name: "Lighting Circuit Inspection", + requested: today, + priority: "Low", + status: "Pending", + scheduled: "", + order_details: randomDetail(), + }, + { + id: "UC-1042", + order: "100292", + category: "LM", + name: "Ceiling Crack Patching", + requested: "2025-11-05", + priority: "Medium", + status: "Scheduled", + scheduled: "2025-11-04T10:00", + order_details: randomDetail(), + }, + { + id: "UC-1043", + order: "100293", + category: "TP", + name: "Mirror Replacement (Washroom)", + requested: "2025-11-07", + priority: "Low", + status: "Rejected", + scheduled: "", + order_details: randomDetail(), + }, + { + id: "UC-1044", + order: "100294", + category: "FLSS", + name: "Sprinkler Pressure Test", + requested: "2025-11-06", + priority: "High", + status: "Scheduled", + scheduled: "2025-11-06T14:00", + order_details: randomDetail(), + }, + ]; +})(); + + + +export const colors = { + primary: "#4669FA", + secondary: "#A0AEC0", + danger: "#F1595C", + black: "#111112", + warning: "#FA916B", + info: "#0CE7FA", + light: "#425466", + success: "#50C793", + "gray-f7": "#F7F8FC", + dark: "#1E293B", + "dark-gray": "#0F172A", + gray: "#68768A", + gray2: "#EEF1F9", + "dark-light": "#CBD5E1", +}; + +export const hexToRGB = (hex, alpha) => { + var r = parseInt(hex.slice(1, 3), 16), + g = parseInt(hex.slice(3, 5), 16), + b = parseInt(hex.slice(5, 7), 16); + + if (alpha) { + return "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")"; + } else { + return "rgb(" + r + ", " + g + ", " + b + ")"; + } +}; \ No newline at end of file diff --git a/src/constant/promoConfigForm.json b/src/constant/promoConfigForm.json new file mode 100644 index 0000000..b44a2bf --- /dev/null +++ b/src/constant/promoConfigForm.json @@ -0,0 +1,972 @@ +{ + "sectionOptions": { + "totalOrder": [ + { + "id": "totalOrder1", + "label": "$ or % off total order", + "promoType": "discount", + "formConfig": { + "descriptionPlaceholder": "$ or % off total order", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + } + ] + } + }, + { + "id": "totalOrder2", + "label": "$ or % off total order with minimum spend", + "promoType": "discount", + "formConfig": { + "descriptionPlaceholder": "$ or % off total order with minimum spend", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "minimumSpend", + "label": "Minimum Spend (MYR)", + "type": "number", + "placeholder": "e.g. 50", + "required": true + } + ] + } + }, + { + "id": "totalOrder3", + "label": "$ or % off total order with minimum spend of item / category", + "promoType": "discount", + "formConfig": { + "descriptionPlaceholder": "$ or % off total order with mininum spend on item/category", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + + ] + }, + { + "id": "minimumSpend", + "label": "Minimum Spend (MYR)", + "type": "number", + "placeholder": "e.g. 50", + "required": true + }, + { + "id": "itemCategory1", + "label": "Apply to Item/Category (minimum spend)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + }, + { + "id": "totalOrder4", + "label": "$ or % off total order with minimum quantity of item / category", + "promoType": "discount", + "formConfig": { + "descriptionPlaceholder": "$ or % off total order with mininum quantity", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "minimumQuantity", + "label": "Minimum Quantity", + "type": "number", + "placeholder": "e.g. 3", + "required": true + }, + { + "id": "itemCategory1", + "label": "Apply to Item/Category (minimum quantity)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + } + ], + "selectedItems": [ + { + "id": "selectedItems1", + "label": "$ or % off selected item / category", + "promoType": "discount", + "formConfig": { + "descriptionPlaceholder": "$ or % off selected item/category", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "itemCategory2", + "label": "Select Item/Category (discount)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + }, + { + "id": "selectedItems2", + "label": "$ or % off selected item / category with minimum spend of item / category", + "promoType": "discount", + "formConfig": { + "descriptionPlaceholder": "$ or % off selected item / category with minimum spend of item / category", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "itemCategory2", + "label": "Apply to Item/Category (discount)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + }, + { + "id": "minimumSpend", + "label": "Minimum Spend (MYR)", + "type": "number", + "placeholder": "e.g. 30", + "required": true + }, + { + "id": "itemCategory1", + "label": "Apply to Item/Category (minimum spend)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + }, + { + "id": "selectedItems3", + "label": "$ or % off selected item / category with minimum quantity of item / category", + "promoType": "discount", + "formConfig": { + "descriptionPlaceholder": "$ or % off selected item/category with minimum quantity of item / category", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "itemCategory2", + "label": "Apply to Item/Category (discount)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + }, + { + "id": "minimumQuantity", + "label": "Minimum Quantity", + "type": "number", + "placeholder": "e.g. 2", + "required": true + }, + { + "id": "itemCategory1", + "label": "Apply to Item/Category (minimum quantity)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + }, + { + "id": "selectedItems4", + "label": "$ off selected item / category with every quantity of item / category", + "promoType": "discount", + "formConfig": { + "descriptionPlaceholder": "$ off selected item/category with every quantity of item / category", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "itemCategory2", + "label": "Apply to Item/Category (discount)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + }, + { + "id": "everyQuantity", + "label": "With every quantity of", + "type": "number", + "placeholder": "e.g. 5", + "required": true + }, + { + "id": "itemCategory1", + "label": "Apply to Item/Category (quantity)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + } + ], + "nextItem": [ + { + "id": "nextItem1", + "label": "Next item / category at $ or % discount", + "promoType": "next_item", + "formConfig": { + "descriptionPlaceholder": "Next item / category at $ or % discount", + "specificFields": [ + { + "id": "itemCategory1", + "label": "Apply to Item/Category (discount)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + }, + { + "type": "discountAmount", + "id": "discountGroup", + "label": "at $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + } + ] + } + }, + { + "id": "nextItem2", + "label": "Next item / category at $ or % discount with minimum spend", + "promoType": "next_item", + "formConfig": { + "descriptionPlaceholder": "Next item / category at $ or % discount with minimum spend", + "specificFields": [ + { + "id": "itemCategory2", + "label": "Apply to Item/Category (discount)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + }, + { + "type": "discountAmount", + "id": "discountGroup", + "label": "at $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "minimumSpend", + "label": "Minimum Spend (MYR)", + "type": "number", + "placeholder": "e.g. 50", + "required": true + } + ] + } + }, + { + "id": "nextItem3", + "label": "Next item / category at $ or % discount with minimum spend on item / category", + "promoType": "next_item", + "formConfig": { + "descriptionPlaceholder": "Next item / category at $ or % discount with minimum spend on item / category", + "specificFields": [ + { + "id": "itemCategory2", + "label": "Apply to Item/Category (discount)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + }, + { + "type": "discountAmount", + "id": "discountGroup", + "label": "at $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + + { + "id": "minimumSpend", + "label": "Minimum Spend (MYR)", + "type": "number", + "placeholder": "e.g. 50", + "required": true + }, + { + "id": "itemCategory1", + "label": "Apply to Item/Category (minimum spend)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + }, + { + "id": "nextItem4", + "label": "Next item / category at $ or % discount with minimum quantity of item / category", + "promoType": "next_item", + "formConfig": { + "descriptionPlaceholder": "Next item / category at $ or % discount with minimum quantity of item / category", + "specificFields": [ + { + "id": "itemCategory2", + "label": "Apply to Item/Category (discount)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true, + "onChange": "handleItemCategoryChange" + }, + { + "type": "discountAmount", + "id": "discountGroup", + "label": "at $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "minimumQuantity", + "label": "Minimum Quantity", + "type": "number", + "placeholder": "e.g. 2", + "required": true + }, + { + "id": "itemCategory1", + "label": "Apply to Item/Category (minimum quantity)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true, + "onChange": "handleItemCategoryChange" + } + ] + } + }, + { + "id": "nextItem5", + "label": "Next item / category at $ or % discount with every quantity of item / category", + "promoType": "next_item", + "formConfig": { + "descriptionPlaceholder": "Next item / category at $ or % discount with every quantity of item / category", + "specificFields": [ + { + "id": "itemCategory2", + "label": "Apply to Item/Category (discount)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + }, + { + "type": "discountAmount", + "id": "discountGroup", + "label": "at $5 or 10% off", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "everyQuantity", + "label": "With every quantity of", + "type": "number", + "placeholder": "e.g. 5", + "required": true + }, + { + "id": "itemCategory1", + "label": "Apply to Item/Category (quantity)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + } + ], + "freeItem": [ + { + "id": "freeItem1", + "label": "Free item / category", + "promoType": "free_item", + "formConfig": { + "descriptionPlaceholder": "Free item / category", + "specificFields": [ + { + "id": "getNumber", + "label": "Get 1", + "type": "number", + "placeholder": "e.g. 2", + "required": true + }, + { + "id": "itemCategory2", + "label": "Item Category Free", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + }, + { + "id": "freeItem2", + "label": "Free item / category with minimum spend", + "promoType": "free_item", + "formConfig": { + "discountLabel": "at $5 or 10% off", + "descriptionPlaceholder": "Free item / category with minimum spend", + "specificFields": [ + { + "id": "getNumber", + "label": "Get 1", + "type": "number", + "placeholder": "e.g. 2", + "required": true + }, + { + "id": "itemCategory2", + "label": "Item Category Free", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + }, + { + "id": "minimumSpend", + "label": "Minimum Spend (MYR)", + "type": "number", + "placeholder": "e.g. 50", + "required": true + } + ] + } + }, + { + "id": "freeItem3", + "label": "Free item / category with minimum spend on item / category", + "promoType": "free_item", + "formConfig": { + "discountLabel": "at $5 or 10% off", + "descriptionPlaceholder": "Free item / category with minimum spend on item / category", + "specificFields": [ + { + "id": "getNumber", + "label": "Get 1", + "type": "number", + "placeholder": "e.g. 2", + "required": true + }, + { + "id": "itemCategory2", + "label": "Item Category Free", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + }, + { + "id": "minimumSpend", + "label": "Minimum Spend (MYR)", + "type": "number", + "placeholder": "e.g. 50", + "required": true + }, + { + "id": "itemCategory1", + "label": "Item / Category (minimum spend)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + }, + { + "id": "freeItem4", + "label": "Free item / category with minimum quantity on item / category", + "promoType": "free_item", + "formConfig": { + "discountLabel": "at $5 or 10% off", + "descriptionPlaceholder": "Free item / category with minimum quantity on item / category", + "specificFields": [ + { + "id": "getNumber", + "label": "Get 1", + "type": "number", + "placeholder": "e.g. 2", + "required": true + }, + { + "id": "itemCategory2", + "label": "Item Category Free", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + }, + { + "id": "minimumQuantity", + "label": "Minimum Quantity", + "type": "number", + "placeholder": "e.g. 2", + "required": true + }, + { + "id": "itemCategory1", + "label": "Item / Category (minimum quantity)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + }, + { + "id": "freeItem5", + "label": "Free item / category with every quantity of item / category", + "promoType": "free_item", + "formConfig": { + "discountLabel": "at $5 or 10% off", + "descriptionPlaceholder": "Free item / category with every quantity of item / category", + "specificFields": [ + { + "id": "getNumber", + "label": "Get 1", + "type": "number", + "placeholder": "e.g. 2", + "required": true + }, + { + "id": "itemCategory2", + "label": "Item Category Free", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + }, + { + "id": "everyQuantity", + "label": "With every quantity of", + "type": "number", + "placeholder": "e.g. 5", + "required": true + }, + { + "id": "itemCategory1", + "label": "Item / Category (quantity)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + } + ], + "deliveryOverride": [ + { + "id": "deliveryOverride1", + "label": "Free / $ off / % off delivery", + "promoType": "delivery", + "formConfig": { + "discountLabel": "Get $5 / 10% off or free", + "descriptionPlaceholder": "Free / $ off / % off delivery", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 / 10% off or free", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + } + ] + } + }, + { + "id": "deliveryOverride2", + "label": "Free / $ off / % off delivery with minimum spend", + "promoType": "delivery", + "formConfig": { + "descriptionPlaceholder": "Free / $ off / % off delivery with minimum spend", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 / 10% off or free", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "minimumSpend", + "label": "Minimum Spend (MYR)", + "type": "number", + "placeholder": "e.g. 50", + "required": true + } + ] + } + }, + { + "id": "deliveryOverride3", + "label": "Free / $ off / % off delivery with minimum spend on item / category", + "promoType": "delivery", + "formConfig": { + "descriptionPlaceholder": "Free / $ off / % off delivery with minimum spend on item / category", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 / 10% off or free", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "minimumSpend", + "label": "Minimum Spend (MYR)", + "type": "number", + "placeholder": "e.g. 50", + "required": true + }, + { + "id": "itemCategory1", + "label": "Apply to Item/Category (minimum spend)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + }, + { + "id": "deliveryOverride4", + "label": "Free / $ off / % off delivery with minimum quantity of item / category", + "promoType": "delivery", + "formConfig": { + "descriptionPlaceholder": "Free / $ off / % off delivery with minimum quantity of item / category", + "specificFields": [ + { + "type": "discountAmount", + "id": "discountGroup", + "label": "Get $5 / 10% off or free", + "required": false, + "currencyOptions": [ + { "value": "fixed", "label": "MYR" }, + { "value": "percentage", "label": "%" } + ] + }, + { + "id": "minimumQuantity", + "label": "Minimum Quantity", + "type": "number", + "placeholder": "e.g. 2", + "required": true + }, + { + "id": "itemCategory1", + "label": "Apply to Item/Category (minimum quantity)", + "type": "select", + "options": [ + { "value": "", "label": "Select Item/Category" }, + { "value": "item", "label": "Item" }, + { "value": "category", "label": "Category" } + ], + "required": true + } + ] + } + } + ], + "minimumOrder": [ + { + "id": "minimumOrder1", + "label": "Change minimum order amount", + "formConfig": { + "descriptionPlaceholder": "Change minimum order amount", + "specificFields": [ + { + "id": "minimumAmount", + "label": "Change minimum amount to", + "type": "number", + "placeholder": "Percentage amount", + "required": true + } + ] + } + } + ] + }, + + "commonFields": [ + { + "id": "promotionName", + "label": "Promotion Name", + "type": "text", + "placeholder": "Enter here", + "required": true + }, + { + "id": "promotionCode", + "label": "Apply Promo Code", + "type": "text", + "placeholder": "Enter here", + "required": false, + "helpText": "Promotion Code (use comma to separate codes, for example 10OFF, WELCOME10)" + }, + { + "id": "usageLimit", + "label": "Usage Limit Per Customer", + "type": "radio", + "options": [ + { "value": "multiple", "label": "Multiple Times" }, + { "value": "one", "label": "One Time" } + ], + "required": true + }, + { + "id": "totalRedemptionLimit", + "label": "Total Redemption Limit", + "type": "number", + "placeholder": "Enter here", + "required": true, + "helpText": "Enter the total number of times the promotion code(s) can be redeemed; enter 0 for unlimited usage" + } + ], + + "availabilityFields": [ + { + "id": "voucherLimitPerCustomer", + "label": "Voucher Limit per Customer", + "type": "number", + "placeholder": "Enter here", + "required": false + }, + { + "id": "storeDateRange", + "label": "Store Date Range", + "type": "dateRange", + "fields": [ + { + "id": "storeStartDate", + "label": "Start Date", + "required": true + }, + { + "id": "storeEndDate", + "label": "End Date", + "required": true + } + ] + }, + { + "id": "customDayTime", + "label": "Customise Day & Time", + "type": "dayTime", + "days": [ + { "id": "mon", "label": "Monday" }, + { "id": "tue", "label": "Tuesday" }, + { "id": "wed", "label": "Wednesday" }, + { "id": "thurs", "label": "Thursday" }, + { "id": "fri", "label": "Friday" }, + { "id": "sat", "label": "Saturday" }, + { "id": "sun", "label": "Sunday" } + ], + "required": false + }, + { + "id": "applyToDeliveryPickup", + "label": "Apply To Delivery or Pickup?", + "type": "checkbox-group", + "options": [ + { "value": "all", "label": "All" }, + { "value": "delivery", "label": "Delivery" }, + { "value": "pickup", "label": "Pickup" }, + { "value": "dinein", "label": "Dine In" } + ], + "required": true + } + ] +} diff --git a/src/hooks/useAuth.js b/src/hooks/useAuth.js new file mode 100644 index 0000000..1b5219e --- /dev/null +++ b/src/hooks/useAuth.js @@ -0,0 +1,166 @@ +// hooks/useAuth.js +import { useState, useEffect, createContext, useContext } from 'react'; +import categoryService from '../api/categoryService'; + +const AuthContext = createContext(); + +export const useAuth = () => { + const context = useContext(AuthContext); + if (!context) { + throw new Error('useAuth must be used within an AuthProvider'); + } + return context; +}; + +export const AuthProvider = ({ children }) => { + const [isAuthenticated, setIsAuthenticated] = useState(false); + const [loading, setLoading] = useState(true); + const [user, setUser] = useState(null); + + useEffect(() => { + // Check if user is already logged in (token in localStorage) + const token = localStorage.getItem('auth_token'); + const userData = localStorage.getItem('user_data'); + + if (token && userData) { + categoryService.setToken(token); + setUser(JSON.parse(userData)); + setIsAuthenticated(true); + } + + setLoading(false); + }, []); + + const login = async (username, passwordHash) => { + try { + const response = await categoryService.login(username, passwordHash); + + if (response.token) { + // Store token and user data + localStorage.setItem('auth_token', response.token); + localStorage.setItem('user_data', JSON.stringify(response.user || { username })); + + setUser(response.user || { username }); + setIsAuthenticated(true); + + return { success: true, data: response }; + } else { + throw new Error('No token received'); + } + } catch (error) { + console.error('Login failed:', error); + return { success: false, error: error.message }; + } + }; + + const logout = () => { + localStorage.removeItem('auth_token'); + localStorage.removeItem('user_data'); + categoryService.setToken(null); + setUser(null); + setIsAuthenticated(false); + }; + + const value = { + isAuthenticated, + loading, + user, + login, + logout + }; + + return ( + + {children} + + ); +}; + +// Custom hook for category operations +export const useCategories = () => { + const [categories, setCategories] = useState([]); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const fetchCategories = async () => { + try { + setLoading(true); + setError(null); + const response = await categoryService.getCategories(); + setCategories(response.data || []); + return { success: true, data: response.data }; + } catch (err) { + setError(err.message); + return { success: false, error: err.message }; + } finally { + setLoading(false); + } + }; + + const createCategory = async (categoryData, imageFile) => { + try { + setError(null); + const response = await categoryService.createCategory(categoryData, imageFile); + + // Refresh categories list + await fetchCategories(); + + return { success: true, data: response }; + } catch (err) { + setError(err.message); + return { success: false, error: err.message }; + } + }; + + const updateCategory = async (id, categoryData, imageFile) => { + try { + setError(null); + const response = await categoryService.updateCategory(id, categoryData, imageFile); + + // Refresh categories list + await fetchCategories(); + + return { success: true, data: response }; + } catch (err) { + setError(err.message); + return { success: false, error: err.message }; + } + }; + + const deleteCategory = async (id) => { + try { + setError(null); + const response = await categoryService.deleteCategory(id); + + // Remove from local state + setCategories(prev => prev.filter(cat => cat.id !== id)); + + return { success: true, data: response }; + } catch (err) { + setError(err.message); + return { success: false, error: err.message }; + } + }; + + const getCategory = async (id) => { + try { + setError(null); + const response = await categoryService.getCategory(id); + return { success: true, data: response }; + } catch (err) { + setError(err.message); + return { success: false, error: err.message }; + } + }; + + return { + categories, + loading, + error, + fetchCategories, + createCategory, + updateCategory, + deleteCategory, + getCategory + }; +}; \ No newline at end of file diff --git a/src/hooks/useContentWidth.js b/src/hooks/useContentWidth.js new file mode 100644 index 0000000..859f4ba --- /dev/null +++ b/src/hooks/useContentWidth.js @@ -0,0 +1,14 @@ +import { useSelector, useDispatch } from "react-redux"; +import { handleContentWidth } from "@/store/layout"; + +const useContentWidth = () => { + const dispatch = useDispatch(); + const contentWidth = useSelector((state) => state.layout.contentWidth); + + // ** Toggles Content Width + const setContentWidth = (val) => dispatch(handleContentWidth(val)); + + return [contentWidth, setContentWidth]; +}; + +export default useContentWidth; diff --git a/src/hooks/useDarkMode.js b/src/hooks/useDarkMode.js new file mode 100644 index 0000000..c13d7aa --- /dev/null +++ b/src/hooks/useDarkMode.js @@ -0,0 +1,35 @@ +import { useEffect } from "react"; +import { useSelector, useDispatch } from "react-redux"; +import { handleDarkMode } from "@/store/layout"; + +const useDarkmode = () => { + const dispatch = useDispatch(); + const isDark = useSelector((state) => state.layout.darkMode); + + // ** Return a wrapped version of useState's setter function + const setDarkMode = (mode) => { + dispatch(handleDarkMode(mode)); + }; + + useEffect(() => { + // ** Get Body Tag + const body = window.document.body; + // define classNames + const classNames = { + dark: "dark", + light: "light", + }; + // ** Check if dark mode is enabled + if (isDark) { + body.classList.add(classNames.dark); + body.classList.remove(classNames.light); + } else { + body.classList.add(classNames.light); + body.classList.remove(classNames.dark); + } + }, [isDark]); + + return [isDark, setDarkMode]; +}; + +export default useDarkmode; diff --git a/src/hooks/useFooterType.js b/src/hooks/useFooterType.js new file mode 100644 index 0000000..bc4c5b7 --- /dev/null +++ b/src/hooks/useFooterType.js @@ -0,0 +1,11 @@ +import { useSelector, useDispatch } from "react-redux"; +import { handleFooterType } from "@/store/layout"; + +const useFooterType = () => { + const dispatch = useDispatch(); + const footerType = useSelector((state) => state.layout.footerType); + const setFooterType = (val) => dispatch(handleFooterType(val)); + return [footerType, setFooterType]; +}; + +export default useFooterType; diff --git a/src/hooks/useMenuHidden.js b/src/hooks/useMenuHidden.js new file mode 100644 index 0000000..28d2f94 --- /dev/null +++ b/src/hooks/useMenuHidden.js @@ -0,0 +1,15 @@ +import { useSelector, useDispatch } from "react-redux"; +import { handleMenuHidden } from "@/store/layout"; + +const useMenuHidden = () => { + const dispatch = useDispatch(); + const menuHidden = useSelector((state) => state.layout.menuHidden); + + const setMenuHidden = (value) => { + dispatch(handleMenuHidden(value)); + }; + + return [menuHidden, setMenuHidden]; +}; + +export default useMenuHidden; diff --git a/src/hooks/useMenulayout.js b/src/hooks/useMenulayout.js new file mode 100644 index 0000000..ed4faff --- /dev/null +++ b/src/hooks/useMenulayout.js @@ -0,0 +1,15 @@ +import { useSelector, useDispatch } from "react-redux"; +import { handleType } from "@/store/layout"; + +const useMenuLayout = () => { + const dispatch = useDispatch(); + const menuType = useSelector((state) => state.layout.type); + + const setMenuLayout = (value) => { + dispatch(handleType(value)); + }; + + return [menuType, setMenuLayout]; +}; + +export default useMenuLayout; diff --git a/src/hooks/useMobileMenu.js b/src/hooks/useMobileMenu.js new file mode 100644 index 0000000..0a0d2e7 --- /dev/null +++ b/src/hooks/useMobileMenu.js @@ -0,0 +1,17 @@ +import { useEffect } from "react"; +import { useSelector, useDispatch } from "react-redux"; +import { handleMobileMenu } from "@/store/layout"; +import { useLocation } from "react-router-dom"; + +const useMobileMenu = () => { + const dispatch = useDispatch(); + const mobileMenu = useSelector((state) => state.layout.mobileMenu); + const location = useLocation(); + + // ** Toggles Mobile Menu + const setMobileMenu = (val) => dispatch(handleMobileMenu(val)); + + return [mobileMenu, setMobileMenu]; +}; + +export default useMobileMenu; diff --git a/src/hooks/useMonoChrome.js b/src/hooks/useMonoChrome.js new file mode 100644 index 0000000..759a420 --- /dev/null +++ b/src/hooks/useMonoChrome.js @@ -0,0 +1,24 @@ +import { useEffect } from "react"; +import { useSelector, useDispatch } from "react-redux"; +import { handleMonoChrome } from "@/store/layout"; + +const useMonoChrome = () => { + const dispatch = useDispatch(); + const isMonoChrome = useSelector((state) => state.layout.isMonochrome); + + const setMonoChrome = (val) => dispatch(handleMonoChrome(val)); + + useEffect(() => { + const element = document.getElementsByTagName("html")[0]; + + if (isMonoChrome) { + element.classList.add("grayscale"); + } else { + element.classList.remove("grayscale"); + } + }, [isMonoChrome]); + + return [isMonoChrome, setMonoChrome]; +}; + +export default useMonoChrome; diff --git a/src/hooks/useNavbarType.js b/src/hooks/useNavbarType.js new file mode 100644 index 0000000..56967f9 --- /dev/null +++ b/src/hooks/useNavbarType.js @@ -0,0 +1,11 @@ +import { useSelector, useDispatch } from "react-redux"; +import { handleNavBarType } from "@/store/layout"; + +const useNavbarType = () => { + const dispatch = useDispatch(); + const navbarType = useSelector((state) => state.layout.navBarType); + const setNavbarType = (val) => dispatch(handleNavBarType(val)); + return [navbarType, setNavbarType]; +}; + +export default useNavbarType; diff --git a/src/hooks/useRtl.js b/src/hooks/useRtl.js new file mode 100644 index 0000000..4d3bf0a --- /dev/null +++ b/src/hooks/useRtl.js @@ -0,0 +1,24 @@ +import { useEffect } from "react"; +import { useSelector, useDispatch } from "react-redux"; +import { handleRtl } from "@/store/layout"; + +const useRtl = () => { + const dispatch = useDispatch(); + const isRtl = useSelector((state) => state.layout.isRTL); + + const setRtl = (val) => dispatch(handleRtl(val)); + + useEffect(() => { + const element = document.getElementsByTagName("html")[0]; + + if (isRtl) { + element.setAttribute("dir", "rtl"); + } else { + element.setAttribute("dir", "ltr"); + } + }, [isRtl]); + + return [isRtl, setRtl]; +}; + +export default useRtl; diff --git a/src/hooks/useScrollLock.js b/src/hooks/useScrollLock.js new file mode 100644 index 0000000..53ddb6c --- /dev/null +++ b/src/hooks/useScrollLock.js @@ -0,0 +1,34 @@ +import { useEffect } from 'react'; + +const useScrollLock = (isLocked) => { + useEffect(() => { + if (isLocked) { + const scrollY = window.scrollY; + + document.body.style.overflow = 'hidden'; + document.body.style.position = 'fixed'; + document.body.style.top = `-${scrollY}px`; + document.body.style.width = '100%'; + } else { + const scrollY = document.body.style.top; + + document.body.style.overflow = ''; + document.body.style.position = ''; + document.body.style.top = ''; + document.body.style.width = ''; + + if (scrollY) { + window.scrollTo(0, parseInt(scrollY || '0') * -1); + } + } + + return () => { + document.body.style.overflow = ''; + document.body.style.position = ''; + document.body.style.top = ''; + document.body.style.width = ''; + }; + }, [isLocked]); +}; + +export default useScrollLock; \ No newline at end of file diff --git a/src/hooks/useSemiDark.js b/src/hooks/useSemiDark.js new file mode 100644 index 0000000..cd7c5e0 --- /dev/null +++ b/src/hooks/useSemiDark.js @@ -0,0 +1,13 @@ +import { handleSemiDarkMode } from "@/store/layout"; +import { useSelector, useDispatch } from "react-redux"; + +const useSemiDark = () => { + const dispatch = useDispatch(); + const isSemiDark = useSelector((state) => state.layout.semiDarkMode); + + const setSemiDark = (val) => dispatch(handleSemiDarkMode(val)); + + return [isSemiDark, setSemiDark]; +}; + +export default useSemiDark; diff --git a/src/hooks/useSessionManager.js b/src/hooks/useSessionManager.js new file mode 100644 index 0000000..0b34949 --- /dev/null +++ b/src/hooks/useSessionManager.js @@ -0,0 +1,313 @@ +import { useEffect, useCallback, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; +import { useDispatch, useSelector } from 'react-redux'; +import { toast } from 'react-toastify'; +import { setUser, logOut, setExpired } from '../store/api/auth/authSlice'; + +const SESSION_TIMEOUT = 24 * 60 * 60 * 1000; +const WARNING_TIME = 5 * 60 * 1000; + +export const useSessionManager = () => { + const navigate = useNavigate(); + const dispatch = useDispatch(); + const { user, isAuth } = useSelector(state => state.auth); + const [showWarning, setShowWarning] = useState(false); + const [timeLeft, setTimeLeft] = useState(0); + const [dismissed, setDismissed] = useState(false); + const [isInitialized, setIsInitialized] = useState(false); + // ...existing code... +const { expired } = useSelector(state => state.auth); + +const checkSession = useCallback(() => { + let expireAt = parseInt(sessionStorage.getItem('expireAt'), 10); + const token = sessionStorage.getItem('token'); + const now = Date.now(); + + if (!expireAt) { + expireAt = parseInt(localStorage.getItem('expireAt'), 10); + if (expireAt) { + sessionStorage.setItem('expireAt', expireAt.toString()); + sessionStorage.setItem('expireAtDate', new Date(expireAt).toISOString()); + } + } + + if (!token || !expireAt || now > expireAt) { + if (!expired) dispatch(setExpired()); + return { isValid: false, timeLeft: 0 }; + } + + const timeLeft = expireAt - now; + return { + isValid: true, + timeLeft, + shouldWarn: timeLeft <= WARNING_TIME && timeLeft > 0 + }; +}, [dispatch, expired]); +// ...existing code... + + const initSession = useCallback((userData = null) => { + const now = Date.now(); + const expireAt = now + SESSION_TIMEOUT; + + localStorage.setItem('expireAt', expireAt.toString()); + localStorage.setItem('expireAtDate', new Date(expireAt).toISOString()); + sessionStorage.setItem('expireAt', expireAt.toString()); + sessionStorage.setItem('expireAtDate', new Date(expireAt).toISOString()); + sessionStorage.setItem('lastActive', now.toString()); + sessionStorage.setItem('lastActiveDate', new Date(now).toISOString()); + + if (userData) { + localStorage.setItem('user', JSON.stringify(userData)); + sessionStorage.setItem('token', userData.token); + sessionStorage.setItem('user', JSON.stringify(userData)); + dispatch(setUser(userData)); + } + + setShowWarning(false); + setDismissed(false); + setIsInitialized(true); + }, [dispatch]); + + const updateActivity = useCallback(() => { + if (isAuth) { + const now = Date.now(); + const expireAt = now + SESSION_TIMEOUT; + + localStorage.setItem('expireAt', expireAt.toString()); + localStorage.setItem('expireAtDate', new Date(expireAt).toISOString()); + sessionStorage.setItem('expireAt', expireAt.toString()); + sessionStorage.setItem('expireAtDate', new Date(expireAt).toISOString()); + sessionStorage.setItem('lastActive', now.toString()); + sessionStorage.setItem('lastActiveDate', new Date(now).toISOString()); + + if (showWarning) { + setShowWarning(false); + setDismissed(false); + } + } + }, [isAuth, showWarning]); + +// Modify handleSessionExpiry to use setExpired +const handleSessionExpiry = useCallback(() => { + sessionStorage.clear(); + localStorage.removeItem('user'); + localStorage.removeItem('expireAt'); + localStorage.removeItem('expireAtDate'); + + dispatch(setExpired()); // Use setExpired instead of logOut + setShowWarning(false); + setDismissed(false); + setIsInitialized(false); + toast.error('Your session has expired. Please log in again.'); + navigate('/login'); +}, [dispatch, navigate]); + + + const checkAutoLogin = useCallback(() => { + const storedUser = localStorage.getItem('user'); + let expireAt = parseInt(localStorage.getItem('expireAt'), 10); + if (!expireAt) { + expireAt = parseInt(sessionStorage.getItem('expireAt'), 10); + } + + const now = Date.now(); + + console.log('Auto login check:', { + hasStoredUser: !!storedUser, + expireAt, + now, + isExpired: expireAt ? now > expireAt : true, + isAuth, + isInitialized + }); + + if (isInitialized && isAuth) { + return true; + } + + if (storedUser) { + if (expireAt && now < expireAt) { + try { + const userData = JSON.parse(storedUser); + console.log('Auto login successful for user:', userData.username); + + const newExpireAt = now + SESSION_TIMEOUT; + localStorage.setItem('expireAt', newExpireAt.toString()); + localStorage.setItem('expireAtDate', new Date(newExpireAt).toISOString()); + sessionStorage.setItem('expireAt', newExpireAt.toString()); + sessionStorage.setItem('expireAtDate', new Date(newExpireAt).toISOString()); + sessionStorage.setItem('lastActive', now.toString()); + sessionStorage.setItem('lastActiveDate', new Date(now).toISOString()); + sessionStorage.setItem('token', userData.token); + sessionStorage.setItem('user', JSON.stringify(userData)); + + dispatch(setUser(userData)); + setIsInitialized(true); + return true; + } catch (error) { + console.error('Error parsing stored user data:', error); + localStorage.removeItem('user'); + localStorage.removeItem('expireAt'); + localStorage.removeItem('expireAtDate'); + sessionStorage.clear(); + setIsInitialized(true); + return false; + } + } else { + console.log('Session expired or no expiration time, clearing storage'); + localStorage.removeItem('user'); + localStorage.removeItem('expireAt'); + localStorage.removeItem('expireAtDate'); + sessionStorage.clear(); + } + } + + setIsInitialized(true); + return false; + }, [dispatch, isAuth, isInitialized]); + + const extendSession = useCallback(() => { + if (isAuth) { + const now = Date.now(); + const expireAt = now + SESSION_TIMEOUT; + + localStorage.setItem('expireAt', expireAt.toString()); + localStorage.setItem('expireAtDate', new Date(expireAt).toISOString()); + sessionStorage.setItem('expireAt', expireAt.toString()); + sessionStorage.setItem('expireAtDate', new Date(expireAt).toISOString()); + sessionStorage.setItem('lastActive', now.toString()); + sessionStorage.setItem('lastActiveDate', new Date(now).toISOString()); + + toast.success('Session extended successfully!'); + } + }, [dispatch, isAuth, isInitialized]); + + const handleLogout = useCallback(() => { + sessionStorage.clear(); + localStorage.removeItem('user'); + localStorage.removeItem('expireAt'); + localStorage.removeItem('expireAtDate'); + localStorage.clear(); + + dispatch(logOut()); + setShowWarning(false); + setDismissed(false); + setIsInitialized(false); + toast.info('Logged out successfully'); + navigate('/login'); + }, [dispatch, navigate]); + + const dismissWarning = useCallback(() => { + setDismissed(true); + }, []); + + useEffect(() => { + if (!isInitialized) { + checkAutoLogin(); + } + }, [checkAutoLogin, isInitialized]); + + useEffect(() => { + if (!isAuth || !isInitialized) return; + + const events = ['mousedown', 'keypress', 'scroll', 'touchstart', 'click']; + + events.forEach(event => { + document.addEventListener(event, updateActivity, true); + }); + + const sessionInterval = setInterval(() => { + const sessionStatus = checkSession(); + + if (!sessionStatus.isValid) { + handleSessionExpiry(); + return; + } + + setTimeLeft(sessionStatus.timeLeft); + + if (sessionStatus.shouldWarn && !dismissed) { + setShowWarning(true); + } else if (!sessionStatus.shouldWarn) { + setShowWarning(false); + setDismissed(false); + } + }, 1000); + + const sessionStatus = checkSession(); + setTimeLeft(sessionStatus.timeLeft); + + return () => { + events.forEach(event => { + document.removeEventListener(event, updateActivity, true); + }); + clearInterval(sessionInterval); + }; + }, [isAuth, isInitialized, updateActivity, checkSession, handleSessionExpiry, dismissed]); + + const formatTimeLeft = useCallback((milliseconds) => { + const minutes = Math.floor(milliseconds / (1000 * 60)); + const seconds = Math.floor((milliseconds % (1000 * 60)) / 1000); + return `${minutes}:${seconds.toString().padStart(2, '0')}`; + }, []); + + const getExpirationInfo = useCallback(() => { + let expireAt = parseInt(sessionStorage.getItem('expireAt'), 10); + if (!expireAt) { + expireAt = parseInt(localStorage.getItem('expireAt'), 10); + } + + if (!expireAt) return null; + + const expireDate = new Date(expireAt); + return { + timestamp: expireAt, + dateString: expireDate.toLocaleString(), + isoString: expireDate.toISOString() + }; + }, []); + + const isInWarningPeriod = useCallback(() => { + return timeLeft <= WARNING_TIME && timeLeft > 0; + }, [timeLeft]); + + const getSessionHealth = useCallback(() => { + const totalTime = SESSION_TIMEOUT; + const percentage = (timeLeft / totalTime) * 100; + + if (percentage > 80) return 'excellent'; + if (percentage > 60) return 'good'; + if (percentage > 40) return 'fair'; + if (percentage > 20) return 'warning'; + return 'critical'; + }, [timeLeft]); + + return { + // State + showWarning: showWarning && !dismissed, + timeLeft, + timeLeftFormatted: formatTimeLeft(timeLeft), + timeLeftMs: timeLeft, + dismissed, + isInWarningPeriod: isInWarningPeriod(), + sessionHealth: getSessionHealth(), + expirationInfo: getExpirationInfo(), + isInitialized, + + // Actions + initSession, + updateActivity, + checkSession, + checkAutoLogin, + extendSession, + handleLogout, + handleSessionExpiry, + dismissWarning, + + // Utilities + formatTimeLeft, + getExpirationInfo, + isInWarningPeriod, + getSessionHealth + }; +}; \ No newline at end of file diff --git a/src/hooks/useSidebar.js b/src/hooks/useSidebar.js new file mode 100644 index 0000000..7ab41ab --- /dev/null +++ b/src/hooks/useSidebar.js @@ -0,0 +1,14 @@ +import { useSelector, useDispatch } from "react-redux"; +import { handleSidebarCollapsed } from "@/store/layout"; + +const useSidebar = () => { + const dispatch = useDispatch(); + const collapsed = useSelector((state) => state.layout.isCollapsed); + + // ** Toggles Menu Collapsed + const setMenuCollapsed = (val) => dispatch(handleSidebarCollapsed(val)); + + return [collapsed, setMenuCollapsed]; +}; + +export default useSidebar; diff --git a/src/hooks/useSkin.js b/src/hooks/useSkin.js new file mode 100644 index 0000000..b017cf7 --- /dev/null +++ b/src/hooks/useSkin.js @@ -0,0 +1,30 @@ +import { useEffect } from "react"; +import { useSelector, useDispatch } from "react-redux"; +import { handleSkin } from "@/store/layout"; + +const useSkin = () => { + const dispatch = useDispatch(); + const skin = useSelector((state) => state.layout.skin); + + const setSkin = (mod) => dispatch(handleSkin(mod)); + + useEffect(() => { + const body = window.document.body; + const classNames = { + default: "skin--default", + bordered: "skin--bordered", + }; + + if (skin === "default") { + body.classList.add(classNames.default); + body.classList.remove(classNames.bordered); + } else if (skin === "bordered") { + body.classList.add(classNames.bordered); + body.classList.remove(classNames.default); + } + }, [skin]); + + return [skin, setSkin]; +}; + +export default useSkin; diff --git a/src/hooks/useWidth.js b/src/hooks/useWidth.js new file mode 100644 index 0000000..93b5773 --- /dev/null +++ b/src/hooks/useWidth.js @@ -0,0 +1,24 @@ +import { useState, useMemo } from "react"; +export default function useWidth() { + const [width, setWidth] = useState(window.innerWidth); + // breakpoints + const breakpoints = { + sm: "640", + md: "768", + lg: "1024", + xl: "1280", + }; + + // resize widnow size and set width by useMemo + useMemo(() => { + const handleResize = () => { + setWidth(window.innerWidth); + }; + window.addEventListener("resize", handleResize); + return () => { + window.removeEventListener("resize", handleResize); + }; + }, []); + + return { width, breakpoints }; +} diff --git a/src/layout/AuthLayout.jsx b/src/layout/AuthLayout.jsx new file mode 100644 index 0000000..00a2e96 --- /dev/null +++ b/src/layout/AuthLayout.jsx @@ -0,0 +1,18 @@ +import React, { useEffect, Suspense } from "react"; +import { Outlet, useNavigate, useLocation } from "react-router-dom"; +import { ToastContainer } from "react-toastify"; +import Loading from "@/components/Loading"; +const AuthLayout = () => { + const navigate = useNavigate(); + + return ( + <> + }> + + {} + + + ); +}; + +export default AuthLayout; diff --git a/src/layout/Layout.jsx b/src/layout/Layout.jsx new file mode 100644 index 0000000..5e6d613 --- /dev/null +++ b/src/layout/Layout.jsx @@ -0,0 +1,124 @@ +import React, { useEffect, Suspense, Fragment, useRef } from "react"; +import { Outlet, useNavigate } from "react-router-dom"; +import Header from "@/components/partials/header"; +import Sidebar from "@/components/partials/sidebar"; +import Settings from "@/components/partials/settings"; +import useWidth from "@/hooks/useWidth"; +import useSidebar from "@/hooks/useSidebar"; +import useContentWidth from "@/hooks/useContentWidth"; +import useMenulayout from "@/hooks/useMenulayout"; +import useMenuHidden from "@/hooks/useMenuHidden"; +import Footer from "@/components/partials/footer"; +import Breadcrumbs from "@/components/ui/Breadcrumbs"; +import MobileMenu from "../components/partials/sidebar/MobileMenu"; +import useMobileMenu from "@/hooks/useMobileMenu"; +import MobileFooter from "@/components/partials/footer/MobileFooter"; +import { ToastContainer } from "react-toastify"; +import { useSelector } from "react-redux"; +import Loading from "@/components/Loading"; +import { motion, AnimatePresence } from "framer-motion"; +const Layout = () => { + const { width, breakpoints } = useWidth(); + const [collapsed] = useSidebar(); + const navigate = useNavigate(); + const { isAuth, user } = useSelector((state) => state.auth); + + useEffect(() => { + if (!isAuth || !user) { + navigate("/"); + } + }, [isAuth, navigate]); + const switchHeaderClass = () => { + if (menuType === "horizontal" || menuHidden) { + return "ltr:ml-0 rtl:mr-0"; + } else if (collapsed) { + return "ltr:ml-[72px] rtl:mr-[72px]"; + } else { + return "ltr:ml-[248px] rtl:mr-[248px]"; + } + }; + // content width + const [contentWidth] = useContentWidth(); + const [menuType] = useMenulayout(); + const [menuHidden] = useMenuHidden(); + // mobile menu + const [mobileMenu, setMobileMenu] = useMobileMenu(); + const nodeRef = useRef(null); + + return ( + <> + +
breakpoints.xl ? switchHeaderClass() : ""} /> + {menuType === "vertical" && width > breakpoints.xl && !menuHidden && ( + + )} + + + {/* mobile menu overlay*/} + {width < breakpoints.xl && mobileMenu && ( +
setMobileMenu(false)} + >
+ )} + +
1280 ? switchHeaderClass() : "" + }`} + > + {/* md:min-h-screen will h-full*/} +
+
+ }> + + + {} + + +
+
+
+ {width < breakpoints.md && } + {width > breakpoints.md && ( +