Sfoglia il codice sorgente

chore: version packages (#166)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
github-actions[bot] 4 mesi fa
parent
commit
c2b397510e
49 ha cambiato i file con 553 aggiunte e 98 eliminazioni
  1. 0 74
      .changeset/v0-10-release.md
  2. 9 0
      apps/web/CHANGELOG.md
  3. 1 1
      apps/web/package.json
  4. 9 0
      examples/chat/CHANGELOG.md
  5. 1 1
      examples/chat/package.json
  6. 9 0
      examples/dashboard/CHANGELOG.md
  7. 1 1
      examples/dashboard/package.json
  8. 9 0
      examples/no-ai/CHANGELOG.md
  9. 1 1
      examples/no-ai/package.json
  10. 8 0
      examples/react-native/CHANGELOG.md
  11. 1 1
      examples/react-native/package.json
  12. 8 0
      examples/react-pdf/CHANGELOG.md
  13. 1 1
      examples/react-pdf/package.json
  14. 8 0
      examples/remotion/CHANGELOG.md
  15. 1 1
      examples/remotion/package.json
  16. 8 0
      examples/stripe-app/drawer-app/CHANGELOG.md
  17. 1 1
      examples/stripe-app/drawer-app/package.json
  18. 8 0
      examples/stripe-app/fullpage-app/CHANGELOG.md
  19. 1 1
      examples/stripe-app/fullpage-app/package.json
  20. 10 0
      examples/vite-renderers/CHANGELOG.md
  21. 1 1
      examples/vite-renderers/package.json
  22. 9 0
      examples/vue/CHANGELOG.md
  23. 1 1
      examples/vue/package.json
  24. 7 0
      packages/codegen/CHANGELOG.md
  25. 1 1
      packages/codegen/package.json
  26. 71 0
      packages/core/CHANGELOG.md
  27. 1 1
      packages/core/package.json
  28. 7 0
      packages/jotai/CHANGELOG.md
  29. 1 1
      packages/jotai/package.json
  30. 7 0
      packages/react-native/CHANGELOG.md
  31. 1 1
      packages/react-native/package.json
  32. 7 0
      packages/react-pdf/CHANGELOG.md
  33. 1 1
      packages/react-pdf/package.json
  34. 7 0
      packages/react-state/CHANGELOG.md
  35. 1 1
      packages/react-state/package.json
  36. 76 0
      packages/react/CHANGELOG.md
  37. 1 1
      packages/react/package.json
  38. 7 0
      packages/redux/CHANGELOG.md
  39. 1 1
      packages/redux/package.json
  40. 7 0
      packages/remotion/CHANGELOG.md
  41. 1 1
      packages/remotion/package.json
  42. 77 0
      packages/shadcn/CHANGELOG.md
  43. 1 1
      packages/shadcn/package.json
  44. 77 0
      packages/vue/CHANGELOG.md
  45. 1 1
      packages/vue/package.json
  46. 77 0
      packages/xstate/CHANGELOG.md
  47. 1 1
      packages/xstate/package.json
  48. 7 0
      packages/zustand/CHANGELOG.md
  49. 1 1
      packages/zustand/package.json

+ 0 - 74
.changeset/v0-10-release.md

@@ -1,74 +0,0 @@
----
-"@json-render/core": minor
-"@json-render/react": minor
-"@json-render/shadcn": minor
-"@json-render/vue": minor
-"@json-render/xstate": minor
----
-
-Dynamic forms, Vue renderer, XState Store adapter, and computed values.
-
-### New: `@json-render/vue` Package
-
-Vue 3 renderer for json-render. Full feature parity with `@json-render/react` including data binding, visibility conditions, actions, validation, repeat scopes, and streaming.
-- `defineRegistry` — create type-safe component registries from catalogs
-- `Renderer` — render specs as Vue component trees
-- Providers: `StateProvider`, `ActionProvider`, `VisibilityProvider`, `ValidationProvider`
-- Composables: `useStateStore`, `useStateValue`, `useStateBinding`, `useActions`, `useAction`, `useIsVisible`, `useFieldValidation`
-- Streaming: `useUIStream`, `useChatUI`
-- External store support via `StateStore` interface
-
-### New: `@json-render/xstate` Package
-
-XState Store (atom) adapter for json-render's `StateStore` interface. Wire an `@xstate/store` atom as the state backend.
-- `xstateStoreStateStore({ atom })` — creates a `StateStore` from an `@xstate/store` atom
-- Requires `@xstate/store` v3+
-
-### New: `$computed` Expressions
-
-Call registered functions from prop expressions:
-- `{ "$computed": "functionName", "args": { "key": <expression> } }` — calls a named function with resolved args
-- Functions registered via catalog and provided at runtime through `functions` prop on `JSONUIProvider` / `createRenderer`
-- `ComputedFunction` type exported from `@json-render/core`
-
-### New: `$template` Expressions
-
-Interpolate state values into strings:
-- `{ "$template": "Hello, ${/user/name}!" }` — replaces `${/path}` references with state values
-- Missing paths resolve to empty string
-
-### New: State Watchers
-
-React to state changes by triggering actions:
-- `watch` field on elements maps state paths to action bindings
-- Fires when watched values change (not on initial render)
-- Supports cascading dependencies (e.g. country → city loading)
-- `watch` is a top-level field on elements (sibling of type/props/children), not inside props
-- Spec validator detects and auto-fixes `watch` placed inside props
-
-### New: Cross-Field Validation Functions
-
-New built-in validation functions for cross-field comparisons:
-- `equalTo` — alias for `matches` with clearer semantics
-- `lessThan` — value must be less than another field (numbers, strings, coerced)
-- `greaterThan` — value must be greater than another field
-- `requiredIf` — required only when a condition field is truthy
-- Validation args now resolve through `resolvePropValue` for consistent `$state` expression handling
-
-### New: `validateForm` Action (React)
-
-Built-in action that validates all registered form fields at once:
-- Runs `validateAll()` synchronously and writes `{ valid, errors }` to state
-- Default state path: `/formValidation` (configurable via `statePath` param)
-- Added to React schema's built-in actions list
-
-### Improved: shadcn/ui Validation
-
-All form components now support validation:
-- Checkbox, Radio, Switch — added `checks` and `validateOn` props
-- Input, Textarea, Select — added `validateOn` prop (controls timing: change/blur/submit)
-- Shared validation schemas reduce catalog definition duplication
-
-### Improved: React Provider Tree
-
-Reordered provider nesting so `ValidationProvider` wraps `ActionProvider`, enabling `validateForm` to access validation state. Added `useOptionalValidation` hook for non-throwing access.

+ 9 - 0
apps/web/CHANGELOG.md

@@ -1,5 +1,14 @@
 # web
 
+## 0.1.3
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/react@0.10.0
+  - @json-render/codegen@0.10.0
+
 ## 0.1.2
 
 ### Patch Changes

+ 1 - 1
apps/web/package.json

@@ -1,6 +1,6 @@
 {
   "name": "web",
-  "version": "0.1.2",
+  "version": "0.1.3",
   "type": "module",
   "private": true,
   "license": "Apache-2.0",

+ 9 - 0
examples/chat/CHANGELOG.md

@@ -1,5 +1,14 @@
 # example-chat
 
+## 0.1.3
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/react@0.10.0
+  - @json-render/shadcn@0.10.0
+
 ## 0.1.2
 
 ### Patch Changes

+ 1 - 1
examples/chat/package.json

@@ -1,6 +1,6 @@
 {
   "name": "example-chat",
-  "version": "0.1.2",
+  "version": "0.1.3",
   "type": "module",
   "private": true,
   "scripts": {

+ 9 - 0
examples/dashboard/CHANGELOG.md

@@ -1,5 +1,14 @@
 # example-dashboard
 
+## 0.1.3
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/react@0.10.0
+  - @json-render/codegen@0.10.0
+
 ## 0.1.2
 
 ### Patch Changes

+ 1 - 1
examples/dashboard/package.json

@@ -1,6 +1,6 @@
 {
   "name": "example-dashboard",
-  "version": "0.1.2",
+  "version": "0.1.3",
   "type": "module",
   "private": true,
   "scripts": {

+ 9 - 0
examples/no-ai/CHANGELOG.md

@@ -1,5 +1,14 @@
 # example-no-ai
 
+## 0.1.3
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/react@0.10.0
+  - @json-render/shadcn@0.10.0
+
 ## 0.1.2
 
 ### Patch Changes

+ 1 - 1
examples/no-ai/package.json

@@ -1,6 +1,6 @@
 {
   "name": "example-no-ai",
-  "version": "0.1.2",
+  "version": "0.1.3",
   "type": "module",
   "private": true,
   "scripts": {

+ 8 - 0
examples/react-native/CHANGELOG.md

@@ -1,5 +1,13 @@
 # example-react-native
 
+## 0.1.3
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/react-native@0.10.0
+
 ## 0.1.2
 
 ### Patch Changes

+ 1 - 1
examples/react-native/package.json

@@ -1,6 +1,6 @@
 {
   "name": "example-react-native",
-  "version": "0.1.2",
+  "version": "0.1.3",
   "private": true,
   "main": "expo-router/entry",
   "scripts": {

+ 8 - 0
examples/react-pdf/CHANGELOG.md

@@ -1,5 +1,13 @@
 # example-react-pdf
 
+## 0.1.3
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/react-pdf@0.10.0
+
 ## 0.1.2
 
 ### Patch Changes

+ 1 - 1
examples/react-pdf/package.json

@@ -1,6 +1,6 @@
 {
   "name": "example-react-pdf",
-  "version": "0.1.2",
+  "version": "0.1.3",
   "type": "module",
   "private": true,
   "scripts": {

+ 8 - 0
examples/remotion/CHANGELOG.md

@@ -1,5 +1,13 @@
 # example-remotion
 
+## 0.1.3
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/remotion@0.10.0
+
 ## 0.1.2
 
 ### Patch Changes

+ 1 - 1
examples/remotion/package.json

@@ -1,6 +1,6 @@
 {
   "name": "example-remotion",
-  "version": "0.1.2",
+  "version": "0.1.3",
   "type": "module",
   "private": true,
   "scripts": {

+ 8 - 0
examples/stripe-app/drawer-app/CHANGELOG.md

@@ -1,5 +1,13 @@
 # com.example.json-render-demo
 
+## 0.0.4
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/react@0.10.0
+
 ## 0.0.3
 
 ### Patch Changes

+ 1 - 1
examples/stripe-app/drawer-app/package.json

@@ -1,6 +1,6 @@
 {
   "name": "com.example.json-render-demo",
-  "version": "0.0.3",
+  "version": "0.0.4",
   "description": "Test",
   "private": true,
   "license": "~~proprietary~~",

+ 8 - 0
examples/stripe-app/fullpage-app/CHANGELOG.md

@@ -1,5 +1,13 @@
 # com.example.json-render-fullpage-demo
 
+## 0.0.4
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/react@0.10.0
+
 ## 0.0.3
 
 ### Patch Changes

+ 1 - 1
examples/stripe-app/fullpage-app/package.json

@@ -1,6 +1,6 @@
 {
   "name": "com.example.json-render-fullpage-demo",
-  "version": "0.0.3",
+  "version": "0.0.4",
   "description": "Full-page Stripe App example (alpha)",
   "private": true,
   "license": "~~proprietary~~",

+ 10 - 0
examples/vite-renderers/CHANGELOG.md

@@ -0,0 +1,10 @@
+# vite-renderers
+
+## 0.1.1
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/react@0.10.0
+  - @json-render/vue@0.10.0

+ 1 - 1
examples/vite-renderers/package.json

@@ -1,6 +1,6 @@
 {
   "name": "vite-renderers",
-  "version": "0.1.0",
+  "version": "0.1.1",
   "private": true,
   "scripts": {
     "dev": "portless vite-renderers.json-render vite",

+ 9 - 0
examples/vue/CHANGELOG.md

@@ -0,0 +1,9 @@
+# example-vue
+
+## 0.1.1
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/vue@0.10.0

+ 1 - 1
examples/vue/package.json

@@ -1,6 +1,6 @@
 {
   "name": "example-vue",
-  "version": "0.1.0",
+  "version": "0.1.1",
   "private": true,
   "scripts": {
     "dev": "portless vue.json-render vite",

+ 7 - 0
packages/codegen/CHANGELOG.md

@@ -1,5 +1,12 @@
 # @json-render/codegen
 
+## 0.10.0
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+
 ## 0.9.1
 
 ### Patch Changes

+ 1 - 1
packages/codegen/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/codegen",
-  "version": "0.9.1",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "Utilities for generating code from json-render UI trees",
   "keywords": [

+ 71 - 0
packages/core/CHANGELOG.md

@@ -1,5 +1,76 @@
 # @json-render/core
 
+## 0.10.0
+
+### Minor Changes
+
+- 9cef4e9: Dynamic forms, Vue renderer, XState Store adapter, and computed values.
+
+  ### New: `@json-render/vue` Package
+
+  Vue 3 renderer for json-render. Full feature parity with `@json-render/react` including data binding, visibility conditions, actions, validation, repeat scopes, and streaming.
+  - `defineRegistry` — create type-safe component registries from catalogs
+  - `Renderer` — render specs as Vue component trees
+  - Providers: `StateProvider`, `ActionProvider`, `VisibilityProvider`, `ValidationProvider`
+  - Composables: `useStateStore`, `useStateValue`, `useStateBinding`, `useActions`, `useAction`, `useIsVisible`, `useFieldValidation`
+  - Streaming: `useUIStream`, `useChatUI`
+  - External store support via `StateStore` interface
+
+  ### New: `@json-render/xstate` Package
+
+  XState Store (atom) adapter for json-render's `StateStore` interface. Wire an `@xstate/store` atom as the state backend.
+  - `xstateStoreStateStore({ atom })` — creates a `StateStore` from an `@xstate/store` atom
+  - Requires `@xstate/store` v3+
+
+  ### New: `$computed` Expressions
+
+  Call registered functions from prop expressions:
+  - `{ "$computed": "functionName", "args": { "key": <expression> } }` — calls a named function with resolved args
+  - Functions registered via catalog and provided at runtime through `functions` prop on `JSONUIProvider` / `createRenderer`
+  - `ComputedFunction` type exported from `@json-render/core`
+
+  ### New: `$template` Expressions
+
+  Interpolate state values into strings:
+  - `{ "$template": "Hello, ${/user/name}!" }` — replaces `${/path}` references with state values
+  - Missing paths resolve to empty string
+
+  ### New: State Watchers
+
+  React to state changes by triggering actions:
+  - `watch` field on elements maps state paths to action bindings
+  - Fires when watched values change (not on initial render)
+  - Supports cascading dependencies (e.g. country → city loading)
+  - `watch` is a top-level field on elements (sibling of type/props/children), not inside props
+  - Spec validator detects and auto-fixes `watch` placed inside props
+
+  ### New: Cross-Field Validation Functions
+
+  New built-in validation functions for cross-field comparisons:
+  - `equalTo` — alias for `matches` with clearer semantics
+  - `lessThan` — value must be less than another field (numbers, strings, coerced)
+  - `greaterThan` — value must be greater than another field
+  - `requiredIf` — required only when a condition field is truthy
+  - Validation args now resolve through `resolvePropValue` for consistent `$state` expression handling
+
+  ### New: `validateForm` Action (React)
+
+  Built-in action that validates all registered form fields at once:
+  - Runs `validateAll()` synchronously and writes `{ valid, errors }` to state
+  - Default state path: `/formValidation` (configurable via `statePath` param)
+  - Added to React schema's built-in actions list
+
+  ### Improved: shadcn/ui Validation
+
+  All form components now support validation:
+  - Checkbox, Radio, Switch — added `checks` and `validateOn` props
+  - Input, Textarea, Select — added `validateOn` prop (controls timing: change/blur/submit)
+  - Shared validation schemas reduce catalog definition duplication
+
+  ### Improved: React Provider Tree
+
+  Reordered provider nesting so `ValidationProvider` wraps `ActionProvider`, enabling `validateForm` to access validation state. Added `useOptionalValidation` hook for non-throwing access.
+
 ## 0.9.1
 
 ## 0.9.0

+ 1 - 1
packages/core/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/core",
-  "version": "0.9.1",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "JSON becomes real things. Define your catalog, register your components, let AI generate.",
   "keywords": [

+ 7 - 0
packages/jotai/CHANGELOG.md

@@ -1,5 +1,12 @@
 # @json-render/jotai
 
+## 0.10.0
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+
 ## 0.9.1
 
 ### Patch Changes

+ 1 - 1
packages/jotai/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/jotai",
-  "version": "0.9.1",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "Jotai adapter for json-render StateStore",
   "keywords": [

+ 7 - 0
packages/react-native/CHANGELOG.md

@@ -1,5 +1,12 @@
 # @json-render/react-native
 
+## 0.10.0
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+
 ## 0.9.1
 
 ### Patch Changes

+ 1 - 1
packages/react-native/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/react-native",
-  "version": "0.9.1",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "React Native renderer for @json-render/core. JSON becomes React Native components.",
   "keywords": [

+ 7 - 0
packages/react-pdf/CHANGELOG.md

@@ -1,5 +1,12 @@
 # @json-render/react-pdf
 
+## 0.10.0
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+
 ## 0.9.1
 
 ### Patch Changes

+ 1 - 1
packages/react-pdf/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/react-pdf",
-  "version": "0.9.1",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "React PDF renderer for @json-render/core. JSON becomes PDF documents.",
   "keywords": [

+ 7 - 0
packages/react-state/CHANGELOG.md

@@ -1,5 +1,12 @@
 # @internal/react-state
 
+## 0.8.3
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+
 ## 0.8.2
 
 ### Patch Changes

+ 1 - 1
packages/react-state/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@internal/react-state",
-  "version": "0.8.2",
+  "version": "0.8.3",
   "private": true,
   "license": "Apache-2.0",
   "description": "Shared React state context for json-render renderer packages",

+ 76 - 0
packages/react/CHANGELOG.md

@@ -1,5 +1,81 @@
 # @json-render/react
 
+## 0.10.0
+
+### Minor Changes
+
+- 9cef4e9: Dynamic forms, Vue renderer, XState Store adapter, and computed values.
+
+  ### New: `@json-render/vue` Package
+
+  Vue 3 renderer for json-render. Full feature parity with `@json-render/react` including data binding, visibility conditions, actions, validation, repeat scopes, and streaming.
+  - `defineRegistry` — create type-safe component registries from catalogs
+  - `Renderer` — render specs as Vue component trees
+  - Providers: `StateProvider`, `ActionProvider`, `VisibilityProvider`, `ValidationProvider`
+  - Composables: `useStateStore`, `useStateValue`, `useStateBinding`, `useActions`, `useAction`, `useIsVisible`, `useFieldValidation`
+  - Streaming: `useUIStream`, `useChatUI`
+  - External store support via `StateStore` interface
+
+  ### New: `@json-render/xstate` Package
+
+  XState Store (atom) adapter for json-render's `StateStore` interface. Wire an `@xstate/store` atom as the state backend.
+  - `xstateStoreStateStore({ atom })` — creates a `StateStore` from an `@xstate/store` atom
+  - Requires `@xstate/store` v3+
+
+  ### New: `$computed` Expressions
+
+  Call registered functions from prop expressions:
+  - `{ "$computed": "functionName", "args": { "key": <expression> } }` — calls a named function with resolved args
+  - Functions registered via catalog and provided at runtime through `functions` prop on `JSONUIProvider` / `createRenderer`
+  - `ComputedFunction` type exported from `@json-render/core`
+
+  ### New: `$template` Expressions
+
+  Interpolate state values into strings:
+  - `{ "$template": "Hello, ${/user/name}!" }` — replaces `${/path}` references with state values
+  - Missing paths resolve to empty string
+
+  ### New: State Watchers
+
+  React to state changes by triggering actions:
+  - `watch` field on elements maps state paths to action bindings
+  - Fires when watched values change (not on initial render)
+  - Supports cascading dependencies (e.g. country → city loading)
+  - `watch` is a top-level field on elements (sibling of type/props/children), not inside props
+  - Spec validator detects and auto-fixes `watch` placed inside props
+
+  ### New: Cross-Field Validation Functions
+
+  New built-in validation functions for cross-field comparisons:
+  - `equalTo` — alias for `matches` with clearer semantics
+  - `lessThan` — value must be less than another field (numbers, strings, coerced)
+  - `greaterThan` — value must be greater than another field
+  - `requiredIf` — required only when a condition field is truthy
+  - Validation args now resolve through `resolvePropValue` for consistent `$state` expression handling
+
+  ### New: `validateForm` Action (React)
+
+  Built-in action that validates all registered form fields at once:
+  - Runs `validateAll()` synchronously and writes `{ valid, errors }` to state
+  - Default state path: `/formValidation` (configurable via `statePath` param)
+  - Added to React schema's built-in actions list
+
+  ### Improved: shadcn/ui Validation
+
+  All form components now support validation:
+  - Checkbox, Radio, Switch — added `checks` and `validateOn` props
+  - Input, Textarea, Select — added `validateOn` prop (controls timing: change/blur/submit)
+  - Shared validation schemas reduce catalog definition duplication
+
+  ### Improved: React Provider Tree
+
+  Reordered provider nesting so `ValidationProvider` wraps `ActionProvider`, enabling `validateForm` to access validation state. Added `useOptionalValidation` hook for non-throwing access.
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+
 ## 0.9.1
 
 ### Patch Changes

+ 1 - 1
packages/react/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/react",
-  "version": "0.9.1",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "React renderer for @json-render/core. JSON becomes React components.",
   "keywords": [

+ 7 - 0
packages/redux/CHANGELOG.md

@@ -1,5 +1,12 @@
 # @json-render/redux
 
+## 0.10.0
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+
 ## 0.9.1
 
 ### Patch Changes

+ 1 - 1
packages/redux/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/redux",
-  "version": "0.9.1",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "Redux adapter for json-render StateStore",
   "keywords": [

+ 7 - 0
packages/remotion/CHANGELOG.md

@@ -1,5 +1,12 @@
 # @json-render/remotion
 
+## 0.10.0
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+
 ## 0.9.1
 
 ### Patch Changes

+ 1 - 1
packages/remotion/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/remotion",
-  "version": "0.9.1",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "Remotion renderer for @json-render/core. JSON becomes video compositions.",
   "keywords": [

+ 77 - 0
packages/shadcn/CHANGELOG.md

@@ -1,5 +1,82 @@
 # @json-render/shadcn
 
+## 0.10.0
+
+### Minor Changes
+
+- 9cef4e9: Dynamic forms, Vue renderer, XState Store adapter, and computed values.
+
+  ### New: `@json-render/vue` Package
+
+  Vue 3 renderer for json-render. Full feature parity with `@json-render/react` including data binding, visibility conditions, actions, validation, repeat scopes, and streaming.
+  - `defineRegistry` — create type-safe component registries from catalogs
+  - `Renderer` — render specs as Vue component trees
+  - Providers: `StateProvider`, `ActionProvider`, `VisibilityProvider`, `ValidationProvider`
+  - Composables: `useStateStore`, `useStateValue`, `useStateBinding`, `useActions`, `useAction`, `useIsVisible`, `useFieldValidation`
+  - Streaming: `useUIStream`, `useChatUI`
+  - External store support via `StateStore` interface
+
+  ### New: `@json-render/xstate` Package
+
+  XState Store (atom) adapter for json-render's `StateStore` interface. Wire an `@xstate/store` atom as the state backend.
+  - `xstateStoreStateStore({ atom })` — creates a `StateStore` from an `@xstate/store` atom
+  - Requires `@xstate/store` v3+
+
+  ### New: `$computed` Expressions
+
+  Call registered functions from prop expressions:
+  - `{ "$computed": "functionName", "args": { "key": <expression> } }` — calls a named function with resolved args
+  - Functions registered via catalog and provided at runtime through `functions` prop on `JSONUIProvider` / `createRenderer`
+  - `ComputedFunction` type exported from `@json-render/core`
+
+  ### New: `$template` Expressions
+
+  Interpolate state values into strings:
+  - `{ "$template": "Hello, ${/user/name}!" }` — replaces `${/path}` references with state values
+  - Missing paths resolve to empty string
+
+  ### New: State Watchers
+
+  React to state changes by triggering actions:
+  - `watch` field on elements maps state paths to action bindings
+  - Fires when watched values change (not on initial render)
+  - Supports cascading dependencies (e.g. country → city loading)
+  - `watch` is a top-level field on elements (sibling of type/props/children), not inside props
+  - Spec validator detects and auto-fixes `watch` placed inside props
+
+  ### New: Cross-Field Validation Functions
+
+  New built-in validation functions for cross-field comparisons:
+  - `equalTo` — alias for `matches` with clearer semantics
+  - `lessThan` — value must be less than another field (numbers, strings, coerced)
+  - `greaterThan` — value must be greater than another field
+  - `requiredIf` — required only when a condition field is truthy
+  - Validation args now resolve through `resolvePropValue` for consistent `$state` expression handling
+
+  ### New: `validateForm` Action (React)
+
+  Built-in action that validates all registered form fields at once:
+  - Runs `validateAll()` synchronously and writes `{ valid, errors }` to state
+  - Default state path: `/formValidation` (configurable via `statePath` param)
+  - Added to React schema's built-in actions list
+
+  ### Improved: shadcn/ui Validation
+
+  All form components now support validation:
+  - Checkbox, Radio, Switch — added `checks` and `validateOn` props
+  - Input, Textarea, Select — added `validateOn` prop (controls timing: change/blur/submit)
+  - Shared validation schemas reduce catalog definition duplication
+
+  ### Improved: React Provider Tree
+
+  Reordered provider nesting so `ValidationProvider` wraps `ActionProvider`, enabling `validateForm` to access validation state. Added `useOptionalValidation` hook for non-throwing access.
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+  - @json-render/react@0.10.0
+
 ## 0.9.1
 
 ### Patch Changes

+ 1 - 1
packages/shadcn/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/shadcn",
-  "version": "0.9.1",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "shadcn/ui component library for @json-render/core. JSON becomes beautiful Tailwind-styled React components.",
   "keywords": [

+ 77 - 0
packages/vue/CHANGELOG.md

@@ -0,0 +1,77 @@
+# @json-render/vue
+
+## 0.10.0
+
+### Minor Changes
+
+- 9cef4e9: Dynamic forms, Vue renderer, XState Store adapter, and computed values.
+
+  ### New: `@json-render/vue` Package
+
+  Vue 3 renderer for json-render. Full feature parity with `@json-render/react` including data binding, visibility conditions, actions, validation, repeat scopes, and streaming.
+  - `defineRegistry` — create type-safe component registries from catalogs
+  - `Renderer` — render specs as Vue component trees
+  - Providers: `StateProvider`, `ActionProvider`, `VisibilityProvider`, `ValidationProvider`
+  - Composables: `useStateStore`, `useStateValue`, `useStateBinding`, `useActions`, `useAction`, `useIsVisible`, `useFieldValidation`
+  - Streaming: `useUIStream`, `useChatUI`
+  - External store support via `StateStore` interface
+
+  ### New: `@json-render/xstate` Package
+
+  XState Store (atom) adapter for json-render's `StateStore` interface. Wire an `@xstate/store` atom as the state backend.
+  - `xstateStoreStateStore({ atom })` — creates a `StateStore` from an `@xstate/store` atom
+  - Requires `@xstate/store` v3+
+
+  ### New: `$computed` Expressions
+
+  Call registered functions from prop expressions:
+  - `{ "$computed": "functionName", "args": { "key": <expression> } }` — calls a named function with resolved args
+  - Functions registered via catalog and provided at runtime through `functions` prop on `JSONUIProvider` / `createRenderer`
+  - `ComputedFunction` type exported from `@json-render/core`
+
+  ### New: `$template` Expressions
+
+  Interpolate state values into strings:
+  - `{ "$template": "Hello, ${/user/name}!" }` — replaces `${/path}` references with state values
+  - Missing paths resolve to empty string
+
+  ### New: State Watchers
+
+  React to state changes by triggering actions:
+  - `watch` field on elements maps state paths to action bindings
+  - Fires when watched values change (not on initial render)
+  - Supports cascading dependencies (e.g. country → city loading)
+  - `watch` is a top-level field on elements (sibling of type/props/children), not inside props
+  - Spec validator detects and auto-fixes `watch` placed inside props
+
+  ### New: Cross-Field Validation Functions
+
+  New built-in validation functions for cross-field comparisons:
+  - `equalTo` — alias for `matches` with clearer semantics
+  - `lessThan` — value must be less than another field (numbers, strings, coerced)
+  - `greaterThan` — value must be greater than another field
+  - `requiredIf` — required only when a condition field is truthy
+  - Validation args now resolve through `resolvePropValue` for consistent `$state` expression handling
+
+  ### New: `validateForm` Action (React)
+
+  Built-in action that validates all registered form fields at once:
+  - Runs `validateAll()` synchronously and writes `{ valid, errors }` to state
+  - Default state path: `/formValidation` (configurable via `statePath` param)
+  - Added to React schema's built-in actions list
+
+  ### Improved: shadcn/ui Validation
+
+  All form components now support validation:
+  - Checkbox, Radio, Switch — added `checks` and `validateOn` props
+  - Input, Textarea, Select — added `validateOn` prop (controls timing: change/blur/submit)
+  - Shared validation schemas reduce catalog definition duplication
+
+  ### Improved: React Provider Tree
+
+  Reordered provider nesting so `ValidationProvider` wraps `ActionProvider`, enabling `validateForm` to access validation state. Added `useOptionalValidation` hook for non-throwing access.
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0

+ 1 - 1
packages/vue/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/vue",
-  "version": "0.9.1",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "Vue renderer for @json-render/core. JSON becomes Vue components.",
   "keywords": [

+ 77 - 0
packages/xstate/CHANGELOG.md

@@ -0,0 +1,77 @@
+# @json-render/xstate
+
+## 0.10.0
+
+### Minor Changes
+
+- 9cef4e9: Dynamic forms, Vue renderer, XState Store adapter, and computed values.
+
+  ### New: `@json-render/vue` Package
+
+  Vue 3 renderer for json-render. Full feature parity with `@json-render/react` including data binding, visibility conditions, actions, validation, repeat scopes, and streaming.
+  - `defineRegistry` — create type-safe component registries from catalogs
+  - `Renderer` — render specs as Vue component trees
+  - Providers: `StateProvider`, `ActionProvider`, `VisibilityProvider`, `ValidationProvider`
+  - Composables: `useStateStore`, `useStateValue`, `useStateBinding`, `useActions`, `useAction`, `useIsVisible`, `useFieldValidation`
+  - Streaming: `useUIStream`, `useChatUI`
+  - External store support via `StateStore` interface
+
+  ### New: `@json-render/xstate` Package
+
+  XState Store (atom) adapter for json-render's `StateStore` interface. Wire an `@xstate/store` atom as the state backend.
+  - `xstateStoreStateStore({ atom })` — creates a `StateStore` from an `@xstate/store` atom
+  - Requires `@xstate/store` v3+
+
+  ### New: `$computed` Expressions
+
+  Call registered functions from prop expressions:
+  - `{ "$computed": "functionName", "args": { "key": <expression> } }` — calls a named function with resolved args
+  - Functions registered via catalog and provided at runtime through `functions` prop on `JSONUIProvider` / `createRenderer`
+  - `ComputedFunction` type exported from `@json-render/core`
+
+  ### New: `$template` Expressions
+
+  Interpolate state values into strings:
+  - `{ "$template": "Hello, ${/user/name}!" }` — replaces `${/path}` references with state values
+  - Missing paths resolve to empty string
+
+  ### New: State Watchers
+
+  React to state changes by triggering actions:
+  - `watch` field on elements maps state paths to action bindings
+  - Fires when watched values change (not on initial render)
+  - Supports cascading dependencies (e.g. country → city loading)
+  - `watch` is a top-level field on elements (sibling of type/props/children), not inside props
+  - Spec validator detects and auto-fixes `watch` placed inside props
+
+  ### New: Cross-Field Validation Functions
+
+  New built-in validation functions for cross-field comparisons:
+  - `equalTo` — alias for `matches` with clearer semantics
+  - `lessThan` — value must be less than another field (numbers, strings, coerced)
+  - `greaterThan` — value must be greater than another field
+  - `requiredIf` — required only when a condition field is truthy
+  - Validation args now resolve through `resolvePropValue` for consistent `$state` expression handling
+
+  ### New: `validateForm` Action (React)
+
+  Built-in action that validates all registered form fields at once:
+  - Runs `validateAll()` synchronously and writes `{ valid, errors }` to state
+  - Default state path: `/formValidation` (configurable via `statePath` param)
+  - Added to React schema's built-in actions list
+
+  ### Improved: shadcn/ui Validation
+
+  All form components now support validation:
+  - Checkbox, Radio, Switch — added `checks` and `validateOn` props
+  - Input, Textarea, Select — added `validateOn` prop (controls timing: change/blur/submit)
+  - Shared validation schemas reduce catalog definition duplication
+
+  ### Improved: React Provider Tree
+
+  Reordered provider nesting so `ValidationProvider` wraps `ActionProvider`, enabling `validateForm` to access validation state. Added `useOptionalValidation` hook for non-throwing access.
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0

+ 1 - 1
packages/xstate/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/xstate",
-  "version": "0.0.0",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "XState Store adapter for json-render StateStore",
   "keywords": [

+ 7 - 0
packages/zustand/CHANGELOG.md

@@ -1,5 +1,12 @@
 # @json-render/zustand
 
+## 0.10.0
+
+### Patch Changes
+
+- Updated dependencies [9cef4e9]
+  - @json-render/core@0.10.0
+
 ## 0.9.1
 
 ### Patch Changes

+ 1 - 1
packages/zustand/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@json-render/zustand",
-  "version": "0.9.1",
+  "version": "0.10.0",
   "license": "Apache-2.0",
   "description": "Zustand adapter for json-render StateStore",
   "keywords": [