@pilotiq/tiptap 3.1.1 → 3.2.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.
- package/dist/PlainTextEditor.d.ts +91 -0
- package/dist/PlainTextEditor.d.ts.map +1 -0
- package/dist/PlainTextEditor.js +157 -0
- package/dist/PlainTextEditor.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/react/CollabTextRenderer.d.ts +26 -0
- package/dist/react/CollabTextRenderer.d.ts.map +1 -0
- package/dist/react/CollabTextRenderer.js +149 -0
- package/dist/react/CollabTextRenderer.js.map +1 -0
- package/dist/react/TiptapEditor.d.ts.map +1 -1
- package/dist/react/TiptapEditor.js +134 -5
- package/dist/react/TiptapEditor.js.map +1 -1
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +8 -1
- package/dist/register.js.map +1 -1
- package/package.json +3 -2
- package/src/PlainTextEditor.test.ts +158 -0
- package/src/PlainTextEditor.ts +229 -0
- package/src/index.ts +6 -0
- package/src/react/CollabTextRenderer.tsx +165 -0
- package/src/react/TiptapEditor.tsx +155 -7
- package/src/register.ts +8 -1
|
@@ -14,6 +14,7 @@ import { Table, TableRow, TableCell, TableHeader } from '@tiptap/extension-table
|
|
|
14
14
|
import { Details, DetailsSummary, DetailsContent } from '@tiptap/extension-details';
|
|
15
15
|
import { Grid, GridColumn } from '../extensions/GridExtension.js';
|
|
16
16
|
import { Popover } from '@base-ui/react/popover';
|
|
17
|
+
import { useCollabRoom, getCollabExtensions } from '@pilotiq/pilotiq/react';
|
|
17
18
|
import { useAiSuggestionBridge } from './useAiSuggestionBridge.js';
|
|
18
19
|
import { BlockNodeExtension } from '../extensions/BlockNodeExtension.js';
|
|
19
20
|
import { SlashCommandExtension, } from '../extensions/SlashCommandExtension.js';
|
|
@@ -54,12 +55,34 @@ export function TiptapEditor(props) {
|
|
|
54
55
|
if (!mounted) {
|
|
55
56
|
const storage = props.el['storage'] ?? 'json';
|
|
56
57
|
const initialValue = serializeForHidden(props.defaultValue, storage);
|
|
57
|
-
return (_jsxs("div", { className: "flex flex-col
|
|
58
|
+
return (_jsxs("div", { className: "flex flex-col", children: [_jsx("input", { type: "hidden", name: props.name, value: initialValue }), _jsx("div", { className: "prose prose-sm max-w-none min-h-[180px] rounded-md border border-input bg-transparent px-10 py-3 text-sm text-muted-foreground", children: props.placeholder ?? 'Start writing…' })] }));
|
|
58
59
|
}
|
|
59
|
-
return _jsx(
|
|
60
|
+
return _jsx(CollabAwareTiptap, { ...props });
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Bridges pilotiq's open-core `CollabRoomContext` + `CollabExtensionFactory`
|
|
64
|
+
* registry into the Tiptap renderer. When `@pilotiq-pro/collab` is wired
|
|
65
|
+
* AND a `<RecordCollabRoom>` is mounted up-tree, the room flips non-null;
|
|
66
|
+
* keying `ClientEditor` on that toggle remounts the editor cleanly so the
|
|
67
|
+
* `Collaboration` extension can install (Tiptap can't swap it at runtime).
|
|
68
|
+
*
|
|
69
|
+
* No-op shell when collab isn't installed — `room` stays `null`,
|
|
70
|
+
* `getCollabExtensions()` returns `null`, and `ClientEditor` runs its
|
|
71
|
+
* plain Tiptap path with the same shape as before.
|
|
72
|
+
*/
|
|
73
|
+
function CollabAwareTiptap(props) {
|
|
74
|
+
const room = useCollabRoom();
|
|
75
|
+
const factory = getCollabExtensions();
|
|
76
|
+
// Per-field opt-out — `RichTextField.collab(false)` stamps `meta.collab`
|
|
77
|
+
// explicitly false, overriding the panel-wide auto-on default. Useful for
|
|
78
|
+
// fields that should stay device-local (private notes, draft scratch
|
|
79
|
+
// space, etc.) inside an otherwise collab-on form.
|
|
80
|
+
const fieldCollab = props.el['collab'];
|
|
81
|
+
const collabActive = !!(room && factory) && fieldCollab !== false;
|
|
82
|
+
return (_jsx(ClientEditor, { ...props, room: collabActive ? room : null, factory: collabActive ? factory : null, collabActive: collabActive }, collabActive ? 'collab' : 'local'));
|
|
60
83
|
}
|
|
61
84
|
function ClientEditor(props) {
|
|
62
|
-
const { el, name, defaultValue, placeholder, disabled } = props;
|
|
85
|
+
const { el, name, defaultValue, placeholder, disabled, room, factory, collabActive } = props;
|
|
63
86
|
const blocks = el['blocks'] ?? [];
|
|
64
87
|
const slashEnabled = el['slashCommand'] ?? true;
|
|
65
88
|
const toolbarGroups = el['toolbarGroups'] ?? null;
|
|
@@ -139,13 +162,35 @@ function ClientEditor(props) {
|
|
|
139
162
|
// without re-creating the callback on every render (which would force
|
|
140
163
|
// the extension config to re-evaluate, triggering a full editor reset).
|
|
141
164
|
const editorRef = useRef(null);
|
|
165
|
+
// Resolve the collab-attached extensions once per editor build.
|
|
166
|
+
// `Collaboration` is constructed eagerly here (during `useEditor`'s
|
|
167
|
+
// first call); the keyed remount above guarantees we never swap it.
|
|
168
|
+
const collabExtensions = useMemo(() => {
|
|
169
|
+
if (!collabActive || !room || !factory)
|
|
170
|
+
return [];
|
|
171
|
+
return factory({
|
|
172
|
+
ydoc: room.ydoc,
|
|
173
|
+
provider: room.provider,
|
|
174
|
+
fieldName: name,
|
|
175
|
+
...(room.user ? { user: room.user } : {}),
|
|
176
|
+
});
|
|
177
|
+
// Intentionally deps-stable across renders within the same collab
|
|
178
|
+
// mount — the keyed wrapper above remounts us when collab toggles.
|
|
179
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
180
|
+
}, [collabActive]);
|
|
142
181
|
const editor = useEditor({
|
|
143
182
|
editable: !disabled,
|
|
144
183
|
extensions: [
|
|
145
184
|
// StarterKit 3.22+ ships Link AND Underline; configure through the
|
|
146
185
|
// kit rather than re-adding (else "Duplicate extension names" warns).
|
|
186
|
+
// `Collaboration` brings its own Yjs-backed history — disable
|
|
187
|
+
// StarterKit's local `undoRedo` extension when collab is active
|
|
188
|
+
// (renamed from `history` in Tiptap v3.x; passing `history: false`
|
|
189
|
+
// silently no-ops and produces a runtime "not compatible with
|
|
190
|
+
// @tiptap/extension-undo-redo" warning).
|
|
147
191
|
StarterKit.configure({
|
|
148
192
|
link: { openOnClick: false, autolink: true },
|
|
193
|
+
...(collabActive ? { undoRedo: false } : {}),
|
|
149
194
|
}),
|
|
150
195
|
Subscript,
|
|
151
196
|
Superscript,
|
|
@@ -226,8 +271,21 @@ function ClientEditor(props) {
|
|
|
226
271
|
// inline strikethrough + Approve/Reject chip widgets. Idle until the
|
|
227
272
|
// host calls `editor.commands.addAiSuggestion(...)`.
|
|
228
273
|
AiSuggestionExtension,
|
|
274
|
+
// Realtime-collab extensions (Yjs `Collaboration` + cursor) — empty
|
|
275
|
+
// when no `<RecordCollabRoom>` is mounted up-tree, or when no plugin
|
|
276
|
+
// registered a factory via `registerCollabExtensions`.
|
|
277
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
278
|
+
...collabExtensions,
|
|
229
279
|
],
|
|
230
|
-
content
|
|
280
|
+
// Collaboration takes ownership of the document — `content` would race
|
|
281
|
+
// the Y.XmlFragment sync. Seed instead via the post-`synced` effect
|
|
282
|
+
// below so existing DB content lands once and only once. The non-collab
|
|
283
|
+
// branch also gates on `isTiptapShapedContent` so leftover content from
|
|
284
|
+
// a previous editor (e.g. Lexical's `{ root: {...} }`) doesn't crash
|
|
285
|
+
// the schema-strict node parser on first paint.
|
|
286
|
+
content: collabActive
|
|
287
|
+
? ''
|
|
288
|
+
: (initialContent !== undefined && isTiptapShapedContent(initialContent) ? initialContent : ''),
|
|
231
289
|
onUpdate: ({ editor: ed }) => {
|
|
232
290
|
// Debounce serialization — every keystroke fires onUpdate.
|
|
233
291
|
if (debounceRef.current)
|
|
@@ -309,6 +367,56 @@ function ClientEditor(props) {
|
|
|
309
367
|
// every render. Re-creation would force the editor to rebuild from
|
|
310
368
|
// scratch on every keystroke.
|
|
311
369
|
useEffect(() => { editorRef.current = editor ?? null; }, [editor]);
|
|
370
|
+
// First-load seed when collab is active. Collaboration starts the
|
|
371
|
+
// editor empty regardless of `defaultValue`; once the WebsocketProvider
|
|
372
|
+
// syncs the room state from the server we check whether the field's
|
|
373
|
+
// Y.XmlFragment was ever written. Empty + we have an initial value =
|
|
374
|
+
// first session for this record — push the DB content into the ydoc
|
|
375
|
+
// exactly once. Non-empty = the room already has authoritative state;
|
|
376
|
+
// don't overwrite.
|
|
377
|
+
useEffect(() => {
|
|
378
|
+
if (!editor || !collabActive || !room)
|
|
379
|
+
return;
|
|
380
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
381
|
+
const provider = room.provider;
|
|
382
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
383
|
+
const ydoc = room.ydoc;
|
|
384
|
+
if (!provider || !ydoc)
|
|
385
|
+
return;
|
|
386
|
+
const trySeed = () => {
|
|
387
|
+
try {
|
|
388
|
+
const fragment = ydoc.getXmlFragment(name);
|
|
389
|
+
if (fragment &&
|
|
390
|
+
fragment.length === 0 &&
|
|
391
|
+
initialContent !== undefined &&
|
|
392
|
+
initialContent !== null &&
|
|
393
|
+
initialContent !== '' &&
|
|
394
|
+
isTiptapShapedContent(initialContent)) {
|
|
395
|
+
// setContent dispatches a Tiptap transaction; the bound
|
|
396
|
+
// y-prosemirror binding (inside Collaboration) mirrors it
|
|
397
|
+
// into the fragment so every peer sees the seeded state.
|
|
398
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
399
|
+
editor.commands.setContent(initialContent);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
catch { /* ignore — seed is best-effort */ }
|
|
403
|
+
};
|
|
404
|
+
if (provider.synced) {
|
|
405
|
+
trySeed();
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
provider.once('synced', trySeed);
|
|
409
|
+
return () => {
|
|
410
|
+
try {
|
|
411
|
+
provider.off?.('synced', trySeed);
|
|
412
|
+
}
|
|
413
|
+
catch { /* ignore */ }
|
|
414
|
+
};
|
|
415
|
+
// `initialContent` resolves once per mount (parsed from defaultValue
|
|
416
|
+
// at the top of this body). The keyed remount above guarantees we
|
|
417
|
+
// get a fresh closure per collab session.
|
|
418
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
419
|
+
}, [editor, collabActive, room, name]);
|
|
312
420
|
// Cross-package suggestion bridge — sync the host's
|
|
313
421
|
// `<PendingSuggestionsContext>` queue with the editor's `AiSuggestion`
|
|
314
422
|
// extension. No-op when no provider is mounted (default no-op context).
|
|
@@ -316,7 +424,7 @@ function ClientEditor(props) {
|
|
|
316
424
|
// Re-render the toolbar when the selection / marks change so active-state
|
|
317
425
|
// booleans stay fresh.
|
|
318
426
|
const tick = useEditorTick(editor);
|
|
319
|
-
return (_jsxs("div", { className: "relative flex flex-col
|
|
427
|
+
return (_jsxs("div", { className: "relative flex flex-col", children: [_jsx("input", { type: "hidden", name: name, value: serialized }), editor && toolbarGroups && toolbarGroups.length > 0 && (_jsx(Toolbar, { editor: editor, groups: toolbarGroups, tick: tick, textColors: textColors, customTextColors: customTextColors, highlightColors: highlightColors, onAttachOpenChange: setAttachOpen })), editor && (_jsx(AttachFilesDialog, { open: attachOpen, onOpenChange: setAttachOpen, editor: editor, fieldName: name, ...(uploadUrl !== undefined ? { uploadUrl } : {}), ...(acceptedFileTypes !== undefined ? { acceptedFileTypes } : {}), ...(maxAttachmentSize !== undefined ? { maxFileSize: maxAttachmentSize } : {}), ...(attachmentDir !== undefined ? { directory: attachmentDir } : {}), ...(attachmentVis !== undefined ? { visibility: attachmentVis } : {}) })), _jsx(EditorContent, { editor: editor }), editor && floatingEnabled && _jsx(FloatingToolbar, { editor: editor }), editor && _jsx(TableFloatingToolbar, { editor: editor }), _jsx(SlashPopover, { state: slashState, keyHandlerRef: slashKeyRef }), _jsx(MentionPopover, { state: mentionState, keyHandlerRef: mentionKeyRef }), editor && selectedBlock && (_jsx(BlockSidePanel, { editor: editor, initialPos: selectedBlock.pos, blockType: selectedBlock.blockType, blocks: blocks, onClose: closeBlockPanel }, `${selectedBlock.pos}:${selectedBlock.blockType}`))] }));
|
|
320
428
|
}
|
|
321
429
|
/**
|
|
322
430
|
* Cursor-anchored popover for the mention menu. Same Floating-UI / virtual-
|
|
@@ -366,6 +474,27 @@ function SlashPopover({ state, keyHandlerRef, }) {
|
|
|
366
474
|
// document-level listener in TiptapEditor, never via DOM focus.
|
|
367
475
|
initialFocus: false, finalFocus: false, tabIndex: -1, className: "origin-(--transform-origin) rounded-md border bg-popover text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", children: state && (_jsx(SlashMenu, { items: state.items, command: state.command, keyHandlerRef: keyHandlerRef })) }) }) }) }));
|
|
368
476
|
}
|
|
477
|
+
/**
|
|
478
|
+
* Loose shape check — returns `true` only when the value looks like a Tiptap
|
|
479
|
+
* (ProseMirror JSON) document: either an HTML string or an object that opens
|
|
480
|
+
* with `{ type: 'doc' }` at the top level. Used by the collab seed effect to
|
|
481
|
+
* skip leftover content from previous editors (notably Lexical's
|
|
482
|
+
* `{ root: {...} }` envelope) without crashing Tiptap's strict node parser.
|
|
483
|
+
*
|
|
484
|
+
* The conservative posture: if we can't recognise the shape we don't seed.
|
|
485
|
+
* Worst case the user sees an empty editor on the first collab session and
|
|
486
|
+
* types fresh — better than the editor showing nothing because a parse threw.
|
|
487
|
+
*/
|
|
488
|
+
function isTiptapShapedContent(raw) {
|
|
489
|
+
if (typeof raw === 'string')
|
|
490
|
+
return true; // HTML or raw text — Tiptap parses both.
|
|
491
|
+
if (raw === null || typeof raw !== 'object')
|
|
492
|
+
return false;
|
|
493
|
+
const obj = raw;
|
|
494
|
+
if (obj.root !== undefined)
|
|
495
|
+
return false; // Lexical state envelope — never Tiptap.
|
|
496
|
+
return obj.type === 'doc'; // ProseMirror JSON always opens with `type:'doc'`.
|
|
497
|
+
}
|
|
369
498
|
function parseInitialContent(raw) {
|
|
370
499
|
if (raw === undefined || raw === null || raw === '')
|
|
371
500
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TiptapEditor.js","sourceRoot":"","sources":["../../src/react/TiptapEditor.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TiptapEditor.js","sourceRoot":"","sources":["../../src/react/TiptapEditor.tsx"],"names":[],"mappings":"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"}
|
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,IAAI,IAAI,CASrC"}
|
package/dist/register.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { registerFieldRenderer } from '@pilotiq/pilotiq/react';
|
|
1
|
+
import { registerFieldRenderer, registerCollabTextRenderer } from '@pilotiq/pilotiq/react';
|
|
2
2
|
import { registerRichTextRenderer } from '@pilotiq/pilotiq/richtext';
|
|
3
3
|
import { TiptapEditor } from './react/TiptapEditor.js';
|
|
4
|
+
import { CollabTextRenderer } from './react/CollabTextRenderer.js';
|
|
4
5
|
import { renderRichTextToHtml, isRichTextValue } from './render.js';
|
|
5
6
|
/**
|
|
6
7
|
* Register the Tiptap editor as the pilotiq renderer for `fieldType: 'richtext'`.
|
|
@@ -23,5 +24,11 @@ import { renderRichTextToHtml, isRichTextValue } from './render.js';
|
|
|
23
24
|
export function registerTiptap() {
|
|
24
25
|
registerFieldRenderer('richtext', TiptapEditor);
|
|
25
26
|
registerRichTextRenderer(renderRichTextToHtml, isRichTextValue);
|
|
27
|
+
// Phase B — opt every plain-text field in the panel into y-prosemirror
|
|
28
|
+
// backing when collab is on. `TextLikeInput` checks this registry; if it's
|
|
29
|
+
// populated AND a `<RecordCollabRoom>` is up-tree AND the field hasn't opted
|
|
30
|
+
// out via `.collab(false)`, the renderer mounts `CollabTextRenderer`
|
|
31
|
+
// instead of the legacy `Y.Text` + `computeDelta` + `preserveCursor` path.
|
|
32
|
+
registerCollabTextRenderer(CollabTextRenderer);
|
|
26
33
|
}
|
|
27
34
|
//# sourceMappingURL=register.js.map
|
package/dist/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEnE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,cAAc;IAC5B,qBAAqB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IAC/C,wBAAwB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAA;IAC/D,uEAAuE;IACvE,2EAA2E;IAC3E,6EAA6E;IAC7E,qEAAqE;IACrE,2EAA2E;IAC3E,0BAA0B,CAAC,kBAAkB,CAAC,CAAA;AAChD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pilotiq/tiptap",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "Tiptap rich-text editor adapter for @pilotiq/pilotiq — slash menu, draggable blocks, custom-block API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -79,13 +79,14 @@
|
|
|
79
79
|
"react": "^19",
|
|
80
80
|
"react-dom": "^19",
|
|
81
81
|
"typescript": "^5",
|
|
82
|
-
"@pilotiq/pilotiq": "^0.
|
|
82
|
+
"@pilotiq/pilotiq": "^0.12.0"
|
|
83
83
|
},
|
|
84
84
|
"author": "Suleiman Shahbari",
|
|
85
85
|
"scripts": {
|
|
86
86
|
"build": "tsc -p tsconfig.build.json",
|
|
87
87
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
88
88
|
"typecheck": "tsc --noEmit",
|
|
89
|
+
"lint": "eslint src",
|
|
89
90
|
"clean": "rm -rf dist",
|
|
90
91
|
"test": "tsc -p tsconfig.test.json && node --test \"dist-test/**/*.test.js\"; EXIT=$?; rm -rf dist-test; exit $EXIT"
|
|
91
92
|
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { describe, it } from 'node:test'
|
|
2
|
+
import assert from 'node:assert/strict'
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
createPlainTextEditor,
|
|
6
|
+
plainTextToDoc,
|
|
7
|
+
type PlainTextEditorOptions,
|
|
8
|
+
} from './PlainTextEditor.js'
|
|
9
|
+
|
|
10
|
+
describe('plainTextToDoc — single-line', () => {
|
|
11
|
+
it('empty string yields one empty paragraph', () => {
|
|
12
|
+
assert.deepEqual(plainTextToDoc('', false), {
|
|
13
|
+
type: 'doc',
|
|
14
|
+
content: [{ type: 'paragraph' }],
|
|
15
|
+
})
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
it('wraps a single run of text in one paragraph', () => {
|
|
19
|
+
assert.deepEqual(plainTextToDoc('hello', false), {
|
|
20
|
+
type: 'doc',
|
|
21
|
+
content: [{ type: 'paragraph', content: [{ type: 'text', text: 'hello' }] }],
|
|
22
|
+
})
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
it('strips embedded newlines (LF and CRLF) — single-line schema permits one paragraph only', () => {
|
|
26
|
+
assert.deepEqual(plainTextToDoc('a\nb', false), {
|
|
27
|
+
type: 'doc',
|
|
28
|
+
content: [{ type: 'paragraph', content: [{ type: 'text', text: 'ab' }] }],
|
|
29
|
+
})
|
|
30
|
+
assert.deepEqual(plainTextToDoc('a\r\nb', false), {
|
|
31
|
+
type: 'doc',
|
|
32
|
+
content: [{ type: 'paragraph', content: [{ type: 'text', text: 'ab' }] }],
|
|
33
|
+
})
|
|
34
|
+
})
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
describe('plainTextToDoc — multi-line', () => {
|
|
38
|
+
it('empty string yields one empty paragraph', () => {
|
|
39
|
+
assert.deepEqual(plainTextToDoc('', true), {
|
|
40
|
+
type: 'doc',
|
|
41
|
+
content: [{ type: 'paragraph' }],
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
it('splits LF-separated lines into separate paragraphs', () => {
|
|
46
|
+
assert.deepEqual(plainTextToDoc('a\nb', true), {
|
|
47
|
+
type: 'doc',
|
|
48
|
+
content: [
|
|
49
|
+
{ type: 'paragraph', content: [{ type: 'text', text: 'a' }] },
|
|
50
|
+
{ type: 'paragraph', content: [{ type: 'text', text: 'b' }] },
|
|
51
|
+
],
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
it('preserves empty lines as empty paragraphs', () => {
|
|
56
|
+
assert.deepEqual(plainTextToDoc('a\n\nb', true), {
|
|
57
|
+
type: 'doc',
|
|
58
|
+
content: [
|
|
59
|
+
{ type: 'paragraph', content: [{ type: 'text', text: 'a' }] },
|
|
60
|
+
{ type: 'paragraph' },
|
|
61
|
+
{ type: 'paragraph', content: [{ type: 'text', text: 'b' }] },
|
|
62
|
+
],
|
|
63
|
+
})
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
it('normalises CRLF to single paragraph splits', () => {
|
|
67
|
+
assert.deepEqual(plainTextToDoc('a\r\nb', true), {
|
|
68
|
+
type: 'doc',
|
|
69
|
+
content: [
|
|
70
|
+
{ type: 'paragraph', content: [{ type: 'text', text: 'a' }] },
|
|
71
|
+
{ type: 'paragraph', content: [{ type: 'text', text: 'b' }] },
|
|
72
|
+
],
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
describe('createPlainTextEditor — config shape', () => {
|
|
78
|
+
function names(extensions: ReadonlyArray<{ name: string }>): string[] {
|
|
79
|
+
return extensions.map((e) => e.name)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
it('default config: single-line, editable, schema + single-line keymap only', () => {
|
|
83
|
+
const cfg = createPlainTextEditor()
|
|
84
|
+
assert.equal(cfg.editable, true)
|
|
85
|
+
assert.equal(cfg.content, '')
|
|
86
|
+
const exts = (cfg.extensions ?? []) as Array<{ name: string }>
|
|
87
|
+
assert.deepEqual(names(exts), ['doc', 'paragraph', 'text', 'plainTextSingleLineKeymap'])
|
|
88
|
+
assert.equal(cfg.editorProps, undefined)
|
|
89
|
+
assert.equal(cfg.onUpdate, undefined)
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
it('multiline mode drops the single-line keymap', () => {
|
|
93
|
+
const cfg = createPlainTextEditor({ multiline: true })
|
|
94
|
+
const exts = (cfg.extensions ?? []) as Array<{ name: string }>
|
|
95
|
+
assert.deepEqual(names(exts), ['doc', 'paragraph', 'text'])
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
it('placeholder appends the Placeholder extension', () => {
|
|
99
|
+
const cfg = createPlainTextEditor({ placeholder: 'Type here…' })
|
|
100
|
+
const exts = (cfg.extensions ?? []) as Array<{ name: string }>
|
|
101
|
+
assert.ok(exts.some((e) => e.name === 'placeholder'),
|
|
102
|
+
`expected placeholder extension, got ${names(exts).join(',')}`)
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
it('caller-supplied extensions land after schema + behavior', () => {
|
|
106
|
+
const fakeExt = { name: 'fake-collab' } as unknown as Parameters<typeof createPlainTextEditor>[0] extends infer T
|
|
107
|
+
? T extends { extensions?: Array<infer E> } ? E : never : never
|
|
108
|
+
const cfg = createPlainTextEditor({ extensions: [fakeExt] })
|
|
109
|
+
const exts = (cfg.extensions ?? []) as Array<{ name: string }>
|
|
110
|
+
assert.equal(exts[exts.length - 1]?.name, 'fake-collab')
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
it('editable can be turned off', () => {
|
|
114
|
+
const cfg = createPlainTextEditor({ editable: false })
|
|
115
|
+
assert.equal(cfg.editable, false)
|
|
116
|
+
})
|
|
117
|
+
|
|
118
|
+
it('seeds content as a doc JSON when text provided (single-line)', () => {
|
|
119
|
+
const cfg = createPlainTextEditor({ content: 'hello' })
|
|
120
|
+
assert.deepEqual(cfg.content, {
|
|
121
|
+
type: 'doc',
|
|
122
|
+
content: [{ type: 'paragraph', content: [{ type: 'text', text: 'hello' }] }],
|
|
123
|
+
})
|
|
124
|
+
})
|
|
125
|
+
|
|
126
|
+
it('seeds content as multi-paragraph doc JSON when multiline + text provided', () => {
|
|
127
|
+
const cfg = createPlainTextEditor({ multiline: true, content: 'a\nb' })
|
|
128
|
+
assert.deepEqual(cfg.content, {
|
|
129
|
+
type: 'doc',
|
|
130
|
+
content: [
|
|
131
|
+
{ type: 'paragraph', content: [{ type: 'text', text: 'a' }] },
|
|
132
|
+
{ type: 'paragraph', content: [{ type: 'text', text: 'b' }] },
|
|
133
|
+
],
|
|
134
|
+
})
|
|
135
|
+
})
|
|
136
|
+
|
|
137
|
+
it('empty content stays an empty string sentinel — Collaboration-friendly', () => {
|
|
138
|
+
// When collab is on, callers pass content omitted/'' so Collaboration's
|
|
139
|
+
// y-prosemirror binding takes ownership of the doc without a seed race.
|
|
140
|
+
const cfg = createPlainTextEditor({ content: '' })
|
|
141
|
+
assert.equal(cfg.content, '')
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
it('editorAttributes plumb into editorProps.attributes verbatim', () => {
|
|
145
|
+
const attrs = { class: 'foo bar', 'aria-label': 'Name' }
|
|
146
|
+
const cfg = createPlainTextEditor({ editorAttributes: attrs })
|
|
147
|
+
assert.deepEqual(cfg.editorProps, { attributes: attrs })
|
|
148
|
+
})
|
|
149
|
+
|
|
150
|
+
it('onUpdate is wired only when caller provides it', () => {
|
|
151
|
+
const withCb: PlainTextEditorOptions = { onUpdate: () => {} }
|
|
152
|
+
const cfgA = createPlainTextEditor(withCb)
|
|
153
|
+
assert.equal(typeof cfgA.onUpdate, 'function')
|
|
154
|
+
|
|
155
|
+
const cfgB = createPlainTextEditor()
|
|
156
|
+
assert.equal(cfgB.onUpdate, undefined)
|
|
157
|
+
})
|
|
158
|
+
})
|