@pilotiq/pilotiq 0.12.0 → 0.13.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 (50) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/CHANGELOG.md +13 -0
  3. package/dist/react/FormCollabBindingRegistry.d.ts +17 -98
  4. package/dist/react/FormCollabBindingRegistry.d.ts.map +1 -1
  5. package/dist/react/FormCollabBindingRegistry.js.map +1 -1
  6. package/dist/react/FormStateContext.d.ts +1 -35
  7. package/dist/react/FormStateContext.d.ts.map +1 -1
  8. package/dist/react/FormStateContext.js +7 -91
  9. package/dist/react/FormStateContext.js.map +1 -1
  10. package/dist/react/RowCoordsContext.d.ts +19 -0
  11. package/dist/react/RowCoordsContext.d.ts.map +1 -0
  12. package/dist/react/RowCoordsContext.js +6 -0
  13. package/dist/react/RowCoordsContext.js.map +1 -0
  14. package/dist/react/fields/BuilderInput.d.ts.map +1 -1
  15. package/dist/react/fields/BuilderInput.js +14 -9
  16. package/dist/react/fields/BuilderInput.js.map +1 -1
  17. package/dist/react/fields/MarkdownInput.d.ts.map +1 -1
  18. package/dist/react/fields/MarkdownInput.js +35 -125
  19. package/dist/react/fields/MarkdownInput.js.map +1 -1
  20. package/dist/react/fields/RepeaterInput.d.ts.map +1 -1
  21. package/dist/react/fields/RepeaterInput.js +26 -17
  22. package/dist/react/fields/RepeaterInput.js.map +1 -1
  23. package/dist/react/fields/TextLikeInput.d.ts +11 -9
  24. package/dist/react/fields/TextLikeInput.d.ts.map +1 -1
  25. package/dist/react/fields/TextLikeInput.js +59 -189
  26. package/dist/react/fields/TextLikeInput.js.map +1 -1
  27. package/dist/react/formStateHelpers.d.ts +0 -15
  28. package/dist/react/formStateHelpers.d.ts.map +1 -1
  29. package/dist/react/formStateHelpers.js +0 -91
  30. package/dist/react/formStateHelpers.js.map +1 -1
  31. package/dist/react/index.d.ts +1 -1
  32. package/dist/react/index.d.ts.map +1 -1
  33. package/dist/react/index.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/react/FormCollabBindingRegistry.ts +17 -91
  36. package/src/react/FormStateContext.tsx +6 -125
  37. package/src/react/RowCoordsContext.tsx +23 -0
  38. package/src/react/fields/BuilderInput.tsx +22 -10
  39. package/src/react/fields/MarkdownInput.tsx +42 -129
  40. package/src/react/fields/RepeaterInput.tsx +41 -16
  41. package/src/react/fields/TextLikeInput.tsx +67 -225
  42. package/src/react/formStateHelpers.test.ts +0 -99
  43. package/src/react/formStateHelpers.ts +0 -83
  44. package/src/react/index.ts +0 -2
  45. package/dist/react/fields/textDelta.d.ts +0 -44
  46. package/dist/react/fields/textDelta.d.ts.map +0 -1
  47. package/dist/react/fields/textDelta.js +0 -80
  48. package/dist/react/fields/textDelta.js.map +0 -1
  49. package/src/react/fields/textDelta.test.ts +0 -141
  50. package/src/react/fields/textDelta.ts +0 -86
@@ -370,95 +370,4 @@ export function collectRowArrayFieldNames(formMeta) {
370
370
  }
371
371
  }
372
372
  }
