@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.
- package/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +13 -0
- package/dist/react/FormCollabBindingRegistry.d.ts +17 -98
- package/dist/react/FormCollabBindingRegistry.d.ts.map +1 -1
- package/dist/react/FormCollabBindingRegistry.js.map +1 -1
- package/dist/react/FormStateContext.d.ts +1 -35
- package/dist/react/FormStateContext.d.ts.map +1 -1
- package/dist/react/FormStateContext.js +7 -91
- package/dist/react/FormStateContext.js.map +1 -1
- package/dist/react/RowCoordsContext.d.ts +19 -0
- package/dist/react/RowCoordsContext.d.ts.map +1 -0
- package/dist/react/RowCoordsContext.js +6 -0
- package/dist/react/RowCoordsContext.js.map +1 -0
- package/dist/react/fields/BuilderInput.d.ts.map +1 -1
- package/dist/react/fields/BuilderInput.js +14 -9
- package/dist/react/fields/BuilderInput.js.map +1 -1
- package/dist/react/fields/MarkdownInput.d.ts.map +1 -1
- package/dist/react/fields/MarkdownInput.js +35 -125
- package/dist/react/fields/MarkdownInput.js.map +1 -1
- package/dist/react/fields/RepeaterInput.d.ts.map +1 -1
- package/dist/react/fields/RepeaterInput.js +26 -17
- package/dist/react/fields/RepeaterInput.js.map +1 -1
- package/dist/react/fields/TextLikeInput.d.ts +11 -9
- package/dist/react/fields/TextLikeInput.d.ts.map +1 -1
- package/dist/react/fields/TextLikeInput.js +59 -189
- package/dist/react/fields/TextLikeInput.js.map +1 -1
- package/dist/react/formStateHelpers.d.ts +0 -15
- package/dist/react/formStateHelpers.d.ts.map +1 -1
- package/dist/react/formStateHelpers.js +0 -91
- package/dist/react/formStateHelpers.js.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js.map +1 -1
- package/package.json +1 -1
- package/src/react/FormCollabBindingRegistry.ts +17 -91
- package/src/react/FormStateContext.tsx +6 -125
- package/src/react/RowCoordsContext.tsx +23 -0
- package/src/react/fields/BuilderInput.tsx +22 -10
- package/src/react/fields/MarkdownInput.tsx +42 -129
- package/src/react/fields/RepeaterInput.tsx +41 -16
- package/src/react/fields/TextLikeInput.tsx +67 -225
- package/src/react/formStateHelpers.test.ts +0 -99
- package/src/react/formStateHelpers.ts +0 -83
- package/src/react/index.ts +0 -2
- package/dist/react/fields/textDelta.d.ts +0 -44
- package/dist/react/fields/textDelta.d.ts.map +0 -1
- package/dist/react/fields/textDelta.js +0 -80
- package/dist/react/fields/textDelta.js.map +0 -1
- package/src/react/fields/textDelta.test.ts +0 -141
- 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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"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -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
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,UAAU,EACV,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,UAAU,EACV,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAChG,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjH,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,KAAK,6BAA6B,GACnC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,KAAK,UAAU,GAChB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,GAChC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EACjC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
package/dist/react/index.js.map
CHANGED
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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.
|
|
72
|
-
*
|
|
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
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
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
|
-
*
|
|
248
|
-
*
|
|
249
|
-
*
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
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.
|
|
257
|
-
//
|
|
258
|
-
// a ref) so consumers of
|
|
259
|
-
//
|
|
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.
|
|
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
|
-
|
|
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
|
+
}
|