Skip to content

Properties panel 0.6.0: declared button icons, title-row placement - #21

Open
mattakamatsu wants to merge 4 commits into
mainfrom
properties-panel
Open

Properties panel 0.6.0: declared button icons, title-row placement#21
mattakamatsu wants to merge 4 commits into
mainfrom
properties-panel

Conversation

@mattakamatsu

Copy link
Copy Markdown
Contributor

SmartBlock buttons found in a #.properties block now render in the title-level actions row (after the action slots, in block order) with their declared Blueprint icon — {{Convert this Issue…:SmartBlock:convertIssueButton:Icon=exchange}} shows the exchange glyph and its label, no more hardcoded 🖼. The bottom-of-grid button row is gone.

Why: the node-convert flow ships its entry point as a properties-block button, so which verbs appear on which node type stays declared in the graph (the node type's template) — no convert-specific code enters the panel, per its blocks-are-the-only-store invariant. Placement follows the PRO-207 feedback: workflow verbs at the title, the grid stays nouns.

How freshness works: these buttons are self-consuming (clicking deletes the button's own block; the workflow's cancel path re-creates it). The 0.5.2 pull watch already reloads the snapshot on any properties-block change; PanelRoot now feeds the parsed buttons to a small store the title row subscribes to, so the row follows within the watch's ~200 ms debounce. Buttons are not registered actions — no actionRegistry entries, no slot keys; runButton and the registerAction/dgpp:ready contract are untouched.

Spec: "Properties-block SmartBlock buttons: declared icon, title-row placement" (2026-08-25, from the roam-node-convert discoverability work). New tests cover the option parsing (Icon extraction, unknown keys, empty tail, never-invent validation), the icon on parsed extras, and block-order for multiple buttons.

🤖 Generated with Claude Code

mattakamatsu and others added 3 commits August 25, 2026 19:10
BUTTON_RE group 3 (the SmartBlock options tail) was captured and
discarded; now it yields icon on the button extra, for the title-row
rendering that follows. The panel never invents an icon: no Icon= or an
implausible value means null.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Workflow verbs go at the title, the grid stays nouns (PRO-207); the
button renders its declared Blueprint icon instead of the hardcoded 🖼.
PanelRoot feeds a small store TitleActions subscribes to, so the pull
watch keeps the row fresh through the convert button's self-consume /
cancel-recreate cycle. Buttons are not registered actions — no
actionRegistry entries, no slot keys; runButton is untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 26, 2026

Copy link
Copy Markdown

Roam prototype previews

The preview deployment is ready. Paste a URL below into Load Developer Extensions from URL in Roam:

View publishing details

The row shares the title line's leftover width. Flex shrink was
squeezing all five buttons to min-content, wrapping labels mid-word and
leaving the centered icon beside the middle line of "Convert this
Issue…". Buttons are now flex:none + nowrap and the row wraps.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant