@tldraw/editor 3.14.0-canary.fd2ad122b803 → 3.14.0-canary.ff61ab6deaa2

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 (206) hide show
  1. package/dist-cjs/index.d.ts +59 -63
  2. package/dist-cjs/index.js +10 -8
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/editor/Editor.js +21 -58
  5. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  6. package/dist-cjs/lib/editor/derivations/bindingsIndex.js +22 -22
  7. package/dist-cjs/lib/editor/derivations/bindingsIndex.js.map +2 -2
  8. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js +16 -20
  9. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js.map +3 -3
  10. package/dist-cjs/lib/editor/derivations/parentsToChildren.js +16 -16
  11. package/dist-cjs/lib/editor/derivations/parentsToChildren.js.map +2 -2
  12. package/dist-cjs/lib/editor/managers/{ClickManager.js → ClickManager/ClickManager.js} +1 -1
  13. package/dist-cjs/lib/editor/managers/ClickManager/ClickManager.js.map +7 -0
  14. package/dist-cjs/lib/editor/managers/{EdgeScrollManager.js → EdgeScrollManager/EdgeScrollManager.js} +2 -2
  15. package/dist-cjs/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.js.map +7 -0
  16. package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js.map +7 -0
  17. package/dist-cjs/lib/editor/managers/{FontManager.js → FontManager/FontManager.js} +5 -1
  18. package/dist-cjs/lib/editor/managers/FontManager/FontManager.js.map +7 -0
  19. package/dist-cjs/lib/editor/managers/{HistoryManager.js → HistoryManager/HistoryManager.js} +64 -6
  20. package/dist-cjs/lib/editor/managers/HistoryManager/HistoryManager.js.map +7 -0
  21. package/dist-cjs/lib/editor/managers/{ScribbleManager.js → ScribbleManager/ScribbleManager.js} +1 -1
  22. package/dist-cjs/lib/editor/managers/ScribbleManager/ScribbleManager.js.map +7 -0
  23. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js.map +7 -0
  24. package/dist-cjs/lib/editor/managers/{TickManager.js → TickManager/TickManager.js} +1 -1
  25. package/dist-cjs/lib/editor/managers/TickManager/TickManager.js.map +7 -0
  26. package/dist-cjs/lib/editor/managers/{UserPreferencesManager.js → UserPreferencesManager/UserPreferencesManager.js} +1 -1
  27. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +7 -0
  28. package/dist-cjs/lib/editor/shapes/ShapeUtil.js +8 -0
  29. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  30. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +6 -0
  31. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +2 -2
  32. package/dist-cjs/lib/exports/getSvgJsx.js.map +1 -1
  33. package/dist-cjs/lib/primitives/Box.js +39 -33
  34. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  35. package/dist-cjs/lib/primitives/Vec.js +13 -8
  36. package/dist-cjs/lib/primitives/Vec.js.map +2 -2
  37. package/dist-cjs/lib/primitives/geometry/Arc2d.js +41 -21
  38. package/dist-cjs/lib/primitives/geometry/Arc2d.js.map +2 -2
  39. package/dist-cjs/lib/primitives/geometry/Circle2d.js +11 -11
  40. package/dist-cjs/lib/primitives/geometry/Circle2d.js.map +2 -2
  41. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js +13 -16
  42. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js.map +2 -2
  43. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js +4 -4
  44. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js.map +2 -2
  45. package/dist-cjs/lib/primitives/geometry/Edge2d.js +14 -17
  46. package/dist-cjs/lib/primitives/geometry/Edge2d.js.map +2 -2
  47. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js +10 -10
  48. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js.map +2 -2
  49. package/dist-cjs/lib/primitives/geometry/Point2d.js +6 -6
  50. package/dist-cjs/lib/primitives/geometry/Point2d.js.map +2 -2
  51. package/dist-cjs/lib/primitives/geometry/Polygon2d.js +3 -0
  52. package/dist-cjs/lib/primitives/geometry/Polygon2d.js.map +2 -2
  53. package/dist-cjs/lib/primitives/geometry/Polyline2d.js +8 -5
  54. package/dist-cjs/lib/primitives/geometry/Polyline2d.js.map +2 -2
  55. package/dist-cjs/lib/primitives/geometry/Rectangle2d.js +22 -11
  56. package/dist-cjs/lib/primitives/geometry/Rectangle2d.js.map +2 -2
  57. package/dist-cjs/lib/primitives/geometry/Stadium2d.js +22 -22
  58. package/dist-cjs/lib/primitives/geometry/Stadium2d.js.map +2 -2
  59. package/dist-cjs/lib/utils/areShapesContentEqual.js +1 -1
  60. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +2 -2
  61. package/dist-cjs/lib/utils/reorderShapes.js +11 -10
  62. package/dist-cjs/lib/utils/reorderShapes.js.map +2 -2
  63. package/dist-cjs/lib/utils/richText.js.map +1 -1
  64. package/dist-cjs/version.js +3 -3
  65. package/dist-cjs/version.js.map +1 -1
  66. package/dist-esm/index.d.mts +59 -63
  67. package/dist-esm/index.mjs +14 -8
  68. package/dist-esm/index.mjs.map +2 -2
  69. package/dist-esm/lib/editor/Editor.mjs +21 -58
  70. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  71. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs +22 -22
  72. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs.map +2 -2
  73. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs +16 -20
  74. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs.map +3 -3
  75. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs +16 -16
  76. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs.map +2 -2
  77. package/dist-esm/lib/editor/managers/{ClickManager.mjs → ClickManager/ClickManager.mjs} +1 -1
  78. package/dist-esm/lib/editor/managers/ClickManager/ClickManager.mjs.map +7 -0
  79. package/dist-esm/lib/editor/managers/{EdgeScrollManager.mjs → EdgeScrollManager/EdgeScrollManager.mjs} +2 -2
  80. package/dist-esm/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs.map +7 -0
  81. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +7 -0
  82. package/dist-esm/lib/editor/managers/{FontManager.mjs → FontManager/FontManager.mjs} +5 -1
  83. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +7 -0
  84. package/dist-esm/lib/editor/managers/{HistoryManager.mjs → HistoryManager/HistoryManager.mjs} +60 -2
  85. package/dist-esm/lib/editor/managers/HistoryManager/HistoryManager.mjs.map +7 -0
  86. package/dist-esm/lib/editor/managers/{ScribbleManager.mjs → ScribbleManager/ScribbleManager.mjs} +1 -1
  87. package/dist-esm/lib/editor/managers/ScribbleManager/ScribbleManager.mjs.map +7 -0
  88. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +7 -0
  89. package/dist-esm/lib/editor/managers/{TickManager.mjs → TickManager/TickManager.mjs} +1 -1
  90. package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs.map +7 -0
  91. package/dist-esm/lib/editor/managers/{UserPreferencesManager.mjs → UserPreferencesManager/UserPreferencesManager.mjs} +1 -1
  92. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +7 -0
  93. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +8 -0
  94. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  95. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +6 -0
  96. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +2 -2
  97. package/dist-esm/lib/exports/getSvgJsx.mjs.map +1 -1
  98. package/dist-esm/lib/primitives/Box.mjs +39 -33
  99. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  100. package/dist-esm/lib/primitives/Vec.mjs +13 -8
  101. package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
  102. package/dist-esm/lib/primitives/geometry/Arc2d.mjs +41 -21
  103. package/dist-esm/lib/primitives/geometry/Arc2d.mjs.map +2 -2
  104. package/dist-esm/lib/primitives/geometry/Circle2d.mjs +11 -11
  105. package/dist-esm/lib/primitives/geometry/Circle2d.mjs.map +2 -2
  106. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs +13 -16
  107. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs.map +2 -2
  108. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs +4 -4
  109. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs.map +2 -2
  110. package/dist-esm/lib/primitives/geometry/Edge2d.mjs +14 -17
  111. package/dist-esm/lib/primitives/geometry/Edge2d.mjs.map +2 -2
  112. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs +11 -11
  113. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs.map +2 -2
  114. package/dist-esm/lib/primitives/geometry/Point2d.mjs +6 -6
  115. package/dist-esm/lib/primitives/geometry/Point2d.mjs.map +2 -2
  116. package/dist-esm/lib/primitives/geometry/Polygon2d.mjs +3 -0
  117. package/dist-esm/lib/primitives/geometry/Polygon2d.mjs.map +2 -2
  118. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs +8 -5
  119. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs.map +2 -2
  120. package/dist-esm/lib/primitives/geometry/Rectangle2d.mjs +22 -11
  121. package/dist-esm/lib/primitives/geometry/Rectangle2d.mjs.map +2 -2
  122. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs +22 -22
  123. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs.map +2 -2
  124. package/dist-esm/lib/utils/areShapesContentEqual.mjs +1 -1
  125. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +2 -2
  126. package/dist-esm/lib/utils/reorderShapes.mjs +11 -10
  127. package/dist-esm/lib/utils/reorderShapes.mjs.map +2 -2
  128. package/dist-esm/lib/utils/richText.mjs.map +1 -1
  129. package/dist-esm/version.mjs +3 -3
  130. package/dist-esm/version.mjs.map +1 -1
  131. package/package.json +7 -7
  132. package/src/index.ts +14 -7
  133. package/src/lib/editor/Editor.ts +24 -60
  134. package/src/lib/editor/derivations/bindingsIndex.ts +27 -26
  135. package/src/lib/editor/derivations/notVisibleShapes.ts +24 -25
  136. package/src/lib/editor/derivations/parentsToChildren.ts +28 -25
  137. package/src/lib/editor/managers/ClickManager/ClickManager.test.ts +442 -0
  138. package/src/lib/editor/managers/{ClickManager.ts → ClickManager/ClickManager.ts} +3 -3
  139. package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.test.ts +374 -0
  140. package/src/lib/editor/managers/{EdgeScrollManager.ts → EdgeScrollManager/EdgeScrollManager.ts} +3 -3
  141. package/src/lib/editor/managers/FocusManager/FocusManager.test.ts +455 -0
  142. package/src/lib/editor/managers/{FocusManager.ts → FocusManager/FocusManager.ts} +1 -1
  143. package/src/lib/editor/managers/FontManager/FontManager.test.ts +263 -0
  144. package/src/lib/editor/managers/{FontManager.ts → FontManager/FontManager.ts} +6 -2
  145. package/src/lib/editor/managers/{HistoryManager.test.ts → HistoryManager/HistoryManager.test.ts} +388 -1
  146. package/src/lib/editor/managers/{HistoryManager.ts → HistoryManager/HistoryManager.ts} +73 -2
  147. package/src/lib/editor/managers/ScribbleManager/ScribbleManager.test.ts +624 -0
  148. package/src/lib/editor/managers/{ScribbleManager.ts → ScribbleManager/ScribbleManager.ts} +2 -2
  149. package/src/lib/editor/managers/SnapManager/SnapManager.test.ts +485 -0
  150. package/src/lib/editor/managers/TextManager/TextManager.test.ts +411 -0
  151. package/src/lib/editor/managers/{TextManager.ts → TextManager/TextManager.ts} +1 -1
  152. package/src/lib/editor/managers/TickManager/TickManager.test.ts +314 -0
  153. package/src/lib/editor/managers/{TickManager.ts → TickManager/TickManager.ts} +2 -2
  154. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +591 -0
  155. package/src/lib/editor/managers/{UserPreferencesManager.ts → UserPreferencesManager/UserPreferencesManager.ts} +2 -2
  156. package/src/lib/editor/shapes/ShapeUtil.ts +10 -1
  157. package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +8 -0
  158. package/src/lib/exports/getSvgJsx.tsx +1 -1
  159. package/src/lib/primitives/Box.test.ts +588 -7
  160. package/src/lib/primitives/Box.ts +41 -33
  161. package/src/lib/primitives/Vec.test.ts +2 -2
  162. package/src/lib/primitives/Vec.ts +13 -8
  163. package/src/lib/primitives/geometry/Arc2d.ts +42 -23
  164. package/src/lib/primitives/geometry/Circle2d.ts +12 -12
  165. package/src/lib/primitives/geometry/CubicBezier2d.test.ts +5 -0
  166. package/src/lib/primitives/geometry/CubicBezier2d.ts +13 -17
  167. package/src/lib/primitives/geometry/CubicSpline2d.ts +5 -5
  168. package/src/lib/primitives/geometry/Edge2d.ts +14 -18
  169. package/src/lib/primitives/geometry/Ellipse2d.ts +12 -13
  170. package/src/lib/primitives/geometry/Point2d.ts +6 -6
  171. package/src/lib/primitives/geometry/Polygon2d.ts +4 -0
  172. package/src/lib/primitives/geometry/Polyline2d.ts +10 -7
  173. package/src/lib/primitives/geometry/Rectangle2d.ts +24 -11
  174. package/src/lib/primitives/geometry/Stadium2d.ts +22 -23
  175. package/src/lib/utils/areShapesContentEqual.ts +2 -1
  176. package/src/lib/utils/reorderShapes.ts +10 -13
  177. package/src/lib/utils/richText.ts +1 -1
  178. package/src/version.ts +3 -3
  179. package/dist-cjs/lib/editor/managers/ClickManager.js.map +0 -7
  180. package/dist-cjs/lib/editor/managers/EdgeScrollManager.js.map +0 -7
  181. package/dist-cjs/lib/editor/managers/FocusManager.js.map +0 -7
  182. package/dist-cjs/lib/editor/managers/FontManager.js.map +0 -7
  183. package/dist-cjs/lib/editor/managers/HistoryManager.js.map +0 -7
  184. package/dist-cjs/lib/editor/managers/ScribbleManager.js.map +0 -7
  185. package/dist-cjs/lib/editor/managers/Stack.js +0 -82
  186. package/dist-cjs/lib/editor/managers/Stack.js.map +0 -7
  187. package/dist-cjs/lib/editor/managers/TextManager.js.map +0 -7
  188. package/dist-cjs/lib/editor/managers/TickManager.js.map +0 -7
  189. package/dist-cjs/lib/editor/managers/UserPreferencesManager.js.map +0 -7
  190. package/dist-esm/lib/editor/managers/ClickManager.mjs.map +0 -7
  191. package/dist-esm/lib/editor/managers/EdgeScrollManager.mjs.map +0 -7
  192. package/dist-esm/lib/editor/managers/FocusManager.mjs.map +0 -7
  193. package/dist-esm/lib/editor/managers/FontManager.mjs.map +0 -7
  194. package/dist-esm/lib/editor/managers/HistoryManager.mjs.map +0 -7
  195. package/dist-esm/lib/editor/managers/ScribbleManager.mjs.map +0 -7
  196. package/dist-esm/lib/editor/managers/Stack.mjs +0 -62
  197. package/dist-esm/lib/editor/managers/Stack.mjs.map +0 -7
  198. package/dist-esm/lib/editor/managers/TextManager.mjs.map +0 -7
  199. package/dist-esm/lib/editor/managers/TickManager.mjs.map +0 -7
  200. package/dist-esm/lib/editor/managers/UserPreferencesManager.mjs.map +0 -7
  201. package/src/lib/editor/managers/ScribbleManager.test.ts +0 -32
  202. package/src/lib/editor/managers/Stack.ts +0 -71
  203. /package/dist-cjs/lib/editor/managers/{FocusManager.js → FocusManager/FocusManager.js} +0 -0
  204. /package/dist-cjs/lib/editor/managers/{TextManager.js → TextManager/TextManager.js} +0 -0
  205. /package/dist-esm/lib/editor/managers/{FocusManager.mjs → FocusManager/FocusManager.mjs} +0 -0
  206. /package/dist-esm/lib/editor/managers/{TextManager.mjs → TextManager/TextManager.mjs} +0 -0
