@maxhealth.tech/prefab 0.1.7 → 0.2.0

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 (68) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/README.md +70 -3
  3. package/dist/actions/index.d.ts +2 -0
  4. package/dist/actions/index.d.ts.map +1 -1
  5. package/dist/actions/index.js +1 -0
  6. package/dist/actions/index.js.map +1 -1
  7. package/dist/actions/sugar.d.ts +31 -0
  8. package/dist/actions/sugar.d.ts.map +1 -0
  9. package/dist/actions/sugar.js +41 -0
  10. package/dist/actions/sugar.js.map +1 -0
  11. package/dist/app.d.ts +1 -1
  12. package/dist/app.d.ts.map +1 -1
  13. package/dist/app.js +10 -2
  14. package/dist/app.js.map +1 -1
  15. package/dist/components/data/index.d.ts +13 -3
  16. package/dist/components/data/index.d.ts.map +1 -1
  17. package/dist/components/data/index.js +38 -16
  18. package/dist/components/data/index.js.map +1 -1
  19. package/dist/components/layout/index.d.ts +36 -1
  20. package/dist/components/layout/index.d.ts.map +1 -1
  21. package/dist/components/layout/index.js +16 -0
  22. package/dist/components/layout/index.js.map +1 -1
  23. package/dist/core/component.d.ts +3 -2
  24. package/dist/core/component.d.ts.map +1 -1
  25. package/dist/core/component.js.map +1 -1
  26. package/dist/index.d.ts +6 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +3 -2
  29. package/dist/index.js.map +1 -1
  30. package/dist/renderer/components/data.d.ts.map +1 -1
  31. package/dist/renderer/components/data.js +34 -2
  32. package/dist/renderer/components/data.js.map +1 -1
  33. package/dist/renderer/components/layout.d.ts.map +1 -1
  34. package/dist/renderer/components/layout.js +42 -1
  35. package/dist/renderer/components/layout.js.map +1 -1
  36. package/dist/renderer/rx.d.ts.map +1 -1
  37. package/dist/renderer/rx.js +115 -3
  38. package/dist/renderer/rx.js.map +1 -1
  39. package/dist/renderer/state.d.ts +5 -0
  40. package/dist/renderer/state.d.ts.map +1 -1
  41. package/dist/renderer/state.js +6 -0
  42. package/dist/renderer/state.js.map +1 -1
  43. package/dist/renderer.min.js +30 -30
  44. package/dist/rx/collection.d.ts +92 -0
  45. package/dist/rx/collection.d.ts.map +1 -0
  46. package/dist/rx/collection.js +126 -0
  47. package/dist/rx/collection.js.map +1 -0
  48. package/dist/rx/index.d.ts +6 -0
  49. package/dist/rx/index.d.ts.map +1 -1
  50. package/dist/rx/index.js +4 -0
  51. package/dist/rx/index.js.map +1 -1
  52. package/dist/rx/pipes.d.ts +22 -0
  53. package/dist/rx/pipes.d.ts.map +1 -0
  54. package/dist/rx/pipes.js +32 -0
  55. package/dist/rx/pipes.js.map +1 -0
  56. package/dist/rx/rx.d.ts +7 -1
  57. package/dist/rx/rx.d.ts.map +1 -1
  58. package/dist/rx/rx.js +12 -3
  59. package/dist/rx/rx.js.map +1 -1
  60. package/dist/rx/signal.d.ts +50 -0
  61. package/dist/rx/signal.d.ts.map +1 -0
  62. package/dist/rx/signal.js +58 -0
  63. package/dist/rx/signal.js.map +1 -0
  64. package/dist/rx/state-collector.d.ts +23 -0
  65. package/dist/rx/state-collector.d.ts.map +1 -0
  66. package/dist/rx/state-collector.js +38 -0
  67. package/dist/rx/state-collector.js.map +1 -0
  68. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,73 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [0.1.10] — 2026-04-24
