@tldraw/editor 3.14.0-canary.e0ab6f4c80f9 → 3.14.0-canary.e7ebd007cb8c

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 (215) hide show
  1. package/dist-cjs/index.d.ts +75 -70
  2. package/dist-cjs/index.js +10 -8
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/editor/Editor.js +44 -73
  5. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  6. package/dist-cjs/lib/editor/derivations/bindingsIndex.js +22 -22
  7. package/dist-cjs/lib/editor/derivations/bindingsIndex.js.map +2 -2
  8. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js +16 -20
  9. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js.map +3 -3
  10. package/dist-cjs/lib/editor/derivations/parentsToChildren.js +16 -16
  11. package/dist-cjs/lib/editor/derivations/parentsToChildren.js.map +2 -2
  12. package/dist-cjs/lib/editor/managers/{ClickManager.js → ClickManager/ClickManager.js} +1 -1
  13. package/dist-cjs/lib/editor/managers/ClickManager/ClickManager.js.map +7 -0
  14. package/dist-cjs/lib/editor/managers/{EdgeScrollManager.js → EdgeScrollManager/EdgeScrollManager.js} +2 -2
  15. package/dist-cjs/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.js.map +7 -0
  16. package/dist-cjs/lib/editor/managers/{FocusManager.js → FocusManager/FocusManager.js} +2 -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} +5 -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 +8 -0
  30. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  31. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js +6 -0
  32. package/dist-cjs/lib/editor/shapes/group/GroupShapeUtil.js.map +2 -2
  33. package/dist-cjs/lib/editor/shapes/shared/getPerfectDashProps.js.map +2 -2
  34. package/dist-cjs/lib/exports/getSvgJsx.js.map +1 -1
  35. package/dist-cjs/lib/primitives/Box.js +39 -33
  36. package/dist-cjs/lib/primitives/Box.js.map +2 -2
  37. package/dist-cjs/lib/primitives/Vec.js +18 -13
  38. package/dist-cjs/lib/primitives/Vec.js.map +3 -3
  39. package/dist-cjs/lib/primitives/geometry/Arc2d.js +41 -21
  40. package/dist-cjs/lib/primitives/geometry/Arc2d.js.map +2 -2
  41. package/dist-cjs/lib/primitives/geometry/Circle2d.js +11 -11
  42. package/dist-cjs/lib/primitives/geometry/Circle2d.js.map +2 -2
  43. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js +13 -16
  44. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js.map +2 -2
  45. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js +4 -4
  46. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js.map +2 -2
  47. package/dist-cjs/lib/primitives/geometry/Edge2d.js +14 -21
  48. package/dist-cjs/lib/primitives/geometry/Edge2d.js.map +2 -2
  49. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js +10 -10
  50. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js.map +2 -2
  51. package/dist-cjs/lib/primitives/geometry/Geometry2d.js +5 -0
  52. package/dist-cjs/lib/primitives/geometry/Geometry2d.js.map +2 -2
  53. package/dist-cjs/lib/primitives/geometry/Point2d.js +6 -6
  54. package/dist-cjs/lib/primitives/geometry/Point2d.js.map +2 -2
  55. package/dist-cjs/lib/primitives/geometry/Polygon2d.js +3 -0
  56. package/dist-cjs/lib/primitives/geometry/Polygon2d.js.map +2 -2
  57. package/dist-cjs/lib/primitives/geometry/Polyline2d.js +8 -5
  58. package/dist-cjs/lib/primitives/geometry/Polyline2d.js.map +2 -2
  59. package/dist-cjs/lib/primitives/geometry/Rectangle2d.js +22 -11
  60. package/dist-cjs/lib/primitives/geometry/Rectangle2d.js.map +2 -2
  61. package/dist-cjs/lib/primitives/geometry/Stadium2d.js +22 -22
  62. package/dist-cjs/lib/primitives/geometry/Stadium2d.js.map +2 -2
  63. package/dist-cjs/lib/utils/areShapesContentEqual.js +1 -1
  64. package/dist-cjs/lib/utils/areShapesContentEqual.js.map +2 -2
  65. package/dist-cjs/lib/utils/reorderShapes.js +11 -10
  66. package/dist-cjs/lib/utils/reorderShapes.js.map +2 -2
  67. package/dist-cjs/lib/utils/richText.js.map +1 -1
  68. package/dist-cjs/version.js +3 -3
  69. package/dist-cjs/version.js.map +1 -1
  70. package/dist-esm/index.d.mts +75 -70
  71. package/dist-esm/index.mjs +17 -9
  72. package/dist-esm/index.mjs.map +2 -2
  73. package/dist-esm/lib/editor/Editor.mjs +44 -73
  74. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  75. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs +22 -22
  76. package/dist-esm/lib/editor/derivations/bindingsIndex.mjs.map +2 -2
  77. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs +16 -20
  78. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs.map +3 -3
  79. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs +16 -16
  80. package/dist-esm/lib/editor/derivations/parentsToChildren.mjs.map +2 -2
  81. package/dist-esm/lib/editor/managers/{ClickManager.mjs → ClickManager/ClickManager.mjs} +1 -1
  82. package/dist-esm/lib/editor/managers/ClickManager/ClickManager.mjs.map +7 -0
  83. package/dist-esm/lib/editor/managers/{EdgeScrollManager.mjs → EdgeScrollManager/EdgeScrollManager.mjs} +2 -2
  84. package/dist-esm/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.mjs.map +7 -0
  85. package/dist-esm/lib/editor/managers/{FocusManager.mjs → FocusManager/FocusManager.mjs} +2 -0
  86. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +7 -0
  87. package/dist-esm/lib/editor/managers/{FontManager.mjs → FontManager/FontManager.mjs} +5 -1
  88. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +7 -0
  89. package/dist-esm/lib/editor/managers/{HistoryManager.mjs → HistoryManager/HistoryManager.mjs} +60 -2
  90. package/dist-esm/lib/editor/managers/HistoryManager/HistoryManager.mjs.map +7 -0
  91. package/dist-esm/lib/editor/managers/{ScribbleManager.mjs → ScribbleManager/ScribbleManager.mjs} +1 -1
  92. package/dist-esm/lib/editor/managers/ScribbleManager/ScribbleManager.mjs.map +7 -0
  93. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +7 -0
  94. package/dist-esm/lib/editor/managers/{TickManager.mjs → TickManager/TickManager.mjs} +1 -1
  95. package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs.map +7 -0
  96. package/dist-esm/lib/editor/managers/{UserPreferencesManager.mjs → UserPreferencesManager/UserPreferencesManager.mjs} +1 -1
  97. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +7 -0
  98. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +8 -0
  99. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  100. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs +6 -0
  101. package/dist-esm/lib/editor/shapes/group/GroupShapeUtil.mjs.map +2 -2
  102. package/dist-esm/lib/editor/shapes/shared/getPerfectDashProps.mjs.map +2 -2
  103. package/dist-esm/lib/exports/getSvgJsx.mjs.map +1 -1
  104. package/dist-esm/lib/primitives/Box.mjs +39 -33
  105. package/dist-esm/lib/primitives/Box.mjs.map +2 -2
  106. package/dist-esm/lib/primitives/Vec.mjs +19 -14
  107. package/dist-esm/lib/primitives/Vec.mjs.map +3 -3
  108. package/dist-esm/lib/primitives/geometry/Arc2d.mjs +41 -21
  109. package/dist-esm/lib/primitives/geometry/Arc2d.mjs.map +2 -2
  110. package/dist-esm/lib/primitives/geometry/Circle2d.mjs +11 -11
  111. package/dist-esm/lib/primitives/geometry/Circle2d.mjs.map +2 -2
  112. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs +13 -16
  113. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs.map +2 -2
  114. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs +4 -4
  115. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs.map +2 -2
  116. package/dist-esm/lib/primitives/geometry/Edge2d.mjs +14 -21
  117. package/dist-esm/lib/primitives/geometry/Edge2d.mjs.map +2 -2
  118. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs +11 -11
  119. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs.map +2 -2
  120. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs +7 -1
  121. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs.map +2 -2
  122. package/dist-esm/lib/primitives/geometry/Point2d.mjs +6 -6
  123. package/dist-esm/lib/primitives/geometry/Point2d.mjs.map +2 -2
  124. package/dist-esm/lib/primitives/geometry/Polygon2d.mjs +3 -0
  125. package/dist-esm/lib/primitives/geometry/Polygon2d.mjs.map +2 -2
  126. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs +8 -5
  127. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs.map +2 -2
  128. package/dist-esm/lib/primitives/geometry/Rectangle2d.mjs +22 -11
  129. package/dist-esm/lib/primitives/geometry/Rectangle2d.mjs.map +2 -2
  130. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs +22 -22
  131. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs.map +2 -2
  132. package/dist-esm/lib/utils/areShapesContentEqual.mjs +1 -1
  133. package/dist-esm/lib/utils/areShapesContentEqual.mjs.map +2 -2
  134. package/dist-esm/lib/utils/reorderShapes.mjs +11 -10
  135. package/dist-esm/lib/utils/reorderShapes.mjs.map +2 -2
  136. package/dist-esm/lib/utils/richText.mjs.map +1 -1
  137. package/dist-esm/version.mjs +3 -3
  138. package/dist-esm/version.mjs.map +1 -1
  139. package/package.json +7 -7
  140. package/src/index.ts +18 -8
  141. package/src/lib/editor/Editor.test.ts +252 -3
  142. package/src/lib/editor/Editor.ts +47 -75
  143. package/src/lib/editor/derivations/bindingsIndex.ts +27 -26
  144. package/src/lib/editor/derivations/notVisibleShapes.ts +24 -25
  145. package/src/lib/editor/derivations/parentsToChildren.ts +28 -25
  146. package/src/lib/editor/managers/ClickManager/ClickManager.test.ts +442 -0
  147. package/src/lib/editor/managers/{ClickManager.ts → ClickManager/ClickManager.ts} +3 -3
  148. package/src/lib/editor/managers/EdgeScrollManager/EdgeScrollManager.test.ts +374 -0
  149. package/src/lib/editor/managers/{EdgeScrollManager.ts → EdgeScrollManager/EdgeScrollManager.ts} +3 -3
  150. package/src/lib/editor/managers/FocusManager/FocusManager.test.ts +455 -0
  151. package/src/lib/editor/managers/{FocusManager.ts → FocusManager/FocusManager.ts} +3 -1
  152. package/src/lib/editor/managers/FontManager/FontManager.test.ts +263 -0
  153. package/src/lib/editor/managers/{FontManager.ts → FontManager/FontManager.ts} +6 -2
  154. package/src/lib/editor/managers/{HistoryManager.test.ts → HistoryManager/HistoryManager.test.ts} +388 -1
  155. package/src/lib/editor/managers/{HistoryManager.ts → HistoryManager/HistoryManager.ts} +73 -2
  156. package/src/lib/editor/managers/ScribbleManager/ScribbleManager.test.ts +624 -0
  157. package/src/lib/editor/managers/{ScribbleManager.ts → ScribbleManager/ScribbleManager.ts} +2 -2
  158. package/src/lib/editor/managers/SnapManager/SnapManager.test.ts +485 -0
  159. package/src/lib/editor/managers/TextManager/TextManager.test.ts +411 -0
  160. package/src/lib/editor/managers/{TextManager.ts → TextManager/TextManager.ts} +1 -1
  161. package/src/lib/editor/managers/TickManager/TickManager.test.ts +314 -0
  162. package/src/lib/editor/managers/{TickManager.ts → TickManager/TickManager.ts} +2 -2
  163. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +591 -0
  164. package/src/lib/editor/managers/{UserPreferencesManager.ts → UserPreferencesManager/UserPreferencesManager.ts} +2 -2
  165. package/src/lib/editor/shapes/ShapeUtil.ts +10 -1
  166. package/src/lib/editor/shapes/group/GroupShapeUtil.tsx +8 -0
  167. package/src/lib/editor/shapes/shared/getPerfectDashProps.ts +5 -2
  168. package/src/lib/exports/getSvgJsx.tsx +1 -1
  169. package/src/lib/primitives/Box.test.ts +588 -7
  170. package/src/lib/primitives/Box.ts +41 -33
  171. package/src/lib/primitives/Vec.test.ts +2 -2
  172. package/src/lib/primitives/Vec.ts +15 -10
  173. package/src/lib/primitives/geometry/Arc2d.ts +42 -23
  174. package/src/lib/primitives/geometry/Circle2d.ts +12 -12
  175. package/src/lib/primitives/geometry/CubicBezier2d.test.ts +5 -0
  176. package/src/lib/primitives/geometry/CubicBezier2d.ts +13 -17
  177. package/src/lib/primitives/geometry/CubicSpline2d.ts +5 -5
  178. package/src/lib/primitives/geometry/Edge2d.ts +14 -25
  179. package/src/lib/primitives/geometry/Ellipse2d.ts +12 -13
  180. package/src/lib/primitives/geometry/Geometry2d.ts +6 -0
  181. package/src/lib/primitives/geometry/Point2d.ts +6 -6
  182. package/src/lib/primitives/geometry/Polygon2d.ts +4 -0
  183. package/src/lib/primitives/geometry/Polyline2d.ts +10 -7
  184. package/src/lib/primitives/geometry/Rectangle2d.ts +24 -11
  185. package/src/lib/primitives/geometry/Stadium2d.ts +22 -23
  186. package/src/lib/utils/areShapesContentEqual.ts +2 -1
  187. package/src/lib/utils/reorderShapes.ts +10 -13
  188. package/src/lib/utils/richText.ts +1 -1
  189. package/src/version.ts +3 -3
  190. package/dist-cjs/lib/editor/managers/ClickManager.js.map +0 -7
  191. package/dist-cjs/lib/editor/managers/EdgeScrollManager.js.map +0 -7
  192. package/dist-cjs/lib/editor/managers/FocusManager.js.map +0 -7
  193. package/dist-cjs/lib/editor/managers/FontManager.js.map +0 -7
  194. package/dist-cjs/lib/editor/managers/HistoryManager.js.map +0 -7
  195. package/dist-cjs/lib/editor/managers/ScribbleManager.js.map +0 -7
  196. package/dist-cjs/lib/editor/managers/Stack.js +0 -82
  197. package/dist-cjs/lib/editor/managers/Stack.js.map +0 -7
  198. package/dist-cjs/lib/editor/managers/TextManager.js.map +0 -7
  199. package/dist-cjs/lib/editor/managers/TickManager.js.map +0 -7
  200. package/dist-cjs/lib/editor/managers/UserPreferencesManager.js.map +0 -7
  201. package/dist-esm/lib/editor/managers/ClickManager.mjs.map +0 -7
  202. package/dist-esm/lib/editor/managers/EdgeScrollManager.mjs.map +0 -7
  203. package/dist-esm/lib/editor/managers/FocusManager.mjs.map +0 -7
  204. package/dist-esm/lib/editor/managers/FontManager.mjs.map +0 -7
  205. package/dist-esm/lib/editor/managers/HistoryManager.mjs.map +0 -7
  206. package/dist-esm/lib/editor/managers/ScribbleManager.mjs.map +0 -7
  207. package/dist-esm/lib/editor/managers/Stack.mjs +0 -62
  208. package/dist-esm/lib/editor/managers/Stack.mjs.map +0 -7
  209. package/dist-esm/lib/editor/managers/TextManager.mjs.map +0 -7
  210. package/dist-esm/lib/editor/managers/TickManager.mjs.map +0 -7
  211. package/dist-esm/lib/editor/managers/UserPreferencesManager.mjs.map +0 -7
  212. package/src/lib/editor/managers/ScribbleManager.test.ts +0 -32
  213. package/src/lib/editor/managers/Stack.ts +0 -71
  214. /package/dist-cjs/lib/editor/managers/{TextManager.js → TextManager/TextManager.js} +0 -0
  215. /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,6 +559,7 @@ 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;
