@tldraw/editor 4.4.0-canary.afdcafe834b3 → 4.4.0-canary.b56b70f6a630

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 (243) hide show
  1. package/dist-cjs/index.d.ts +127 -26
  2. package/dist-cjs/index.js +4 -7
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/TldrawEditor.js +20 -8
  5. package/dist-cjs/lib/TldrawEditor.js.map +2 -2
  6. package/dist-cjs/lib/components/ErrorBoundary.js.map +1 -1
  7. package/dist-cjs/lib/components/Shape.js +12 -17
  8. package/dist-cjs/lib/components/Shape.js.map +2 -2
  9. package/dist-cjs/lib/components/default-components/CanvasShapeIndicators.js +26 -1
  10. package/dist-cjs/lib/components/default-components/CanvasShapeIndicators.js.map +2 -2
  11. package/dist-cjs/lib/components/default-components/DefaultCanvas.js +31 -16
  12. package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
  13. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js +5 -6
  14. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js.map +2 -2
  15. package/dist-cjs/lib/components/default-components/DefaultLoadingScreen.js +2 -2
  16. package/dist-cjs/lib/components/default-components/DefaultLoadingScreen.js.map +2 -2
  17. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js +2 -2
  18. package/dist-cjs/lib/components/default-components/DefaultShapeIndicator.js.map +2 -2
  19. package/dist-cjs/lib/components/default-components/DefaultShapeIndicators.js +2 -2
  20. package/dist-cjs/lib/components/default-components/DefaultShapeIndicators.js.map +2 -2
  21. package/dist-cjs/lib/editor/Editor.js +44 -15
  22. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  23. package/dist-cjs/lib/editor/bindings/BindingUtil.js.map +1 -1
  24. package/dist-cjs/lib/editor/derivations/bindingsIndex.js.map +1 -1
  25. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js +32 -13
  26. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js.map +2 -2
  27. package/dist-cjs/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.js +2 -3
  28. package/dist-cjs/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.js.map +2 -2
  29. package/dist-cjs/lib/editor/managers/FontManager/FontManager.js.map +1 -1
  30. package/dist-cjs/lib/editor/managers/InputsManager/InputsManager.js.map +1 -1
  31. package/dist-cjs/lib/editor/managers/ScribbleManager/ScribbleManager.js.map +1 -1
  32. package/dist-cjs/lib/editor/managers/SnapManager/BoundsSnaps.js.map +1 -1
  33. package/dist-cjs/lib/editor/managers/SnapManager/HandleSnaps.js.map +1 -1
  34. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js.map +1 -1
  35. package/dist-cjs/lib/editor/managers/TickManager/TickManager.js.map +1 -1
  36. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  37. package/dist-cjs/lib/editor/shapes/shared/resizeBox.js.map +1 -1
  38. package/dist-cjs/lib/editor/tools/BaseBoxShapeTool/children/Pointing.js.map +1 -1
  39. package/dist-cjs/lib/editor/types/SvgExportContext.js.map +1 -1
  40. package/dist-cjs/lib/exports/exportToSvg.js.map +1 -1
  41. package/dist-cjs/lib/exports/getSvgJsx.js.map +1 -1
  42. package/dist-cjs/lib/{utils/hardResetEditor.js → hooks/EditorComponentsContext.js} +14 -8
  43. package/dist-cjs/lib/hooks/EditorComponentsContext.js.map +7 -0
  44. package/dist-cjs/lib/hooks/useCanvasEvents.js +10 -2
  45. package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
  46. package/dist-cjs/lib/hooks/useEditor.js.map +1 -1
  47. package/dist-cjs/lib/hooks/useEditorComponents.js +4 -10
  48. package/dist-cjs/lib/hooks/useEditorComponents.js.map +3 -3
  49. package/dist-cjs/lib/hooks/usePeerIds.js +8 -2
  50. package/dist-cjs/lib/hooks/usePeerIds.js.map +2 -2
  51. package/dist-cjs/lib/hooks/useShapeCulling.js +75 -0
  52. package/dist-cjs/lib/hooks/useShapeCulling.js.map +7 -0
  53. package/dist-cjs/lib/license/LicenseManager.js +6 -6
  54. package/dist-cjs/lib/license/LicenseManager.js.map +2 -2
  55. package/dist-cjs/lib/options.js +7 -1
  56. package/dist-cjs/lib/options.js.map +2 -2
  57. package/dist-cjs/lib/primitives/Vec.js +10 -5
  58. package/dist-cjs/lib/primitives/Vec.js.map +2 -2
  59. package/dist-cjs/lib/utils/areShapesContentEqual.js +3 -1
  60. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +2 -2
  61. package/dist-cjs/lib/utils/assets.js +4 -6
  62. package/dist-cjs/lib/utils/assets.js.map +2 -2
  63. package/dist-cjs/lib/utils/browserCanvasMaxSize.js +1 -2
  64. package/dist-cjs/lib/utils/browserCanvasMaxSize.js.map +2 -2
  65. package/dist-cjs/lib/utils/debug-flags.js.map +2 -2
  66. package/dist-cjs/lib/utils/deepLinks.js.map +1 -1
  67. package/dist-cjs/lib/utils/dom.js +3 -3
  68. package/dist-cjs/lib/utils/dom.js.map +2 -2
  69. package/dist-cjs/lib/utils/getIncrementedName.js +1 -1
  70. package/dist-cjs/lib/utils/getIncrementedName.js.map +2 -2
  71. package/dist-cjs/lib/utils/getPointerInfo.js.map +2 -2
  72. package/dist-cjs/lib/utils/getSvgPathFromPoints.js.map +1 -1
  73. package/dist-cjs/lib/utils/keyboard.js +2 -2
  74. package/dist-cjs/lib/utils/keyboard.js.map +2 -2
  75. package/dist-cjs/lib/utils/normalizeWheel.js +2 -5
  76. package/dist-cjs/lib/utils/normalizeWheel.js.map +2 -2
  77. package/dist-cjs/lib/utils/reorderShapes.js +6 -6
  78. package/dist-cjs/lib/utils/reorderShapes.js.map +2 -2
  79. package/dist-cjs/lib/utils/reparenting.js +3 -4
  80. package/dist-cjs/lib/utils/reparenting.js.map +2 -2
  81. package/dist-cjs/lib/utils/richText.js.map +1 -1
  82. package/dist-cjs/lib/utils/rotation.js.map +1 -1
  83. package/dist-cjs/lib/utils/runtime.js +12 -0
  84. package/dist-cjs/lib/utils/runtime.js.map +2 -2
  85. package/dist-cjs/version.js +3 -3
  86. package/dist-cjs/version.js.map +1 -1
  87. package/dist-esm/index.d.mts +127 -26
  88. package/dist-esm/index.mjs +8 -5
  89. package/dist-esm/index.mjs.map +2 -2
  90. package/dist-esm/lib/TldrawEditor.mjs +20 -8
  91. package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
  92. package/dist-esm/lib/components/ErrorBoundary.mjs.map +1 -1
  93. package/dist-esm/lib/components/Shape.mjs +12 -17
  94. package/dist-esm/lib/components/Shape.mjs.map +2 -2
  95. package/dist-esm/lib/components/default-components/CanvasShapeIndicators.mjs +27 -2
  96. package/dist-esm/lib/components/default-components/CanvasShapeIndicators.mjs.map +2 -2
  97. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +17 -2
  98. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
  99. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs +2 -3
  100. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs.map +2 -2
  101. package/dist-esm/lib/components/default-components/DefaultLoadingScreen.mjs +1 -1
  102. package/dist-esm/lib/components/default-components/DefaultLoadingScreen.mjs.map +1 -1
  103. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs +1 -1
  104. package/dist-esm/lib/components/default-components/DefaultShapeIndicator.mjs.map +2 -2
  105. package/dist-esm/lib/components/default-components/DefaultShapeIndicators.mjs +1 -1
  106. package/dist-esm/lib/components/default-components/DefaultShapeIndicators.mjs.map +2 -2
  107. package/dist-esm/lib/editor/Editor.mjs +44 -15
  108. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  109. package/dist-esm/lib/editor/bindings/BindingUtil.mjs.map +1 -1
  110. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs.map +1 -1
  111. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs +32 -13
  112. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs.map +2 -2
  113. package/dist-esm/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs +2 -3
  114. package/dist-esm/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs.map +2 -2
  115. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +1 -1
  116. package/dist-esm/lib/editor/managers/InputsManager/InputsManager.mjs.map +1 -1
  117. package/dist-esm/lib/editor/managers/ScribbleManager/ScribbleManager.mjs.map +1 -1
  118. package/dist-esm/lib/editor/managers/SnapManager/BoundsSnaps.mjs.map +1 -1
  119. package/dist-esm/lib/editor/managers/SnapManager/HandleSnaps.mjs.map +1 -1
  120. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +1 -1
  121. package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs.map +1 -1
  122. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  123. package/dist-esm/lib/editor/shapes/shared/resizeBox.mjs.map +1 -1
  124. package/dist-esm/lib/editor/tools/BaseBoxShapeTool/children/Pointing.mjs.map +1 -1
  125. package/dist-esm/lib/editor/types/SvgExportContext.mjs.map +1 -1
  126. package/dist-esm/lib/exports/exportToSvg.mjs.map +1 -1
  127. package/dist-esm/lib/exports/getSvgJsx.mjs.map +1 -1
  128. package/dist-esm/lib/hooks/EditorComponentsContext.mjs +14 -0
  129. package/dist-esm/lib/hooks/EditorComponentsContext.mjs.map +7 -0
  130. package/dist-esm/lib/hooks/useCanvasEvents.mjs +10 -2
  131. package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
  132. package/dist-esm/lib/hooks/useEditor.mjs.map +1 -1
  133. package/dist-esm/lib/hooks/useEditorComponents.mjs +12 -36
  134. package/dist-esm/lib/hooks/useEditorComponents.mjs.map +2 -2
  135. package/dist-esm/lib/hooks/usePeerIds.mjs +8 -2
  136. package/dist-esm/lib/hooks/usePeerIds.mjs.map +2 -2
  137. package/dist-esm/lib/hooks/useShapeCulling.mjs +55 -0
  138. package/dist-esm/lib/hooks/useShapeCulling.mjs.map +7 -0
  139. package/dist-esm/lib/license/LicenseManager.mjs +6 -6
  140. package/dist-esm/lib/license/LicenseManager.mjs.map +2 -2
  141. package/dist-esm/lib/options.mjs +7 -1
  142. package/dist-esm/lib/options.mjs.map +2 -2
  143. package/dist-esm/lib/primitives/Vec.mjs +6 -1
  144. package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
  145. package/dist-esm/lib/utils/areShapesContentEqual.mjs +3 -1
  146. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +2 -2
  147. package/dist-esm/lib/utils/assets.mjs +4 -6
  148. package/dist-esm/lib/utils/assets.mjs.map +2 -2
  149. package/dist-esm/lib/utils/browserCanvasMaxSize.mjs +1 -2
  150. package/dist-esm/lib/utils/browserCanvasMaxSize.mjs.map +2 -2
  151. package/dist-esm/lib/utils/debug-flags.mjs.map +2 -2
  152. package/dist-esm/lib/utils/deepLinks.mjs.map +1 -1
  153. package/dist-esm/lib/utils/dom.mjs +3 -3
  154. package/dist-esm/lib/utils/dom.mjs.map +2 -2
  155. package/dist-esm/lib/utils/getIncrementedName.mjs +1 -1
  156. package/dist-esm/lib/utils/getIncrementedName.mjs.map +2 -2
  157. package/dist-esm/lib/utils/getPointerInfo.mjs.map +2 -2
  158. package/dist-esm/lib/utils/getSvgPathFromPoints.mjs.map +1 -1
  159. package/dist-esm/lib/utils/keyboard.mjs +2 -2
  160. package/dist-esm/lib/utils/keyboard.mjs.map +2 -2
  161. package/dist-esm/lib/utils/normalizeWheel.mjs +2 -5
  162. package/dist-esm/lib/utils/normalizeWheel.mjs.map +2 -2
  163. package/dist-esm/lib/utils/reorderShapes.mjs +6 -6
  164. package/dist-esm/lib/utils/reorderShapes.mjs.map +2 -2
  165. package/dist-esm/lib/utils/reparenting.mjs +3 -4
  166. package/dist-esm/lib/utils/reparenting.mjs.map +2 -2
  167. package/dist-esm/lib/utils/richText.mjs.map +1 -1
  168. package/dist-esm/lib/utils/rotation.mjs.map +1 -1
  169. package/dist-esm/lib/utils/runtime.mjs +12 -0
  170. package/dist-esm/lib/utils/runtime.mjs.map +2 -2
  171. package/dist-esm/version.mjs +3 -3
  172. package/dist-esm/version.mjs.map +1 -1
  173. package/editor.css +22 -2
  174. package/package.json +10 -11
  175. package/src/index.ts +7 -4
  176. package/src/lib/TldrawEditor.tsx +34 -12
  177. package/src/lib/components/ErrorBoundary.tsx +1 -1
  178. package/src/lib/components/Shape.tsx +15 -16
  179. package/src/lib/components/default-components/CanvasShapeIndicators.tsx +46 -2
  180. package/src/lib/components/default-components/DefaultCanvas.tsx +25 -3
  181. package/src/lib/components/default-components/DefaultErrorFallback.tsx +2 -3
  182. package/src/lib/components/default-components/DefaultLoadingScreen.tsx +1 -1
  183. package/src/lib/components/default-components/DefaultShapeIndicator.tsx +1 -1
  184. package/src/lib/components/default-components/DefaultShapeIndicators.tsx +1 -1
  185. package/src/lib/editor/Editor.ts +74 -16
  186. package/src/lib/editor/bindings/BindingUtil.ts +1 -1
  187. package/src/lib/editor/derivations/bindingsIndex.ts +1 -1
  188. package/src/lib/editor/derivations/notVisibleShapes.ts +40 -18
  189. package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.test.ts +0 -35
  190. package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.ts +5 -9
  191. package/src/lib/editor/managers/FontManager/FontManager.ts +1 -1
  192. package/src/lib/editor/managers/InputsManager/InputsManager.ts +1 -1
  193. package/src/lib/editor/managers/ScribbleManager/ScribbleManager.ts +1 -1
  194. package/src/lib/editor/managers/SnapManager/BoundsSnaps.ts +2 -2
  195. package/src/lib/editor/managers/SnapManager/HandleSnaps.ts +2 -2
  196. package/src/lib/editor/managers/TextManager/TextManager.ts +1 -1
  197. package/src/lib/editor/managers/TickManager/TickManager.ts +1 -1
  198. package/src/lib/editor/shapes/ShapeUtil.ts +19 -5
  199. package/src/lib/editor/shapes/shared/resizeBox.ts +1 -1
  200. package/src/lib/editor/tools/BaseBoxShapeTool/children/Pointing.ts +2 -2
  201. package/src/lib/editor/types/SvgExportContext.tsx +1 -1
  202. package/src/lib/exports/exportToSvg.tsx +1 -1
  203. package/src/lib/exports/getSvgJsx.tsx +1 -1
  204. package/src/lib/hooks/EditorComponentsContext.tsx +63 -0
  205. package/src/lib/hooks/useCanvasEvents.ts +13 -2
  206. package/src/lib/hooks/useEditor.tsx +1 -1
  207. package/src/lib/hooks/useEditorComponents.tsx +20 -89
  208. package/src/lib/hooks/usePeerIds.ts +9 -2
  209. package/src/lib/hooks/useShapeCulling.tsx +98 -0
  210. package/src/lib/license/LicenseManager.ts +6 -6
  211. package/src/lib/options.ts +52 -2
  212. package/src/lib/primitives/Vec.ts +7 -1
  213. package/src/lib/utils/areShapesContentEqual.ts +9 -2
  214. package/src/lib/utils/assets.ts +15 -10
  215. package/src/lib/utils/browserCanvasMaxSize.ts +4 -2
  216. package/src/lib/utils/debug-flags.ts +0 -20
  217. package/src/lib/utils/deepLinks.ts +1 -1
  218. package/src/lib/utils/dom.ts +6 -7
  219. package/src/lib/utils/getIncrementedName.ts +1 -1
  220. package/src/lib/utils/getPointerInfo.ts +1 -0
  221. package/src/lib/utils/getSvgPathFromPoints.ts +1 -1
  222. package/src/lib/utils/keyboard.ts +6 -4
  223. package/src/lib/utils/normalizeWheel.ts +8 -8
  224. package/src/lib/utils/reorderShapes.ts +17 -8
  225. package/src/lib/utils/reparenting.ts +5 -10
  226. package/src/lib/utils/richText.ts +1 -1
  227. package/src/lib/utils/rotation.ts +1 -1
  228. package/src/lib/utils/runtime.ts +26 -1
  229. package/src/version.ts +3 -3
  230. package/dist-cjs/lib/utils/hardResetEditor.js.map +0 -7
  231. package/dist-cjs/lib/utils/refreshPage.js +0 -28
  232. package/dist-cjs/lib/utils/refreshPage.js.map +0 -7
  233. package/dist-cjs/lib/utils/window-open.js +0 -28
  234. package/dist-cjs/lib/utils/window-open.js.map +0 -7
  235. package/dist-esm/lib/utils/hardResetEditor.mjs +0 -8
  236. package/dist-esm/lib/utils/hardResetEditor.mjs.map +0 -7
  237. package/dist-esm/lib/utils/refreshPage.mjs +0 -8
  238. package/dist-esm/lib/utils/refreshPage.mjs.map +0 -7
  239. package/dist-esm/lib/utils/window-open.mjs +0 -8
  240. package/dist-esm/lib/utils/window-open.mjs.map +0 -7
  241. package/src/lib/utils/hardResetEditor.ts +0 -6
  242. package/src/lib/utils/refreshPage.ts +0 -6
  243. package/src/lib/utils/window-open.ts +0 -16