6
+
7
+ ### Action-Builder Sugar
8
+ - `set(signal, value)` — ergonomic wrapper for `new SetState(signal.key, value)`
9
+ - `toggle(signal)` — wrapper for `new ToggleState(signal.key)`
10
+ - `append(collection, item, index?)` — wrapper for `new AppendState(collection.stateKey, item)`
11
+ - `pop(collection, indexOrValue?)` — wrapper for `new PopState(collection.stateKey, indexOrValue)`, defaults to last element
12
+ - All helpers accept `Signal`, `Collection`, or raw `string` key via `StateTarget` type
13
+ - `set()` passes through `SetStateOpts` (onSuccess/onError callbacks)
14
+ - 17 new tests in `test/sugar.test.ts` — **846 total tests**
15
+
16
+ ## [0.1.8] — 2026-04-24
17
+
18
+ ### Reactive Primitives
19
+ - `signal(key, initial)` — named reactive scalar for wire format, auto-registers state
20
+ - `collection(key, rows, { key })` — named keyed array, auto-registers state
21
+ - `Ref<T>` — lazy pipe expression referencing a row in a collection via `collection.by(signal)`
22
+ - Typed `Ref.dot(field)` — returns `Ref<T[K]>` with autocomplete on `keyof T`
23
+ - `Ref.formatted(field, pipe, ...args)` — sugar for `.dot(field).pipe(pipe)`
24
+ - `Rx.pipe(name, ...args)` — public variadic pipe builder (was private single-arg)
25
+ - `Ref.pipe(name, ...args)` — delegates to `Rx.pipe()`
26
+
27
+ ### Pipe Extension Point
28
+ - `registerPipe(name, fn)` — global custom pipe registry for companion packages
29
+ - `unregisterPipe(name)` — remove a pipe (tests)
30
+ - `listPipes()` — list registered names (debugging)
31
+ - Built-in pipes always shadow custom pipes (safety)
32
+ - Re-registration warns and overwrites (HMR-friendly)
33
+ - Custom pipes receive variadic parsed args (`| date:'long'`, `| between:1,10`)
34
+
35
+ ### Selection & Master-Detail
36
+ - `DataTable({ from, selected })` — auto-wires `rowKey`, `onRowClick → SetState`, highlight
37
+ - `Detail({ of, empty, children })` — conditional pane, shows children when ref resolves
38
+ - `MasterDetail({ masterWidth, gap, children })` — two-pane flex layout
39
+ - `col()` descriptor overload: `col({ key, header, format, accessor, sortable })`
40
+ - `format` on columns applies pipe (built-in or custom) to cell values
41
+ - `accessor` on columns resolves pipe expressions per cell (`name | humanName`)
42
+
43
+ ### Auto State Collection
44
+ - `signal()` and `collection()` factories auto-register into a global collector
45
+ - `PrefabApp` constructor drains collector — no more `state: { ...c.toState(), ...s.toState() }`
46
+ - Explicit `state` overrides auto-collected on key conflicts
47
+ - Duplicate state keys warn (`[prefab] state key "X" registered multiple times`)
48
+ - `resetAutoState()` exported for test cleanup
49
+
50
+ ### Renderer
51
+ - `find` pipe filter — O(1) keyed lookup with generation-aware cache
52
+ - `dot` pipe filter — extract property from object
53
+ - `Store.generation` counter — monotonically increasing, invalidates find cache on mutation
54
+ - `applyFilter` falls through to custom pipe registry after built-ins
55
+ - `RxStr` widened to `string | Rx | Ref` — Ref works in all component props
56
+
57
+ ### Bug Fixes (TDD)
58
+ - `find` pipe: numeric key coercion (`'2' !== 2`) — fixed with `String()` on both sides
59
+ - `find` pipe: scope dot-path resolution (`$item.managerId`) — walk scope object
60
+ - `find` cache: stale after in-place mutation — fixed with generation counter
61
+ - `Detail`: `0` treated as truthy — added explicit `!== 0` check
62
+ - `col({ format })`: built-in pipes silently ignored — route through `applyFilter`
63
+ - `col({ accessor, format })`: double-applied formatting — skip format when accessor present
64
+ - Duplicate auto-state keys: silent overwrite — now warns
65
+
66
+ ### Tests
67
+ - 829 tests passing across 24 files
68
+ - New: `test/signal-collection.test.ts` (67 tests)
69
+ - New: `test/pipes.test.ts` (17 tests)
70
+ - New: `test/tdd-bugs.test.ts` (6 tests)
71
+
5
72
  ## [0.1.0] — 2026-04-20