373
- /**
374
- * Phase F.5c — text-shaped fieldTypes whose row-leaf values should be
375
- * routed through `Y.Text` instead of `Y.Map` LWW. Mirrors the same
376
- * allowlist `@pilotiq-pro/collab`'s top-level binding uses; consumers
377
- * registering character-level CRDT for additional plain-text-shaped
378
- * fields update both copies in lockstep until a cross-repo shared
379
- * constants module exists.
380
- */
381
- const ROW_TEXT_FIELD_TYPES = new Set([
382
- 'text', 'textarea', 'email', 'slug', 'markdown',
383
- ]);
384
- /**
385
- * Phase F.5c — per-Repeater/Builder set of inner-field names that
386
- * carry text-shaped leaves eligible for character-level CRDT. Drives
387
- * `useFieldState(dottedName).textBinding` resolution: only fields in
388
- * the per-array set go through `binding.getRowTextBinding`; everything
389
- * else stays on row-level Y.Map LWW.
390
- *
391
- * Repeater rows expose their schema directly under `meta.children`;
392
- * Builder rows nest schemas under `meta.blocks[i].template`. The
393
- * walker descends through every block's template so a `markdown` leaf
394
- * inside any block-type lands in the array's allowlist. Nested
395
- * Repeaters / Builders inside row schemas are out of scope v1 (their
396
- * dotted paths are 5+ segments and `parseRowFieldPath` rejects them).
397
- */
398
- export function collectRowTextLeavesByArray(formMeta) {
399
- const out = new Map();
400
- walkTop(formMeta);
401
- return out;
402
- function walkTop(node) {
403
- if (node.type === 'field') {
404
- const fieldType = String(node['fieldType'] ?? '');
405
- if (fieldType === 'repeater' || fieldType === 'builder') {
406
- if (node.collab === false)
407
- return;
408
- const name = String(node['name'] ?? '');
409
- if (!name)
410
- return;
411
- const set = new Set();
412
- // Repeater's `toMeta()` emits the row schema under `template` (not
413
- // `children` — that's per-resolved-row). Builder nests row schemas
414
- // under `blocks[i].template`. Reading `children` here pre-fix gave
415
- // every Repeater an empty text-leaf set → row text never CRDT'd.
416
- if (fieldType === 'repeater')
417
- walkRow(node.template, set);
418
- else
419
- walkBlocks(node.blocks, set);
420
- if (set.size > 0)
421
- out.set(name, set);
422
- return;
423
- }
424
- }
425
- const children = node.children;
426
- if (Array.isArray(children)) {
427
- for (const child of children)
428
- walkTop(child);
429
- }
430
- }
431
- function walkRow(children, set) {
432
- if (!Array.isArray(children))
433
- return;
434
- for (const child of children)
435
- walkRowEl(child, set);
436
- }
437
- function walkRowEl(node, set) {
438
- if (node.type === 'field') {
439
- const fieldType = String(node['fieldType'] ?? '');
440
- if (fieldType === 'repeater' || fieldType === 'builder')
441
- return; // nested array
442
- if (node.collab === false)
443
- return;
444
- const name = String(node['name'] ?? '');
445
- if (name && ROW_TEXT_FIELD_TYPES.has(fieldType))
446
- set.add(name);
447
- return;
448
- }
449
- const children = node.children;
450
- if (Array.isArray(children)) {
451
- for (const child of children)
452
- walkRowEl(child, set);
453
- }
454
- }
455
- function walkBlocks(blocks, set) {
456
- if (!Array.isArray(blocks))
457
- return;
458
- for (const block of blocks) {
459
- const tpl = block.template;
460
- walkRow(tpl, set);
461
- }
462
- }
463
- }
464
373
  //# sourceMappingURL=formStateHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formStateHelpers.js","sourceRoot":"","sources":["../../src/react/formStateHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formStateHelpers.js","sourceRoot":"","sources":["../../src/react/formStateHelpers.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export { registerPendingSuggestionApplier, getPendingSuggestionApplier, type Pen
9
9
  export { CollabRoomContext, useCollabRoom, type CollabRoom, } from './CollabRoomContext.js';
10
10
  export { registerCollabExtensions, getCollabExtensions, type CollabExtensionFactory, type CollabExtensionFactoryArgs, } from './CollabExtensionFactoryRegistry.js';
11
11
  export { registerCollabTextRenderer, getCollabTextRenderer, type CollabTextRenderer, type CollabTextRendererProps, } from './CollabTextRendererRegistry.js';
