@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
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> @pilotiq/pilotiq@0.
|
|
2
|
+
> @pilotiq/pilotiq@0.13.0 build /home/runner/work/pilotiq/pilotiq/packages/pilotiq
|
|
3
3
|
> tsc -p tsconfig.build.json && pnpm run copy-assets
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @pilotiq/pilotiq@0.
|
|
6
|
+
> @pilotiq/pilotiq@0.13.0 copy-assets /home/runner/work/pilotiq/pilotiq/packages/pilotiq
|
|
7
7
|
> mkdir -p dist/styles && cp -R src/styles/*.css dist/styles/
|
|
8
8
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @pilotiq/pilotiq
|
|
2
2
|
|
|
3
|
+
## 0.13.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Row-text Tiptap-backed collab — extends Phase D's Y.XmlFragment text-CRDT path to Repeater / Builder row leaves.
|
|
8
|
+
|
|
9
|
+
- **New:** `RowCoordsContext` + `useRowCoords()` (`@pilotiq/pilotiq/react`). `RepeaterInput` and `BuilderInput` wrap each row in the provider so dotted-path text leaves can compose a stable fragment key `${arrayName}.${rowId}.${fieldName}` that survives reorders. `TextLikeInput` + `MarkdownInput` collab branches both consume the coords.
|
|
10
|
+
- **Breaking — `FormCollabBinding` contract:** removed `getTextBinding?(name)` and `getRowTextBinding?(arrayName, rowId, fieldName)`. Text CRDT (top-level and row leaves) now lives exclusively in `@pilotiq/tiptap`'s `CollabTextRenderer` (`Y.XmlFragment`-backed via y-prosemirror). Bindings that implemented these methods can simply drop them; the renderer no longer asks.
|
|
11
|
+
- **Breaking — public exports:** removed `TextBinding` and `TextDelta` from `@pilotiq/pilotiq/react`. Internal-only types `BoundTextInput`, `textDelta.ts` deleted alongside.
|
|
12
|
+
- **Breaking — `FormStateApi`:** removed `textBindings`, `rowTextLeaves`, `getRowTextBinding`. `useFieldState(...).textBinding` is gone too; row-text consumers don't need to branch on it anymore (the Tiptap path is the only path).
|
|
13
|
+
|
|
14
|
+
Migration: pair this release with `@pilotiq-pro/collab` ≥ the matching cut. Pre-fix installs of `@pilotiq-pro/collab` will hit a TS error against the new contract; the matching collab release removes the dead methods.
|
|
15
|
+
|
|
3
16
|
## 0.12.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
|
@@ -1,51 +1,5 @@
|
|
|
1
1
|
import type { ElementMeta } from '../schema/Element.js';
|
|
2
2
|
import type { CollabRoom } from './CollabRoomContext.js';
|
|
3
|
-
/**
|
|
4
|
-
* Phase F.6 — character-level edit op emitted by `TextLikeInput` and
|
|
5
|
-
* applied through `TextBinding.applyDelta`. `replace` covers IME / paste
|
|
6
|
-
* / multi-char selections; `insert` and `delete` cover the single-key
|
|
7
|
-
* common path. Pilotiq core stays Yjs-free — the binding impl in
|
|
8
|
-
* `@pilotiq-pro/collab` translates these into `Y.Text.insert / delete`
|
|
9
|
-
* inside a transaction.
|
|
10
|
-
*/
|
|
11
|
-
export type TextDelta = {
|
|
12
|
-
kind: 'insert';
|
|
13
|
-
index: number;
|
|
14
|
-
text: string;
|
|
15
|
-
} | {
|
|
16
|
-
kind: 'delete';
|
|
17
|
-
index: number;
|
|
18
|
-
length: number;
|
|
19
|
-
} | {
|
|
20
|
-
kind: 'replace';
|
|
21
|
-
from: number;
|
|
22
|
-
to: number;
|
|
23
|
-
text: string;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Phase F.6 — per-field character-level CRDT handle. Issued by
|
|
27
|
-
* `FormCollabBinding.getTextBinding(name)` for text-shaped fields
|
|
28
|
-
* (`TextField / TextareaField / EmailField / SlugField / MarkdownField`);
|
|
29
|
-
* returns `null` for non-text fields or text fields opted out via
|
|
30
|
-
* `.collab(false)`. The surface stays intentionally narrow so pilotiq
|
|
31
|
-
* core never touches Yjs directly — same posture as `FormCollabBinding`.
|
|
32
|
-
*
|
|
33
|
-
* - `read()` returns the current full string. `TextLikeInput` calls
|
|
34
|
-
* this once on mount to seed its controlled value.
|
|
35
|
-
* - `applyDelta(delta)` is called from `onInput` events with a single
|
|
36
|
-
* `insert / delete / replace` op derived from the input's selection.
|
|
37
|
-
* - `observe(fn)` registers a remote-change listener; `fn(next)`
|
|
38
|
-
* receives the post-change string. Returns an unsubscribe function.
|
|
39
|
-
* - `destroy()` cleans up everything the handle holds. The owning
|
|
40
|
-
* `FormCollabBinding.destroy()` is expected to cascade — consumers
|
|
41
|
-
* don't need to call this directly.
|
|
42
|
-
*/
|
|
43
|
-
export interface TextBinding {
|
|
44
|
-
read(): string;
|
|
45
|
-
applyDelta(delta: TextDelta): void;
|
|
46
|
-
observe(fn: (next: string) => void): () => void;
|
|
47
|
-
destroy(): void;
|
|
48
|
-
}
|
|
49
3
|
/**
|
|
50
4
|
* Binding contract that a collab plugin returns from
|
|
51
5
|
* `registerFormCollabBinding` — wraps a single form's value map in a
|
|
@@ -62,21 +16,14 @@ export interface TextBinding {
|
|
|
62
16
|
* - `subscribe(fn)` registers a listener that fires when REMOTE
|
|
63
17
|
* changes land; `fn(snapshot)` receives the full updated map.
|
|
64
18
|
* The provider re-applies this snapshot onto its React state.
|
|
65
|
-
* - `getTextBinding(name)` (Phase F.6) was the per-field `Y.Text`
|
|
66
|
-
* handle for character-level CRDT on top-level text inputs. After
|
|
67
|
-
* the Tiptap-backed text-collab swap (Phase D, 2026-05), bindings
|
|
68
|
-
* are expected to return `null` for every top-level field —
|
|
69
|
-
* character-level CRDT now lives in the Tiptap renderer's
|
|
70
|
-
* `Collaboration` extension (`Y.XmlFragment` per field). Returning
|
|
71
|
-
* a non-null `TextBinding` here is still supported for legacy
|
|
72
|
-
* bindings, but the active `@pilotiq-pro/collab` impl no longer
|
|
73
|
-
* allocates `Y.Text` for top-level fields. Row-text leaves under
|
|
74
|
-
* Repeater / Builder continue to route through Y.Text via
|
|
75
|
-
* `getRowTextBinding` — the Tiptap-backed renderer only handles
|
|
76
|
-
* top-level (non-dotted-path) field names today.
|
|
77
19
|
* - `destroy()` is called on unmount — gives the plugin a chance to
|
|
78
|
-
* remove its CRDT observer.
|
|
79
|
-
*
|
|
20
|
+
* remove its CRDT observer.
|
|
21
|
+
*
|
|
22
|
+
* Text-field character-level CRDT lives in `@pilotiq/tiptap`'s
|
|
23
|
+
* `CollabTextRenderer` (`Y.XmlFragment` per field, keyed by bare name
|
|
24
|
+
* for top-level + `${arrayName}.${rowId}.${fieldName}` composite for
|
|
25
|
+
* row leaves) — pilotiq core no longer mediates per-field text CRDT,
|
|
26
|
+
* so this binding only handles non-text values + row lifecycle.
|
|
80
27
|
*
|
|
81
28
|
* `unknown` payloads keep pilotiq core Yjs-free; the binding owns its
|
|
82
29
|
* own type knowledge. Same posture as `CollabExtensionFactory`.
|
|
@@ -88,17 +35,6 @@ export interface FormCollabBinding {
|
|
|
88
35
|
set(name: string, value: unknown): void;
|
|
89
36
|
/** Subscribe to remote changes. Returns an unsubscribe function. */
|
|
90
37
|
subscribe(fn: (snapshot: Record<string, unknown>) => void): () => void;
|
|
91
|
-
/** Phase F.6 / Phase D — per-field text-CRDT handle. Post Phase D,
|
|
92
|
-
* `@pilotiq-pro/collab` returns `null` for every top-level text
|
|
93
|
-
* field (character-level CRDT moved into `@pilotiq/tiptap`'s
|
|
94
|
-
* `CollabTextRenderer`, which mounts its own `Y.XmlFragment` per
|
|
95
|
-
* field via the `Collaboration` extension). The method is preserved
|
|
96
|
-
* on the contract for legacy bindings and for the row-text leaves
|
|
97
|
-
* routed through `getRowTextBinding` (under Repeater / Builder).
|
|
98
|
-
* Optional so existing F1-era plugins keep type-checking without a
|
|
99
|
-
* no-op stub; absent reads as "binding has no top-level text CRDT
|
|
100
|
-
* surface," same as returning `null` for every field. */
|
|
101
|
-
getTextBinding?(name: string): TextBinding | null;
|
|
102
38
|
/** Cleanup hook called when the form unmounts. */
|
|
103
39
|
destroy(): void;
|
|
104
40
|
/**
|
|
@@ -138,29 +74,16 @@ export interface FormCollabBinding {
|
|
|
138
74
|
/**
|
|
139
75
|
* Write a single field on a row. Replaces the dotted-path `set` for
|
|
140
76
|
* row leaves (`tags.0.label` → `setRow('tags', rowId, 'label', value)`).
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
* scalar field-map under LWW.
|
|
77
|
+
* Non-text row fields land on the row's scalar field-map under LWW;
|
|
78
|
+
* text row fields don't flow through here — the Tiptap renderer
|
|
79
|
+
* writes them directly to a `Y.XmlFragment` at the doc root keyed by
|
|
80
|
+
* `${arrayName}.${rowId}.${fieldName}`.
|
|
146
81
|
*
|
|
147
82
|
* `FormStateProvider` calls this on every local edit when both a
|
|
148
83
|
* dotted-path name is being written AND `setRow` is implemented;
|
|
149
84
|
* otherwise the v1 skip-on-dot path runs.
|
|
150
85
|
*/
|
|
151
86
|
setRow?(arrayName: string, rowId: string, fieldName: string, value: unknown): void;
|
|
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
87
|
/**
|
|
165
88
|
* Subscribe to row-lifecycle events for a Repeater/Builder array.
|
|
166
89
|
* Fires on remote add / remove / move; the renderer reconciles its
|
|
@@ -251,16 +174,12 @@ export interface FormCollabBindingFactoryArgs {
|
|
|
251
174
|
*/
|
|
252
175
|
initial: Record<string, unknown>;
|
|
253
176
|
/**
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
* the Tiptap renderer's `Y.XmlFragment`, not in a binding-allocated
|
|
261
|
-
* `Y.Text`. The meta is captured at mount; later structural changes
|
|
262
|
-
* from `live()` re-resolves aren't re-walked (rare in practice —
|
|
263
|
-
* 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.
|
|
264
183
|
*/
|
|
265
184
|
formMeta: ElementMeta;
|
|
266
185
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormCollabBindingRegistry.d.ts","sourceRoot":"","sources":["../../src/react/FormCollabBindingRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAExD
|
|
1
|
+
{"version":3,"file":"FormCollabBindingRegistry.d.ts","sourceRoot":"","sources":["../../src/react/FormCollabBindingRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormCollabBindingRegistry.js","sourceRoot":"","sources":["../../src/react/FormCollabBindingRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FormCollabBindingRegistry.js","sourceRoot":"","sources":["../../src/react/FormCollabBindingRegistry.ts"],"names":[],"mappings":"AA4LA,IAAI,QAAQ,GAAoC,IAAI,CAAA;AAEpD;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAiC;IACzE,QAAQ,GAAG,OAAO,CAAA;AACpB,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,oBAAoB;IAClC,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ElementMeta } from '../schema/Element.js';
|
|
3
|
-
import { type RowBindingApi
|
|
3
|
+
import { type RowBindingApi } from './FormCollabBindingRegistry.js';
|
|
4
4
|
export type FieldStatus = 'idle' | 'pending';
|
|
5
5
|
export interface FormStateApi {
|
|
6
6
|
values: Record<string, unknown>;
|
|
@@ -20,36 +20,11 @@ export interface FormStateApi {
|
|
|
20
20
|
formMeta: ElementMeta;
|
|
21
21
|
inFlight: boolean;
|
|
22
22
|
fieldStatus: (name: string) => FieldStatus;
|
|
23
|
-
/** Phase F.6 — per-field text-CRDT handles stashed at collab-room mount.
|
|
24
|
-
* `null` outside a room or before the binding effect has populated the
|
|
25
|
-
* map. The text/non-text allowlist lives in the binding impl —
|
|
26
|
-
* `FormStateProvider` asks for every top-level field and only stashes
|
|
27
|
-
* non-null answers, so a `Map.get()` hit means the binding has opted
|
|
28
|
-
* this field into the character-level path. */
|
|
29
|
-
textBindings: ReadonlyMap<string, TextBinding> | null;
|
|
30
23
|
/** Phase F.5 — per-Repeater/Builder row-array bindings. `null` outside a
|
|
31
24
|
* collab room or when the binding doesn't implement F.5 row methods.
|
|
32
25
|
* Each entry's API methods are pre-bound to the array name so renderers
|
|
33
26
|
* call `.add(rowId, initial)` rather than `binding.addRow(name, …)`. */
|
|
34
27
|
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;
|
|
53
28
|
}
|
|
54
29
|
/** Hook for direct access to the form context. Returns `null` outside a
|
|
55
30
|
* `FormStateProvider` (e.g. an action modal, or a form without any live
|
|
@@ -83,15 +58,6 @@ export interface UseFieldStateResult {
|
|
|
83
58
|
/** True while a live re-resolve POST is in flight for this field. */
|
|
84
59
|
pending: boolean;
|
|
85
60
|
errors: string[];
|
|
86
|
-
/** Phase F.6 — character-level CRDT handle for text-shaped fields when
|
|
87
|
-
* a collab room is mounted up-tree AND the binding strategy applies
|
|
88
|
-
* (allowlist + `.collab() !== false`). Null in every other case —
|
|
89
|
-
* outside a `FormStateProvider`, outside a `<RecordCollabRoom>`, on
|
|
90
|
-
* non-text fields, on dotted-path inner-Repeater rows (deferred to
|
|
91
|
-
* F.5), and on text fields opted out via `.collab(false)`. Text input
|
|
92
|
-
* renderers branch on this: non-null → character-level path with
|
|
93
|
-
* `applyDelta + observe`; null → today's whole-string LWW path. */
|
|
94
|
-
textBinding: TextBinding | null;
|
|
95
61
|
}
|
|
96
62
|
/**
|
|
97
63
|
* Phase F.5 — return the row-array CRDT API for a Repeater/Builder field.
|
|
@@ -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;
|
|
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;AAavD,OAAO,EAGL,KAAK,aAAa,EACnB,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;;;6EAGyE;IACzE,WAAW,EAAI,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI,CAAA;CACzD;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;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAIrE;AAED;;gEAEgE;AAChE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAuB/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,CAiX7C"}
|
|
@@ -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, collectRowArrayFieldNames,
|
|
3
|
+
import { collectFieldDefaults, collectRowArrayFieldNames, findFieldMeta, parseFormDataToNested, readNestedValue, routeBindingWrite, 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';
|
|
@@ -53,7 +53,6 @@ export function useFieldState(name) {
|
|
|
53
53
|
triggerLive: () => { },
|
|
54
54
|
pending: false,
|
|
55
55
|
errors: [],
|
|
56
|
-
textBinding: null,
|
|
57
56
|
};
|
|
58
57
|
}
|
|
59
58
|
// Dotted-path fields (inner Repeater rows) always render uncontrolled
|
|
@@ -66,37 +65,8 @@ export function useFieldState(name) {
|
|
|
66
65
|
triggerLive: (valueOverride) => ctx.triggerLive(name, valueOverride),
|
|
67
66
|
pending: ctx.fieldStatus(name) === 'pending',
|
|
68
67
|
errors: ctx.errors[name] ?? [],
|
|
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),
|
|
79
68
|
};
|
|
80
69
|
}
|
|
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
|
-
}
|
|
100
70
|
/** Provider component for the controlled form path. Holds the values map,
|
|
101
71
|
* the current form meta (replaced wholesale on live POST), and the
|
|
102
72
|
* per-field live trigger. Mounted by `FormRenderer` when the form has a
|
|
@@ -107,22 +77,11 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
|
|
|
107
77
|
const [errors, setErrors] = useState(initialErrors);
|
|
108
78
|
const [pendingNames, setPendingNames] = useState(() => new Set());
|
|
109
79
|
const [inFlight, setInFlight] = useState(false);
|
|
110
|
-
// Phase F.
|
|
111
|
-
//
|
|
112
|
-
// a ref) so consumers of
|
|
113
|
-
//
|
|
114
|
-
// existing `setValuesState` overlay below already triggers one when the
|
|
115
|
-
// room has pre-existing state.
|
|
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.
|
|
80
|
+
// Phase F.5 — per-Repeater/Builder row-array stash. Populated on
|
|
81
|
+
// collab mount when the binding implements F.5 row methods, cleared
|
|
82
|
+
// on unmount. Stored in state (not a ref) so consumers of
|
|
83
|
+
// `useRowBinding` re-render once the bindings land.
|
|
120
84
|
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);
|
|
126
85
|
const { notify } = useToast();
|
|
127
86
|
// Track an incrementing in-flight id so out-of-order responses are dropped.
|
|
128
87
|
// useRef (not useState) so React StrictMode dev double-invokes don't
|
|
@@ -177,27 +136,6 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
|
|
|
177
136
|
if (Object.keys(synced).length > 0) {
|
|
178
137
|
setValuesState((prev) => ({ ...prev, ...synced }));
|
|
179
138
|
}
|
|
180
|
-
// Phase F.6 — ask the binding for a `TextBinding` on every top-level
|
|
181
|
-
// field name. The text/non-text allowlist lives in the binding impl,
|
|
182
|
-
// not in core: the binding returns `null` for non-text fields and
|
|
183
|
-
// text fields opted out via `.collab(false)`. `getTextBinding` is
|
|
184
|
-
// optional on the contract — F1-era plugins that haven't implemented
|
|
185
|
-
// it short-circuit the whole stash and every text field stays on the
|
|
186
|
-
// LWW path. We stash only the non-null answers. Cleanup is owned by
|
|
187
|
-
// `binding.destroy()` (expected to cascade into every issued
|
|
188
|
-
// `TextBinding`).
|
|
189
|
-
if (binding.getTextBinding) {
|
|
190
|
-
const textStash = new Map();
|
|
191
|
-
for (const fieldName of Object.keys(valuesRef.current)) {
|
|
192
|
-
if (fieldName.includes('.'))
|
|
193
|
-
continue;
|
|
194
|
-
const tb = binding.getTextBinding(fieldName);
|
|
195
|
-
if (tb)
|
|
196
|
-
textStash.set(fieldName, tb);
|
|
197
|
-
}
|
|
198
|
-
if (textStash.size > 0)
|
|
199
|
-
setTextBindings(textStash);
|
|
200
|
-
}
|
|
201
139
|
// Phase F.5 — build a `RowBindingApi` per top-level Repeater/Builder
|
|
202
140
|
// field when the binding implements all three lifecycle methods. The
|
|
203
141
|
// walk reads from formMeta (structural — fields exist regardless of
|
|
@@ -205,8 +143,7 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
|
|
|
205
143
|
// the array name so `RepeaterInput` calls `rb.add(rowId, …)` rather
|
|
206
144
|
// than `binding.addRow(name, rowId, …)`. Partial F.5 impls (e.g. a
|
|
207
145
|
// binding that has addRow but not reorderRows) skip the stash — the
|
|
208
|
-
// contract says all three or nothing.
|
|
209
|
-
// exposed separately via `getRowTextBinding` and stays optional.
|
|
146
|
+
// contract says all three or nothing.
|
|
210
147
|
if (binding.addRow && binding.removeRow && binding.reorderRows) {
|
|
211
148
|
const { addRow, removeRow, reorderRows, subscribeRows } = binding;
|
|
212
149
|
const arrayNames = collectRowArrayFieldNames(formMetaRef.current);
|
|
@@ -229,21 +166,6 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
|
|
|
229
166
|
setRowBindings(rowStash);
|
|
230
167
|
}
|
|
231
168
|
}
|
|
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
|
-
}
|
|
247
169
|
// Subscribe to remote changes. Local writes ALSO trigger this
|
|
248
170
|
// (Yjs observers fire on local transactions too) — the per-key
|
|
249
171
|
// Object.is short-circuit below collapses them into no-op renders.
|
|
@@ -264,10 +186,7 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
|
|
|
264
186
|
unsubscribe();
|
|
265
187
|
binding.destroy();
|
|
266
188
|
bindingRef.current = null;
|
|
267
|
-
setTextBindings(null);
|
|
268
189
|
setRowBindings(null);
|
|
269
|
-
setRowTextLeaves(null);
|
|
270
|
-
setGetRowTextBinding(null);
|
|
271
190
|
};
|
|
272
191
|
// `valuesRef.current` is intentionally read once at mount — initial
|
|
273
192
|
// values seed the binding; subsequent edits flow through `setValue`
|
|
@@ -495,11 +414,8 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
|
|
|
495
414
|
formMeta,
|
|
496
415
|
inFlight,
|
|
497
416
|
fieldStatus,
|
|
498
|
-
textBindings,
|
|
499
417
|
rowBindings,
|
|
500
|
-
|
|
501
|
-
getRowTextBinding,
|
|
502
|
-
}), [values, setValue, triggerLive, errors, applyErrors, formMeta, inFlight, fieldStatus, textBindings, rowBindings, rowTextLeaves, getRowTextBinding]);
|
|
418
|
+
}), [values, setValue, triggerLive, errors, applyErrors, formMeta, inFlight, fieldStatus, rowBindings]);
|
|
503
419
|
return (_jsx(FormStateContext.Provider, { value: api, children: children }));
|
|
504
420
|
}
|
|
505
421
|
//# 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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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Phase 1 — row-text Tiptap-backed collab plan
|
|
4
|
+
* (`pilotiq-pro/docs/plans/collab-row-text-tiptap-backed.md`).
|
|
5
|
+
*
|
|
6
|
+
* Each Repeater / Builder row mounts a `<RowCoordsContext.Provider>`
|
|
7
|
+
* around its children so dotted-path text leaves can compose a
|
|
8
|
+
* fragment-key that includes the stable `rowId` (survives reorders).
|
|
9
|
+
* Top-level fields see `null` and fall through to bare-name fragment
|
|
10
|
+
* routing.
|
|
11
|
+
*/
|
|
12
|
+
export interface RowCoords {
|
|
13
|
+
arrayName: string;
|
|
14
|
+
rowIndex: number;
|
|
15
|
+
rowId: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const RowCoordsContext: React.Context<RowCoords | null>;
|
|
18
|
+
export declare function useRowCoords(): RowCoords | null;
|
|
19
|
+
//# sourceMappingURL=RowCoordsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RowCoordsContext.d.ts","sourceRoot":"","sources":["../../src/react/RowCoordsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAA;AAExD;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAG,MAAM,CAAA;IACjB,KAAK,EAAM,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,gBAAgB,iCAAwC,CAAA;AAErE,wBAAgB,YAAY,IAAI,SAAS,GAAG,IAAI,CAE/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RowCoordsContext.js","sourceRoot":"","sources":["../../src/react/RowCoordsContext.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAkBxD,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAmB,IAAI,CAAC,CAAA;AAErE,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAA;AACrC,CAAC"}
|
|
@@ -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;
|
|
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;AAiG1D;;;;;;;;;;;;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,CAmdrB"}
|
|
@@ -5,6 +5,7 @@ import { Button } from '../ui/button.js';
|
|
|
5
5
|
import { SchemaRenderer } from '../SchemaRenderer.js';
|
|
6
6
|
import { FormIdContext, useFormState, useRowBinding } from '../FormStateContext.js';
|
|
7
7
|
import { findFieldMeta } from '../formStateHelpers.js';
|
|
8
|
+
import { RowCoordsContext } from '../RowCoordsContext.js';
|
|
8
9
|
import { useIconFor } from '../icon-context.js';
|
|
9
10
|
import { reorderRows, ExtraActionStrip, buildGridContainer } from './RepeaterInput.js';
|
|
10
11
|
import { syncRowGates } from './syncRowGates.js';
|
|
@@ -94,11 +95,9 @@ export function BuilderInput({ el, name, disabled, }) {
|
|
|
94
95
|
// the first event — without it, the picker dropdown choice doesn't
|
|
95
96
|
// propagate until the user makes their first inner-field edit.
|
|
96
97
|
const rowBinding = useRowBinding(name);
|
|
97
|
-
//
|
|
98
|
-
// row
|
|
99
|
-
//
|
|
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.
|
|
98
|
+
// Mirror row identities into the form's values map so dotted row-leaf
|
|
99
|
+
// consumers can resolve the row's `__id` via `rowIdAtIndex(ctx.values,
|
|
100
|
+
// name, i)`. Mirrors the same plumbing in RepeaterInput.
|
|
102
101
|
const formStateForIds = useFormState();
|
|
103
102
|
const ctxSetValue = formStateForIds?.setValue;
|
|
104
103
|
useEffect(() => {
|
|
@@ -529,12 +528,18 @@ function BuilderRow({ row, block, index, isFirstVisible, isLastVisible, name, di
|
|
|
529
528
|
// `name.<i>.type`.
|
|
530
529
|
const dataPrefix = `${name}.${index}.data`;
|
|
531
530
|
const namespaced = useMemo(() => row.children.map(c => prefixFieldNames(c, dataPrefix)), [row.children, dataPrefix]);
|
|
531
|
+
// Row coords for dotted-path text leaves under this row — composes
|
|
532
|
+
// fragment-key `${arrayName}.${rowId}.${fieldName}` (Phase 1 of
|
|
533
|
+
// collab-row-text-tiptap-backed.md). `parseRowFieldPath` strips the
|
|
534
|
+
// Builder-specific `data` segment, so the coords use the array name +
|
|
535
|
+
// the row's stable id without referencing the dialect.
|
|
536
|
+
const rowCoords = useMemo(() => ({ arrayName: name, rowIndex: index, rowId: row.id }), [name, index, row.id]);
|
|
532
537
|
const RowIcon = useIconFor(showIcons ? block?.icon : undefined);
|
|
533
538
|
const blockLabel = block?.label ?? row.type ?? 'Block';
|
|
534
539
|
const numberPrefix = showNumbers ? `${index + 1}. ` : '';
|
|
535
540
|
const headerLabel = row.itemLabel ?? `${numberPrefix}${blockLabel}`;
|
|
536
541
|
if (row.hidden) {
|
|
537
|
-
return (_jsxs("div", { style: { display: 'none' }, "data-pilotiq-builder-row": "hidden", children: [_jsx("input", { type: "hidden", name: `${name}.${index}.__id`, value: row.id, readOnly: true }), _jsx("input", { type: "hidden", name: `${name}.${index}.type`, value: row.type, readOnly: true }), _jsx(SchemaRenderer, { elements: namespaced })] }));
|
|
542
|
+
return (_jsx(RowCoordsContext.Provider, { value: rowCoords, children: _jsxs("div", { style: { display: 'none' }, "data-pilotiq-builder-row": "hidden", children: [_jsx("input", { type: "hidden", name: `${name}.${index}.__id`, value: row.id, readOnly: true }), _jsx("input", { type: "hidden", name: `${name}.${index}.type`, value: row.type, readOnly: true }), _jsx(SchemaRenderer, { elements: namespaced })] }) }));
|
|
538
543
|
}
|
|
539
544
|
if (row.unknownType || !block) {
|
|
540
545
|
// Stale block type — keep envelope round-tripping but show a clear
|
|
@@ -559,9 +564,9 @@ function BuilderRow({ row, block, index, isFirstVisible, isLastVisible, name, di
|
|
|
559
564
|
}
|
|
560
565
|
: {};
|
|
561
566
|
const innerColumns = block.columns && block.columns > 1 ? block.columns : 1;
|
|
562
|
-
return (_jsxs("div", { className: `rounded-md border bg-card transition-opacity ${isDragging ? 'opacity-50' : ''}`, "data-pilotiq-builder-row": "", ...dragProps, children: [_jsxs("div", { className: "flex items-center gap-2 border-b px-3 py-2", children: [reorderable && !buttonsOnly && canReorder && (_jsx(ReorderGrip, { disabled: disabled, buttons: buttons })), collapsible && (_jsx(CollapseChevron, { isCollapsed: isCollapsed, disabled: disabled, buttons: buttons, onToggle: onToggleCollapse })), RowIcon && _jsx(RowIcon, { className: "size-4 shrink-0 text-muted-foreground" }), _jsx("span", { className: "flex-1 truncate text-sm font-medium", children: headerLabel }), _jsx("input", { type: "hidden", name: `${name}.${index}.__id`, value: row.id, readOnly: true }), _jsx("input", { type: "hidden", name: `${name}.${index}.type`, value: row.type, readOnly: true }), reorderable && canReorder && (_jsxs(_Fragment, { children: [_jsx(RowChromeIconButton, { defaults: DEFAULT_MOVE_UP, override: buttons?.moveUp, disabled: disabled || isFirstVisible, onClick: onMoveUp }), _jsx(RowChromeIconButton, { defaults: DEFAULT_MOVE_DOWN, override: buttons?.moveDown, disabled: disabled || isLastVisible, onClick: onMoveDown })] })), row.extraActions && row.extraActions.length > 0 && (_jsx(ExtraActionStrip, { actions: row.extraActions, rowPath: rowPath, disabled: disabled })), cloneable && canClone && (_jsx(RowChromeIconButton, { defaults: DEFAULT_CLONE, override: buttons?.clone, disabled: disabled || atMax, onClick: onClone })), deletable && canDelete && (_jsx(RowChromeIconButton, { defaults: DEFAULT_DELETE, override: buttons?.delete, disabled: disabled || atMin, onClick: onRemove }))] }), _jsx("div", { className: "p-3", style: isCollapsed ? { display: 'none' } : undefined, children: innerColumns > 1
|
|
563
|
-
|
|
564
|
-
|
|
567
|
+
return (_jsx(RowCoordsContext.Provider, { value: rowCoords, children: _jsxs("div", { className: `rounded-md border bg-card transition-opacity ${isDragging ? 'opacity-50' : ''}`, "data-pilotiq-builder-row": "", ...dragProps, children: [_jsxs("div", { className: "flex items-center gap-2 border-b px-3 py-2", children: [reorderable && !buttonsOnly && canReorder && (_jsx(ReorderGrip, { disabled: disabled, buttons: buttons })), collapsible && (_jsx(CollapseChevron, { isCollapsed: isCollapsed, disabled: disabled, buttons: buttons, onToggle: onToggleCollapse })), RowIcon && _jsx(RowIcon, { className: "size-4 shrink-0 text-muted-foreground" }), _jsx("span", { className: "flex-1 truncate text-sm font-medium", children: headerLabel }), _jsx("input", { type: "hidden", name: `${name}.${index}.__id`, value: row.id, readOnly: true }), _jsx("input", { type: "hidden", name: `${name}.${index}.type`, value: row.type, readOnly: true }), reorderable && canReorder && (_jsxs(_Fragment, { children: [_jsx(RowChromeIconButton, { defaults: DEFAULT_MOVE_UP, override: buttons?.moveUp, disabled: disabled || isFirstVisible, onClick: onMoveUp }), _jsx(RowChromeIconButton, { defaults: DEFAULT_MOVE_DOWN, override: buttons?.moveDown, disabled: disabled || isLastVisible, onClick: onMoveDown })] })), row.extraActions && row.extraActions.length > 0 && (_jsx(ExtraActionStrip, { actions: row.extraActions, rowPath: rowPath, disabled: disabled })), cloneable && canClone && (_jsx(RowChromeIconButton, { defaults: DEFAULT_CLONE, override: buttons?.clone, disabled: disabled || atMax, onClick: onClone })), deletable && canDelete && (_jsx(RowChromeIconButton, { defaults: DEFAULT_DELETE, override: buttons?.delete, disabled: disabled || atMin, onClick: onRemove }))] }), _jsx("div", { className: "p-3", style: isCollapsed ? { display: 'none' } : undefined, children: innerColumns > 1
|
|
568
|
+
? (_jsx("div", { className: "grid gap-3", style: { gridTemplateColumns: `repeat(${innerColumns}, minmax(0, 1fr))` }, children: _jsx(SchemaRenderer, { elements: namespaced }) }))
|
|
569
|
+
: _jsx(SchemaRenderer, { elements: namespaced }) })] }) }));
|
|
565
570
|
}
|
|
566
571
|
function DropIndicator() {
|
|
567
572
|
return (_jsx("div", { "aria-hidden": "true", className: "pointer-events-none h-0.5 rounded-full bg-primary" }));
|