@maxhealth.tech/prefab 0.1.9 → 0.2.1

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,40 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [0.2.0] — 2026-04-25
6
+
7
+ ### Bug Fix: If/Elif/Else Conditional Chains
8
+ - **Fixed**: `Elif` and `Else` nodes rendered independently instead of being consumed by the preceding `If` chain. All branches in an `If/Elif/Else` sequence now render—only the first matching branch renders; the rest are skipped.
9
+ - New `renderChildArray()` in the render engine detects `If/Elif/Else` sibling sequences and evaluates them as a single conditional chain
10
+ - Orphaned `Elif`/`Else` nodes (not adjacent to an `If`) are silently skipped
11
+ - `ForEach`, `If`, and `Else` body rendering now uses chain-aware iteration for nested chains
12
+ - 55 new tests in `test/tdd-bugs-r2.test.ts` — **913 total tests**
13
+
14
+ ### Bug Fix: Browser Pipe Registration
15
+
16
+ ### Bug Fix: Browser Pipe Registration
17
+ - **Fixed**: Custom pipes registered in Node (via `registerPipe()`) were not available in the browser renderer bundle. Pipes are functions — they can't be serialized as JSON. The renderer loaded a fresh instance with zero custom pipes, causing `{{ name | humanName }}` to fall through to `[object Object]`.
18
+ - `PrefabApp({ pipes: { humanName: fn } })` — accepts pipe functions and serializes their source code into the wire format
19
+ - `PrefabWireFormat.pipes` — new optional field carrying pipe source strings
20
+ - Renderer `mount()` hydrates wire pipes via `new Function()` before first render
21
+ - `destroy()` cleans up wire-hydrated pipes (scoped to mount lifetime)
22
+ - `window.prefab` global now exposes `registerPipe`, `unregisterPipe`, `listPipes`
23
+ - Renderer module re-exports `registerPipe`, `unregisterPipe`, `listPipes`, `PipeFn`
24
+ - Built-in pipes cannot be shadowed by wire pipes (security)
25
+ - Invalid pipe source is caught gracefully (warning, no throw)
26
+ - 12 new tests in `test/pipe-wire.test.ts` — **858 total tests**
27
+
28
+ ## [0.1.10] — 2026-04-24
29
+
30
+ ### Action-Builder Sugar
31
+ - `set(signal, value)` — ergonomic wrapper for `new SetState(signal.key, value)`
32
+ - `toggle(signal)` — wrapper for `new ToggleState(signal.key)`
33
+ - `append(collection, item, index?)` — wrapper for `new AppendState(collection.stateKey, item)`
34
+ - `pop(collection, indexOrValue?)` — wrapper for `new PopState(collection.stateKey, indexOrValue)`, defaults to last element
35
+ - All helpers accept `Signal`, `Collection`, or raw `string` key via `StateTarget` type
36
+ - `set()` passes through `SetStateOpts` (onSuccess/onError callbacks)
37
+ - 17 new tests in `test/sugar.test.ts` — **846 total tests**
38
+
5
39
  ## [0.1.8] — 2026-04-24
6
40
 
7
41
  ### Reactive Primitives
