Repository navigation
Releases: paqu-io/form0-react
Releases · paqu-io/form0-react
Release list
v0.10.0
What's Changed
🚀 New Features
- Hidden-Value Recovery: Added application-controlled recovery of hidden values, with new
inspectHiddenValueandcorrectHiddenValueworker calls, and validation findings now carry ahiddenflag (fbd8a9a) - Validation Pagination: Validation sidebar now shows 15 findings per page, with compact themed pagination shown only when there is more than one page, and long labels and messages wrap within the sidebar (46b003a)
🐛 Bug Fixes
- Time Field Entry: Replaced the native time input with a text editor for
HH:MMorHH:MM:SSthat preserves incomplete input while typing and fills in:00seconds for complete minute values (46b003a) - Live Validation Findings: Stabilized live validation findings display (46b003a)
- Validation Navigation: Retained validation navigation only after findings exist (f85d679)
- Navigation After Clearing: Kept validation navigation available after findings clear (ef74d79)
📚 Documentation
- README Update: Documented the default
TimeFieldbehavior, custom time picker registration through the field registry, and validation sidebar pagination (46b003a)
🔧 Maintenance
- Core Dependency: Updated
form0-corefrom v0.10.0 to v0.11.0 (05fb7d0) - Version Bump: Bumped package version to 0.10.0 (0a4fe1e)
Full Changelog: v0.9.0...v0.10.0
v0.9.0
What's Changed
🚀 New Features
- Hidden Field Retention: Added handling of cleared fields for fields with
visible_preserve_value: false. The engine worker now reportsclearedFields, and the React client applies them to the repeatable record state (275a0cc)
🔧 Maintenance
- Core Dependency: Updated
form0-corefrom ^0.9.0 to ^0.10.0 (abcf7ed) - Version Bump: Bumped package version to 0.9.0 (a84f7d3)
Full Changelog: v0.8.0...v0.9.0
v0.8.0
What's Changed
🚀 New Features
- Event Failure Reporting: Failed managed events now report once to
console.errorby default, including rejectedSETVALUE()operations and rejectedonOperationspromises. Reports include the event type, triggering field, root/row scope and issue codes/messages, without values, operation arguments, snapshots or record IDs (bd0b582) eventDiagnosticsProp: AddedeventDiagnostics={{ failures: false }}onFormRendererto turn off this reporting; the setting stays current in open editors without rebuilding the engine (bd0b582)- Duplicate Report Avoidance: Built-in Submit and row Save keep using the submission reporter, so they do not emit a second event report (bd0b582)
📚 Documentation
- README Update: Added a "Managed event failure reporting" section covering
eventDiagnostics, what is and isn't reported, andSETVALUE()value rules for numeric and choice fields (bd0b582)
🔧 Maintenance
- Test Coverage: Added tests and fixtures for event reporting and diagnostics (bd0b582)
- Version Bump: Bumped the package version to 0.8.0 (985120c)
- Release Merge: Merged PR #90 from
development(60837e4)
Full Changelog: v0.7.0...v0.8.0
v0.7.0
What's Changed
🚀 New Features
- Submission Diagnostics: Added a
submissionDiagnosticsprop toFormRendererwithsaveFailures(on by default) andvalidationBlocks(off by default) options for console-only reporting of failed saves and blocked Submit or repeatable-row Save attempts (31cbef1) - Save Failure Reporting: Failed saves are now logged to
console.errorwith the failure stage and the original error, and edits stay available for retry (31cbef1)
🐛 Bug Fixes
- Submit Error Handling: Changed the non-managed Submit path to await
onSubmitand report rejections instead of silently swallowing them (31cbef1) - Validation Block Logging: Removed the unconditional
[RECORD SUBMIT]console messages shown when validation blocked a Submit, so they now appear only whenvalidationBlocksis enabled (31cbef1)
📚 Documentation
- Submission Logging Guide: Added a "Save failures and submission logging" section to the README covering the new options and the rethrow requirement for apps that catch save errors (31cbef1)
🔧 Maintenance
- Version Bump: Bumped the package version from 0.6.0 to 0.7.0 (0cbd70e)
- Tests: Added
tests/submission-reporting.test.jsxcovering submission reporting (31cbef1) - Development Merge: Merged PR #88 from
development(5df49a7)
Full Changelog: v0.6.0...v0.7.0
v0.6.0
What's Changed
💥 Breaking Changes
- Stricter Value Updates: Input aliases and numeric/boolean choice-ID coercion are no longer supported. Malformed setter calls now reject before any value batch is applied, and writes to calculated, display or container targets, cross-scope writes, and setter/event writes in record readonly mode are rejected. Use string choice IDs,
{ choice, other }(SingleChoice/Boolean), or arrays/{ choices, other }(MultiChoice) instead (afa6383)
🚀 New Features
- Unified Value Normalization: Official setters and default
SETVALUEoperations now share core normalization across the React layer and the engine worker, with full live objects preserving labels and metadata (afa6383) - Worker Value Setter: Added
setValueto the engine worker client and areplacementoption onsetValuesfor loading paths that bypass setter restrictions (afa6383)
📚 Documentation
- Programmatic Updates Guide: Added a README section describing the value-update contract, accepted value shapes, and rejection rules (afa6383)
🔧 Maintenance
- Core Dependency: Updated
form0-corefrom^0.8.1to^0.9.0(574bd30) - Version Bump: Bumped package version to
0.6.0(8564d23) - Release Merge: Merged development branch via PR #86 (4dbeef6)
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
💥 Breaking Changes
- Lifecycle Events Default On: Managed lifecycle events and field interaction subscriptions are now enabled by default, and the host must supply
events.recordKind('new'or'existing') because a missing value is now a configuration error. AddengineOptions={{ events: { recordKind: 'new' } }}(or'existing'), or setlifecycle: falseto keep the legacy root load/edit/change behavior andfieldInteractions: []to opt out of interactions (51ea37a) - form0-core Requirement: Raised the
form0-coredependency from^0.5.1to^0.8.1(d630a26)
🚀 New Features
- Repeatable Entry Mode: Added the
repeatableEntryModeoption ('readonly'by default, or'edit') so existing rows open in view or edit mode at every nesting level, with an Edit action in view mode and no schema or record changes (583166d) - Accepted Views: Preserved accepted calculation views across the main thread and the worker (aa8e58f)
- Submission Preparation: Adopted shared record preparation and worker-based reviews for submission (2b129f3)
🐛 Bug Fixes
- Automatic Click Events: Reserved automatic click events for activation fields, since no built-in control emits click (4426b7b)
- Repeatable Choices: Normalized repeatable choice operations in events (8d93c7f)
- Other Selection: Preserved the Other selection when its text is cleared (189663f)
- Editor Session: Fixed submission acknowledgement to use the current editor session (d4d141a)
- Submission Pauses: Reduced pauses during submission and guarded cooperative delivery (854f79d)
- Security Hardening: Guarded worker paths and generated event literals (e326038)
- Vitest Vulnerabilities: Patched Vitest mock registration vulnerabilities by updating
@vitest/*packages (b21bed5) - Funding Metadata: Added the funding URL to
package.jsonandpackage-lock.json(58861e7)
📚 Documentation
- README Updates: Documented
recordKindin examples, the new event defaults, theform0-core0.8.1 requirement, and therepeatableEntryModeoption with its view/edit behavior (51ea37a, 583166d)
🔧 Maintenance
- Node.js Pinning: Pinned CI and publish workflows to patched Node.js runtimes (22.23.4 and 24.22.1) (6278297)
- Renderer Tests: Added tests for live calculations across cached evaluations and for schema reload replacing calculations and events (222dbd9, 9f28145)
- Event Tests: Updated tests to await state publication after change operations (c7d61a3)
- Development Merge: Merged pull request #84 from
development(ce26869) - Version Bump: Bumped version to 0.5.0 (d630a26)
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's Changed
🚀 New Features
- Managed Event Lifecycle: Added opt-in lifecycle events (
load,new/edit,change,cancel,unload) with explicitrecordKindand optionalfocus/blur/clickfield interactions viaengineOptions.events(bf1c0a3) - Event Controller: Added
onEventControllerwithdispatch()andprepareSave(), both returning promises in every execution mode (bf1c0a3) - Save Preparation: Added
prepareSaveto validate, run pre-save hooks, await delegated operations and return a final payload without persisting or closing the editor (bf1c0a3) - Custom Validation: Added
INVALID(message)forvalidate-recordhandlers, reported as scope-level findings in the validation summary and navigation (bf1c0a3) - Repeatable Row Events: Added row-level events carrying
action(add,edit,remove) andaffectedInstancePath, pluschange-statusfor user changes to status fields (bf1c0a3) - Worker Event Support: Added event and save-preparation transport in worker mode, keeping callbacks and alerts on the host (bf1c0a3)
📚 Documentation
- Managed Events Guide: Added a README section covering lifecycle options, the controller API,
prepareSavebehavior,INVALID, row requests and worker limits (bf1c0a3)
🔧 Maintenance
- Core Upgrade: Updated
form0-corefrom^0.4.1to^0.5.1, now the minimum required version (f6c0332) - Test Tooling: Patched test tooling dependencies (f6c0332)
- Version Bump: Bumped package version to 0.4.0 (ac1e0a3)
- Development Merge: Merged pull request #82 from
development(9ed01f8)
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
🚀 New Features
- Engine Options: Added
engineOptionsprop onFormRenderer, forwarding helpers, security,onWarning,onUpdate,onOperationsand diagnostic controls to root and repeatable-row engines (ed137e9) - Calculation Diagnostics: Added
onDiagnostics(snapshot, meta)callback reporting calculation findings per evaluation, with scope, instance path (including repeatable rows) and evaluation metadata (ed137e9) - Console Reporting: Added
diagnostics.consoleoption to control console output, enabled by default and de-duplicating identical repeats (ed137e9) - Scope Lifecycle: Added
scope-endednotification when an editor closes, an engine or schema is replaced, or the form unmounts (ed137e9) - Operations Callback: Added
onOperations(operations, meta, applyDefault)for handling non-alert operations, with default processing preserved when omitted (ed137e9) - Worker Mode Support: Added diagnostics and engine options support in worker mode, rejecting non-cloneable configuration such as function helpers with a clear error (ed137e9)
📚 Documentation
- README Guides: Added sections on engine options, calculation diagnostics and worker mode behavior (ed137e9)
🔧 Maintenance
- Worker Tests: Replaced the evaluated bootstrap in worker tests with a static adapter (d11b815)
- Version Bump: Bumped package version to 0.3.0 (67056aa)
Full Changelog: v0.2.2...v0.3.0
v0.2.2
What's Changed
🐛 Bug Fixes
- Calculated Dates: Fixed
date-style calculated fields showing the previous day in timezones west of UTC by formattingYYYY-MM-DDvalues as local calendar dates (0185c1d) - Early-Year Dates: Fixed early-year dates (years 0–99) being remapped to 1900–1999, and updated
form0-coreto^0.4.1(1170cd3)
🔧 Maintenance
- Security Patch: Updated
source-map-jsfrom 1.2.1 to 1.2.2 to address a security advisory (986c53c) - Issue Automation: Added a GitHub Actions workflow that adds new issues to the form0 project (a3a821c)
- Workflow Security: Restricted the issue workflow to minimal permissions (ef4bd2a)
- Version Bump: Bumped version to 0.2.2 (8ebdcbe)
Full Changelog: v0.2.1...v0.2.2
v0.2.1
What's Changed
🔧 Maintenance
- Copyright Update: Updated the copyright holder name in
LICENSEandpackage.jsonfrompaqu.iotopaqu technologies(50262fc) - Dependency Update: Updated
form0-coredependency from^0.2.1to^0.3.0(8f2a055)
Full Changelog: v0.2.0...v0.2.1