@@ -139,6 +139,7 @@ import {
139
139
  } from "../utils/deepLinks.mjs";
140
140
  import { getIncrementedName } from "../utils/getIncrementedName.mjs";
141
141
  import { getReorderingShapesChanges } from "../utils/reorderShapes.mjs";
142
+ import { getDroppedShapesToNewParents } from "../utils/reparenting.mjs";
142
143
  import { applyRotationToSnapshotShapes, getRotationSnapshot } from "../utils/rotation.mjs";
143
144
  import { bindingsIndex } from "./derivations/bindingsIndex.mjs";
144
145
  import { notVisibleShapes } from "./derivations/notVisibleShapes.mjs";
@@ -165,12 +166,16 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
165
166
  bindingUtils,
166
167
  tools,
167
168
  getContainer,
169
+ // needs to be here for backwards compatibility with TldrawEditor
170
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
168
171
  cameraOptions,
169
- textOptions,
170
172
  initialState,
171
173
  autoFocus,
172
174
  inferDarkMode,
173
- options,
175
+ options: _options,
176
+ // needs to be here for backwards compatibility with TldrawEditor
177
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
178
+ textOptions: _textOptions,
174
179
  getShapeVisibility,
175
180
  fontAssetUrls
176
181
  }) {
@@ -331,7 +336,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
331
336
  // unmount / remount in the DOM, which is expensive; and computing visibility is
332
337
  // also expensive in large projects. For this reason, we use a second bounding
333
338
  // box just for rendering, and we only update after the camera stops moving.
334
- __publicField(this, "_cameraState", atom("camera state", "idle"));
335
339
  __publicField(this, "_cameraStateTimeoutRemaining", 0);
336
340
  /* @internal */
337
341
  __publicField(this, "_currentPageShapeIds");
@@ -404,6 +408,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
404
408
  __publicField(this, "handledEvents", /* @__PURE__ */ new WeakSet());
405
409
  __publicField(this, "_pendingEventsForNextTick", []);
406
410
  this._getShapeVisibility = getShapeVisibility;
411
+ const options = _textOptions ? { ..._options, text: _options?.text ?? _textOptions } : _options;
407
412
  this.options = { ...defaultTldrawOptions, ...options };
408
413
  this.store = store;
409
414
  this.history = new HistoryManager({
@@ -417,8 +422,12 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
417
422
  this._spatialIndex = new SpatialIndexManager(this);
418
423
  this.disposables.add(() => this._spatialIndex.dispose());
419
424
  this.disposables.add(this.timers.dispose);
420
- this._cameraOptions.set({ ...DEFAULT_CAMERA_OPTIONS, ...cameraOptions });
421
- this._textOptions = atom("text options", textOptions ?? null);
425
+ this._cameraOptions.set({
426
+ ...DEFAULT_CAMERA_OPTIONS,
427
+ ...cameraOptions,
428
+ ...options?.camera
429
+ });
430
+ this._textOptions = atom("text options", options?.text ?? null);
422
431
  this.user = new UserPreferencesManager(user ?? createTLUser(), inferDarkMode ?? false);
423
432
  this.disposables.add(() => this.user.dispose());
424
433
  this.getContainer = getContainer;
@@ -3121,15 +3130,18 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3121
3130
  this._cameraStateTimeoutRemaining -= elapsed;
3122
3131
  if (this._cameraStateTimeoutRemaining > 0) return;
3123
3132
  this.off("tick", this._decayCameraStateTimeout);
3124
- this._cameraState.set("idle");
3133
+ this._setCameraState("idle");
3125
3134
  }
3126
3135
  _tickCameraState() {
3127
3136
  this._cameraStateTimeoutRemaining = this.options.cameraMovingTimeoutMs;
3128
- if (this._cameraState.__unsafe__getWithoutCapture() !== "idle") return;
3129
- this._cameraState.set("moving");
3137
+ if (this.getInstanceState().cameraState !== "idle") return;
3138
+ this._setCameraState("moving");
3130
3139
  this._debouncedZoomLevel.set(unsafe__withoutCapture(() => this.getCamera().z));
3131
3140
  this.on("tick", this._decayCameraStateTimeout);
3132
3141
  }
3142
+ _setCameraState(cameraState) {
3143
+ this.updateInstanceState({ cameraState }, { history: "ignore" });
3144
+ }
3133
3145
  /**
3134
3146
  * Whether the camera is moving or idle.
3135
3147
  *
@@ -3141,7 +3153,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3141
3153
  * @public
3142
3154
  */
3143
3155
  getCameraState() {
3144
- return this._cameraState.get();
3156
+ return this.getInstanceState().cameraState;
3145
3157
  }
3146
3158
  getRenderingShapes() {
3147
3159
  const renderingShapes = this.getUnorderedRenderingShapes(true);
@@ -4086,7 +4098,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
4086
4098
  * @param bounds - The bounds to search within.
4087
4099
  * @returns Unordered set of shape IDs within the given bounds.
4088
4100
  *
4089
- * @internal
4101
+ * @public
4090
4102
  */
4091
4103
  getShapeIdsInsideBounds(bounds) {
4092
4104
  return this._spatialIndex.getShapeIdsInsideBounds(bounds);
@@ -4629,7 +4641,13 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
4629
4641
  const fromShapeType = typeof fromShape === "string" ? fromShape : fromShape.type;
4630
4642
  const toShapeType = typeof toShape === "string" ? toShape : toShape.type;
4631
4643
  const bindingType = typeof binding === "string" ? binding : binding.type;
4632
- const canBindOpts = { fromShapeType, toShapeType, bindingType };
4644
+ const canBindOpts = {
4645
+ fromShape: typeof fromShape === "string" ? { type: fromShape } : fromShape,
4646
+ toShape: typeof toShape === "string" ? { type: toShape } : toShape,
4647
+ bindingType,
4648
+ fromShapeType,
4649
+ toShapeType
4650
+ };
4633
4651
  if (fromShapeType === toShapeType) {
4634
4652
  return this.getShapeUtil(fromShapeType).canBind(canBindOpts);
4635
4653
  }
@@ -5769,7 +5787,8 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
5769
5787
  this.resizeShape(id, shapeScale, {
5770
5788
  initialShape: options.initialShape,
5771
5789
  initialBounds: options.initialBounds,
5772
- isAspectRatioLocked: options.isAspectRatioLocked
5790
+ isAspectRatioLocked: options.isAspectRatioLocked,
5791
+ initialPageTransform: options.initialPageTransform
5773
5792
  });
5774
5793
  if (Math.sign(scale.x) * Math.sign(scale.y) < 0) {
5775
5794
  const parentRotation = this.getShapeParentTransform(id).rotation();
@@ -6927,6 +6946,17 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
6927
6946
  return { id: s.id, type: s.type, x: s.x + localDelta.x, y: s.y + localDelta.y };
6928
6947
  })
6929
6948
  );
6949
+ if (isPageId(pasteParentId)) {
6950
+ const currentRootShapes = compact(rootShapes.map((s) => this.getShape(s.id)));
6951
+ const { reparenting } = getDroppedShapesToNewParents(this, currentRootShapes);
6952
+ reparenting.forEach((childrenToReparent, newParentId) => {
6953
+ if (childrenToReparent.length === 0) return;
6954
+ this.reparentShapes(
6955
+ childrenToReparent.map((s) => s.id),
6956
+ newParentId
6957
+ );
6958
+ });
6959
+ }
6930
6960
  });
6931
6961
  return this;
6932
6962
  }
@@ -7600,9 +7630,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
7600
7630
  case "pinch_start": {
7601
7631
  if (inputs.getIsPinching()) return;
7602
7632
  if (!inputs.getIsEditing()) {
7603
- if (!this._selectedShapeIdsAtPointerDown.length) {
7604
- this._selectedShapeIdsAtPointerDown = [...pageState.selectedShapeIds];
7605
- }
7633
+ this._selectedShapeIdsAtPointerDown = [...pageState.selectedShapeIds];
7606
7634
  this._didPinch = true;
7607
7635
  inputs.setIsPinching(true);
7608
7636
  this.interrupt();
@@ -7817,6 +7845,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
7817
7845
  this.setCurrentTool(this._restoreToolId);
7818
7846
  }
7819
7847
  }
7848
+ this._selectedShapeIdsAtPointerDown = [];
7820
7849
  break;
7821
7850
  }
7822
7851
  }