@@ -3,4 +3,6 @@ export { SetState, ToggleState, AppendState, PopState, ShowToast, CloseOverlay,
3
3
  export type { SetStateOpts, ShowToastOpts, ToastVariant, FetchOpts, OpenFilePickerOpts, CallHandlerOpts } from './client.js';
4
4
  export { CallTool, SendMessage, UpdateContext, RequestDisplayMode } from './mcp.js';
5
5
  export type { CallToolOpts, DisplayMode } from './mcp.js';
6
+ export { set, toggle, append, pop } from './sugar.js';
7
+ export type { StateTarget } from './sugar.js';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9J,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC5H,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AACnF,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9J,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC5H,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AACnF,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA"}
@@ -1,3 +1,4 @@
1
1
  export { SetState, ToggleState, AppendState, PopState, ShowToast, CloseOverlay, OpenLink, SetInterval, Fetch, OpenFilePicker, CallHandler } from './client.js';
2
2
  export { CallTool, SendMessage, UpdateContext, RequestDisplayMode } from './mcp.js';
3
+ export { set, toggle, append, pop } from './sugar.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9J,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9J,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAEnF,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Action-builder sugar — ergonomic wrappers that accept Signal / Collection
3
+ * instead of raw state keys, preserving encapsulation.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * const count = signal('count', 0)
8
+ * const items = collection('items', rows, { key: 'id' })
9
+ *
10
+ * set(count, 42) // → new SetState('count', 42)
11
+ * toggle(count) // → new ToggleState('count')
12
+ * append(items, newRow) // → new AppendState('items', newRow)
13
+ * pop(items, 0) // → new PopState('items', 0)
14
+ * pop(items) // → new PopState('items', -1) (last element)
15
+ * ```
16
+ */
17
+ import type { Signal } from '../rx/signal.js';
18
+ import type { Collection } from '../rx/collection.js';
19
+ import { SetState, ToggleState, AppendState, PopState } from './client.js';
20
+ import type { SetStateOpts } from './client.js';
21
+ /** Anything that resolves to a state key: Signal, Collection, or raw string. */
22
+ export type StateTarget = Signal | Collection | string;
23
+ /** Set a state value. `set(signal, value)` → `new SetState(signal.key, value)` */
24
+ export declare function set(target: StateTarget, value: unknown, opts?: SetStateOpts): SetState;
25
+ /** Toggle a boolean state value. `toggle(signal)` → `new ToggleState(signal.key)` */
26
+ export declare function toggle(target: StateTarget): ToggleState;
27
+ /** Append an item to an array state value. Optionally specify insertion index. */
28
+ export declare function append(target: StateTarget, item: unknown, index?: number): AppendState;
29
+ /** Remove an element from an array by index or value. Defaults to last element (-1). */
30
+ export declare function pop(target: StateTarget, indexOrValue?: number | string): PopState;
31
+ //# sourceMappingURL=sugar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sugar.d.ts","sourceRoot":"","sources":["../../src/actions/sugar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,gFAAgF;AAChF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAA;AAQtD,kFAAkF;AAClF,wBAAgB,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,CAEtF;AAED,qFAAqF;AACrF,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAEvD;AAED,kFAAkF;AAClF,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,CAEtF;AAED,wFAAwF;AACxF,wBAAgB,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,GAAE,MAAM,GAAG,MAAW,GAAG,QAAQ,CAErF"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Action-builder sugar — ergonomic wrappers that accept Signal / Collection
3
+ * instead of raw state keys, preserving encapsulation.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * const count = signal('count', 0)
8
+ * const items = collection('items', rows, { key: 'id' })
9
+ *
10
+ * set(count, 42) // → new SetState('count', 42)
11
+ * toggle(count) // → new ToggleState('count')
12
+ * append(items, newRow) // → new AppendState('items', newRow)
13
+ * pop(items, 0) // → new PopState('items', 0)
14
+ * pop(items) // → new PopState('items', -1) (last element)
15
+ * ```
16
+ */
17
+ import { SetState, ToggleState, AppendState, PopState } from './client.js';
18
+ function resolveKey(target) {
19
+ if (typeof target === 'string')
20
+ return target;
21
+ if ('stateKey' in target)
22
+ return target.stateKey; // Collection
23
+ return target.key; // Signal
24
+ }
25
+ /** Set a state value. `set(signal, value)` → `new SetState(signal.key, value)` */
26
+ export function set(target, value, opts) {
27
+ return new SetState(resolveKey(target), value, opts);
28
+ }
29
+ /** Toggle a boolean state value. `toggle(signal)` → `new ToggleState(signal.key)` */
30
+ export function toggle(target) {
31
+ return new ToggleState(resolveKey(target));
32
+ }
33
+ /** Append an item to an array state value. Optionally specify insertion index. */
34
+ export function append(target, item, index) {
35
+ return new AppendState(resolveKey(target), item, index);
36
+ }
37
+ /** Remove an element from an array by index or value. Defaults to last element (-1). */
38
+ export function pop(target, indexOrValue = -1) {
39
+ return new PopState(resolveKey(target), indexOrValue);
40
+ }
41
+ //# sourceMappingURL=sugar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sugar.js","sourceRoot":"","sources":["../../src/actions/sugar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAM1E,SAAS,UAAU,CAAC,MAAmB;IACrC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IAC7C,IAAI,UAAU,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAA,CAAC,aAAa;IAC9D,OAAO,MAAM,CAAC,GAAG,CAAA,CAAC,SAAS;AAC7B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,KAAc,EAAE,IAAmB;IAC1E,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;AACtD,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,MAAM,CAAC,MAAmB;IACxC,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;AAC5C,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,MAAM,CAAC,MAAmB,EAAE,IAAa,EAAE,KAAc;IACvE,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;AACzD,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,eAAgC,CAAC,CAAC;IACzE,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAA;AACvD,CAAC"}
package/dist/app.d.ts CHANGED
@@ -7,8 +7,9 @@
7
7
  import { type Component } from './core/component.js';
8
8
  import type { ComponentJSON } from './core/component.js';
9
9
  import type { Action, ActionJSON } from './actions/types.js';
10
+ import type { PipeFn } from './rx/pipes.js';
10
11
  /** Package version — injected by build script, updated at release time. */
11
- export declare const VERSION = "0.1.9";
12
+ export declare const VERSION = "0.2.1";
12
13
  export interface Theme {
13
14
  light?: Record<string, string>;
14
15
  dark?: Record<string, string>;
@@ -24,6 +25,8 @@ export interface PrefabWireFormat {
24
25
  keyBindings?: Record<string, ActionJSON | ActionJSON[]>;
25
26
  onMount?: ActionJSON | ActionJSON[];
26
27
  stylesheets?: string[];
28
+ /** Custom pipe source code — hydrated by the renderer on mount. */
29
+ pipes?: Record<string, string>;
27
30
  }
28
31
  export interface PrefabAppOptions {
29
32
  title?: string;
@@ -36,6 +39,8 @@ export interface PrefabAppOptions {
36
39
  onMount?: Action | Action[];
37
40
  keyBindings?: Record<string, Action | Action[]>;
38
41
  cssClass?: string;
42
+ /** Custom pipes to serialize in the wire format. Functions are converted to source strings. */
43
+ pipes?: Record<string, PipeFn>;
39
44
  }
40
45
  export declare class PrefabApp {
41
46
  readonly title: string;
@@ -48,6 +53,7 @@ export declare class PrefabApp {
48
53
  readonly onMount?: Action | Action[];
49
54
  readonly keyBindings?: Record<string, Action | Action[]>;
50
55
  readonly cssClass?: string;
56
+ readonly pipes?: Record<string, PipeFn>;
51
57
  constructor(opts: PrefabAppOptions);
52
58
  /**
53
59
  * Serialize to the $prefab wire format (JSON).
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAG5D,2EAA2E;AAC3E,eAAO,MAAM,OAAO,UAAU,CAAA;AAI9B,MAAM,WAAW,KAAK;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9B;AAID,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5B,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC,CAAA;IACvD,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAID,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,SAAS;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;gBAEd,IAAI,EAAE,gBAAgB;IAoBlC;;;OAGG;IACH,MAAM,IAAI,gBAAgB;IA2C1B;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM;CA2C1F"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/app.js CHANGED
@@ -7,7 +7,7 @@
7
7
  import {} from './core/component.js';
8
8
  import { drainAutoState } from './rx/state-collector.js';
9
9
  /** Package version — injected by build script, updated at release time. */
10
- export const VERSION = '0.1.9';
10
+ export const VERSION = '0.2.1';
11
11
  export class PrefabApp {
12
12
  title;
13
13
  view;
@@ -19,6 +19,7 @@ export class PrefabApp {
19
19
  onMount;
20
20
  keyBindings;
21
21
  cssClass;
22
+ pipes;
22
23
  constructor(opts) {
23
24
  this.title = opts.title ?? 'Prefab';
24
25
  this.view = opts.view;
@@ -37,6 +38,7 @@ export class PrefabApp {
37
38
  this.onMount = opts.onMount;
38
39
  this.keyBindings = opts.keyBindings;
39
40
  this.cssClass = opts.cssClass;
41
+ this.pipes = opts.pipes;
40
42
  }
41
43
  /**
42
44
  * Serialize to the $prefab wire format (JSON).
@@ -79,6 +81,12 @@ export class PrefabApp {
79
81
  ? this.onMount.map(a => a.toJSON())
80
82
  : this.onMount.toJSON();
81
83
  }
84
+ if (this.pipes && Object.keys(this.pipes).length > 0) {
85
+ wire.pipes = {};
86
+ for (const [name, fn] of Object.entries(this.pipes)) {
87
+ wire.pipes[name] = fn.toString();
88
+ }
89
+ }
82
90
  return wire;
83
91
  }
84
92
  /**
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAkB,MAAM,qBAAqB,CAAA;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA;AAyC9B,MAAM,OAAO,SAAS;IACX,KAAK,CAAQ;IACb,IAAI,CAAW;IACf,KAAK,CAA0B;IAC/B,KAAK,CAAQ;IACb,IAAI,CAA4B;IAChC,WAAW,CAAW;IACtB,OAAO,CAAW;IAClB,OAAO,CAAoB;IAC3B,WAAW,CAAoC;IAC/C,QAAQ,CAAS;IACjB,KAAK,CAAyB;IAEvC,YAAY,IAAsB;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAA;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,qFAAqF;QACrF,wCAAwC;QACxC,MAAM,SAAS,GAAG,cAAc,EAAE,CAAA;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;QAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ;YAC1D,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,QAAQ,EAAE;YAC/B,CAAC,CAAC,SAAS,CAAA;QACb,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,iDAAiD;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,aAAa,CAAA;QACnF,MAAM,QAAQ,GAAkB;YAC9B,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SAC/B,CAAA;QAED,MAAM,IAAI,GAAqB;YAC7B,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YAC3B,IAAI,EAAE,QAAQ;SACf,CAAA;QAED,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvC,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QAEhG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;YACd,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YACjC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;YACrB,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC5C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC9B,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;YACtB,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;gBACxC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACnC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;YACf,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;YAClC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,IAAyE;QAC9E,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,OAAO,CAAA;QAC9C,MAAM,aAAa,GAAG,IAAI,EAAE,aAAa,KAAK,KAAK,CAAA;QACnD,MAAM,OAAO,GAAG,IAAI,EAAE,MAAM;YAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAEjC,4EAA4E;QAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAEnD,MAAM,YAAY,GAAG,aAAa;YAChC,CAAC,CAAC,0FAA0F,UAAU,oBAAoB;YAC1H,CAAC,CAAC,EAAE,CAAA;QAEN,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAgC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;aACnF,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEjB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;aACpD,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEjB,OAAO;;;;;aAKE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,YAAY;MACpD,cAAc;uEACmD,UAAU;MAC3E,UAAU;;;;;iCAKiB,WAAW;;;;;;QAMpC,CAAA;IACN,CAAC;CACF;AAED,gFAAgF;AAEhF,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AAC5B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -46,5 +46,7 @@ export { rx, Rx, ITEM, INDEX, EVENT, ERROR, RESULT, STATE, signal, Signal, colle
46
46
  export type { SignalValue, SignalOptions, PipeFn } from './rx/index.js';
47
47
  export { SetState, ToggleState, AppendState, PopState, ShowToast, CloseOverlay, OpenLink, SetInterval, Fetch, OpenFilePicker, CallHandler } from './actions/client.js';
48
48
  export { CallTool, SendMessage, UpdateContext, RequestDisplayMode } from './actions/mcp.js';
49
+ export { set, toggle, append, pop } from './actions/sugar.js';
50
+ export type { StateTarget } from './actions/sugar.js';
49
51
  export type { Action, ActionJSON } from './actions/types.js';
50
52
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAClF,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC1G,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG3E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAGzE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC7J,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAGlF,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAA;AAG5J,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAGlH,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AACxH,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAG/G,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAGrJ,OAAO,EACL,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAC1C,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAC/D,QAAQ,EAAE,MAAM,EAAE,MAAM,EACxB,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EACzE,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAC7D,UAAU,GACX,MAAM,4BAA4B,CAAA;AACnC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAGlG,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAGtI,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAG1F,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAGjF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAGhG,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACpJ,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAGhJ,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAClE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AACjE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC1E,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAChF,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAG/E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACvF,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC9H,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG/E,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACtL,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtK,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC3F,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -45,4 +45,5 @@ export { display, display_form, display_update, display_error } from './mcp/disp
45
45
  export { rx, Rx, ITEM, INDEX, EVENT, ERROR, RESULT, STATE, signal, Signal, collection, Collection, Ref, registerPipe, unregisterPipe, listPipes, resetAutoState } from './rx/index.js';
46
46
  export { SetState, ToggleState, AppendState, PopState, ShowToast, CloseOverlay, OpenLink, SetInterval, Fetch, OpenFilePicker, CallHandler } from './actions/client.js';
47
47
  export { CallTool, SendMessage, UpdateContext, RequestDisplayMode } from './actions/mcp.js';
48
+ export { set, toggle, append, pop } from './actions/sugar.js';
48
49
  //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Control flow renderers — ForEach, If/Elif/Else
3
3
  */
4
- import { registerComponent, renderNode } from '../engine.js';
4
+ import { registerComponent, renderNode, renderChildArray } from '../engine.js';
5
5
  import { evaluateTemplate, isRxExpression } from '../rx.js';
6
6
  export function registerControlComponents() {
7
7
  registerComponent('ForEach', renderForEach);
@@ -37,9 +37,7 @@ function renderForEach(node, ctx) {
37
37
  };
38
38
  const childCtx = { ...ctx, scope: childScope };
39
39
  if (node.children) {
40
- for (const child of node.children) {
41
- frag.appendChild(renderNode(child, childCtx));
42
- }
40
+ renderChildArray(node.children, frag, childCtx);
43
41
  }
44
42
  }
45
43
  return frag;
@@ -61,9 +59,7 @@ function renderIf(node, ctx) {
61
59
  if (condition) {
62
60
  const frag = document.createDocumentFragment();
63
61
  if (node.children) {
64
- for (const child of node.children) {
65
- frag.appendChild(renderNode(child, ctx));
66
- }
62
+ renderChildArray(node.children, frag, ctx);
67
63
  }
68
64
  return frag;
69
65
  }
@@ -77,9 +73,7 @@ function renderElif(node, ctx) {
77
73
  function renderElse(node, ctx) {
78
74
  const frag = document.createDocumentFragment();
79
75
  if (node.children) {
80
- for (const child of node.children) {
81
- frag.appendChild(renderNode(child, ctx));
82
- }
76
+ renderChildArray(node.children, frag, ctx);
83
77
  }
84
78
  return frag;
85
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/renderer/components/control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/renderer/components/control.ts"],"names":[],"mappings":"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"}
@@ -38,8 +38,14 @@ export declare function getRenderer(type: string): RenderFn | undefined;
38
38
  export declare function renderNode(node: ComponentNode, ctx: RenderContext): HTMLElement | DocumentFragment;
39
39
  /**
40
40
  * Render all children of a node into a parent element.
41
+ * Handles If/Elif/Else chains: only the first matching branch renders.
41
42
  */
42
43
  export declare function renderChildren(node: ComponentNode, parent: HTMLElement, ctx: RenderContext): void;
44
+ /**
45
+ * Render an array of child nodes into a parent, handling If/Elif/Else chains.
46
+ * Exported so ForEach and other manual-loop renderers can use it.
47
+ */
48
+ export declare function renderChildArray(children: ComponentNode[], parent: HTMLElement | DocumentFragment, ctx: RenderContext): void;
43
49
  /** Resolve a possibly-reactive string value */
44
50
  export declare function resolveStr(value: unknown, ctx: RenderContext): string;
45
51
  /** Resolve a possibly-reactive value, keeping original type */
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/renderer/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAMzF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;IACnC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,SAAS,CAAA;IAChB,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;CACxC;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,KAAK,WAAW,GAAG,gBAAgB,CAAA;AAMlG,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAElE;AAED,0CAA0C;AAC1C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE9D;AAID;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,GAAG,gBAAgB,CAwClG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAKjG;AAID,+CAA+C;AAC/C,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAMrE;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAKxE;AAED,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,eAAe,CAQnE;AAED,yCAAyC;AACzC,wBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAI/D;AAED,qCAAqC;AACrC,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAGvE"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/renderer/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAMzF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;IACnC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,SAAS,CAAA;IAChB,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;CACxC;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,KAAK,WAAW,GAAG,gBAAgB,CAAA;AAMlG,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAElE;AAED,0CAA0C;AAC1C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE9D;AAID;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,GAAG,gBAAgB,CAwClG;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAGjG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,EAAE,WAAW,GAAG,gBAAgB,EACtC,GAAG,EAAE,aAAa,GACjB,IAAI,CAcN;AAmED,+CAA+C;AAC/C,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAMrE;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAKxE;AAED,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,eAAe,CAQnE;AAED,yCAAyC;AACzC,wBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAI/D;AAED,qCAAqC;AACrC,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAGvE"}
@@ -63,14 +63,86 @@ export function renderNode(node, ctx) {
63
63
  }
64
64
  /**
65
65
  * Render all children of a node into a parent element.
66
+ * Handles If/Elif/Else chains: only the first matching branch renders.
66
67
  */
67
68
  export function renderChildren(node, parent, ctx) {
68
69
  if (!node.children)
69
70
  return;
70
- for (const child of node.children) {
71
- parent.appendChild(renderNode(child, ctx));
71
+ renderChildArray(node.children, parent, ctx);
72
+ }
73
+ /**
74
+ * Render an array of child nodes into a parent, handling If/Elif/Else chains.
75
+ * Exported so ForEach and other manual-loop renderers can use it.
76
+ */
77
+ export function renderChildArray(children, parent, ctx) {
78
+ let i = 0;
79
+ while (i < children.length) {
80
+ const child = children[i];
81
+ if (child.type === 'If') {
82
+ i = renderConditionalChain(children, i, parent, ctx);
83
+ }
84
+ else if (child.type === 'Elif' || child.type === 'Else') {
85
+ // Orphaned Elif/Else outside an If chain — skip silently
86
+ i++;
87
+ }
88
+ else {
89
+ parent.appendChild(renderNode(child, ctx));
90
+ i++;
91
+ }
72
92
  }
73
93
  }
94
+ /**
95
+ * Consume an If / Elif* / Else? chain starting at index `start`.
96
+ * Returns the index of the first child AFTER the chain.
97
+ */
98
+ function renderConditionalChain(children, start, parent, ctx) {
99
+ let matched = false;
100
+ let i = start;
101
+ // Evaluate the If node
102
+ const ifNode = children[i];
103
+ if (evalCondition(ifNode.condition, ctx)) {
104
+ renderBranchChildren(ifNode, parent, ctx);
105
+ matched = true;
106
+ }
107
+ i++;
108
+ // Consume consecutive Elif / Else siblings
109
+ while (i < children.length) {
110
+ const sibling = children[i];
111
+ if (sibling.type === 'Elif') {
112
+ if (!matched && evalCondition(sibling.condition, ctx)) {
113
+ renderBranchChildren(sibling, parent, ctx);
114
+ matched = true;
115
+ }
116
+ i++;
117
+ }
118
+ else if (sibling.type === 'Else') {
119
+ if (!matched) {
120
+ renderBranchChildren(sibling, parent, ctx);
121
+ }
122
+ i++;
123
+ break; // Else always terminates the chain
124
+ }
125
+ else {
126
+ break; // Non-conditional sibling — chain ends
127
+ }
128
+ }
129
+ return i;
130
+ }
131
+ /** Evaluate a condition string to boolean (used by the chain handler). */
132
+ function evalCondition(condition, ctx) {
133
+ if (!condition)
134
+ return false;
135
+ if (isRxExpression(condition)) {
136
+ return Boolean(evaluateTemplate(condition, ctx.store, ctx.scope));
137
+ }
138
+ return Boolean(ctx.store.get(condition));
139
+ }
140
+ /** Render a branch node's children into the parent. */
141
+ function renderBranchChildren(node, parent, ctx) {
142
+ if (!node.children)
143
+ return;
144
+ renderChildArray(node.children, parent, ctx);
145
+ }
74
146
  // ── Helpers for renderers ────────────────────────────────────────────────────
75
147
  /** Resolve a possibly-reactive string value */
76
148
  export function resolveStr(value, ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/renderer/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/renderer/engine.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,8 @@ import type { McpTransportOptions } from './transport.js';
33
33
  export { app } from './app.js';
34
34
  export type { AppOptions, PrefabApp, MountHandle } from './app.js';
35
35
  export { Bridge, isIframe, applyHostTheme } from './bridge.js';
36
+ export { registerPipe, unregisterPipe, listPipes } from '../rx/pipes.js';
37
+ export type { PipeFn } from '../rx/pipes.js';
36
38
  export type { AppCapabilities, HostCapabilities, HostContext, HostTheme, DisplayMode, BridgeMessage, } from './bridge.js';
37
39
  export interface PrefabWireData {
38
40
  $prefab: {
@@ -47,6 +49,8 @@ export interface PrefabWireData {
47
49
  defs?: Record<string, ComponentNode>;
48
50
  keyBindings?: Record<string, ActionJSON | ActionJSON[]>;
49
51
  stylesheets?: string[];
52
+ /** Custom pipe source code strings — hydrated by the renderer on mount. */
53
+ pipes?: Record<string, string>;
50
54
  }
51
55
  export interface PrefabUpdateData {
52
56
  $prefab: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAA;AAI/D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAExE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAKzD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC9D,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAA;AAIpB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5B,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC,CAAA;IACvD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,SAAS,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAAA;IAC9C,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,kDAAkD;IAClD,MAAM,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACxC,8BAA8B;IAC9B,KAAK,EAAE,KAAK,CAAA;IACZ,4BAA4B;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAID,eAAO,MAAM,cAAc;IACzB;;;;;;;OAOG;gBACS,WAAW,QAAQ,cAAc,YAAY,YAAY,GAAG,UAAU;IAwFlF;;OAEG;uBACgB,OAAO,GAAG,IAAI,IAAI,cAAc;IAInD;;OAEG;yBACkB,OAAO,GAAG,IAAI,IAAI,gBAAgB;CAQxD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAA;AAI/D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAExE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAOzD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACxE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAA;AAIpB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5B,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC,CAAA;IACvD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,SAAS,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAAA;IAC9C,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,kDAAkD;IAClD,MAAM,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACxC,8BAA8B;IAC9B,KAAK,EAAE,KAAK,CAAA;IACZ,4BAA4B;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAID,eAAO,MAAM,cAAc;IACzB;;;;;;;OAOG;gBACS,WAAW,QAAQ,cAAc,YAAY,YAAY,GAAG,UAAU;IAkGlF;;OAEG;uBACgB,OAAO,GAAG,IAAI,IAAI,cAAc;IAInD;;OAEG;yBACkB,OAAO,GAAG,IAAI,IAAI,gBAAgB;CAQxD,CAAA"}