unstale

npm / @json-render/react

@json-render/react

What changed in @json-render/react 0.4 to 0.10, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-15.

21 breaking56 new APIs and options1 performance4 behavior and defaults7 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.3.1 on npm

@json-render/react 0.1014 changes

New APIs and options 14

  • Checkbox, Radio, and Switch form components now support the checks prop for validation.

    0.10.0release notes

  • Prop expressions can call registered functions with resolved arguments; functions are supplied through the functions prop on JSONUIProvider or createRenderer.

    0.10.0release notes

  • The ComputedFunction type is exported from @json-render/core.

    0.10.0release notes

  • Adds a cross-field validation function that aliases matches with clearer semantics.

    0.10.0release notes

  • Functions registered via catalog can be provided at runtime through the functions prop on JSONUIProvider or createRenderer.

    0.10.0release notes

  • Adds cross-field validation requiring a value to be greater than another field.

    0.10.0release notes

  • Adds cross-field validation requiring a value to be less than another field; supports numbers, strings, and coerced values.

    0.10.0release notes

  • Adds cross-field validation that makes a field required only when a condition field is truthy.

    0.10.0release notes

  • The validateForm action's state path is configurable through the statePath parameter.

    0.10.0release notes

  • Template expressions interpolate state values into strings; references to missing paths resolve to an empty string.

    0.10.0release notes

  • Adds a hook for non-throwing access to validation context.

    0.10.0release notes

  • A built-in React action validates all registered form fields synchronously and writes { valid, errors } to state, defaulting to /formValidation.

    0.10.0release notes

  • Form components now accept validateOn to control validation timing; Checkbox, Radio, Switch, Input, Textarea, and Select support it.

    0.10.0release notes

  • Elements can map state paths to action bindings; watchers fire when values change, not on initial render, and support cascading dependencies.

    0.10.0release notes

@json-render/react 0.911 changes

Breaking changes 1

  • The callback now receives one array of changed entries instead of being called once per path.

    0.9.0release notes

New APIs and options 7

  • A factory for creating a StateStore was added to @json-render/core.

    0.9.0release notes

  • Store utilities are available through this subpath for building custom adapters.

    0.9.0release notes

  • A Jotai adapter for StateStore is available as a new package.

    0.9.0release notes

  • A Redux / Redux Toolkit adapter for StateStore is available as a new package.

    0.9.0release notes

  • A Zustand adapter for StateStore is available as a new package.

    0.9.0release notes

  • Accepts an optional store prop for controlled mode; when provided, the store is the single source of truth.

    0.9.0release notes

  • A new interface lets developers plug in external state management instead of the built-in internal store.

    0.9.0release notes

Behavior and default changes 1

  • The internal package is bundled into each renderer's output at build time, so consumers no longer need to resolve it from npm.

    0.9.1release notes

Fixes and other changes 2

  • Chaining actions was fixed in @json-render/react.

    0.9.0release notes

  • Schema imports use the server-safe subpath, avoiding createContext crashes in Next.js App Router API routes.

    0.9.0release notes

@json-render/react 0.79 changes

New APIs and options 7

  • Action bindings can request prevention of default browser behavior, such as navigation on links.

    0.7.0release notes

  • Adds a catalog-agnostic base type for component render functions, useful for reusable component libraries not tied to a specific catalog.

    0.7.0release notes

  • Schemas can declare actions that are always available at runtime and automatically injected into prompts; the React schema declares setState, pushState, and removeState this way.

    0.7.0release notes

  • New package providing 30+ pre-built shadcn/ui components for use with defineCatalog and defineRegistry.

    0.7.0release notes

  • Components now receive an on(event) function alongside emit(event); it returns an EventHandle with emit(), shouldPreventDefault, and bound metadata.

    0.7.0release notes

  • Adds Zod-based catalog definitions for the shadcn/ui components, available without a React dependency via the catalog entry point.

    0.7.0release notes

  • Adds React implementations for the shadcn/ui component library.

    0.7.0release notes

Behavior and default changes 1

  • The actions field is required only when the catalog declares actions; catalogs with no actions no longer need to pass an empty actions object.

    0.7.0release notes

Fixes and other changes 1

  • The transform splits text blocks around spec data by emitting text-end/text-start pairs, preserving prose and UI interleaving in message.parts.

    0.7.0release notes

@json-render/react 0.647 changes

