Tab Group

Pill tabs that switch which ONE of several sibling atoms is visible, e.g. "how will you give me the source — a URL, a file, or pasted text" — rather than showing every input area stacked and unlabelled at once. panels maps a tab's value to ANOTHER layout element's id and toggles that element's own wrapper directly; safe regardless of layout order, since the whole surface's markup exists before any atom's script runs. Same direct-engine pattern as lens_grid/domain_picker.

Surfaces
google-apps-script-webmcp-apps
Degraded on
SurfaceNote
emailRenders as plain text tab labels; every sibling panel stays visible (no show/hide, no click affordance).
Fields
FieldType
targetstring. A ValueStore primitive's id, set to the selected tab's value on click.optional
optionsarray of {value, label, selected?} (required).required
panelsobject mapping a tab value to another layout element's id (required) — that element's wrapper is shown when its tab is selected, hidden otherwise.required
Example payload
{
  "type": "tab_group",
  "options": [
    {
      "label": "Option A",
      "value": "a"
    },
    {
      "label": "Option B",
      "value": "b"
    },
    {
      "label": "Option C",
      "value": "c"
    }
  ],
  "panels": "Panels"
}
ARD catalog entry
{
  "identifier": "urn:air:a2uicatalog.ai:atom:tab_group",
  "displayName": "Tab Group",
  "type": "application/vnd.a2ui.atom+json",
  "url": "https://a2uicatalog.ai/atoms/tab_group",
  "capabilities": [
    "google-apps-script-web",
    "mcp-apps"
  ],
  "description": "Pill tabs that switch which ONE of several sibling atoms is visible, e.g. \"how will you give me the source \u2014 a URL, a file, or pasted text\" \u2014 rather than showing every input area stacked and unlabelled at once. panels maps a tab's value to ANOTHER layout element's id and toggles that element's own wrapper directly; safe regardless of layout order, since the whole surface's markup exists before any atom's script runs. Same direct-engine pattern as lens_grid/domain_picker.",
  "representativeQueries": [
    "show a pill tabs that show/hide sibling layout elements",
    "pill tabs that switch which one of several sibling atoms is visible, e.g. \"how will you give me the",
    "render a tab group"
  ]
}
← Full ARD catalog
Deploy your own Google Apps Script renderer

The renderer is an open-source Google Apps Script web app. Deploy your own instance in 4 commands — you own the URL, no dependency on the demo endpoint.

git clone https://github.com/a2uicatalog/a2ui
cd a2ui/apps-script-surface/gas-wired-renderer
clasp push && clasp deploy
Full deploy guide →