Icons
A semantic icon layer. Components import SendIcon, not ArrowUp, so the underlying set can change without touching them.
How it works
lib/icons.ts re-exports Lucide icons under names that describe their job. Components only import from there. To use a different set, change the re-exports in one file.
lib/icons.ts
export {
ArrowUp as SendIcon,
Square as StopIcon,
Brain as ReasoningIcon,
Wrench as ToolIcon,
// …
} from "lucide-react"Sizing
Icons inherit currentColor. Inside buttons they size automatically with the button. Elsewhere use size-3.5 in dense UI and size-4 by default.
Set
AddIconAgentIconApprovalIconAttachIconChartIconCheckIconChevronDownIconChevronLeftIconChevronRightIconChevronUpIconClockIconCloseIconCodeIconCopyIconDownloadIconEndCallIconErrorIconFastIconFileIconFolderIconInfoIconInterruptIconMentionIconMenuIconMicIconMicOffIconMinusIconMoonIconMoreIconPauseIconPendingIconPlayIconPreviewIconReasoningIconRegenerateIconResearchIconScopeIconScrollDownIconSearchIconSelectIconSendIconSettingsIconSourceIconSparkleIconSpinnerIconStarIconStopIconSuccessIconSunIconTableIconTerminalIconThumbsDownIconThumbsUpIconTokensIconToolIconTrendDownIconTrendUpIconVisionIconVoiceIconWarningIconWebSearchIcon