@tldraw/editor 3.16.0-canary.1e91d2e19e07 → 3.16.0-canary.1f09406e5b86
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-cjs/index.d.ts +42 -4
- package/dist-cjs/index.js +1 -1
- package/dist-cjs/lib/TldrawEditor.js +0 -2
- package/dist-cjs/lib/TldrawEditor.js.map +2 -2
- package/dist-cjs/lib/components/default-components/DefaultCanvas.js +11 -1
- package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
- package/dist-cjs/lib/editor/Editor.js +35 -2
- package/dist-cjs/lib/editor/Editor.js.map +2 -2
- package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js +4 -2
- package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js.map +2 -2
- package/dist-cjs/lib/hooks/useCanvasEvents.js +19 -16
- package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/useDocumentEvents.js +5 -5
- package/dist-cjs/lib/hooks/useDocumentEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js +1 -2
- package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/useGestureEvents.js +1 -1
- package/dist-cjs/lib/hooks/useGestureEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/useHandleEvents.js +6 -6
- package/dist-cjs/lib/hooks/useHandleEvents.js.map +2 -2
- package/dist-cjs/lib/hooks/useSelectionEvents.js +8 -8
- package/dist-cjs/lib/hooks/useSelectionEvents.js.map +2 -2
- package/dist-cjs/lib/license/LicenseManager.js +9 -7
- package/dist-cjs/lib/license/LicenseManager.js.map +2 -2
- package/dist-cjs/lib/license/Watermark.js +97 -90
- package/dist-cjs/lib/license/Watermark.js.map +2 -2
- package/dist-cjs/lib/utils/dom.js.map +2 -2
- package/dist-cjs/lib/utils/getPointerInfo.js +2 -3
- package/dist-cjs/lib/utils/getPointerInfo.js.map +2 -2
- package/dist-cjs/lib/utils/reparenting.js +5 -1
- package/dist-cjs/lib/utils/reparenting.js.map +2 -2
- package/dist-cjs/version.js +3 -3
- package/dist-cjs/version.js.map +1 -1
- package/dist-esm/index.d.mts +42 -4
- package/dist-esm/index.mjs +1 -1
- package/dist-esm/lib/TldrawEditor.mjs +0 -2
- package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
- package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +11 -1
- package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
- package/dist-esm/lib/editor/Editor.mjs +35 -2
- package/dist-esm/lib/editor/Editor.mjs.map +2 -2
- package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs +4 -2
- package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +2 -2
- package/dist-esm/lib/hooks/useCanvasEvents.mjs +20 -22
- package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useDocumentEvents.mjs +6 -6
- package/dist-esm/lib/hooks/useDocumentEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs +1 -2
- package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useGestureEvents.mjs +2 -2
- package/dist-esm/lib/hooks/useGestureEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useHandleEvents.mjs +6 -6
- package/dist-esm/lib/hooks/useHandleEvents.mjs.map +2 -2
- package/dist-esm/lib/hooks/useSelectionEvents.mjs +9 -14
- package/dist-esm/lib/hooks/useSelectionEvents.mjs.map +2 -2
- package/dist-esm/lib/license/LicenseManager.mjs +9 -7
- package/dist-esm/lib/license/LicenseManager.mjs.map +2 -2
- package/dist-esm/lib/license/Watermark.mjs +98 -91
- package/dist-esm/lib/license/Watermark.mjs.map +2 -2
- package/dist-esm/lib/utils/dom.mjs.map +2 -2
- package/dist-esm/lib/utils/getPointerInfo.mjs +2 -3
- package/dist-esm/lib/utils/getPointerInfo.mjs.map +2 -2
- package/dist-esm/lib/utils/reparenting.mjs +5 -1
- package/dist-esm/lib/utils/reparenting.mjs.map +2 -2
- package/dist-esm/version.mjs +3 -3
- package/dist-esm/version.mjs.map +1 -1
- package/package.json +7 -7
- package/src/lib/TldrawEditor.tsx +0 -2
- package/src/lib/components/default-components/DefaultCanvas.tsx +7 -1
- package/src/lib/editor/Editor.test.ts +90 -0
- package/src/lib/editor/Editor.ts +45 -2
- package/src/lib/editor/managers/FocusManager/FocusManager.ts +6 -2
- package/src/lib/hooks/useCanvasEvents.ts +20 -20
- package/src/lib/hooks/useDocumentEvents.ts +6 -6
- package/src/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.ts +1 -1
- package/src/lib/hooks/useGestureEvents.ts +2 -2
- package/src/lib/hooks/useHandleEvents.ts +6 -6
- package/src/lib/hooks/useSelectionEvents.ts +9 -14
- package/src/lib/license/LicenseManager.test.ts +34 -2
- package/src/lib/license/LicenseManager.ts +14 -12
- package/src/lib/license/Watermark.tsx +100 -92
- package/src/lib/test/InFrontOfTheCanvas.test.tsx +187 -0
- package/src/lib/utils/dom.test.ts +103 -0
- package/src/lib/utils/dom.ts +8 -1
- package/src/lib/utils/getPointerInfo.ts +3 -2
- package/src/lib/utils/reparenting.ts +7 -1
- 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 = {};
|
|
@@ -6472,16 +6475,20 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
6472
6475
|
* Handle external content, such as files, urls, embeds, or plain text which has been put into the app, for example by pasting external text or dropping external images onto canvas.
|
|
6473
6476
|
*
|
|
6474
6477
|
* @param info - Info about the external content.
|
|
6478
|
+
* @param opts - Options for handling external content, including force flag to bypass readonly checks.
|
|
6475
6479
|
*/
|
|
6476
|
-
async putExternalContent(info) {
|
|
6480
|
+
async putExternalContent(info, opts = {}) {
|
|
6481
|
+
if (!opts.force && this.getIsReadonly()) return;
|
|
6477
6482
|
return this.externalContentHandlers[info.type]?.(info);
|
|
6478
6483
|
}
|
|
6479
6484
|
/**
|
|
6480
6485
|
* Handle replacing external content.
|
|
6481
6486
|
*
|
|
6482
6487
|
* @param info - Info about the external content.
|
|
6488
|
+
* @param opts - Options for handling external content, including force flag to bypass readonly checks.
|
|
6483
6489
|
*/
|
|
6484
|
-
async replaceExternalContent(info) {
|
|
6490
|
+
async replaceExternalContent(info, opts = {}) {
|
|
6491
|
+
if (!opts.force && this.getIsReadonly()) return;
|
|
6485
6492
|
return this.externalContentHandlers[info.type]?.(info);
|
|
6486
6493
|
}
|
|
6487
6494
|
/**
|
|
@@ -7401,6 +7408,32 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
|
|
|
7401
7408
|
code: "MetaLeft"
|
|
7402
7409
|
});
|
|
7403
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
|
+
}
|
|
7404
7437
|
/**
|
|
7405
7438
|
* Dispatch an event to the editor.
|
|
7406
7439
|
*
|