43b7515]
a8afd8b]
5b32de8]
54a1ecf]
63c339b]
3f1e71e]
9cef4e9]
b103676: Fix install failure caused by @internal/react-state (a private workspace package) being listed as a published dependency. The internal package is now bundled into each renderer's output at build time, so consumers no longer need to resolve it from npm.
1d755c1: External state store, store adapters, and bug fixes.### New: External State Store
The StateStore interface lets you plug in your own state management (Redux, Zustand, Jotai, XState, etc.) instead of the built-in internal store. Pass a store prop to StateProvider, JSONUIProvider, or createRenderer for controlled mode.
StateStore interface and createStateStore() factory to @json-render/coreStateProvider, JSONUIProvider, and createRenderer now accept an optional store prop for controlled modestore is provided, it becomes the single source of truth (initialState/onStateChange are ignored)store is omitted, everything works exactly as before (fully backward compatible)createStoreAdapter, immutableSetByPath, flattenToPointers) available via @json-render/core/store-utils for building custom adapters### New: Store Adapter Packages
@json-render/zustand — Zustand adapter for StateStore@json-render/redux — Redux / Redux Toolkit adapter for StateStore@json-render/jotai — Jotai adapter for StateStore### Changed: onStateChange signature updated (breaking)
The onStateChange callback now receives a single array of changed entries instead of being called once per path:
// Before
onStateChange?: (path: string, value: unknown) => void
// After
onStateChange?: (changes: Array<{ path: string; value: unknown }>) => void
### Fixed
@json-render/react/schema subpath, avoiding createContext crashes in Next.js App Router API routes@json-render/react, @json-render/react-native, and @json-render/react-pdf1d755c1]
09376db: New @json-render/react-pdf package for generating PDF documents from JSON specs.### New: @json-render/react-pdf
PDF renderer for json-render, powered by @react-pdf/renderer. Define catalogs and registries the same way as @json-render/react, but output PDF documents instead of web UI.
renderToBuffer(spec) — render a spec to an in-memory PDF bufferrenderToStream(spec) — render to a readable stream (pipe to HTTP response)renderToFile(spec, path) — render directly to a file on diskdefineRegistry / createRenderer — same API as @json-render/react for custom componentsstandardComponentDefinitions — Zod-based catalog definitions (server-safe via @json-render/react-pdf/catalog)standardComponents — React PDF implementations for all standard components@json-render/react-pdf/serverStandard components:
Includes full context support: state management, visibility conditions, actions, validation, and repeat scopes — matching the capabilities of @json-render/react.
09376db]