feat: cell editing v1 polish — blur-commit + all-themes error/pending skin#175
Merged
Conversation
…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.
…thout moving focus
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
Vercel preview readyPreview: https://pretable-e65dqbhhs-cacheplane.vercel.app Updated automatically by the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.mdWhat changed
@pretable/react(behavior + a11y):editingphase; 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.)validateor rejectedonCellEditrenders an inlinerole="alert"message and keeps the editor open (Enterretries); the input isreadOnly+aria-busyduringchecking/validating/saving;aria-label(fromcolumn.header),aria-invalid, andaria-errormessage(associated with the error element) are set.PretableEditorInputgainsstatus+error(parity for customrenderEditors).@pretable/ui(skin, all themes):--pretable-edit-bg+--pretable-text-error, defined across every theme (excel:root; material:root+[data-theme="dark"]).:where()-wrappedgrid.cssrules in@layer pretablefor 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.mdregenerated for thePretableEditorInputchange), websitebuild. 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