562
563
  invalidBindingTypes.add(binding.type);
563
564
  if (binding.fromId === shapeAfter.id) {
564
565
  this.getBindingUtil(binding).onAfterChangeFromShape?.({
@@ -2819,10 +2820,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
2819
2820
  }
2820
2821
  getViewportScreenCenter() {
2821
2822
  const viewportScreenBounds = this.getViewportScreenBounds();
2822
- return new import_Vec.Vec(
2823
- viewportScreenBounds.midX - viewportScreenBounds.minX,
2824
- viewportScreenBounds.midY - viewportScreenBounds.minY
2825
- );
2823
+ return new import_Vec.Vec(viewportScreenBounds.w / 2, viewportScreenBounds.h / 2);
2826
2824
  }
2827
2825
  getViewportPageBounds() {
2828
2826
  const { w, h } = this.getViewportScreenBounds();
@@ -3497,41 +3495,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3497
3495
  typeof shape === "string" ? shape : shape.id
3498
3496
  );
3499
3497
  }
3500
- /**
3501
- * Get the geometry of a shape in page-space.
3502
- *
3503
- * @example
3504
- * ```ts
3505
- * editor.getShapePageGeometry(myShape)
3506
- * editor.getShapePageGeometry(myShapeId)
3507
- * editor.getShapePageGeometry(myShapeId, { context: "arrow" })
3508
- * ```
3509
- *
3510
- * @param shape - The shape (or shape id) to get the geometry for.
3511
- * @param opts - Additional options about the request for geometry. Passed to {@link ShapeUtil.getGeometry}.
3512
- *
3513
- * @public
3514
- */
3515
- getShapePageGeometry(shape, opts) {
3516
- const context = opts?.context ?? "none";
3517
- if (!this._shapePageGeometryCaches[context]) {
3518
- this._shapePageGeometryCaches[context] = this.store.createComputedCache(
3519
- "bounds",
3520
- (shape2) => {
3521
- const geometry = this.getShapeGeometry(shape2.id, opts);
3522
- const pageTransform = this.getShapePageTransform(shape2.id);
3523
- return geometry.transform(pageTransform);
3524
- },
3525
- {
3526
- // we only depend directly on the shape id, and changing geometry/transform will update us anyway
3527
- areRecordsEqual: () => true
3528
- }
3529
- );
3530
- }
3531
- return this._shapePageGeometryCaches[context].get(
3532
- typeof shape === "string" ? shape : shape.id
3533
- );
3534
- }
3535
3498
  _getShapeHandlesCache() {
3536
3499
  return this.store.createComputedCache(
3537
3500
  "handles",
@@ -3625,7 +3588,10 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3625
3588
  }
3626
3589
  _getShapePageBoundsCache() {
3627
3590
  return this.store.createComputedCache("pageBoundsCache", (shape) => {
3628
- return this.getShapePageGeometry(shape).bounds;
3591
+ const pageTransform = this.getShapePageTransform(shape);
3592
+ if (!pageTransform) return void 0;
3593
+ const geometry = this.getShapeGeometry(shape);
3594
+ return import_Box.Box.FromPoints(pageTransform.applyToPoints(geometry.vertices));
3629
3595
  });
3630
3596
  }
3631
3597
  /**
@@ -3682,12 +3648,11 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3682
3648
  (shape2) => this.isShapeOfType(shape2, "frame")
3683
3649
  );
3684
3650
  if (frameAncestors.length === 0) return void 0;
3685
- const pageMask = frameAncestors.map(
3686
- (s) => (
3687
- // Apply the frame transform to the frame outline to get the frame outline in the current page space
3688
- this.getShapePageGeometry(s.id).vertices
3689
- )
3690
- ).reduce((acc, b) => {
3651
+ const pageMask = frameAncestors.map((s) => {
3652
+ const geometry = this.getShapeGeometry(s.id);
3653
+ const pageTransform = this.getShapePageTransform(s.id);
3654
+ return pageTransform.applyToPoints(geometry.vertices);
3655
+ }).reduce((acc, b) => {
3691
3656
  if (!(b && acc)) return void 0;
3692
3657
  const intersection = (0, import_intersect.intersectPolygonPolygon)(acc, b);
3693
3658
  if (intersection) {
@@ -3851,17 +3816,24 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3851
3816
  }
3852
3817
  return void 0;
3853
3818
  }
3854
- isShapeOrAncestorLocked(arg) {
3855
- const shape = typeof arg === "string" ? this.getShape(arg) : arg;
3856
- if (shape === void 0) return false;
3857
- if (shape.isLocked) return true;
3858
- return this.isShapeOrAncestorLocked(this.getShapeParent(shape));
3819
+ /**
3820
+ * Check whether a shape or its parent is locked.
3821
+ *
3822
+ * @param shape - The shape (or shape id) to check.
3823
+ *
3824
+ * @public
3825
+ */
3826
+ isShapeOrAncestorLocked(shape) {
3827
+ const _shape = shape && this.getShape(shape);
3828
+ if (_shape === void 0) return false;
3829
+ if (_shape.isLocked) return true;
3830
+ return this.isShapeOrAncestorLocked(this.getShapeParent(_shape));
3859
3831
  }
3860
- _notVisibleShapes() {
3861
- return (0, import_notVisibleShapes.notVisibleShapes)(this);
3832
+ getNotVisibleShapes() {
3833
+ return this._notVisibleShapes.get();
3862
3834
  }
3863
3835
  getCulledShapes() {
3864
- const notVisibleShapes2 = this._notVisibleShapes().get();
3836
+ const notVisibleShapes2 = this.getNotVisibleShapes();
3865
3837
  const selectedShapeIds = this.getSelectedShapeIds();
3866
3838
  const editingId = this.getEditingShapeId();
3867
3839
  const culledShapes = new Set(notVisibleShapes2);
@@ -4006,18 +3978,18 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
4006
3978
  * @example
4007
3979
  * ```ts
4008
3980
  * editor.getShapesAtPoint({ x: 100, y: 100 })
4009
- * editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true, exact: true })
3981
+ * editor.getShapesAtPoint({ x: 100, y: 100 }, { hitInside: true, margin: 8 })
4010
3982
  * ```
4011
3983
  *
4012
3984
  * @param point - The page point to test.
4013
3985
  * @param opts - The options for the hit point testing.
4014
3986
  *
3987
+ * @returns An array of shapes at the given point, sorted in reverse order of their absolute z-index (top-most shape first).
3988
+ *
4015
3989
  * @public
4016
3990
  */
4017
3991
  getShapesAtPoint(point, opts = {}) {
4018
- return this.getCurrentPageShapes().filter(
4019
- (shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)
4020
- );
3992
+ return this.getCurrentPageShapesSorted().filter((shape) => !this.isShapeHidden(shape) && this.isPointInShape(shape, point, opts)).reverse();
4021
3993
  }
4022
3994
  /**
4023
3995
  * Test whether a point (in the current page space) will will a shape. This method takes into account masks,
@@ -4339,8 +4311,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
4339
4311
  * @public
4340
4312
  */
4341
4313
  visitDescendants(parent, visitor) {
4342
- const parentId = typeof parent === "string" ? parent : parent.id;
4343
- const children = this.getSortedChildIdsForParent(parentId);
4314
+ const children = this.getSortedChildIdsForParent(parent);
4344
4315
  for (const id of children) {
4345
4316
  if (visitor(id) === false) continue;
4346
4317
  this.visitDescendants(id, visitor);
@@ -7807,7 +7778,7 @@ __decorateElement(_init, 1, "_getShapePageBoundsCache", __getShapePageBoundsCach
7807
7778
  __decorateElement(_init, 1, "_getShapeClipPathCache", __getShapeClipPathCache_dec, Editor);
7808
7779
  __decorateElement(_init, 1, "_getShapeMaskCache", __getShapeMaskCache_dec, Editor);
7809
7780
  __decorateElement(_init, 1, "_getShapeMaskedPageBoundsCache", __getShapeMaskedPageBoundsCache_dec, Editor);
7810
- __decorateElement(_init, 1, "_notVisibleShapes", __notVisibleShapes_dec, Editor);
7781
+ __decorateElement(_init, 1, "getNotVisibleShapes", _getNotVisibleShapes_dec, Editor);
7811
7782
  __decorateElement(_init, 1, "getCulledShapes", _getCulledShapes_dec, Editor);
7812
7783
  __decorateElement(_init, 1, "getCurrentPageBounds", _getCurrentPageBounds_dec, Editor);
7813
7784
  __decorateElement(_init, 1, "getCurrentPageShapes", _getCurrentPageShapes_dec, Editor);