@tldraw/editor 3.14.0-canary.7cedd47b7a3a → 3.14.0-canary.8141719daaf3

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 (149) hide show
  1. package/dist-cjs/index.d.ts +44 -60
  2. package/dist-cjs/index.js +8 -10
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/config/TLSessionStateSnapshot.js +1 -12
  5. package/dist-cjs/lib/config/TLSessionStateSnapshot.js.map +3 -3
  6. package/dist-cjs/lib/editor/Editor.js +51 -76
  7. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  8. package/dist-cjs/lib/editor/bindings/BindingUtil.js.map +2 -2
  9. package/dist-cjs/lib/editor/derivations/bindingsIndex.js +22 -22
  10. package/dist-cjs/lib/editor/derivations/bindingsIndex.js.map +2 -2
  11. package/dist-cjs/lib/editor/derivations/parentsToChildren.js +16 -16
  12. package/dist-cjs/lib/editor/derivations/parentsToChildren.js.map +2 -2
  13. package/dist-cjs/lib/editor/managers/{ClickManager.js → ClickManager/ClickManager.js} +1 -1
  14. package/dist-cjs/lib/editor/managers/ClickManager/ClickManager.js.map +7 -0
  15. package/dist-cjs/lib/editor/managers/{EdgeScrollManager.js → EdgeScrollManager/EdgeScrollManager.js} +2 -2
  16. package/dist-cjs/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.js.map +7 -0
  17. package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js.map +7 -0
  18. package/dist-cjs/lib/editor/managers/{FontManager.js → FontManager/FontManager.js} +4 -1
  19. package/dist-cjs/lib/editor/managers/FontManager/FontManager.js.map +7 -0
  20. package/dist-cjs/lib/editor/managers/{HistoryManager.js → HistoryManager/HistoryManager.js} +64 -6
  21. package/dist-cjs/lib/editor/managers/HistoryManager/HistoryManager.js.map +7 -0
  22. package/dist-cjs/lib/editor/managers/{ScribbleManager.js → ScribbleManager/ScribbleManager.js} +1 -1
  23. package/dist-cjs/lib/editor/managers/ScribbleManager/ScribbleManager.js.map +7 -0
  24. package/dist-cjs/lib/editor/managers/{TextManager.js → TextManager/TextManager.js} +72 -42
  25. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js.map +7 -0
  26. package/dist-cjs/lib/editor/managers/{TickManager.js → TickManager/TickManager.js} +1 -1
  27. package/dist-cjs/lib/editor/managers/TickManager/TickManager.js.map +7 -0
  28. package/dist-cjs/lib/editor/managers/{UserPreferencesManager.js → UserPreferencesManager/UserPreferencesManager.js} +1 -1
  29. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +7 -0
  30. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +1 -1
  31. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +1 -1
  32. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +1 -1
  33. package/dist-cjs/lib/exports/getSvgJsx.js.map +1 -1
  34. package/dist-cjs/lib/primitives/Box.js +33 -39
  35. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  36. package/dist-cjs/lib/utils/areShapesContentEqual.js +1 -1
  37. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +2 -2
  38. package/dist-cjs/lib/utils/reorderShapes.js +11 -10
  39. package/dist-cjs/lib/utils/reorderShapes.js.map +2 -2
  40. package/dist-cjs/lib/utils/richText.js +7 -2
  41. package/dist-cjs/lib/utils/richText.js.map +2 -2
  42. package/dist-cjs/version.js +3 -3
  43. package/dist-cjs/version.js.map +1 -1
  44. package/dist-esm/index.d.mts +44 -60
  45. package/dist-esm/index.mjs +12 -10
  46. package/dist-esm/index.mjs.map +2 -2
  47. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs +1 -1
  48. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs.map +2 -2
  49. package/dist-esm/lib/editor/Editor.mjs +51 -76
  50. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  51. package/dist-esm/lib/editor/bindings/BindingUtil.mjs.map +2 -2
  52. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs +22 -22
  53. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs.map +2 -2
  54. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs +16 -16
  55. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs.map +2 -2
  56. package/dist-esm/lib/editor/managers/{ClickManager.mjs → ClickManager/ClickManager.mjs} +1 -1
  57. package/dist-esm/lib/editor/managers/ClickManager/ClickManager.mjs.map +7 -0
  58. package/dist-esm/lib/editor/managers/{EdgeScrollManager.mjs → EdgeScrollManager/EdgeScrollManager.mjs} +2 -2
  59. package/dist-esm/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs.map +7 -0
  60. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +7 -0
  61. package/dist-esm/lib/editor/managers/{FontManager.mjs → FontManager/FontManager.mjs} +4 -1
  62. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +7 -0
  63. package/dist-esm/lib/editor/managers/{HistoryManager.mjs → HistoryManager/HistoryManager.mjs} +60 -2
  64. package/dist-esm/lib/editor/managers/HistoryManager/HistoryManager.mjs.map +7 -0
  65. package/dist-esm/lib/editor/managers/{ScribbleManager.mjs → ScribbleManager/ScribbleManager.mjs} +1 -1
  66. package/dist-esm/lib/editor/managers/ScribbleManager/ScribbleManager.mjs.map +7 -0
  67. package/dist-esm/lib/editor/managers/{TextManager.mjs → TextManager/TextManager.mjs} +72 -42
  68. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +7 -0
  69. package/dist-esm/lib/editor/managers/{TickManager.mjs → TickManager/TickManager.mjs} +1 -1
  70. package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs.map +7 -0
  71. package/dist-esm/lib/editor/managers/{UserPreferencesManager.mjs → UserPreferencesManager/UserPreferencesManager.mjs} +1 -1
  72. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +7 -0
  73. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +1 -1
  74. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +1 -1
  75. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +1 -1
  76. package/dist-esm/lib/exports/getSvgJsx.mjs.map +1 -1
  77. package/dist-esm/lib/primitives/Box.mjs +33 -39
  78. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  79. package/dist-esm/lib/utils/areShapesContentEqual.mjs +1 -1
  80. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +2 -2
  81. package/dist-esm/lib/utils/reorderShapes.mjs +11 -10
  82. package/dist-esm/lib/utils/reorderShapes.mjs.map +2 -2
  83. package/dist-esm/lib/utils/richText.mjs +8 -3
  84. package/dist-esm/lib/utils/richText.mjs.map +2 -2
  85. package/dist-esm/version.mjs +3 -3
  86. package/dist-esm/version.mjs.map +1 -1
  87. package/editor.css +458 -523
  88. package/package.json +8 -9
  89. package/src/index.ts +14 -8
  90. package/src/lib/config/TLSessionStateSnapshot.ts +1 -1
  91. package/src/lib/editor/Editor.test.ts +252 -3
  92. package/src/lib/editor/Editor.ts +50 -75
  93. package/src/lib/editor/bindings/BindingUtil.ts +6 -0
  94. package/src/lib/editor/derivations/bindingsIndex.ts +27 -26
  95. package/src/lib/editor/derivations/parentsToChildren.ts +28 -25
  96. package/src/lib/editor/managers/ClickManager/ClickManager.test.ts +442 -0
  97. package/src/lib/editor/managers/{ClickManager.ts → ClickManager/ClickManager.ts} +3 -3
  98. package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.test.ts +374 -0
  99. package/src/lib/editor/managers/{EdgeScrollManager.ts → EdgeScrollManager/EdgeScrollManager.ts} +3 -3
  100. package/src/lib/editor/managers/FocusManager/FocusManager.test.ts +455 -0
  101. package/src/lib/editor/managers/{FocusManager.ts → FocusManager/FocusManager.ts} +1 -1
  102. package/src/lib/editor/managers/FontManager/FontManager.test.ts +263 -0
  103. package/src/lib/editor/managers/{FontManager.ts → FontManager/FontManager.ts} +5 -2
  104. package/src/lib/editor/managers/{HistoryManager.test.ts → HistoryManager/HistoryManager.test.ts} +388 -1
  105. package/src/lib/editor/managers/{HistoryManager.ts → HistoryManager/HistoryManager.ts} +73 -2
  106. package/src/lib/editor/managers/ScribbleManager/ScribbleManager.test.ts +624 -0
  107. package/src/lib/editor/managers/{ScribbleManager.ts → ScribbleManager/ScribbleManager.ts} +2 -2
  108. package/src/lib/editor/managers/SnapManager/SnapManager.test.ts +485 -0
  109. package/src/lib/editor/managers/TextManager/TextManager.test.ts +407 -0
  110. package/src/lib/editor/managers/{TextManager.ts → TextManager/TextManager.ts} +117 -87
  111. package/src/lib/editor/managers/TickManager/TickManager.test.ts +314 -0
  112. package/src/lib/editor/managers/{TickManager.ts → TickManager/TickManager.ts} +2 -2
  113. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +591 -0
  114. package/src/lib/editor/managers/{UserPreferencesManager.ts → UserPreferencesManager/UserPreferencesManager.ts} +2 -2
  115. package/src/lib/editor/shapes/ShapeUtil.ts +1 -1
  116. package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +1 -1
  117. package/src/lib/exports/getSvgJsx.tsx +1 -1
  118. package/src/lib/primitives/Box.test.ts +588 -7
  119. package/src/lib/primitives/Box.ts +33 -41
  120. package/src/lib/utils/areShapesContentEqual.ts +1 -2
  121. package/src/lib/utils/reorderShapes.ts +10 -13
  122. package/src/lib/utils/richText.ts +10 -4
  123. package/src/version.ts +3 -3
  124. package/dist-cjs/lib/editor/managers/ClickManager.js.map +0 -7
  125. package/dist-cjs/lib/editor/managers/EdgeScrollManager.js.map +0 -7
  126. package/dist-cjs/lib/editor/managers/FocusManager.js.map +0 -7
  127. package/dist-cjs/lib/editor/managers/FontManager.js.map +0 -7
  128. package/dist-cjs/lib/editor/managers/HistoryManager.js.map +0 -7
  129. package/dist-cjs/lib/editor/managers/ScribbleManager.js.map +0 -7
  130. package/dist-cjs/lib/editor/managers/Stack.js +0 -82
  131. package/dist-cjs/lib/editor/managers/Stack.js.map +0 -7
  132. package/dist-cjs/lib/editor/managers/TextManager.js.map +0 -7
  133. package/dist-cjs/lib/editor/managers/TickManager.js.map +0 -7
  134. package/dist-cjs/lib/editor/managers/UserPreferencesManager.js.map +0 -7
  135. package/dist-esm/lib/editor/managers/ClickManager.mjs.map +0 -7
  136. package/dist-esm/lib/editor/managers/EdgeScrollManager.mjs.map +0 -7
  137. package/dist-esm/lib/editor/managers/FocusManager.mjs.map +0 -7
  138. package/dist-esm/lib/editor/managers/FontManager.mjs.map +0 -7
  139. package/dist-esm/lib/editor/managers/HistoryManager.mjs.map +0 -7
  140. package/dist-esm/lib/editor/managers/ScribbleManager.mjs.map +0 -7
  141. package/dist-esm/lib/editor/managers/Stack.mjs +0 -62
  142. package/dist-esm/lib/editor/managers/Stack.mjs.map +0 -7
  143. package/dist-esm/lib/editor/managers/TextManager.mjs.map +0 -7
  144. package/dist-esm/lib/editor/managers/TickManager.mjs.map +0 -7
  145. package/dist-esm/lib/editor/managers/UserPreferencesManager.mjs.map +0 -7
  146. package/src/lib/editor/managers/ScribbleManager.test.ts +0 -32
  147. package/src/lib/editor/managers/Stack.ts +0 -71
  148. /package/dist-cjs/lib/editor/managers/{FocusManager.js → FocusManager/FocusManager.js} +0 -0
  149. /package/dist-esm/lib/editor/managers/{FocusManager.mjs → FocusManager/FocusManager.mjs} +0 -0
