@tldraw/editor 3.14.0-canary.f8af44c4d1e2 → 3.14.0-canary.f907ed7d9ee5

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 (147) hide show
  1. package/dist-cjs/index.d.ts +17 -26
  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 +49 -72
  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} +1 -2
  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/TextManager.js.map +7 -0
  25. package/dist-cjs/lib/editor/managers/{TickManager.js → TickManager/TickManager.js} +1 -1
  26. package/dist-cjs/lib/editor/managers/TickManager/TickManager.js.map +7 -0
  27. package/dist-cjs/lib/editor/managers/{UserPreferencesManager.js → UserPreferencesManager/UserPreferencesManager.js} +1 -1
  28. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +7 -0
  29. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +1 -1
  30. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +1 -1
  31. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +1 -1
  32. package/dist-cjs/lib/exports/getSvgJsx.js.map +1 -1
  33. package/dist-cjs/lib/primitives/Box.js +0 -6
  34. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  35. package/dist-cjs/lib/utils/areShapesContentEqual.js +1 -1
  36. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +2 -2
  37. package/dist-cjs/lib/utils/reorderShapes.js +11 -10
  38. package/dist-cjs/lib/utils/reorderShapes.js.map +2 -2
  39. package/dist-cjs/lib/utils/richText.js +7 -2
  40. package/dist-cjs/lib/utils/richText.js.map +2 -2
  41. package/dist-cjs/version.js +3 -3
  42. package/dist-cjs/version.js.map +1 -1
  43. package/dist-esm/index.d.mts +17 -26
  44. package/dist-esm/index.mjs +12 -10
  45. package/dist-esm/index.mjs.map +2 -2
  46. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs +1 -1
  47. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs.map +2 -2
  48. package/dist-esm/lib/editor/Editor.mjs +49 -72
  49. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  50. package/dist-esm/lib/editor/bindings/BindingUtil.mjs.map +2 -2
  51. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs +22 -22
  52. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs.map +2 -2
  53. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs +16 -16
  54. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs.map +2 -2
  55. package/dist-esm/lib/editor/managers/{ClickManager.mjs → ClickManager/ClickManager.mjs} +1 -1
  56. package/dist-esm/lib/editor/managers/ClickManager/ClickManager.mjs.map +7 -0
  57. package/dist-esm/lib/editor/managers/{EdgeScrollManager.mjs → EdgeScrollManager/EdgeScrollManager.mjs} +2 -2
  58. package/dist-esm/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs.map +7 -0
  59. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +7 -0
  60. package/dist-esm/lib/editor/managers/{FontManager.mjs → FontManager/FontManager.mjs} +1 -2
  61. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +7 -0
  62. package/dist-esm/lib/editor/managers/{HistoryManager.mjs → HistoryManager/HistoryManager.mjs} +60 -2
  63. package/dist-esm/lib/editor/managers/HistoryManager/HistoryManager.mjs.map +7 -0
  64. package/dist-esm/lib/editor/managers/{ScribbleManager.mjs → ScribbleManager/ScribbleManager.mjs} +1 -1
  65. package/dist-esm/lib/editor/managers/ScribbleManager/ScribbleManager.mjs.map +7 -0
  66. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +7 -0
  67. package/dist-esm/lib/editor/managers/{TickManager.mjs → TickManager/TickManager.mjs} +1 -1
  68. package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs.map +7 -0
  69. package/dist-esm/lib/editor/managers/{UserPreferencesManager.mjs → UserPreferencesManager/UserPreferencesManager.mjs} +1 -1
  70. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +7 -0
  71. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +1 -1
  72. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +1 -1
  73. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +1 -1
  74. package/dist-esm/lib/exports/getSvgJsx.mjs.map +1 -1
  75. package/dist-esm/lib/primitives/Box.mjs +0 -6
  76. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  77. package/dist-esm/lib/utils/areShapesContentEqual.mjs +1 -1
  78. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +2 -2
  79. package/dist-esm/lib/utils/reorderShapes.mjs +11 -10
  80. package/dist-esm/lib/utils/reorderShapes.mjs.map +2 -2
  81. package/dist-esm/lib/utils/richText.mjs +8 -3
  82. package/dist-esm/lib/utils/richText.mjs.map +2 -2
  83. package/dist-esm/version.mjs +3 -3
  84. package/dist-esm/version.mjs.map +1 -1
  85. package/package.json +8 -9
  86. package/src/index.ts +13 -8
  87. package/src/lib/config/TLSessionStateSnapshot.ts +1 -1
  88. package/src/lib/editor/Editor.test.ts +252 -3
  89. package/src/lib/editor/Editor.ts +47 -71
  90. package/src/lib/editor/bindings/BindingUtil.ts +6 -0
  91. package/src/lib/editor/derivations/bindingsIndex.ts +27 -26
  92. package/src/lib/editor/derivations/parentsToChildren.ts +28 -25
  93. package/src/lib/editor/managers/ClickManager/ClickManager.test.ts +442 -0
  94. package/src/lib/editor/managers/{ClickManager.ts → ClickManager/ClickManager.ts} +3 -3
  95. package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.test.ts +374 -0
  96. package/src/lib/editor/managers/{EdgeScrollManager.ts → EdgeScrollManager/EdgeScrollManager.ts} +3 -3
  97. package/src/lib/editor/managers/FocusManager/FocusManager.test.ts +455 -0
  98. package/src/lib/editor/managers/{FocusManager.ts → FocusManager/FocusManager.ts} +1 -1
  99. package/src/lib/editor/managers/FontManager/FontManager.test.ts +263 -0
  100. package/src/lib/editor/managers/{FontManager.ts → FontManager/FontManager.ts} +2 -3
  101. package/src/lib/editor/managers/{HistoryManager.test.ts → HistoryManager/HistoryManager.test.ts} +388 -1
  102. package/src/lib/editor/managers/{HistoryManager.ts → HistoryManager/HistoryManager.ts} +73 -2
  103. package/src/lib/editor/managers/ScribbleManager/ScribbleManager.test.ts +624 -0
  104. package/src/lib/editor/managers/{ScribbleManager.ts → ScribbleManager/ScribbleManager.ts} +2 -2
  105. package/src/lib/editor/managers/SnapManager/SnapManager.test.ts +485 -0
  106. package/src/lib/editor/managers/TextManager/TextManager.test.ts +411 -0
  107. package/src/lib/editor/managers/{TextManager.ts → TextManager/TextManager.ts} +1 -1
  108. package/src/lib/editor/managers/TickManager/TickManager.test.ts +314 -0
  109. package/src/lib/editor/managers/{TickManager.ts → TickManager/TickManager.ts} +2 -2
  110. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +591 -0
  111. package/src/lib/editor/managers/{UserPreferencesManager.ts → UserPreferencesManager/UserPreferencesManager.ts} +2 -2
  112. package/src/lib/editor/shapes/ShapeUtil.ts +1 -1
  113. package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +1 -1
  114. package/src/lib/exports/getSvgJsx.tsx +1 -1
  115. package/src/lib/primitives/Box.ts +0 -8
  116. package/src/lib/utils/areShapesContentEqual.ts +1 -2
  117. package/src/lib/utils/reorderShapes.ts +10 -13
  118. package/src/lib/utils/richText.ts +10 -4
  119. package/src/version.ts +3 -3
  120. package/dist-cjs/lib/editor/managers/ClickManager.js.map +0 -7
  121. package/dist-cjs/lib/editor/managers/EdgeScrollManager.js.map +0 -7
  122. package/dist-cjs/lib/editor/managers/FocusManager.js.map +0 -7
  123. package/dist-cjs/lib/editor/managers/FontManager.js.map +0 -7
  124. package/dist-cjs/lib/editor/managers/HistoryManager.js.map +0 -7
  125. package/dist-cjs/lib/editor/managers/ScribbleManager.js.map +0 -7
  126. package/dist-cjs/lib/editor/managers/Stack.js +0 -82
  127. package/dist-cjs/lib/editor/managers/Stack.js.map +0 -7
  128. package/dist-cjs/lib/editor/managers/TextManager.js.map +0 -7
  129. package/dist-cjs/lib/editor/managers/TickManager.js.map +0 -7
  130. package/dist-cjs/lib/editor/managers/UserPreferencesManager.js.map +0 -7
  131. package/dist-esm/lib/editor/managers/ClickManager.mjs.map +0 -7
  132. package/dist-esm/lib/editor/managers/EdgeScrollManager.mjs.map +0 -7
  133. package/dist-esm/lib/editor/managers/FocusManager.mjs.map +0 -7
  134. package/dist-esm/lib/editor/managers/FontManager.mjs.map +0 -7
  135. package/dist-esm/lib/editor/managers/HistoryManager.mjs.map +0 -7
  136. package/dist-esm/lib/editor/managers/ScribbleManager.mjs.map +0 -7
  137. package/dist-esm/lib/editor/managers/Stack.mjs +0 -62
  138. package/dist-esm/lib/editor/managers/Stack.mjs.map +0 -7
  139. package/dist-esm/lib/editor/managers/TextManager.mjs.map +0 -7
  140. package/dist-esm/lib/editor/managers/TickManager.mjs.map +0 -7
  141. package/dist-esm/lib/editor/managers/UserPreferencesManager.mjs.map +0 -7
  142. package/src/lib/editor/managers/ScribbleManager.test.ts +0 -32
  143. package/src/lib/editor/managers/Stack.ts +0 -71
  144. /package/dist-cjs/lib/editor/managers/{FocusManager.js → FocusManager/FocusManager.js} +0 -0
  145. /package/dist-cjs/lib/editor/managers/{TextManager.js → TextManager/TextManager.js} +0 -0
  146. /package/dist-esm/lib/editor/managers/{FocusManager.mjs → FocusManager/FocusManager.mjs} +0 -0
  147. /package/dist-esm/lib/editor/managers/{TextManager.mjs → TextManager/TextManager.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.
@@ -593,20 +593,21 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
593
593
  shape: {
594
594
  afterChange: (shapeBefore, shapeAfter) => {
595
595
  for (const binding of this.getBindingsInvolvingShape(shapeAfter)) {
596
- if (areShapesContentEqual(shapeBefore, shapeAfter)) continue;
597
596
  invalidBindingTypes.add(binding.type);
598
597
  if (binding.fromId === shapeAfter.id) {
599
598
  this.getBindingUtil(binding).onAfterChangeFromShape?.({
600
599
  binding,
601
600
  shapeBefore,
602
- shapeAfter
601
+ shapeAfter,
602
+ reason: "self"
603
603
  });
604
604
  }
605
605
  if (binding.toId === shapeAfter.id) {
606
606
  this.getBindingUtil(binding).onAfterChangeToShape?.({
607
607
  binding,
608
608
  shapeBefore,
609
- shapeAfter
609
+ shapeAfter,
610
+ reason: "self"
610
611
  });
611
612
  }
612
613
  }
@@ -620,14 +621,16 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
620
621
  this.getBindingUtil(binding).onAfterChangeFromShape?.({
621
622
  binding,
622
623
  shapeBefore: descendantShape,
623
- shapeAfter: descendantShape
624
+ shapeAfter: descendantShape,
625
+ reason: "ancestry"
624
626
  });
625
627
  }
626
628
  if (binding.toId === descendantShape.id) {
627
629
  this.getBindingUtil(binding).onAfterChangeToShape?.({
628
630
  binding,
629
631
  shapeBefore: descendantShape,
630
- shapeAfter: descendantShape
632
+ shapeAfter: descendantShape,
633
+ reason: "ancestry"
631
634
  });
632
635
  }
633
636
  }
@@ -3529,41 +3532,6 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3529
3532
  typeof shape === "string" ? shape : shape.id
3530
3533
  );