12
- export { registerFormCollabBinding, getFormCollabBinding, type FormCollabBinding, type FormCollabBindingFactory, type FormCollabBindingFactoryArgs, type TextBinding, type TextDelta, type RowsEvent, type RowBindingApi, } from './FormCollabBindingRegistry.js';
12
+ export { registerFormCollabBinding, getFormCollabBinding, type FormCollabBinding, type FormCollabBindingFactory, type FormCollabBindingFactoryArgs, type RowsEvent, type RowBindingApi, } from './FormCollabBindingRegistry.js';
13
13
  export { registerFieldPresenceComponent, getFieldPresenceComponent, type FieldPresenceProps, } from './FieldPresenceRegistry.js';
14
14
  export { registerFieldFocusReporter, getFieldFocusReporter, type FieldFocusReporter, type FieldFocusEvent, } from './FieldFocusReporterRegistry.js';
15
15
  export { registerRecordWrapper, getRecordWrapper, type RecordWrapperProps, } from './RecordWrapperRegistry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAA;AAC5D,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,UAAU,GAEX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,cAAc,EAEd,UAAU,GAEX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAA2B,MAAM,eAAe,CAAA;AAChG,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAA4B,MAAM,6BAA6B,CAAA;AACjH,OAAO,EACL,gCAAgC,EAChC,2BAA2B,GAE5B,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,GAI9B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,gCAAgC,EAChC,2BAA2B,GAE5B,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,iBAAiB,EACjB,aAAa,GAEd,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GAGpB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,GAGtB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GAQrB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAE1B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,GAGtB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GAEjB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,iBAAiB,GAElB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAInB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAElB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,GAId,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAA;AAE9E,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAExD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,GAId,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,uBAAuB,GAGxB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,YAAY,GAEb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAY,oBAAoB,CAAA;AACxD,OAAO,EACL,iBAAiB,EACjB,eAAe,GAGhB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,mBAAmB,EACnB,cAAc,GAEf,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAW,gBAAgB,CAAA;AAE/C,OAAO,EACL,eAAe,GAKhB,MAAM,sBAAsB,CAAA;AAG7B,iHAAiH;AACjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,mBAAmB;AACnB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAyC,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilotiq/pilotiq",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "View-based admin panel for RudderJS",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,44 +1,6 @@
1
1
  import type { ElementMeta } from '../schema/Element.js'
2
2
  import type { CollabRoom } from './CollabRoomContext.js'
3
3
 
