ConfirmButton
A button with a built-in confirm step for destructive or consequential actions. No modal, no round trip — the confirmation is part of the component.
rendered, live
the wire — click a line to scrub
the contract — ConfirmButton in catalog.json
{
"type": "object",
"description": "A button with a built-in confirm step for destructive or consequential actions. No modal, no round trip — the confirmation is part of the component.",
"properties": {
"component": {
"const": "ConfirmButton"
},
"label": {
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString",
"description": "The button text, naming the action, e.g. 'Abort rollout'."
},
"confirmLabel": {
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString",
"description": "Text of the built-in second step, e.g. 'Really abort?'. Default is a localized 'Confirm?'."
},
"action": {
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/Action",
"description": "Fired only after the confirm step. Context carries the action payload — what you need to act, nothing more."
},
"intent": {
"oneOf": [
{
"type": "string",
"enum": [
"good",
"bad",
"warning",
"info",
"neutral"
]
},
{
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/DataBinding"
},
{
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/FunctionCall"
}
],
"description": "Judgment of the action on the shared scale — use 'bad' for destructive operations. Default: 'neutral'.",
"default": "neutral"
}
},
"required": [
"component",
"label",
"action"
]
}the prompt-pack — paste into your agent
### ConfirmButton — destructive action, built-in confirm step
The confirmation is part of the component — no modal, no round trip. The action fires only after
the second press. Use `intent: "bad"` for destructive operations.
| prop | type | required | notes |
| -------------- | ------------ | -------- | ---------------------------------------------- |
| `label` | string | yes | names the action, e.g. `"Abort rollout"` |
| `action` | action | yes | fired after confirm; hand-picked context |
| `confirmLabel` | string | no | second-step text; default localized "Confirm?" |
| `intent` | intent scale | no | `"bad"` for destructive; default `"neutral"` |
```
{"id":"abort","component":"ConfirmButton","label":"Abort rollout","confirmLabel":"Really abort?","intent":"bad","action":{"event":{"name":"rollout_aborted","context":{"buildId":4191}}}}
```