@tldraw/editor 3.14.0-canary.ae1762886f91 → 3.14.0-canary.b026f27e2cab

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 (155) hide show
  1. package/dist-cjs/index.d.ts +52 -61
  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 +58 -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.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/editor/types/external-content.js.map +1 -1
  34. package/dist-cjs/lib/exports/getSvgJsx.js.map +1 -1
  35. package/dist-cjs/lib/hooks/useCanvasEvents.js +1 -2
  36. package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
  37. package/dist-cjs/lib/primitives/Box.js +0 -6
  38. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  39. package/dist-cjs/lib/utils/areShapesContentEqual.js +1 -1
  40. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +2 -2
  41. package/dist-cjs/lib/utils/reorderShapes.js +11 -10
  42. package/dist-cjs/lib/utils/reorderShapes.js.map +2 -2
  43. package/dist-cjs/lib/utils/richText.js +7 -2
  44. package/dist-cjs/lib/utils/richText.js.map +2 -2
  45. package/dist-cjs/version.js +3 -3
  46. package/dist-cjs/version.js.map +1 -1
  47. package/dist-esm/index.d.mts +52 -61
  48. package/dist-esm/index.mjs +12 -10
  49. package/dist-esm/index.mjs.map +2 -2
  50. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs +1 -1
  51. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs.map +2 -2
  52. package/dist-esm/lib/editor/Editor.mjs +58 -72
  53. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  54. package/dist-esm/lib/editor/bindings/BindingUtil.mjs.map +2 -2
  55. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs +22 -22
  56. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs.map +2 -2
  57. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs +16 -16
  58. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs.map +2 -2
  59. package/dist-esm/lib/editor/managers/{ClickManager.mjs → ClickManager/ClickManager.mjs} +1 -1
  60. package/dist-esm/lib/editor/managers/ClickManager/ClickManager.mjs.map +7 -0
  61. package/dist-esm/lib/editor/managers/{EdgeScrollManager.mjs → EdgeScrollManager/EdgeScrollManager.mjs} +2 -2
  62. package/dist-esm/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs.map +7 -0
  63. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +7 -0
  64. package/dist-esm/lib/editor/managers/{FontManager.mjs → FontManager/FontManager.mjs} +1 -2
  65. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +7 -0
  66. package/dist-esm/lib/editor/managers/{HistoryManager.mjs → HistoryManager/HistoryManager.mjs} +60 -2
  67. package/dist-esm/lib/editor/managers/HistoryManager/HistoryManager.mjs.map +7 -0
  68. package/dist-esm/lib/editor/managers/{ScribbleManager.mjs → ScribbleManager/ScribbleManager.mjs} +1 -1
  69. package/dist-esm/lib/editor/managers/ScribbleManager/ScribbleManager.mjs.map +7 -0
  70. package/dist-esm/lib/editor/managers/{TextManager.mjs → TextManager/TextManager.mjs} +72 -42
  71. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +7 -0
  72. package/dist-esm/lib/editor/managers/{TickManager.mjs → TickManager/TickManager.mjs} +1 -1
  73. package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs.map +7 -0
  74. package/dist-esm/lib/editor/managers/{UserPreferencesManager.mjs → UserPreferencesManager/UserPreferencesManager.mjs} +1 -1
  75. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +7 -0
  76. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +1 -1
  77. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +1 -1
  78. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +1 -1
  79. package/dist-esm/lib/exports/getSvgJsx.mjs.map +1 -1
  80. package/dist-esm/lib/hooks/useCanvasEvents.mjs +1 -2
  81. package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
  82. package/dist-esm/lib/primitives/Box.mjs +0 -6
  83. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  84. package/dist-esm/lib/utils/areShapesContentEqual.mjs +1 -1
  85. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +2 -2
  86. package/dist-esm/lib/utils/reorderShapes.mjs +11 -10
  87. package/dist-esm/lib/utils/reorderShapes.mjs.map +2 -2
  88. package/dist-esm/lib/utils/richText.mjs +8 -3
  89. package/dist-esm/lib/utils/richText.mjs.map +2 -2
  90. package/dist-esm/version.mjs +3 -3
  91. package/dist-esm/version.mjs.map +1 -1
  92. package/editor.css +433 -482
  93. package/package.json +8 -9
  94. package/src/index.ts +14 -8
  95. package/src/lib/config/TLSessionStateSnapshot.ts +1 -1
  96. package/src/lib/editor/Editor.test.ts +252 -3
  97. package/src/lib/editor/Editor.ts +63 -71
  98. package/src/lib/editor/bindings/BindingUtil.ts +6 -0
  99. package/src/lib/editor/derivations/bindingsIndex.ts +27 -26
  100. package/src/lib/editor/derivations/parentsToChildren.ts +28 -25
  101. package/src/lib/editor/managers/ClickManager/ClickManager.test.ts +442 -0
  102. package/src/lib/editor/managers/{ClickManager.ts → ClickManager/ClickManager.ts} +3 -3
  103. package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.test.ts +374 -0
  104. package/src/lib/editor/managers/{EdgeScrollManager.ts → EdgeScrollManager/EdgeScrollManager.ts} +3 -3
  105. package/src/lib/editor/managers/FocusManager/FocusManager.test.ts +455 -0
  106. package/src/lib/editor/managers/{FocusManager.ts → FocusManager/FocusManager.ts} +1 -1
  107. package/src/lib/editor/managers/FontManager/FontManager.test.ts +263 -0
  108. package/src/lib/editor/managers/{FontManager.ts → FontManager/FontManager.ts} +2 -3
  109. package/src/lib/editor/managers/{HistoryManager.test.ts → HistoryManager/HistoryManager.test.ts} +388 -1
  110. package/src/lib/editor/managers/{HistoryManager.ts → HistoryManager/HistoryManager.ts} +73 -2
  111. package/src/lib/editor/managers/ScribbleManager/ScribbleManager.test.ts +624 -0
  112. package/src/lib/editor/managers/{ScribbleManager.ts → ScribbleManager/ScribbleManager.ts} +2 -2
  113. package/src/lib/editor/managers/SnapManager/SnapManager.test.ts +485 -0
  114. package/src/lib/editor/managers/TextManager/TextManager.test.ts +407 -0
  115. package/src/lib/editor/managers/{TextManager.ts → TextManager/TextManager.ts} +117 -87
  116. package/src/lib/editor/managers/TickManager/TickManager.test.ts +314 -0
  117. package/src/lib/editor/managers/{TickManager.ts → TickManager/TickManager.ts} +2 -2
  118. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +591 -0
  119. package/src/lib/editor/managers/{UserPreferencesManager.ts → UserPreferencesManager/UserPreferencesManager.ts} +2 -2
  120. package/src/lib/editor/shapes/ShapeUtil.ts +1 -1
  121. package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +1 -1
  122. package/src/lib/editor/types/external-content.ts +1 -1
  123. package/src/lib/exports/getSvgJsx.tsx +1 -1
  124. package/src/lib/hooks/useCanvasEvents.ts +0 -1
  125. package/src/lib/primitives/Box.ts +0 -8
  126. package/src/lib/utils/areShapesContentEqual.ts +1 -2
  127. package/src/lib/utils/reorderShapes.ts +10 -13
  128. package/src/lib/utils/richText.ts +10 -4
  129. package/src/version.ts +3 -3
  130. package/dist-cjs/lib/editor/managers/ClickManager.js.map +0 -7
  131. package/dist-cjs/lib/editor/managers/EdgeScrollManager.js.map +0 -7
  132. package/dist-cjs/lib/editor/managers/FocusManager.js.map +0 -7
  133. package/dist-cjs/lib/editor/managers/FontManager.js.map +0 -7
  134. package/dist-cjs/lib/editor/managers/HistoryManager.js.map +0 -7
  135. package/dist-cjs/lib/editor/managers/ScribbleManager.js.map +0 -7
  136. package/dist-cjs/lib/editor/managers/Stack.js +0 -82
  137. package/dist-cjs/lib/editor/managers/Stack.js.map +0 -7
  138. package/dist-cjs/lib/editor/managers/TextManager.js.map +0 -7
  139. package/dist-cjs/lib/editor/managers/TickManager.js.map +0 -7
  140. package/dist-cjs/lib/editor/managers/UserPreferencesManager.js.map +0 -7
  141. package/dist-esm/lib/editor/managers/ClickManager.mjs.map +0 -7
  142. package/dist-esm/lib/editor/managers/EdgeScrollManager.mjs.map +0 -7
  143. package/dist-esm/lib/editor/managers/FocusManager.mjs.map +0 -7
  144. package/dist-esm/lib/editor/managers/FontManager.mjs.map +0 -7
  145. package/dist-esm/lib/editor/managers/HistoryManager.mjs.map +0 -7
  146. package/dist-esm/lib/editor/managers/ScribbleManager.mjs.map +0 -7
  147. package/dist-esm/lib/editor/managers/Stack.mjs +0 -62
  148. package/dist-esm/lib/editor/managers/Stack.mjs.map +0 -7
  149. package/dist-esm/lib/editor/managers/TextManager.mjs.map +0 -7
  150. package/dist-esm/lib/editor/managers/TickManager.mjs.map +0 -7
  151. package/dist-esm/lib/editor/managers/UserPreferencesManager.mjs.map +0 -7
  152. package/src/lib/editor/managers/ScribbleManager.test.ts +0 -32
  153. package/src/lib/editor/managers/Stack.ts +0 -71
  154. /package/dist-cjs/lib/editor/managers/{FocusManager.js → FocusManager/FocusManager.js} +0 -0
  155. /package/dist-esm/lib/editor/managers/{FocusManager.mjs → FocusManager/FocusManager.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, _getSelectionScreenBounds_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], _getSelectionScreenBounds_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.
