diff --git a/backend/init-mongo.dockerfile b/backend/init-mongo.dockerfile index 9f26ec4eb..e0f40bdd2 100644 --- a/backend/init-mongo.dockerfile +++ b/backend/init-mongo.dockerfile @@ -2,7 +2,7 @@ # speeds up development, since we can rebuild and create new containers without # overwriting every time. -FROM python:3.11.5 +FROM python:3.12.3-slim WORKDIR /util @@ -11,4 +11,4 @@ RUN pip install --no-cache-dir -r requirements.txt COPY . . -CMD ["python3", "-u", "init-database.py"] \ No newline at end of file +CMD ["python3", "-u", "init-database.py"] diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 15695fe14..47bfda99d 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -18,7 +18,7 @@ "@rive-app/react-canvas": "4.8.3", "@tanstack/react-query": "5.29.2", "@tippyjs/react": "4.2.6", - "antd": "5.15.4", + "antd": "5.18.1", "axios": "1.6.8", "dayjs": "1.11.11", "fast-fuzzy": "1.12.0", @@ -122,9 +122,9 @@ } }, "node_modules/@ant-design/cssinjs": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.20.0.tgz", - "integrity": "sha512-uG3iWzJxgNkADdZmc6W0Ci3iQAUOvLMcM8SnnmWq3r6JeocACft4ChnY/YWvI2Y+rG/68QBla/O+udke1yH3vg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.21.0.tgz", + "integrity": "sha512-gIilraPl+9EoKdYxnupxjHB/Q6IHNRjEXszKbDxZdsgv4sAZ9pjkCq8yanDWNvyfjp4leir2OVAJm0vxwKK8YA==", "dependencies": { "@babel/runtime": "^7.11.1", "@emotion/hash": "^0.8.0", @@ -181,9 +181,9 @@ } }, "node_modules/@ant-design/react-slick": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.0.2.tgz", - "integrity": "sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==", + "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==", "dependencies": { "@babel/runtime": "^7.10.4", "classnames": "^2.2.5", @@ -249,11 +249,11 @@ "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==" }, "node_modules/@antv/g": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@antv/g/-/g-6.0.6.tgz", - "integrity": "sha512-LWXhBcgjYC/bcLVtNOwrToPosNVsL4ZErj5QexqXDMhqKg2fHMICeJt+1qV2+0bv1sM/vMfeTDRizRxg4OJ3zg==", + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/@antv/g/-/g-6.0.8.tgz", + "integrity": "sha512-puqFba/prEiRHKqBg1fsfXHZPCffuSmsaepYD/HlfnhITViHMP+7BSzRjotteUbLlcsXmprTFcLHbUkuxxXKZA==", "dependencies": { - "@antv/g-camera-api": "2.0.5", + "@antv/g-camera-api": "2.0.7", "@antv/g-dom-mutation-observer-api": "2.0.5", "@antv/g-lite": "2.0.5", "@antv/g-web-animations-api": "2.0.6" @@ -307,9 +307,9 @@ } }, "node_modules/@antv/g-camera-api": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@antv/g-camera-api/-/g-camera-api-2.0.5.tgz", - "integrity": "sha512-cU4eH5YGfdVM7XKAVcAXmVgkJMFJfhCFgSletNvYhzY1HTpBvcD9LIIP2TAomN+quAMuP0n48orUBr9S4iaOvw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@antv/g-camera-api/-/g-camera-api-2.0.7.tgz", + "integrity": "sha512-u76pDPhht2kS9u9YXxk/fsqGOC+LB9iEltIYfpJv2U4TkNT6aj4ujY+R0gMR/dhwJ6A5WDJdjiwVxOaRcX77rA==", "dependencies": { "@antv/g-lite": "2.0.5", "@antv/util": "^3.3.5", @@ -626,9 +626,9 @@ } }, "node_modules/@antv/g2": { - "version": "5.1.21", - "resolved": "https://registry.npmjs.org/@antv/g2/-/g2-5.1.21.tgz", - "integrity": "sha512-7HRWuiGN7sPK4K8ljl2/x0i3sphWNMymYFuR1BT9qo4wmMqQUgM+K+ISKMb3dXOg55eHmFje0OH80sZ53qhqPg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@antv/g2/-/g2-5.2.0.tgz", + "integrity": "sha512-wruxga0RdaCtUi2LcJ5qgrBTP37tUwCYbBJYc3R8dW7oywB5ZqUmPWI7qh6lUh2hIS+hGsNsWvVa7vQOQSIeSw==", "dependencies": { "@antv/component": "^2.0.0", "@antv/coord": "^0.4.6", @@ -655,9 +655,9 @@ } }, "node_modules/@antv/g2-extension-plot": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@antv/g2-extension-plot/-/g2-extension-plot-0.2.0.tgz", - "integrity": "sha512-XeJquOmZw3dHTj2qRNZJZlkX5qDrGJDMhuknHHMgGsj1PoPc8sOWzACesWVHB9tmHJqwheySWmwf4KLxtUBZ9w==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@antv/g2-extension-plot/-/g2-extension-plot-0.2.1.tgz", + "integrity": "sha512-WNv/LIUNJLwlfG8XXmKUbje9PbImtJqh36UDvuOk/uu+kmP/uMyHAXsBuu0yCOWdQgBVTVwoxszxJOCnY4mVfg==", "dependencies": { "@antv/g2": "^5.1.8", "@antv/util": "^3.3.5", @@ -1786,9 +1786,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", - "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -1876,31 +1876,32 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", - "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.4.tgz", + "integrity": "sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==", "dependencies": { - "@floating-ui/utils": "^0.2.0" + "@floating-ui/utils": "^0.2.4" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", - "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.7.tgz", + "integrity": "sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==", "dependencies": { - "@floating-ui/core": "^1.0.0", - "@floating-ui/utils": "^0.2.0" + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.4" } }, "node_modules/@floating-ui/utils": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", - "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.4.tgz", + "integrity": "sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==" }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", @@ -1950,6 +1951,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true }, "node_modules/@jest/expect-utils": { @@ -2214,6 +2216,17 @@ "@babel/runtime": "^7.0.0" } }, + "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==", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, "node_modules/@rc-component/color-picker": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.5.3.tgz", @@ -2288,9 +2301,9 @@ } }, "node_modules/@rc-component/tour": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.14.2.tgz", - "integrity": "sha512-A75DZ8LVvahBIvxooj3Gvf2sxe+CGOkmzPNX7ek0i0AJHyKZ1HXe5ieIGo3m0FMdZfVOlbCJ952Duq8VKAHk6g==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.0.tgz", + "integrity": "sha512-h6hyILDwL+In9GAgRobwRWihLqqsD7Uft3fZGrJ7L4EiyCoxbnNYwzPXDfz7vNDhWeVyvAWQJj9fJCzpI4+b4g==", "dependencies": { "@babel/runtime": "^7.18.0", "@rc-component/portal": "^1.0.0-9", @@ -3735,9 +3748,9 @@ } }, "node_modules/@vitest/runner/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "dev": true, "engines": { "node": ">=12.20" @@ -3849,9 +3862,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -3870,10 +3883,13 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -3964,56 +3980,56 @@ } }, "node_modules/antd": { - "version": "5.15.4", - "resolved": "https://registry.npmjs.org/antd/-/antd-5.15.4.tgz", - "integrity": "sha512-79eLOQW1DG92yzulx+ValfHFjvPnaaI41BffGquAnzx42Ws3eEcKofsa2jNRyJN5NWr9I5wqvABDq9rRRfGGsg==", + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.18.1.tgz", + "integrity": "sha512-l762vsoIpA3xsVsbIExlce3hgFgiLdflGEgdo8NFnq17Qq3fHIMJklGzM8WNpdJJ4iUk4FzritmSSnHk0Y5kZA==", "dependencies": { "@ant-design/colors": "^7.0.2", - "@ant-design/cssinjs": "^1.18.5", - "@ant-design/icons": "^5.3.5", - "@ant-design/react-slick": "~1.0.2", - "@babel/runtime": "^7.24.1", + "@ant-design/cssinjs": "^1.19.1", + "@ant-design/icons": "^5.3.7", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.24.5", "@ctrl/tinycolor": "^3.6.1", "@rc-component/color-picker": "~1.5.3", "@rc-component/mutate-observer": "^1.1.0", - "@rc-component/tour": "~1.14.2", - "@rc-component/trigger": "^2.0.0", + "@rc-component/tour": "~1.15.0", + "@rc-component/trigger": "^2.2.0", "classnames": "^2.5.1", "copy-to-clipboard": "^3.3.3", "dayjs": "^1.11.10", "qrcode.react": "^3.1.0", - "rc-cascader": "~3.24.0", - "rc-checkbox": "~3.2.0", + "rc-cascader": "~3.26.0", + "rc-checkbox": "~3.3.0", "rc-collapse": "~3.7.3", - "rc-dialog": "~9.4.0", - "rc-drawer": "~7.1.0", + "rc-dialog": "~9.5.2", + "rc-drawer": "~7.2.0", "rc-dropdown": "~4.2.0", - "rc-field-form": "~1.42.1", - "rc-image": "~7.6.0", - "rc-input": "~1.4.5", - "rc-input-number": "~9.0.0", - "rc-mentions": "~2.11.1", - "rc-menu": "~9.13.0", - "rc-motion": "^2.9.0", - "rc-notification": "~5.3.0", + "rc-field-form": "~2.2.1", + "rc-image": "~7.9.0", + "rc-input": "~1.5.1", + "rc-input-number": "~9.1.0", + "rc-mentions": "~2.14.0", + "rc-menu": "~9.14.0", + "rc-motion": "^2.9.1", + "rc-notification": "~5.6.0", "rc-pagination": "~4.0.4", - "rc-picker": "~4.3.0", - "rc-progress": "~3.5.1", - "rc-rate": "~2.12.0", + "rc-picker": "~4.5.0", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.0", "rc-resize-observer": "^1.4.0", "rc-segmented": "~2.3.0", - "rc-select": "~14.13.0", - "rc-slider": "~10.5.0", + "rc-select": "~14.14.0", + "rc-slider": "~10.6.2", "rc-steps": "~6.0.1", "rc-switch": "~4.1.0", - "rc-table": "~7.42.0", - "rc-tabs": "~14.1.1", - "rc-textarea": "~1.6.3", + "rc-table": "~7.45.7", + "rc-tabs": "~15.1.0", + "rc-textarea": "~1.7.0", "rc-tooltip": "~6.2.0", - "rc-tree": "~5.8.5", - "rc-tree-select": "~5.19.0", + "rc-tree": "~5.8.7", + "rc-tree-select": "~5.21.0", "rc-upload": "~4.5.2", - "rc-util": "^5.39.1", + "rc-util": "^5.41.0", "scroll-into-view-if-needed": "^3.1.0", "throttle-debounce": "^5.0.0" }, @@ -4026,6 +4042,44 @@ "react-dom": ">=16.9.0" } }, + "node_modules/antd/node_modules/rc-picker": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.5.0.tgz", + "integrity": "sha512-suqz9bzuhBQlf7u+bZd1bJLPzhXpk12w6AjQ9BTPTiFwexVZgUKViG1KNLyfFvW6tCUZZK0HmCCX7JAyM+JnCg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.38.1" + }, + "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/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -4243,11 +4297,6 @@ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", "dev": true }, - "node_modules/async-validator": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", - "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -4311,12 +4360,12 @@ } }, "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.4.tgz", + "integrity": "sha512-aPTElBrbifBU1krmZxGZOlBkslORe7Ll7+BDnI50Wy4LgOt69luMgevkDfTq1O/ZgprooPCtWpjCwKSZw/iZ4A==", "dev": true, - "dependencies": { - "dequal": "^2.0.3" + "engines": { + "node": ">= 0.4" } }, "node_modules/balanced-match": { @@ -4366,9 +4415,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", "dev": true, "funding": [ { @@ -4385,10 +4434,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "update-browserslist-db": "^1.0.16" }, "bin": { "browserslist": "cli.js" @@ -4465,9 +4514,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001629", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001629.tgz", - "integrity": "sha512-c3dl911slnQhmxUIT4HhYzT7wnBK/XYpGnYLOj4nJBaRiw52Ibe7YxlDaAeRECvA786zCuExhxIUJ2K7nHMrBw==", + "version": "1.0.30001640", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", + "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", "dev": true, "funding": [ { @@ -5325,9 +5374,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.792", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.792.tgz", - "integrity": "sha512-rkg5/N3L+Y844JyfgPUyuKK0Hk0efo3JNxUDKvz3HgP6EmN4rNGhr2D8boLsfTV/hGo7ZGAL8djw+jlg99zQyA==", + "version": "1.4.816", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", + "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", "dev": true }, "node_modules/emoji-regex": { @@ -7091,9 +7140,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "dependencies": { "agent-base": "^7.0.2", @@ -7357,11 +7406,14 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8664,9 +8716,9 @@ } }, "node_modules/ml-matrix": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.11.0.tgz", - "integrity": "sha512-7jr9NmFRkaUxbKslfRu3aZOjJd2LkSitCGv+QH9PF0eJoEG7jIpjXra1Vw8/kgao8+kHCSsJONG6vfWmXQ+/Eg==", + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.11.1.tgz", + "integrity": "sha512-Fvp1xF1O07tt6Ux9NcnEQTei5UlqbRpvvaFZGs7l3Ij+nOaEDcmbSVtxwNa8V4IfdyFI1NLNUteroMJ1S6vcEg==", "dependencies": { "is-any-array": "^2.0.1", "ml-array-rescale": "^1.3.7" @@ -8801,9 +8853,12 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9148,13 +9203,13 @@ } }, "node_modules/pkg-types": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", - "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.3.tgz", + "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", "dev": true, "dependencies": { "confbox": "^0.1.7", - "mlly": "^1.7.0", + "mlly": "^1.7.1", "pathe": "^1.1.2" } }, @@ -9381,14 +9436,14 @@ } }, "node_modules/rc-cascader": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.24.1.tgz", - "integrity": "sha512-RgKuYgEGPx+6wCgguYFHjMsDZdCyydZd58YJRCfYQ8FObqLnZW0x/vUcEyPjhWIj1EhjV958IcR+NFPDbbj9kg==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.26.0.tgz", + "integrity": "sha512-L1dml383TPSJD1I11YwxuVbmqaJY64psZqFp1ETlgl3LEOwDu76Cyl11fw5dmjJhMlUWwM5dECQfqJgfebhUjg==", "dependencies": { "@babel/runtime": "^7.12.5", "array-tree-filter": "^2.1.0", "classnames": "^2.3.1", - "rc-select": "~14.13.0", + "rc-select": "~14.14.0", "rc-tree": "~5.8.1", "rc-util": "^5.37.0" }, @@ -9398,9 +9453,9 @@ } }, "node_modules/rc-checkbox": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.2.0.tgz", - "integrity": "sha512-8inzw4y9dAhZmv/Ydl59Qdy5tdp9CKg4oPVcRigi+ga/yKPZS5m5SyyQPtYSgbcqHRYOdUhiPSeKfktc76du1A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.3.0.tgz", + "integrity": "sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.3.2", @@ -9427,9 +9482,9 @@ } }, "node_modules/rc-dialog": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.4.0.tgz", - "integrity": "sha512-AScCexaLACvf8KZRqCPz12BJ8olszXOS4lKlkMyzDQHS1m0zj1KZMYgmMCh39ee0Dcv8kyrj8mTqxuLyhH+QuQ==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.5.2.tgz", + "integrity": "sha512-qVUjc8JukG+j/pNaHVSRa2GO2/KbV2thm7yO4hepQ902eGdYK913sGkwg/fh9yhKYV1ql3BKIN2xnud3rEXAPw==", "dependencies": { "@babel/runtime": "^7.10.1", "@rc-component/portal": "^1.0.0-8", @@ -9443,9 +9498,9 @@ } }, "node_modules/rc-drawer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.1.0.tgz", - "integrity": "sha512-nBE1rF5iZvpavoyqhSSz2mk/yANltA7g3aF0U45xkx381n3we/RKs9cJfNKp9mSWCedOKWt9FLEwZDaAaOGn2w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.2.0.tgz", + "integrity": "sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==", "dependencies": { "@babel/runtime": "^7.23.9", "@rc-component/portal": "^1.1.1", @@ -9474,12 +9529,12 @@ } }, "node_modules/rc-field-form": { - "version": "1.42.1", - "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.42.1.tgz", - "integrity": "sha512-SqiEmWNP+I61Lt80+ofPvT+3l8Ij6vb35IS+x14gheVnCJN0SRnOwEgsqCEB5FslT7xqjUqDnU845hRZ1jzlAA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.2.1.tgz", + "integrity": "sha512-uoNqDoR7A4tn4QTSqoWPAzrR7ZwOK5I+vuZ/qdcHtbKx+ZjEsTg7QXm2wk/jalDiSksAQmATxL0T5LJkRREdIA==", "dependencies": { "@babel/runtime": "^7.18.0", - "async-validator": "^4.1.0", + "@rc-component/async-validator": "^5.0.3", "rc-util": "^5.32.2" }, "engines": { @@ -9491,14 +9546,14 @@ } }, "node_modules/rc-image": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.6.0.tgz", - "integrity": "sha512-tL3Rvd1sS+frZQ01i+tkeUPaOeFz2iG9/scAt/Cfs0hyCRVA/w0Pu1J/JxIX8blalvmHE0bZQRYdOmRAzWu4Hg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.9.0.tgz", + "integrity": "sha512-l4zqO5E0quuLMCtdKfBgj4Suv8tIS011F5k1zBBlK25iMjjiNHxA0VeTzGFtUZERSA45gvpXDg8/P6qNLjR25g==", "dependencies": { "@babel/runtime": "^7.11.2", "@rc-component/portal": "^1.0.2", "classnames": "^2.2.6", - "rc-dialog": "~9.4.0", + "rc-dialog": "~9.5.2", "rc-motion": "^2.6.2", "rc-util": "^5.34.1" }, @@ -9508,9 +9563,9 @@ } }, "node_modules/rc-input": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.4.5.tgz", - "integrity": "sha512-AjzykhwnwYTRSwwgCu70CGKBIAv6bP2nqnFptnNTprph/TF1BAs0Qxl91mie/BR6n827WIJB6ZjaRf9iiMwAfw==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.5.1.tgz", + "integrity": "sha512-+nOzQJDeIfIpNP/SgY45LXSKbuMlp4Yap2y8c+ZpU7XbLmNzUd6+d5/S75sA/52jsVE6S/AkhkkDEAOjIu7i6g==", "dependencies": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", @@ -9522,15 +9577,15 @@ } }, "node_modules/rc-input-number": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.0.0.tgz", - "integrity": "sha512-RfcDBDdWFFetouWFXBA+WPEC8LzBXyngr9b+yTLVIygfFu7HiLRGn/s/v9wwno94X7KFvnb28FNynMGj9XJlDQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.1.0.tgz", + "integrity": "sha512-NqJ6i25Xn/AgYfVxynlevIhX3FuKlMwIFpucGG1h98SlK32wQwDK0zhN9VY32McOmuaqzftduNYWWooWz8pXQA==", "dependencies": { "@babel/runtime": "^7.10.1", "@rc-component/mini-decimal": "^1.0.1", "classnames": "^2.2.5", - "rc-input": "~1.4.0", - "rc-util": "^5.28.0" + "rc-input": "~1.5.0", + "rc-util": "^5.40.1" }, "peerDependencies": { "react": ">=16.9.0", @@ -9538,16 +9593,16 @@ } }, "node_modules/rc-mentions": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.11.1.tgz", - "integrity": "sha512-upb4AK1SRFql7qGnbLEvJqLMugVVIyjmwBJW9L0eLoN9po4JmJZaBzmKA4089fNtsU8k6l/tdZiVafyooeKnLw==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.14.0.tgz", + "integrity": "sha512-qKR59FMuF8PK4ZqsbWX3UuA5P1M/snzyqV6Yt3y1DCFbCEdqUGIBgQp6vEfLCO6Z0RoRFlzXtCeSlBTcDDpg1A==", "dependencies": { "@babel/runtime": "^7.22.5", "@rc-component/trigger": "^2.0.0", "classnames": "^2.2.6", - "rc-input": "~1.4.0", - "rc-menu": "~9.13.0", - "rc-textarea": "~1.6.1", + "rc-input": "~1.5.0", + "rc-menu": "~9.14.0", + "rc-textarea": "~1.7.0", "rc-util": "^5.34.1" }, "peerDependencies": { @@ -9556,9 +9611,9 @@ } }, "node_modules/rc-menu": { - "version": "9.13.0", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.13.0.tgz", - "integrity": "sha512-1l8ooCB3HcYJKCltC/s7OxRKRjgymdl9htrCeGZcXNaMct0RxZRK6OPV3lPhVksIvAGMgzPd54ClpZ5J4b8cZA==", + "version": "9.14.1", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.14.1.tgz", + "integrity": "sha512-5wlRb3M8S4yGlWhSoEYJ7ZVRElyScdcpUHxgiLxkeig1tEdyKrnED3B2fhpN0Rrpdp9jyhnmZR/Lwq2fH5VvDQ==", "dependencies": { "@babel/runtime": "^7.10.1", "@rc-component/trigger": "^2.0.0", @@ -9573,13 +9628,13 @@ } }, "node_modules/rc-motion": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.1.tgz", - "integrity": "sha512-QD4bUqByjVQs7PhUT1d4bNxvtTcK9ETwtg7psbDfo6TmYalH/1hhjj4r2hbhW7g5OOEqYHhfwfj4noIvuOVRtQ==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.2.tgz", + "integrity": "sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw==", "dependencies": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", - "rc-util": "^5.39.3" + "rc-util": "^5.43.0" }, "peerDependencies": { "react": ">=16.9.0", @@ -9587,9 +9642,9 @@ } }, "node_modules/rc-notification": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.3.0.tgz", - "integrity": "sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.0.tgz", + "integrity": "sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", @@ -9672,9 +9727,9 @@ } }, "node_modules/rc-progress": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.5.1.tgz", - "integrity": "sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.6", @@ -9686,9 +9741,9 @@ } }, "node_modules/rc-rate": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.12.0.tgz", - "integrity": "sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.0.tgz", + "integrity": "sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", @@ -9733,9 +9788,9 @@ } }, "node_modules/rc-select": { - "version": "14.13.4", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.13.4.tgz", - "integrity": "sha512-nXFsS53RxCP6ePeKhOj3gvgdNpTqdQnNKhipGrV/z+pB3Md5heGfV72YX5Wfb1A7Ca1QkbVTPFLJh+A8WYFOSA==", + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.14.0.tgz", + "integrity": "sha512-Uo2wulrjoPPRLCPd7zlK4ZFVJxlTN//yp1xWP/U+TUOQCyXrT+Duvq/Si5OzVcmQyWAUSbsplc2OwNNhvbOeKQ==", "dependencies": { "@babel/runtime": "^7.10.1", "@rc-component/trigger": "^2.1.1", @@ -9754,13 +9809,13 @@ } }, "node_modules/rc-slider": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.5.0.tgz", - "integrity": "sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==", + "version": "10.6.2", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.6.2.tgz", + "integrity": "sha512-FjkoFjyvUQWcBo1F3RgSglky3ar0+qHLM41PlFVYB4Bj3RD8E/Mv7kqMouLFBU+3aFglMzzctAIWRwajEuueSw==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", - "rc-util": "^5.27.0" + "rc-util": "^5.36.0" }, "engines": { "node": ">=8.x" @@ -9802,16 +9857,16 @@ } }, "node_modules/rc-table": { - "version": "7.42.0", - "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.42.0.tgz", - "integrity": "sha512-GwHV9Zs3HvWxBkoXatO/IeKoElzy3Ojf3dcyw1Rj3cyQVb+ZHtexslKdyzsrKRPJ0mUa62BoX+ZAg3zgTEql8w==", + "version": "7.45.7", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.45.7.tgz", + "integrity": "sha512-wi9LetBL1t1csxyGkMB2p3mCiMt+NDexMlPbXHvQFmBBAsMxrgNSAPwUci2zDLUq9m8QdWc1Nh8suvrpy9mXrg==", "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.37.0", - "rc-virtual-list": "^3.11.1" + "rc-virtual-list": "^3.14.2" }, "engines": { "node": ">=8.x" @@ -9822,14 +9877,14 @@ } }, "node_modules/rc-tabs": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-14.1.1.tgz", - "integrity": "sha512-5nOr9PVpJy2SWHTLgv1+kESDOb0tFzl0cYU9r9d8LfL0Wg9i/n1B558rmkxdQHgBwMqxmwoyPSAbQROxMQe8nw==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.1.1.tgz", + "integrity": "sha512-Tc7bJvpEdkWIVCUL7yQrMNBJY3j44NcyWS48jF/UKMXuUlzaXK+Z/pEL5LjGcTadtPvVmNqA40yv7hmr+tCOAw==", "dependencies": { "@babel/runtime": "^7.11.2", "classnames": "2.x", "rc-dropdown": "~4.2.0", - "rc-menu": "~9.13.0", + "rc-menu": "~9.14.0", "rc-motion": "^2.6.2", "rc-resize-observer": "^1.0.0", "rc-util": "^5.34.1" @@ -9843,13 +9898,13 @@ } }, "node_modules/rc-textarea": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.6.3.tgz", - "integrity": "sha512-8k7+8Y2GJ/cQLiClFMg8kUXOOdvcFQrnGeSchOvI2ZMIVvX5a3zQpLxoODL0HTrvU63fPkRmMuqaEcOF9dQemA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.7.0.tgz", + "integrity": "sha512-UxizYJkWkmxP3zofXgc487QiGyDmhhheDLLjIWbFtDmiru1ls30KpO8odDaPyqNUIy9ugj5djxTEuezIn6t3Jg==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.1", - "rc-input": "~1.4.0", + "rc-input": "~1.5.0", "rc-resize-observer": "^1.0.0", "rc-util": "^5.27.0" }, @@ -9873,9 +9928,9 @@ } }, "node_modules/rc-tree": { - "version": "5.8.7", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.7.tgz", - "integrity": "sha512-cpsIQZ4nNYwpj6cqPRt52e/69URuNdgQF9wZ10InmEf8W3+i0A41OVmZWwHuX9gegQSqj+DPmaDkZFKQZ+ZV1w==", + "version": "5.8.8", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.8.tgz", + "integrity": "sha512-S+mCMWo91m5AJqjz3PdzKilGgbFm7fFJRFiTDOcoRbD7UfMOPnerXwMworiga0O2XIo383UoWuEfeHs1WOltag==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", @@ -9892,13 +9947,13 @@ } }, "node_modules/rc-tree-select": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.19.0.tgz", - "integrity": "sha512-f4l5EsmSGF3ggj76YTzKNPY9SnXfFaer7ZccTSGb3urUf54L+cCqyT+UsPr+S5TAr8mZSxJ7g3CgkCe+cVQ6sw==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.21.0.tgz", + "integrity": "sha512-w+9qEu6zh0G3wt9N/hzWNSnqYH1i9mH1Nqxo0caxLRRFXF5yZWYmpCDoDTMdQM1Y4z3Q5yj08qyrPH/d4AtumA==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", - "rc-select": "~14.13.0", + "rc-select": "~14.14.0", "rc-tree": "~5.8.1", "rc-util": "^5.16.1" }, @@ -9922,9 +9977,9 @@ } }, "node_modules/rc-util": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.41.0.tgz", - "integrity": "sha512-xtlCim9RpmVv0Ar2Nnc3WfJCxjQkTf3xHPWoFdjp1fSs2NirQwqiQrfqdU9HUe0kdfb168M/T8Dq0IaX50xeKg==", + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.43.0.tgz", + "integrity": "sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw==", "dependencies": { "@babel/runtime": "^7.18.3", "react-is": "^18.2.0" @@ -9935,9 +9990,9 @@ } }, "node_modules/rc-virtual-list": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.14.2.tgz", - "integrity": "sha512-rA+W5xryhklJAcmswNyuKB3ZGeB855io+yOFQK5u/RXhjdshGblfKpNkQr4/9fBhZns0+uiL/0/s6IP2krtSmg==", + "version": "3.14.5", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.14.5.tgz", + "integrity": "sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg==", "dependencies": { "@babel/runtime": "^7.20.0", "classnames": "^2.2.6", @@ -11097,9 +11152,9 @@ "dev": true }, "node_modules/throttle-debounce": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz", - "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", "engines": { "node": ">=12.22" } @@ -11437,9 +11492,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -12257,9 +12312,9 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "engines": { "node": ">=10.0.0" diff --git a/frontend/package.json b/frontend/package.json index e9399c9ac..9635575ca 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,7 +14,7 @@ "@rive-app/react-canvas": "4.8.3", "@tanstack/react-query": "5.29.2", "@tippyjs/react": "4.2.6", - "antd": "5.15.4", + "antd": "5.18.1", "axios": "1.6.8", "dayjs": "1.11.11", "fast-fuzzy": "1.12.0", diff --git a/frontend/src/components/Collapsible/Collapsible.tsx b/frontend/src/components/Collapsible/Collapsible.tsx index d8c08fc1a..2389f8558 100644 --- a/frontend/src/components/Collapsible/Collapsible.tsx +++ b/frontend/src/components/Collapsible/Collapsible.tsx @@ -21,7 +21,7 @@ const Collapsible = ({ initiallyCollapsed = false, title, children, headerStyle return (
- + {typeof title === 'string' ? ( {title} @@ -30,7 +30,7 @@ const Collapsible = ({ initiallyCollapsed = false, title, children, headerStyle title )} </S.CollapsibleHeader> - <S.CollapsibleContent collapsed={isCollapsed}>{children}</S.CollapsibleContent> + <S.CollapsibleContent $collapsed={isCollapsed}>{children}</S.CollapsibleContent> </div> ); }; diff --git a/frontend/src/components/Collapsible/styles.ts b/frontend/src/components/Collapsible/styles.ts index 01664cbff..ffa198ad9 100644 --- a/frontend/src/components/Collapsible/styles.ts +++ b/frontend/src/components/Collapsible/styles.ts @@ -18,25 +18,25 @@ const CollapsibleHeader = styled.div` } `; -const CollapseButton = styled(RightOutlined)<{ collapsed: boolean }>` +const CollapseButton = styled(RightOutlined)<{ $collapsed: boolean }>` margin-bottom: 10px; padding: 10px; transition: 200ms; transform: rotate(90deg); color: ${({ theme }) => theme.collapseBtnIcon.color}; - ${({ collapsed }) => - collapsed && + ${({ $collapsed }) => + $collapsed && css` transform: rotate(0); `} `; -const CollapsibleContent = styled.div<{ collapsed: boolean }>( - ({ collapsed }) => css` +const CollapsibleContent = styled.div<{ $collapsed: boolean }>( + ({ $collapsed }) => css` width: 100%; margin: 10px; - max-height: ${collapsed ? 0 : 4000}px; + max-height: ${$collapsed ? 0 : 4000}px; transition: max-height 0.4s ease-in-out; overflow: hidden; ` diff --git a/frontend/src/components/CourseButton/CourseButton.tsx b/frontend/src/components/CourseButton/CourseButton.tsx index db523905c..afe71d9b6 100644 --- a/frontend/src/components/CourseButton/CourseButton.tsx +++ b/frontend/src/components/CourseButton/CourseButton.tsx @@ -21,7 +21,7 @@ const CourseButton = ({ courseCode, title, planned }: Props) => { }; return ( - <S.CourseButton planned={planned} type="primary" onClick={handleCourseLink}> + <S.CourseButton $planned={planned} type="primary" onClick={handleCourseLink}> {courseCode}: {title} </S.CourseButton> ); diff --git a/frontend/src/components/CourseButton/styles.ts b/frontend/src/components/CourseButton/styles.ts index bc4d222bf..d408addba 100644 --- a/frontend/src/components/CourseButton/styles.ts +++ b/frontend/src/components/CourseButton/styles.ts @@ -1,7 +1,7 @@ import { Button } from 'antd'; import styled, { css } from 'styled-components'; -const CourseButton = styled(Button)<{ planned?: boolean }>` +const CourseButton = styled(Button)<{ $planned?: boolean }>` border-radius: 10px; border: 1px solid ${({ theme }) => theme.purpleLight}; display: flex; @@ -11,8 +11,8 @@ const CourseButton = styled(Button)<{ planned?: boolean }>` height: 80px; white-space: normal; - ${({ planned, theme }) => - !planned && + ${({ $planned, theme }) => + !$planned && css` background-color: ${theme.courseButton.backgroundColor}; color: #9254de !important; diff --git a/frontend/src/components/CourseButtonCard/CourseButtonCard.tsx b/frontend/src/components/CourseButtonCard/CourseButtonCard.tsx index 70f82b91a..58de75b19 100644 --- a/frontend/src/components/CourseButtonCard/CourseButtonCard.tsx +++ b/frontend/src/components/CourseButtonCard/CourseButtonCard.tsx @@ -22,7 +22,7 @@ const CourseButtonCard = ({ courseCode, title, planned }: Props) => { }; return ( - <S.CourseButtonCard planned={planned} type="primary" onClick={handleCourseLink}> + <S.CourseButtonCard $planned={planned} type="primary" onClick={handleCourseLink}> <S.CourseWrapper> <S.CourseCode>{courseCode}</S.CourseCode> <S.CourseTitle>{title}</S.CourseTitle> diff --git a/frontend/src/components/CourseButtonCard/styles.ts b/frontend/src/components/CourseButtonCard/styles.ts index f25e505f6..9d9eccb3d 100644 --- a/frontend/src/components/CourseButtonCard/styles.ts +++ b/frontend/src/components/CourseButtonCard/styles.ts @@ -27,7 +27,7 @@ const CourseTitle = styled.p` -webkit-box-orient: vertical; `; -const CourseButtonCard = styled(Button)<{ planned?: boolean }>` +const CourseButtonCard = styled(Button)<{ $planned?: boolean }>` border-radius: 10px; border-width: 1px; width: 270px; @@ -39,8 +39,8 @@ const CourseButtonCard = styled(Button)<{ planned?: boolean }>` justify-content: space-between; gap: 5px; - ${({ planned }) => - !planned && + ${({ $planned }) => + !$planned && css` background: #fafafa; border-color: #dcdcdc; diff --git a/frontend/src/components/CourseDescriptionPanel/CourseAttributes/CourseAttributes.tsx b/frontend/src/components/CourseDescriptionPanel/CourseAttributes/CourseAttributes.tsx index fd1335f5c..d778ea91f 100644 --- a/frontend/src/components/CourseDescriptionPanel/CourseAttributes/CourseAttributes.tsx +++ b/frontend/src/components/CourseDescriptionPanel/CourseAttributes/CourseAttributes.tsx @@ -165,7 +165,7 @@ const CourseAttributes = ({ course, courseCapacity }: CourseAttributesProps) => <p>Overall</p> </div> <S.Link - href={`https://unilectives.csesoc.app/course/${code}/`} + href={`https://unilectives.devsoc.app/course/${code}/`} target="_blank" rel="noreferrer" > diff --git a/frontend/src/components/CourseDescriptionPanel/CourseDescriptionPanel.tsx b/frontend/src/components/CourseDescriptionPanel/CourseDescriptionPanel.tsx index 5e62e4695..c3a0fbd65 100644 --- a/frontend/src/components/CourseDescriptionPanel/CourseDescriptionPanel.tsx +++ b/frontend/src/components/CourseDescriptionPanel/CourseDescriptionPanel.tsx @@ -79,7 +79,7 @@ const CourseDescriptionPanel = ({ }); const loadingWrapper = ( - <S.Wrapper sidebar={sidebar}> + <S.Wrapper $sidebar={sidebar}> {!sidebar ? <LoadingCourseDescriptionPanelSidebar /> : <LoadingCourseDescriptionPanel />} </S.Wrapper> ); @@ -94,9 +94,9 @@ const CourseDescriptionPanel = ({ // course wasn't fetchable (fatal; should do proper error handling instead of indefinitely loading) if (!course) return loadingWrapper; return ( - <S.Wrapper sidebar={sidebar} className={className}> + <S.Wrapper $sidebar={sidebar} className={className}> <S.MainWrapper> - <S.TitleWrapper sidebar={sidebar}> + <S.TitleWrapper $sidebar={sidebar}> <div> <Title level={2} className="text"> {courseCode} - {course.title} diff --git a/frontend/src/components/CourseDescriptionPanel/styles.ts b/frontend/src/components/CourseDescriptionPanel/styles.ts index f969013dc..5b070e51d 100644 --- a/frontend/src/components/CourseDescriptionPanel/styles.ts +++ b/frontend/src/components/CourseDescriptionPanel/styles.ts @@ -3,12 +3,12 @@ import styled, { css } from 'styled-components'; const { Text } = Typography; -const Wrapper = styled.div<{ sidebar?: boolean }>` +const Wrapper = styled.div<{ $sidebar?: boolean }>` width: 100%; padding: 10px; - ${({ sidebar }) => - sidebar && + ${({ $sidebar }) => + $sidebar && css` padding: 30px; display: flex; @@ -26,9 +26,9 @@ const SidebarWrapper = styled.div` flex-basis: 25%; `; -const TitleWrapper = styled.div<{ sidebar?: boolean }>` - ${({ sidebar }) => - sidebar && +const TitleWrapper = styled.div<{ $sidebar?: boolean }>` + ${({ $sidebar }) => + $sidebar && css` display: flex; flex-direction: row; diff --git a/frontend/src/components/DraggableTab/DraggableTab.tsx b/frontend/src/components/DraggableTab/DraggableTab.tsx index a4af71644..b7afac619 100644 --- a/frontend/src/components/DraggableTab/DraggableTab.tsx +++ b/frontend/src/components/DraggableTab/DraggableTab.tsx @@ -66,7 +66,7 @@ const DraggableTab = ({ tabName, index }: Props) => { {(draggableProvided) => ( <S.DraggableTabWrapper role="tab" - active={index === active} + $active={index === active} onClick={() => dispatch(setActiveTab(index))} ref={(r) => { ref.current = r; diff --git a/frontend/src/components/DraggableTab/styles.ts b/frontend/src/components/DraggableTab/styles.ts index 7a9c36953..9ecea09fb 100644 --- a/frontend/src/components/DraggableTab/styles.ts +++ b/frontend/src/components/DraggableTab/styles.ts @@ -1,6 +1,6 @@ import styled, { css } from 'styled-components'; -const DraggableTabWrapper = styled.div<{ active: boolean }>` +const DraggableTabWrapper = styled.div<{ $active: boolean }>` height: 100%; border-radius: 10px 0 0 0; background-color: ${({ theme }) => theme.draggableTab.backgroundColor}; @@ -13,8 +13,8 @@ const DraggableTabWrapper = styled.div<{ active: boolean }>` border: 1px solid ${({ theme }) => theme.draggableTab.borderColor}; color: ${({ theme }) => theme.text}; - ${({ active, theme }) => - active && + ${({ $active, theme }) => + $active && css` background-color: ${theme.body}; border-bottom-color: ${theme.body}; diff --git a/frontend/src/components/Header/DrawerContent.tsx b/frontend/src/components/Header/DrawerContent.tsx index ac5275799..5704cf89c 100644 --- a/frontend/src/components/Header/DrawerContent.tsx +++ b/frontend/src/components/Header/DrawerContent.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { useNavigate } from 'react-router-dom'; import { BugOutlined } from '@ant-design/icons'; import { Menu } from 'antd'; -import type { ItemType } from 'antd/lib/menu/hooks/useItems'; +import { ItemType } from 'antd/es/menu/interface'; import { FEEDBACK_LINK, inDev } from 'config/constants'; import routes from './routes'; diff --git a/frontend/src/components/PrerequisiteTree/PrerequisiteTree.tsx b/frontend/src/components/PrerequisiteTree/PrerequisiteTree.tsx index e4046bf28..f29bd073d 100644 --- a/frontend/src/components/PrerequisiteTree/PrerequisiteTree.tsx +++ b/frontend/src/components/PrerequisiteTree/PrerequisiteTree.tsx @@ -123,7 +123,7 @@ const PrerequisiteTree = ({ courseCode, onCourseClick }: Props) => { }, [courseCode, loading, onCourseClick]); return ( - <S.PrereqTreeContainer ref={ref} height={calcHeight(coursesRequires, courseUnlocks)}> + <S.PrereqTreeContainer ref={ref} $height={calcHeight(coursesRequires, courseUnlocks)}> {loading && <Spinner text="Loading tree..." />} {!loading && graphRef.current && !graphRef.current.getEdges().length && ( <p> No prerequisite visualisation is needed for this course </p> diff --git a/frontend/src/components/PrerequisiteTree/styles.ts b/frontend/src/components/PrerequisiteTree/styles.ts index b37de9032..6ba5d72ca 100644 --- a/frontend/src/components/PrerequisiteTree/styles.ts +++ b/frontend/src/components/PrerequisiteTree/styles.ts @@ -1,8 +1,8 @@ import styled from 'styled-components'; -const PrereqTreeContainer = styled.div<{ height: number }>` +const PrereqTreeContainer = styled.div<{ $height: number }>` margin-top: 20px; - height: ${({ height }) => height}em; + height: ${({ $height }) => $height}em; display: flex; justify-content: center; align-items: center; diff --git a/frontend/src/components/SidebarDrawer/SidebarDrawer.tsx b/frontend/src/components/SidebarDrawer/SidebarDrawer.tsx index 3f0b760db..0a7ae22a6 100644 --- a/frontend/src/components/SidebarDrawer/SidebarDrawer.tsx +++ b/frontend/src/components/SidebarDrawer/SidebarDrawer.tsx @@ -9,7 +9,7 @@ const SidebarDrawer = ({ children }: Props) => { const [open, setOpen] = useState<boolean | undefined>(undefined); return ( - <S.Wrapper open={open} className="sidebar-drawer"> + <S.Wrapper $open={open} className="sidebar-drawer"> <S.ButtonWrapper role="button" title="See Info..." onClick={() => setOpen(!open)}> <S.SVGWrapper xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 48"> <S.SVGLine y1="2" y2="46" x1="2" x2="2" /> diff --git a/frontend/src/components/SidebarDrawer/styles.ts b/frontend/src/components/SidebarDrawer/styles.ts index 99db22ca4..7a88e5177 100644 --- a/frontend/src/components/SidebarDrawer/styles.ts +++ b/frontend/src/components/SidebarDrawer/styles.ts @@ -17,7 +17,7 @@ const getAnimationState = (openState: boolean | undefined) => { `; }; -const Wrapper = styled.div<{ open?: boolean }>` +const Wrapper = styled.div<{ $open?: boolean }>` position: absolute; height: 85%; width: 30rem; @@ -30,7 +30,7 @@ const Wrapper = styled.div<{ open?: boolean }>` animation-duration: 0.7s; animation-fill-mode: forwards; - ${({ open }) => getAnimationState(open)} + ${({ $open }) => getAnimationState($open)} @keyframes animation_opening { from { diff --git a/frontend/src/pages/CourseSelector/CourseMenuTitle/CourseMenuTitle.tsx b/frontend/src/pages/CourseSelector/CourseMenuTitle/CourseMenuTitle.tsx index 7ef57bc10..7f0711514 100644 --- a/frontend/src/pages/CourseSelector/CourseMenuTitle/CourseMenuTitle.tsx +++ b/frontend/src/pages/CourseSelector/CourseMenuTitle/CourseMenuTitle.tsx @@ -24,12 +24,12 @@ const CourseMenuTitle = ({ courseCode, runMutate, selected, accurate, unlocked, <S.Wrapper> {isSmall ? ( <Tooltip title={title} placement="topLeft"> - <S.CourseTitleWrapper selected={selected} locked={locked}> + <S.CourseTitleWrapper $selected={selected} $locked={locked}> {courseCode} </S.CourseTitleWrapper> </Tooltip> ) : ( - <S.CourseTitleWrapper selected={selected} locked={locked}> + <S.CourseTitleWrapper $selected={selected} $locked={locked}> {courseCode}: {title} </S.CourseTitleWrapper> )} diff --git a/frontend/src/pages/CourseSelector/CourseMenuTitle/styles.ts b/frontend/src/pages/CourseSelector/CourseMenuTitle/styles.ts index f25b420a0..5ed6d25d9 100644 --- a/frontend/src/pages/CourseSelector/CourseMenuTitle/styles.ts +++ b/frontend/src/pages/CourseSelector/CourseMenuTitle/styles.ts @@ -13,15 +13,15 @@ const IconsWrapper = styled.div` gap: 5px; `; -const CourseTitleWrapper = styled.div<{ selected?: boolean; locked?: boolean }>` +const CourseTitleWrapper = styled.div<{ $selected?: boolean; $locked?: boolean }>` text-overflow: ellipsis; overflow: hidden; white-space: nowrap; color: ${({ theme }) => theme.text}; - font-weight: ${({ selected, locked }) => { - if (locked) return '100'; - if (selected) return '700'; + font-weight: ${({ $selected, $locked }) => { + if ($locked) return '100'; + if ($selected) return '700'; return 'normal'; }}; `; diff --git a/frontend/src/pages/CourseSelector/CourseSelector.tsx b/frontend/src/pages/CourseSelector/CourseSelector.tsx index c56a9d769..26a874c1e 100644 --- a/frontend/src/pages/CourseSelector/CourseSelector.tsx +++ b/frontend/src/pages/CourseSelector/CourseSelector.tsx @@ -84,13 +84,13 @@ const CourseSelector = () => { <S.ContainerWrapper> <CourseBanner courses={coursesQuery.data} /> <CourseTabs /> - <S.ContentWrapper offset={menuOffset}> + <S.ContentWrapper $offset={menuOffset}> <CourseMenu planner={plannerQuery.data} courses={coursesQuery.data} degree={degreeQuery.data} /> - <S.ContentResizer ref={divRef} offset={menuOffset} /> + <S.ContentResizer ref={divRef} $offset={menuOffset} /> {courseCode ? ( <div style={{ overflow: 'auto' }}> <CourseDescriptionPanel diff --git a/frontend/src/pages/CourseSelector/styles.ts b/frontend/src/pages/CourseSelector/styles.ts index 5dbbe9c51..50c98c5e4 100644 --- a/frontend/src/pages/CourseSelector/styles.ts +++ b/frontend/src/pages/CourseSelector/styles.ts @@ -6,19 +6,19 @@ const ContainerWrapper = styled.div` height: calc(100vh - var(--navbar-height)); `; -const ContentWrapper = styled.div<{ offset?: number }>` +const ContentWrapper = styled.div<{ $offset?: number }>` display: grid; - grid-template-columns: ${({ offset }) => (offset ? `${offset}px` : '20vw')} auto; + grid-template-columns: ${({ $offset }) => ($offset ? `${$offset}px` : '20vw')} auto; height: var(--cs-bottom-cont-height); `; -const ContentResizer = styled.div<{ offset?: number }>` +const ContentResizer = styled.div<{ $offset?: number }>` cursor: col-resize; height: 100%; width: 6px; background-color: transparent; position: fixed; - left: ${({ offset }) => (offset ? `${offset}px` : '20vw')}; + left: ${({ $offset }) => ($offset ? `${$offset}px` : '20vw')}; margin-left: -3px; z-index: 100; `; diff --git a/frontend/src/pages/GraphicalSelector/GraphicalSelector.tsx b/frontend/src/pages/GraphicalSelector/GraphicalSelector.tsx index 8b44d9657..f4273710e 100644 --- a/frontend/src/pages/GraphicalSelector/GraphicalSelector.tsx +++ b/frontend/src/pages/GraphicalSelector/GraphicalSelector.tsx @@ -48,8 +48,8 @@ const GraphicalSelector = () => { return ( <PageTemplate> - <S.Wrapper fullscreen={fullscreen}> - <S.GraphWrapper fullscreen={fullscreen}> + <S.Wrapper $fullscreen={fullscreen}> + <S.GraphWrapper $fullscreen={fullscreen}> <CourseGraph onNodeClick={(node) => { setCourseCode(node.getID()); diff --git a/frontend/src/pages/GraphicalSelector/styles.ts b/frontend/src/pages/GraphicalSelector/styles.ts index 53dfea627..3662b01be 100644 --- a/frontend/src/pages/GraphicalSelector/styles.ts +++ b/frontend/src/pages/GraphicalSelector/styles.ts @@ -1,27 +1,27 @@ import styled, { css } from 'styled-components'; import CourseDescriptionPanelComp from 'components/CourseDescriptionPanel'; -const Wrapper = styled.div<{ fullscreen: boolean }>` +const Wrapper = styled.div<{ $fullscreen: boolean }>` height: calc(100vh - var(--navbar-height)); display: flex; gap: 20px; - ${({ fullscreen }) => - !fullscreen && + ${({ $fullscreen }) => + !$fullscreen && css` padding: 25px; `} `; -const GraphWrapper = styled.div<{ fullscreen: boolean }>` +const GraphWrapper = styled.div<{ $fullscreen: boolean }>` height: 100%; width: 100%; overflow: hidden; flex: 5; position: relative; - ${({ fullscreen }) => - !fullscreen && + ${({ $fullscreen }) => + !$fullscreen && css` border-radius: 20px; border: ${({ theme }) => theme.graph.borderColor} solid 1px; diff --git a/frontend/src/pages/LandingPage/KeyFeaturesSection/KeyFeaturesSection.tsx b/frontend/src/pages/LandingPage/KeyFeaturesSection/KeyFeaturesSection.tsx index aaf22d420..2eb40e59d 100644 --- a/frontend/src/pages/LandingPage/KeyFeaturesSection/KeyFeaturesSection.tsx +++ b/frontend/src/pages/LandingPage/KeyFeaturesSection/KeyFeaturesSection.tsx @@ -16,7 +16,7 @@ const KeyFeaturesSection = () => { <S.IconContainer color="#eae5ed"> <img src={dragIconSrc} alt="" width={50} height={50} /> </S.IconContainer> - <S.FeatureSubtitle startColor="#cabade" endColor="#9e88ba"> + <S.FeatureSubtitle $startColor="#cabade" $endColor="#9e88ba"> Drag N' Drop </S.FeatureSubtitle> <S.Divider color="#c3b3c9" /> @@ -28,7 +28,7 @@ const KeyFeaturesSection = () => { <S.IconContainer color="#eddafc"> <img src={flagIconSrc} alt="" width={50} height={50} /> </S.IconContainer> - <S.FeatureSubtitle startColor="#9b5dea" endColor="#dbe2fc"> + <S.FeatureSubtitle $startColor="#9b5dea" $endColor="#dbe2fc"> Track progress </S.FeatureSubtitle> <S.Divider color="#f2ccff" /> @@ -41,7 +41,7 @@ const KeyFeaturesSection = () => { <S.IconContainer color="#d4ffdc"> <img src={padlockIconSrc} alt="" width={50} height={50} /> </S.IconContainer> - <S.FeatureSubtitle startColor="#9fecae" endColor="#93d392"> + <S.FeatureSubtitle $startColor="#9fecae" $endColor="#93d392"> Prereq Validation </S.FeatureSubtitle> <S.Divider color="#a3ebb1" /> diff --git a/frontend/src/pages/LandingPage/KeyFeaturesSection/styles.ts b/frontend/src/pages/LandingPage/KeyFeaturesSection/styles.ts index d97335a6a..43d87f723 100644 --- a/frontend/src/pages/LandingPage/KeyFeaturesSection/styles.ts +++ b/frontend/src/pages/LandingPage/KeyFeaturesSection/styles.ts @@ -50,12 +50,12 @@ const IconContainer = styled.div` background: ${({ color }) => color}; `; -const FeatureSubtitle = styled.h3<{ startColor: string; endColor: string }>` +const FeatureSubtitle = styled.h3<{ $startColor: string; $endColor: string }>` font-size: 20px; background: -webkit-linear-gradient( 45deg, - ${({ startColor }) => startColor}, - ${({ endColor }) => endColor} + ${({ $startColor }) => $startColor}, + ${({ $endColor }) => $endColor} ); -webkit-background-clip: text; -webkit-text-fill-color: transparent; diff --git a/frontend/src/pages/Page404/Page404.tsx b/frontend/src/pages/Page404/Page404.tsx index 4accc9557..ce6553533 100644 --- a/frontend/src/pages/Page404/Page404.tsx +++ b/frontend/src/pages/Page404/Page404.tsx @@ -15,34 +15,34 @@ const Page404 = () => { <S.LogoBox> <img alt="circles-logo" src={circlesLogo} width="200" height="200" /> </S.LogoBox> - <S.LogoBox alt> + <S.LogoBox $alt> <img alt="circles-logo" src={circlesLogo} width="200" height="200" /> </S.LogoBox> <S.LogoBox> <img alt="circles-logo" src={circlesLogo} width="200" height="200" /> </S.LogoBox> - <S.LogoBox alt> + <S.LogoBox $alt> <img alt="circles-logo" src={circlesLogo} width="200" height="200" /> </S.LogoBox> - <S.LogoBox alt> + <S.LogoBox $alt> <img alt="circles-logo" src={circlesLogo} width="200" height="200" /> </S.LogoBox> <S.LogoBox> <img alt="circles-logo" src={circlesLogo} width="200" height="200" /> </S.LogoBox> - <S.LogoBox alt> + <S.LogoBox $alt> <img alt="circles-logo" src={circlesLogo} width="200" height="200" /> </S.LogoBox> <S.LogoBox> <img alt="circles-logo" src={circlesLogo} width="200" height="200" /> </S.LogoBox> - <S.LogoBox alt> + <S.LogoBox $alt> <img alt="circles-logo" src={circlesLogo} width="200" height="200" /> </S.LogoBox> <S.LogoBox> <img alt="circles-logo" src={circlesLogo} width="200" height="200" /> </S.LogoBox> - <S.LogoBox alt> + <S.LogoBox $alt> <img alt="circles-logo" src={circlesLogo} width="200" height="200" /> </S.LogoBox> <S.LogoBox> diff --git a/frontend/src/pages/Page404/syles.ts b/frontend/src/pages/Page404/syles.ts index cdc9a38a9..1b5e46c6f 100644 --- a/frontend/src/pages/Page404/syles.ts +++ b/frontend/src/pages/Page404/syles.ts @@ -21,14 +21,14 @@ const GridCircleWrapper = styled.div` width: 100%; `; -const LogoBox = styled.div<{ alt?: boolean }>` +const LogoBox = styled.div<{ $alt?: boolean }>` margin: 10px; margin-right: 50px; position: relative; display: flex; align-items: center; justify-content: center; - transform: ${({ alt }) => (alt ? 'transform: rotate(10deg)' : 'rotate(350deg)')}; + transform: ${({ $alt }) => ($alt ? 'transform: rotate(10deg)' : 'rotate(350deg)')}; `; const TextWrapper = styled.div` diff --git a/frontend/src/pages/TermPlanner/DraggableCourse/DraggableCourse.tsx b/frontend/src/pages/TermPlanner/DraggableCourse/DraggableCourse.tsx index 30d20d686..d94819c56 100644 --- a/frontend/src/pages/TermPlanner/DraggableCourse/DraggableCourse.tsx +++ b/frontend/src/pages/TermPlanner/DraggableCourse/DraggableCourse.tsx @@ -118,11 +118,11 @@ const DraggableCourse = ({ planner, validate, courses, courseInfo, index, time } > {(provided) => ( <S.CourseWrapper - summerEnabled={isSummerEnabled} - isSmall={isSmall} - dragDisabled={isTermLocked} - warningsDisabled={isTermLocked && !isUnlocked} - isWarning={!ignoreWarnings && (!isUnlocked || !hasOffering)} + $summerEnabled={isSummerEnabled} + $isSmall={isSmall} + $dragDisabled={isTermLocked} + $warningsDisabled={isTermLocked && !isUnlocked} + $isWarning={!ignoreWarnings && (!isUnlocked || !hasOffering)} {...provided.draggableProps} {...provided.dragHandleProps} ref={provided.innerRef} diff --git a/frontend/src/pages/TermPlanner/DraggableCourse/styles.ts b/frontend/src/pages/TermPlanner/DraggableCourse/styles.ts index 177559ca9..2ecdc789f 100644 --- a/frontend/src/pages/TermPlanner/DraggableCourse/styles.ts +++ b/frontend/src/pages/TermPlanner/DraggableCourse/styles.ts @@ -2,11 +2,11 @@ import styled, { css } from 'styled-components'; import { shake } from '../common/styles'; type CourseWrapperProps = { - isSmall: boolean; - summerEnabled: boolean; - warningsDisabled: boolean; - isWarning: boolean; - dragDisabled: boolean; + $isSmall: boolean; + $summerEnabled: boolean; + $warningsDisabled: boolean; + $isWarning: boolean; + $dragDisabled: boolean; }; const CourseWrapper = styled.li<CourseWrapperProps>` @@ -17,7 +17,7 @@ const CourseWrapper = styled.li<CourseWrapperProps>` padding: 0.9em; padding-right: 1.1em; padding-left: 1.1em; - border-radius: ${({ isSmall }) => (isSmall ? '0.2em' : '1em')}; + border-radius: ${({ $isSmall }) => ($isSmall ? '0.2em' : '1em')}; max-width: 20em; min-width: 12em; margin-top: 1em; @@ -28,35 +28,35 @@ const CourseWrapper = styled.li<CourseWrapperProps>` line-height: 1.5715; background-color: ${({ theme }) => theme.draggableCourse.backgroundColor}; - ${({ isSmall }) => - isSmall && + ${({ $isSmall }) => + $isSmall && css` border-radius: 1.25em; padding: 0.8em; width: 10em; `} - ${({ summerEnabled, isSmall }) => - summerEnabled && - isSmall && + ${({ $summerEnabled, $isSmall }) => + $summerEnabled && + $isSmall && css` width: 8em; `} - ${({ warningsDisabled }) => - warningsDisabled && + ${({ $warningsDisabled }) => + $warningsDisabled && css` background-color: #fff3e0; `} - ${({ isWarning }) => - isWarning && + ${({ $isWarning }) => + $isWarning && css` background-color: ${({ theme }) => theme.draggableCourse.warningBackgroundColor}; `} - ${({ dragDisabled }) => - dragDisabled && + ${({ $dragDisabled }) => + $dragDisabled && css` background-color: ${({ theme }) => theme.draggableCourse.dragDisabledBackgroundColor}; diff --git a/frontend/src/pages/TermPlanner/TermBox/TermBox.tsx b/frontend/src/pages/TermPlanner/TermBox/TermBox.tsx index b5d008f8f..1ee52dd7f 100644 --- a/frontend/src/pages/TermPlanner/TermBox/TermBox.tsx +++ b/frontend/src/pages/TermPlanner/TermBox/TermBox.tsx @@ -104,7 +104,7 @@ const TermBox = ({ {(provided) => ( <Badge count={ - <S.TermCheckboxWrapper checked={isLocked}> + <S.TermCheckboxWrapper $checked={isLocked}> {!isLocked ? ( <UnlockFilled style={iconStyle} onClick={handleToggleLockTerm} /> ) : ( @@ -116,9 +116,9 @@ const TermBox = ({ styles={{ root: { width: 'unset' } }} > <S.TermBoxWrapper - droppable={isOffered && !!draggingCourseCode} - summerEnabled={isSummerEnabled} - isSmall={isSmall} + $droppable={isOffered && !!draggingCourseCode} + $summerEnabled={isSummerEnabled} + $isSmall={isSmall} ref={provided.innerRef} {...provided.droppableProps} > diff --git a/frontend/src/pages/TermPlanner/TermBox/styles.ts b/frontend/src/pages/TermPlanner/TermBox/styles.ts index 19328491e..9609b70e9 100644 --- a/frontend/src/pages/TermPlanner/TermBox/styles.ts +++ b/frontend/src/pages/TermPlanner/TermBox/styles.ts @@ -2,9 +2,9 @@ import styled, { css } from 'styled-components'; import { Droppable } from '../common/styles'; type TermBoxWrapperProps = { - droppable: boolean; - summerEnabled: boolean; - isSmall: boolean; + $droppable: boolean; + $summerEnabled: boolean; + $isSmall: boolean; }; const TermBoxWrapper = styled.ul<TermBoxWrapperProps>` @@ -19,10 +19,10 @@ const TermBoxWrapper = styled.ul<TermBoxWrapperProps>` border: 0.5px solid ${({ theme }) => theme.termBoxWrapper.borderColor}; position: relative; - ${({ droppable }) => droppable && Droppable} + ${({ $droppable }) => $droppable && Droppable} - ${({ summerEnabled }) => - summerEnabled && + ${({ $summerEnabled }) => + $summerEnabled && css` margin: 0.5em; min-height: 18em; @@ -32,25 +32,25 @@ const TermBoxWrapper = styled.ul<TermBoxWrapperProps>` border-radius: 1em; `} - ${({ isSmall }) => - isSmall && + ${({ $isSmall }) => + $isSmall && css` min-width: 12em; min-height: 14em; border-radius: 1em; `} - ${({ isSmall, summerEnabled }) => - isSmall && - summerEnabled && + ${({ $isSmall, $summerEnabled }) => + $isSmall && + $summerEnabled && css` min-height: 13.5em; min-width: 13em; `} `; -const TermCheckboxWrapper = styled.div<{ checked: boolean }>` - background-color: ${({ checked }) => (checked ? '#9685f3' : '#D9D9D9')}; +const TermCheckboxWrapper = styled.div<{ $checked: boolean }>` + background-color: ${({ $checked }) => ($checked ? '#9685f3' : '#D9D9D9')}; border-radius: 50%; width: 20px; height: 20px; @@ -62,7 +62,7 @@ const TermCheckboxWrapper = styled.div<{ checked: boolean }>` &:hover { cursor: pointer; color: #bfbbbb; - background-color: ${({ checked }) => (checked ? '#b4a9f4' : '#bfbbbb')}; + background-color: ${({ $checked }) => ($checked ? '#b4a9f4' : '#bfbbbb')}; } `; diff --git a/frontend/src/pages/TermPlanner/TermPlanner.tsx b/frontend/src/pages/TermPlanner/TermPlanner.tsx index 0b5993950..af4d693b7 100644 --- a/frontend/src/pages/TermPlanner/TermPlanner.tsx +++ b/frontend/src/pages/TermPlanner/TermPlanner.tsx @@ -277,7 +277,7 @@ const TermPlanner = () => { ) : ( <DragDropContext onDragEnd={handleOnDragEnd} onDragStart={handleOnDragStart}> <S.PlannerContainer> - <S.PlannerGridWrapper summerEnabled={planner.isSummerEnabled} ref={plannerPicRef}> + <S.PlannerGridWrapper $summerEnabled={planner.isSummerEnabled} ref={plannerPicRef}> <GridItem /> {/* Empty grid item for the year */} {planner.isSummerEnabled && <GridItem>Summer</GridItem>} <GridItem>Term 1</GridItem> @@ -300,7 +300,7 @@ const TermPlanner = () => { <React.Fragment key={iYear}> <S.YearGridBox> <S.YearWrapper> - <S.YearText currYear={LIVE_YEAR === iYear}>{iYear}</S.YearText> + <S.YearText $currYear={LIVE_YEAR === iYear}>{iYear}</S.YearText> </S.YearWrapper> <Badge style={{ diff --git a/frontend/src/pages/TermPlanner/UnplannedColumn/UnplannedColumn.tsx b/frontend/src/pages/TermPlanner/UnplannedColumn/UnplannedColumn.tsx index 2ac548340..ccb6d96ff 100644 --- a/frontend/src/pages/TermPlanner/UnplannedColumn/UnplannedColumn.tsx +++ b/frontend/src/pages/TermPlanner/UnplannedColumn/UnplannedColumn.tsx @@ -43,7 +43,7 @@ const UnplannedColumn = ({ dragging, courseInfos, validateInfos }: Props) => { const isSmall = useMediaQuery('(max-width: 1400px)'); return ( - <S.UnplannedContainer summerEnabled={isSummerEnabled}> + <S.UnplannedContainer $summerEnabled={isSummerEnabled}> <S.UnplannedTitle>Unplanned</S.UnplannedTitle> <Suspense fallback={<Spinner text="Loading unplanned column..." />}> <Droppable droppableId="unplanned"> @@ -51,9 +51,9 @@ const UnplannedColumn = ({ dragging, courseInfos, validateInfos }: Props) => { <S.UnplannedBox ref={provided.innerRef} {...provided.droppableProps} - summerEnabled={isSummerEnabled} - droppable={dragging} - isSmall={isSmall} + $summerEnabled={isSummerEnabled} + $droppable={dragging} + $isSmall={isSmall} > {unplanned.map((courseCode, courseIndex) => ( <DraggableCourse diff --git a/frontend/src/pages/TermPlanner/UnplannedColumn/styles.ts b/frontend/src/pages/TermPlanner/UnplannedColumn/styles.ts index 4ea26b46c..6a2dc2702 100644 --- a/frontend/src/pages/TermPlanner/UnplannedColumn/styles.ts +++ b/frontend/src/pages/TermPlanner/UnplannedColumn/styles.ts @@ -1,10 +1,10 @@ import styled, { css } from 'styled-components'; import { Droppable, GridItem } from '../common/styles'; -const UnplannedContainer = styled.div<{ summerEnabled: boolean }>` +const UnplannedContainer = styled.div<{ $summerEnabled: boolean }>` grid-row-start: 1; grid-row-end: span 10; - grid-column-start: ${({ summerEnabled }) => (summerEnabled ? 6 : 5)}; + grid-column-start: ${({ $summerEnabled }) => ($summerEnabled ? 6 : 5)}; display: flex; flex-direction: column; place-self: stretch; @@ -23,9 +23,9 @@ const UnplannedTitle = styled(GridItem)` `; type UnplannedBoxProps = { - droppable: boolean; - summerEnabled: boolean; - isSmall: boolean; + $droppable: boolean; + $summerEnabled: boolean; + $isSmall: boolean; }; const UnplannedBox = styled.ul<UnplannedBoxProps>` @@ -61,10 +61,10 @@ const UnplannedBox = styled.ul<UnplannedBoxProps>` background-color: #fff; } - ${({ droppable }) => droppable && Droppable} + ${({ $droppable }) => $droppable && Droppable} - ${({ summerEnabled }) => - summerEnabled && + ${({ $summerEnabled }) => + $summerEnabled && css` // sum of heights from the top of the page for where the unplanned header should be // for summer term @@ -82,16 +82,16 @@ const UnplannedBox = styled.ul<UnplannedBoxProps>` padding-top: 0.5em; `} - ${({ isSmall }) => - isSmall && + ${({ $isSmall }) => + $isSmall && css` border-radius: 1em; min-width: 12em; `} - ${({ isSmall, summerEnabled }) => - isSmall && - summerEnabled && + ${({ $isSmall, $summerEnabled }) => + $isSmall && + $summerEnabled && css` border-radius: 1em; min-width: 13em; diff --git a/frontend/src/pages/TermPlanner/styles.ts b/frontend/src/pages/TermPlanner/styles.ts index 1d742ee39..6a6657a8f 100644 --- a/frontend/src/pages/TermPlanner/styles.ts +++ b/frontend/src/pages/TermPlanner/styles.ts @@ -13,10 +13,10 @@ const PlannerContainer = styled.div` margin: var(--tp-planner-container-margin); `; -const PlannerGridWrapper = styled.div<{ summerEnabled?: boolean }>` +const PlannerGridWrapper = styled.div<{ $summerEnabled?: boolean }>` display: grid; - grid-template-columns: ${({ summerEnabled }) => - summerEnabled ? '7em 1fr 1fr 1fr 1fr 1fr' : '7em 1fr 1fr 1fr 1fr'}; + grid-template-columns: ${({ $summerEnabled }) => + $summerEnabled ? '7em 1fr 1fr 1fr 1fr 1fr' : '7em 1fr 1fr 1fr 1fr'}; align-items: center; `; @@ -26,9 +26,9 @@ const YearGridBox = styled(GridItem)` align-items: center; `; -const YearText = styled.div<{ currYear: boolean }>` - ${({ currYear }) => - currYear && +const YearText = styled.div<{ $currYear: boolean }>` + ${({ $currYear }) => + $currYear && css` color: #9254de; font-weight: bold;