Fix component kit lifecycle, overlays, and editor correctness - #588
Merged
Conversation
Reject ordinary draft writes during checking, validating, and saving while retaining editing/error changes and existing null and Object.is no-ops. TDD: changed pending draft regressions failed in all three phases before the fix; all 177 grid-core tests pass after restoration. Mutation remove-pending-draft-phase-guard: removing the three status predicates fails checking/validating/saving preserves-the-entire-editing-state regressions (3 failed, 174 passed). Guard restored and formatted; final suite 177 passed.
Record permission and active session identity; guard callbacks and retries with a synchronous core draft barrier. Read live core state in the controller adapter and retain saving until controlled reconciliation. Validation: 95 controller/editing/boolean tests; React typecheck; owned-file ESLint and Prettier. TDD: nine initial regressions plus formatter replacement failed before fixes. Five mutants killed: admission, permission denial, generation/session retirement, adapter identity, and core validating draft barrier.
Contain rejected parser results before validation/save and exercise successful recovery after callback failures and a failed replacement of an in-flight save. Validation: 105 focused controller/editing/boolean tests, React typecheck, ESLint and Prettier. RED: 9 async parser regressions; removing parser await kills the same nine tests.
Consume pending commit keys and guard draft and enum selection changes. Defer enum seed normalization until editing and preserve later corrections. Validation: 119 focused editor/surface tests, React typecheck, scoped ESLint and Prettier. RED regressions observed; pending-key, normalization-permission and correction mutants killed and restored.
Store callback cleanup for null detach while exposing a React 18-compatible void callback. Preserve composed hook identity for stable refs and integrate Checkbox/TextInput. Validation: real-control RED regressions, helper null-detach contract, ref replacement and StrictMode, cleanup mutation killed and restored; 20 focused tests pass with Select integration tests pending root integration. Scoped lint/format clean.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
Vercel preview readyPreview: https://pretable-ztutn7f86-cacheplane.vercel.app Updated automatically by the |
Merged
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.
Summary
Complete the component-kit audit and repair its lifecycle, control, overlay and editor defects.
Validation
pnpm lintandpnpm formatpnpm test: 469 script tests and 4,522 workspace Vitest tests, including 2,043 React testspnpm typecheckplus public type tests and type-performance guardpnpm api:checkpnpm lint:packaging; packed React 18.0.0, 18.3.1 and 19.2.8 compatibilitypnpm security:audit: no known vulnerabilitiesPhysical OS IME and human screen-reader passes were not performed. Synthetic composition events, DOM/accessibility-tree inspection and forced-color emulation are recorded as automated evidence only. No benchmark performance claim is made.
Release Notes
Upgrade React and UI together. Rich Select labels now require
textValue; active-option styling usesdata-pretable-active. ConfigurePretableOverlayProviderwith a host inside a local theme/direction scope when needed. Replacement fields must forward refs, native events, ARIA and data attributes. See updated component/editing docs for enum and date behavior changes and the new Textarea slot.Screenshots Or Benchmarks
Matched production screenshots and measurements:
docs/research/assets/sp4c/anddocs/research/assets/sp4d/. Audit and verification records:docs/research/2026-09-08-component-kit-audit.mdand the SP4A–SP4D plans.Contributor Checklist
CONTRIBUTING.md.CODE_OF_CONDUCT.md.