@pilotiq/pilotiq 0.10.0 → 0.12.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 (54) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/CHANGELOG.md +128 -0
  3. package/dist/react/AppShell.d.ts +1 -1
  4. package/dist/react/AppShell.d.ts.map +1 -1
  5. package/dist/react/AppShell.js +7 -1
  6. package/dist/react/AppShell.js.map +1 -1
  7. package/dist/react/CollabTextRendererRegistry.d.ts +75 -0
  8. package/dist/react/CollabTextRendererRegistry.d.ts.map +1 -0
  9. package/dist/react/CollabTextRendererRegistry.js +18 -0
  10. package/dist/react/CollabTextRendererRegistry.js.map +1 -0
  11. package/dist/react/CurrentUserContext.d.ts +39 -0
  12. package/dist/react/CurrentUserContext.d.ts.map +1 -0
  13. package/dist/react/CurrentUserContext.js +27 -0
  14. package/dist/react/CurrentUserContext.js.map +1 -0
  15. package/dist/react/FormCollabBindingRegistry.d.ts +161 -17
  16. package/dist/react/FormCollabBindingRegistry.d.ts.map +1 -1
  17. package/dist/react/FormCollabBindingRegistry.js.map +1 -1
  18. package/dist/react/FormStateContext.d.ts +39 -1
  19. package/dist/react/FormStateContext.d.ts.map +1 -1
  20. package/dist/react/FormStateContext.js +126 -33
  21. package/dist/react/FormStateContext.js.map +1 -1
  22. package/dist/react/fields/BuilderInput.d.ts.map +1 -1
  23. package/dist/react/fields/BuilderInput.js +112 -10
  24. package/dist/react/fields/BuilderInput.js.map +1 -1
  25. package/dist/react/fields/MarkdownInput.d.ts.map +1 -1
  26. package/dist/react/fields/MarkdownInput.js +60 -1
  27. package/dist/react/fields/MarkdownInput.js.map +1 -1
  28. package/dist/react/fields/RepeaterInput.d.ts.map +1 -1
  29. package/dist/react/fields/RepeaterInput.js +113 -10
  30. package/dist/react/fields/RepeaterInput.js.map +1 -1
  31. package/dist/react/fields/TextLikeInput.d.ts.map +1 -1
  32. package/dist/react/fields/TextLikeInput.js +83 -6
  33. package/dist/react/fields/TextLikeInput.js.map +1 -1
  34. package/dist/react/formStateHelpers.d.ts +102 -0
  35. package/dist/react/formStateHelpers.d.ts.map +1 -1
  36. package/dist/react/formStateHelpers.js +234 -0
  37. package/dist/react/formStateHelpers.js.map +1 -1
  38. package/dist/react/index.d.ts +4 -2
  39. package/dist/react/index.d.ts.map +1 -1
  40. package/dist/react/index.js +3 -1
  41. package/dist/react/index.js.map +1 -1
  42. package/package.json +5 -5
  43. package/src/react/AppShell.tsx +11 -1
  44. package/src/react/CollabTextRendererRegistry.ts +84 -0
  45. package/src/react/CurrentUserContext.tsx +50 -0
  46. package/src/react/FormCollabBindingRegistry.ts +160 -17
  47. package/src/react/FormStateContext.tsx +157 -34
  48. package/src/react/fields/BuilderInput.tsx +97 -8
  49. package/src/react/fields/MarkdownInput.tsx +118 -1
  50. package/src/react/fields/RepeaterInput.tsx +97 -8
  51. package/src/react/fields/TextLikeInput.tsx +129 -5
  52. package/src/react/formStateHelpers.test.ts +312 -0
  53. package/src/react/formStateHelpers.ts +246 -0
  54. package/src/react/index.ts +15 -0
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { ElementMeta } from '../schema/Element.js';
3
- import { type TextBinding } from './FormCollabBindingRegistry.js';
3
+ import { type RowBindingApi, type TextBinding } from './FormCollabBindingRegistry.js';
4
4
  export type FieldStatus = 'idle' | 'pending';