6
73
 
7
74
  Initial release.
package/README.md CHANGED
@@ -72,7 +72,7 @@ async function listUsers(args: any) {
72
72
  ## Components
73
73
 
74
74
  ### Layout
75
- `Column`, `Row`, `Grid`, `GridItem`, `Container`, `Div`, `Span`, `Dashboard`, `DashboardItem`, `Pages`, `Page`
75
+ `Column`, `Row`, `Grid`, `GridItem`, `Container`, `Div`, `Span`, `Dashboard`, `DashboardItem`, `Pages`, `Page`, `Detail`, `MasterDetail`
76
76
 
77
77
  ### Typography
78
78
  `Heading`, `H1`–`H4`, `Text`, `P`, `Lead`, `Large`, `Small`, `Muted`, `BlockQuote`, `Label`, `Link`, `Code`, `Markdown`, `Kbd`
@@ -135,7 +135,74 @@ Text(rx('name').upper().truncate(20)) // → "{{ name | upper | truncate:20 }}"
135
135
  Text(STATE.count) // → "{{ count }}"
136
136
  ```
137
137
 
138
- **Built-in pipes:** `upper`, `lower`, `capitalize`, `truncate`, `currency`, `number`, `percent`, `date`, `time`, `datetime`, `length`, `default`, `json`, `keys`, `values`, `first`, `last`
138
+ **Built-in pipes:** `upper`, `lower`, `capitalize`, `truncate`, `currency`, `number`, `percent`, `date`, `time`, `datetime`, `length`, `default`, `json`, `keys`, `values`, `first`, `last`, `find`, `dot`, `join`, `abs`, `round`, `compact`, `pluralize`, `selectattr`, `rejectattr`
139
+
140
+ ## Signals, Collections & Selection
141
+
142
+ Type-safe reactive primitives for master-detail patterns:
143
+
144
+ ```ts
145
+ import {
146
+ signal, collection, DataTable, col, Detail, MasterDetail,
147
+ Heading, Text, Badge, PrefabApp,
148
+ } from '@maxhealth.tech/prefab'
149
+
150
+ const patients = collection('patients', data, { key: 'id' })
151
+ const sel = signal('selectedPatientId', patients.firstKey())
152
+ const ref = patients.by(sel)
153
+
154
+ const app = new PrefabApp({
155
+ title: 'Patient Browser',
156
+ view: MasterDetail({
157
+ masterWidth: '350px',
158
+ children: [
159
+ DataTable({
160
+ from: patients,
161
+ selected: sel,
162
+ columns: [
163
+ col({ key: 'name', header: 'Name', format: 'humanName' }),
164
+ col('gender'),
165
+ ],
166
+ }),
167
+ Detail({
168
+ of: ref,
169
+ empty: Text('Select a patient'),
170
+ children: [
171
+ Heading(ref.dot('name')),
172
+ Badge(ref.dot('gender')),
173
+ ],
174
+ }),
175
+ ],
176
+ }),
177
+ // state auto-collected from signal() and collection() — no manual wiring
178
+ })
179
+ ```
180
+
181
+ - **`signal(key, initial)`** — named reactive scalar, auto-registers state
182
+ - **`collection(key, rows, { key })`** — named keyed array with O(1) lookup
183
+ - **`ref.dot(field)`** — typed property access (`Ref<T[K]>`)
184
+ - **`ref.formatted(field, pipe)`** — dot + pipe shorthand for codegen
185
+ - **Auto state collection** — `PrefabApp` gathers state from signal/collection factories
186
+
187
+ ## Custom Pipes
188
+
189
+ Extend the pipe system for domain-specific formatting:
190
+
191
+ ```ts
192
+ import { registerPipe } from '@maxhealth.tech/prefab'
193
+
194
+ registerPipe('humanName', (names) => {
195
+ const hn = (names as { family: string; given: string[] }[])[0]
196
+ return hn ? `${hn.family}, ${hn.given.join(' ')}` : ''
197
+ })
198
+
199
+ registerPipe('quantity', (v, unit) => `${v} ${unit ?? ''}`)
200
+
201
+ // Now usable in expressions: {{ patient.name | humanName }}
202
+ // And in col descriptors: col({ key: 'name', format: 'humanName' })
203
+ ```
204
+
205
+ Built-in pipes always take precedence. Re-registration warns and overwrites (HMR-friendly).
139
206
 
140
207
  ## Actions
141
208
 
@@ -329,7 +396,7 @@ import { ... } from '@maxhealth.tech/prefab/renderer' // Browser renderer
329
396
 
330
397
  ```bash
331
398
  bun install # Install dependencies
332
- bun test # Run tests (362 passing)
399
+ bun test # Run tests (829 passing)
333
400
  bun run build # TypeScript compile + IIFE bundle
334
401
  bun run lint # ESLint
335
402
  bun run typecheck # Type check without emitting
@@ -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
@@ -8,7 +8,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
10
  /** Package version — injected by build script, updated at release time. */
11
- export declare const VERSION = "0.1.7";
11
+ export declare const VERSION = "0.2.0";
12
12
  export interface Theme {
13
13
  light?: Record<string, string>;
14
14
  dark?: Record<string, string>;
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;AAE5D,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;IAalC;;;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":"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"}
package/dist/app.js CHANGED
@@ -5,8 +5,9 @@
5
5
  * Serializes to the $prefab wire format compatible with the Python version.
6
6
  */
7
7
  import {} from './core/component.js';
8
+ import { drainAutoState } from './rx/state-collector.js';
8
9
  /** Package version — injected by build script, updated at release time. */
9
- export const VERSION = '0.1.7';
10
+ export const VERSION = '0.2.0';
10
11
  export class PrefabApp {
11
12
  title;
12
13
  view;
@@ -21,7 +22,14 @@ export class PrefabApp {
21
22
  constructor(opts) {
22
23
  this.title = opts.title ?? 'Prefab';
23
24
  this.view = opts.view;
24
- this.state = opts.state;
25
+ // Merge auto-collected state (from signal/collection factories) with explicit state.
26
+ // Explicit state wins on key conflicts.
27
+ const autoState = drainAutoState();
28
+ const explicit = opts.state;
29
+ const merged = Object.keys(autoState).length > 0 || explicit
30
+ ? { ...autoState, ...explicit }
31
+ : undefined;
32
+ this.state = merged;
25
33
  this.theme = opts.theme;
26
34
  this.defs = opts.defs;
27
35
  this.stylesheets = opts.stylesheets;
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":"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"}
@@ -3,19 +3,29 @@
3
3
  */
4
4
  import { Component } from '../../core/component.js';
5
5
  import type { ComponentProps, RxStr } from '../../core/component.js';
6
+ import type { Signal } from '../../rx/signal.js';
7
+ import type { Collection } from '../../rx/collection.js';
6
8
  export interface DataTableColumnDef {
7
9
  key: string;
8
10
  header?: string;
9
11
  sortable?: boolean;
12
+ /** Pipe name applied to cell values for display (e.g. 'humanName', 'date'). */
13
+ format?: string;
14
+ /** Pipe expression for complex access (e.g. "name | humanName"). Overrides key for display. */
15
+ accessor?: string;
10
16
  }
11
- /** Convenience factory for DataTableColumn definitions */
12
- export declare function col(key: string, header?: string, opts?: {
17
+ /** Convenience factory for DataTableColumn definitions — short or descriptor form. */
18
+ export declare function col(keyOrDef: string | DataTableColumnDef, header?: string, opts?: {
13
19
  sortable?: boolean;
14
20
  }): DataTableColumnDef;
15
21
  export interface DataTableProps extends ComponentProps {
16
- rows: unknown[] | RxStr;
22
+ rows?: unknown[] | RxStr;
17
23
  columns: DataTableColumnDef[];
18
24
  search?: boolean;
25
+ /** Collection to derive rows from. Mutually exclusive with `rows`. */
26
+ from?: Collection;
27
+ /** Signal whose value matches the selected row's key. Auto-generates onRowClick → SetState. */
28
+ selected?: Signal<string | null>;
19
29
  }
20
30
  export declare function DataTable(props: DataTableProps): Component;
21
31
  export type BadgeVariant = 'default' | 'secondary' | 'destructive' | 'success' | 'warning' | 'info' | 'outline';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/data/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAIpE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,0DAA0D;AAC1D,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,kBAAkB,CAEnG;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IACvB,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAgB1D;AAID,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;AAE/G,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAOnE;AAID,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAIpE;AAID,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IAC9B,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAA;IACpD,WAAW,CAAC,EAAE,KAAK,CAAA;CACpB;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAWpD;AAID,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,KAAK,EAAE,MAAM,GAAG,KAAK,CAAA;IACrB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAUhD;AAID,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,KAAK,EAAE,MAAM,GAAG,KAAK,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAQxD;AAID,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAI3D;AAID,wBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAExD;AAID,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAIpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/data/index.ts"],"names":[],"mappings":"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"}
@@ -2,25 +2,47 @@
2
2
  * Data display components — DataTable, Badge, Metric, Separator, Progress, etc.
3
3
  */
4
4
  import { Component } from '../../core/component.js';
5
- /** Convenience factory for DataTableColumn definitions */
6
- export function col(key, header, opts) {
7
- return { key, header: header ?? key, sortable: opts?.sortable ?? false };
5
+ import { SetState } from '../../actions/client.js';
6
+ /** Convenience factory for DataTableColumn definitions — short or descriptor form. */
7
+ export function col(keyOrDef, header, opts) {
8
+ if (typeof keyOrDef === 'object')
9
+ return keyOrDef;
10
+ return { key: keyOrDef, header: header ?? keyOrDef, sortable: opts?.sortable ?? false };
8
11
  }
9
12
  export function DataTable(props) {
13
+ const from = props.from;
14
+ const rows = from != null ? from.toRx().toString() : props.rows;
10
15
  const c = new Component('DataTable', props);
11
- c.getProps = () => ({
12
- rows: typeof props.rows === 'string' || (typeof props.rows === 'object' && 'toJSON' in props.rows)
13
- ? String(props.rows)
14
- : props.rows,
15
- columns: props.columns.map(col => ({
16
- key: col.key,
17
- header: col.header ?? col.key,
18
- sortable: col.sortable ?? false,
19
- })),
20
- search: props.search ?? false,
21
- paginated: false,
22
- pageSize: 10,
23
- });
16
+ c.getProps = () => {
17
+ const p = {
18
+ rows: typeof rows === 'string'
19
+ ? rows
20
+ : (rows != null && typeof rows === 'object' && 'toJSON' in rows) ? String(rows) : rows,
21
+ columns: props.columns.map(c => {
22
+ const def = {
23
+ key: c.key,
24
+ header: c.header ?? c.key,
25
+ sortable: c.sortable ?? false,
26
+ };
27
+ if (c.format)
28
+ def.format = c.format;
29
+ if (c.accessor)
30
+ def.accessor = c.accessor;
31
+ return def;
32
+ }),
33
+ search: props.search ?? false,
34
+ paginated: false,
35
+ pageSize: 10,
36
+ };
37
+ // Wire selection
38
+ if (props.selected && from != null) {
39
+ const keyField = from.keyField;
40
+ p.rowKey = keyField;
41
+ p.selected = props.selected.toRx().toString();
42
+ p.onRowClick = [new SetState(props.selected.key, `{{ $item.${keyField} }}`).toJSON()];
43
+ }
44
+ return p;
45
+ };
24
46
  return c;
25
47
  }
26
48
  export function Badge(content, props) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/data/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/data/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
  * Layout components — Column, Row, Grid, Container, Div, Span, etc.
3
3
  */
4
4
  import { ContainerComponent, type Component } from '../../core/component.js';
5
- import type { ContainerProps } from '../../core/component.js';
5
+ import type { ContainerProps, RxStr } from '../../core/component.js';
6
+ import type { Ref } from '../../rx/collection.js';
6
7
  export interface ColumnProps extends ContainerProps {
7
8
  gap?: number;
8
9
  align?: string;
@@ -58,4 +59,38 @@ export interface PageProps extends ContainerProps {
58
59
  name: string;
59
60
  }
60
61
  export declare function Page(props: PageProps): ContainerComponent;
62
+ /**
63
+ * A detail pane that displays content from a Ref. Compiles to a conditional
64
+ * block: shows `children` when the ref resolves, shows `empty` otherwise.
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * const detail = Detail({ of: selectedPatient })
69
+ * detail.add(Heading(selectedPatient.dot('name')))
70
+ * ```
71
+ */
72
+ export interface DetailProps extends ContainerProps {
73
+ /** Reactive reference expression (e.g. from `collection.by(signal)`) */
74
+ of: Ref | RxStr;
75
+ /** Component to show when ref resolves to null/undefined */
76
+ empty?: Component;
77
+ }
78
+ export declare function Detail(props: DetailProps): ContainerComponent;
79
+ /**
80
+ * Two-pane layout: master (list) on the left, detail on the right.
81
+ * Expects exactly two children: the master panel and the detail panel.
82
+ *
83
+ * @example
84
+ * ```ts
85
+ * const md = MasterDetail({ masterWidth: '350px' })
86
+ * md.add(table) // master
87
+ * md.add(detail) // detail
88
+ * ```
89
+ */
90
+ export interface MasterDetailProps extends ContainerProps {
91
+ /** Width of the master pane. Defaults to '33%'. */
92
+ masterWidth?: string;
93
+ gap?: number;
94
+ }
95
+ export declare function MasterDetail(props?: MasterDetailProps): ContainerComponent;
61
96
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAI7D,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CAY1F;AAID,MAAM,WAAW,QAAS,SAAQ,cAAc;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CASpF;AAID,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CAStF;AAID,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CAO9F;AAID,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAEpE;AAID,wBAAgB,GAAG,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAE9D;AAID,wBAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAE/D;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CAQhG;AAID,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CASxG;AAID,wBAAgB,KAAK,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAEhE;AAED,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB,CAIzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"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"}
@@ -83,4 +83,20 @@ export function Page(props) {
83
83
  c.getProps = () => ({ name: props.name });
84
84
  return c;
85
85
  }
86
+ export function Detail(props) {
87
+ const c = new ContainerComponent('Detail', props);
88
+ c.getProps = () => ({
89
+ of: String(props.of),
90
+ ...(props.empty && { empty: props.empty }),
91
+ });
92
+ return c;
93
+ }
94
+ export function MasterDetail(props) {
95
+ const c = new ContainerComponent('MasterDetail', props);
96
+ c.getProps = () => ({
97
+ ...(props?.masterWidth && { masterWidth: props.masterWidth }),
98
+ ...(props?.gap !== undefined && { gap: props.gap }),
99
+ });
100
+ return c;
101
+ }
86
102
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,9 @@
12
12
  */
13
13
  import type { Action, ActionJSON } from '../actions/types.js';
14
14
  import type { Rx } from '../rx/rx.js';
15
- /** Any value that can be a plain string or a reactive Rx expression */
16
- export type RxStr = string | Rx;
15
+ import type { Ref } from '../rx/collection.js';
16
+ /** Any value that can be a plain string, a reactive Rx expression, or a Ref */
17
+ export type RxStr = string | Rx | Ref;
17
18
  /** Serialized component JSON */
18
19
  export interface ComponentJSON {
19
20
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/core/component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAIrC,uEAAuE;AACvE,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,EAAE,CAAA;AAE/B,gCAAgC;AAChC,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;AASD,wCAAwC;AACxC,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAiBlD;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC5B;AAED,qBAAa,SAAS;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;gBAEf,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc;IAOhD,6DAA6D;IAC7D,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAInC,MAAM,IAAI,aAAa;CAsBxB;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,QAAQ,EAAE,SAAS,EAAE,CAAA;gBAET,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc;IAKhD,MAAM,IAAI,aAAa;CAOxB;AAID,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC7B;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;gBAEhB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa;IAO9C,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAWpC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/core/component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAI9C,+EAA+E;AAC/E,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,EAAE,GAAG,GAAG,CAAA;AAErC,gCAAgC;AAChC,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;AASD,wCAAwC;AACxC,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAiBlD;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC5B;AAED,qBAAa,SAAS;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;gBAEf,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc;IAOhD,6DAA6D;IAC7D,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAInC,MAAM,IAAI,aAAa;CAsBxB;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,QAAQ,EAAE,SAAS,EAAE,CAAA;gBAET,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc;IAKhD,MAAM,IAAI,aAAa;CAOxB;AAID,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC7B;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;gBAEhB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa;IAO9C,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAWpC"}