Breaking changes 18

  • Auth visibility conditions are removed; model auth as regular state.

    0.6.0release notes

  • AuthState is removed; model auth as regular state.

    0.6.0release notes

  • The legacy catalog type is removed.

    0.6.0release notes

  • The legacy catalog API is removed.

    0.6.0release notes

  • The React export is removed.

    0.6.0release notes

  • DynamicValue changes its path field from path to $state.

    0.6.0release notes

  • The actionHandlers prop is renamed to handlers.

    0.6.0release notes

  • The old $path expression form is replaced by $state, $item, and $index expressions.

    0.6.0release notes

  • The old path expression form is replaced by $state, $item, and $index expressions.

    0.6.0release notes

  • The repeat.path field is renamed to repeat.statePath.

    0.6.0release notes

  • Repeat scope passes the actual item object instead of requiring token rewriting.

    0.6.0release notes

  • The path field in setState action params is renamed to statePath.

    0.6.0release notes

  • The codegen type is renamed to TreeVisitor.

    0.6.0release notes

  • Structured expressions use $state for state paths in props and visibility conditions, replacing the previous path forms.

    0.6.0release notes

  • Replaces traverseTree in the codegen API.

    0.6.0release notes

  • The codegen API is renamed to traverseSpec.

    0.6.0release notes

  • Replaces SpecVisitor in the codegen API.

    0.6.0release notes

  • Visibility conditions use $state instead of path and $and/$or instead of and/or; not is an operator flag.

    0.6.0release notes

New APIs and options 26

  • Action params are resolved through resolveActionParam, supporting $item, $index, and $state.

    0.6.0release notes

  • Visibility logic supports $and and $or expressions, with implicit AND via arrays.

    0.6.0release notes

  • Adds a typed convenience wrapper for applying a single patch to a Spec.

    0.6.0release notes

  • Props can use $bindItem expressions for two-way data binding; the renderer passes a bindings map to components to enable write-back to state.

    0.6.0release notes

  • Props can use $bindState expressions for two-way data binding; the renderer passes a bindings map to components to enable write-back to state.

    0.6.0release notes

  • Adds a utility for working with AI SDK message parts.

    0.6.0release notes

  • The mode option accepts chat to generate a chat-aware system prompt for text and inline JSONL.

    0.6.0release notes

  • Provides a low-level TransformStream for custom pipelines.

    0.6.0release notes

  • Adds a parser for mixed text and JSONL streams.

    0.6.0release notes

  • Adds eq as a supported visibility comparison operator.

    0.6.0release notes

  • Adds gt as a supported visibility comparison operator.

    0.6.0release notes

  • Adds gte as a supported visibility comparison operator.

    0.6.0release notes

  • Adds lt as a supported visibility comparison operator.

    0.6.0release notes

  • Adds lte as a supported visibility comparison operator.

    0.6.0release notes

  • Adds neq as a supported visibility comparison operator.

    0.6.0release notes

  • Adds a utility to convert nested tree specs to flat { root, elements } format.

    0.6.0release notes

  • Adds not as a visibility comparison operator flag.

    0.6.0release notes

  • Visibility logic supports $or and $and expressions, with implicit AND via arrays.

    0.6.0release notes

  • Server-side transform separates text from JSONL patches in a mixed stream.

    0.6.0release notes

  • Adds a utility for resolving action params.

    0.6.0release notes

  • Adds a utility for resolving binding paths.

    0.6.0release notes

  • Adds a constant for type-safe filtering of AI SDK data-spec parts.

    0.6.0release notes

  • Adds a type for AI SDK data-spec stream parts with patch, flat, and nested payloads.

    0.6.0release notes

  • Adds a two-way binding hook for $bindState and $bindItem expressions.

    0.6.0release notes

  • Adds a chat hook with message history, streaming, and spec extraction.

    0.6.0release notes

  • Adds a hook to extract spec and text from a message's parts array.

    0.6.0release notes

Performance 1

  • ElementRenderer is now React.memo'd for better performance in repeat lists.

    0.6.0release notes

Behavior and default changes 1

  • emit is always defined, so callers no longer need optional chaining.

    0.6.0release notes

Fixes and other changes 1

  • Fixes an infinite re-render loop caused by multiple unbound form inputs registering validation at the same empty path, by stabilizing context values in ActionProvider, ValidationProvider, and useUIStream.

    0.6.1release notes

@json-render/react 0.54 changes

Breaking changes 1

  • Errors in a component no longer crash the application; the component silently disappears instead.

    0.5.1release notes

New APIs and options 1

  • Adds an optional example field, with Zod schema introspection as a fallback.

    0.5.2release notes

Fixes and other changes 2

  • Prompt examples are dynamically generated from the user's catalog instead of hardcoding component names, helping fix LLM hallucinations.

    0.5.2release notes

  • Handles non-string option values from AI output.

    0.5.1release notes

@json-render/react 0.44 changes

Breaking changes 1

New APIs and options 1

Behavior and default changes 1

  • The system prompt now includes the remove operation, affecting the operations available to generated output.

    0.4.3release notes

Fixes and other changes 1