@xmachines/play-dom 1.0.0-beta.55 → 1.0.0-beta.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +12 -12
  2. package/dist/PlayRenderer.d.ts +5 -3
  3. package/dist/PlayRenderer.d.ts.map +1 -1
  4. package/dist/PlayRenderer.js +8 -4
  5. package/dist/PlayRenderer.js.map +1 -1
  6. package/dist/create-play-ui.d.ts +3 -2
  7. package/dist/create-play-ui.d.ts.map +1 -1
  8. package/dist/create-play-ui.js +3 -1
  9. package/dist/create-play-ui.js.map +1 -1
  10. package/dist/create-renderer.d.ts +4 -4
  11. package/dist/create-renderer.d.ts.map +1 -1
  12. package/dist/create-renderer.js +3 -3
  13. package/dist/create-renderer.js.map +1 -1
  14. package/dist/index.d.ts +4 -4
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +3 -3
  17. package/dist/index.js.map +1 -1
  18. package/dist/types.d.ts +9 -9
  19. package/dist/types.d.ts.map +1 -1
  20. package/dist/types.js +1 -1
  21. package/package.json +11 -9
  22. package/dist/json-render/incremental.d.ts +0 -102
  23. package/dist/json-render/incremental.d.ts.map +0 -1
  24. package/dist/json-render/incremental.js +0 -830
  25. package/dist/json-render/incremental.js.map +0 -1
  26. package/dist/json-render/index.d.ts +0 -21
  27. package/dist/json-render/index.d.ts.map +0 -1
  28. package/dist/json-render/index.js +0 -17
  29. package/dist/json-render/index.js.map +0 -1
  30. package/dist/json-render/renderer.d.ts +0 -213
  31. package/dist/json-render/renderer.d.ts.map +0 -1
  32. package/dist/json-render/renderer.js +0 -317
  33. package/dist/json-render/renderer.js.map +0 -1
  34. package/dist/json-render/schema.d.ts +0 -55
  35. package/dist/json-render/schema.d.ts.map +0 -1
  36. package/dist/json-render/schema.js +0 -55
  37. package/dist/json-render/schema.js.map +0 -1
  38. package/dist/json-render/types.d.ts +0 -454
  39. package/dist/json-render/types.d.ts.map +0 -1
  40. package/dist/json-render/types.js +0 -172
  41. package/dist/json-render/types.js.map +0 -1
package/README.md CHANGED
@@ -9,20 +9,20 @@ Part of the [XMachines Play monorepo](../../README.md).
9
9
  ## Installation
10
10
 
11
11
  ```bash
12
- npm install @xmachines/play-dom
12
+ pnpm add @xmachines/play-dom
13
13
  ```
14
14
 
15
15
  **Peer dependencies:**
16
16
 
17
17
  ```bash
18
- npm install xstate @xstate/store @json-render/core @json-render/xstate
18
+ pnpm add xstate @xstate/store @xmachines/json-render-core @xmachines/json-render-xstate
19
19
  ```
20
20
 
21
21
  ## Quick Start
22
22
 
23
23
  ```typescript
24
24
  import { createRenderer, schema } from "@xmachines/play-dom";
25
- import { defineCatalog } from "@json-render/core";
25
+ import { defineCatalog } from "@xmachines/json-render-core";
26
26
  import { z } from "zod";
27
27
  import type { ComponentFn } from "@xmachines/play-dom";
28
28
 
@@ -72,7 +72,7 @@ disconnect();
72
72
 
73
73
  ```typescript
74
74
  import { createRenderer, schema } from "@xmachines/play-dom";
75
- import { defineCatalog } from "@json-render/core";
75
+ import { defineCatalog } from "@xmachines/json-render-core";
76
76
 
