Summary
Social links accept icon configuration that the UI cannot render consistently. Unknown string values fall back to a generic link, while valid { svg } values are dropped before rendering.
Reproduction
socials: [
{ icon: 'slack', url: 'https://app.slack.com' },
{ icon: 'logos:google-gmail', url: 'https://mail.google.com' },
{ icon: { svg: '<svg>...</svg>' }, url: 'https://drive.google.com' },
]
The named slug renders, the Iconify ID becomes a generic link, and the inline SVG entry disappears.
Expected behavior
Every icon shape accepted by config validation must have a defined rendering path. Named social slugs should keep their curated pixel icons; valid Iconify IDs and inline SVG values should use the shared icon renderer.
Acceptance criteria
- Named social slugs retain their current mapped icons.
- Valid Iconify IDs render directly.
{ svg } icons either render safely or are removed from the public schema in a deliberate breaking change.
- Invalid values produce validation feedback instead of silent fallback or omission.
- Tests cover all accepted icon forms and inaccessible/malformed values.
Summary
Social links accept icon configuration that the UI cannot render consistently. Unknown string values fall back to a generic link, while valid
{ svg }values are dropped before rendering.Reproduction
The named slug renders, the Iconify ID becomes a generic link, and the inline SVG entry disappears.
Expected behavior
Every icon shape accepted by config validation must have a defined rendering path. Named social slugs should keep their curated pixel icons; valid Iconify IDs and inline SVG values should use the shared icon renderer.
Acceptance criteria
{ svg }icons either render safely or are removed from the public schema in a deliberate breaking change.