@@ -147,16 +147,16 @@ import { bindingsIndex } from "./derivations/bindingsIndex.mjs";
147
147
  import { notVisibleShapes } from "./derivations/notVisibleShapes.mjs";
148
148
  import { parentsToChildren } from "./derivations/parentsToChildren.mjs";
149
149
  import { deriveShapeIdsInCurrentPage } from "./derivations/shapeIdsInCurrentPage.mjs";
150
- import { ClickManager } from "./managers/ClickManager.mjs";
151
- import { EdgeScrollManager } from "./managers/EdgeScrollManager.mjs";
152
- import { FocusManager } from "./managers/FocusManager.mjs";
153
- import { FontManager } from "./managers/FontManager.mjs";
154
- import { HistoryManager } from "./managers/HistoryManager.mjs";
155
- import { ScribbleManager } from "./managers/ScribbleManager.mjs";
150
+ import { ClickManager } from "./managers/ClickManager/ClickManager.mjs";
151
+ import { EdgeScrollManager } from "./managers/EdgeScrollManager/EdgeScrollManager.mjs";
152
+ import { FocusManager } from "./managers/FocusManager/FocusManager.mjs";
153
+ import { FontManager } from "./managers/FontManager/FontManager.mjs";
154
+ import { HistoryManager } from "./managers/HistoryManager/HistoryManager.mjs";
155
+ import { ScribbleManager } from "./managers/ScribbleManager/ScribbleManager.mjs";
156
156
  import { SnapManager } from "./managers/SnapManager/SnapManager.mjs";