5
5
  export interface FormStateApi {
6
6
  values: Record<string, unknown>;
@@ -27,6 +27,29 @@ export interface FormStateApi {
27
27
  * non-null answers, so a `Map.get()` hit means the binding has opted
28
28
  * this field into the character-level path. */
29
29
  textBindings: ReadonlyMap<string, TextBinding> | null;
30
+ /** Phase F.5 — per-Repeater/Builder row-array bindings. `null` outside a
31
+ * collab room or when the binding doesn't implement F.5 row methods.
32
+ * Each entry's API methods are pre-bound to the array name so renderers
33
+ * call `.add(rowId, initial)` rather than `binding.addRow(name, …)`. */
34
+ rowBindings: ReadonlyMap<string, RowBindingApi> | null;
35
+ /**
36
+ * Phase F.5c — per-array set of inner-field names that should route
37
+ * through `Y.Text` (character-level CRDT) instead of row-level Y.Map
38
+ * LWW. Built from a single meta walk at binding mount. Read by
39
+ * `useFieldState(dottedName).textBinding` to decide whether to call
40
+ * `getRowTextBinding`. Sparse — only arrays with at least one
41
+ * text-shaped row leaf appear; absence on a key means "no text leaves
42
+ * in this Repeater/Builder".
43
+ */
44
+ rowTextLeaves: ReadonlyMap<string, ReadonlySet<string>> | null;
45
+ /**
46
+ * Phase F.5c — resolve a per-row `TextBinding`. Pre-bound to the
47
+ * active F.5 binding so consumers don't reach for `bindingRef`
48
+ * directly. Returns `null` when no binding implements F.5c OR the
49
+ * row+field doesn't qualify (renderer caller should fall back to
50
+ * `defaultValue` like a non-collab form).
51
+ */
52
+ getRowTextBinding: ((arrayName: string, rowId: string, fieldName: string) => TextBinding | null) | null;
30
53
  }
31
54
  /** Hook for direct access to the form context. Returns `null` outside a
32
55
  * `FormStateProvider` (e.g. an action modal, or a form without any live
@@ -70,6 +93,21 @@ export interface UseFieldStateResult {
70
93
  * `applyDelta + observe`; null → today's whole-string LWW path. */
71
94
  textBinding: TextBinding | null;
72
95
  }
96
+ /**
97
+ * Phase F.5 — return the row-array CRDT API for a Repeater/Builder field.
98
+ * Returns `null` when:
99
+ *
100
+ * - No `FormStateProvider` is mounted (e.g. uncontrolled form path).
101
+ * - No `<RecordCollabRoom>` is up-tree (no binding registered).
102
+ * - The active binding doesn't implement F.5's row methods.
103
+ * - The named field opted out via `.collab(false)` (skipped at meta walk).
104
+ * - The named field isn't a Repeater/Builder.
105
+ *
106
+ * RepeaterInput + BuilderInput call this once per render and proceed
107
+ * with the v1 local-only behaviour when null. The returned API methods
108
+ * are pre-bound to the array name so consumers don't repeat it.
109
+ */
110
+ export declare function useRowBinding(arrayName: string): RowBindingApi | null;
73
111
  /** Per-field accessor. Inside a `FormStateProvider` it returns the controlled
74
112
  * value + setter + live trigger; outside, it returns sentinels and callers
75
113
  * should fall back to `defaultValue` (uncontrolled inputs). */
