Commit f94c1e9
feat(spec): interface page
`InterfacePageConfig.buttons` is now a first-class field: an array of the source
object's action names (ActionSchema) surfaced as page toolbar buttons. The page
form renders it with the new `action-multi` widget (dependsOn: source), so the
author picks from the object's real actions — buttons ARE object actions,
correct-by-construction (no free-text IDs).
- page.zod.ts — add `buttons: z.array(z.string())` to InterfacePageConfigSchema.
- page.form.ts — add the Buttons field (widget: action-multi) under User actions.
- showcase task-workbench demonstrates it: buttons: ['showcase_bulk_reassign',
'showcase_mark_done'] render as Reassign… / Mark Done in the page header.
Pairs with the objectui action-multi widget + InterfaceListPage runtime render.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>buttons = object actions (action-multi picker)1 parent 97a0802 commit f94c1e9
3 files changed
Lines changed: 10 additions & 0 deletions
File tree
- examples/app-showcase/src/pages
- packages/spec/src/ui
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
64 | 68 | | |
65 | 69 | | |
66 | 70 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
| 108 | + | |
| 109 | + | |
108 | 110 | | |
109 | 111 | | |
110 | 112 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
257 | 257 | | |
258 | 258 | | |
259 | 259 | | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
260 | 264 | | |
261 | 265 | | |
262 | 266 | | |
| |||
0 commit comments