Skip to content

Pressing an arrow key to move the cursor into a Callout or Accordion…#175

Merged
inkeep-oss-sync[bot] merged 1 commit into
mainfrom
copybara/sync
Jun 17, 2026
Merged

Pressing an arrow key to move the cursor into a Callout or Accordion…#175
inkeep-oss-sync[bot] merged 1 commit into
mainfrom
copybara/sync

Conversation

@inkeep-oss-sync

Copy link
Copy Markdown
Contributor

Pressing an arrow key to move the cursor into a Callout or Accordion body now lands reliably. Previously the descent across the component boundary relied on the browser's native caret motion, which under load could intermittently fail to place the cursor inside the body (leaving the selection stuck outside). A deterministic handler now drives the descent for all four arrow directions (down, up, left, right).

…ponents (S1c flake) (#1905)

* fix(open-knowledge): deterministic arrow descent into compound jsxComponents (S1c)

S1c (selection-indicator.e2e.ts:172, 'ArrowDown into compound Callout descends
into body') flaked because PM's native caret motion across the jsxComponent's
isolating contentEditable=false->true boundary commits the PM selection only
asynchronously via DOMObserver readback, and under load intermittently not at
all, so the descent into the Callout body silently failed and the assertion
timed out.

Adds L2d tryEnterCompoundJsx: the bare-arrow ENTRY mirror of the existing L2c
ArrowUp exit handler (tryExitCompoundJsxUp), generalized over all four arrows
the way tryL0NodeSelect is. Dispatches a deterministic TextSelection at the
body's first (forward) / last (backward) inner caret instead of deferring to
selectVertically + browser-native motion. Wired into all four arrow handlers.

Same-wave A3 parity sweep: ArrowDown/Right/Left/Up across Callout + Accordion
jsxComponent types.

* test(open-knowledge): update keyboard-nav catch-path contract for the L2d site

The new L2d tryEnterCompoundJsx handler renamed the ArrowUp/ArrowDown
handler comments that the precedent #48 structural contract anchors on,
and added a fifth catch site. Re-anchor the L2 ArrowUp/Down tests to the
updated comments, add an L2d contract test pinning the new catch site,
and bump the catch-count floor 4->5.

GitOrigin-RevId: 21a29f6dcc3aea60212a0975601ed4f3c66da766

@inkeep-internal-ci inkeep-internal-ci Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval from agents-private public-mirror-sync (run: https://github.com/inkeep/agents-private/actions/runs/27664399596). Source of truth is the monorepo; direct edits on inkeep/open-knowledge are overwritten on next sync.

@inkeep-oss-sync inkeep-oss-sync Bot merged commit 1681ce3 into main Jun 17, 2026
2 checks passed
@inkeep-oss-sync inkeep-oss-sync Bot deleted the copybara/sync branch June 17, 2026 03:48
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