@@ -1 +1 @@
1
- {"version":3,"file":"FormStateContext.d.ts","sourceRoot":"","sources":["../../src/react/FormStateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAWvD,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,gCAAgC,CAAA;AAEvC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAA;AAE5C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,EAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACrD;;;;;;qEAMiE;IACjE,WAAW,EAAI,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9D,MAAM,EAAS,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACvC;8EAC0E;IAC1E,WAAW,EAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,IAAI,CAAA;IACzD,QAAQ,EAAO,WAAW,CAAA;IAC1B,QAAQ,EAAO,OAAO,CAAA;IACtB,WAAW,EAAI,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAA;IAC5C;;;;;oDAKgD;IAChD,YAAY,EAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,CAAA;CACvD;AAID;;4DAE4D;AAC5D,wBAAgB,YAAY,IAAI,YAAY,GAAG,IAAI,CAElD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,uBAA4B,CAAA;AAetD,MAAM,WAAW,mBAAmB;IAClC;;;;;;oDAMgD;IAChD,UAAU,EAAG,OAAO,CAAA;IACpB,KAAK,EAAQ,OAAO,CAAA;IACpB,QAAQ,EAAK,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IACjC;;;;mBAIe;IACf,WAAW,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,qEAAqE;IACrE,OAAO,EAAM,OAAO,CAAA;IACpB,MAAM,EAAO,MAAM,EAAE,CAAA;IACrB;;;;;;;wEAOoE;IACpE,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;CAChC;AAED;;gEAEgE;AAChE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CA6B/D;AAWD,MAAM,WAAW,sBAAsB;IACrC;oDACgD;IAChD,WAAW,EAAI,WAAW,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACvC,QAAQ,EAAO,KAAK,CAAC,SAAS,CAAA;IAC9B,+EAA+E;IAC/E,SAAS,CAAC,EAAK,OAAO,KAAK,CAAA;IAC3B;gFAC4E;IAC5E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IAC1C;;;;wDAIoD;IACpD,OAAO,CAAC,EAAO,KAAK,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;CACvD;AAED;;;uEAGuE;AACvE,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,OAAO,GACR,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAqW7C"}
1
+ {"version":3,"file":"FormStateContext.d.ts","sourceRoot":"","sources":["../../src/react/FormStateContext.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from 'react';
3
- import { collectFieldDefaults, findFieldMeta, parseFormDataToNested, readNestedValue, writeNestedValue, } from './formStateHelpers.js';
3
+ import { collectFieldDefaults, collectRowArrayFieldNames, collectRowTextLeavesByArray, findFieldMeta, parseFormDataToNested, parseRowFieldPath, readNestedValue, routeBindingWrite, rowIdAtIndex, writeNestedValue, } from './formStateHelpers.js';
4
4
  import { runJsHandler } from './fieldJsHandler.js';
5
5
  import { useToast } from './Toaster.js';
6
6
  import { useCollabRoom } from './CollabRoomContext.js';
@@ -21,16 +21,24 @@ export function useFormState() {
21
21
  */
22
22
  export const FormIdContext = createContext('');
23
23
  /**
24
- * Phase F2returns `true` iff the named field has explicitly opted out
25
- * of realtime collab via `Field.collab(false)`. Sparse meta — absent =
26
- * inherit the panel default (collab on). Walks the form meta tree the
27
- * same way `findFieldMeta` does; cheap because it only runs on the
28
- * per-write path (already a hot path, but every check is one map
29
- * lookup + one boolean compare).
24
+ * Phase F.5return the row-array CRDT API for a Repeater/Builder field.
25
+ * Returns `null` when:
26
+ *
27
+ * - No `FormStateProvider` is mounted (e.g. uncontrolled form path).
28
+ * - No `<RecordCollabRoom>` is up-tree (no binding registered).
29
+ * - The active binding doesn't implement F.5's row methods.
30
+ * - The named field opted out via `.collab(false)` (skipped at meta walk).
31
+ * - The named field isn't a Repeater/Builder.
32
+ *
33
+ * RepeaterInput + BuilderInput call this once per render and proceed
34
+ * with the v1 local-only behaviour when null. The returned API methods
35
+ * are pre-bound to the array name so consumers don't repeat it.
30
36
  */
31
- function fieldOptsOutOfCollab(formMeta, name) {
32
- const meta = findFieldMeta(formMeta, name);
33
- return meta?.collab === false;
37
+ export function useRowBinding(arrayName) {
38
+ const ctx = useContext(FormStateContext);
39
+ if (!ctx?.rowBindings)
40
+ return null;
41
+ return ctx.rowBindings.get(arrayName) ?? null;
34
42
  }
35
43
  /** Per-field accessor. Inside a `FormStateProvider` it returns the controlled
36
44
  * value + setter + live trigger; outside, it returns sentinels and callers
@@ -58,13 +66,37 @@ export function useFieldState(name) {
58
66
  triggerLive: (valueOverride) => ctx.triggerLive(name, valueOverride),
59
67
  pending: ctx.fieldStatus(name) === 'pending',
60
68
  errors: ctx.errors[name] ?? [],
61
- // Phase F.6 — dotted-path inner-Repeater rows skipped in v1 (deferred
62
- // to F.5 alongside Y.Array row identity). Outside a collab room or
63
- // for non-text fields, the stash returns null and the renderer falls
64
- // back to today's whole-string LWW path.
65
- textBinding: dotted ? null : (ctx.textBindings?.get(name) ?? null),
69
+ // Phase F.6 — top-level text fields resolve from the binding-mount
70
+ // text stash. Phase F.5c dotted-path row leaves resolve through
71
+ // `getRowTextBinding` when the field is text-shaped AND the row's
72
+ // `__id` is already stamped in the values map. Outside a collab
73
+ // room, for non-text fields, or before `addRow` has settled the
74
+ // row's id, the lookup returns null and `BoundTextInput` falls
75
+ // back to today's uncontrolled-input path.
76
+ textBinding: dotted
77
+ ? resolveRowTextBinding(ctx, name)
78
+ : (ctx.textBindings?.get(name) ?? null),
66
79
  };
67
80
  }
81
+ /**
82
+ * Phase F.5c — dotted-name `TextBinding` resolver. Returns `null`
83
+ * whenever any precondition fails so the caller's renderer can take a
84
+ * single branch on null vs non-null.
85
+ */
86
+ function resolveRowTextBinding(ctx, dottedName) {
87
+ if (!ctx.rowTextLeaves || !ctx.getRowTextBinding)
88
+ return null;
89
+ const parsed = parseRowFieldPath(dottedName);
90
+ if (!parsed)
91
+ return null;
92
+ const set = ctx.rowTextLeaves.get(parsed.arrayName);
93
+ if (!set?.has(parsed.fieldName))
94
+ return null;
95
+ const rowId = rowIdAtIndex(ctx.values, parsed.arrayName, parsed.index);
96
+ if (!rowId)
97
+ return null;
98
+ return ctx.getRowTextBinding(parsed.arrayName, rowId, parsed.fieldName);
99
+ }
68
100
  /** Provider component for the controlled form path. Holds the values map,
69
101
  * the current form meta (replaced wholesale on live POST), and the
70
102
  * per-field live trigger. Mounted by `FormRenderer` when the form has a
@@ -82,6 +114,15 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
82
114
  // existing `setValuesState` overlay below already triggers one when the
83
115
  // room has pre-existing state.
84
116
  const [textBindings, setTextBindings] = useState(null);
117
+ // Phase F.5 — per-Repeater/Builder row-array stash. Same lifecycle as
118
+ // `textBindings`: populated on collab mount when the binding implements
119
+ // F.5 row methods, cleared on unmount.
120
+ const [rowBindings, setRowBindings] = useState(null);
121
+ // Phase F.5c — per-array set of text-shaped row leaves + a pre-bound
122
+ // resolver. Both populated at binding mount when the active binding
123
+ // implements `getRowTextBinding`; cleared on unmount.
124
+ const [rowTextLeaves, setRowTextLeaves] = useState(null);
125
+ const [getRowTextBinding, setGetRowTextBinding] = useState(null);
85
126
  const { notify } = useToast();
86
127
  // Track an incrementing in-flight id so out-of-order responses are dropped.
87
128
  // useRef (not useState) so React StrictMode dev double-invokes don't
@@ -157,6 +198,52 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
157
198
  if (textStash.size > 0)
158
199
  setTextBindings(textStash);
159
200
  }
201
+ // Phase F.5 — build a `RowBindingApi` per top-level Repeater/Builder
202
+ // field when the binding implements all three lifecycle methods. The
203
+ // walk reads from formMeta (structural — fields exist regardless of
204
+ // whether the form has any rows yet); the API is then pre-bound to
205
+ // the array name so `RepeaterInput` calls `rb.add(rowId, …)` rather
206
+ // than `binding.addRow(name, rowId, …)`. Partial F.5 impls (e.g. a
207
+ // binding that has addRow but not reorderRows) skip the stash — the
208
+ // contract says all three or nothing. F.5c's per-row text path is
209
+ // exposed separately via `getRowTextBinding` and stays optional.
210
+ if (binding.addRow && binding.removeRow && binding.reorderRows) {
211
+ const { addRow, removeRow, reorderRows, subscribeRows } = binding;
212
+ const arrayNames = collectRowArrayFieldNames(formMetaRef.current);
213
+ if (arrayNames.length > 0) {
214
+ const rowStash = new Map();
215
+ for (const arrayName of arrayNames) {
216
+ rowStash.set(arrayName, {
217
+ add: (rowId, initial = {}) => addRow.call(binding, arrayName, rowId, initial),
218
+ remove: (rowId) => removeRow.call(binding, arrayName, rowId),
219
+ reorder: (newOrder) => reorderRows.call(binding, arrayName, newOrder),
220
+ // Partial F.5 impl: a binding may ship add/remove/reorder
221
+ // without `subscribeRows` (e.g. tests). Substitute a no-op
222
+ // subscription so renderer code stays uniform — the cleanup
223
+ // fn is still called on unmount but no events ever arrive.
224
+ subscribe: subscribeRows
225
+ ? (fn) => subscribeRows.call(binding, arrayName, fn)
226
+ : () => () => { },
227
+ });
228
+ }
229
+ setRowBindings(rowStash);
230
+ }
231
+ }
232
+ // Phase F.5c — capture the per-array text-leaf allowlist + bind the
233
+ // row-text resolver to the active binding. `getRowTextBinding` may
234
+ // be absent on partial F.5 impls; we expose the resolver as null in
235
+ // that case so `useFieldState` short-circuits cleanly.
236
+ if (binding.getRowTextBinding) {
237
+ const leaves = collectRowTextLeavesByArray(formMetaRef.current);
238
+ if (leaves.size > 0) {
239
+ setRowTextLeaves(leaves);
240
+ const bound = binding.getRowTextBinding;
241
+ // useState's functional-updater overload would invoke the
242
+ // stored function during set; wrapping in a fresh closure keeps
243
+ // React's setState path from confusing it for an updater fn.
244
+ setGetRowTextBinding(() => (arrayName, rowId, fieldName) => bound.call(binding, arrayName, rowId, fieldName));
245
+ }
246
+ }
160
247
  // Subscribe to remote changes. Local writes ALSO trigger this
161
248
  // (Yjs observers fire on local transactions too) — the per-key
162
249
  // Object.is short-circuit below collapses them into no-op renders.
@@ -178,6 +265,9 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
178
265
  binding.destroy();
179
266
  bindingRef.current = null;
180
267
  setTextBindings(null);
268
+ setRowBindings(null);
269
+ setRowTextLeaves(null);
270
+ setGetRowTextBinding(null);
181
271
  };
182
272
  // `valuesRef.current` is intentionally read once at mount — initial
183
273
  // values seed the binding; subsequent edits flow through `setValue`
@@ -239,14 +329,13 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
239
329
  return prev;
240
330
  return { ...prev, [name]: value };
241
331
  });
242
- // Phase F2 — proxy the write through the collab binding when active
243
- // AND the field hasn't opted out via `.collab(false)`. Dotted-path
244
- // names (Repeater / Builder row leaves) stay local-only in v1; their
245
- // syncing belongs to Phase F.5 (`Y.Array<Y.Map>` row identity).
246
- const binding = bindingRef.current;
247
- if (binding && !name.includes('.') && !fieldOptsOutOfCollab(formMetaRef.current, name)) {
248
- binding.set(name, value);
249
- }
332
+ // Phase F2 / F.5 — proxy the write through the collab binding when
333
+ // active AND the field hasn't opted out via `.collab(false)`. Top-level
334
+ // fields ride `binding.set`. Row leaves (dotted paths matching
335
+ // `parseRowFieldPath`) route through `binding.setRow` when the
336
+ // binding implements F.5 — otherwise stay local-only (same posture
337
+ // as pre-F.5).
338
+ routeBindingWrite(bindingRef.current, formMetaRef.current, valuesRef.current, name, value);
250
339
  // Fire the client-side JS hook synchronously after the state write.
251
340
  // Dotted-name fields don't go through here (their setter is a no-op
252
341
  // in `useFieldState`); they fire JS via `triggerLive` instead so we
@@ -317,18 +406,19 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
317
406
  const serverValues = data.form.values;
318
407
  if (serverValues) {
319
408
  setValuesState((prev) => ({ ...prev, ...serverValues }));
320
- // Phase F2 (Q2) — derived fields propagate to peers via the
321
- // collab binding so every client sees the auto-`slug` / etc.
322
- // without each peer roundtripping the server. Skip dotted-path
323
- // names + fields that opted out.
409
+ // Phase F2 (Q2) / F.5 — derived fields propagate to peers via the
410
+ // collab binding so every client sees the auto-`slug` / etc. without
411
+ // each peer roundtripping the server. Row leaves route through
412
+ // `setRow` when the binding implements F.5; top-level fields ride
413
+ // `set`. The rowId lookup needs the freshest values — merge
414
+ // `valuesRef.current` with the server overlay so a row-id stamped
415
+ // by this very server-resolve response is visible to `rowIdAtIndex`.
324
416
  const binding = bindingRef.current;
325
417
  if (binding) {
418
+ const lookupValues = { ...valuesRef.current, ...serverValues };
326
419
  for (const [k, v] of Object.entries(serverValues)) {
327
- if (k.includes('.'))
328
- continue;
329
- if (fieldOptsOutOfCollab(data.form, k))
330
- continue;
331
- binding.set(k, v);
420
+ // routeBindingWrite handles `.collab(false)` opt-out internally.
421
+ routeBindingWrite(binding, data.form, lookupValues, k, v);
332
422
  }
333
423
  }
334
424
  }
@@ -406,7 +496,10 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
406
496
  inFlight,
407
497
  fieldStatus,
408
498
  textBindings,
409
- }), [values, setValue, triggerLive, errors, applyErrors, formMeta, inFlight, fieldStatus, textBindings]);
499
+ rowBindings,
500
+ rowTextLeaves,
501
+ getRowTextBinding,
502
+ }), [values, setValue, triggerLive, errors, applyErrors, formMeta, inFlight, fieldStatus, textBindings, rowBindings, rowTextLeaves, getRowTextBinding]);
410
503
  return (_jsx(FormStateContext.Provider, { value: api, children: children }));
411
504
  }
412
505
  //# sourceMappingURL=FormStateContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormStateContext.js","sourceRoot":"","sources":["../../src/react/FormStateContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormStateContext.js","sourceRoot":"","sources":["../../src/react/FormStateContext.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BuilderInput.d.ts","sourceRoot":"","sources":["../../../src/react/fields/BuilderInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkE,MAAM,OAAO,CAAA;AAEtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAgG1D;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,EAAE,EAAQ,WAAW,CAAA;IACrB,IAAI,EAAM,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;CAClB,GAAG,KAAK,CAAC,YAAY,CA4XrB"}
1
+ {"version":3,"file":"BuilderInput.d.ts","sourceRoot":"","sources":["../../../src/react/fields/BuilderInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkE,MAAM,OAAO,CAAA;AAEtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAgG1D;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,EAAE,EAAQ,WAAW,CAAA;IACrB,IAAI,EAAM,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;CAClB,GAAG,KAAK,CAAC,YAAY,CAqdrB"}
@@ -3,7 +3,7 @@ import React, { useContext, useEffect, useId, useMemo, useRef, useState } from '
3
3
  import { ChevronDownIcon, PlusIcon } from 'lucide-react';
4
4
  import { Button } from '../ui/button.js';
5
5
  import { SchemaRenderer } from '../SchemaRenderer.js';
6
- import { FormIdContext, useFormState } from '../FormStateContext.js';
6
+ import { FormIdContext, useFormState, useRowBinding } from '../FormStateContext.js';
7
7
  import { findFieldMeta } from '../formStateHelpers.js';
8
8
  import { useIconFor } from '../icon-context.js';
9
9
  import { reorderRows, ExtraActionStrip, buildGridContainer } from './RepeaterInput.js';
@@ -88,6 +88,82 @@ export function BuilderInput({ el, name, disabled, }) {
88
88
  return;
89
89
  setRows(prev => syncRowGates(prev, metaRows));
90
90
  }, [metaRows]);
91
+ // Phase F.5 — row-array CRDT binding (mirrors `RepeaterInput`). The
92
+ // initial-row payload that lands on `add()` carries the block's `type`
93
+ // alongside the empty field map so peers see the discriminator from
94
+ // the first event — without it, the picker dropdown choice doesn't
95
+ // propagate until the user makes their first inner-field edit.
96
+ const rowBinding = useRowBinding(name);
97
+ // Phase F.5c — mirror row identities into the form's values map so dotted
98
+ // row-leaf consumers (`useFieldState('${name}.${i}.data.text').textBinding`)
99
+ // can resolve the row's `__id` via `rowIdAtIndex(ctx.values, name, i)`.
100
+ // Without this stamp the F.5c per-row Y.Text path stays null on Builder
101
+ // and inner text fields never sync. Mirrors the same fix in RepeaterInput.
102
+ const formStateForIds = useFormState();
103
+ const ctxSetValue = formStateForIds?.setValue;
104
+ useEffect(() => {
105
+ if (!ctxSetValue)
106
+ return;
107
+ for (let i = 0; i < rows.length; i++) {
108
+ const row = rows[i];
109
+ if (!row)
110
+ continue;
111
+ ctxSetValue(`${name}.${i}.__id`, row.id);
112
+ }
113
+ }, [rows, name, ctxSetValue]);
114
+ // Phase F.5 — reconcile remote row events. Builder mirrors
115
+ // RepeaterInput but reads `event.values.type` to pick the block whose
116
+ // template seeds the new row's children. Falls back to the first
117
+ // registered block when the remote `type` doesn't match a known one;
118
+ // the row still mounts so the user sees the change rather than a
119
+ // silent drop (matches the server-side `unknownType` fallback).
120
+ useEffect(() => {
121
+ if (!rowBinding)
122
+ return;
123
+ return rowBinding.subscribe((event) => {
124
+ if (event.kind === 'add') {
125
+ setRows((prev) => {
126
+ if (prev.some(r => r.id === event.rowId))
127
+ return prev;
128
+ const blockType = typeof event.values['type'] === 'string'
129
+ ? event.values['type']
130
+ : (meta.blocks?.[0]?.name ?? '');
131
+ const block = blocksByName.get(blockType);
132
+ const incoming = {
133
+ id: event.rowId,
134
+ type: blockType,
135
+ children: block?.template ?? [],
136
+ };
137
+ const next = prev.slice();
138
+ const at = Math.max(0, Math.min(event.index, next.length));
139
+ next.splice(at, 0, incoming);
140
+ return next;
141
+ });
142
+ return;
143
+ }
144
+ if (event.kind === 'remove') {
145
+ setRows((prev) => {
146
+ if (!prev.some(r => r.id === event.rowId))
147
+ return prev;
148
+ return prev.filter(r => r.id !== event.rowId);
149
+ });
150
+ return;
151
+ }
152
+ setRows((prev) => {
153
+ const fromIdx = prev.findIndex(r => r.id === event.rowId);
154
+ if (fromIdx < 0)
155
+ return prev;
156
+ if (fromIdx === event.to)
157
+ return prev;
158
+ const next = prev.slice();
159
+ const [moved] = next.splice(fromIdx, 1);
160
+ if (!moved)
161
+ return prev;
162
+ next.splice(event.to, 0, moved);
163
+ return next;
164
+ });
165
+ });
166
+ }, [rowBinding, blocksByName, meta.blocks]);
91
167
  const [collapsed, setCollapsed] = useState(() => accordion ? {} : initSeedCollapsed(initialRows, formId, name, defaultCollapsed, collapsible));
92
168
  // Accordion mode: single open row id (null = all collapsed). See
93
169
  // RepeaterInput for the seeding semantics — Builder mirrors it exactly.
@@ -138,6 +214,9 @@ export function BuilderInput({ el, name, disabled, }) {
138
214
  const i = Math.max(0, Math.min(atIndex, prev.length));
139
215
  return [...prev.slice(0, i), newRow, ...prev.slice(i)];
140
216
  });
217
+ // F.5 — seed the new block's discriminator on the CRDT side so peers
218
+ // pick the right inner schema without waiting for the user's first edit.
219
+ rowBinding?.add(newRow.id, { type: block.name });
141
220
  if (accordion) {
142
221
  setAccordionOpenId(newRow.id);
143
222
  writeAccordionToStorage(formId, name, newRow.id);
@@ -152,6 +231,7 @@ export function BuilderInput({ el, name, disabled, }) {
152
231
  if (atMin)
153
232
  return;
154
233
  setRows(prev => prev.filter(r => r.id !== id));
234
+ rowBinding?.remove(id);
155
235
  if (accordion) {
156
236
  if (accordionOpenId === id) {
157
237
  setAccordionOpenId(null);
@@ -168,6 +248,8 @@ export function BuilderInput({ el, name, disabled, }) {
168
248
  const cloneRow = (id) => {
169
249
  if (atMax)
170
250
  return;
251
+ let cloneId = null;
252
+ let cloneType = null;
171
253
  setRows(prev => {
172
254
  const idx = prev.findIndex(r => r.id === id);
173
255
  if (idx < 0)
@@ -178,8 +260,10 @@ export function BuilderInput({ el, name, disabled, }) {
178
260
  const cap = block?.maxItems;
179
261
  if (cap !== undefined && (typeCounts.get(source.type) ?? 0) >= cap)
180
262
  return prev;
263
+ cloneId = generateRowId();
264
+ cloneType = source.type;
181
265
  const clone = {
182
- id: generateRowId(),
266
+ id: cloneId,
183
267
  type: source.type,
184
268
  children: source.children,
185
269
  ...(source.itemLabel !== undefined ? { itemLabel: source.itemLabel } : {}),
@@ -188,39 +272,57 @@ export function BuilderInput({ el, name, disabled, }) {
188
272
  next.splice(idx + 1, 0, clone);
189
273
  return next;
190
274
  });
275
+ if (cloneId !== null && cloneType !== null) {
276
+ rowBinding?.add(cloneId, { type: cloneType });
277
+ }
191
278
  };
192
279
  const moveRow = (id, dir) => {
280
+ let newOrder = null;
193
281
  setRows(prev => {
194
282
  const idx = prev.findIndex(r => r.id === id);
195
283
  if (idx < 0)
196
284
  return prev;
285
+ let next;
197
286
  if (dir === -1) {
198
287
  let target = idx - 1;
199
288
  while (target >= 0 && prev[target]?.hidden)
200
289
  target--;
201
290
  if (target < 0)
202
291
  return prev;
203
- return reorderRows(prev, idx, target);
292
+ next = reorderRows(prev, idx, target);
204
293
  }
205
- let target = idx + 1;
206
- while (target < prev.length && prev[target]?.hidden)
207
- target++;
208
- if (target >= prev.length)
209
- return prev;
210
- return reorderRows(prev, idx, target + 1);
294
+ else {
295
+ let target = idx + 1;
296
+ while (target < prev.length && prev[target]?.hidden)
297
+ target++;
298
+ if (target >= prev.length)
299
+ return prev;
300
+ next = reorderRows(prev, idx, target + 1);
301
+ }
302
+ if (next !== prev)
303
+ newOrder = next.map(r => r.id);
304
+ return next;
211
305
  });
306
+ if (newOrder !== null)
307
+ rowBinding?.reorder(newOrder);
212
308
  };
213
309
  // ── DnD state (skipped when buttonsOnly) ────────────────
214
310
  const dndEnabled = reorderable && !buttonsOnly && !disabled;
215
311
  const { dragId, dropAt, onDragStart: onRowDragStart, onDragOver: onRowDragOver, onDrop: onRowDrop, onDragEnd: onRowDragEnd, } = useRowReorderDnd({
216
312
  enabled: dndEnabled,
217
313
  onDrop: (fromId, at) => {
314
+ let newOrder = null;
218
315
  setRows(prev => {
219
316
  const fromIdx = prev.findIndex(r => r.id === fromId);
220
317
  if (fromIdx < 0)
221
318
  return prev;
222
- return reorderRows(prev, fromIdx, at);
319
+ const next = reorderRows(prev, fromIdx, at);
320
+ if (next !== prev)
321
+ newOrder = next.map(r => r.id);
322
+ return next;
223
323
  });
324
+ if (newOrder !== null)
325
+ rowBinding?.reorder(newOrder);
224
326
  },
225
327
  });
226
328
  // ── Inner-field live re-resolve (mirrors RepeaterInput) ─