Problem. eis-chat maintains an app-owned Icon (stroke-SVG, typed name, ICON_PATHS map, token-driven stroke, size prop). Every surface depends on it; it's a generic primitive re-copied per app.
Proposal. Ship Icon + a curated Feather-style path set in @netscript/fresh-ui. Note: IconProps should omit 'fill' | 'stroke' from the extended JSX.SVGAttributes to avoid a type conflict (learned the hard way).
Surfaced during the eis-chat v2 refactor (netscript alpha.18). Promotion candidate → @netscript/fresh-ui / web-layer.
Problem. eis-chat maintains an app-owned
Icon(stroke-SVG, typedname,ICON_PATHSmap, token-driven stroke, size prop). Every surface depends on it; it's a generic primitive re-copied per app.Proposal. Ship
Icon+ a curated Feather-style path set in@netscript/fresh-ui. Note:IconPropsshould omit'fill' | 'stroke'from the extendedJSX.SVGAttributesto avoid a type conflict (learned the hard way).Surfaced during the eis-chat v2 refactor (netscript alpha.18). Promotion candidate →
@netscript/fresh-ui/ web-layer.