@@ -439,6 +439,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
439
439
  this.disposables.add(() => this.user.dispose());
440
440
  this.getContainer = getContainer;
441
441
  this.textMeasure = new import_TextManager.TextManager(this);
442
+ this.disposables.add(() => this.textMeasure.dispose());
442
443
  this.fonts = new import_FontManager.FontManager(this, fontAssetUrls);
443
444
  this._tickManager = new import_TickManager.TickManager(this);
444
445
  class NewRoot extends import_RootState.RootState {
@@ -559,20 +560,21 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
559
560
  shape: {
560
561
  afterChange: (shapeBefore, shapeAfter) => {
561
562
  for (const binding of this.getBindingsInvolvingShape(shapeAfter)) {
562
- if ((0, import_areShapesContentEqual.areShapesContentEqual)(shapeBefore, shapeAfter)) continue;
563
563
  invalidBindingTypes.add(binding.type);
564
564
  if (binding.fromId === shapeAfter.id) {
565
565
  this.getBindingUtil(binding).onAfterChangeFromShape?.({
566
566
  binding,
567
567
  shapeBefore,
568
- shapeAfter
568
+ shapeAfter,
569
+ reason: "self"
569
570
  });
570
571
  }
571
572
  if (binding.toId === shapeAfter.id) {
572
573
  this.getBindingUtil(binding).onAfterChangeToShape?.({
573
574
  binding,
574
575
  shapeBefore,
575
- shapeAfter
576
+ shapeAfter,
577
+ reason: "self"
576
578
  });
577
579
  }
578
580
  }
@@ -586,14 +588,16 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
586
588
  this.getBindingUtil(binding).onAfterChangeFromShape?.({
587
589
  binding,
588
590
  shapeBefore: descendantShape,
589
- shapeAfter: descendantShape
591
+ shapeAfter: descendantShape,
592
+ reason: "ancestry"
590
593
  });
591
594
  }
592
595
  if (binding.toId === descendantShape.id) {
593
596
  this.getBindingUtil(binding).onAfterChangeToShape?.({
594
597
  binding,
595
598
  shapeBefore: descendantShape,
596
- shapeAfter: descendantShape
599
+ shapeAfter: descendantShape,
600
+ reason: "ancestry"
597
601
  });
598
602
  }
599
603
  }
@@ -1637,6 +1641,13 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
1637
1641
  getSelectionPageBounds() {
1638
1642
  return this.getShapesPageBounds(this.getSelectedShapeIds());
1639
1643
  }
1644
+ getSelectionScreenBounds() {
1645
+ const bounds = this.getSelectionPageBounds();
1646
+ if (!bounds) return void 0;
1647
+ const { x, y } = this.pageToScreen(bounds.point);
1648
+ const zoom = this.getZoomLevel();
1649
+ return new import_Box.Box(x, y, bounds.width * zoom, bounds.height * zoom);
1650
+ }
1640
1651
  /**
1641
1652
  * @internal
1642
1653
  */
@@ -3495,41 +3506,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3495
3506
  typeof shape === "string" ? shape : shape.id
3496
3507
  );