77
77
  const catalog = defineCatalog(schema, {
78
78
  /* ... */
@@ -93,7 +93,7 @@ Factory-level options (`functions`, `validationFunctions`, `navigate`, `onRender
93
93
 
94
94
  ```typescript
95
95
  import { defineRegistry, createPlayUI, schema } from "@xmachines/play-dom";
96
- import { defineCatalog } from "@json-render/core";
96
+ import { defineCatalog } from "@xmachines/json-render-core";
97
97
 
98
98
  const catalog = defineCatalog(schema, {
99
99
  /* ... */
@@ -142,7 +142,7 @@ renderer.disconnect();
142
142
 
143
143
  ```typescript
144
144
  import { createAtom } from "@xstate/store";
145
- import { xstateStoreStateStore } from "@json-render/xstate";
145
+ import { xstateStoreStateStore } from "@xmachines/json-render-xstate";
146
146
 
147
147
  const atom = createAtom({ username: "" });
148
148
  const store = xstateStoreStateStore({ atom });
@@ -177,10 +177,10 @@ Without `functions`, any `$computed` expression silently resolves to `undefined`
177
177
 
178
178
  Provides named validation functions for inline field validation within components. Functions receive `(value, args?)` and return `true` (valid) or `false` (invalid).
179
179
 
180
- Unlike the framework renderers, the DOM renderer has no automatic `ValidationProvider` tree. Components must invoke validation explicitly using `runValidationCheck` / `runValidation` from `@json-render/core`, passing `ctx.ctx.validationFunctions` as `customFunctions`.
180
+ Unlike the framework renderers, the DOM renderer has no automatic `ValidationProvider` tree. Components must invoke validation explicitly using `runValidationCheck` / `runValidation` from `@xmachines/json-render-core`, passing `ctx.ctx.validationFunctions` as `customFunctions`.
181
181
 
182
182
  ```typescript
183
- import { runValidationCheck } from "@json-render/core";
183
+ import { runValidationCheck } from "@xmachines/json-render-core";
184
184
 
185
185
  const mount = createPlayUI(registryResult, {
186
186
  validationFunctions: {
@@ -244,7 +244,7 @@ const mount = createPlayUI(registryResult, {
244
244
  });
245
245
  ```
246
246
 
247
- The argument order matches the upstream `RenderErrorHandler` type from `@json-render/core`: **error first, name second**. This is consistent with the framework renderers (`@json-render/solid`, `@json-render/react`).
247
+ The argument order matches the upstream `RenderErrorHandler` type from `@xmachines/json-render-core`: **error first, name second**. This is consistent with the framework renderers (`@xmachines/json-render-solid`, `@xmachines/json-render-react`).
248
248
 
249
249
  Without `onRenderError`, all three error types are logged via `console.error` and swallowed. No exception propagates, and no unhandled promise rejection is created.
250
250
 
@@ -273,7 +273,7 @@ const MyComponent: ComponentFn<typeof catalog, "MyComponent"> = ({ ctx }) => {
273
273
  | `PlayRenderer` | class | Class-based renderer with `connect()` / `disconnect()` lifecycle |
274
274
  | `defineRegistry(catalog, options)` | function | Build a catalog-typed `DomRegistry` with typed handlers |
275
275
  | `renderSpec(...)` | function | Pure Spec → DOM renderer (low-level) |
276
- | `schema` | const | The `@json-render/dom` schema — pass to `defineCatalog()` |
276
+ | `schema` | const | The `@xmachines/json-render-dom` schema — pass to `defineCatalog()` |
277
277
 
278
278
  ### Key Types
279
279
 
@@ -307,10 +307,10 @@ const MyComponent: ComponentFn<typeof catalog, "MyComponent"> = ({ ctx }) => {
307
307
 
308
308
  ```bash
309
309
  # Run all tests (jsdom environment)
310
- npm test
310
+ pnpm test
311
311
 
312
312
  # Run with coverage
313
- npm run test:coverage
313
+ pnpm run test:coverage
314
314
  ```
315
315
 
316
316
  Tests live in `test/` and use [Vitest](https://vitest.dev/) with a jsdom environment. Coverage thresholds: 80% lines, functions, branches, and statements.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * PlayRenderer.ts — XMachines wrapper around the pure json-render/dom renderer layer.
2
+ * PlayRenderer.ts — XMachines wrapper around @xmachines/json-render-dom.
3
3
  *
4
4
  * Bridges actor.currentView (TC39 Signal) to the inner DOM renderer using watchSignal.
5
5
  * Exposes connect() / disconnect() methods following the same pattern as
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import type { AbstractActor, Viewable } from "@xmachines/play-actor";
12
12
  import type { AnyActorLogic } from "xstate";
13
- import type { DomRegistry } from "./json-render/types.js";
13
+ import type { DomRegistry } from "@xmachines/json-render-dom";
14
14
  import type { PlayDomOptions } from "./types.js";
15
15
  /**
16
16
  * PlayRenderer connects an actor's `currentView` signal to the DOM renderer.
@@ -21,6 +21,7 @@ import type { PlayDomOptions } from "./types.js";
21
21
  * Options from `PlayDomOptions` (which extends `UIProviderOptions`) are all forwarded
22
22
  * into `DomRenderContext` on every render pass:
23
23
  * - `functions` — named compute functions for `{ $computed: "name" }` prop expressions
24
+ * - `directives` — custom `$`-prefixed dynamic values (from `defineDirective`), resolved during prop resolution
24
25
  * - `validationFunctions` — custom validation functions, available at `ctx.ctx.validationFunctions`
25
26
  * - `navigate` — navigation callback, invoked on `onSuccess: { navigate: "..." }` action bindings
26
27
  * - `onRenderError` — called with `(error, name)` for component render errors and action handler rejections
@@ -43,7 +44,7 @@ import type { PlayDomOptions } from "./types.js";
43
44
  * **Controlled store mode** — bring your own `StateStore`:
44
45
  * ```typescript
45
46
  * import { createAtom } from "@xstate/store";
46
- * import { xstateStoreStateStore } from "@json-render/xstate";
47
+ * import { xstateStoreStateStore } from "@xmachines/json-render-xstate";
47
48
  *
48
49
  * const atom = createAtom({ username: "" });
49
50
  * const store = xstateStoreStateStore({ atom });
@@ -87,6 +88,7 @@ export declare class PlayRenderer {
87
88
  * - `store` — external `StateStore` (controlled mode; overrides `spec.state` seeding).
88
89
  * - `loading` — streaming mode flag; suppresses missing-child warnings.
89
90
  * - `functions` — named compute functions for `$computed` prop expressions.
91
+ * - `directives` — custom `$`-prefixed dynamic values resolved during prop resolution.
90
92
  * - `validationFunctions` — custom validation functions; available at `ctx.ctx.validationFunctions`.
91
93
  * - `navigate` — navigation callback; invoked on `onSuccess: { navigate: "..." }`.
92
94
  * - `onRenderError` — `(error, name)` handler for component render errors and action handler rejections; suppresses `console.error` fallback.
@@ -1 +1 @@
1
- {"version":3,"file":"PlayRenderer.d.ts","sourceRoot":"","sources":["../src/PlayRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAY,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG5C,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,YAAY;IAmCvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IArCzB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,gBAAgB,CAA6B;IACrD;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa,CAAyB;IAC9C;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,CAAQ;IAErB;;;;;;;;;;;;OAYG;gBAEe,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,EAC9C,QAAQ,EAAE,WAAW,EACrB,OAAO,GAAE,cAAmB;IAG9C;;;;;;;;OAQG;IACH,OAAO,IAAI,IAAI;IAMf;;OAEG;IACH,UAAU,IAAI,IAAI;IAmBlB;;;;;;OAMG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,OAAO,CAAC,MAAM;CAqId"}
1
+ {"version":3,"file":"PlayRenderer.d.ts","sourceRoot":"","sources":["../src/PlayRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAY,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG5C,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,YAAY;IAoCvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAtCzB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,gBAAgB,CAA6B;IACrD;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa,CAAyB;IAC9C;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,CAAQ;IAErB;;;;;;;;;;;;;OAaG;gBAEe,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,EAC9C,QAAQ,EAAE,WAAW,EACrB,OAAO,GAAE,cAAmB;IAG9C;;;;;;;;OAQG;IACH,OAAO,IAAI,IAAI;IAMf;;OAEG;IACH,UAAU,IAAI,IAAI;IAmBlB;;;;;;OAMG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,OAAO,CAAC,MAAM;CAuId"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * PlayRenderer.ts — XMachines wrapper around the pure json-render/dom renderer layer.
2
+ * PlayRenderer.ts — XMachines wrapper around @xmachines/json-render-dom.
3
3
  *
4
4
  * Bridges actor.currentView (TC39 Signal) to the inner DOM renderer using watchSignal.
5
5
  * Exposes connect() / disconnect() methods following the same pattern as
@@ -10,9 +10,9 @@
10
10
  */
11
11
  import { watchSignal } from "@xmachines/play-signals";
12
12
  import { createAtom } from "@xstate/store";
13
- import { xstateStoreStateStore } from "@json-render/xstate";
13
+ import { xstateStoreStateStore } from "@xmachines/json-render-xstate";
14
14
  import { toAtomState } from "@xmachines/play-actor";
15
- import { createIncrementalRenderer } from "./json-render/incremental.js";
15
+ import { createIncrementalRenderer } from "@xmachines/json-render-dom";
16
16
  /**
17
17
  * PlayRenderer connects an actor's `currentView` signal to the DOM renderer.
18
18
  *
@@ -22,6 +22,7 @@ import { createIncrementalRenderer } from "./json-render/incremental.js";
22
22
  * Options from `PlayDomOptions` (which extends `UIProviderOptions`) are all forwarded
23
23
  * into `DomRenderContext` on every render pass:
24
24
  * - `functions` — named compute functions for `{ $computed: "name" }` prop expressions
25
+ * - `directives` — custom `$`-prefixed dynamic values (from `defineDirective`), resolved during prop resolution
25
26
  * - `validationFunctions` — custom validation functions, available at `ctx.ctx.validationFunctions`
26
27
  * - `navigate` — navigation callback, invoked on `onSuccess: { navigate: "..." }` action bindings
27
28
  * - `onRenderError` — called with `(error, name)` for component render errors and action handler rejections
@@ -44,7 +45,7 @@ import { createIncrementalRenderer } from "./json-render/incremental.js";
44
45
  * **Controlled store mode** — bring your own `StateStore`:
45
46
  * ```typescript
46
47
  * import { createAtom } from "@xstate/store";
47
- * import { xstateStoreStateStore } from "@json-render/xstate";
48
+ * import { xstateStoreStateStore } from "@xmachines/json-render-xstate";
48
49
  *
49
50
  * const atom = createAtom({ username: "" });
50
51
  * const store = xstateStoreStateStore({ atom });
@@ -88,6 +89,7 @@ export class PlayRenderer {
88
89
  * - `store` — external `StateStore` (controlled mode; overrides `spec.state` seeding).
89
90
  * - `loading` — streaming mode flag; suppresses missing-child warnings.
90
91
  * - `functions` — named compute functions for `$computed` prop expressions.
92
+ * - `directives` — custom `$`-prefixed dynamic values resolved during prop resolution.
91
93
  * - `validationFunctions` — custom validation functions; available at `ctx.ctx.validationFunctions`.
92
94
  * - `navigate` — navigation callback; invoked on `onSuccess: { navigate: "..." }`.
93
95
  * - `onRenderError` — `(error, name)` handler for component render errors and action handler rejections; suppresses `console.error` fallback.
@@ -194,6 +196,7 @@ export class PlayRenderer {
194
196
  : {};
195
197
  const loading = this.options.loading;
196
198
  const functions = this.options.functions;
199
+ const directives = this.options.directives;
197
200
  const validationFunctions = this.options.validationFunctions;
198
201
  const navigate = this.options.navigate;
199
202
  const onConfirm = this.options.onConfirm;
@@ -225,6 +228,7 @@ export class PlayRenderer {
225
228
  handlers,
226
229
  ...(onRenderError !== undefined ? { onRenderError } : {}),
227
230
  ...(functions !== undefined ? { functions } : {}),
231
+ ...(directives !== undefined ? { directives } : {}),
228
232
  ...(loading !== undefined ? { loading } : {}),
229
233
  onWatchSetup: (cleanup) => {
230
234
  // Wrap so that invoking the cleanup — from disconnect()/view change
@@ -1 +1 @@
1
- {"version":3,"file":"PlayRenderer.js","sourceRoot":"","sources":["../src/PlayRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlayRenderer.js","sourceRoot":"","sources":["../src/PlayRenderer.ts"],"names":[],"mappings":"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"}
@@ -32,8 +32,8 @@
32
32
  */
33
33
  import type { AbstractActor, Viewable } from "@xmachines/play-actor";
34
34
  import type { AnyActorLogic } from "xstate";
35
- import type { StateStore } from "@json-render/core";
36
- import type { DefineRegistryResult } from "./json-render/types.js";
35
+ import type { StateStore } from "@xmachines/json-render-core";
36
+ import type { DefineRegistryResult } from "@xmachines/json-render-dom";
37
37
  import type { CreatePlayUIOptions } from "./types.js";
38
38
  /**
39
39
  * Per-mount options passed to the `MountFn` returned by `createPlayUI`.
@@ -74,6 +74,7 @@ export type MountFn = (actor: AbstractActor<AnyActorLogic> & Viewable, container
74
74
  * and the lazy handlers factory.
75
75
  * @param options - Factory-level configuration (see {@link CreatePlayUIOptions}):
76
76
  * - `functions` — named compute functions for `$computed` prop expressions.
77
+ * - `directives` — custom `$`-prefixed dynamic values resolved during prop resolution.
77
78
  * - `validationFunctions` — custom validation functions; available at `ctx.ctx.validationFunctions`.
78
79
  * - `navigate` — navigation callback; invoked on `onSuccess: { navigate: "..." }`.
79
80
  * - `onRenderError` — `(error, name)` handler for component render errors and action handler rejections.
@@ -1 +1 @@
1
- {"version":3,"file":"create-play-ui.d.ts","sourceRoot":"","sources":["../src/create-play-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG,CACrB,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,EAC9C,SAAS,EAAE,WAAW,EACtB,OAAO,CAAC,EAAE,YAAY,KAClB,MAAM,IAAI,CAAC;AAEhB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAC3B,cAAc,EAAE,oBAAoB,EACpC,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAqCT"}
1
+ {"version":3,"file":"create-play-ui.d.ts","sourceRoot":"","sources":["../src/create-play-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG,CACrB,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,EAC9C,SAAS,EAAE,WAAW,EACtB,OAAO,CAAC,EAAE,YAAY,KAClB,MAAM,IAAI,CAAC;AAEhB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAC3B,cAAc,EAAE,oBAAoB,EACpC,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CA6CT"}
@@ -42,6 +42,7 @@ import { PlayRenderer } from "./PlayRenderer.js";
42
42
  * and the lazy handlers factory.
43
43
  * @param options - Factory-level configuration (see {@link CreatePlayUIOptions}):
44
44
  * - `functions` — named compute functions for `$computed` prop expressions.
45
+ * - `directives` — custom `$`-prefixed dynamic values resolved during prop resolution.
45
46
  * - `validationFunctions` — custom validation functions; available at `ctx.ctx.validationFunctions`.
46
47
  * - `navigate` — navigation callback; invoked on `onSuccess: { navigate: "..." }`.
47
48
  * - `onRenderError` — `(error, name)` handler for component render errors and action handler rejections.
@@ -49,7 +50,7 @@ import { PlayRenderer } from "./PlayRenderer.js";
49
50
  * @returns `MountFn`: `(actor, container, mountOptions?) → disconnect`
50
51
  */
51
52
  export function createPlayUI(registryResult, options = {}) {
52
- const { onRenderError, fallback, functions, validationFunctions, navigate, onConfirm } = options;
53
+ const { onRenderError, fallback, functions, directives, validationFunctions, navigate, onConfirm, } = options;
53
54
  return function mount(actor, container, mountOptions) {
54
55
  // All UIProviderOptions (onRenderError, functions, validationFunctions, navigate) are
55
56
  // forwarded directly through PlayDomOptions → PlayRenderer → renderSpec → DomRenderContext.
@@ -58,6 +59,7 @@ export function createPlayUI(registryResult, options = {}) {
58
59
  ...(mountOptions?.store !== undefined && { store: mountOptions.store }),
59
60
  ...(mountOptions?.loading !== undefined && { loading: mountOptions.loading }),
60
61
  ...(functions !== undefined && { functions }),
62
+ ...(directives !== undefined && { directives }),
61
63
  ...(validationFunctions !== undefined && { validationFunctions }),
62
64
  ...(navigate !== undefined && { navigate }),
63
65
  ...(onConfirm !== undefined && { onConfirm }),
@@ -1 +1 @@
1
- {"version":3,"file":"create-play-ui.js","sourceRoot":"","sources":["../src/create-play-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAsCjD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,YAAY,CAC3B,cAAoC,EACpC,UAA+B,EAAE;IAEjC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,GACrF,OAAO,CAAC;IAET,OAAO,SAAS,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY;QACnD,sFAAsF;QACtF,4FAA4F;QAC5F,MAAM,eAAe,GAAG;YACvB,cAAc;YACd,GAAG,CAAC,YAAY,EAAE,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC;YACvE,GAAG,CAAC,YAAY,EAAE,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7E,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,GAAG,CAAC,mBAAmB,KAAK,SAAS,IAAI,EAAE,mBAAmB,EAAE,CAAC;YACjE,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,CAAC;SACrD,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,YAAY,CAChC,SAAS,EACT,KAAK,EACL,cAAc,CAAC,QAAQ,EACvB,eAAe,CACf,CAAC;QACF,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEnB,kDAAkD;QAClD,gFAAgF;QAChF,kDAAkD;QAClD,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,SAAS,UAAU;YACzB,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC,CAAC;IACH,CAAC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"create-play-ui.js","sourceRoot":"","sources":["../src/create-play-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAsCjD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,YAAY,CAC3B,cAAoC,EACpC,UAA+B,EAAE;IAEjC,MAAM,EACL,aAAa,EACb,QAAQ,EACR,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,QAAQ,EACR,SAAS,GACT,GAAG,OAAO,CAAC;IAEZ,OAAO,SAAS,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY;QACnD,sFAAsF;QACtF,4FAA4F;QAC5F,MAAM,eAAe,GAAG;YACvB,cAAc;YACd,GAAG,CAAC,YAAY,EAAE,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC;YACvE,GAAG,CAAC,YAAY,EAAE,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7E,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;YAC/C,GAAG,CAAC,mBAAmB,KAAK,SAAS,IAAI,EAAE,mBAAmB,EAAE,CAAC;YACjE,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,CAAC;SACrD,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,YAAY,CAChC,SAAS,EACT,KAAK,EACL,cAAc,CAAC,QAAQ,EACvB,eAAe,CACf,CAAC;QACF,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEnB,kDAAkD;QAClD,gFAAgF;QAChF,kDAAkD;QAClD,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,SAAS,UAAU;YACzB,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC,CAAC;IACH,CAAC,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * create-renderer.ts — createRenderer convenience factory for @xmachines/play-dom.
3
3
  *
4
- * Mirrors the `createRenderer` export from @json-render/react, /vue, /solid, /svelte.
4
+ * Mirrors the `createRenderer` export from @xmachines/json-render-react, /vue, /solid, /svelte.
5
5
  * Calls `defineRegistry` once at factory creation time and returns a
6
6
  * `mount(actor, container, options?)` function that wires up PlayRenderer and
7
7
  * returns a `disconnect` cleanup function.
@@ -11,7 +11,7 @@
11
11
  * @example
12
12
  * ```ts
13
13
  * import { createRenderer, schema } from "@xmachines/play-dom";
14
- * import { defineCatalog } from "@json-render/core";
14
+ * import { defineCatalog } from "@xmachines/json-render-core";
15
15
  * import { z } from "zod";
16
16
  * import type { ComponentFn } from "@xmachines/play-dom";
17
17
  *
@@ -54,8 +54,8 @@
54
54
  */
55
55
  import type { AbstractActor, Viewable } from "@xmachines/play-actor";
56
56
  import type { AnyActorLogic } from "xstate";
57
- import type { Catalog } from "@json-render/core";
58
- import type { ComponentRegistry } from "./json-render/types.js";
57
+ import type { Catalog } from "@xmachines/json-render-core";
58
+ import type { ComponentRegistry } from "@xmachines/json-render-dom";
59
59
  import type { PlayDomOptions } from "./types.js";
60
60
  /**
61
61
  * Create a reusable DOM renderer factory from a catalog and component map.
@@ -1 +1 @@
1
- {"version":3,"file":"create-renderer.d.ts","sourceRoot":"","sources":["../src/create-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,EAC/C,OAAO,EAAE,CAAC,EACV,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAChC,CACF,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,EAC9C,SAAS,EAAE,WAAW,EACtB,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,KAC5C,MAAM,IAAI,CAWd"}
1
+ {"version":3,"file":"create-renderer.d.ts","sourceRoot":"","sources":["../src/create-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,EAC/C,OAAO,EAAE,CAAC,EACV,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAChC,CACF,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,EAC9C,SAAS,EAAE,WAAW,EACtB,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,KAC5C,MAAM,IAAI,CAWd"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * create-renderer.ts — createRenderer convenience factory for @xmachines/play-dom.
3
3
  *
4
- * Mirrors the `createRenderer` export from @json-render/react, /vue, /solid, /svelte.
4
+ * Mirrors the `createRenderer` export from @xmachines/json-render-react, /vue, /solid, /svelte.
5
5
  * Calls `defineRegistry` once at factory creation time and returns a
6
6
  * `mount(actor, container, options?)` function that wires up PlayRenderer and
7
7
  * returns a `disconnect` cleanup function.
@@ -11,7 +11,7 @@
11
11
  * @example
12
12
  * ```ts
13
13
  * import { createRenderer, schema } from "@xmachines/play-dom";
14
- * import { defineCatalog } from "@json-render/core";
14
+ * import { defineCatalog } from "@xmachines/json-render-core";
15
15
  * import { z } from "zod";
16
16
  * import type { ComponentFn } from "@xmachines/play-dom";
17
17
  *
@@ -53,7 +53,7 @@
53
53
  * @packageDocumentation
54
54
  */
55
55
  import { PlayRenderer } from "./PlayRenderer.js";
56
- import { defineRegistry } from "./json-render/types.js";
56
+ import { defineRegistry } from "@xmachines/json-render-dom";
57
57
  /**
58
58
  * Create a reusable DOM renderer factory from a catalog and component map.
59
59
  *
@@ -1 +1 @@
1
- {"version":3,"file":"create-renderer.js","sourceRoot":"","sources":["../src/create-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAC7B,OAAU,EACV,YAAkC;IAMlC,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;IAE7E,OAAO,SAAS,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;QACnD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE;YAC5E,GAAG,OAAO;YACV,cAAc;SACd,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"create-renderer.js","sourceRoot":"","sources":["../src/create-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAC7B,OAAU,EACV,YAAkC;IAMlC,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;IAE7E,OAAO,SAAS,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;QACnD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE;YAC5E,GAAG,OAAO;YACV,cAAc;SACd,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@
9
9
  * - `PlayRenderer` — class-based renderer with `connect()` / `disconnect()` lifecycle
10
10
  * - `PlayDomOptions`, `CreatePlayUIOptions`, `MountFn`, `MountOptions`
11
11
  *
12
- * **json-render layer** (upstreamable to @json-render/dom):
12
+ * **json-render layer** (re-exported from @xmachines/json-render-dom):
13
13
  * - `defineRegistry` — build a catalog-typed DomRegistry
14
14
  * - `renderSpec` — pure Spec → DOM renderer (uses resolveElementProps from core)
15
15
  * - `ComponentFn` — catalog-typed component function type
@@ -30,7 +30,7 @@ export { createRenderer } from "./create-renderer.js";
30
30
  export { createPlayUI } from "./create-play-ui.js";
31
31
  export type { MountFn, MountOptions } from "./create-play-ui.js";
32
32
  export type { PlayDomOptions, CreatePlayUIOptions } from "./types.js";
33
- export { defineRegistry, renderSpec, schema } from "./json-render/index.js";
34
- export type { RenderSpecOptions } from "./json-render/index.js";
35
- export type { ConfirmHandler, EventHandle, SetState, RenderErrorHandler, UIProviderOptions, CatalogHasActions, BaseComponentProps, DomRenderContext, DomComponentRenderer, ComponentContext, ComponentFn, ComponentRegistry, Actions, ActionFn, DefineRegistryOptions, DefineRegistryResult, DomRegistry, DomSchema, } from "./json-render/index.js";
33
+ export { defineRegistry, renderSpec, schema } from "@xmachines/json-render-dom";
34
+ export type { RenderSpecOptions } from "@xmachines/json-render-dom";
35
+ export type { ConfirmHandler, EventHandle, SetState, RenderErrorHandler, UIProviderOptions, CatalogHasActions, BaseComponentProps, DomRenderContext, DomComponentRenderer, ComponentContext, ComponentFn, ComponentRegistry, Actions, ActionFn, DefineRegistryOptions, DefineRegistryResult, DomRegistry, DomSchema, } from "@xmachines/json-render-dom";
36
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGjE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EACX,cAAc,EACd,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,SAAS,GACT,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGjE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAChF,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EACX,cAAc,EACd,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,SAAS,GACT,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@
9
9
  * - `PlayRenderer` — class-based renderer with `connect()` / `disconnect()` lifecycle
10
10
  * - `PlayDomOptions`, `CreatePlayUIOptions`, `MountFn`, `MountOptions`
11
11
  *
12
- * **json-render layer** (upstreamable to @json-render/dom):
12
+ * **json-render layer** (re-exported from @xmachines/json-render-dom):
13
13
  * - `defineRegistry` — build a catalog-typed DomRegistry
14
14
  * - `renderSpec` — pure Spec → DOM renderer (uses resolveElementProps from core)
15
15
  * - `ComponentFn` — catalog-typed component function type
@@ -29,6 +29,6 @@
29
29
  export { PlayRenderer } from "./PlayRenderer.js";
30
30
  export { createRenderer } from "./create-renderer.js";
31
31
  export { createPlayUI } from "./create-play-ui.js";
32
- // json-render/dom layer (re-exported for consumer convenience)
33
- export { defineRegistry, renderSpec, schema } from "./json-render/index.js";
32
+ // @xmachines/json-render-dom (re-exported for consumer convenience)
33
+ export { defineRegistry, renderSpec, schema } from "@xmachines/json-render-dom";
34
34
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMnD,+DAA+D;AAC/D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMnD,oEAAoE;AACpE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/types.d.ts CHANGED
@@ -2,19 +2,19 @@
2
2
  * types.ts — XMachines-specific type definitions for play-dom.
3
3
  *
4
4
  * These types depend on @xmachines/play-actor and stay in play-dom.
5
- * Pure json-render types live in ./json-render/types.ts.
5
+ * Pure json-render types live in @xmachines/json-render-dom.
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
9
- import type { StateStore } from "@json-render/core";
10
- import type { DefineRegistryResult, UIProviderOptions } from "./json-render/types.js";
11
- export type { UIProviderOptions } from "./json-render/types.js";
9
+ import type { StateStore } from "@xmachines/json-render-core";
10
+ import type { DefineRegistryResult, UIProviderOptions } from "@xmachines/json-render-dom";
11
+ export type { UIProviderOptions } from "@xmachines/json-render-dom";
12
12
  /**
13
13
  * Options for `PlayRenderer`.
14
14
  *
15
15
  * Extends {@link UIProviderOptions}, which contributes `functions`,
16
- * `validationFunctions`, `navigate`, and `onRenderError`. All four are
17
- * forwarded into `DomRenderContext` on every render pass and are readable
16
+ * `directives`, `validationFunctions`, `navigate`, and `onRenderError`. All
17
+ * are forwarded into `DomRenderContext` on every render pass and are readable
18
18
  * by component implementations via `ctx.ctx.*`.
19
19
  */
20
20
  export interface PlayDomOptions extends UIProviderOptions {
@@ -27,7 +27,7 @@ export interface PlayDomOptions extends UIProviderOptions {
27
27
  */
28
28
  registryResult?: DefineRegistryResult;
29
29
  /**
30
- * Optional external StateStore (e.g. from `xstateStoreStateStore` in @json-render/xstate).
30
+ * Optional external StateStore (e.g. from `xstateStoreStateStore` in @xmachines/json-render-xstate).
31
31
  *
32
32
  * When provided, `PlayRenderer` operates in controlled mode — `spec.state` is ignored and
33
33
  * this store is the single source of truth for UI state (form values, etc.).
@@ -50,8 +50,8 @@ export interface PlayDomOptions extends UIProviderOptions {
50
50
  * Options for `createPlayUI()` — the batteries-included DOM factory.
51
51
  *
52
52
  * Extends {@link UIProviderOptions}, which contributes `functions`,
53
- * `validationFunctions`, `navigate`, and `onRenderError`. All four are
54
- * closed over at factory creation time and forwarded into `PlayRenderer`
53
+ * `directives`, `validationFunctions`, `navigate`, and `onRenderError`. All
54
+ * are closed over at factory creation time and forwarded into `PlayRenderer`
55
55
  * on every `mount()` call.
56
56
  *
57
57
  * Parallel to `PlayUIProvider`'s props in the framework renderers.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACxD;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAEtC;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC7D;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACxD;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAEtC;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC7D;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B"}
package/dist/types.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * types.ts — XMachines-specific type definitions for play-dom.
3
3
  *
4
4
  * These types depend on @xmachines/play-actor and stay in play-dom.
5
- * Pure json-render types live in ./json-render/types.ts.
5
+ * Pure json-render types live in @xmachines/json-render-dom.
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmachines/play-dom",
3
- "version": "1.0.0-beta.55",
3
+ "version": "1.0.0-beta.57",
4
4
  "description": "Vanilla DOM renderer for XMachines Play architecture with signal-driven rendering",
5
5
  "keywords": [
6
6
  "actor",
@@ -43,17 +43,18 @@
43
43
  "prepublishOnly": "npm run build"
44
44
  },
45
45
  "dependencies": {
46
- "@xmachines/play": "1.0.0-beta.55",
47
- "@xmachines/play-actor": "1.0.0-beta.55",
48
- "@xmachines/play-signals": "1.0.0-beta.55"
46
+ "@xmachines/play": "1.0.0-beta.57",
47
+ "@xmachines/play-actor": "1.0.0-beta.57",
48
+ "@xmachines/play-signals": "1.0.0-beta.57"
49
49
  },
50
50
  "devDependencies": {
51
- "@json-render/core": "^0.18.0",
52
- "@json-render/xstate": "^0.18.0",
53
51
  "@testing-library/jest-dom": "^6.9.1",
54
52
  "@types/node": "^25.6.0",
55
53
  "@vitest/browser-playwright": "^4.1.5",
56
- "@xmachines/shared": "1.0.0-beta.55",
54
+ "@xmachines/json-render-core": "^0.19.0-xm.2",
55
+ "@xmachines/json-render-dom": "^0.19.0-xm.2",
56
+ "@xmachines/json-render-xstate": "^0.19.0-xm.2",
57
+ "@xmachines/shared": "1.0.0-beta.57",
57
58
  "@xstate/store": "^3.17.0",
58
59
  "oxfmt": "^0.47.0",
59
60
  "oxlint": "^1.62.0",
@@ -63,8 +64,9 @@
63
64
  "zod": "^4.4.1"
64
65
  },
65
66
  "peerDependencies": {
66
- "@json-render/core": "^0.18.0",
67
- "@json-render/xstate": "^0.18.0",
67
+ "@xmachines/json-render-core": "^0.19.0-xm.2",
68
+ "@xmachines/json-render-dom": "^0.19.0-xm.2",
69
+ "@xmachines/json-render-xstate": "^0.19.0-xm.2",
68
70
  "@xstate/store": "^3.17.0",
69
71
  "xstate": "^5.31.0"
70
72
  },
@@ -1,102 +0,0 @@
1
- /**
2
- * incremental.ts — Targeted store-driven re-rendering for the DOM renderer.
3
- *
4
- * Zero XMachines dependencies. Upstreamable to @json-render/dom.
5
- *
6
- * `createIncrementalRenderer` wraps {@link renderSpec} with a per-element
7
- * dependency registry: while rendering, every element instance is recorded as
8
- * a {@link RenderUnit} carrying the resolved `$state` paths its props and
9
- * visibility depend on (a conservative superset extracted statically from the
10
- * raw spec). On each store update the previous and next snapshots are diffed
11
- * per tracked path (shallow reference compare via `getByPath`) and ONLY the
12
- * affected elements are re-rendered in place — untouched siblings and
13
- * ancestors keep their DOM node identity, focus, selection, and scroll.
14
- *
15
- * Granularity rules:
16
- * - `$state` / `$template` / `$cond` / `$computed` args → the referenced
17
- * absolute paths are re-render dependencies of the element.
18
- * - Visibility conditions → their referenced paths are dependencies; while an
19
- * element is invisible a `Comment` placeholder holds its position so it can
20
- * be mounted in place when the condition flips.
21
- * - `repeat` containers → reconciled per index when their array path changes
22
- * (index-based diffing — the spec has no user-provided item keys):
23
- * unchanged-reference items keep their DOM nodes untouched, trailing growth
24
- * appends new item instances in place, trailing shrink removes them, and
25
- * changed indices re-render through the per-unit diff (see next bullet).
26
- * Wholesale container re-renders remain as documented fallbacks — see
27
- * {@link reconcileRepeat}.
28
- * - `$item` / `$index` / `$bindItem` inside a repeat → attributed to the
29
- * enclosing item's absolute path (e.g. `"/todos/1"`), so mutating one
30
- * item's object re-renders only the element instances inside that index.
31
- * - `$bindState` / `$bindItem` (two-way bindings) → tracked separately: when
32
- * ONLY bound paths changed and the element currently contains focus, the
33
- * re-render is skipped. The focused input already displays the value it
34
- * just wrote to the store, and replacing its node would destroy focus and
35
- * selection on every keystroke. Unfocused bound elements re-render normally
36
- * so external writes still propagate.
37
- * - Elements with no state bindings are never touched by store updates.
38
- *
39
- * Fallbacks (correctness over cleverness):
40
- * - Re-rendering the root element (or any unit whose DOM node is no longer
41
- * connected, e.g. a component that ignored its children) escalates to the
42
- * nearest ancestor and ultimately to a full container re-render.
43
- * - If a store notification delivers a snapshot that is reference-identical
44
- * to the previous one (in-place mutation cannot be diffed), a full
45
- * re-render preserves the pre-incremental behavior.
46
- *
47
- * `watch` bindings are NOT re-render dependencies — they are managed as a
48
- * per-element-instance subscription registry: a subscription is created when
49
- * an instance first MOUNTS (initial render, visibility flipping on, a repeat
50
- * item being appended) with the skip-on-mount baseline captured at that
51
- * moment; it is PRESERVED — never rewired — across in-place re-renders of the
52
- * same instance (so its baseline and store-notification position survive, see
53
- * PlayRenderer's watch lifecycle notes); and it is RELEASED when the instance
54
- * unmounts (visibility off, repeat item removed, or the element vanishing
55
- * from a re-rendered subtree). Each registration's cleanup is idempotent and
56
- * is also forwarded to `options.onWatchSetup`, so callers may safely invoke
57
- * it again on teardown (view change / disconnect).
58
- *
59
- * @packageDocumentation
60
- */
61
- import type { Spec, StateStore } from "@json-render/core";
62
- import type { RenderSpecOptions } from "./renderer.js";
63
- import type { DomRegistry } from "./types.js";
64
- /**
65
- * Handle returned by {@link createIncrementalRenderer}.
66
- */
67
- export interface IncrementalDomRenderer {
68
- /**
69
- * Full initial render into the container (clears it first). Registers
70
- * `watch` subscriptions via `options.onWatchSetup` for every mounted
71
- * element that declares them.
72
- */
73
- render(): void;
74
- /**
75
- * Diff the current store snapshot against the previous one and re-render
76
- * only the affected element instances in place. Elements mounted by the
77
- * update (visibility flips, appended repeat items) register their `watch`
78
- * subscriptions; unmounted elements release theirs; instances re-rendered
79
- * in place keep their original subscriptions (never rewired).
80
- */
81
- update(): void;
82
- }
83
- /**
84
- * Create an incremental DOM renderer for one spec/store/container triple.
85
- *
86
- * Call {@link IncrementalDomRenderer.render} once for the initial mount, then
87
- * {@link IncrementalDomRenderer.update} on every store notification. A view
88
- * transition should discard the instance and create a fresh one (matching
89
- * PlayRenderer's full-rebuild-per-view contract).
90
- *
91
- * @param spec - The json-render `Spec` for the current view.
92
- * @param store - Live `StateStore` bound to `spec.state`.
93
- * @param registry - Map of element type names → `DomComponentRenderer`.
94
- * @param container - Host element that owns the rendered tree.
95
- * @param options - Forwarded to {@link renderSpec}. `onWatchSetup` receives
96
- * one idempotent cleanup per watch registration, over the
97
- * whole lifetime of the instance (initial mounts AND
98
- * late mounts) — never a duplicate for an instance that is
99
- * merely re-rendered in place.
100
- */
101
- export declare function createIncrementalRenderer(spec: Spec, store: StateStore, registry: DomRegistry, container: HTMLElement, options?: RenderSpecOptions): IncrementalDomRenderer;
102
- //# sourceMappingURL=incremental.d.ts.map