Problem
Shared chrome icons are stored three ways: SVG files in desktop assets, copies of the same SVGs in packages/editor/src/ui/assets that nothing imports, and inline SVG strings in ShiftIcon rendered with dangerouslySetInnerHTML. Changing an icon means editing several copies, inline strings bypass the SVG pipeline desktop uses, and unused icons cannot be tree-shaken from the SDK bundle.
Expected outcome
Each shared icon has one source and renders as a React component that inherits currentColor, used by both desktop and the SDK.
Acceptance criteria
Problem
Shared chrome icons are stored three ways: SVG files in desktop assets, copies of the same SVGs in
packages/editor/src/ui/assetsthat nothing imports, and inline SVG strings inShiftIconrendered withdangerouslySetInnerHTML. Changing an icon means editing several copies, inline strings bypass the SVG pipeline desktop uses, and unused icons cannot be tree-shaken from the SDK bundle.Expected outcome
Each shared icon has one source and renders as a React component that inherits
currentColor, used by both desktop and the SDK.Acceptance criteria
dangerouslySetInnerHTMLand follow the surrounding text color in every theme.