3531
3534
  }
3532
- /**
3533
- * Get the geometry of a shape in page-space.
3534
- *
3535
- * @example
3536
- * ```ts
3537
- * editor.getShapePageGeometry(myShape)
3538
- * editor.getShapePageGeometry(myShapeId)
3539
- * editor.getShapePageGeometry(myShapeId, { context: "arrow" })
3540
- * ```
3541
- *
3542
- * @param shape - The shape (or shape id) to get the geometry for.
3543
- * @param opts - Additional options about the request for geometry. Passed to {@link ShapeUtil.getGeometry}.
3544
- *
3545
- * @public
3546
- */
3547
- getShapePageGeometry(shape, opts) {
3548
- const context = opts?.context ?? "none";
3549
- if (!this._shapePageGeometryCaches[context]) {
3550
- this._shapePageGeometryCaches[context] = this.store.createComputedCache(
3551
- "bounds",
3552
- (shape2) => {
3553
- const geometry = this.getShapeGeometry(shape2.id, opts);
3554
- const pageTransform = this.getShapePageTransform(shape2.id);
3555
- return geometry.transform(pageTransform);
3556
- },
3557
- {
3558
- // we only depend directly on the shape id, and changing geometry/transform will update us anyway
3559
- areRecordsEqual: () => true
3560
- }
3561
- );
3562
- }
3563
- return this._shapePageGeometryCaches[context].get(
3564
- typeof shape === "string" ? shape : shape.id
3565
- );
3566
- }
3567
3535
  _getShapeHandlesCache() {
3568
3536
  return this.store.createComputedCache(
3569
3537
  "handles",
@@ -3657,7 +3625,10 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3657
3625
  }
3658
3626
  _getShapePageBoundsCache() {
3659
3627
  return this.store.createComputedCache("pageBoundsCache", (shape) => {
3660
- return this.getShapePageGeometry(shape).bounds;
3628
+ const pageTransform = this.getShapePageTransform(shape);
3629
+ if (!pageTransform) return void 0;
3630
+ const geometry = this.getShapeGeometry(shape);
3631
+ return Box.FromPoints(pageTransform.applyToPoints(geometry.vertices));
3661
3632
  });
3662
3633
  }
3663
3634
  /**
@@ -3714,12 +3685,11 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3714
3685
  (shape2) => this.isShapeOfType(shape2, "frame")
3715
3686
  );
3716
3687
  if (frameAncestors.length === 0) return void 0;
3717
- const pageMask = frameAncestors.map(
3718
- (s) => (
3719
- // Apply the frame transform to the frame outline to get the frame outline in the current page space
3720
- (this.getShapePageGeometry(s.id).vertices)
3721
- )
3722
- ).reduce((acc, b) => {
3688
+ const pageMask = frameAncestors.map((s) => {
3689
+ const geometry = this.getShapeGeometry(s.id);
3690
+ const pageTransform = this.getShapePageTransform(s.id);
3691
+ return pageTransform.applyToPoints(geometry.vertices);
3692
+ }).reduce((acc, b) => {
3723
3693
  if (!(b && acc)) return void 0;
3724
3694
  const intersection = intersectPolygonPolygon(acc, b);
3725
3695
  if (intersection) {
@@ -3883,17 +3853,24 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
3883
3853
  }
3884
3854
  return void 0;
3885
3855
  }
3886
- isShapeOrAncestorLocked(arg) {
3887
- const shape = typeof arg === "string" ? this.getShape(arg) : arg;
3888
- if (shape === void 0) return false;
3889
- if (shape.isLocked) return true;
3890
- return this.isShapeOrAncestorLocked(this.getShapeParent(shape));
3856
+ /**
3857
+ * Check whether a shape or its parent is locked.
3858
+ *
3859
+ * @param shape - The shape (or shape id) to check.
3860
+ *
3861
+ * @public
3862
+ */
3863
+ isShapeOrAncestorLocked(shape) {
3864
+ const _shape = shape && this.getShape(shape);
3865
+ if (_shape === void 0) return false;
3866
+ if (_shape.isLocked) return true;
3867
+ return this.isShapeOrAncestorLocked(this.getShapeParent(_shape));
3891
3868
  }
3892
- _notVisibleShapes() {
3893
- return notVisibleShapes(this);
3869
+ getNotVisibleShapes() {
3870
+ return this._notVisibleShapes.get();
3894
3871
  }
3895
3872
  getCulledShapes() {
3896
- const notVisibleShapes2 = this._notVisibleShapes().get();
3873
+ const notVisibleShapes2 = this.getNotVisibleShapes();
3897
3874
  const selectedShapeIds = this.getSelectedShapeIds();
3898
3875
  const editingId = this.getEditingShapeId();
3899
3876
  const culledShapes = new Set(notVisibleShapes2);
@@ -4038,18 +4015,18 @@ class Editor extends (_a = EventEmitter, _getIsShapeHiddenCache_dec = [computed]
4038
4015
  * @example
4039
4016
  * ```ts
4040
4017
  * editor.getShapesAtPoint({ x: 100, y: 100 })
4041
- * editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true, exact: true })
4018
+ * editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true, margin: 8 })
4042
4019
  * ```
4043
4020
  *
4044
4021
  * @param point - The page point to test.
4045
4022
  * @param opts - The options for the hit point testing.
4046
4023
  *
4024
+ * @returns An array of shapes at the given point, sorted in reverse order of their absolute z-index (top-most shape first).
4025
+ *
4047
4026
  * @public
4048
4027
  */
4049
4028
  getShapesAtPoint(point, opts = {}) {
4050
- return this.getCurrentPageShapes().filter(
4051
- (shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)
4052
- );
4029
+ return this.getCurrentPageShapesSorted().filter((shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)).reverse();
4053
4030
  }
4054
4031
  /**
4055
4032
  * Test whether a point (in the current page space) will will a shape. This method takes into account masks,
@@ -7838,7 +7815,7 @@ __decorateElement(_init, 1, "_getShapePageBoundsCache", __getShapePageBoundsCach
7838
7815
  __decorateElement(_init, 1, "_getShapeClipPathCache", __getShapeClipPathCache_dec, Editor);
7839
7816
  __decorateElement(_init, 1, "_getShapeMaskCache", __getShapeMaskCache_dec, Editor);
7840
7817
  __decorateElement(_init, 1, "_getShapeMaskedPageBoundsCache", __getShapeMaskedPageBoundsCache_dec, Editor);
7841
- __decorateElement(_init, 1, "_notVisibleShapes", __notVisibleShapes_dec, Editor);
7818
+ __decorateElement(_init, 1, "getNotVisibleShapes", _getNotVisibleShapes_dec, Editor);
7842
7819
  __decorateElement(_init, 1, "getCulledShapes", _getCulledShapes_dec, Editor);
7843
7820
  __decorateElement(_init, 1, "getCurrentPageBounds", _getCurrentPageBounds_dec, Editor);
7844
7821
  __decorateElement(_init, 1, "getCurrentPageShapes", _getCurrentPageShapes_dec, Editor);