Skip to content

feat(annotation): delete selected items with Backspace/Delete - #655

Open
MathiasWP wants to merge 3 commits into
embedpdf:mainfrom
MathiasWP:delete-with-backspace
Open

feat(annotation): delete selected items with Backspace/Delete#655
MathiasWP wants to merge 3 commits into
embedpdf:mainfrom
MathiasWP:delete-with-backspace

Conversation

@MathiasWP

Copy link
Copy Markdown

Press Backspace or Delete to delete the current selection — annotations, shapes, stamps, signatures and form widgets, or a selected pending redaction.

Adds a deleteSelectedAnnotations() method to the annotation capability/scope and binds the keys in the default viewer and examples. Deletes the full multi-selection, is a no-op when nothing is selected (keys keep native behaviour), and ignores key presses while typing in inputs or the free-text editor.

Add deleteSelectedAnnotations() to the annotation capability/scope and bind
Backspace and Delete in the default viewer and examples to delete the current
selection - annotations, shapes, stamps, signatures, form widgets, or a
selected pending redaction. Deletes the full multi-selection, is disabled when
nothing is selected, and ignores key presses while typing in inputs or the
free-text editor.
@vercel

vercel Bot commented Jun 2, 2026

Copy link
Copy Markdown

@MathiasWP is attempting to deploy a commit to the OpenBook Team on Vercel.

A member of the Team first needs to authorize it.

main restructured the repo since this branch was cut: the annotation plugin
was rewritten (packages/plugin-annotation -> packages/plugin/annotation, class
plugin -> capability), the snippet viewer became packages/viewer/chrome, and
the *-tailwind examples were removed. Every file this branch touched is gone
upstream, so the conflicts are resolved by taking main's deletions and porting
the feature onto the new architecture.

The port is much smaller than the original change because main already has
most of it: `annotation:delete` deletes the whole selection (and cascades
widgets through the form plane), pending redactions are ordinary annotations
with subtype 'redact' so they share the annotation selection, and
useCommandShortcuts already ignores strokes from editable targets. What was
missing:

- Bind Backspace/Delete to `annotation:delete` in the chrome command config.
- Only preventDefault in useCommandShortcuts when the matched command is
  visible and enabled, so Backspace keeps its native behavior when there is
  nothing to delete.

Replaces the old changeset with one naming the packages that now exist.
A local verification build regenerated this pin; it is not part of this
branch's change.
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