Skip to content

feat: cell editing v1 polish — blur-commit + all-themes error/pending skin#175

Merged
blove merged 10 commits into
mainfrom
editing-v1-polish
Jun 9, 2026
Merged

feat: cell editing v1 polish — blur-commit + all-themes error/pending skin#175
blove merged 10 commits into
mainfrom
editing-v1-polish

Conversation

@blove

@blove blove commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Closes the two known v1 follow-ups from the cell-editing feature (#174), filed as task chips. Built spec → plan → subagent execution with two-stage review per unit.

Spec: docs/superpowers/specs/2026-06-09-cell-editing-v1-polish-design.md · Plan: docs/superpowers/plans/2026-06-09-cell-editing-v1-polish.md

What changed

@pretable/react (behavior + a11y):

  • Blur commits in place — clicking away from an open editor commits the draft without moving focus (guarded to the editing phase; no double-submit during an in-flight async save). Fixes the stuck-edit-on-outside-click wart. (Enter→down / Tab→right still move; the ?? "down" commit default was dropped so a directionless blur-commit doesn't move focus.)
  • Errors + pending surfaced — a failed validate or rejected onCellEdit renders an inline role="alert" message and keeps the editor open (Enter retries); the input is readOnly + aria-busy during checking/validating/saving; aria-label (from column.header), aria-invalid, and aria-errormessage (associated with the error element) are set.
  • PretableEditorInput gains status + error (parity for custom renderEditors).

@pretable/ui (skin, all themes):

  • Two new semantic tokens --pretable-edit-bg + --pretable-text-error, defined across every theme (excel :root; material :root + [data-theme="dark"]).
  • :where()-wrapped grid.css rules in @layer pretable for the editor field, invalid outline, pending affordance (opacity + cursor: wait), and the error message.

Docs: /docs/grid/editing (blur/error/pending/a11y) + theming token reference (the two new tokens; counts updated 34→36).

Verification

All gates green: package tests (react 233, ui 19, +others), repo typecheck / lint / format, api:check (react.api.md regenerated for the PretableEditorInput change), website build. An independent final review confirmed READY TO MERGE (CSS selectors ↔ DOM hooks match both ways; blur-commit end-to-end with no regression).

Coordination note

This adds two tokens to themes/material.css + themes/excel.css (purely additive) — coordinate the merge with any parallel theming work.

🤖 Generated with Claude Code

blove and others added 10 commits June 8, 2026 20:59
…ending skin

Closes the two cell-editing follow-ups: blur-to-commit (guarded to the editing
phase) and surfacing validate/commit errors + pending state with a11y. Ships the
editor skin for every theme (material light+dark, excel light) via two new
semantic tokens (--pretable-edit-bg, --pretable-text-error) + grid.css rules,
per the @pretable/react=structure / @pretable/ui=skin split.
7-task TDD plan: extend PretableEditorInput (status/error) + surface plumbing
(blur commits w/o moving focus); CellEditor blur-commit + error/pending + a11y;
surface async error-path tests; edit-bg/text-error tokens across all themes;
:where-wrapped grid.css skin; docs; full verification.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
pretable Ignored Ignored Jun 9, 2026 6:14am

Request Review

@blove blove enabled auto-merge (squash) June 9, 2026 06:15
@blove blove merged commit a8ac4f0 into main Jun 9, 2026
13 checks passed
@blove blove deleted the editing-v1-polish branch June 9, 2026 06:17
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Vercel preview ready

Preview: https://pretable-e65dqbhhs-cacheplane.vercel.app
Commit: 0cc615e8241f4e2e45b617342f28caf175452108

Updated automatically by the deploy-preview job.

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