StatifierBlocks.Editor.Inspector (StatifierBlocks v0.3.0)

Copy Markdown View Source

The tabbed inspector: Config, Findings, Condition (ADR-0005, the 2026-08-29 shell amendment, ruling 3A).

3A is one rule and a list, and the rule is the part that matters: the inspector is about the selected block, and anything about the document goes to the drawer. The list of three tabs follows from it rather than the other way round, which is why Datamodel and Fixtures - inspector tabs in the spike - are drawer tabs here. They were never about the selected block.

Two things a reader will look for and not find:

  • There is no fourth tab and no :if that would add one. A pane that is about the document has one place to go, and 3A exists so that "which inspector tab does this become" stops being asked.
  • The Findings tab is not the document-level findings panel decision 13 names. That panel still exists, still lists every finding in the document, and still lives beside the canvas. This tab is the selected block's own findings, which is the distinction the campaign-014 polish pass filed as sb-3l1 item a.

The Condition tab reads; it does not evaluate

It renders the per-arm predicator source the block carries, one entry per :expression field, and it evaluates nothing. Evaluation is StatifierBlocks.Predicates, it is server-side, and what it produces - a truth table - is tabular and document-level, so 1A puts it in the drawer. The tab that shows an author what a branch asks and the drawer that shows what it answers are different surfaces on purpose.

Editing a condition stays on the Config tab, where every other field is edited, so there is exactly one form in the editor and one place a draft can live (decision 9).

Summary

Functions

The three tabs and the panel of whichever one is showing.

Functions

inspector(assigns)

The three tabs and the panel of whichever one is showing.

Attributes

  • tab (:atom) (required)
  • node (:any) - the selected ViewModel.Node, or nil. Defaults to nil.
  • pending (:list) - Defaults to [].
  • expression_component (:any) - Defaults to nil.
  • target (:any) (required)
  • class (:string) - Defaults to nil.