Renders an interactive Figma embed with a header bar (icon, title, "Open in Figma" link) and an iframe powered by `EmbedIframe`. Supports all Figma surface types (design files, prototypes, FigJam boards, Slides decks) and exposes a present/browse toggle exclusively for Slides URLs. ## Key Components | Export | Type | Description | |---|---|---| | `FigmaEmbed` | Component | Primary embed component; accepts any Figma URL and renders the full embed UI | | `FigmaEmbedProps` | Interface | Props: `url`, `title?`, `height?`, `loading?` | | `SlidesViewToggle` | Internal Component | Present/Browse toggle rendered only for Figma Slides URLs | | `SlidesView` | Type | `'present' \| 'browse'` — controls Figma Slides viewer mode | ## Usage Example ```typescript // Inline article embed (lazy-loaded, constrained height) // Data-room viewer (eager-loaded, full-viewport height) // Figma Slides deck — shows present/browse toggle ``` ## Behavior Notes - **URL resolution** delegates to `toFigmaEmbedUrl` / `toFigmaOriginalUrl` / `isFigmaSlidesUrl` from `embed-url-converters` — accepts raw file, proto, board, deck, or already-resolved embed URLs. - **"Open in Figma"** button is suppressed if the resolved URL fails `https://figma.com` hostname validation. - **Slides toggle**: `present` (default) uses Figma's native full-bleed deck viewer with keyboard navigation; `browse` switches to the thumbnail-rail viewer. - **Empty state**: renders a centered Figma icon + message when `url` is absent or unresolvable. ## Refactor note Shell now delegates to `EmbedViewerFrame` (`.embed-viewer-frame.md`); rendered output pinned byte-parity by `__tests__/embed-viewer-frame.test.tsx`.