From ba0c89fc6c7382b4ee1e4f522087227a9a7c8266 Mon Sep 17 00:00:00 2001 From: gorkem-bwl Date: Thu, 15 Jan 2026 23:37:50 -0500 Subject: [PATCH 1/4] feat: migrate icons from custom SVGs and MUI to Lucide React Replace custom SVG icons and @mui/icons-material with lucide-react for consistent, lightweight icon management across the application. ## Changes - Add lucide-react package and remove @mui/icons-material - Create theme-aware Icon wrapper component with color resolution - Create iconMap.js for legacy icon name mappings - Migrate 64 components to use new Icon component - Remove 74 unused SVG files from assets/icons/ ## Benefits - Consistent icon API across the application - Smaller bundle size with tree-shakeable imports - Theme-aware color support via MUI theme paths - Simpler maintenance with single icon library --- client/package-lock.json | 62 +++------ client/package.json | 2 +- .../src/Components/v1/ActionsMenu/index.jsx | 4 +- client/src/Components/v1/Alert/index.jsx | 17 +-- client/src/Components/v1/ArrowLeft/index.jsx | 19 +-- client/src/Components/v1/ArrowRight/index.jsx | 13 +- client/src/Components/v1/Check/Check.jsx | 7 +- client/src/Components/v1/Common/AppBar.jsx | 7 +- .../src/Components/v1/FilterHeader/index.jsx | 7 +- client/src/Components/v1/Icon/iconMap.js | 120 ++++++++++++++++++ client/src/Components/v1/Icon/index.jsx | 63 +++++++++ .../Components/v1/Inputs/Checkbox/index.jsx | 7 +- .../v1/Inputs/ImageUpload/index.jsx | 7 +- .../src/Components/v1/Inputs/Radio/index.jsx | 4 +- .../src/Components/v1/Inputs/Search/index.jsx | 23 ++-- .../src/Components/v1/Inputs/Select/index.jsx | 4 +- .../v1/Inputs/TextInput/Adornments/index.jsx | 11 +- .../Components/v1/MonitorActions/index.jsx | 4 +- .../v1/MonitorDetailsControlHeader/index.jsx | 11 +- .../v1/NotificationConfig/index.jsx | 8 +- .../src/Components/v1/ProgressBars/index.jsx | 11 +- .../Components/v1/ProgressStepper/index.jsx | 7 +- .../Components/v1/ShareComponent/index.jsx | 4 +- .../v1/Sidebar/components/authFooter.jsx | 31 +++-- .../v1/Sidebar/components/navItem.jsx | 3 +- client/src/Components/v1/Sidebar/index.jsx | 54 +++----- client/src/Components/v1/StarPrompt/index.jsx | 4 +- .../v1/Table/TablePagination/index.jsx | 4 +- client/src/Components/v1/Toast/index.jsx | 15 +-- .../components/AddMemberMenu/index.jsx | 4 +- .../Account/components/RoleTable/index.jsx | 8 +- client/src/Pages/Auth/CheckEmail.jsx | 4 +- client/src/Pages/Auth/ForgotPassword.jsx | 4 +- .../src/Pages/Auth/NewPasswordConfirmed.jsx | 4 +- client/src/Pages/Auth/SetNewPassword.jsx | 4 +- .../Components/StatusBoxes/StatusBox.jsx | 13 +- .../Components/ActiveIncidentsPanel/index.jsx | 7 +- .../LatestIncidentsPanel/IncidentItem.jsx | 7 +- .../Components/StatisticsPanel/index.jsx | 13 +- .../Components/MonitorActionButtons.jsx | 7 +- .../Monitors/Components/Filters/index.jsx | 4 +- .../Components/MonitorsTable/index.jsx | 7 +- .../Components/MonitorsTableMenu/index.jsx | 4 +- .../Components/MonitorList/index.jsx | 4 +- .../Maintenance/CreateMaintenance/index.jsx | 4 +- .../MaintenanceTable/ActionsMenu/index.jsx | 4 +- .../Maintenance/MaintenanceTable/index.jsx | 11 +- .../Notifications/components/ActionMenu.jsx | 4 +- client/src/Pages/PageSpeed/Create/index.jsx | 7 +- .../Components/Charts/AreaChartLegend.jsx | 4 +- .../Components/Charts/PieChartLegend.jsx | 4 +- .../Components/PageSpeedAreaChart/index.jsx | 4 +- .../Components/PerformanceReport/index.jsx | 4 +- .../Monitors/Components/Card/index.jsx | 5 +- .../Create/Components/MonitorList/index.jsx | 7 +- .../Create/Components/Progress/index.jsx | 4 +- .../Components/ControlsHeader/index.jsx | 7 +- .../Status/Components/StatusBar/index.jsx | 11 +- .../Components/StatusPagesTable/index.jsx | 4 +- client/src/Pages/Uptime/Create/index.jsx | 7 +- .../Details/Components/ChartBoxes/index.jsx | 10 +- .../Components/Charts/ResponseTimeChart.jsx | 4 +- .../Components/ResponseTable/index.jsx | 4 +- .../Monitors/Components/Filter/index.jsx | 4 +- .../Components/StatusBoxes/statusBox.jsx | 9 +- .../Components/UptimeDataTable/index.jsx | 11 +- client/src/assets/icons/alert-icon.svg | 3 - .../assets/icons/average-response-icon.svg | 3 - client/src/assets/icons/bwu-icon.svg | 4 - client/src/assets/icons/calendar-check.svg | 3 - client/src/assets/icons/calendar.svg | 3 - client/src/assets/icons/certificate.svg | 3 - client/src/assets/icons/changeLog.svg | 3 - client/src/assets/icons/check-icon.svg | 3 - client/src/assets/icons/check-outlined.svg | 3 - client/src/assets/icons/check.svg | 4 - client/src/assets/icons/checkbox-filled.svg | 4 - client/src/assets/icons/checkbox-green.svg | 5 - client/src/assets/icons/checkbox-outline.svg | 3 - client/src/assets/icons/checkbox-red.svg | 5 - client/src/assets/icons/clock-snooze.svg | 3 - client/src/assets/icons/close-icon.svg | 3 - client/src/assets/icons/cpu-chip.svg | 3 - client/src/assets/icons/dashboard.svg | 3 - client/src/assets/icons/discussions.svg | 7 - .../src/assets/icons/distributed-uptime.svg | 3 - client/src/assets/icons/docs.svg | 3 - client/src/assets/icons/dots-vertical.svg | 5 - client/src/assets/icons/down-arrow.svg | 3 - client/src/assets/icons/edit.svg | 3 - client/src/assets/icons/email.svg | 3 - client/src/assets/icons/folder.svg | 4 - client/src/assets/icons/groups.svg | 1 - client/src/assets/icons/history-icon.svg | 3 - client/src/assets/icons/incidents.svg | 3 - client/src/assets/icons/integrations.svg | 3 - client/src/assets/icons/interval-check.svg | 3 - client/src/assets/icons/jupiter_ag_logo.svg | 52 -------- .../assets/icons/jupiter_logo_banner_dark.svg | 35 ----- .../icons/jupiter_logo_banner_light.svg | 35 ----- client/src/assets/icons/key.svg | 3 - client/src/assets/icons/left-arrow-double.svg | 4 - client/src/assets/icons/left-arrow-long.svg | 4 - client/src/assets/icons/left-arrow.svg | 4 - client/src/assets/icons/lock.svg | 3 - client/src/assets/icons/logout.svg | 3 - client/src/assets/icons/logs.svg | 5 - client/src/assets/icons/mail.svg | 4 - client/src/assets/icons/maintenance.svg | 3 - .../src/assets/icons/monitor-graph-line.svg | 3 - client/src/assets/icons/monitors.svg | 3 - client/src/assets/icons/notifications.svg | 5 - client/src/assets/icons/open-in-new-page.svg | 3 - client/src/assets/icons/page-speed.svg | 3 - client/src/assets/icons/pause-icon.svg | 3 - .../src/assets/icons/performance-report.svg | 3 - client/src/assets/icons/radio-checked.svg | 4 - .../src/assets/icons/response-time-icon.svg | 3 - client/src/assets/icons/resume-icon.svg | 4 - .../src/assets/icons/right-arrow-double.svg | 4 - client/src/assets/icons/right-arrow.svg | 4 - client/src/assets/icons/ruler-icon.svg | 3 - client/src/assets/icons/search.svg | 3 - client/src/assets/icons/selector-vertical.svg | 3 - client/src/assets/icons/settings-bold.svg | 4 - client/src/assets/icons/settings.svg | 4 - client/src/assets/icons/solana_logo.svg | 28 ---- .../src/assets/icons/solana_logo_banner.svg | 24 ---- client/src/assets/icons/spedometer-icon.svg | 3 - client/src/assets/icons/speedometer-icon.svg | 3 - client/src/assets/icons/status-pages.svg | 3 - client/src/assets/icons/support.svg | 3 - client/src/assets/icons/top-right-arrow.svg | 3 - client/src/assets/icons/trash-bin.svg | 3 - client/src/assets/icons/up-arrow.svg | 3 - client/src/assets/icons/uptime-icon.svg | 3 - client/src/assets/icons/user-edit.svg | 3 - client/src/assets/icons/user-two.svg | 3 - client/src/assets/icons/user.svg | 3 - client/src/assets/icons/warning-icon.svg | 3 - 140 files changed, 421 insertions(+), 746 deletions(-) create mode 100644 client/src/Components/v1/Icon/iconMap.js create mode 100644 client/src/Components/v1/Icon/index.jsx delete mode 100644 client/src/assets/icons/alert-icon.svg delete mode 100644 client/src/assets/icons/average-response-icon.svg delete mode 100644 client/src/assets/icons/bwu-icon.svg delete mode 100644 client/src/assets/icons/calendar-check.svg delete mode 100644 client/src/assets/icons/calendar.svg delete mode 100644 client/src/assets/icons/certificate.svg delete mode 100644 client/src/assets/icons/changeLog.svg delete mode 100644 client/src/assets/icons/check-icon.svg delete mode 100644 client/src/assets/icons/check-outlined.svg delete mode 100644 client/src/assets/icons/check.svg delete mode 100644 client/src/assets/icons/checkbox-filled.svg delete mode 100644 client/src/assets/icons/checkbox-green.svg delete mode 100644 client/src/assets/icons/checkbox-outline.svg delete mode 100644 client/src/assets/icons/checkbox-red.svg delete mode 100644 client/src/assets/icons/clock-snooze.svg delete mode 100644 client/src/assets/icons/close-icon.svg delete mode 100644 client/src/assets/icons/cpu-chip.svg delete mode 100644 client/src/assets/icons/dashboard.svg delete mode 100644 client/src/assets/icons/discussions.svg delete mode 100644 client/src/assets/icons/distributed-uptime.svg delete mode 100644 client/src/assets/icons/docs.svg delete mode 100644 client/src/assets/icons/dots-vertical.svg delete mode 100644 client/src/assets/icons/down-arrow.svg delete mode 100644 client/src/assets/icons/edit.svg delete mode 100644 client/src/assets/icons/email.svg delete mode 100644 client/src/assets/icons/folder.svg delete mode 100644 client/src/assets/icons/groups.svg delete mode 100644 client/src/assets/icons/history-icon.svg delete mode 100644 client/src/assets/icons/incidents.svg delete mode 100644 client/src/assets/icons/integrations.svg delete mode 100644 client/src/assets/icons/interval-check.svg delete mode 100644 client/src/assets/icons/jupiter_ag_logo.svg delete mode 100644 client/src/assets/icons/jupiter_logo_banner_dark.svg delete mode 100644 client/src/assets/icons/jupiter_logo_banner_light.svg delete mode 100644 client/src/assets/icons/key.svg delete mode 100644 client/src/assets/icons/left-arrow-double.svg delete mode 100644 client/src/assets/icons/left-arrow-long.svg delete mode 100644 client/src/assets/icons/left-arrow.svg delete mode 100644 client/src/assets/icons/lock.svg delete mode 100644 client/src/assets/icons/logout.svg delete mode 100644 client/src/assets/icons/logs.svg delete mode 100644 client/src/assets/icons/mail.svg delete mode 100644 client/src/assets/icons/maintenance.svg delete mode 100644 client/src/assets/icons/monitor-graph-line.svg delete mode 100644 client/src/assets/icons/monitors.svg delete mode 100644 client/src/assets/icons/notifications.svg delete mode 100644 client/src/assets/icons/open-in-new-page.svg delete mode 100644 client/src/assets/icons/page-speed.svg delete mode 100644 client/src/assets/icons/pause-icon.svg delete mode 100644 client/src/assets/icons/performance-report.svg delete mode 100644 client/src/assets/icons/radio-checked.svg delete mode 100644 client/src/assets/icons/response-time-icon.svg delete mode 100644 client/src/assets/icons/resume-icon.svg delete mode 100644 client/src/assets/icons/right-arrow-double.svg delete mode 100644 client/src/assets/icons/right-arrow.svg delete mode 100644 client/src/assets/icons/ruler-icon.svg delete mode 100644 client/src/assets/icons/search.svg delete mode 100644 client/src/assets/icons/selector-vertical.svg delete mode 100644 client/src/assets/icons/settings-bold.svg delete mode 100644 client/src/assets/icons/settings.svg delete mode 100644 client/src/assets/icons/solana_logo.svg delete mode 100644 client/src/assets/icons/solana_logo_banner.svg delete mode 100644 client/src/assets/icons/spedometer-icon.svg delete mode 100644 client/src/assets/icons/speedometer-icon.svg delete mode 100644 client/src/assets/icons/status-pages.svg delete mode 100644 client/src/assets/icons/support.svg delete mode 100644 client/src/assets/icons/top-right-arrow.svg delete mode 100644 client/src/assets/icons/trash-bin.svg delete mode 100644 client/src/assets/icons/up-arrow.svg delete mode 100644 client/src/assets/icons/uptime-icon.svg delete mode 100644 client/src/assets/icons/user-edit.svg delete mode 100644 client/src/assets/icons/user-two.svg delete mode 100644 client/src/assets/icons/user.svg delete mode 100644 client/src/assets/icons/warning-icon.svg diff --git a/client/package-lock.json b/client/package-lock.json index e917619ae..176b2c5b4 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -12,7 +12,6 @@ "@emotion/styled": "^11.13.0", "@hello-pangea/dnd": "^18.0.0", "@hookform/resolvers": "5.2.2", - "@mui/icons-material": "6.4.11", "@mui/lab": "6.0.0-dev.240424162023-9968b4889d", "@mui/material": "6.4.11", "@mui/x-charts": "^7.5.1", @@ -25,6 +24,7 @@ "human-interval": "2.0.1", "i18next": "25.4.2", "joi": "17.13.3", + "lucide-react": "^0.562.0", "mui-color-input": "^6.0.0", "pretty-ms": "9.3.0", "react": "18.3.1", @@ -97,7 +97,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", "license": "MIT", - "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", @@ -409,7 +408,6 @@ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -453,7 +451,6 @@ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -1189,32 +1186,6 @@ "url": "https://opencollective.com/mui-org" } }, - "node_modules/@mui/icons-material": { - "version": "6.4.11", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.4.11.tgz", - "integrity": "sha512-+jjJGIrB1awNbMv4ZVPPdN/p7O1UKFZ+xqRvNIQ8B1KnlID5hPMPBLM6UUbRF4bu3UDCbu79rn9Nye5LGNzmeA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@mui/material": "^6.4.11", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/lab": { "version": "6.0.0-dev.240424162023-9968b4889d", "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-6.0.0-dev.240424162023-9968b4889d.tgz", @@ -1376,7 +1347,6 @@ "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.4.11.tgz", "integrity": "sha512-k2D3FLJS+/qD0qnd6ZlAjGFvaaxe1Dl10NyvpeDzIebMuYdn8VqYe6XBgGueEAtnzSJM4V03VD9kb5Fi24dnTA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.26.0", "@mui/core-downloads-tracker": "^6.4.11", @@ -1541,6 +1511,7 @@ "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.1.0.tgz", "integrity": "sha512-4Kck4jxhqF6YxNwJdSae1WgDfXVg0lIH6JVJ7gtuFfuKcQCgomJxPvUEOySTFRPz1IZzwz5OAcToskRdffElDA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.27.1", "@mui/utils": "^7.1.0", @@ -1568,6 +1539,7 @@ "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.1.0.tgz", "integrity": "sha512-/OM3S8kSHHmWNOP+NH9xEtpYSG10upXeQ0wLZnfDgmgadTAk5F4MQfFLyZ5FCRJENB3eRzltMmaNl6UtDnPovw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.27.1", "@mui/types": "^7.4.2", @@ -1598,6 +1570,7 @@ "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.1.0.tgz", "integrity": "sha512-m0mJ0c6iRC+f9hMeRe0W7zZX1wme3oUX0+XTVHjPG7DJz6OdQ6K/ggEOq7ZdwilcpdsDUwwMfOmvO71qDkYd2w==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.27.1", "@emotion/cache": "^11.13.5", @@ -1673,6 +1646,7 @@ "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.1.0.tgz", "integrity": "sha512-/OM3S8kSHHmWNOP+NH9xEtpYSG10upXeQ0wLZnfDgmgadTAk5F4MQfFLyZ5FCRJENB3eRzltMmaNl6UtDnPovw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.27.1", "@mui/types": "^7.4.2", @@ -2738,7 +2712,6 @@ "integrity": "sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~7.12.0" } @@ -2760,7 +2733,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.22.tgz", "integrity": "sha512-vUhG0YmQZ7kL/tmKLrD3g5zXbXXreZXB3pmROW8bg3CnLnpjkRVwUlLne7Ufa2r9yJ8+/6B73RzhAek5TBKh2Q==", "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -2824,7 +2796,6 @@ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3131,7 +3102,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001716", "electron-to-chromium": "^1.5.149", @@ -3544,8 +3514,7 @@ "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/debug": { "version": "4.4.1", @@ -3952,7 +3921,6 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -4760,7 +4728,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.27.6" }, @@ -5464,6 +5431,15 @@ "yallist": "^3.0.2" } }, + "node_modules/lucide-react": { + "version": "0.562.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.562.0.tgz", + "integrity": "sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -6028,7 +6004,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -6042,7 +6017,6 @@ "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.63.0.tgz", "integrity": "sha512-ZwueDMvUeucovM2VjkCf7zIHcs1aAlDimZu2Hvel5C5907gUzMpm4xCrQXtRzCvsBqFjonB4m3x4LzCFI1ZKWA==", "license": "MIT", - "peer": true, "engines": { "node": ">=18.0.0" }, @@ -6246,8 +6220,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/redux-persist": { "version": "6.0.0", @@ -6385,7 +6358,6 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.0.tgz", "integrity": "sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg==", "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.7" }, @@ -7021,7 +6993,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7141,7 +7112,6 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz", "integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==", "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", diff --git a/client/package.json b/client/package.json index 376671942..50fafb35c 100644 --- a/client/package.json +++ b/client/package.json @@ -17,7 +17,6 @@ "@emotion/styled": "^11.13.0", "@hello-pangea/dnd": "^18.0.0", "@hookform/resolvers": "5.2.2", - "@mui/icons-material": "6.4.11", "@mui/lab": "6.0.0-dev.240424162023-9968b4889d", "@mui/material": "6.4.11", "@mui/x-charts": "^7.5.1", @@ -30,6 +29,7 @@ "human-interval": "2.0.1", "i18next": "25.4.2", "joi": "17.13.3", + "lucide-react": "^0.562.0", "mui-color-input": "^6.0.0", "pretty-ms": "9.3.0", "react": "18.3.1", diff --git a/client/src/Components/v1/ActionsMenu/index.jsx b/client/src/Components/v1/ActionsMenu/index.jsx index 5cd0dfa5b..8fcc77f5d 100644 --- a/client/src/Components/v1/ActionsMenu/index.jsx +++ b/client/src/Components/v1/ActionsMenu/index.jsx @@ -2,7 +2,7 @@ import IconButton from "@mui/material/IconButton"; import Menu from "@mui/material/Menu"; import MenuItem from "@mui/material/MenuItem"; -import Settings from "../../../assets/icons/settings-bold.svg?react"; +import Icon from "../Icon"; import Dialog from "../Dialog/index.jsx"; // Utils @@ -84,7 +84,7 @@ const ActionsMenu = ({ }, }} > - + , - error: , - warning: , + info: , + error: , + warning: , }; /** @@ -97,11 +94,7 @@ const Alert = ({ variant, title, body, isToast, hasIcon = true, onClick }) => { }, }} > - + )} diff --git a/client/src/Components/v1/ArrowLeft/index.jsx b/client/src/Components/v1/ArrowLeft/index.jsx index a327d6bb7..e18a7f2d5 100644 --- a/client/src/Components/v1/ArrowLeft/index.jsx +++ b/client/src/Components/v1/ArrowLeft/index.jsx @@ -1,27 +1,28 @@ -import LeftArrow from "../../../assets/icons/left-arrow.svg?react"; -import LeftArrowDouble from "../../../assets/icons/left-arrow-double.svg?react"; -import LeftArrowLong from "../../../assets/icons/left-arrow-long.svg?react"; +import Icon from "../Icon"; import PropTypes from "prop-types"; const ArrowLeft = ({ type, color = "#667085", ...props }) => { if (type === "double") { return ( - ); } else if (type === "long") { return ( - ); } else { return ( - ); diff --git a/client/src/Components/v1/ArrowRight/index.jsx b/client/src/Components/v1/ArrowRight/index.jsx index 08a2639b0..3ae64a580 100644 --- a/client/src/Components/v1/ArrowRight/index.jsx +++ b/client/src/Components/v1/ArrowRight/index.jsx @@ -1,19 +1,20 @@ -import RightArrow from "../../../assets/icons/right-arrow.svg?react"; -import RightArrowDouble from "../../../assets/icons/right-arrow-double.svg?react"; +import Icon from "../Icon"; import PropTypes from "prop-types"; const ArrowRight = ({ type, color = "#667085", ...props }) => { if (type === "double") { return ( - ); } else { return ( - ); diff --git a/client/src/Components/v1/Check/Check.jsx b/client/src/Components/v1/Check/Check.jsx index 53971316b..5e25569be 100644 --- a/client/src/Components/v1/Check/Check.jsx +++ b/client/src/Components/v1/Check/Check.jsx @@ -1,7 +1,6 @@ import "./check.css"; import PropTypes from "prop-types"; -import CheckGrey from "../../../assets/icons/check.svg?react"; -import CheckOutlined from "../../../assets/icons/check-outlined.svg?react"; +import Icon from "../Icon"; import { Box, Stack, Typography } from "@mui/material"; import { useTheme } from "@emotion/react"; @@ -35,7 +34,7 @@ const Check = ({ text, noHighlightText, variant = "info", outlined = false }) => alignItems="center" > {outlined ? ( - + ) : ( "& svg > path": { fill: colors[variant] }, }} > - + )} { aria-label="Menu button" onClick={toggleDrawer(true)} > - + { }} > - + diff --git a/client/src/Components/v1/FilterHeader/index.jsx b/client/src/Components/v1/FilterHeader/index.jsx index 36dd04081..de2c7f0e9 100644 --- a/client/src/Components/v1/FilterHeader/index.jsx +++ b/client/src/Components/v1/FilterHeader/index.jsx @@ -1,7 +1,7 @@ import { Checkbox, FormControl, ListItemText, MenuItem, Select } from "@mui/material"; import { useTheme } from "@emotion/react"; import PropTypes from "prop-types"; -import AddCircleOutlineIcon from "@mui/icons-material/AddCircleOutline"; +import Icon from "../Icon"; /** * A reusable filter header component that displays a dropdown menu with selectable options. @@ -29,9 +29,10 @@ const FilterHeader = ({ header, options, value, onChange, multiple = true }) =>