SubmitBar
rendered, live
the wire — click a line to scrub
the contract — SubmitBar in catalog.json
{
"type": "object",
"properties": {
"component": {
"const": "SubmitBar"
},
"submitAction": {
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/Action",
"description": "Fired on submit, only when every check on the surface passes. Hand-pick the answers you need into context as {\"path\": ...} bindings."
},
"submitLabel": {
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString",
"description": "Names the act of submitting, e.g. 'Create account'. Default: localized 'Submit'."
},
"cancelAction": {
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/Action",
"description": "Optional secondary action; renders a quiet cancel button."
},
"cancelLabel": {
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"
},
"pending": {
"$ref": "https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicBoolean",
"description": "Bind to a path and set true while processing the submission — the bar disables and shows progress. Set false (or write a server error) when done."
}
},
"required": [
"submitAction"
]
}the prompt-pack — paste into your agent
### SubmitBar — submit (and cancel) with pending state
Submission fires only when every check on the surface passes. Hand-pick the answers you need into
`context`. To report a server-side verdict afterwards, reply with `updateDataModel` on the path you
want written — bind a `Callout` or the field's own error to that path when you build the form.
| prop | type | required | notes |
| -------------- | ---------- | -------- | -------------------------------------------------------------- |
| `submitAction` | action | yes | `{"event":{"name","context",...}}`; name it after what happens |
| `submitLabel` | string | no | e.g. `"Create account"`; default localized "Submit" |
| `cancelAction` | action | no | renders a quiet cancel button |
| `cancelLabel` | string | no | |
| `pending` | `{"path"}` | no | bind and set true while you process; the bar disables |
```
{"id":"submit","component":"SubmitBar","submitLabel":"File report","pending":{"path":"/report/pending"},"submitAction":{"event":{"name":"report_filed","context":{"severity":{"path":"/report/severity"},"details":{"path":"/report/details"}}}}}
```