Replace custom UI chrome icons with lucide-react equivalents
- Dominant language
- TypeScript
- Stars
- 481
- Forks
- 108
- Avg merge
- 8d 9h
- Merged PRs (30d)
- 7
Description
## Task
The app ships a large set of hand-drawn SVG icons in `src/components/icons/` for general UI chrome (add, check, chevrons, database, delete, edit, error, filter, grid, info, loader, reset, save, search, send, sync, upload, etc.). `lucide-react` is already a dependency and is used in ~30 places, so these custom icons are redundant with maintained, consistent lucide equivalents.
Replace the general-purpose custom icons with their lucide equivalents, delete unused icons, and keep only the icons that have no lucide match or are domain/brand specific.
### Scope
- Replace general-purpose custom icons with lucide equivalents (import `*Icon` names directly from `lucide-react` at call sites; no wrapper layer).
- Delete unused custom icons.
- Keep: the product logo, `GraphIcon`/`EdgeIcon` domain glyphs, the edge arrow-head/line-style pickers, and the comparison-operator icons (no lucide match).
- Slim the `components/icons` barrel to the kept icons.
### Related
- Distinct from #1774 (the node-styling **icon picker library** for user data) — this is about the app's own UI chrome icons.
- Sibling to the geometry-derived icon dedups (#1985, #1986).
### Notes
Implemented on branch `lucide-icons`.
> [!IMPORTANT]
> Internal only — this issue is maintained by the core team and is not accepting external contributions.
Contributor guide
Research direction
Start by reviewing the custom icons in src/components/icons/ and searching their call sites, then compare them with the existing lucide-react usages. Done means general UI icons use direct lucide-react imports, unused icons are removed, and the icons barrel retains only the listed logo, domain, picker, and comparison icons. The issue notes this work is already implemented on the lucide-icons branch and is internal-only.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 15/100