157
- import { TextManager } from "./managers/TextManager.mjs";
158
- import { TickManager } from "./managers/TickManager.mjs";
159
- import { UserPreferencesManager } from "./managers/UserPreferencesManager.mjs";
157
+ import { TextManager } from "./managers/TextManager/TextManager.mjs";
158
+ import { TickManager } from "./managers/TickManager/TickManager.mjs";
159
+ import { UserPreferencesManager } from "./managers/UserPreferencesManager/UserPreferencesManager.mjs";
160
160
  import { RootState } from "./tools/RootState.mjs";
161
161
  class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed], _getCanUndo_dec = [computed], _getCanRedo_dec = [computed], _getPath_dec = [computed], _getCurrentTool_dec = [computed], _getCurrentToolId_dec = [computed], _getDocumentSettings_dec = [computed], _getInstanceState_dec = [computed], _getOpenMenus_dec = [computed], _getIsMenuOpen_dec = [computed], _getPageStates_dec = [computed], __getPageStatesQuery_dec = [computed], _getCurrentPageState_dec = [computed], __getCurrentPageStateId_dec = [computed], _getSelectedShapeIds_dec = [computed], _getSelectedShapes_dec = [computed], _getCurrentPageShapesInReadingOrder_dec = [computed], _getOnlySelectedShapeId_dec = [computed], _getOnlySelectedShape_dec = [computed], _getSelectionPageBounds_dec = [computed], _getSelectionRotation_dec = [computed], _getSelectionRotatedPageBounds_dec = [computed], _getSelectionRotatedScreenBounds_dec = [computed], _getFocusedGroupId_dec = [computed], _getFocusedGroup_dec = [computed], _getEditingShapeId_dec = [computed], _getEditingShape_dec = [computed], _getRichTextEditor_dec = [computed], _getHoveredShapeId_dec = [computed], _getHoveredShape_dec = [computed], _getHintingShapeIds_dec = [computed], _getHintingShape_dec = [computed], _getErasingShapeIds_dec = [computed], _getErasingShapes_dec = [computed], __unsafe_getCameraId_dec = [computed], _getCamera_dec = [computed], _getViewportPageBoundsForFollowing_dec = [computed], _getCameraForFollowing_dec = [computed], _getZoomLevel_dec = [computed], _getViewportScreenBounds_dec = [computed], _getViewportScreenCenter_dec = [computed], _getViewportPageBounds_dec = [computed], __getCollaboratorsQuery_dec = [computed], _getCollaborators_dec = [computed], _getCollaboratorsOnCurrentPage_dec = [computed], _getRenderingShapes_dec = [computed], __getAllPagesQuery_dec = [computed], _getPages_dec = [computed], _getCurrentPageId_dec = [computed], _getCurrentPageShapeIdsSorted_dec = [computed], __getAllAssetsQuery_dec = [computed], __getShapeHandlesCache_dec = [computed], __getShapePageTransformCache_dec = [computed], __getShapePageBoundsCache_dec = [computed], __getShapeClipPathCache_dec = [computed], __getShapeMaskCache_dec = [computed], __getShapeMaskedPageBoundsCache_dec = [computed], __notVisibleShapes_dec = [computed], _getCulledShapes_dec = [computed], _getCurrentPageBounds_dec = [computed], _getCurrentPageShapes_dec = [computed], _getCurrentPageShapesSorted_dec = [computed], _getCurrentPageRenderingShapesSorted_dec = [computed], __getBindingsIndexCache_dec = [computed], __getSelectionSharedStyles_dec = [computed], _getSharedStyles_dec = [computed({ isEqual: (a, b) => a.equals(b) })], _getSharedOpacity_dec = [computed], _getIsFocused_dec = [computed], _getIsReadonly_dec = [computed], __setShiftKeyTimeout_dec = [bind], __setAltKeyTimeout_dec = [bind], __setCtrlKeyTimeout_dec = [bind], __setMetaKeyTimeout_dec = [bind], _a) {
162
162
  constructor({
@@ -336,7 +336,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
336
336
  __publicField(this, "_currentPageShapeIds");
337
337
  /* --------------------- Shapes --------------------- */
338
338
  __publicField(this, "_shapeGeometryCaches", {});
339
- __publicField(this, "_shapePageGeometryCaches", {});
340
339
  // Parents and children
341
340
  /**
342
341
  * A cache of parents to children.
@@ -593,6 +592,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
593
592
  shape: {
594
593
  afterChange: (shapeBefore, shapeAfter) => {
595
594
  for (const binding of this.getBindingsInvolvingShape(shapeAfter)) {
595
+ if (areShapesContentEqual(shapeBefore, shapeAfter)) continue;
596
596
  invalidBindingTypes.add(binding.type);
597
597
  if (binding.fromId === shapeAfter.id) {
598
598
  this.getBindingUtil(binding).onAfterChangeFromShape?.({
@@ -2853,10 +2853,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
2853
2853
  }
2854
2854
  getViewportScreenCenter() {
2855
2855
  const viewportScreenBounds = this.getViewportScreenBounds();
2856
- return new Vec(
2857
- viewportScreenBounds.midX - viewportScreenBounds.minX,
2858
- viewportScreenBounds.midY - viewportScreenBounds.minY
2859
- );
2856
+ return new Vec(viewportScreenBounds.w / 2, viewportScreenBounds.h / 2);
2860
2857
  }
2861
2858
  getViewportPageBounds() {
2862
2859
  const { w, h } = this.getViewportScreenBounds();
@@ -3531,41 +3528,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3531
3528
  typeof shape === "string" ? shape : shape.id
3532
3529
  );
3533
3530
  }
3534
- /**
3535
- * Get the geometry of a shape in page-space.
3536
- *
3537
- * @example
3538
- * ```ts
3539
- * editor.getShapePageGeometry(myShape)
3540
- * editor.getShapePageGeometry(myShapeId)
3541
- * editor.getShapePageGeometry(myShapeId, { context: "arrow" })
3542
- * ```
3543
- *
3544
- * @param shape - The shape (or shape id) to get the geometry for.
3545
- * @param opts - Additional options about the request for geometry. Passed to {@link ShapeUtil.getGeometry}.
3546
- *
3547
- * @public
3548
- */
3549
- getShapePageGeometry(shape, opts) {
3550
- const context = opts?.context ?? "none";
3551
- if (!this._shapePageGeometryCaches[context]) {
3552
- this._shapePageGeometryCaches[context] = this.store.createComputedCache(
3553
- "bounds",
3554
- (shape2) => {
3555
- const geometry = this.getShapeGeometry(shape2.id, opts);
3556
- const pageTransform = this.getShapePageTransform(shape2.id);
3557
- return geometry.transform(pageTransform);
3558
- },
3559
- {
3560
- // we only depend directly on the shape id, and changing geometry/transform will update us anyway
3561
- areRecordsEqual: () => true
3562
- }
3563
- );
3564
- }
3565
- return this._shapePageGeometryCaches[context].get(
3566
- typeof shape === "string" ? shape : shape.id
3567
- );
3568
- }
3569
3531
  _getShapeHandlesCache() {
3570
3532
  return this.store.createComputedCache(
3571
3533
  "handles",
@@ -3659,7 +3621,10 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3659
3621
  }
3660
3622
  _getShapePageBoundsCache() {
3661
3623
  return this.store.createComputedCache("pageBoundsCache", (shape) => {
3662
- return this.getShapePageGeometry(shape).bounds;
3624
+ const pageTransform = this.getShapePageTransform(shape);
3625
+ if (!pageTransform) return void 0;
3626
+ const geometry = this.getShapeGeometry(shape);
3627
+ return Box.FromPoints(pageTransform.applyToPoints(geometry.vertices));
3663
3628
  });
3664
3629
  }
3665
3630
  /**
@@ -3716,12 +3681,11 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3716
3681
  (shape2) => this.isShapeOfType(shape2, "frame")
3717
3682
  );
3718
3683
  if (frameAncestors.length === 0) return void 0;
3719
- const pageMask = frameAncestors.map(
3720
- (s) => (
3721
- // Apply the frame transform to the frame outline to get the frame outline in the current page space
3722
- (this.getShapePageGeometry(s.id).vertices)
3723
- )
3724
- ).reduce((acc, b) => {
3684
+ const pageMask = frameAncestors.map((s) => {
3685
+ const geometry = this.getShapeGeometry(s.id);
3686
+ const pageTransform = this.getShapePageTransform(s.id);
3687
+ return pageTransform.applyToPoints(geometry.vertices);
3688
+ }).reduce((acc, b) => {
3725
3689
  if (!(b && acc)) return void 0;
3726
3690
  const intersection = intersectPolygonPolygon(acc, b);
3727
3691
  if (intersection) {
@@ -4373,8 +4337,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
4373
4337
  * @public
4374
4338
  */
4375
4339
  visitDescendants(parent, visitor) {
4376
- const parentId = typeof parent === "string" ? parent : parent.id;
4377
- const children = this.getSortedChildIdsForParent(parentId);
4340
+ const children = this.getSortedChildIdsForParent(parent);
4378
4341
  for (const id of children) {
4379
4342
  if (visitor(id) === false) continue;
4380
4343
  this.visitDescendants(id, visitor);