# iframe

External component for embedding third-party content via iframe `src` (in `data`) and/or raw `html`. Prefer this only when a first-class component (HubSpot form, CareDriver form, etc.) does not fit.

> Note: Production content may also use the **IFrame** *component* type with URL in `heading`. This external type is the externalComponent registration path.

## Fields & Schema

| Field | Type | Required | Notes |
|-------|------|----------|-------|
| `cmsLabel` | Symbol | Yes | Used as iframe title fallback for accessibility. |
| `externalComponentType` | Symbol | Yes | Must be `iframe`. |
| `data.src` | string (in Object `data`) | Recommended | Absolute HTTPS URL for the iframe source. |
| `html` | Text | No | Additional HTML rendered below/near the iframe (use sparingly). |
| `heading` / copy fields | Symbol / RichText | No | Optional surrounding section content. |
| `anchor` | Symbol | No | In-page jump target. |
| `backgroundColour` / `textColour` | Symbol | No | Section colours. |

### `data` object

```json
{ "src": "https://example.com/embed" }
```

## Usage

```
cms-edit add "iframe" --content-type externalComponent --target content
```

Only embed trusted HTTPS origins. Provide a clear `cmsLabel` (becomes accessible title). Avoid full-page third-party apps when a native component exists. Tall embeds increase section height — test mobile scroll.
