Skip to content

app: the annotation page has no floating tool strip — the Labels tab covers the capability, not the gesture #145

Description

@JArmandoAnaya

Found by #60's close-out audit of M5.

What

#56's design reference asks for a floating tool palette on the canvas's left
edge
: "select, then one tool per geometry the schema's classes actually allow, help
at the bottom". AnnotationPage does not have one.

Why it is not a blocker

The capability is fully present, twice over: the side panel's Labels tab (#126)
lists every class with its colour and its digit, and clicking a row does exactly what
the digit does — activate-class for a drawable class, toggle-tag for a tag. The
class hotkeys (#46) reach the same place. #59's browser cycle drives a bbox, a
polygon and a tag through the Labels tab end to end.

So what is missing is the gesture and the placement, not the ability. M5's exit
criterion is met and proven.

What it would take

frontend/app/src/demo/ToolStrip.tsx already is one — #50 built it for the showcase,
including the argument that a tool button over a derived tool must report rather
than own, and that a press whose tool is already active is a no-op. Moving it would
mean deciding where it lives:

  • ui-core, beside AnnotatorPanel, so the annotation page composes it — and
    then the showcase imports product UI, which weakens exactly what the showcase
    exists to demonstrate (that the annotator owns no chrome).
  • Duplicated, which is a second spelling of the derived-tool rule.
  • @visionset/annotator's adapters, which the panel's own docstring argues
    against: the engine ships headless with no tokens, and a styled strip there is the
    first thing an embedder has to fight.

The third option is out; the first two are a real trade and worth deciding
deliberately rather than in a close-out.

Where it sits

Post-beta, with #127 and #123#70's triage is their catch. It is ergonomics over a
capability that already has two working spellings.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions