@pilotiq/pilotiq 0.14.0 → 0.15.1

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.
@@ -1,8 +1,8 @@
1
1
 
2
- > @pilotiq/pilotiq@0.14.0 build /home/runner/work/pilotiq/pilotiq/packages/pilotiq
2
+ > @pilotiq/pilotiq@0.15.1 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.14.0 copy-assets /home/runner/work/pilotiq/pilotiq/packages/pilotiq
6
+ > @pilotiq/pilotiq@0.15.1 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,30 @@
1
1
  # @pilotiq/pilotiq
2
2
 
3
+ ## 0.15.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 38e2fa6: `MarkdownField` instances inside `Repeater` / `Builder` rows now mount the registered WYSIWYG editor (e.g. `@pilotiq/tiptap`'s `MarkdownEditor`) instead of falling back to the legacy collab plain-text editor. Threads the row-id-anchored composite key (`${arrayName}.${rowId}.${fieldName}`) to the editor's collab factory via a new `collabKey` prop on the host, while keeping the original dotted `name` for hidden-input form submission. Brings WYSIWYG editing parity to row-leaf markdown fields with no change to the on-the-wire shape.
8
+
9
+ ## 0.15.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 850638f: `MarkdownField` swaps its textarea + manual-toolbar UI for a real WYSIWYG editor when `@pilotiq/tiptap` is installed. The editor parses markdown into a Tiptap document, exposes a rich-text toolbar (bold / italic / strike / link / heading / lists / blockquote / code / attach files), and serializes back to markdown on every change via `tiptap-markdown`. Editor / Source / Preview tabs let users switch between WYSIWYG, raw markdown, and a rendered preview.
14
+
15
+ Collab is automatic — when a `<RecordCollabRoom>` is up-tree the editor binds to the shared `Y.XmlFragment` the same way `RichTextField` does. All peers see live edits; only the local serialize-to-markdown runs per peer.
16
+
17
+ Wire format unchanged — a plain markdown string under the field name. Panels that don't install `@pilotiq/tiptap` keep the textarea fallback.
18
+
19
+ New public API in pilotiq core:
20
+
21
+ - `registerMarkdownEditor(C) / getMarkdownEditor()` + `MarkdownEditor / MarkdownEditorProps` types — re-exported from `@pilotiq/pilotiq/react`.
22
+
23
+ New in `@pilotiq/tiptap`:
24
+
25
+ - `MarkdownEditor` component, auto-registered by `registerTiptap()` / `tiptap()` plugin.
26
+ - `tiptap-markdown@^0.9` peer dep.
27
+
3
28
  ## 0.14.0
4
29
 
5
30
  ### Minor Changes
@@ -11,20 +11,31 @@ export type MarkdownToolbarButton = 'bold' | 'italic' | 'strike' | 'link' | 'hea
11
11
  export type MarkdownAttachmentVisibility = 'public' | 'private';
12
12
  export declare const DEFAULT_MARKDOWN_TOOLBAR: readonly MarkdownToolbarButton[];
13
13
  /**
14
- * Plain-markdown editor. The wire format is identical to `TextareaField`
15
- * a single string under the field name so no new coerce branch is
16
- * needed. The client mounts a `<textarea>` plus a formatting toolbar and
17
- * a live HTML preview pane (rendered via `marked`).
14
+ * Markdown editor. The wire format is a plain markdown string under the
15
+ * field name same shape as `TextareaField`, so no new coerce branch
16
+ * is needed.
17
+ *
18
+ * **Renderer is pluggable.** When `@pilotiq/tiptap` is installed, its
19
+ * `registerTiptap()` hook wires a WYSIWYG editor that parses the
20
+ * markdown into a Tiptap document, exposes a rich-text toolbar, and
21
+ * serializes back to markdown on every change via `tiptap-markdown`.
22
+ * Editor / Source / Preview tabs let users switch between the WYSIWYG
23
+ * view, raw markdown, and a rendered preview without leaving the form.
24
+ * Collab is automatic — when a `<RecordCollabRoom>` is mounted up-tree
25
+ * the editor binds to the shared `Y.XmlFragment` and all peers see live
26
+ * edits, the same way `RichTextField` does. Without `@pilotiq/tiptap`,
27
+ * `MarkdownInput` falls back to a textarea with a formatting toolbar +
28
+ * a preview tab — works fine for panels that don't install the adapter.
18
29
  *
19
30
  * The toolbar is configurable via `toolbarButtons([…])` /
20
- * `disableToolbarButtons([…])`; pass `[]` to ship a chrome-less textarea
21
- * with just a preview tab.
31
+ * `disableToolbarButtons([…])`; pass `[]` to hide the toolbar entirely.
22
32
  *
23
- * `attachFiles` integrates with the panel's `UploadAdapter` (the same one
24
- * `FileUpload` uses) — the toolbar button + paste-image handler upload
25
- * the file via `POST {base}/_uploads` and splice an `![alt](url)` reference
26
- * at the cursor. When no adapter is registered, the button is stripped
27
- * server-side so apps without uploads never see a broken affordance.
33
+ * `attachFiles` integrates with the panel's `UploadAdapter` (the same
34
+ * one `FileUpload` uses) — the toolbar button uploads the file via
35
+ * `POST {base}/_uploads` and inserts an `![alt](url)` image (or a
36
+ * `[name](url)` link for non-images). When no adapter is registered,
37
+ * the button is stripped server-side so apps without uploads never see
38
+ * a broken affordance.
28
39
  *
29
40
  * @example
30
41
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownField.d.ts","sourceRoot":"","sources":["../../src/fields/MarkdownField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,SAAS,GACT,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,aAAa,CAAA;AAEjB,MAAM,MAAM,4BAA4B,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE/D,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAW3D,CAAA;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,OAAO,CAAC,eAAe,CAAyD;IAChF,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,yBAAyB,CAAC,CAAQ;IAC1C,OAAO,CAAC,0BAA0B,CAAC,CAA8B;IAEjE,OAAO;IAIP,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAIxC;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAKtD;;;;;OAKG;IACH,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAM7D,4EAA4E;IAC5E,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAE9B,4DAA4D;IAC5D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAE9B;;;;;OAKG;IACH,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKzC,mEAAmE;IACnE,yBAAyB,CAAC,CAAC,EAAE,4BAA4B,GAAG,IAAI;IAKhE,iBAAiB,IAAI,SAAS,qBAAqB,EAAE;IACrD,YAAY,IAAI,MAAM,GAAG,SAAS;IAClC,YAAY,IAAI,MAAM,GAAG,SAAS;IAClC,2BAA2B,IAAI,MAAM,GAAG,SAAS;IACjD,4BAA4B,IAAI,4BAA4B,GAAG,SAAS;IAE/D,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,GAAG,SAAS;CAqBhD"}
1
+ {"version":3,"file":"MarkdownField.d.ts","sourceRoot":"","sources":["../../src/fields/MarkdownField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,SAAS,GACT,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,aAAa,CAAA;AAEjB,MAAM,MAAM,4BAA4B,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE/D,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAW3D,CAAA;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,OAAO,CAAC,eAAe,CAAyD;IAChF,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,yBAAyB,CAAC,CAAQ;IAC1C,OAAO,CAAC,0BAA0B,CAAC,CAA8B;IAEjE,OAAO;IAIP,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAIxC;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAKtD;;;;;OAKG;IACH,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAM7D,4EAA4E;IAC5E,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAE9B,4DAA4D;IAC5D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAE9B;;;;;OAKG;IACH,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKzC,mEAAmE;IACnE,yBAAyB,CAAC,CAAC,EAAE,4BAA4B,GAAG,IAAI;IAKhE,iBAAiB,IAAI,SAAS,qBAAqB,EAAE;IACrD,YAAY,IAAI,MAAM,GAAG,SAAS;IAClC,YAAY,IAAI,MAAM,GAAG,SAAS;IAClC,2BAA2B,IAAI,MAAM,GAAG,SAAS;IACjD,4BAA4B,IAAI,4BAA4B,GAAG,SAAS;IAE/D,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,GAAG,SAAS;CAqBhD"}
@@ -12,20 +12,31 @@ export const DEFAULT_MARKDOWN_TOOLBAR = [
12
12
  'attachFiles',
13
13
  ];
14
14
  /**
15
- * Plain-markdown editor. The wire format is identical to `TextareaField`
16
- * a single string under the field name so no new coerce branch is
17
- * needed. The client mounts a `<textarea>` plus a formatting toolbar and
18
- * a live HTML preview pane (rendered via `marked`).
15
+ * Markdown editor. The wire format is a plain markdown string under the
16
+ * field name same shape as `TextareaField`, so no new coerce branch
17
+ * is needed.
18
+ *
19
+ * **Renderer is pluggable.** When `@pilotiq/tiptap` is installed, its
20
+ * `registerTiptap()` hook wires a WYSIWYG editor that parses the
21
+ * markdown into a Tiptap document, exposes a rich-text toolbar, and
22
+ * serializes back to markdown on every change via `tiptap-markdown`.
23
+ * Editor / Source / Preview tabs let users switch between the WYSIWYG
24
+ * view, raw markdown, and a rendered preview without leaving the form.
25
+ * Collab is automatic — when a `<RecordCollabRoom>` is mounted up-tree
26
+ * the editor binds to the shared `Y.XmlFragment` and all peers see live
27
+ * edits, the same way `RichTextField` does. Without `@pilotiq/tiptap`,
28
+ * `MarkdownInput` falls back to a textarea with a formatting toolbar +
29
+ * a preview tab — works fine for panels that don't install the adapter.
19
30
  *
20
31
  * The toolbar is configurable via `toolbarButtons([…])` /
21
- * `disableToolbarButtons([…])`; pass `[]` to ship a chrome-less textarea
22
- * with just a preview tab.
32
+ * `disableToolbarButtons([…])`; pass `[]` to hide the toolbar entirely.
23
33
  *
24
- * `attachFiles` integrates with the panel's `UploadAdapter` (the same one
25
- * `FileUpload` uses) — the toolbar button + paste-image handler upload
26
- * the file via `POST {base}/_uploads` and splice an `![alt](url)` reference
27
- * at the cursor. When no adapter is registered, the button is stripped
28
- * server-side so apps without uploads never see a broken affordance.
34
+ * `attachFiles` integrates with the panel's `UploadAdapter` (the same
35
+ * one `FileUpload` uses) — the toolbar button uploads the file via
36
+ * `POST {base}/_uploads` and inserts an `![alt](url)` image (or a
37
+ * `[name](url)` link for non-images). When no adapter is registered,
38
+ * the button is stripped server-side so apps without uploads never see
39
+ * a broken affordance.
29
40
  *
30
41
  * @example
31
42
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownField.js","sourceRoot":"","sources":["../../src/fields/MarkdownField.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownField.js","sourceRoot":"","sources":["../../src/fields/MarkdownField.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import type { ComponentType } from 'react';
2
+ /**
3
+ * Module-level registry slot for the WYSIWYG markdown editor renderer.
4
+ *
5
+ * Wiring posture (mirrors `CollabTextRendererRegistry` /
6
+ * `FormCollabBindingRegistry`):
7
+ * - `@pilotiq/tiptap`'s `registerTiptap(...)` calls `registerMarkdownEditor(...)`
8
+ * once at boot. The registered component closes over `@tiptap/*` +
9
+ * `tiptap-markdown` imports so pilotiq core stays free of any tiptap peer
10
+ * dep — same posture as `CollabTextRendererRegistry`.
11
+ * - `MarkdownInput` checks for the registered component on every mount. When
12
+ * present, it replaces the legacy textarea + manual-toolbar path with a
13
+ * real WYSIWYG editor that serializes to / parses from markdown on the
14
+ * wire. When absent, `MarkdownInput` falls back to today's textarea path so
15
+ * panels that don't install `@pilotiq/tiptap` still get a working editor.
16
+ * - The adapter handles collab itself via the existing `useCollabRoom()` +
17
+ * `getCollabExtensions()` plumbing — when a `<RecordCollabRoom>` is mounted
18
+ * up-tree it binds the editor to the shared `Y.XmlFragment`. Markdown
19
+ * serialization runs locally on every change; only the ProseMirror tree
20
+ * ships over the wire.
21
+ *
22
+ * Wire format on the form remains a plain markdown string under the field
23
+ * `name` — `MarkdownField` doesn't add a new coerce branch. The editor is
24
+ * expected to write the current markdown to a hidden input (or call
25
+ * `onChange` and let the host stamp it) so the form submission round-trip
26
+ * stays identical to the textarea path.
27
+ */
28
+ export interface MarkdownEditorProps {
29
+ /** Field name — drives the hidden form-input name AND the
30
+ * `Y.XmlFragment` selector when collab is active. */
31
+ name: string;
32
+ /**
33
+ * Server-rendered default value (raw markdown string). The renderer parses
34
+ * this into the editor's initial document. When collab is active and the
35
+ * room has no persisted state for this field, the renderer also seeds the
36
+ * `Y.XmlFragment` from this value.
37
+ */
38
+ defaultValue: string;
39
+ /** Optional placeholder hint shown in the editor when empty. */
40
+ placeholder?: string;
41
+ /** Disabled / read-only state. */
42
+ disabled?: boolean;
43
+ /** Fired on every editor change with the current serialized markdown. */
44
+ onChange: (markdown: string) => void;
45
+ /** Fired on editor blur — host wires this to live-onBlur trigger semantics. */
46
+ onBlur?: () => void;
47
+ /**
48
+ * Configured toolbar buttons. The adapter is free to map these onto its own
49
+ * command set; unknown / unsupported ids are skipped. Empty array hides
50
+ * the toolbar entirely. See `MarkdownField.toolbarButtons()`.
51
+ */
52
+ toolbarButtons: ReadonlyArray<string>;
53
+ /** CSS height for the editor's collapsed state. */
54
+ minHeight?: string;
55
+ /** CSS cap on grown height. */
56
+ maxHeight?: string;
57
+ /** Sub-directory hint forwarded to the upload adapter on paste-image. */
58
+ fileAttachmentsDirectory?: string;
59
+ /** Adapter-defined visibility hint (`'public'` or `'private'`). */
60
+ fileAttachmentsVisibility?: string;
61
+ /** Panel upload route — stamped by `pageData.uploadCtx` only when an
62
+ * `UploadAdapter` is registered. Absent → adapter hides upload affordances. */
63
+ uploadUrl?: string;
64
+ }
65
+ export type MarkdownEditor = ComponentType<MarkdownEditorProps>;
66
+ /**
67
+ * Register the WYSIWYG markdown editor component. Called once at boot by
68
+ * `@pilotiq/tiptap`'s `registerTiptap()` (or directly by an app that imports
69
+ * the renderer). Calling with `null` clears the registry — useful for tests.
70
+ *
71
+ * When no editor is registered, `MarkdownInput` falls back to the textarea +
72
+ * manual-toolbar path that's worked since `MarkdownField` shipped.
73
+ */
74
+ export declare function registerMarkdownEditor(component: MarkdownEditor | null): void;
75
+ /** Returns the registered editor component, or `null` when no adapter is installed. */
76
+ export declare function getMarkdownEditor(): MarkdownEditor | null;
77
+ //# sourceMappingURL=MarkdownEditorRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownEditorRegistry.d.ts","sourceRoot":"","sources":["../../src/react/MarkdownEditorRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,mBAAmB;IAClC;yDACqD;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,yEAAyE;IACzE,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IAEnB;;;;OAIG;IACH,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,mEAAmE;IACnE,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC;oFACgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAA;AAI/D;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAE7E;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAEzD"}
@@ -0,0 +1,17 @@
1
+ let _editor = null;
2
+ /**
3
+ * Register the WYSIWYG markdown editor component. Called once at boot by
4
+ * `@pilotiq/tiptap`'s `registerTiptap()` (or directly by an app that imports
5
+ * the renderer). Calling with `null` clears the registry — useful for tests.
6
+ *
7
+ * When no editor is registered, `MarkdownInput` falls back to the textarea +
8
+ * manual-toolbar path that's worked since `MarkdownField` shipped.
9
+ */
10
+ export function registerMarkdownEditor(component) {
11
+ _editor = component;
12
+ }
13
+ /** Returns the registered editor component, or `null` when no adapter is installed. */
14
+ export function getMarkdownEditor() {
15
+ return _editor;
16
+ }
17
+ //# sourceMappingURL=MarkdownEditorRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownEditorRegistry.js","sourceRoot":"","sources":["../../src/react/MarkdownEditorRegistry.ts"],"names":[],"mappings":"AAqEA,IAAI,OAAO,GAA0B,IAAI,CAAA;AAEzC;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAgC;IACrE,OAAO,GAAG,SAAS,CAAA;AACrB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownInput.d.ts","sourceRoot":"","sources":["../../../src/react/fields/MarkdownInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;AAenE,KAAK,aAAa,GACd,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GACrC,SAAS,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,GACvD,WAAW,GAAG,aAAa,CAAA;AAE/B;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EACzC,cAAc,EAAE,SAAS,EAAE,SAAS,EACpC,wBAAwB,EAAE,yBAAyB,EACnD,SAAS,GACV,EAAE;IACD,IAAI,EAAwB,MAAM,CAAA;IAClC,YAAY,EAAgB,OAAO,CAAA;IACnC,QAAQ,EAAoB,OAAO,CAAA;IACnC,WAAW,EAAiB,MAAM,GAAG,SAAS,CAAA;IAC9C,cAAc,EAAc,aAAa,EAAE,CAAA;IAC3C,SAAS,EAAmB,MAAM,GAAG,SAAS,CAAA;IAC9C,SAAS,EAAmB,MAAM,GAAG,SAAS,CAAA;IAC9C,wBAAwB,EAAI,MAAM,GAAG,SAAS,CAAA;IAC9C,yBAAyB,EAAG,MAAM,GAAG,SAAS,CAAA;IAC9C,SAAS,EAAmB,MAAM,GAAG,SAAS,CAAA;CAC/C,GAAG,KAAK,CAAC,YAAY,CAiTrB"}
1
+ {"version":3,"file":"MarkdownInput.d.ts","sourceRoot":"","sources":["../../../src/react/fields/MarkdownInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;AAiBnE,KAAK,aAAa,GACd,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GACrC,SAAS,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,GACvD,WAAW,GAAG,aAAa,CAAA;AAE/B;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EACzC,cAAc,EAAE,SAAS,EAAE,SAAS,EACpC,wBAAwB,EAAE,yBAAyB,EACnD,SAAS,GACV,EAAE;IACD,IAAI,EAAwB,MAAM,CAAA;IAClC,YAAY,EAAgB,OAAO,CAAA;IACnC,QAAQ,EAAoB,OAAO,CAAA;IACnC,WAAW,EAAiB,MAAM,GAAG,SAAS,CAAA;IAC9C,cAAc,EAAc,aAAa,EAAE,CAAA;IAC3C,SAAS,EAAmB,MAAM,GAAG,SAAS,CAAA;IAC9C,SAAS,EAAmB,MAAM,GAAG,SAAS,CAAA;IAC9C,wBAAwB,EAAI,MAAM,GAAG,SAAS,CAAA;IAC9C,yBAAyB,EAAG,MAAM,GAAG,SAAS,CAAA;IAC9C,SAAS,EAAmB,MAAM,GAAG,SAAS,CAAA;CAC/C,GAAG,KAAK,CAAC,YAAY,CAiVrB"}
@@ -5,6 +5,7 @@ import { BoldIcon, ItalicIcon, StrikethroughIcon, LinkIcon, HeadingIcon, ListIco
5
5
  import { useFieldState } from '../FormStateContext.js';
6
6
  import { useCollabRoom } from '../CollabRoomContext.js';
7
7
  import { getCollabTextRenderer } from '../CollabTextRendererRegistry.js';
8
+ import { getMarkdownEditor } from '../MarkdownEditorRegistry.js';
8
9
  import { useRowCoords } from '../RowCoordsContext.js';
9
10
  import { parseRowFieldPath } from '../formStateHelpers.js';
10
11
  import { useToast } from '../Toaster.js';
@@ -26,21 +27,12 @@ export function MarkdownInput({ name, defaultValue, disabled, placeholder, toolb
26
27
  const fs = useFieldState(name);
27
28
  const room = useCollabRoom();
28
29
  const collabRenderer = getCollabTextRenderer();
30
+ const markdownEditor = getMarkdownEditor();
29
31
  const rowCoords = useRowCoords();
30
- // Tiptap-backed plain-text editor for markdown source when collab is on.
31
- // Same architectural fix as `TextLikeInput`'s `CollabTextField`:
32
- // y-prosemirror's `RelativePosition` cursor anchoring against a
33
- // `Y.XmlFragment` replaces whole-string LWW. Row leaves get the
34
- // composite-key transform via `useRowCoords()` + `parseRowFieldPath`
35
- // (same shape as TextLikeInput) so the fragment survives row reorders.
36
- //
37
- // Tradeoff: the markdown toolbar + Cmd-shortcuts + paste-image upload
38
- // all operate on a `<textarea>`'s DOM selection — they don't have a
39
- // way to reach into the Tiptap editor's selection without exposing the
40
- // editor instance, which would widen the renderer seam. Those features
41
- // are write-mode-only on the native path; collab users type markdown
42
- // syntax directly (`**bold**`, `## heading`). The preview tab keeps
43
- // working since `MarkdownCollabInput` maintains a local mirror.
32
+ // Row-leaf fields ride a composite `arrayName.rowId.fieldName` key for
33
+ // collab anchoring so the Y.XmlFragment survives row reorders (the raw
34
+ // dotted `items.<index>.body` would follow the wrong row after a swap).
35
+ // Top-level fields pass through unchanged.
44
36
  const fragmentKey = (() => {
45
37
  if (!name.includes('.'))
46
38
  return name;
@@ -55,6 +47,30 @@ export function MarkdownInput({ name, defaultValue, disabled, placeholder, toolb
55
47
  return null;
56
48
  return `${rowCoords.arrayName}.${rowCoords.rowId}.${parsed.fieldName}`;
57
49
  })();
50
+ // Plug-supplied WYSIWYG markdown editor (typically `@pilotiq/tiptap`'s
51
+ // Tiptap + tiptap-markdown integration). When registered, it replaces
52
+ // BOTH the legacy non-collab textarea path AND the prior collab plain-text
53
+ // path with a single rich editor that handles WYSIWYG editing, markdown
54
+ // serialization, and collab binding (via its own `useCollabRoom()` read)
55
+ // internally. Row leaves pass the composite key as `collabKey` so the
56
+ // editor's collab factory anchors against the stable name while the
57
+ // hidden input + form-state keep using the original dotted path for
58
+ // submit routing.
59
+ if (markdownEditor && fragmentKey !== null) {
60
+ return (_jsx(MarkdownEditorHost, { Editor: markdownEditor, name: name, ...(fragmentKey !== name ? { collabKey: fragmentKey } : {}), defaultValue: defaultValue, disabled: disabled, ...(placeholder !== undefined ? { placeholder } : {}), toolbarButtons: toolbarButtons, ...(minHeight !== undefined ? { minHeight } : {}), ...(maxHeight !== undefined ? { maxHeight } : {}), ...(fileAttachmentsDirectory !== undefined ? { fileAttachmentsDirectory } : {}), ...(fileAttachmentsVisibility !== undefined ? { fileAttachmentsVisibility } : {}), ...(uploadUrl !== undefined ? { uploadUrl } : {}) }));
61
+ }
62
+ // Tiptap-backed plain-text editor for markdown source when collab is on
63
+ // but no WYSIWYG adapter is registered. Same architectural fix as
64
+ // `TextLikeInput`'s `CollabTextField`: y-prosemirror's `RelativePosition`
65
+ // cursor anchoring against a `Y.XmlFragment` replaces whole-string LWW.
66
+ //
67
+ // Tradeoff: the markdown toolbar + Cmd-shortcuts + paste-image upload
68
+ // all operate on a `<textarea>`'s DOM selection — they don't have a
69
+ // way to reach into the Tiptap editor's selection without exposing the
70
+ // editor instance, which would widen the renderer seam. Those features
71
+ // are write-mode-only on the native path; collab users type markdown
72
+ // syntax directly (`**bold**`, `## heading`). The preview tab keeps
73
+ // working since `MarkdownCollabInput` maintains a local mirror.
58
74
  if (room && collabRenderer && fragmentKey !== null) {
59
75
  return (_jsx(MarkdownCollabInput, { Renderer: collabRenderer, fragmentKey: fragmentKey, hiddenInputName: name, defaultValue: defaultValue, disabled: disabled, ...(placeholder !== undefined ? { placeholder } : {}), ...(minHeight !== undefined ? { minHeight } : {}), ...(maxHeight !== undefined ? { maxHeight } : {}) }));
60
76
  }
@@ -316,4 +332,25 @@ function stringValue(v) {
316
332
  return v;
317
333
  return String(v);
318
334
  }
335
+ /**
336
+ * Bridges the registered adapter editor (`@pilotiq/tiptap`'s `MarkdownEditor`)
337
+ * to pilotiq's form-state + form-submit wire shape. The adapter owns the
338
+ * editor surface (WYSIWYG, toolbar, paste-image, optional source / preview
339
+ * tabs) and its own collab binding via `useCollabRoom()`; this host just
340
+ * threads form-state updates and writes the current markdown to a hidden
341
+ * input so submit picks it up unchanged.
342
+ */
343
+ function MarkdownEditorHost({ Editor, name, collabKey, defaultValue, disabled, placeholder, toolbarButtons, minHeight, maxHeight, fileAttachmentsDirectory, fileAttachmentsVisibility, uploadUrl, }) {
344
+ const fs = useFieldState(name);
345
+ const initial = useMemo(() => stringValue(defaultValue), []);
346
+ const [text, setText] = useState(initial);
347
+ const handleChange = (next) => {
348
+ setText(next);
349
+ if (fs.controlled)
350
+ fs.setValue(next);
351
+ fs.triggerLive(next);
352
+ };
353
+ const handleBlur = () => { };
354
+ return (_jsxs(_Fragment, { children: [_jsx("input", { type: "hidden", name: name, value: text, readOnly: true }), _jsx(Editor, { name: collabKey ?? name, defaultValue: initial, disabled: disabled, ...(placeholder !== undefined ? { placeholder } : {}), toolbarButtons: toolbarButtons, ...(minHeight !== undefined ? { minHeight } : {}), ...(maxHeight !== undefined ? { maxHeight } : {}), ...(fileAttachmentsDirectory !== undefined ? { fileAttachmentsDirectory } : {}), ...(fileAttachmentsVisibility !== undefined ? { fileAttachmentsVisibility } : {}), ...(uploadUrl !== undefined ? { uploadUrl } : {}), onChange: handleChange, onBlur: handleBlur })] }));
355
+ }
319
356
  //# sourceMappingURL=MarkdownInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownInput.js","sourceRoot":"","sources":["../../../src/react/fields/MarkdownInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownInput.js","sourceRoot":"","sources":["../../../src/react/fields/MarkdownInput.tsx"],"names":[],"mappings":"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"}
@@ -9,6 +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 { registerMarkdownEditor, getMarkdownEditor, type MarkdownEditor, type MarkdownEditorProps, } from './MarkdownEditorRegistry.js';
12
13
  export { registerFormCollabBinding, getFormCollabBinding, type FormCollabBinding, type FormCollabBindingFactory, type FormCollabBindingFactoryArgs, type RowsEvent, type RowBindingApi, } from './FormCollabBindingRegistry.js';
13
14
  export { registerFieldPresenceComponent, getFieldPresenceComponent, type FieldPresenceProps, } from './FieldPresenceRegistry.js';
14
15
  export { registerFieldFocusReporter, getFieldFocusReporter, type FieldFocusReporter, type FieldFocusEvent, } from './FieldFocusReporterRegistry.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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"}
@@ -9,6 +9,7 @@ export { registerPendingSuggestionApplier, getPendingSuggestionApplier, } from '
9
9
  export { CollabRoomContext, useCollabRoom, } from './CollabRoomContext.js';
10
10
  export { registerCollabExtensions, getCollabExtensions, } from './CollabExtensionFactoryRegistry.js';
11
11
  export { registerCollabTextRenderer, getCollabTextRenderer, } from './CollabTextRendererRegistry.js';
12
+ export { registerMarkdownEditor, getMarkdownEditor, } from './MarkdownEditorRegistry.js';
12
13
  export { registerFormCollabBinding, getFormCollabBinding, } from './FormCollabBindingRegistry.js';
13
14
  export { registerFieldPresenceComponent, getFieldPresenceComponent, } from './FieldPresenceRegistry.js';
14
15
  export { registerFieldFocusReporter, getFieldFocusReporter, } from './FieldFocusReporterRegistry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
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.14.0",
3
+ "version": "0.15.1",
4
4
  "description": "View-based admin panel for RudderJS",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,20 +36,31 @@ export const DEFAULT_MARKDOWN_TOOLBAR: readonly MarkdownToolbarButton[] = [
36
36
  ] as const
37
37
 
38
38
  /**
39
- * Plain-markdown editor. The wire format is identical to `TextareaField`
40
- * a single string under the field name so no new coerce branch is
41
- * needed. The client mounts a `<textarea>` plus a formatting toolbar and
42
- * a live HTML preview pane (rendered via `marked`).
39
+ * Markdown editor. The wire format is a plain markdown string under the
40
+ * field name same shape as `TextareaField`, so no new coerce branch
41
+ * is needed.
42
+ *
43
+ * **Renderer is pluggable.** When `@pilotiq/tiptap` is installed, its
44
+ * `registerTiptap()` hook wires a WYSIWYG editor that parses the
45
+ * markdown into a Tiptap document, exposes a rich-text toolbar, and
46
+ * serializes back to markdown on every change via `tiptap-markdown`.
47
+ * Editor / Source / Preview tabs let users switch between the WYSIWYG
48
+ * view, raw markdown, and a rendered preview without leaving the form.
49
+ * Collab is automatic — when a `<RecordCollabRoom>` is mounted up-tree
50
+ * the editor binds to the shared `Y.XmlFragment` and all peers see live
51
+ * edits, the same way `RichTextField` does. Without `@pilotiq/tiptap`,
52
+ * `MarkdownInput` falls back to a textarea with a formatting toolbar +
53
+ * a preview tab — works fine for panels that don't install the adapter.
43
54
  *
44
55
  * The toolbar is configurable via `toolbarButtons([…])` /
45
- * `disableToolbarButtons([…])`; pass `[]` to ship a chrome-less textarea
46
- * with just a preview tab.
56
+ * `disableToolbarButtons([…])`; pass `[]` to hide the toolbar entirely.
47
57
  *
48
- * `attachFiles` integrates with the panel's `UploadAdapter` (the same one
49
- * `FileUpload` uses) — the toolbar button + paste-image handler upload
50
- * the file via `POST {base}/_uploads` and splice an `![alt](url)` reference
51
- * at the cursor. When no adapter is registered, the button is stripped
52
- * server-side so apps without uploads never see a broken affordance.
58
+ * `attachFiles` integrates with the panel's `UploadAdapter` (the same
59
+ * one `FileUpload` uses) — the toolbar button uploads the file via
60
+ * `POST {base}/_uploads` and inserts an `![alt](url)` image (or a
61
+ * `[name](url)` link for non-images). When no adapter is registered,
62
+ * the button is stripped server-side so apps without uploads never see
63
+ * a broken affordance.
53
64
  *
54
65
  * @example
55
66
  * ```ts
@@ -0,0 +1,38 @@
1
+ import { describe, it, beforeEach } from 'node:test'
2
+ import assert from 'node:assert/strict'
3
+
4
+ import {
5
+ registerMarkdownEditor,
6
+ getMarkdownEditor,
7
+ } from './MarkdownEditorRegistry.js'
8
+
9
+ describe('MarkdownEditorRegistry', () => {
10
+ beforeEach(() => {
11
+ registerMarkdownEditor(null)
12
+ })
13
+
14
+ it('returns null when no editor is registered', () => {
15
+ assert.equal(getMarkdownEditor(), null)
16
+ })
17
+
18
+ it('stores the registered editor component', () => {
19
+ const Component = () => null
20
+ registerMarkdownEditor(Component)
21
+ assert.equal(getMarkdownEditor(), Component)
22
+ })
23
+
24
+ it('clears when called with null', () => {
25
+ const Component = () => null
26
+ registerMarkdownEditor(Component)
27
+ registerMarkdownEditor(null)
28
+ assert.equal(getMarkdownEditor(), null)
29
+ })
30
+
31
+ it('last registration wins', () => {
32
+ const A = () => null
33
+ const B = () => null
34
+ registerMarkdownEditor(A)
35
+ registerMarkdownEditor(B)
36
+ assert.equal(getMarkdownEditor(), B)
37
+ })
38
+ })
@@ -0,0 +1,87 @@
1
+ import type { ComponentType } from 'react'
2
+
3
+ /**
4
+ * Module-level registry slot for the WYSIWYG markdown editor renderer.
5
+ *
6
+ * Wiring posture (mirrors `CollabTextRendererRegistry` /
7
+ * `FormCollabBindingRegistry`):
8
+ * - `@pilotiq/tiptap`'s `registerTiptap(...)` calls `registerMarkdownEditor(...)`
9
+ * once at boot. The registered component closes over `@tiptap/*` +
10
+ * `tiptap-markdown` imports so pilotiq core stays free of any tiptap peer
11
+ * dep — same posture as `CollabTextRendererRegistry`.
12
+ * - `MarkdownInput` checks for the registered component on every mount. When
13
+ * present, it replaces the legacy textarea + manual-toolbar path with a
14
+ * real WYSIWYG editor that serializes to / parses from markdown on the
15
+ * wire. When absent, `MarkdownInput` falls back to today's textarea path so
16
+ * panels that don't install `@pilotiq/tiptap` still get a working editor.
17
+ * - The adapter handles collab itself via the existing `useCollabRoom()` +
18
+ * `getCollabExtensions()` plumbing — when a `<RecordCollabRoom>` is mounted
19
+ * up-tree it binds the editor to the shared `Y.XmlFragment`. Markdown
20
+ * serialization runs locally on every change; only the ProseMirror tree
21
+ * ships over the wire.
22
+ *
23
+ * Wire format on the form remains a plain markdown string under the field
24
+ * `name` — `MarkdownField` doesn't add a new coerce branch. The editor is
25
+ * expected to write the current markdown to a hidden input (or call
26
+ * `onChange` and let the host stamp it) so the form submission round-trip
27
+ * stays identical to the textarea path.
28
+ */
29
+ export interface MarkdownEditorProps {
30
+ /** Field name — drives the hidden form-input name AND the
31
+ * `Y.XmlFragment` selector when collab is active. */
32
+ name: string
33
+ /**
34
+ * Server-rendered default value (raw markdown string). The renderer parses
35
+ * this into the editor's initial document. When collab is active and the
36
+ * room has no persisted state for this field, the renderer also seeds the
37
+ * `Y.XmlFragment` from this value.
38
+ */
39
+ defaultValue: string
40
+ /** Optional placeholder hint shown in the editor when empty. */
41
+ placeholder?: string
42
+ /** Disabled / read-only state. */
43
+ disabled?: boolean
44
+ /** Fired on every editor change with the current serialized markdown. */
45
+ onChange: (markdown: string) => void
46
+ /** Fired on editor blur — host wires this to live-onBlur trigger semantics. */
47
+ onBlur?: () => void
48
+
49
+ /**
50
+ * Configured toolbar buttons. The adapter is free to map these onto its own
51
+ * command set; unknown / unsupported ids are skipped. Empty array hides
52
+ * the toolbar entirely. See `MarkdownField.toolbarButtons()`.
53
+ */
54
+ toolbarButtons: ReadonlyArray<string>
55
+ /** CSS height for the editor's collapsed state. */
56
+ minHeight?: string
57
+ /** CSS cap on grown height. */
58
+ maxHeight?: string
59
+ /** Sub-directory hint forwarded to the upload adapter on paste-image. */
60
+ fileAttachmentsDirectory?: string
61
+ /** Adapter-defined visibility hint (`'public'` or `'private'`). */
62
+ fileAttachmentsVisibility?: string
63
+ /** Panel upload route — stamped by `pageData.uploadCtx` only when an
64
+ * `UploadAdapter` is registered. Absent → adapter hides upload affordances. */
65
+ uploadUrl?: string
66
+ }
67
+
68
+ export type MarkdownEditor = ComponentType<MarkdownEditorProps>
69
+
70
+ let _editor: MarkdownEditor | null = null
71
+
72
+ /**
73
+ * Register the WYSIWYG markdown editor component. Called once at boot by
74
+ * `@pilotiq/tiptap`'s `registerTiptap()` (or directly by an app that imports
75
+ * the renderer). Calling with `null` clears the registry — useful for tests.
76
+ *
77
+ * When no editor is registered, `MarkdownInput` falls back to the textarea +
78
+ * manual-toolbar path that's worked since `MarkdownField` shipped.
79
+ */
80
+ export function registerMarkdownEditor(component: MarkdownEditor | null): void {
81
+ _editor = component
82
+ }
83
+
84
+ /** Returns the registered editor component, or `null` when no adapter is installed. */
85
+ export function getMarkdownEditor(): MarkdownEditor | null {
86
+ return _editor
87
+ }
@@ -1,5 +1,6 @@
1
1
  import React, { useEffect, useMemo, useRef, useState } from 'react'
2
2
  import { marked } from 'marked'
3
+ import type { MarkdownEditor as MarkdownEditorComponent } from '../MarkdownEditorRegistry.js'
3
4
  import {
4
5
  BoldIcon, ItalicIcon, StrikethroughIcon, LinkIcon,
5
6
  HeadingIcon, ListIcon, ListOrderedIcon, QuoteIcon,
@@ -8,6 +9,7 @@ import {
8
9
  import { useFieldState } from '../FormStateContext.js'
9
10
  import { useCollabRoom } from '../CollabRoomContext.js'
10
11
  import { getCollabTextRenderer, type CollabTextRenderer } from '../CollabTextRendererRegistry.js'
12
+ import { getMarkdownEditor } from '../MarkdownEditorRegistry.js'
11
13
  import { useRowCoords } from '../RowCoordsContext.js'
12
14
  import { parseRowFieldPath } from '../formStateHelpers.js'
13
15
  import { useToast } from '../Toaster.js'
@@ -51,22 +53,13 @@ export function MarkdownInput({
51
53
  const fs = useFieldState(name)
52
54
  const room = useCollabRoom()
53
55
  const collabRenderer = getCollabTextRenderer()
56
+ const markdownEditor = getMarkdownEditor()
54
57
  const rowCoords = useRowCoords()
55
58
 
56
- // Tiptap-backed plain-text editor for markdown source when collab is on.
57
- // Same architectural fix as `TextLikeInput`'s `CollabTextField`:
58
- // y-prosemirror's `RelativePosition` cursor anchoring against a
59
- // `Y.XmlFragment` replaces whole-string LWW. Row leaves get the
60
- // composite-key transform via `useRowCoords()` + `parseRowFieldPath`
61
- // (same shape as TextLikeInput) so the fragment survives row reorders.
62
- //
63
- // Tradeoff: the markdown toolbar + Cmd-shortcuts + paste-image upload
64
- // all operate on a `<textarea>`'s DOM selection — they don't have a
65
- // way to reach into the Tiptap editor's selection without exposing the
66
- // editor instance, which would widen the renderer seam. Those features
67
- // are write-mode-only on the native path; collab users type markdown
68
- // syntax directly (`**bold**`, `## heading`). The preview tab keeps
69
- // working since `MarkdownCollabInput` maintains a local mirror.
59
+ // Row-leaf fields ride a composite `arrayName.rowId.fieldName` key for
60
+ // collab anchoring so the Y.XmlFragment survives row reorders (the raw
61
+ // dotted `items.<index>.body` would follow the wrong row after a swap).
62
+ // Top-level fields pass through unchanged.
70
63
  const fragmentKey: string | null = (() => {
71
64
  if (!name.includes('.')) return name
72
65
  if (!rowCoords) return null
@@ -76,6 +69,47 @@ export function MarkdownInput({
76
69
  if (parsed.index !== rowCoords.rowIndex) return null
77
70
  return `${rowCoords.arrayName}.${rowCoords.rowId}.${parsed.fieldName}`
78
71
  })()
72
+
73
+ // Plug-supplied WYSIWYG markdown editor (typically `@pilotiq/tiptap`'s
74
+ // Tiptap + tiptap-markdown integration). When registered, it replaces
75
+ // BOTH the legacy non-collab textarea path AND the prior collab plain-text
76
+ // path with a single rich editor that handles WYSIWYG editing, markdown
77
+ // serialization, and collab binding (via its own `useCollabRoom()` read)
78
+ // internally. Row leaves pass the composite key as `collabKey` so the
79
+ // editor's collab factory anchors against the stable name while the
80
+ // hidden input + form-state keep using the original dotted path for
81
+ // submit routing.
82
+ if (markdownEditor && fragmentKey !== null) {
83
+ return (
84
+ <MarkdownEditorHost
85
+ Editor={markdownEditor}
86
+ name={name}
87
+ {...(fragmentKey !== name ? { collabKey: fragmentKey } : {})}
88
+ defaultValue={defaultValue}
89
+ disabled={disabled}
90
+ {...(placeholder !== undefined ? { placeholder } : {})}
91
+ toolbarButtons={toolbarButtons}
92
+ {...(minHeight !== undefined ? { minHeight } : {})}
93
+ {...(maxHeight !== undefined ? { maxHeight } : {})}
94
+ {...(fileAttachmentsDirectory !== undefined ? { fileAttachmentsDirectory } : {})}
95
+ {...(fileAttachmentsVisibility !== undefined ? { fileAttachmentsVisibility } : {})}
96
+ {...(uploadUrl !== undefined ? { uploadUrl } : {})}
97
+ />
98
+ )
99
+ }
100
+
101
+ // Tiptap-backed plain-text editor for markdown source when collab is on
102
+ // but no WYSIWYG adapter is registered. Same architectural fix as
103
+ // `TextLikeInput`'s `CollabTextField`: y-prosemirror's `RelativePosition`
104
+ // cursor anchoring against a `Y.XmlFragment` replaces whole-string LWW.
105
+ //
106
+ // Tradeoff: the markdown toolbar + Cmd-shortcuts + paste-image upload
107
+ // all operate on a `<textarea>`'s DOM selection — they don't have a
108
+ // way to reach into the Tiptap editor's selection without exposing the
109
+ // editor instance, which would widen the renderer seam. Those features
110
+ // are write-mode-only on the native path; collab users type markdown
111
+ // syntax directly (`**bold**`, `## heading`). The preview tab keeps
112
+ // working since `MarkdownCollabInput` maintains a local mirror.
79
113
  if (room && collabRenderer && fragmentKey !== null) {
80
114
  return (
81
115
  <MarkdownCollabInput
@@ -457,3 +491,65 @@ function stringValue(v: unknown): string {
457
491
  if (typeof v === 'string') return v
458
492
  return String(v)
459
493
  }
494
+
495
+ /**
496
+ * Bridges the registered adapter editor (`@pilotiq/tiptap`'s `MarkdownEditor`)
497
+ * to pilotiq's form-state + form-submit wire shape. The adapter owns the
498
+ * editor surface (WYSIWYG, toolbar, paste-image, optional source / preview
499
+ * tabs) and its own collab binding via `useCollabRoom()`; this host just
500
+ * threads form-state updates and writes the current markdown to a hidden
501
+ * input so submit picks it up unchanged.
502
+ */
503
+ function MarkdownEditorHost({
504
+ Editor, name, collabKey, defaultValue, disabled, placeholder,
505
+ toolbarButtons, minHeight, maxHeight,
506
+ fileAttachmentsDirectory, fileAttachmentsVisibility, uploadUrl,
507
+ }: {
508
+ Editor: MarkdownEditorComponent
509
+ name: string
510
+ // Distinct from `name` only inside Repeater/Builder rows: the dotted
511
+ // form-input name (`items.0.body`) is unstable across reorders, so the
512
+ // editor's collab factory needs a row-id-anchored key. Defaults to
513
+ // `name` when unset (top-level fields).
514
+ collabKey?: string
515
+ defaultValue: unknown
516
+ disabled: boolean
517
+ placeholder?: string
518
+ toolbarButtons: ReadonlyArray<string>
519
+ minHeight?: string
520
+ maxHeight?: string
521
+ fileAttachmentsDirectory?: string
522
+ fileAttachmentsVisibility?: string
523
+ uploadUrl?: string
524
+ }): React.ReactElement {
525
+ const fs = useFieldState(name)
526
+ const initial = useMemo(() => stringValue(defaultValue), [])
527
+ const [text, setText] = useState<string>(initial)
528
+
529
+ const handleChange = (next: string): void => {
530
+ setText(next)
531
+ if (fs.controlled) fs.setValue(next)
532
+ fs.triggerLive(next)
533
+ }
534
+ const handleBlur = (): void => { /* live trigger already ran on change */ }
535
+
536
+ return (
537
+ <>
538
+ <input type="hidden" name={name} value={text} readOnly />
539
+ <Editor
540
+ name={collabKey ?? name}
541
+ defaultValue={initial}
542
+ disabled={disabled}
543
+ {...(placeholder !== undefined ? { placeholder } : {})}
544
+ toolbarButtons={toolbarButtons}
545
+ {...(minHeight !== undefined ? { minHeight } : {})}
546
+ {...(maxHeight !== undefined ? { maxHeight } : {})}
547
+ {...(fileAttachmentsDirectory !== undefined ? { fileAttachmentsDirectory } : {})}
548
+ {...(fileAttachmentsVisibility !== undefined ? { fileAttachmentsVisibility } : {})}
549
+ {...(uploadUrl !== undefined ? { uploadUrl } : {})}
550
+ onChange={handleChange}
551
+ onBlur={handleBlur}
552
+ />
553
+ </>
554
+ )
555
+ }
@@ -49,6 +49,12 @@ export {
49
49
  type CollabTextRenderer,
50
50
  type CollabTextRendererProps,
51
51
  } from './CollabTextRendererRegistry.js'
52
+ export {
53
+ registerMarkdownEditor,
54
+ getMarkdownEditor,
55
+ type MarkdownEditor,
56
+ type MarkdownEditorProps,
57
+ } from './MarkdownEditorRegistry.js'
52
58
  export {
53
59
  registerFormCollabBinding,
54
60
  getFormCollabBinding,