@tldraw/editor 3.14.0-canary.f6a0206007b3 → 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 (148) 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 +50 -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/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 +33 -39
  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 +50 -76
  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} +4 -1
  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 +33 -39
  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 +48 -75
  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} +5 -2
  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.test.ts +588 -7
  116. package/src/lib/primitives/Box.ts +33 -41
  117. package/src/lib/utils/areShapesContentEqual.ts +1 -2
  118. package/src/lib/utils/reorderShapes.ts +10 -13
  119. package/src/lib/utils/richText.ts +10 -4
  120. package/src/version.ts +3 -3
  121. package/dist-cjs/lib/editor/managers/ClickManager.js.map +0 -7
  122. package/dist-cjs/lib/editor/managers/EdgeScrollManager.js.map +0 -7
  123. package/dist-cjs/lib/editor/managers/FocusManager.js.map +0 -7
  124. package/dist-cjs/lib/editor/managers/FontManager.js.map +0 -7
  125. package/dist-cjs/lib/editor/managers/HistoryManager.js.map +0 -7
  126. package/dist-cjs/lib/editor/managers/ScribbleManager.js.map +0 -7
  127. package/dist-cjs/lib/editor/managers/Stack.js +0 -82
  128. package/dist-cjs/lib/editor/managers/Stack.js.map +0 -7
  129. package/dist-cjs/lib/editor/managers/TextManager.js.map +0 -7
  130. package/dist-cjs/lib/editor/managers/TickManager.js.map +0 -7
  131. package/dist-cjs/lib/editor/managers/UserPreferencesManager.js.map +0 -7
  132. package/dist-esm/lib/editor/managers/ClickManager.mjs.map +0 -7
  133. package/dist-esm/lib/editor/managers/EdgeScrollManager.mjs.map +0 -7
  134. package/dist-esm/lib/editor/managers/FocusManager.mjs.map +0 -7
  135. package/dist-esm/lib/editor/managers/FontManager.mjs.map +0 -7
  136. package/dist-esm/lib/editor/managers/HistoryManager.mjs.map +0 -7
  137. package/dist-esm/lib/editor/managers/ScribbleManager.mjs.map +0 -7
  138. package/dist-esm/lib/editor/managers/Stack.mjs +0 -62
  139. package/dist-esm/lib/editor/managers/Stack.mjs.map +0 -7
  140. package/dist-esm/lib/editor/managers/TextManager.mjs.map +0 -7
  141. package/dist-esm/lib/editor/managers/TickManager.mjs.map +0 -7
  142. package/dist-esm/lib/editor/managers/UserPreferencesManager.mjs.map +0 -7
  143. package/src/lib/editor/managers/ScribbleManager.test.ts +0 -32
  144. package/src/lib/editor/managers/Stack.ts +0 -71
  145. /package/dist-cjs/lib/editor/managers/{FocusManager.js → FocusManager/FocusManager.js} +0 -0
  146. /package/dist-cjs/lib/editor/managers/{TextManager.js → TextManager/TextManager.js} +0 -0
  147. /package/dist-esm/lib/editor/managers/{FocusManager.mjs → FocusManager/FocusManager.mjs} +0 -0
  148. /package/dist-esm/lib/editor/managers/{TextManager.mjs → TextManager/TextManager.mjs} +0 -0
@@ -112,19 +112,19 @@ var import_bindingsIndex = require("./derivations/bindingsIndex");
112
112
  var import_notVisibleShapes = require("./derivations/notVisibleShapes");
113
113
  var import_parentsToChildren = require("./derivations/parentsToChildren");
114
114
  var import_shapeIdsInCurrentPage = require("./derivations/shapeIdsInCurrentPage");