3497
3508
  }
3498
- /**
3499
- * Get the geometry of a shape in page-space.
3500
- *
3501
- * @example
3502
- * ```ts
3503
- * editor.getShapePageGeometry(myShape)
3504
- * editor.getShapePageGeometry(myShapeId)
3505
- * editor.getShapePageGeometry(myShapeId, { context: "arrow" })
3506
- * ```
3507
- *
3508
- * @param shape - The shape (or shape id) to get the geometry for.
3509
- * @param opts - Additional options about the request for geometry. Passed to {@link ShapeUtil.getGeometry}.
3510
- *
3511
- * @public
3512
- */
3513
- getShapePageGeometry(shape, opts) {
3514
- const context = opts?.context ?? "none";
3515
- if (!this._shapePageGeometryCaches[context]) {
3516
- this._shapePageGeometryCaches[context] = this.store.createComputedCache(
3517
- "bounds",
3518
- (shape2) => {
3519
- const geometry = this.getShapeGeometry(shape2.id, opts);
3520
- const pageTransform = this.getShapePageTransform(shape2.id);
3521
- return geometry.transform(pageTransform);
3522
- },
3523
- {
3524
- // we only depend directly on the shape id, and changing geometry/transform will update us anyway
3525
- areRecordsEqual: () => true
3526
- }
3527
- );
3528
- }
3529
- return this._shapePageGeometryCaches[context].get(
3530
- typeof shape === "string" ? shape : shape.id
3531
- );
3532
- }
3533
3509
  _getShapeHandlesCache() {
3534
3510
  return this.store.createComputedCache(
3535
3511
  "handles",
@@ -3623,7 +3599,10 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3623
3599
  }
3624
3600
  _getShapePageBoundsCache() {
3625
3601
  return this.store.createComputedCache("pageBoundsCache", (shape) => {
3626
- return this.getShapePageGeometry(shape).bounds;
3602
+ const pageTransform = this.getShapePageTransform(shape);
3603
+ if (!pageTransform) return void 0;
3604
+ const geometry = this.getShapeGeometry(shape);
3605
+ return import_Box.Box.FromPoints(pageTransform.applyToPoints(geometry.vertices));
3627
3606
  });
3628
3607
  }
3629
3608
  /**
@@ -3680,12 +3659,11 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3680
3659
  (shape2) => this.isShapeOfType(shape2, "frame")
3681
3660
  );
3682
3661
  if (frameAncestors.length === 0) return void 0;
3683
- const pageMask = frameAncestors.map(
3684
- (s) => (
3685
- // Apply the frame transform to the frame outline to get the frame outline in the current page space
3686
- this.getShapePageGeometry(s.id).vertices
3687
- )
3688
- ).reduce((acc, b) => {
3662
+ const pageMask = frameAncestors.map((s) => {
3663
+ const geometry = this.getShapeGeometry(s.id);
3664
+ const pageTransform = this.getShapePageTransform(s.id);
3665
+ return pageTransform.applyToPoints(geometry.vertices);
3666
+ }).reduce((acc, b) => {
3689
3667
  if (!(b && acc)) return void 0;
3690
3668
  const intersection = (0, import_intersect.intersectPolygonPolygon)(acc, b);
3691
3669
  if (intersection) {
@@ -3849,17 +3827,24 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3849
3827
  }
3850
3828
  return void 0;
3851
3829
  }
3852
- isShapeOrAncestorLocked(arg) {
3853
- const shape = typeof arg === "string" ? this.getShape(arg) : arg;
3854
- if (shape === void 0) return false;
3855
- if (shape.isLocked) return true;
3856
- return this.isShapeOrAncestorLocked(this.getShapeParent(shape));
3830
+ /**
3831
+ * Check whether a shape or its parent is locked.
3832
+ *
3833
+ * @param shape - The shape (or shape id) to check.
3834
+ *
3835
+ * @public
3836
+ */
3837
+ isShapeOrAncestorLocked(shape) {
3838
+ const _shape = shape && this.getShape(shape);
3839
+ if (_shape === void 0) return false;
3840
+ if (_shape.isLocked) return true;
3841
+ return this.isShapeOrAncestorLocked(this.getShapeParent(_shape));
3857
3842
  }
3858
- _notVisibleShapes() {
3859
- return (0, import_notVisibleShapes.notVisibleShapes)(this);
3843
+ getNotVisibleShapes() {
3844
+ return this._notVisibleShapes.get();
3860
3845
  }
3861
3846
  getCulledShapes() {
3862
- const notVisibleShapes2 = this._notVisibleShapes().get();
3847
+ const notVisibleShapes2 = this.getNotVisibleShapes();
3863
3848
  const selectedShapeIds = this.getSelectedShapeIds();
3864
3849
  const editingId = this.getEditingShapeId();
3865
3850
  const culledShapes = new Set(notVisibleShapes2);
@@ -4004,18 +3989,18 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
4004
3989
  * @example
4005
3990
  * ```ts
4006
3991
  * editor.getShapesAtPoint({ x: 100, y: 100 })
4007
- * editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true, exact: true })
3992
+ * editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true, margin: 8 })
4008
3993
  * ```
4009
3994
  *
4010
3995
  * @param point - The page point to test.
4011
3996
  * @param opts - The options for the hit point testing.
4012
3997
  *
3998
+ * @returns An array of shapes at the given point, sorted in reverse order of their absolute z-index (top-most shape first).
3999
+ *
4013
4000
  * @public
4014
4001
  */
4015
4002
  getShapesAtPoint(point, opts = {}) {
4016
- return this.getCurrentPageShapes().filter(
4017
- (shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)
4018
- );
4003
+ return this.getCurrentPageShapesSorted().filter((shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)).reverse();
4019
4004
  }
4020
4005
  /**
4021
4006
  * Test whether a point (in the current page space) will will a shape. This method takes into account masks,
@@ -7767,6 +7752,7 @@ __decorateElement(_init, 1, "getCurrentPageShapesInReadingOrder", _getCurrentPag
7767
7752
  __decorateElement(_init, 1, "getOnlySelectedShapeId", _getOnlySelectedShapeId_dec, Editor);
7768
7753
  __decorateElement(_init, 1, "getOnlySelectedShape", _getOnlySelectedShape_dec, Editor);
7769
7754
  __decorateElement(_init, 1, "getSelectionPageBounds", _getSelectionPageBounds_dec, Editor);
7755
+ __decorateElement(_init, 1, "getSelectionScreenBounds", _getSelectionScreenBounds_dec, Editor);
7770
7756
  __decorateElement(_init, 1, "getSelectionRotation", _getSelectionRotation_dec, Editor);
7771
7757
  __decorateElement(_init, 1, "getSelectionRotatedPageBounds", _getSelectionRotatedPageBounds_dec, Editor);
7772
7758
  __decorateElement(_init, 1, "getSelectionRotatedScreenBounds", _getSelectionRotatedScreenBounds_dec, Editor);
@@ -7804,7 +7790,7 @@ __decorateElement(_init, 1, "_getShapePageBoundsCache", __getShapePageBoundsCach
7804
7790
  __decorateElement(_init, 1, "_getShapeClipPathCache", __getShapeClipPathCache_dec, Editor);
7805
7791
  __decorateElement(_init, 1, "_getShapeMaskCache", __getShapeMaskCache_dec, Editor);
7806
7792
  __decorateElement(_init, 1, "_getShapeMaskedPageBoundsCache", __getShapeMaskedPageBoundsCache_dec, Editor);
7807
- __decorateElement(_init, 1, "_notVisibleShapes", __notVisibleShapes_dec, Editor);
7793
+ __decorateElement(_init, 1, "getNotVisibleShapes", _getNotVisibleShapes_dec, Editor);
7808
7794
  __decorateElement(_init, 1, "getCulledShapes", _getCulledShapes_dec, Editor);
7809
7795
  __decorateElement(_init, 1, "getCurrentPageBounds", _getCurrentPageBounds_dec, Editor);
7810
7796
  __decorateElement(_init, 1, "getCurrentPageShapes", _getCurrentPageShapes_dec, Editor);