Skip to content

feat(#340): unify frameless KPI movement#388

Merged
BorisTyshkevich merged 1 commit into
mainfrom
feat/kpi-frameless-movement-340
Jul 22, 2026
Merged

feat(#340): unify frameless KPI movement#388
BorisTyshkevich merged 1 commit into
mainfrom
feat/kpi-frameless-movement-340

Conversation

@BorisTyshkevich

Copy link
Copy Markdown
Collaborator

What & why

Closes #340.

KPI queries now use the same frameless presentation across Grid Tiles, Full view, Report, 2-column, and 3-column Dashboard styles. Their structural wrappers still own accessibility, placement, deletion, resizing, and movement, while transient overlay chrome reveals the complete query boundary without shifting KPI content.

Flow KPI members and Grid/Full KPI wrappers use the shared Command/Ctrl-drag path with floating previews, destination resolution, auto-scroll, cancellation, click suppression, and exactly one move-tile commit. Plain dragging remains text selection. Grid/Full resize also gains keyboard operation and complete cancellation cleanup.

Coverage includes unit interaction paths and real-browser rendering/movement checks, including wrapped multi-card KPI members.

Verification

  • npm test — 165 files, 5,013 tests passed; per-file coverage gate passed
  • npm run build — built the single-file dist/sql.html
  • Chromium — 92 tests passed as part of the full Playwright run
  • Firefox — 92 tests passed with 2 workers
  • WebKit — 92 tests passed with 2 workers

The initial 10-worker all-browser run encountered unrelated Firefox navigation timeouts from local resource saturation; the complete Firefox project passed cleanly at 2 workers.

Checklist

  • npm test passes (the per-file coverage gate is non-negotiable)
  • Tests added/updated in the same change as the code
  • npm run build succeeds (single-file dist/sql.html)
  • Layers kept honest: pure logic in src/core/, network in src/net/ (injected fetch), DOM in src/ui/
  • No new runtime dependency (or it's a deliberate, justified addition — see CONTRIBUTING)
  • README / CHANGELOG.md ([Unreleased]) updated if behavior or the deployed surface changed
  • Reconciled affected tracked work (roadmap Roadmap to 1.0.0 #68, the issue body, ADR/CHANGELOG) if this change reshaped it

Roadmap #68 and the #340 acceptance checklist are reconciled. No architecture or schema decision changed, so no ADR update is needed.

Make KPI tiles frameless across Dashboard layouts while retaining their structural wrappers, accessibility, resizing, deletion, and persisted placement.

Reuse the shared modifier-drag movement path for flow KPI members and Grid Tiles, including floating previews, cancellation, destination hit testing, and exact-once commits. Add keyboard resizing and real-browser coverage for the transient edit chrome.

Co-Authored-By: OpenAI Codex <noreply@openai.com>

Claude-Session: unavailable (OpenAI Codex)
@BorisTyshkevich BorisTyshkevich mentioned this pull request Jul 22, 2026
77 tasks
@BorisTyshkevich
BorisTyshkevich marked this pull request as ready for review July 22, 2026 17:48
@BorisTyshkevich
BorisTyshkevich merged commit 7d6f83d into main Jul 22, 2026
9 checks passed
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.

Make KPI tiles frameless and consistently movable across Dashboard layouts

1 participant