115
- var import_ClickManager = require("./managers/ClickManager");
116
- var import_EdgeScrollManager = require("./managers/EdgeScrollManager");
117
- var import_FocusManager = require("./managers/FocusManager");
118
- var import_FontManager = require("./managers/FontManager");
119
- var import_HistoryManager = require("./managers/HistoryManager");
120
- var import_ScribbleManager = require("./managers/ScribbleManager");
115
+ var import_ClickManager = require("./managers/ClickManager/ClickManager");
116
+ var import_EdgeScrollManager = require("./managers/EdgeScrollManager/EdgeScrollManager");
117
+ var import_FocusManager = require("./managers/FocusManager/FocusManager");
118
+ var import_FontManager = require("./managers/FontManager/FontManager");
119
+ var import_HistoryManager = require("./managers/HistoryManager/HistoryManager");
120
+ var import_ScribbleManager = require("./managers/ScribbleManager/ScribbleManager");
121
121
  var import_SnapManager = require("./managers/SnapManager/SnapManager");
122
- var import_TextManager = require("./managers/TextManager");
123
- var import_TickManager = require("./managers/TickManager");
124
- var import_UserPreferencesManager = require("./managers/UserPreferencesManager");
122
+ var import_TextManager = require("./managers/TextManager/TextManager");
123
+ var import_TickManager = require("./managers/TickManager/TickManager");
124
+ var import_UserPreferencesManager = require("./managers/UserPreferencesManager/UserPreferencesManager");
125
125
  var import_RootState = require("./tools/RootState");
