@tldraw/editor 3.16.0-canary.e372fad80b6d → 3.16.0-canary.e455ab838b8f

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.
Files changed (79) hide show
  1. package/dist-cjs/index.d.ts +27 -28
  2. package/dist-cjs/index.js +2 -4
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/TldrawEditor.js +0 -2
  5. package/dist-cjs/lib/TldrawEditor.js.map +2 -2
  6. package/dist-cjs/lib/components/default-components/DefaultCanvas.js +4 -4
  7. package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
  8. package/dist-cjs/lib/editor/Editor.js +29 -0
  9. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  10. package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js +4 -2
  11. package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js.map +2 -2
  12. package/dist-cjs/lib/hooks/useCanvasEvents.js +17 -17
  13. package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
  14. package/dist-cjs/lib/hooks/useDocumentEvents.js +4 -4
  15. package/dist-cjs/lib/hooks/useDocumentEvents.js.map +2 -2
  16. package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js +1 -1
  17. package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js.map +2 -2
  18. package/dist-cjs/lib/hooks/useHandleEvents.js +6 -6
  19. package/dist-cjs/lib/hooks/useHandleEvents.js.map +2 -2
  20. package/dist-cjs/lib/hooks/useSelectionEvents.js +8 -8
  21. package/dist-cjs/lib/hooks/useSelectionEvents.js.map +2 -2
  22. package/dist-cjs/lib/license/LicenseManager.js +3 -0
  23. package/dist-cjs/lib/license/LicenseManager.js.map +2 -2
  24. package/dist-cjs/lib/license/Watermark.js +97 -90
  25. package/dist-cjs/lib/license/Watermark.js.map +2 -2
  26. package/dist-cjs/lib/utils/dom.js +1 -12
  27. package/dist-cjs/lib/utils/dom.js.map +2 -2
  28. package/dist-cjs/lib/utils/getPointerInfo.js +2 -3
  29. package/dist-cjs/lib/utils/getPointerInfo.js.map +2 -2
  30. package/dist-cjs/version.js +3 -3
  31. package/dist-cjs/version.js.map +1 -1
  32. package/dist-esm/index.d.mts +27 -28
  33. package/dist-esm/index.mjs +3 -7
  34. package/dist-esm/index.mjs.map +2 -2
  35. package/dist-esm/lib/TldrawEditor.mjs +0 -2
  36. package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
  37. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +5 -5
  38. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
  39. package/dist-esm/lib/editor/Editor.mjs +29 -0
  40. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  41. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs +4 -2
  42. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +2 -2
  43. package/dist-esm/lib/hooks/useCanvasEvents.mjs +18 -24
  44. package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
  45. package/dist-esm/lib/hooks/useDocumentEvents.mjs +5 -10
  46. package/dist-esm/lib/hooks/useDocumentEvents.mjs.map +2 -2
  47. package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs +2 -2
  48. package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs.map +2 -2
  49. package/dist-esm/lib/hooks/useHandleEvents.mjs +7 -12
  50. package/dist-esm/lib/hooks/useHandleEvents.mjs.map +2 -2
  51. package/dist-esm/lib/hooks/useSelectionEvents.mjs +9 -15
  52. package/dist-esm/lib/hooks/useSelectionEvents.mjs.map +2 -2
  53. package/dist-esm/lib/license/LicenseManager.mjs +3 -0
  54. package/dist-esm/lib/license/LicenseManager.mjs.map +2 -2
  55. package/dist-esm/lib/license/Watermark.mjs +98 -91
  56. package/dist-esm/lib/license/Watermark.mjs.map +2 -2
  57. package/dist-esm/lib/utils/dom.mjs +1 -12
  58. package/dist-esm/lib/utils/dom.mjs.map +2 -2
  59. package/dist-esm/lib/utils/getPointerInfo.mjs +2 -3
  60. package/dist-esm/lib/utils/getPointerInfo.mjs.map +2 -2
  61. package/dist-esm/version.mjs +3 -3
  62. package/dist-esm/version.mjs.map +1 -1
  63. package/package.json +7 -7
  64. package/src/index.ts +0 -2
  65. package/src/lib/TldrawEditor.tsx +0 -2
  66. package/src/lib/components/default-components/DefaultCanvas.tsx +5 -5
  67. package/src/lib/editor/Editor.ts +33 -0
  68. package/src/lib/editor/managers/FocusManager/FocusManager.ts +6 -2
  69. package/src/lib/hooks/useCanvasEvents.ts +18 -24
  70. package/src/lib/hooks/useDocumentEvents.ts +5 -10
  71. package/src/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.ts +2 -2
  72. package/src/lib/hooks/useHandleEvents.ts +7 -12
  73. package/src/lib/hooks/useSelectionEvents.ts +9 -15
  74. package/src/lib/license/LicenseManager.ts +3 -0
  75. package/src/lib/license/Watermark.tsx +100 -92
  76. package/src/lib/utils/dom.test.ts +33 -24
  77. package/src/lib/utils/dom.ts +1 -31
  78. package/src/lib/utils/getPointerInfo.ts +3 -3
  79. package/src/version.ts +3 -3
@@ -438,6 +438,8 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
438
438
  __publicField(this, "performanceTracker");
439
439
  /** @internal */
440
440
  __publicField(this, "performanceTrackerTimeout", -1);
441
+ /** @internal */
442
+ __publicField(this, "handledEvents", /* @__PURE__ */ new WeakSet());
441
443
  __publicField(this, "_pendingEventsForNextTick", []);
442
444
  this._getShapeVisibility = getShapeVisibility;
443
445
  this.options = { ...defaultTldrawOptions, ...options };
@@ -465,6 +467,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
465
467
  }
466
468
  this.root = new NewRoot(this);
467
469
  this.root.children = {};
470
+ this.markEventAsHandled = this.markEventAsHandled.bind(this);
468
471
  const allShapeUtils = checkShapesAndAddCore(shapeUtils);
469
472
  const _shapeUtils = {};
470
473
  const _styleProps = {};
@@ -7405,6 +7408,32 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
7405
7408
  code: "MetaLeft"
7406
7409
  });
7407
7410
  }
7411
+ /**
7412
+ * In tldraw, events are sometimes handled by multiple components. For example, the shapes might
7413
+ * have events, but the canvas handles events too. The way that the canvas handles events can
7414
+ * interfere with the with the shapes event handlers - for example, it calls `.preventDefault()`
7415
+ * on `pointerDown`, which also prevents `click` events from firing on the shapes.
7416
+ *
7417
+ * You can use `.stopPropagation()` to prevent the event from propagating to the rest of the
7418
+ * DOM, but that can impact non-tldraw event handlers set up elsewhere. By using
7419
+ * `markEventAsHandled`, you'll stop other parts of tldraw from handling the event without
7420
+ * impacting other, non-tldraw event handlers. See also {@link Editor.wasEventAlreadyHandled}.
7421
+ *
7422
+ * @public
7423
+ */
7424
+ markEventAsHandled(e) {
7425
+ const nativeEvent = "nativeEvent" in e ? e.nativeEvent : e;
7426
+ this.handledEvents.add(nativeEvent);
7427
+ }
7428
+ /**
7429
+ * Checks if an event has already been handled. See {@link Editor.markEventAsHandled}.
7430
+ *
7431
+ * @public
7432
+ */
7433
+ wasEventAlreadyHandled(e) {
7434
+ const nativeEvent = "nativeEvent" in e ? e.nativeEvent : e;
7435
+ return this.handledEvents.has(nativeEvent);
7436
+ }
7408
7437
  /**
7409
7438
  * Dispatch an event to the editor.
7410
7439
  *