diff --git a/.changeset/finish-editor-kit-correctness.md b/.changeset/finish-editor-kit-correctness.md deleted file mode 100644 index fed3d64e1..000000000 --- a/.changeset/finish-editor-kit-correctness.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -"@pretable/react": minor -"@pretable/ui": minor ---- - -Finish editor adoption of the component kit. Text, number, enum and date -fields resolve TextInput; multiline fields resolve the new native Textarea -slot. Number steppers and date month buttons resolve IconButton. Preserve -forwarded refs, native props, handlers and ARIA/data hooks in replacements. - -Correct enum identity and clearing. Explicit choices retain their canonical -value even with duplicate labels; ambiguous typed labels/values require a -choice. Empty queries can commit null. Custom parsers receive canonical value -text for an explicit choice and query text for typed input. - -Composition keys retain native behavior. Shift+Tab commits left and Shift+Enter -up, including when controlled rows acknowledge a save later; cancelled or -replaced sessions ignore stale acknowledgements. Multiline plain Enter remains a newline. Calendar navigation now browses -without changing the draft: Enter accepts an intentionally navigated date, -while Tab/blur commit the typed/current value. Date inputs expose a complete -grid-popup combobox contract. - -Preserve editor error/focus/pending styling after kit adoption, prevent error -messages from squeezing fields sideways, and complete disabled and forced-color -calendar/action states. Upgrade React and UI together for the new site hooks. diff --git a/.changeset/guard-pending-edit-lifecycle.md b/.changeset/guard-pending-edit-lifecycle.md deleted file mode 100644 index 1446b3ac6..000000000 --- a/.changeset/guard-pending-edit-lifecycle.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"@pretable/react": patch -"@pretable/core": patch ---- - -Prevent cell edits from committing before permission resolves or dispatching -duplicate validation/save operations. Recover from permission, parsing, -validation, and save callback failures without leaving a pending editor stuck, -and ignore stale results after an edit session is replaced or cancelled. - -Draft writes during checking, validating, and saving are now ignored, including -writes from custom editors. This intentionally removes the previous behavior -where a draft write could unlock a pending edit. Enum label normalization waits -for edit permission, and pending editor commit keys do not submit another write. diff --git a/.changeset/repair-overlay-scope-and-states.md b/.changeset/repair-overlay-scope-and-states.md deleted file mode 100644 index 9f83fda04..000000000 --- a/.changeset/repair-overlay-scope-and-states.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -"@pretable/react": minor -"@pretable/ui": minor ---- - -Add PretableOverlayProvider for an explicit popup container. Place the grid -and portal host in the same CSS scope to preserve custom tokens, direction -and live theme changes while escaping the grid's clipping viewport. The -provider does not copy trigger styles. Without a provider, popups still use -body; a provider with a null target defers popup content until attachment. - -Track nested portal ownership for outside presses. Sibling Selects close one -another, clicks inside nested lists preserve the parent dialog, and trigger -toggles work without hiding outside pointer events. -Keep Select and header popups anchored when live scope or layout changes move -their trigger, including delayed portal attachment. - -Rename the listbox active marker from data-active to data-pretable-active. -Update custom selectors and upgrade the React/UI packages together. Complete -disabled option styles and forced-colors active-option/checkbox state pairs, -including selected-disabled options and checked/mixed disabled checkboxes. diff --git a/.changeset/repair-shared-control-state.md b/.changeset/repair-shared-control-state.md deleted file mode 100644 index 555491297..000000000 --- a/.changeset/repair-shared-control-state.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -"@pretable/react": minor ---- - -Keep Select highlights attached to option values when options reorder, and -choose an enabled fallback when an active option is removed or disabled. -Empty rosters close the Select; all-disabled lists have no active option. -Typeahead starts fresh each time the list opens. - -Rich Select option labels now require a plain `textValue` for typeahead. -String and number labels continue to infer their text. This tightens -`PretableSelectOption` from an interface to a union: add `textValue` to rich -labels and replace interfaces extending the old type with type intersections. - -Preserve callback-ref cleanup in Select, Checkbox and TextInput, including -ref replacement and StrictMode attachment cycles. Object refs and callbacks -without cleanup still receive their usual null detach. diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 23f0d023b..29faa0aaa 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,19 @@ # @pretable/core +## 0.19.0 + +### Patch Changes + +- Prevent cell edits from committing before permission resolves or dispatching ([#588](https://github.com/cacheplane/pretable/pull/588)) + duplicate validation/save operations. Recover from permission, parsing, + validation, and save callback failures without leaving a pending editor stuck, + and ignore stale results after an edit session is replaced or cancelled. + + Draft writes during checking, validating, and saving are now ignored, including + writes from custom editors. This intentionally removes the previous behavior + where a draft write could unlock a pending edit. Enum label normalization waits + for edit permission, and pending editor commit keys do not submit another write. + ## 0.18.0 ## 0.17.0 diff --git a/packages/core/package.json b/packages/core/package.json index f2af3861c..138f03f04 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@pretable/core", - "version": "0.18.0", + "version": "0.19.0", "description": "Framework-agnostic grid state primitives for Pretable.", "license": "MIT", "repository": { diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index f0a586c29..aa94c04a5 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,77 @@ # @pretable/react +## 0.19.0 + +### Minor Changes + +- Finish editor adoption of the component kit. Text, number, enum and date ([#588](https://github.com/cacheplane/pretable/pull/588)) + fields resolve TextInput; multiline fields resolve the new native Textarea + slot. Number steppers and date month buttons resolve IconButton. Preserve + forwarded refs, native props, handlers and ARIA/data hooks in replacements. + + Correct enum identity and clearing. Explicit choices retain their canonical + value even with duplicate labels; ambiguous typed labels/values require a + choice. Empty queries can commit null. Custom parsers receive canonical value + text for an explicit choice and query text for typed input. + + Composition keys retain native behavior. Shift+Tab commits left and Shift+Enter + up, including when controlled rows acknowledge a save later; cancelled or + replaced sessions ignore stale acknowledgements. Multiline plain Enter remains a newline. Calendar navigation now browses + without changing the draft: Enter accepts an intentionally navigated date, + while Tab/blur commit the typed/current value. Date inputs expose a complete + grid-popup combobox contract. + + Preserve editor error/focus/pending styling after kit adoption, prevent error + messages from squeezing fields sideways, and complete disabled and forced-color + calendar/action states. Upgrade React and UI together for the new site hooks. + +- Add PretableOverlayProvider for an explicit popup container. Place the grid ([#588](https://github.com/cacheplane/pretable/pull/588)) + and portal host in the same CSS scope to preserve custom tokens, direction + and live theme changes while escaping the grid's clipping viewport. The + provider does not copy trigger styles. Without a provider, popups still use + body; a provider with a null target defers popup content until attachment. + + Track nested portal ownership for outside presses. Sibling Selects close one + another, clicks inside nested lists preserve the parent dialog, and trigger + toggles work without hiding outside pointer events. + Keep Select and header popups anchored when live scope or layout changes move + their trigger, including delayed portal attachment. + + Rename the listbox active marker from data-active to data-pretable-active. + Update custom selectors and upgrade the React/UI packages together. Complete + disabled option styles and forced-colors active-option/checkbox state pairs, + including selected-disabled options and checked/mixed disabled checkboxes. + +- Keep Select highlights attached to option values when options reorder, and ([#588](https://github.com/cacheplane/pretable/pull/588)) + choose an enabled fallback when an active option is removed or disabled. + Empty rosters close the Select; all-disabled lists have no active option. + Typeahead starts fresh each time the list opens. + + Rich Select option labels now require a plain `textValue` for typeahead. + String and number labels continue to infer their text. This tightens + `PretableSelectOption` from an interface to a union: add `textValue` to rich + labels and replace interfaces extending the old type with type intersections. + + Preserve callback-ref cleanup in Select, Checkbox and TextInput, including + ref replacement and StrictMode attachment cycles. Object refs and callbacks + without cleanup still receive their usual null detach. + +### Patch Changes + +- Prevent cell edits from committing before permission resolves or dispatching ([#588](https://github.com/cacheplane/pretable/pull/588)) + duplicate validation/save operations. Recover from permission, parsing, + validation, and save callback failures without leaving a pending editor stuck, + and ignore stale results after an edit session is replaced or cancelled. + + Draft writes during checking, validating, and saving are now ignored, including + writes from custom editors. This intentionally removes the previous behavior + where a draft write could unlock a pending edit. Enum label normalization waits + for edit permission, and pending editor commit keys do not submit another write. + +- Updated dependencies [[`5d8e30a`](https://github.com/cacheplane/pretable/commit/5d8e30a9c84c2fd7f885b407159ada29be839938), [`5d8e30a`](https://github.com/cacheplane/pretable/commit/5d8e30a9c84c2fd7f885b407159ada29be839938), [`5d8e30a`](https://github.com/cacheplane/pretable/commit/5d8e30a9c84c2fd7f885b407159ada29be839938)]: + - @pretable/ui@0.19.0 + - @pretable/core@0.19.0 + ## 0.18.0 ### Minor Changes diff --git a/packages/react/package.json b/packages/react/package.json index 577a293d7..23eeb97fb 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@pretable/react", - "version": "0.18.0", + "version": "0.19.0", "description": "React components and hooks for Pretable.", "license": "MIT", "repository": { diff --git a/packages/stream-adapter/CHANGELOG.md b/packages/stream-adapter/CHANGELOG.md index 2aac6c80f..6248d5ba6 100644 --- a/packages/stream-adapter/CHANGELOG.md +++ b/packages/stream-adapter/CHANGELOG.md @@ -1,5 +1,7 @@ # @pretable/stream-adapter +## 0.19.0 + ## 0.18.0 ## 0.17.0 diff --git a/packages/stream-adapter/package.json b/packages/stream-adapter/package.json index 47e4fb26b..1b8037af9 100644 --- a/packages/stream-adapter/package.json +++ b/packages/stream-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@pretable/stream-adapter", - "version": "0.18.0", + "version": "0.19.0", "description": "Streaming row adapters for Pretable.", "license": "MIT", "repository": { diff --git a/packages/ui/CHANGELOG.md b/packages/ui/CHANGELOG.md index 5e996e296..9330b2aae 100644 --- a/packages/ui/CHANGELOG.md +++ b/packages/ui/CHANGELOG.md @@ -1,5 +1,47 @@ # @pretable/ui +## 0.19.0 + +### Minor Changes + +- Finish editor adoption of the component kit. Text, number, enum and date ([#588](https://github.com/cacheplane/pretable/pull/588)) + fields resolve TextInput; multiline fields resolve the new native Textarea + slot. Number steppers and date month buttons resolve IconButton. Preserve + forwarded refs, native props, handlers and ARIA/data hooks in replacements. + + Correct enum identity and clearing. Explicit choices retain their canonical + value even with duplicate labels; ambiguous typed labels/values require a + choice. Empty queries can commit null. Custom parsers receive canonical value + text for an explicit choice and query text for typed input. + + Composition keys retain native behavior. Shift+Tab commits left and Shift+Enter + up, including when controlled rows acknowledge a save later; cancelled or + replaced sessions ignore stale acknowledgements. Multiline plain Enter remains a newline. Calendar navigation now browses + without changing the draft: Enter accepts an intentionally navigated date, + while Tab/blur commit the typed/current value. Date inputs expose a complete + grid-popup combobox contract. + + Preserve editor error/focus/pending styling after kit adoption, prevent error + messages from squeezing fields sideways, and complete disabled and forced-color + calendar/action states. Upgrade React and UI together for the new site hooks. + +- Add PretableOverlayProvider for an explicit popup container. Place the grid ([#588](https://github.com/cacheplane/pretable/pull/588)) + and portal host in the same CSS scope to preserve custom tokens, direction + and live theme changes while escaping the grid's clipping viewport. The + provider does not copy trigger styles. Without a provider, popups still use + body; a provider with a null target defers popup content until attachment. + + Track nested portal ownership for outside presses. Sibling Selects close one + another, clicks inside nested lists preserve the parent dialog, and trigger + toggles work without hiding outside pointer events. + Keep Select and header popups anchored when live scope or layout changes move + their trigger, including delayed portal attachment. + + Rename the listbox active marker from data-active to data-pretable-active. + Update custom selectors and upgrade the React/UI packages together. Complete + disabled option styles and forced-colors active-option/checkbox state pairs, + including selected-disabled options and checked/mixed disabled checkboxes. + ## 0.18.0 ### Patch Changes diff --git a/packages/ui/package.json b/packages/ui/package.json index 057a74fc7..214903f4b 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@pretable/ui", - "version": "0.18.0", + "version": "0.19.0", "description": "CSS themes, tokens, and grid styles for Pretable.", "license": "MIT", "repository": {