126
- 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;
127
- class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_dec = [import_state.computed], _getCanUndo_dec = [import_state.computed], _getCanRedo_dec = [import_state.computed], _getPath_dec = [import_state.computed], _getCurrentTool_dec = [import_state.computed], _getCurrentToolId_dec = [import_state.computed], _getDocumentSettings_dec = [import_state.computed], _getInstanceState_dec = [import_state.computed], _getOpenMenus_dec = [import_state.computed], _getIsMenuOpen_dec = [import_state.computed], _getPageStates_dec = [import_state.computed], __getPageStatesQuery_dec = [import_state.computed], _getCurrentPageState_dec = [import_state.computed], __getCurrentPageStateId_dec = [import_state.computed], _getSelectedShapeIds_dec = [import_state.computed], _getSelectedShapes_dec = [import_state.computed], _getCurrentPageShapesInReadingOrder_dec = [import_state.computed], _getOnlySelectedShapeId_dec = [import_state.computed], _getOnlySelectedShape_dec = [import_state.computed], _getSelectionPageBounds_dec = [import_state.computed], _getSelectionRotation_dec = [import_state.computed], _getSelectionRotatedPageBounds_dec = [import_state.computed], _getSelectionRotatedScreenBounds_dec = [import_state.computed], _getFocusedGroupId_dec = [import_state.computed], _getFocusedGroup_dec = [import_state.computed], _getEditingShapeId_dec = [import_state.computed], _getEditingShape_dec = [import_state.computed], _getRichTextEditor_dec = [import_state.computed], _getHoveredShapeId_dec = [import_state.computed], _getHoveredShape_dec = [import_state.computed], _getHintingShapeIds_dec = [import_state.computed], _getHintingShape_dec = [import_state.computed], _getErasingShapeIds_dec = [import_state.computed], _getErasingShapes_dec = [import_state.computed], __unsafe_getCameraId_dec = [import_state.computed], _getCamera_dec = [import_state.computed], _getViewportPageBoundsForFollowing_dec = [import_state.computed], _getCameraForFollowing_dec = [import_state.computed], _getZoomLevel_dec = [import_state.computed], _getViewportScreenBounds_dec = [import_state.computed], _getViewportScreenCenter_dec = [import_state.computed], _getViewportPageBounds_dec = [import_state.computed], __getCollaboratorsQuery_dec = [import_state.computed], _getCollaborators_dec = [import_state.computed], _getCollaboratorsOnCurrentPage_dec = [import_state.computed], _getRenderingShapes_dec = [import_state.computed], __getAllPagesQuery_dec = [import_state.computed], _getPages_dec = [import_state.computed], _getCurrentPageId_dec = [import_state.computed], _getCurrentPageShapeIdsSorted_dec = [import_state.computed], __getAllAssetsQuery_dec = [import_state.computed], __getShapeHandlesCache_dec = [import_state.computed], __getShapePageTransformCache_dec = [import_state.computed], __getShapePageBoundsCache_dec = [import_state.computed], __getShapeClipPathCache_dec = [import_state.computed], __getShapeMaskCache_dec = [import_state.computed], __getShapeMaskedPageBoundsCache_dec = [import_state.computed], __notVisibleShapes_dec = [import_state.computed], _getCulledShapes_dec = [import_state.computed], _getCurrentPageBounds_dec = [import_state.computed], _getCurrentPageShapes_dec = [import_state.computed], _getCurrentPageShapesSorted_dec = [import_state.computed], _getCurrentPageRenderingShapesSorted_dec = [import_state.computed], __getBindingsIndexCache_dec = [import_state.computed], __getSelectionSharedStyles_dec = [import_state.computed], _getSharedStyles_dec = [(0, import_state.computed)({ isEqual: (a, b) => a.equals(b) })], _getSharedOpacity_dec = [import_state.computed], _getIsFocused_dec = [import_state.computed], _getIsReadonly_dec = [import_state.computed], __setShiftKeyTimeout_dec = [import_utils.bind], __setAltKeyTimeout_dec = [import_utils.bind], __setCtrlKeyTimeout_dec = [import_utils.bind], __setMetaKeyTimeout_dec = [import_utils.bind], _a) {
126
+ 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;
127
+ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_dec = [import_state.computed], _getCanUndo_dec = [import_state.computed], _getCanRedo_dec = [import_state.computed], _getPath_dec = [import_state.computed], _getCurrentTool_dec = [import_state.computed], _getCurrentToolId_dec = [import_state.computed], _getDocumentSettings_dec = [import_state.computed], _getInstanceState_dec = [import_state.computed], _getOpenMenus_dec = [import_state.computed], _getIsMenuOpen_dec = [import_state.computed], _getPageStates_dec = [import_state.computed], __getPageStatesQuery_dec = [import_state.computed], _getCurrentPageState_dec = [import_state.computed], __getCurrentPageStateId_dec = [import_state.computed], _getSelectedShapeIds_dec = [import_state.computed], _getSelectedShapes_dec = [import_state.computed], _getCurrentPageShapesInReadingOrder_dec = [import_state.computed], _getOnlySelectedShapeId_dec = [import_state.computed], _getOnlySelectedShape_dec = [import_state.computed], _getSelectionPageBounds_dec = [import_state.computed], _getSelectionRotation_dec = [import_state.computed], _getSelectionRotatedPageBounds_dec = [import_state.computed], _getSelectionRotatedScreenBounds_dec = [import_state.computed], _getFocusedGroupId_dec = [import_state.computed], _getFocusedGroup_dec = [import_state.computed], _getEditingShapeId_dec = [import_state.computed], _getEditingShape_dec = [import_state.computed], _getRichTextEditor_dec = [import_state.computed], _getHoveredShapeId_dec = [import_state.computed], _getHoveredShape_dec = [import_state.computed], _getHintingShapeIds_dec = [import_state.computed], _getHintingShape_dec = [import_state.computed], _getErasingShapeIds_dec = [import_state.computed], _getErasingShapes_dec = [import_state.computed], __unsafe_getCameraId_dec = [import_state.computed], _getCamera_dec = [import_state.computed], _getViewportPageBoundsForFollowing_dec = [import_state.computed], _getCameraForFollowing_dec = [import_state.computed], _getZoomLevel_dec = [import_state.computed], _getViewportScreenBounds_dec = [import_state.computed], _getViewportScreenCenter_dec = [import_state.computed], _getViewportPageBounds_dec = [import_state.computed], __getCollaboratorsQuery_dec = [import_state.computed], _getCollaborators_dec = [import_state.computed], _getCollaboratorsOnCurrentPage_dec = [import_state.computed], _getRenderingShapes_dec = [import_state.computed], __getAllPagesQuery_dec = [import_state.computed], _getPages_dec = [import_state.computed], _getCurrentPageId_dec = [import_state.computed], _getCurrentPageShapeIdsSorted_dec = [import_state.computed], __getAllAssetsQuery_dec = [import_state.computed], __getShapeHandlesCache_dec = [import_state.computed], __getShapePageTransformCache_dec = [import_state.computed], __getShapePageBoundsCache_dec = [import_state.computed], __getShapeClipPathCache_dec = [import_state.computed], __getShapeMaskCache_dec = [import_state.computed], __getShapeMaskedPageBoundsCache_dec = [import_state.computed], _getNotVisibleShapes_dec = [import_state.computed], _getCulledShapes_dec = [import_state.computed], _getCurrentPageBounds_dec = [import_state.computed], _getCurrentPageShapes_dec = [import_state.computed], _getCurrentPageShapesSorted_dec = [import_state.computed], _getCurrentPageRenderingShapesSorted_dec = [import_state.computed], __getBindingsIndexCache_dec = [import_state.computed], __getSelectionSharedStyles_dec = [import_state.computed], _getSharedStyles_dec = [(0, import_state.computed)({ isEqual: (a, b) => a.equals(b) })], _getSharedOpacity_dec = [import_state.computed], _getIsFocused_dec = [import_state.computed], _getIsReadonly_dec = [import_state.computed], __setShiftKeyTimeout_dec = [import_utils.bind], __setAltKeyTimeout_dec = [import_utils.bind], __setCtrlKeyTimeout_dec = [import_utils.bind], __setMetaKeyTimeout_dec = [import_utils.bind], _a) {
128
128
  constructor({
129
129
  store,
130
130
  user,
@@ -302,7 +302,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
302
302
  __publicField(this, "_currentPageShapeIds");
303
303
  /* --------------------- Shapes --------------------- */
304
304
  __publicField(this, "_shapeGeometryCaches", {});
305
- __publicField(this, "_shapePageGeometryCaches", {});
305
+ __publicField(this, "_notVisibleShapes", (0, import_notVisibleShapes.notVisibleShapes)(this));
306
306
  // Parents and children
307
307
  /**
308
308
  * A cache of parents to children.
@@ -559,20 +559,21 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
559
559
  shape: {
560
560
  afterChange: (shapeBefore, shapeAfter) => {
561
561
  for (const binding of this.getBindingsInvolvingShape(shapeAfter)) {
562
- if ((0, import_areShapesContentEqual.areShapesContentEqual)(shapeBefore, shapeAfter)) continue;
563
562
  invalidBindingTypes.add(binding.type);
564
563
  if (binding.fromId === shapeAfter.id) {
565
564
  this.getBindingUtil(binding).onAfterChangeFromShape?.({
566
565
  binding,
567
566
  shapeBefore,
568
- shapeAfter
567
+ shapeAfter,
568
+ reason: "self"
569
569
  });
570
570
  }
571
571
  if (binding.toId === shapeAfter.id) {
572
572
  this.getBindingUtil(binding).onAfterChangeToShape?.({
573
573
  binding,
574
574
  shapeBefore,
575
- shapeAfter
575
+ shapeAfter,
576
+ reason: "self"
576
577
  });
577
578
  }
578
579
  }
@@ -586,14 +587,16 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
586
587
  this.getBindingUtil(binding).onAfterChangeFromShape?.({
587
588
  binding,
588
589
  shapeBefore: descendantShape,
589
- shapeAfter: descendantShape
590
+ shapeAfter: descendantShape,
591
+ reason: "ancestry"
590
592
  });
591
593
  }
592
594
  if (binding.toId === descendantShape.id) {
593
595
  this.getBindingUtil(binding).onAfterChangeToShape?.({
594
596
  binding,
595
597
  shapeBefore: descendantShape,
596
- shapeAfter: descendantShape
598
+ shapeAfter: descendantShape,
599
+ reason: "ancestry"
597
600
  });
598
601
  }
599
602
  }
@@ -2820,10 +2823,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
2820
2823
  }
2821
2824
  getViewportScreenCenter() {
2822
2825
  const viewportScreenBounds = this.getViewportScreenBounds();
2823
- return new import_Vec.Vec(
2824
- viewportScreenBounds.midX - viewportScreenBounds.minX,
2825
- viewportScreenBounds.midY - viewportScreenBounds.minY
2826
- );
2826
+ return new import_Vec.Vec(viewportScreenBounds.w / 2, viewportScreenBounds.h / 2);
2827
2827
  }
2828
2828
  getViewportPageBounds() {
2829
2829
  const { w, h } = this.getViewportScreenBounds();
@@ -3498,41 +3498,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3498
3498
  typeof shape === "string" ? shape : shape.id
3499
3499
  );
3500
3500
  }
3501
- /**
3502
- * Get the geometry of a shape in page-space.
3503
- *
3504
- * @example
3505
- * ```ts
3506
- * editor.getShapePageGeometry(myShape)
3507
- * editor.getShapePageGeometry(myShapeId)
3508
- * editor.getShapePageGeometry(myShapeId, { context: "arrow" })
3509
- * ```
3510
- *
3511
- * @param shape - The shape (or shape id) to get the geometry for.
3512
- * @param opts - Additional options about the request for geometry. Passed to {@link ShapeUtil.getGeometry}.
3513
- *
3514
- * @public
3515
- */
3516
- getShapePageGeometry(shape, opts) {
3517
- const context = opts?.context ?? "none";
3518
- if (!this._shapePageGeometryCaches[context]) {
3519
- this._shapePageGeometryCaches[context] = this.store.createComputedCache(
3520
- "bounds",
3521
- (shape2) => {
3522
- const geometry = this.getShapeGeometry(shape2.id, opts);
3523
- const pageTransform = this.getShapePageTransform(shape2.id);
3524
- return geometry.transform(pageTransform);
3525
- },
3526
- {
3527
- // we only depend directly on the shape id, and changing geometry/transform will update us anyway
3528
- areRecordsEqual: () => true
3529
- }
3530
- );
3531
- }
3532
- return this._shapePageGeometryCaches[context].get(
3533
- typeof shape === "string" ? shape : shape.id
3534
- );
3535
- }
3536
3501
  _getShapeHandlesCache() {
3537
3502
  return this.store.createComputedCache(
3538
3503
  "handles",
@@ -3626,7 +3591,10 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3626
3591
  }
3627
3592
  _getShapePageBoundsCache() {
3628
3593
  return this.store.createComputedCache("pageBoundsCache", (shape) => {
3629
- return this.getShapePageGeometry(shape).bounds;
3594
+ const pageTransform = this.getShapePageTransform(shape);
3595
+ if (!pageTransform) return void 0;
3596
+ const geometry = this.getShapeGeometry(shape);
3597
+ return import_Box.Box.FromPoints(pageTransform.applyToPoints(geometry.vertices));
3630
3598
  });
3631
3599
  }
3632
3600
  /**
@@ -3683,12 +3651,11 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3683
3651
  (shape2) => this.isShapeOfType(shape2, "frame")
3684
3652
  );
3685
3653
  if (frameAncestors.length === 0) return void 0;
3686
- const pageMask = frameAncestors.map(
3687
- (s) => (
3688
- // Apply the frame transform to the frame outline to get the frame outline in the current page space
3689
- this.getShapePageGeometry(s.id).vertices
3690
- )
3691
- ).reduce((acc, b) => {
3654
+ const pageMask = frameAncestors.map((s) => {
3655
+ const geometry = this.getShapeGeometry(s.id);
3656
+ const pageTransform = this.getShapePageTransform(s.id);
3657
+ return pageTransform.applyToPoints(geometry.vertices);
3658
+ }).reduce((acc, b) => {
3692
3659
  if (!(b && acc)) return void 0;
3693
3660
  const intersection = (0, import_intersect.intersectPolygonPolygon)(acc, b);
3694
3661
  if (intersection) {
@@ -3852,17 +3819,24 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3852
3819
  }
3853
3820
  return void 0;
3854
3821
  }
3855
- isShapeOrAncestorLocked(arg) {
3856
- const shape = typeof arg === "string" ? this.getShape(arg) : arg;
3857
- if (shape === void 0) return false;
3858
- if (shape.isLocked) return true;
3859
- return this.isShapeOrAncestorLocked(this.getShapeParent(shape));
3822
+ /**
3823
+ * Check whether a shape or its parent is locked.
3824
+ *
3825
+ * @param shape - The shape (or shape id) to check.
3826
+ *
3827
+ * @public
3828
+ */
3829
+ isShapeOrAncestorLocked(shape) {
3830
+ const _shape = shape && this.getShape(shape);
3831
+ if (_shape === void 0) return false;
3832
+ if (_shape.isLocked) return true;
3833
+ return this.isShapeOrAncestorLocked(this.getShapeParent(_shape));
3860
3834
  }
3861
- _notVisibleShapes() {
3862
- return (0, import_notVisibleShapes.notVisibleShapes)(this);
3835
+ getNotVisibleShapes() {
3836
+ return this._notVisibleShapes.get();
3863
3837
  }
3864
3838
  getCulledShapes() {
3865
- const notVisibleShapes2 = this._notVisibleShapes().get();
3839
+ const notVisibleShapes2 = this.getNotVisibleShapes();
3866
3840
  const selectedShapeIds = this.getSelectedShapeIds();
3867
3841
  const editingId = this.getEditingShapeId();
3868
3842
  const culledShapes = new Set(notVisibleShapes2);
@@ -4007,18 +3981,18 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
4007
3981
  * @example
4008
3982
  * ```ts
4009
3983
  * editor.getShapesAtPoint({ x: 100, y: 100 })
4010
- * editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true, exact: true })
3984
+ * editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true, margin: 8 })
4011
3985
  * ```
4012
3986
  *
4013
3987
  * @param point - The page point to test.
4014
3988
  * @param opts - The options for the hit point testing.
4015
3989
  *
3990
+ * @returns An array of shapes at the given point, sorted in reverse order of their absolute z-index (top-most shape first).
3991
+ *
4016
3992
  * @public
4017
3993
  */
4018
3994
  getShapesAtPoint(point, opts = {}) {
4019
- return this.getCurrentPageShapes().filter(
4020
- (shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)
4021
- );
3995
+ return this.getCurrentPageShapesSorted().filter((shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)).reverse();
4022
3996
  }
4023
3997
  /**
4024
3998
  * Test whether a point (in the current page space) will will a shape. This method takes into account masks,
@@ -7807,7 +7781,7 @@ __decorateElement(_init, 1, "_getShapePageBoundsCache", __getShapePageBoundsCach
7807
7781
  __decorateElement(_init, 1, "_getShapeClipPathCache", __getShapeClipPathCache_dec, Editor);
7808
7782
  __decorateElement(_init, 1, "_getShapeMaskCache", __getShapeMaskCache_dec, Editor);
7809
7783
  __decorateElement(_init, 1, "_getShapeMaskedPageBoundsCache", __getShapeMaskedPageBoundsCache_dec, Editor);
7810
- __decorateElement(_init, 1, "_notVisibleShapes", __notVisibleShapes_dec, Editor);
7784
+ __decorateElement(_init, 1, "getNotVisibleShapes", _getNotVisibleShapes_dec, Editor);
7811
7785
  __decorateElement(_init, 1, "getCulledShapes", _getCulledShapes_dec, Editor);
7812
7786
  __decorateElement(_init, 1, "getCurrentPageBounds", _getCurrentPageBounds_dec, Editor);
7813
7787
  __decorateElement(_init, 1, "getCurrentPageShapes", _getCurrentPageShapes_dec, Editor);