@tldraw/editor 5.1.0 → 5.2.0-canary.5e29f4eb77b9

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 (65) hide show
  1. package/dist-cjs/index.d.ts +4 -3
  2. package/dist-cjs/index.js +1 -1
  3. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js +4 -1
  4. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js.map +3 -3
  5. package/dist-cjs/lib/components/default-components/DefaultLoadingScreen.js +2 -2
  6. package/dist-cjs/lib/components/default-components/DefaultLoadingScreen.js.map +2 -2
  7. package/dist-cjs/lib/components/default-components/DefaultShapeErrorFallback.js +1 -1
  8. package/dist-cjs/lib/components/default-components/DefaultShapeErrorFallback.js.map +3 -3
  9. package/dist-cjs/lib/components/default-components/DefaultSvgDefs.js +2 -2
  10. package/dist-cjs/lib/components/default-components/DefaultSvgDefs.js.map +2 -2
  11. package/dist-cjs/lib/editor/Editor.js +23 -2
  12. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  13. package/dist-cjs/lib/editor/derivations/bindingsIndex.js +2 -2
  14. package/dist-cjs/lib/editor/derivations/bindingsIndex.js.map +2 -2
  15. package/dist-cjs/lib/editor/derivations/parentsToChildren.js +2 -2
  16. package/dist-cjs/lib/editor/derivations/parentsToChildren.js.map +2 -2
  17. package/dist-cjs/lib/editor/derivations/shapeIdsInCurrentPage.js +2 -2
  18. package/dist-cjs/lib/editor/derivations/shapeIdsInCurrentPage.js.map +2 -2
  19. package/dist-cjs/lib/license/LicenseProvider.js +3 -1
  20. package/dist-cjs/lib/license/LicenseProvider.js.map +2 -2
  21. package/dist-cjs/lib/primitives/utils.js +2 -2
  22. package/dist-cjs/lib/primitives/utils.js.map +2 -2
  23. package/dist-cjs/lib/utils/dom.js +5 -3
  24. package/dist-cjs/lib/utils/dom.js.map +2 -2
  25. package/dist-cjs/version.js +3 -3
  26. package/dist-cjs/version.js.map +1 -1
  27. package/dist-esm/index.d.mts +4 -3
  28. package/dist-esm/index.mjs +1 -1
  29. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs +4 -1
  30. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs.map +3 -3
  31. package/dist-esm/lib/components/default-components/DefaultLoadingScreen.mjs +2 -2
  32. package/dist-esm/lib/components/default-components/DefaultLoadingScreen.mjs.map +2 -2
  33. package/dist-esm/lib/components/default-components/DefaultShapeErrorFallback.mjs +1 -1
  34. package/dist-esm/lib/components/default-components/DefaultShapeErrorFallback.mjs.map +3 -3
  35. package/dist-esm/lib/components/default-components/DefaultSvgDefs.mjs +2 -2
  36. package/dist-esm/lib/components/default-components/DefaultSvgDefs.mjs.map +2 -2
  37. package/dist-esm/lib/editor/Editor.mjs +23 -2
  38. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  39. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs +2 -2
  40. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs.map +2 -2
  41. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs +2 -2
  42. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs.map +2 -2
  43. package/dist-esm/lib/editor/derivations/shapeIdsInCurrentPage.mjs +2 -2
  44. package/dist-esm/lib/editor/derivations/shapeIdsInCurrentPage.mjs.map +2 -2
  45. package/dist-esm/lib/license/LicenseProvider.mjs +3 -1
  46. package/dist-esm/lib/license/LicenseProvider.mjs.map +2 -2
  47. package/dist-esm/lib/primitives/utils.mjs +2 -2
  48. package/dist-esm/lib/primitives/utils.mjs.map +2 -2
  49. package/dist-esm/lib/utils/dom.mjs +5 -3
  50. package/dist-esm/lib/utils/dom.mjs.map +2 -2
  51. package/dist-esm/version.mjs +3 -3
  52. package/dist-esm/version.mjs.map +1 -1
  53. package/package.json +7 -7
  54. package/src/lib/components/default-components/DefaultErrorFallback.tsx +4 -1
  55. package/src/lib/components/default-components/DefaultLoadingScreen.tsx +1 -1
  56. package/src/lib/components/default-components/DefaultShapeErrorFallback.tsx +4 -3
  57. package/src/lib/components/default-components/DefaultSvgDefs.tsx +1 -1
  58. package/src/lib/editor/Editor.ts +39 -6
  59. package/src/lib/editor/derivations/bindingsIndex.ts +1 -1
  60. package/src/lib/editor/derivations/parentsToChildren.ts +1 -1
  61. package/src/lib/editor/derivations/shapeIdsInCurrentPage.ts +1 -1
  62. package/src/lib/license/LicenseProvider.tsx +3 -1
  63. package/src/lib/primitives/utils.ts +1 -1
  64. package/src/lib/utils/dom.ts +5 -3
  65. package/src/version.ts +3 -3
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/components/default-components/DefaultSvgDefs.tsx"],
4
- "sourcesContent": ["/** @public @react */\nexport const DefaultSvgDefs = () => {\n\treturn null\n}\n"],
5
- "mappings": "AACO,MAAM,iBAAiB,MAAM;AACnC,SAAO;AACR;",
4
+ "sourcesContent": ["/** @public @react */\nexport function DefaultSvgDefs() {\n\treturn null\n}\n"],
5
+ "mappings": "AACO,SAAS,iBAAiB;AAChC,SAAO;AACR;",
6
6
  "names": []
7
7
  }
@@ -7867,6 +7867,15 @@ class Editor extends EventEmitter {
7867
7867
  _didPinch = false;
7868
7868
  /** @internal */
7869
7869
  _selectedShapeIdsAtPointerDown = [];
7870
+ /**
7871
+ * Whether `_selectedShapeIdsAtPointerDown` holds a pre-gesture selection
7872
+ * captured by a `pointer_down` (the touch path) that a following pinch
7873
+ * should restore. False when no pointer_down preceded the pinch (the
7874
+ * Safari trackpad path uses gesture events), in which case `pinch_start`
7875
+ * captures the live selection instead.
7876
+ * @internal
7877
+ */
7878
+ _didCaptureSelectionAtPointerDown = false;
7870
7879
  /** @internal */
7871
7880
  _longPressTimeout = -1;
7872
7881
  /** @internal */
@@ -7999,10 +8008,15 @@ class Editor extends EventEmitter {
7999
8008
  case "pinch_start": {
8000
8009
  if (inputs.getIsPinching()) return;
8001
8010
  if (!inputs.getIsEditing()) {
8002
- this._selectedShapeIdsAtPointerDown = [...pageState.selectedShapeIds];
8011
+ if (!this._didCaptureSelectionAtPointerDown) {
8012
+ this._selectedShapeIdsAtPointerDown = [...pageState.selectedShapeIds];
8013
+ }
8003
8014
  this._didPinch = true;
8004
8015
  inputs.setIsPinching(true);
8005
8016
  this.interrupt();
8017
+ if (this._didCaptureSelectionAtPointerDown) {
8018
+ this.setSelectedShapes(this._selectedShapeIdsAtPointerDown);
8019
+ }
8006
8020
  }
8007
8021
  this.emit("event", info);
8008
8022
  return;
@@ -8042,6 +8056,7 @@ class Editor extends EventEmitter {
8042
8056
  const { _selectedShapeIdsAtPointerDown: shapesToReselect } = this;
8043
8057
  this.setSelectedShapes(this._selectedShapeIdsAtPointerDown);
8044
8058
  this._selectedShapeIdsAtPointerDown = [];
8059
+ this._didCaptureSelectionAtPointerDown = false;
8045
8060
  if (this._didPinch) {
8046
8061
  this._didPinch = false;
8047
8062
  if (shapesToReselect.length > 0) {
@@ -8135,7 +8150,10 @@ class Editor extends EventEmitter {
8135
8150
  });
8136
8151
  }, this.options.longPressDurationMs);
8137
8152
  }
8138
- this._selectedShapeIdsAtPointerDown = this.getSelectedShapeIds();
8153
+ if (!this._didCaptureSelectionAtPointerDown) {
8154
+ this._selectedShapeIdsAtPointerDown = this.getSelectedShapeIds();
8155
+ this._didCaptureSelectionAtPointerDown = true;
8156
+ }
8139
8157
  if (info.button === LEFT_MOUSE_BUTTON) this.capturedPointerId = info.pointerId;
8140
8158
  inputs.buttons.add(info.button);
8141
8159
  inputs.setIsPointing(true);
@@ -8208,6 +8226,7 @@ class Editor extends EventEmitter {
8208
8226
  if (this.inputs.getIsRightPointing() && !this.inputs.getIsPanning()) {
8209
8227
  this.inputs.setIsRightPointing(false);
8210
8228
  this._selectedShapeIdsAtPointerDown = [];
8229
+ this._didCaptureSelectionAtPointerDown = false;
8211
8230
  break;
8212
8231
  }
8213
8232
  this.inputs.setIsRightPointing(false);
@@ -8245,6 +8264,7 @@ class Editor extends EventEmitter {
8245
8264
  this.slideCamera({ speed: slideSpeed, direction: slideDirection });
8246
8265
  }
8247
8266
  this._selectedShapeIdsAtPointerDown = [];
8267
+ this._didCaptureSelectionAtPointerDown = false;
8248
8268
  return this;
8249
8269
  }
8250
8270
  }
@@ -8258,6 +8278,7 @@ class Editor extends EventEmitter {
8258
8278
  }
8259
8279
  }
8260
8280
  this._selectedShapeIdsAtPointerDown = [];
8281
+ this._didCaptureSelectionAtPointerDown = false;
8261
8282
  break;
8262
8283
  }
8263
8284
  }