@@ -46,7 +46,7 @@ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use
46
46
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
47
47
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
48
48
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
49
- var __setMetaKeyTimeout_dec, __setCtrlKeyTimeout_dec, __setAltKeyTimeout_dec, __setShiftKeyTimeout_dec, _getIsReadonly_dec, _getIsFocused_dec, _getSharedOpacity_dec, _getSharedStyles_dec, __getSelectionSharedStyles_dec, __getBindingsIndexCache_dec, _getCurrentPageRenderingShapesSorted_dec, _getCurrentPageShapesSorted_dec, _getCurrentPageShapes_dec, _getCurrentPageBounds_dec, _getCulledShapes_dec, __notVisibleShapes_dec, __getShapeMaskedPageBoundsCache_dec, __getShapeMaskCache_dec, __getShapeClipPathCache_dec, __getShapePageBoundsCache_dec, __getShapePageTransformCache_dec, __getShapeHandlesCache_dec, __getAllAssetsQuery_dec, _getCurrentPageShapeIdsSorted_dec, _getCurrentPageId_dec, _getPages_dec, __getAllPagesQuery_dec, _getRenderingShapes_dec, _getCollaboratorsOnCurrentPage_dec, _getCollaborators_dec, __getCollaboratorsQuery_dec, _getViewportPageBounds_dec, _getViewportScreenCenter_dec, _getViewportScreenBounds_dec, _getZoomLevel_dec, _getCameraForFollowing_dec, _getViewportPageBoundsForFollowing_dec, _getCamera_dec, __unsafe_getCameraId_dec, _getErasingShapes_dec, _getErasingShapeIds_dec, _getHintingShape_dec, _getHintingShapeIds_dec, _getHoveredShape_dec, _getHoveredShapeId_dec, _getRichTextEditor_dec, _getEditingShape_dec, _getEditingShapeId_dec, _getFocusedGroup_dec, _getFocusedGroupId_dec, _getSelectionRotatedScreenBounds_dec, _getSelectionRotatedPageBounds_dec, _getSelectionRotation_dec, _getSelectionPageBounds_dec, _getOnlySelectedShape_dec, _getOnlySelectedShapeId_dec, _getCurrentPageShapesInReadingOrder_dec, _getSelectedShapes_dec, _getSelectedShapeIds_dec, __getCurrentPageStateId_dec, _getCurrentPageState_dec, __getPageStatesQuery_dec, _getPageStates_dec, _getIsMenuOpen_dec, _getOpenMenus_dec, _getInstanceState_dec, _getDocumentSettings_dec, _getCurrentToolId_dec, _getCurrentTool_dec, _getPath_dec, _getCanRedo_dec, _getCanUndo_dec, _getIsShapeHiddenCache_dec, _a, _init;
49
+ var __setMetaKeyTimeout_dec, __setCtrlKeyTimeout_dec, __setAltKeyTimeout_dec, __setShiftKeyTimeout_dec, _getIsReadonly_dec, _getIsFocused_dec, _getSharedOpacity_dec, _getSharedStyles_dec, __getSelectionSharedStyles_dec, __getBindingsIndexCache_dec, _getCurrentPageRenderingShapesSorted_dec, _getCurrentPageShapesSorted_dec, _getCurrentPageShapes_dec, _getCurrentPageBounds_dec, _getCulledShapes_dec, _getNotVisibleShapes_dec, __getShapeMaskedPageBoundsCache_dec, __getShapeMaskCache_dec, __getShapeClipPathCache_dec, __getShapePageBoundsCache_dec, __getShapePageTransformCache_dec, __getShapeHandlesCache_dec, __getAllAssetsQuery_dec, _getCurrentPageShapeIdsSorted_dec, _getCurrentPageId_dec, _getPages_dec, __getAllPagesQuery_dec, _getRenderingShapes_dec, _getCollaboratorsOnCurrentPage_dec, _getCollaborators_dec, __getCollaboratorsQuery_dec, _getViewportPageBounds_dec, _getViewportScreenCenter_dec, _getViewportScreenBounds_dec, _getZoomLevel_dec, _getCameraForFollowing_dec, _getViewportPageBoundsForFollowing_dec, _getCamera_dec, __unsafe_getCameraId_dec, _getErasingShapes_dec, _getErasingShapeIds_dec, _getHintingShape_dec, _getHintingShapeIds_dec, _getHoveredShape_dec, _getHoveredShapeId_dec, _getRichTextEditor_dec, _getEditingShape_dec, _getEditingShapeId_dec, _getFocusedGroup_dec, _getFocusedGroupId_dec, _getSelectionRotatedScreenBounds_dec, _getSelectionRotatedPageBounds_dec, _getSelectionRotation_dec, _getSelectionPageBounds_dec, _getOnlySelectedShape_dec, _getOnlySelectedShapeId_dec, _getCurrentPageShapesInReadingOrder_dec, _getSelectedShapes_dec, _getSelectedShapeIds_dec, __getCurrentPageStateId_dec, _getCurrentPageState_dec, __getPageStatesQuery_dec, _getPageStates_dec, _getIsMenuOpen_dec, _getOpenMenus_dec, _getInstanceState_dec, _getDocumentSettings_dec, _getCurrentToolId_dec, _getCurrentTool_dec, _getPath_dec, _getCanRedo_dec, _getCanUndo_dec, _getIsShapeHiddenCache_dec, _a, _init;
50
50
  import {
51
51
  EMPTY_ARRAY,
52
52
  atom,
@@ -147,18 +147,18 @@ 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
- 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) {
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], _getNotVisibleShapes_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({
163
163
  store,
164
164
  user,
@@ -336,7 +336,7 @@ 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", {});
339
+ __publicField(this, "_notVisibleShapes", notVisibleShapes(this));
340
340
  // Parents and children
341
341
  /**
342
342
  * A cache of parents to children.
@@ -473,6 +473,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
473
473
  this.disposables.add(() => this.user.dispose());
474
474
  this.getContainer = getContainer;
475
475
  this.textMeasure = new TextManager(this);
476
+ this.disposables.add(() => this.textMeasure.dispose());
476
477
  this.fonts = new FontManager(this, fontAssetUrls);
477
478
  this._tickManager = new TickManager(this);
478
479
  class NewRoot extends RootState {
@@ -593,20 +594,21 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
593
594
  shape: {
594
595
  afterChange: (shapeBefore, shapeAfter) => {
595
596
  for (const binding of this.getBindingsInvolvingShape(shapeAfter)) {
596
- if (areShapesContentEqual(shapeBefore, shapeAfter)) continue;
597
597
  invalidBindingTypes.add(binding.type);
598
598
  if (binding.fromId === shapeAfter.id) {
599
599
  this.getBindingUtil(binding).onAfterChangeFromShape?.({
600
600
  binding,
601
601
  shapeBefore,
602
- shapeAfter
602
+ shapeAfter,
603
+ reason: "self"
603
604
  });
604
605
  }
605
606
  if (binding.toId === shapeAfter.id) {
606
607
  this.getBindingUtil(binding).onAfterChangeToShape?.({
607
608
  binding,
608
609
  shapeBefore,
609
- shapeAfter
610
+ shapeAfter,
611
+ reason: "self"
610
612
  });
611
613
  }
612
614
  }
@@ -620,14 +622,16 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
620
622
  this.getBindingUtil(binding).onAfterChangeFromShape?.({
621
623
  binding,
622
624
  shapeBefore: descendantShape,
623
- shapeAfter: descendantShape
625
+ shapeAfter: descendantShape,
626
+ reason: "ancestry"
624
627
  });
625
628
  }
626
629
  if (binding.toId === descendantShape.id) {
627
630
  this.getBindingUtil(binding).onAfterChangeToShape?.({
628
631
  binding,
629
632
  shapeBefore: descendantShape,
630
- shapeAfter: descendantShape
633
+ shapeAfter: descendantShape,
634
+ reason: "ancestry"
631
635
  });
632
636
  }
633
637
  }
@@ -2854,10 +2858,7 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
2854
2858
  }
2855
2859
  getViewportScreenCenter() {
2856
2860
  const viewportScreenBounds = this.getViewportScreenBounds();
2857
- return new Vec(
2858
- viewportScreenBounds.midX - viewportScreenBounds.minX,
2859
- viewportScreenBounds.midY - viewportScreenBounds.minY
2860
- );
2861
+ return new Vec(viewportScreenBounds.w / 2, viewportScreenBounds.h / 2);
2861
2862
  }
2862
2863
  getViewportPageBounds() {
2863
2864
  const { w, h } = this.getViewportScreenBounds();
@@ -3532,41 +3533,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3532
3533
  typeof shape === "string" ? shape : shape.id
3533
3534
  );
3534
3535
  }
3535
- /**
3536
- * Get the geometry of a shape in page-space.
3537
- *
3538
- * @example
3539
- * ```ts
3540
- * editor.getShapePageGeometry(myShape)
3541
- * editor.getShapePageGeometry(myShapeId)
3542
- * editor.getShapePageGeometry(myShapeId, { context: "arrow" })
3543
- * ```
3544
- *
3545
- * @param shape - The shape (or shape id) to get the geometry for.
3546
- * @param opts - Additional options about the request for geometry. Passed to {@link ShapeUtil.getGeometry}.
3547
- *
3548
- * @public
3549
- */
3550
- getShapePageGeometry(shape, opts) {
3551
- const context = opts?.context ?? "none";
3552
- if (!this._shapePageGeometryCaches[context]) {
3553
- this._shapePageGeometryCaches[context] = this.store.createComputedCache(
3554
- "bounds",
3555
- (shape2) => {
3556
- const geometry = this.getShapeGeometry(shape2.id, opts);
3557
- const pageTransform = this.getShapePageTransform(shape2.id);
3558
- return geometry.transform(pageTransform);
3559
- },
3560
- {
3561
- // we only depend directly on the shape id, and changing geometry/transform will update us anyway
3562
- areRecordsEqual: () => true
3563
- }
3564
- );
3565
- }
3566
- return this._shapePageGeometryCaches[context].get(
3567
- typeof shape === "string" ? shape : shape.id
3568
- );
3569
- }
3570
3536
  _getShapeHandlesCache() {
3571
3537
  return this.store.createComputedCache(
3572
3538
  "handles",
@@ -3660,7 +3626,10 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3660
3626
  }
3661
3627
  _getShapePageBoundsCache() {
3662
3628
  return this.store.createComputedCache("pageBoundsCache", (shape) => {
3663
- return this.getShapePageGeometry(shape).bounds;
3629
+ const pageTransform = this.getShapePageTransform(shape);
3630
+ if (!pageTransform) return void 0;
3631
+ const geometry = this.getShapeGeometry(shape);
3632
+ return Box.FromPoints(pageTransform.applyToPoints(geometry.vertices));
3664
3633
  });
3665
3634
  }
3666
3635
  /**
@@ -3717,12 +3686,11 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3717
3686
  (shape2) => this.isShapeOfType(shape2, "frame")
3718
3687
  );
3719
3688
  if (frameAncestors.length === 0) return void 0;
3720
- const pageMask = frameAncestors.map(
3721
- (s) => (
3722
- // Apply the frame transform to the frame outline to get the frame outline in the current page space
3723
- (this.getShapePageGeometry(s.id).vertices)
3724
- )
3725
- ).reduce((acc, b) => {
3689
+ const pageMask = frameAncestors.map((s) => {
3690
+ const geometry = this.getShapeGeometry(s.id);
3691
+ const pageTransform = this.getShapePageTransform(s.id);
3692
+ return pageTransform.applyToPoints(geometry.vertices);
3693
+ }).reduce((acc, b) => {
3726
3694
  if (!(b && acc)) return void 0;
3727
3695
  const intersection = intersectPolygonPolygon(acc, b);
3728
3696
  if (intersection) {
@@ -3886,17 +3854,24 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3886
3854
  }
3887
3855
  return void 0;
3888
3856
  }
3889
- isShapeOrAncestorLocked(arg) {
3890
- const shape = typeof arg === "string" ? this.getShape(arg) : arg;
3891
- if (shape === void 0) return false;
3892
- if (shape.isLocked) return true;
3893
- return this.isShapeOrAncestorLocked(this.getShapeParent(shape));
3857
+ /**
3858
+ * Check whether a shape or its parent is locked.
3859
+ *
3860
+ * @param shape - The shape (or shape id) to check.
3861
+ *
3862
+ * @public
3863
+ */
3864
+ isShapeOrAncestorLocked(shape) {
3865
+ const _shape = shape && this.getShape(shape);
3866
+ if (_shape === void 0) return false;
3867
+ if (_shape.isLocked) return true;
3868
+ return this.isShapeOrAncestorLocked(this.getShapeParent(_shape));
3894
3869
  }
3895
- _notVisibleShapes() {
3896
- return notVisibleShapes(this);
3870
+ getNotVisibleShapes() {
3871
+ return this._notVisibleShapes.get();
3897
3872
  }
3898
3873
  getCulledShapes() {
3899
- const notVisibleShapes2 = this._notVisibleShapes().get();
3874
+ const notVisibleShapes2 = this.getNotVisibleShapes();
3900
3875
  const selectedShapeIds = this.getSelectedShapeIds();
3901
3876
  const editingId = this.getEditingShapeId();
3902
3877
  const culledShapes = new Set(notVisibleShapes2);
@@ -4041,18 +4016,18 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
4041
4016
  * @example
4042
4017
  * ```ts
4043
4018
  * editor.getShapesAtPoint({ x: 100, y: 100 })
4044
- * editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true, exact: true })
4019
+ * editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true, margin: 8 })
4045
4020
  * ```
4046
4021
  *
4047
4022
  * @param point - The page point to test.
4048
4023
  * @param opts - The options for the hit point testing.
4049
4024
  *
4025
+ * @returns An array of shapes at the given point, sorted in reverse order of their absolute z-index (top-most shape first).
4026
+ *
4050
4027
  * @public
4051
4028
  */
4052
4029
  getShapesAtPoint(point, opts = {}) {
4053
- return this.getCurrentPageShapes().filter(
4054
- (shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)
4055
- );
4030
+ return this.getCurrentPageShapesSorted().filter((shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)).reverse();
4056
4031
  }
4057
4032
  /**
4058
4033
  * Test whether a point (in the current page space) will will a shape. This method takes into account masks,
@@ -7841,7 +7816,7 @@ __decorateElement(_init, 1, "_getShapePageBoundsCache", __getShapePageBoundsCach
7841
7816
  __decorateElement(_init, 1, "_getShapeClipPathCache", __getShapeClipPathCache_dec, Editor);
7842
7817
  __decorateElement(_init, 1, "_getShapeMaskCache", __getShapeMaskCache_dec, Editor);
7843
7818
  __decorateElement(_init, 1, "_getShapeMaskedPageBoundsCache", __getShapeMaskedPageBoundsCache_dec, Editor);
7844
- __decorateElement(_init, 1, "_notVisibleShapes", __notVisibleShapes_dec, Editor);
7819
+ __decorateElement(_init, 1, "getNotVisibleShapes", _getNotVisibleShapes_dec, Editor);
7845
7820
  __decorateElement(_init, 1, "getCulledShapes", _getCulledShapes_dec, Editor);
7846
7821
  __decorateElement(_init, 1, "getCurrentPageBounds", _getCurrentPageBounds_dec, Editor);
7847
7822
  __decorateElement(_init, 1, "getCurrentPageShapes", _getCurrentPageShapes_dec, Editor);