4
- /**
5
- * Phase F.6 — character-level edit op emitted by `TextLikeInput` and
6
- * applied through `TextBinding.applyDelta`. `replace` covers IME / paste
7
- * / multi-char selections; `insert` and `delete` cover the single-key
8
- * common path. Pilotiq core stays Yjs-free — the binding impl in
9
- * `@pilotiq-pro/collab` translates these into `Y.Text.insert / delete`
10
- * inside a transaction.
11
- */
12
- export type TextDelta =
13
- | { kind: 'insert', index: number, text: string }
14
- | { kind: 'delete', index: number, length: number }
15
- | { kind: 'replace', from: number, to: number, text: string }
16
-
17
- /**
18
- * Phase F.6 — per-field character-level CRDT handle. Issued by
19
- * `FormCollabBinding.getTextBinding(name)` for text-shaped fields
20
- * (`TextField / TextareaField / EmailField / SlugField / MarkdownField`);
21
- * returns `null` for non-text fields or text fields opted out via
22
- * `.collab(false)`. The surface stays intentionally narrow so pilotiq
23
- * core never touches Yjs directly — same posture as `FormCollabBinding`.
24
- *
25
- * - `read()` returns the current full string. `TextLikeInput` calls
26
- * this once on mount to seed its controlled value.
27
- * - `applyDelta(delta)` is called from `onInput` events with a single
28
- * `insert / delete / replace` op derived from the input's selection.
29
- * - `observe(fn)` registers a remote-change listener; `fn(next)`
30
- * receives the post-change string. Returns an unsubscribe function.
31
- * - `destroy()` cleans up everything the handle holds. The owning
32
- * `FormCollabBinding.destroy()` is expected to cascade — consumers
33
- * don't need to call this directly.
34
- */
35
- export interface TextBinding {
36
- read(): string
37
- applyDelta(delta: TextDelta): void
38
- observe(fn: (next: string) => void): () => void
39
- destroy(): void
40
- }
41
-
42
4
  /**
43
5
  * Binding contract that a collab plugin returns from
44
6
  * `registerFormCollabBinding` — wraps a single form's value map in a
@@ -55,21 +17,14 @@ export interface TextBinding {
55
17
  * - `subscribe(fn)` registers a listener that fires when REMOTE
56
18
  * changes land; `fn(snapshot)` receives the full updated map.
57
19
  * The provider re-applies this snapshot onto its React state.
58
- * - `getTextBinding(name)` (Phase F.6) was the per-field `Y.Text`
59
- * handle for character-level CRDT on top-level text inputs. After
60
- * the Tiptap-backed text-collab swap (Phase D, 2026-05), bindings
61
- * are expected to return `null` for every top-level field —
62
- * character-level CRDT now lives in the Tiptap renderer's
63
- * `Collaboration` extension (`Y.XmlFragment` per field). Returning
64
- * a non-null `TextBinding` here is still supported for legacy
65
- * bindings, but the active `@pilotiq-pro/collab` impl no longer
66
- * allocates `Y.Text` for top-level fields. Row-text leaves under
67
- * Repeater / Builder continue to route through Y.Text via
68
- * `getRowTextBinding` — the Tiptap-backed renderer only handles
69
- * top-level (non-dotted-path) field names today.
70
20
  * - `destroy()` is called on unmount — gives the plugin a chance to
71
- * remove its CRDT observer. Implementations are expected to cascade
72
- * into every `TextBinding` they issued.
21
+ * remove its CRDT observer.
22
+ *
23
+ * Text-field character-level CRDT lives in `@pilotiq/tiptap`'s
24
+ * `CollabTextRenderer` (`Y.XmlFragment` per field, keyed by bare name
25
+ * for top-level + `${arrayName}.${rowId}.${fieldName}` composite for
26
+ * row leaves) — pilotiq core no longer mediates per-field text CRDT,
27
+ * so this binding only handles non-text values + row lifecycle.
73
28
  *
74
29
  * `unknown` payloads keep pilotiq core Yjs-free; the binding owns its
75
30
  * own type knowledge. Same posture as `CollabExtensionFactory`.
@@ -81,17 +36,6 @@ export interface FormCollabBinding {
81
36
  set(name: string, value: unknown): void
82
37
  /** Subscribe to remote changes. Returns an unsubscribe function. */
83
38
  subscribe(fn: (snapshot: Record<string, unknown>) => void): () => void
84
- /** Phase F.6 / Phase D — per-field text-CRDT handle. Post Phase D,
85
- * `@pilotiq-pro/collab` returns `null` for every top-level text
86
- * field (character-level CRDT moved into `@pilotiq/tiptap`'s
87
- * `CollabTextRenderer`, which mounts its own `Y.XmlFragment` per
88
- * field via the `Collaboration` extension). The method is preserved
89
- * on the contract for legacy bindings and for the row-text leaves
90
- * routed through `getRowTextBinding` (under Repeater / Builder).
91
- * Optional so existing F1-era plugins keep type-checking without a
92
- * no-op stub; absent reads as "binding has no top-level text CRDT
93
- * surface," same as returning `null` for every field. */
94
- getTextBinding?(name: string): TextBinding | null
95
39
  /** Cleanup hook called when the form unmounts. */
96
40
  destroy(): void
97
41
 
