@pilotiq/tiptap 3.10.2 → 3.10.3

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 +1 @@
1
- {"version":3,"file":"CollabTextRenderer.d.ts","sourceRoot":"","sources":["../../src/react/CollabTextRenderer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAA;AAK/B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,WAAW,EACX,SAAS,EACT,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAqK9C"}
1
+ {"version":3,"file":"CollabTextRenderer.d.ts","sourceRoot":"","sources":["../../src/react/CollabTextRenderer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAA;AAK/B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,WAAW,EACX,SAAS,EACT,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAqL9C"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useMemo } from 'react';
2
+ import { useEffect, useMemo, useRef } from 'react';
3
3
  import { useEditor, EditorContent } from '@tiptap/react';
4
4
  import { useCollabRoom, getCollabExtensions, useCollabSeed, } from '@pilotiq/pilotiq/react';
5
5
  import { createPlainTextEditor, plainTextOf, plainTextToDoc } from '../PlainTextEditor.js';
@@ -32,6 +32,20 @@ export function CollabTextRenderer({ name, fragmentKey, multiline, defaultValue,
32
32
  const room = useCollabRoom();
33
33
  const factory = getCollabExtensions();
34
34
  const collabActive = !!(room && factory);
35
+ // Capture the initial non-empty `defaultValue` on mount + keep it stable.
36
+ // The seedFn (below) needs to re-seed the empty fragment with the
37
+ // SSR-loaded value even if the host's `defaultValue` prop has been
38
+ // clobbered to '' by a sync-triggered empty `onChange` round-trip
39
+ // (handleChange → setText('') → setValue('') → ctx.values.title='' →
40
+ // FormBody re-renders the field with the new empty value). Closing
41
+ // over the live prop in seedFn means seed-on-resync silently fails;
42
+ // the ref preserves the seed source. Once the user types into the
43
+ // editor the seedFn will no longer fire — the fragment won't be
44
+ // empty — so this ref is read-only after the first non-empty seed.
45
+ const initialDefaultValueRef = useRef(defaultValue);
46
+ if (defaultValue && !initialDefaultValueRef.current) {
47
+ initialDefaultValueRef.current = defaultValue;
48
+ }
35
49
  // Collab-stable identifier — `name` on top-level fields, but the
36
50
  // row-id-anchored composite (`items.<rowId>.title`) on Repeater /
37
51
  // Builder row leaves so the Y.XmlFragment survives reorders. Routes
@@ -156,8 +170,9 @@ export function CollabTextRenderer({ name, fragmentKey, multiline, defaultValue,
156
170
  useCollabSeed(editor && collabActive ? room : null, collabName, (doc) => {
157
171
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
158
172
  const fragment = doc.getXmlFragment(collabName);
159
- if (fragment && fragment.length === 0 && defaultValue && editor) {
160
- editor.commands.setContent(plainTextToDoc(defaultValue, multiline));
173
+ const seedValue = initialDefaultValueRef.current;
174
+ if (fragment && fragment.length === 0 && seedValue && editor) {
175
+ editor.commands.setContent(plainTextToDoc(seedValue, multiline));
161
176
  }
162
177
  if (editor)
163
178
  onChange(plainTextOf(editor));
@@ -1 +1 @@
1
- {"version":3,"file":"CollabTextRenderer.js","sourceRoot":"","sources":["../../src/react/CollabTextRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAkB,MAAM,eAAe,CAAA;AAExE,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,aAAa,GAEd,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,WAAW,EACX,SAAS,EACT,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,gBAAgB,GACQ;IACxB,MAAM,IAAI,GAAM,aAAa,EAAE,CAAA;IAC/B,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAA;IACrC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAA;IAExC,iEAAiE;IACjE,kEAAkE;IAClE,oEAAoE;IACpE,gEAAgE;IAChE,+DAA+D;IAC/D,qEAAqE;IACrE,yDAAyD;IACzD,MAAM,UAAU,GAAG,WAAW,IAAI,IAAI,CAAA;IAEtC,yEAAyE;IACzE,oEAAoE;IACpE,kEAAkE;IAClE,0EAA0E;IAC1E,MAAM,gBAAgB,GAAG,OAAO,CAAiB,GAAG,EAAE;QACpD,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAA;QACjD,OAAO,OAAO,CAAC;YACb,IAAI,EAAO,IAAI,CAAC,IAAI;YACpB,QAAQ,EAAG,IAAI,CAAC,QAAQ;YACxB,SAAS,EAAE,UAAU;YACrB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAgB,CAAA;QACjB,uDAAuD;IACzD,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,MAAM,MAAM,GAAG,SAAS,CACtB;QACE,gEAAgE;QAChE,gEAAgE;QAChE,gEAAgE;QAChE,+DAA+D;QAC/D,+DAA+D;QAC/D,4DAA4D;QAC5D,EAAE;QACF,gEAAgE;QAChE,4DAA4D;QAC5D,iEAAiE;QACjE,gEAAgE;QAChE,iEAAiE;QACjE,iBAAiB,EAAE,KAAK;QACxB,GAAG,qBAAqB,CAAC;YACvB,SAAS;YACT,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,QAAQ,EAAE,CAAC,QAAQ;YACnB,gEAAgE;YAChE,sEAAsE;YACtE,kEAAkE;YAClE,kDAAkD;YAClD,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;YACzC,sEAAsE;YACtE,qEAAqE;YACrE,0EAA0E;YAC1E,uEAAuE;YACvE,kEAAkE;YAClE,UAAU,EAAE,CAAC,GAAG,gBAAgB,EAAE,qBAAqB,CAAC;YACxD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,OAAO,KAAK,CAAA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,SAAS,IAAI,gBAAgB;gBAC/B,CAAC,CAAC;oBACE,gBAAgB,EAAE;wBAChB,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;wBAC3B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC3C;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;KACH;IACD,uEAAuE;IACvE,4CAA4C;IAC5C,CAAC,YAAY,CAAC,CACf,CAAA;IAED,0EAA0E;IAC1E,qEAAqE;IACrE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IAEtB,oDAAoD;IACpD,uEAAuE;IACvE,wEAAwE;IACxE,EAAE;IACF,2EAA2E;IAC3E,mEAAmE;IACnE,2EAA2E;IAC3E,wEAAwE;IACxE,sEAAsE;IACtE,gEAAgE;IAChE,wEAAwE;IACxE,uEAAuE;IACvE,wCAAwC;IACxC,qBAAqB,CAAC,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE;QAC1C,yBAAyB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,CAAC;YACP,EAAE,EAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;SAChC,CAAC;QACF,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW;gBAAE,OAAM;YACzC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAChE,CAAC;KACF,CAAC,CAAA;IAEF,yEAAyE;IACzE,iEAAiE;IACjE,sEAAsE;IACtE,qEAAqE;IACrE,+DAA+D;IAC/D,EAAE;IACF,qEAAqE;IACrE,yEAAyE;IACzE,wEAAwE;IACxE,iEAAiE;IACjE,uDAAuD;IACvD,EAAE;IACF,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,0EAA0E;IAC1E,0EAA0E;IAC1E,wEAAwE;IACxE,oEAAoE;IACpE,0EAA0E;IAC1E,0EAA0E;IAC1E,qEAAqE;IACrE,2DAA2D;IAC3D,aAAa,CACX,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACpC,UAAU,EACV,CAAC,GAAG,EAAE,EAAE;QACN,8DAA8D;QAC9D,MAAM,QAAQ,GAAI,GAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QACxD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;YAChE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,MAAM;YAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3C,CAAC,CACF,CAAA;IAED,yEAAyE;IACzE,yEAAyE;IACzE,0EAA0E;IAC1E,sEAAsE;IACtE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,MAAM,EAAE,CAAA;QACpC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC1B,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA,CAAC,CAAC,CAAA;IAC9C,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAEpB,iEAAiE;IACjE,qEAAqE;IACrE,sEAAsE;IACtE,6DAA6D;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;QAC7B,uDAAuD;IACzD,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,OAAO,KAAC,aAAa,IAAC,MAAM,EAAE,MAAM,GAAI,CAAA;AAC1C,CAAC"}
1
+ {"version":3,"file":"CollabTextRenderer.js","sourceRoot":"","sources":["../../src/react/CollabTextRenderer.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilotiq/tiptap",
3
- "version": "3.10.2",
3
+ "version": "3.10.3",
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": {
@@ -87,7 +87,7 @@
87
87
  "react-dom": "^19",
88
88
  "tiptap-markdown": "^0.9",
89
89
  "typescript": "^5",
90
- "@pilotiq/pilotiq": "^0.23.0"
90
+ "@pilotiq/pilotiq": "^0.23.1"
91
91
  },
92
92
  "author": "Suleiman Shahbari",
93
93
  "scripts": {
@@ -1,4 +1,4 @@
1
- import { useEffect, useMemo } from 'react'
1
+ import { useEffect, useMemo, useRef } from 'react'
2
2
  import { useEditor, EditorContent, type Extension } from '@tiptap/react'
3
3
  import type { AnyExtension } from '@tiptap/core'
4
4
  import {
@@ -51,6 +51,21 @@ export function CollabTextRenderer({
51
51
  const factory = getCollabExtensions()
52
52
  const collabActive = !!(room && factory)
53
53
 
54
+ // Capture the initial non-empty `defaultValue` on mount + keep it stable.
55
+ // The seedFn (below) needs to re-seed the empty fragment with the
56
+ // SSR-loaded value even if the host's `defaultValue` prop has been
57
+ // clobbered to '' by a sync-triggered empty `onChange` round-trip
58
+ // (handleChange → setText('') → setValue('') → ctx.values.title='' →
59
+ // FormBody re-renders the field with the new empty value). Closing
60
+ // over the live prop in seedFn means seed-on-resync silently fails;
61
+ // the ref preserves the seed source. Once the user types into the
62
+ // editor the seedFn will no longer fire — the fragment won't be
63
+ // empty — so this ref is read-only after the first non-empty seed.
64
+ const initialDefaultValueRef = useRef<string>(defaultValue)
65
+ if (defaultValue && !initialDefaultValueRef.current) {
66
+ initialDefaultValueRef.current = defaultValue
67
+ }
68
+
54
69
  // Collab-stable identifier — `name` on top-level fields, but the
55
70
  // row-id-anchored composite (`items.<rowId>.title`) on Repeater /
56
71
  // Builder row leaves so the Y.XmlFragment survives reorders. Routes
@@ -182,8 +197,9 @@ export function CollabTextRenderer({
182
197
  (doc) => {
183
198
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
184
199
  const fragment = (doc as any).getXmlFragment(collabName)
185
- if (fragment && fragment.length === 0 && defaultValue && editor) {
186
- editor.commands.setContent(plainTextToDoc(defaultValue, multiline))
200
+ const seedValue = initialDefaultValueRef.current
201
+ if (fragment && fragment.length === 0 && seedValue && editor) {
202
+ editor.commands.setContent(plainTextToDoc(seedValue, multiline))
187
203
  }
188
204
  if (editor) onChange(plainTextOf(editor))
189
205
  },