fix(web): don't repeat the provider in external component names (#2815) master
Component pages built their display name as `${service.name} ${component.name}`, so a Zoom component already named "Zoom AI" rendered as "Zoom Zoom AI" in the page title, og/twitter title, H1, lead answer, report-issue block, JSON-LD (WebPage name, FAQ question) and the OG image. Add getComponentFullName() and use it in all of those places. The provider is only skipped when the component name already starts with it followed by a space (or equals it), case-insensitively. "Zoom" + "Web SDK" still yields "Zoom Web SDK", and "Zoomify" / "Rooms for Zoom" keep the prefix. Names are trimmed and inner whitespace collapsed; an empty name falls back to the other. URLs, canonicals, slugs and source data are unchanged. Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>