@@ -137,11 +81,10 @@ export interface FormCollabBinding {
137
81
  /**
138
82
  * Write a single field on a row. Replaces the dotted-path `set` for
139
83
  * row leaves (`tags.0.label` → `setRow('tags', rowId, 'label', value)`).
140
- *
141
- * Binding routes by allowlist same as top-level `set`: text-shaped
142
- * fields go through the row's `TextBinding` when a `Y.Text` exists
143
- * (see `getRowTextBinding`); non-text fields land on the row's
144
- * scalar field-map under LWW.
84
+ * Non-text row fields land on the row's scalar field-map under LWW;
85
+ * text row fields don't flow through here the Tiptap renderer
86
+ * writes them directly to a `Y.XmlFragment` at the doc root keyed by
87
+ * `${arrayName}.${rowId}.${fieldName}`.
145
88
  *
146
89
  * `FormStateProvider` calls this on every local edit when both a
147
90
  * dotted-path name is being written AND `setRow` is implemented;
@@ -149,19 +92,6 @@ export interface FormCollabBinding {
149
92
  */
150
93
  setRow?(arrayName: string, rowId: string, fieldName: string, value: unknown): void
151
94
 
152
- /**
153
- * Per-row text-CRDT handle. Composes with F.6's `BoundTextInput`:
154
- * the renderer asks for one of these when a row leaf is text-shaped
155
- * AND not opted out via `.collab(false)`, then threads it through
156
- * the existing `TextBinding` plumbing inside the row.
157
- *
158
- * Returns `null` for non-text fields, fields opted out via collab,
159
- * rows not yet present in the binding's index (e.g. before
160
- * `addRow` has propagated), or when the binding doesn't yet
161
- * implement per-row text CRDT (deferred to F.5c).
162
- */
163
- getRowTextBinding?(arrayName: string, rowId: string, fieldName: string): TextBinding | null
164
-
165
95
  /**
166
96
  * Subscribe to row-lifecycle events for a Repeater/Builder array.
167
97
  * Fires on remote add / remove / move; the renderer reconciles its
@@ -244,16 +174,12 @@ export interface FormCollabBindingFactoryArgs {
244
174
  */
245
175
  initial: Record<string, unknown>
246
176
  /**
247
- * Phase F.6 — initial form meta from the server. The binding walks
248
- * this once at construction to index Repeater / Builder array names
249
- * for row-level CRDT and to identify which row leaves are text-shaped
250
- * (`fieldType { text, textarea, email, slug, markdown }` and not
251
- * `.collab(false)`). Post Phase D, top-level text fields no longer
252
- * need to be partitioned here — their character-level CRDT lives in
253
- * the Tiptap renderer's `Y.XmlFragment`, not in a binding-allocated
254
- * `Y.Text`. The meta is captured at mount; later structural changes
255
- * from `live()` re-resolves aren't re-walked (rare in practice —
256
- * dynamic field add/remove is an F-followup).
177
+ * Initial form meta from the server. The binding walks this once at
178
+ * construction to index Repeater / Builder array names for row-level
179
+ * CRDT. Text fields (top-level and row leaves alike) don't need to be
180
+ * partitioned here the Tiptap renderer owns their `Y.XmlFragment`s
181
+ * at the doc root. The meta is captured at mount; later structural
182
+ * changes from `live()` re-resolves aren't re-walked.
257
183
  */
258
184
  formMeta: ElementMeta
259
185
  }
@@ -11,13 +11,10 @@ import type { ElementMeta } from '../schema/Element.js'
11
11
  import {
12
12
  collectFieldDefaults,
13
13
  collectRowArrayFieldNames,
14
- collectRowTextLeavesByArray,
15
14
  findFieldMeta,
16
15
  parseFormDataToNested,
17
- parseRowFieldPath,
18
16
  readNestedValue,
19
17
  routeBindingWrite,
20
- rowIdAtIndex,
21
18
  writeNestedValue,
22
19
  } from './formStateHelpers.js'
23
20
  import { runJsHandler } from './fieldJsHandler.js'
@@ -27,7 +24,6 @@ import {
27
24
  getFormCollabBinding,
28
25
  type FormCollabBinding,
29
26
  type RowBindingApi,
30
- type TextBinding,
31
27
  } from './FormCollabBindingRegistry.js'
32
28
 
33
29
  export type FieldStatus = 'idle' | 'pending'
