@tiptap/react 2.23.1 → 2.24.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,4 +1,4 @@
1
- import type { Editor, NodeViewRenderer, NodeViewRendererOptions } from '@tiptap/core';
1
+ import type { Editor, NodeViewRenderer, NodeViewRendererOptions, NodeViewRendererProps } from '@tiptap/core';
2
2
  import { NodeView } from '@tiptap/core';
3
3
  import type { Node, Node as ProseMirrorNode } from '@tiptap/pm/model';
4
4
  import type { Decoration, DecorationSource } from '@tiptap/pm/view';
@@ -46,6 +46,7 @@ export declare class ReactNodeView<T = HTMLElement, Component extends ComponentT
46
46
  * The element that holds the rich-text content of the node.
47
47
  */
48
48
  contentDOMElement: HTMLElement | null;
49
+ constructor(component: Component, props: NodeViewRendererProps, options?: Partial<Options>);
49
50
  /**
50
51
  * Setup the React component.
51
52
  * Called on initialization.
@@ -1 +1 @@
1
- {"version":3,"file":"ReactNodeViewRenderer.d.ts","sourceRoot":"","sources":["../src/ReactNodeViewRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACU,MAAM,EAAE,gBAAgB,EAAE,uBAAuB,EACtE,MAAM,cAAc,CAAA;AACrB,OAAO,EAAyB,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAmC,MAAM,iBAAiB,CAAA;AACpG,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,OAAO,CAAA;AAIhE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIpD,MAAM,WAAW,4BAA6B,SAAQ,uBAAuB;IAC3E;;;OAGG;IACH,MAAM,EACF,CAAC,CAAC,KAAK,EAAE;QACP,OAAO,EAAE,eAAe,CAAC;QACzB,cAAc,EAAE,SAAS,UAAU,EAAE,CAAC;QACtC,mBAAmB,EAAE,gBAAgB,CAAC;QACtC,OAAO,EAAE,eAAe,CAAC;QACzB,cAAc,EAAE,SAAS,UAAU,EAAE,CAAC;QACtC,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,KAAK,OAAO,CAAC,GACd,IAAI,CAAC;IACT;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EACF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,CAAC,CAAC,KAAK,EAAE;QACP,IAAI,EAAE,eAAe,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACrC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACnC;AAED,qBAAa,aAAa,CACxB,CAAC,GAAG,WAAW,EACf,SAAS,SAAS,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC7F,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAC3E,SAAQ,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC;IAChD;;OAEG;IACH,QAAQ,EAAG,aAAa,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;IAExD;;OAEG;IACH,iBAAiB,EAAG,WAAW,GAAG,IAAI,CAAA;IAEtC;;;OAGG;IACH,KAAK;IAiFL;;;OAGG;IACH,IAAI,GAAG,IAQ2B,WAAW,CAC5C;IAED;;;OAGG;IACH,IAAI,UAAU,uBAMb;IAED;;;OAGG;IACH,qBAAqB;IAuBrB;;;OAGG;IACH,MAAM,CACJ,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,gBAAgB,EAAE,gBAAgB,GACjC,OAAO;IAiDV;;;OAGG;IACH,UAAU;IAOV;;;OAGG;IACH,YAAY;IAOZ;;OAEG;IACH,OAAO;IAMP;;;OAGG;IACH,uBAAuB;CAgBxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,WAAW,EACnD,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC/C,OAAO,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,GAC9C,gBAAgB,CAWlB"}
1
+ {"version":3,"file":"ReactNodeViewRenderer.d.ts","sourceRoot":"","sources":["../src/ReactNodeViewRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,MAAM,EACN,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAyB,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAmC,MAAM,iBAAiB,CAAA;AACpG,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,OAAO,CAAA;AAIhE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIpD,MAAM,WAAW,4BAA6B,SAAQ,uBAAuB;IAC3E;;;OAGG;IACH,MAAM,EACF,CAAC,CAAC,KAAK,EAAE;QACP,OAAO,EAAE,eAAe,CAAC;QACzB,cAAc,EAAE,SAAS,UAAU,EAAE,CAAC;QACtC,mBAAmB,EAAE,gBAAgB,CAAC;QACtC,OAAO,EAAE,eAAe,CAAC;QACzB,cAAc,EAAE,SAAS,UAAU,EAAE,CAAC;QACtC,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,KAAK,OAAO,CAAC,GACd,IAAI,CAAC;IACT;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EACF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,CAAC,CAAC,KAAK,EAAE;QACP,IAAI,EAAE,eAAe,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACrC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACnC;AAED,qBAAa,aAAa,CACxB,CAAC,GAAG,WAAW,EACf,SAAS,SAAS,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC7F,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAC3E,SAAQ,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC;IAChD;;OAEG;IACH,QAAQ,EAAG,aAAa,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;IAExD;;OAEG;IACH,iBAAiB,EAAG,WAAW,GAAG,IAAI,CAAA;gBAE1B,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAsB1F;;;OAGG;IACH,KAAK;IAqEL;;;OAGG;IACH,IAAI,GAAG,IAQ2B,WAAW,CAC5C;IAED;;;OAGG;IACH,IAAI,UAAU,uBAMb;IAED;;;OAGG;IACH,qBAAqB;IAuBrB;;;OAGG;IACH,MAAM,CACJ,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,gBAAgB,EAAE,gBAAgB,GACjC,OAAO;IAiDV;;;OAGG;IACH,UAAU;IAOV;;;OAGG;IACH,YAAY;IAOZ;;OAEG;IACH,OAAO;IAMP;;;OAGG;IACH,uBAAuB;CAgBxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,WAAW,EACnD,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC/C,OAAO,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,GAC9C,gBAAgB,CAWlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReactRenderer.d.ts","sourceRoot":"","sources":["../src/ReactRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EACV,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,aAAa,EACd,MAAM,OAAO,CAAA;AAkGd,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE5B;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,IACnB,cAAc,CAAC,CAAC,CAAC,GACjB,iBAAiB,CAAC,CAAC,CAAC,GACpB,yBAAyB,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AAEpE;;;;;;;;;;EAUE;AACF,qBAAa,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAC5E,EAAE,EAAE,MAAM,CAAA;IAEV,MAAM,EAAE,MAAM,CAAA;IAEd,SAAS,EAAE,GAAG,CAAA;IAEd,OAAO,EAAE,OAAO,CAAA;IAEhB,KAAK,EAAE,CAAC,CAAA;IAER,YAAY,EAAE,SAAS,CAAA;IAEvB,GAAG,EAAE,CAAC,GAAG,IAAI,CAAO;IAEpB;;OAEG;gBACS,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAC1C,MAAM,EACN,KAAU,EACV,EAAU,EACV,SAAc,GACf,EAAE,oBAAoB;IAuBvB;;OAEG;IACH,MAAM,IAAI,IAAI;IA6Bd;;OAEG;IACH,WAAW,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,IAAI;IASlD;;OAEG;IACH,OAAO,IAAI,IAAI;IAMf;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;CAK3D"}
1
+ {"version":3,"file":"ReactRenderer.d.ts","sourceRoot":"","sources":["../src/ReactRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EACV,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,aAAa,EACd,MAAM,OAAO,CAAA;AAiGd,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE5B;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,IACnB,cAAc,CAAC,CAAC,CAAC,GACjB,iBAAiB,CAAC,CAAC,CAAC,GACpB,yBAAyB,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AAEpE;;;;;;;;;;EAUE;AACF,qBAAa,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAC5E,EAAE,EAAE,MAAM,CAAA;IAEV,MAAM,EAAE,MAAM,CAAA;IAEd,SAAS,EAAE,GAAG,CAAA;IAEd,OAAO,EAAE,OAAO,CAAA;IAEhB,KAAK,EAAE,CAAC,CAAA;IAER,YAAY,EAAE,SAAS,CAAA;IAEvB,GAAG,EAAE,CAAC,GAAG,IAAI,CAAO;IAEpB;;OAEG;gBACS,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAC1C,MAAM,EACN,KAAU,EACV,EAAU,EACV,SAAc,GACf,EAAE,oBAAoB;IAiBvB;;OAEG;IACH,MAAM,IAAI,IAAI;IA6Bd;;OAEG;IACH,WAAW,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,IAAI;IASlD;;OAEG;IACH,OAAO,IAAI,IAAI;IAMf;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;CAK3D"}
package/dist/index.cjs CHANGED
@@ -1301,16 +1301,9 @@ class ReactRenderer {
1301
1301
  if (className) {
1302
1302
  this.element.classList.add(...className.split(' '));
1303
1303
  }
1304
- if (this.editor.isInitialized) {
1305
- // On first render, we need to flush the render synchronously
1306
- // Renders afterwards can be async, but this fixes a cursor positioning issue
1307
- ReactDOM.flushSync(() => {
1308
- this.render();
1309
- });
1310
- }
1311
- else {
1304
+ queueMicrotask(() => {
1312
1305
  this.render();
1313
- }
1306
+ });
1314
1307
  }
1315
1308
  /**
1316
1309
  * Render the React component.
@@ -1367,6 +1360,24 @@ class ReactRenderer {
1367
1360
  }
1368
1361
 
1369
1362
  class ReactNodeView extends core.NodeView {
1363
+ constructor(component, props, options) {
1364
+ super(component, props, options);
1365
+ if (!this.node.isLeaf) {
1366
+ if (this.options.contentDOMElementTag) {
1367
+ this.contentDOMElement = document.createElement(this.options.contentDOMElementTag);
1368
+ }
1369
+ else {
1370
+ this.contentDOMElement = document.createElement(this.node.isInline ? 'span' : 'div');
1371
+ }
1372
+ this.contentDOMElement.dataset.nodeViewContentReact = '';
1373
+ this.contentDOMElement.dataset.nodeViewWrapper = '';
1374
+ // For some reason the whiteSpace prop is not inherited properly in Chrome and Safari
1375
+ // With this fix it seems to work fine
1376
+ // See: https://github.com/ueberdosis/tiptap/issues/1197
1377
+ this.contentDOMElement.style.whiteSpace = 'inherit';
1378
+ this.dom.appendChild(this.contentDOMElement);
1379
+ }
1380
+ }
1370
1381
  /**
1371
1382
  * Setup the React component.
1372
1383
  * Called on initialization.
@@ -1395,6 +1406,10 @@ class ReactNodeView extends core.NodeView {
1395
1406
  const onDragStart = this.onDragStart.bind(this);
1396
1407
  const nodeViewContentRef = element => {
1397
1408
  if (element && this.contentDOMElement && element.firstChild !== this.contentDOMElement) {
1409
+ // remove the nodeViewWrapper attribute from the element
1410
+ if (element.hasAttribute('data-node-view-wrapper')) {
1411
+ element.removeAttribute('data-node-view-wrapper');
1412
+ }
1398
1413
  element.appendChild(this.contentDOMElement);
1399
1414
  }
1400
1415
  };
@@ -1406,22 +1421,6 @@ class ReactNodeView extends core.NodeView {
1406
1421
  return (React__default.default.createElement(ReactNodeViewContext.Provider, { value: context }, React.createElement(Component, componentProps)));
1407
1422
  });
1408
1423
  ReactNodeViewProvider.displayName = 'ReactNodeView';
1409
- if (this.node.isLeaf) {
1410
- this.contentDOMElement = null;
1411
- }
1412
- else if (this.options.contentDOMElementTag) {
1413
- this.contentDOMElement = document.createElement(this.options.contentDOMElementTag);
1414
- }
1415
- else {
1416
- this.contentDOMElement = document.createElement(this.node.isInline ? 'span' : 'div');
1417
- }
1418
- if (this.contentDOMElement) {
1419
- this.contentDOMElement.dataset.nodeViewContentReact = '';
1420
- // For some reason the whiteSpace prop is not inherited properly in Chrome and Safari
1421
- // With this fix it seems to work fine
1422
- // See: https://github.com/ueberdosis/tiptap/issues/1197
1423
- this.contentDOMElement.style.whiteSpace = 'inherit';
1424
- }
1425
1424
  let as = this.node.isInline ? 'span' : 'div';
1426
1425
  if (this.options.as) {
1427
1426
  as = this.options.as;