@@ -50,36 +46,11 @@ export interface FormStateApi {
50
46
  formMeta: ElementMeta
51
47
  inFlight: boolean
52
48
  fieldStatus: (name: string) => FieldStatus
53
- /** Phase F.6 — per-field text-CRDT handles stashed at collab-room mount.
54
- * `null` outside a room or before the binding effect has populated the
55
- * map. The text/non-text allowlist lives in the binding impl —
56
- * `FormStateProvider` asks for every top-level field and only stashes
57
- * non-null answers, so a `Map.get()` hit means the binding has opted
58
- * this field into the character-level path. */
59
- textBindings: ReadonlyMap<string, TextBinding> | null
60
49
  /** Phase F.5 — per-Repeater/Builder row-array bindings. `null` outside a
61
50
  * collab room or when the binding doesn't implement F.5 row methods.
62
51
  * Each entry's API methods are pre-bound to the array name so renderers
63
52
  * call `.add(rowId, initial)` rather than `binding.addRow(name, …)`. */
64
53
  rowBindings: ReadonlyMap<string, RowBindingApi> | null
65
- /**
66
- * Phase F.5c — per-array set of inner-field names that should route
67
- * through `Y.Text` (character-level CRDT) instead of row-level Y.Map
68
- * LWW. Built from a single meta walk at binding mount. Read by
69
- * `useFieldState(dottedName).textBinding` to decide whether to call
70
- * `getRowTextBinding`. Sparse — only arrays with at least one
71
- * text-shaped row leaf appear; absence on a key means "no text leaves
72
- * in this Repeater/Builder".
73
- */
74
- rowTextLeaves: ReadonlyMap<string, ReadonlySet<string>> | null
75
- /**
76
- * Phase F.5c — resolve a per-row `TextBinding`. Pre-bound to the
77
- * active F.5 binding so consumers don't reach for `bindingRef`
78
- * directly. Returns `null` when no binding implements F.5c OR the
79
- * row+field doesn't qualify (renderer caller should fall back to
80
- * `defaultValue` like a non-collab form).
81
- */
82
- getRowTextBinding: ((arrayName: string, rowId: string, fieldName: string) => TextBinding | null) | null
83
54
  }
84
55
 
85
56
  const FormStateContext = createContext<FormStateApi | null>(null)
@@ -120,15 +91,6 @@ export interface UseFieldStateResult {
120
91
  /** True while a live re-resolve POST is in flight for this field. */
121
92
  pending: boolean
122
93
  errors: string[]
123
- /** Phase F.6 — character-level CRDT handle for text-shaped fields when
124
- * a collab room is mounted up-tree AND the binding strategy applies
125
- * (allowlist + `.collab() !== false`). Null in every other case —
126
- * outside a `FormStateProvider`, outside a `<RecordCollabRoom>`, on
127
- * non-text fields, on dotted-path inner-Repeater rows (deferred to
128
- * F.5), and on text fields opted out via `.collab(false)`. Text input
129
- * renderers branch on this: non-null → character-level path with
130
- * `applyDelta + observe`; null → today's whole-string LWW path. */
131
- textBinding: TextBinding | null
132
94
  }
133
95
 
134
96
  /**
@@ -164,7 +126,6 @@ export function useFieldState(name: string): UseFieldStateResult {
164
126
  triggerLive: () => {},
165
127
  pending: false,
166
128
  errors: [],
167
- textBinding: null,
168
129
  }
169
130
  }
170
131
  // Dotted-path fields (inner Repeater rows) always render uncontrolled
@@ -177,35 +138,9 @@ export function useFieldState(name: string): UseFieldStateResult {
177
138
  triggerLive: (valueOverride?: unknown) => ctx.triggerLive(name, valueOverride),
178
139
  pending: ctx.fieldStatus(name) === 'pending',
179
140
  errors: ctx.errors[name] ?? [],
180
- // Phase F.6 — top-level text fields resolve from the binding-mount
181
- // text stash. Phase F.5c — dotted-path row leaves resolve through
182
- // `getRowTextBinding` when the field is text-shaped AND the row's
183
- // `__id` is already stamped in the values map. Outside a collab
184
- // room, for non-text fields, or before `addRow` has settled the
185
- // row's id, the lookup returns null and `BoundTextInput` falls
186
- // back to today's uncontrolled-input path.
187
- textBinding: dotted
188
- ? resolveRowTextBinding(ctx, name)
189
- : (ctx.textBindings?.get(name) ?? null),
190
141
  }
191
142
  }
192
143
 
193
- /**
194
- * Phase F.5c — dotted-name `TextBinding` resolver. Returns `null`
195
- * whenever any precondition fails so the caller's renderer can take a
196
- * single branch on null vs non-null.
197
- */
198
- function resolveRowTextBinding(ctx: FormStateApi, dottedName: string): TextBinding | null {
199
- if (!ctx.rowTextLeaves || !ctx.getRowTextBinding) return null
200
- const parsed = parseRowFieldPath(dottedName)
201
- if (!parsed) return null
202
- const set = ctx.rowTextLeaves.get(parsed.arrayName)
203
- if (!set?.has(parsed.fieldName)) return null
204
- const rowId = rowIdAtIndex(ctx.values, parsed.arrayName, parsed.index)
205
- if (!rowId) return null
206
- return ctx.getRowTextBinding(parsed.arrayName, rowId, parsed.fieldName)
207
- }
208
-
209
144
  /** Response shape from `POST {base}/.../_form/:formId/state`. */
210
145
  interface FormStateResponse {
211
146
  ok: boolean
@@ -253,22 +188,11 @@ export function FormStateProvider({
253
188
  const [errors, setErrors] = useState<Record<string, string[]>>(initialErrors)
254
189
  const [pendingNames, setPendingNames] = useState<Set<string>>(() => new Set())
255
190
  const [inFlight, setInFlight] = useState(false)
256
- // Phase F.6 — per-field text-CRDT stash. `null` until the collab effect
257
- // populates it; stays `null` outside a collab room. Stored in state (not
258
- // a ref) so consumers of `useFieldState` re-render once the bindings
259
- // land. One extra render after collab-mount; acceptable since the
260
- // existing `setValuesState` overlay below already triggers one when the
261
- // room has pre-existing state.
262
- const [textBindings, setTextBindings] = useState<ReadonlyMap<string, TextBinding> | null>(null)
263
- // Phase F.5 — per-Repeater/Builder row-array stash. Same lifecycle as
264
- // `textBindings`: populated on collab mount when the binding implements
265
- // F.5 row methods, cleared on unmount.
191
+ // Phase F.5 — per-Repeater/Builder row-array stash. Populated on
192
+ // collab mount when the binding implements F.5 row methods, cleared
193
+ // on unmount. Stored in state (not a ref) so consumers of
194
+ // `useRowBinding` re-render once the bindings land.
266
195
  const [rowBindings, setRowBindings] = useState<ReadonlyMap<string, RowBindingApi> | null>(null)
267
- // Phase F.5c — per-array set of text-shaped row leaves + a pre-bound
268
- // resolver. Both populated at binding mount when the active binding
269
- // implements `getRowTextBinding`; cleared on unmount.
270
- const [rowTextLeaves, setRowTextLeaves] = useState<ReadonlyMap<string, ReadonlySet<string>> | null>(null)
271
- const [getRowTextBinding, setGetRowTextBinding] = useState<((arrayName: string, rowId: string, fieldName: string) => TextBinding | null) | null>(null)
272
196
 
273
197
  const { notify } = useToast()
274
198
 
@@ -332,25 +256,6 @@ export function FormStateProvider({
332
256
  setValuesState((prev) => ({ ...prev, ...synced }))
333
257
  }
334
258
 
335
- // Phase F.6 — ask the binding for a `TextBinding` on every top-level
336
- // field name. The text/non-text allowlist lives in the binding impl,
337
- // not in core: the binding returns `null` for non-text fields and
338
- // text fields opted out via `.collab(false)`. `getTextBinding` is
339
- // optional on the contract — F1-era plugins that haven't implemented
340
- // it short-circuit the whole stash and every text field stays on the
341
- // LWW path. We stash only the non-null answers. Cleanup is owned by
342
- // `binding.destroy()` (expected to cascade into every issued
343
- // `TextBinding`).
344
- if (binding.getTextBinding) {
345
- const textStash = new Map<string, TextBinding>()
346
- for (const fieldName of Object.keys(valuesRef.current)) {
347
- if (fieldName.includes('.')) continue
348
- const tb = binding.getTextBinding(fieldName)
349
- if (tb) textStash.set(fieldName, tb)
350
- }
351
- if (textStash.size > 0) setTextBindings(textStash)
352
- }
353
-
354
259
  // Phase F.5 — build a `RowBindingApi` per top-level Repeater/Builder
355
260
  // field when the binding implements all three lifecycle methods. The
356
261
  // walk reads from formMeta (structural — fields exist regardless of
@@ -358,8 +263,7 @@ export function FormStateProvider({
358
263
  // the array name so `RepeaterInput` calls `rb.add(rowId, …)` rather
359
264
  // than `binding.addRow(name, rowId, …)`. Partial F.5 impls (e.g. a
360
265
  // binding that has addRow but not reorderRows) skip the stash — the
361
- // contract says all three or nothing. F.5c's per-row text path is
362
- // exposed separately via `getRowTextBinding` and stays optional.
266
+ // contract says all three or nothing.
363
267
  if (binding.addRow && binding.removeRow && binding.reorderRows) {
364
268
  const { addRow, removeRow, reorderRows, subscribeRows } = binding
365
269
  const arrayNames = collectRowArrayFieldNames(formMetaRef.current)
@@ -383,23 +287,6 @@ export function FormStateProvider({
383
287
  }
384
288
  }
385
289
 
386
- // Phase F.5c — capture the per-array text-leaf allowlist + bind the
387
- // row-text resolver to the active binding. `getRowTextBinding` may
388
- // be absent on partial F.5 impls; we expose the resolver as null in
389
- // that case so `useFieldState` short-circuits cleanly.
390
- if (binding.getRowTextBinding) {
391
- const leaves = collectRowTextLeavesByArray(formMetaRef.current)
392
- if (leaves.size > 0) {
393
- setRowTextLeaves(leaves)
394
- const bound = binding.getRowTextBinding
395
- // useState's functional-updater overload would invoke the
396
- // stored function during set; wrapping in a fresh closure keeps
397
- // React's setState path from confusing it for an updater fn.
398
- setGetRowTextBinding(() => (arrayName: string, rowId: string, fieldName: string) =>
399
- bound.call(binding, arrayName, rowId, fieldName))
400
- }
401
- }
402
-
403
290
  // Subscribe to remote changes. Local writes ALSO trigger this
404
291
  // (Yjs observers fire on local transactions too) — the per-key
405
292
  // Object.is short-circuit below collapses them into no-op renders.
@@ -421,10 +308,7 @@ export function FormStateProvider({
421
308
  unsubscribe()
422
309
  binding.destroy()
423
310
  bindingRef.current = null
424
- setTextBindings(null)
425
311
  setRowBindings(null)
426
- setRowTextLeaves(null)
427
- setGetRowTextBinding(null)
428
312
  }
429
313
  // `valuesRef.current` is intentionally read once at mount — initial
430
314
  // values seed the binding; subsequent edits flow through `setValue`
@@ -657,11 +541,8 @@ export function FormStateProvider({
657
541
  formMeta,
658
542
  inFlight,
659
543
  fieldStatus,
660
- textBindings,
661
544
  rowBindings,
662
- rowTextLeaves,
663
- getRowTextBinding,
664
- }), [values, setValue, triggerLive, errors, applyErrors, formMeta, inFlight, fieldStatus, textBindings, rowBindings, rowTextLeaves, getRowTextBinding])
545
+ }), [values, setValue, triggerLive, errors, applyErrors, formMeta, inFlight, fieldStatus, rowBindings])
665
546
 
666
547
  return (
667
548
  <FormStateContext.Provider value={api}>
@@ -0,0 +1,23 @@
1
+ import React, { createContext, useContext } from 'react'
2
+
3
+ /**
4
+ * Phase 1 — row-text Tiptap-backed collab plan
5
+ * (`pilotiq-pro/docs/plans/collab-row-text-tiptap-backed.md`).
6
+ *
7
+ * Each Repeater / Builder row mounts a `<RowCoordsContext.Provider>`
8
+ * around its children so dotted-path text leaves can compose a
9
+ * fragment-key that includes the stable `rowId` (survives reorders).
10
+ * Top-level fields see `null` and fall through to bare-name fragment
11
+ * routing.
12
+ */
13
+ export interface RowCoords {
14
+ arrayName: string
15
+ rowIndex: number
16
+ rowId: string
17
+ }
18
+
19
+ export const RowCoordsContext = createContext<RowCoords | null>(null)
20
+
21
+ export function useRowCoords(): RowCoords | null {
22
+ return useContext(RowCoordsContext)
23
+ }