@tldraw/editor 3.16.0-next.fe14f1b4181f → 4.0.0

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 (143) hide show
  1. package/dist-cjs/index.d.ts +91 -109
  2. package/dist-cjs/index.js +3 -5
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/TldrawEditor.js +1 -7
  5. package/dist-cjs/lib/TldrawEditor.js.map +2 -2
  6. package/dist-cjs/lib/components/default-components/DefaultCanvas.js +11 -1
  7. package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
  8. package/dist-cjs/lib/config/TLUserPreferences.js +15 -4
  9. package/dist-cjs/lib/config/TLUserPreferences.js.map +2 -2
  10. package/dist-cjs/lib/editor/Editor.js +58 -114
  11. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  12. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js +4 -0
  13. package/dist-cjs/lib/editor/derivations/notVisibleShapes.js.map +2 -2
  14. package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js +4 -2
  15. package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js.map +2 -2
  16. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js +11 -6
  17. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +2 -2
  18. package/dist-cjs/lib/editor/shapes/ShapeUtil.js +10 -0
  19. package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
  20. package/dist-cjs/lib/editor/types/misc-types.js.map +1 -1
  21. package/dist-cjs/lib/hooks/useCanvasEvents.js +19 -16
  22. package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
  23. package/dist-cjs/lib/hooks/useDocumentEvents.js +5 -5
  24. package/dist-cjs/lib/hooks/useDocumentEvents.js.map +2 -2
  25. package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js +1 -2
  26. package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js.map +2 -2
  27. package/dist-cjs/lib/hooks/useGestureEvents.js +1 -1
  28. package/dist-cjs/lib/hooks/useGestureEvents.js.map +2 -2
  29. package/dist-cjs/lib/hooks/useHandleEvents.js +6 -6
  30. package/dist-cjs/lib/hooks/useHandleEvents.js.map +2 -2
  31. package/dist-cjs/lib/hooks/usePassThroughMouseOverEvents.js +4 -1
  32. package/dist-cjs/lib/hooks/usePassThroughMouseOverEvents.js.map +2 -2
  33. package/dist-cjs/lib/hooks/useSelectionEvents.js +8 -8
  34. package/dist-cjs/lib/hooks/useSelectionEvents.js.map +2 -2
  35. package/dist-cjs/lib/license/LicenseManager.js +143 -53
  36. package/dist-cjs/lib/license/LicenseManager.js.map +2 -2
  37. package/dist-cjs/lib/license/LicenseProvider.js +39 -1
  38. package/dist-cjs/lib/license/LicenseProvider.js.map +2 -2
  39. package/dist-cjs/lib/license/Watermark.js +144 -75
  40. package/dist-cjs/lib/license/Watermark.js.map +3 -3
  41. package/dist-cjs/lib/license/useLicenseManagerState.js.map +2 -2
  42. package/dist-cjs/lib/primitives/Vec.js +0 -4
  43. package/dist-cjs/lib/primitives/Vec.js.map +2 -2
  44. package/dist-cjs/lib/primitives/geometry/Geometry2d.js +50 -20
  45. package/dist-cjs/lib/primitives/geometry/Geometry2d.js.map +2 -2
  46. package/dist-cjs/lib/primitives/geometry/Group2d.js +8 -1
  47. package/dist-cjs/lib/primitives/geometry/Group2d.js.map +2 -2
  48. package/dist-cjs/lib/utils/dom.js.map +2 -2
  49. package/dist-cjs/lib/utils/getPointerInfo.js +2 -3
  50. package/dist-cjs/lib/utils/getPointerInfo.js.map +2 -2
  51. package/dist-cjs/lib/utils/reparenting.js +7 -36
  52. package/dist-cjs/lib/utils/reparenting.js.map +3 -3
  53. package/dist-cjs/version.js +4 -4
  54. package/dist-cjs/version.js.map +1 -1
  55. package/dist-esm/index.d.mts +91 -109
  56. package/dist-esm/index.mjs +3 -5
  57. package/dist-esm/index.mjs.map +2 -2
  58. package/dist-esm/lib/TldrawEditor.mjs +1 -7
  59. package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
  60. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +11 -1
  61. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
  62. package/dist-esm/lib/config/TLUserPreferences.mjs +15 -4
  63. package/dist-esm/lib/config/TLUserPreferences.mjs.map +2 -2
  64. package/dist-esm/lib/editor/Editor.mjs +58 -114
  65. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  66. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs +4 -0
  67. package/dist-esm/lib/editor/derivations/notVisibleShapes.mjs.map +2 -2
  68. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs +4 -2
  69. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +2 -2
  70. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs +11 -6
  71. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +2 -2
  72. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs +10 -0
  73. package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
  74. package/dist-esm/lib/hooks/useCanvasEvents.mjs +20 -22
  75. package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
  76. package/dist-esm/lib/hooks/useDocumentEvents.mjs +6 -6
  77. package/dist-esm/lib/hooks/useDocumentEvents.mjs.map +2 -2
  78. package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs +1 -2
  79. package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs.map +2 -2
  80. package/dist-esm/lib/hooks/useGestureEvents.mjs +2 -2
  81. package/dist-esm/lib/hooks/useGestureEvents.mjs.map +2 -2
  82. package/dist-esm/lib/hooks/useHandleEvents.mjs +6 -6
  83. package/dist-esm/lib/hooks/useHandleEvents.mjs.map +2 -2
  84. package/dist-esm/lib/hooks/usePassThroughMouseOverEvents.mjs +4 -1
  85. package/dist-esm/lib/hooks/usePassThroughMouseOverEvents.mjs.map +2 -2
  86. package/dist-esm/lib/hooks/useSelectionEvents.mjs +9 -14
  87. package/dist-esm/lib/hooks/useSelectionEvents.mjs.map +2 -2
  88. package/dist-esm/lib/license/LicenseManager.mjs +144 -54
  89. package/dist-esm/lib/license/LicenseManager.mjs.map +2 -2
  90. package/dist-esm/lib/license/LicenseProvider.mjs +39 -2
  91. package/dist-esm/lib/license/LicenseProvider.mjs.map +2 -2
  92. package/dist-esm/lib/license/Watermark.mjs +145 -76
  93. package/dist-esm/lib/license/Watermark.mjs.map +3 -3
  94. package/dist-esm/lib/license/useLicenseManagerState.mjs.map +2 -2
  95. package/dist-esm/lib/primitives/Vec.mjs +0 -4
  96. package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
  97. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs +53 -21
  98. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs.map +2 -2
  99. package/dist-esm/lib/primitives/geometry/Group2d.mjs +8 -1
  100. package/dist-esm/lib/primitives/geometry/Group2d.mjs.map +2 -2
  101. package/dist-esm/lib/utils/dom.mjs.map +2 -2
  102. package/dist-esm/lib/utils/getPointerInfo.mjs +2 -3
  103. package/dist-esm/lib/utils/getPointerInfo.mjs.map +2 -2
  104. package/dist-esm/lib/utils/reparenting.mjs +8 -41
  105. package/dist-esm/lib/utils/reparenting.mjs.map +2 -2
  106. package/dist-esm/version.mjs +4 -4
  107. package/dist-esm/version.mjs.map +1 -1
  108. package/editor.css +8 -3
  109. package/package.json +7 -7
  110. package/src/index.ts +2 -9
  111. package/src/lib/TldrawEditor.tsx +1 -15
  112. package/src/lib/components/default-components/DefaultCanvas.tsx +7 -1
  113. package/src/lib/config/TLUserPreferences.ts +16 -3
  114. package/src/lib/editor/Editor.test.ts +90 -0
  115. package/src/lib/editor/Editor.ts +77 -151
  116. package/src/lib/editor/derivations/notVisibleShapes.ts +6 -0
  117. package/src/lib/editor/managers/FocusManager/FocusManager.ts +6 -2
  118. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.test.ts +30 -8
  119. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.ts +10 -3
  120. package/src/lib/editor/shapes/ShapeUtil.ts +32 -0
  121. package/src/lib/editor/types/misc-types.ts +0 -6
  122. package/src/lib/hooks/useCanvasEvents.ts +20 -20
  123. package/src/lib/hooks/useDocumentEvents.ts +6 -6
  124. package/src/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.ts +1 -1
  125. package/src/lib/hooks/useGestureEvents.ts +2 -2
  126. package/src/lib/hooks/useHandleEvents.ts +6 -6
  127. package/src/lib/hooks/usePassThroughMouseOverEvents.ts +4 -1
  128. package/src/lib/hooks/useSelectionEvents.ts +9 -14
  129. package/src/lib/license/LicenseManager.test.ts +721 -382
  130. package/src/lib/license/LicenseManager.ts +204 -58
  131. package/src/lib/license/LicenseProvider.tsx +74 -2
  132. package/src/lib/license/Watermark.tsx +152 -77
  133. package/src/lib/license/useLicenseManagerState.ts +2 -2
  134. package/src/lib/primitives/Vec.ts +0 -5
  135. package/src/lib/primitives/geometry/Geometry2d.test.ts +420 -0
  136. package/src/lib/primitives/geometry/Geometry2d.ts +78 -21
  137. package/src/lib/primitives/geometry/Group2d.ts +10 -1
  138. package/src/lib/test/InFrontOfTheCanvas.test.tsx +187 -0
  139. package/src/lib/utils/dom.test.ts +103 -0
  140. package/src/lib/utils/dom.ts +8 -1
  141. package/src/lib/utils/getPointerInfo.ts +3 -2
  142. package/src/lib/utils/reparenting.ts +10 -70
  143. package/src/version.ts +4 -4
@@ -88,7 +88,6 @@ var import_defaultShapes = require("../config/defaultShapes");
88
88
  var import_constants = require("../constants");
89
89
  var import_exportToSvg = require("../exports/exportToSvg");
90
90
  var import_getSvgAsImage = require("../exports/getSvgAsImage");
91
- var import_environment = require("../globals/environment");
92
91
  var import_menus = require("../globals/menus");
93
92
  var import_time = require("../globals/time");
94
93
  var import_options = require("../options");
@@ -123,8 +122,8 @@ var import_TextManager = require("./managers/TextManager/TextManager");
123
122
  var import_TickManager = require("./managers/TickManager/TickManager");
124
123
  var import_UserPreferencesManager = require("./managers/UserPreferencesManager/UserPreferencesManager");
125
124
  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, _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) {
125
+ 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, _getInstanceState_dec, _getDocumentSettings_dec, _getCurrentToolId_dec, _getCurrentTool_dec, _getPath_dec, _getCanRedo_dec, _getCanUndo_dec, _getIsShapeHiddenCache_dec, _a, _init;
126
+ 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], _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
127
  constructor({
129
128
  store,
130
129
  user,
@@ -138,8 +137,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
138
137
  autoFocus,
139
138
  inferDarkMode,
140
139
  options,
141
- // eslint-disable-next-line @typescript-eslint/no-deprecated
142
- isShapeHidden,
143
140
  getShapeVisibility,
144
141
  fontAssetUrls
145
142
  }) {
@@ -206,13 +203,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
206
203
  * @public
207
204
  */
208
205
  __publicField(this, "fonts");
209
- /**
210
- * A manager for the editor's environment.
211
- *
212
- * @deprecated This is deprecated and will be removed in a future version. Use the `tlenv` global export instead.
213
- * @public
214
- */
215
- __publicField(this, "environment", import_environment.tlenv);
216
206
  /**
217
207
  * A manager for the editor's scribbles.
218
208
  *
@@ -414,15 +404,10 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
414
404
  __publicField(this, "performanceTracker");
415
405
  /** @internal */
416
406
  __publicField(this, "performanceTrackerTimeout", -1);
407
+ /** @internal */
408
+ __publicField(this, "handledEvents", /* @__PURE__ */ new WeakSet());
417
409
  __publicField(this, "_pendingEventsForNextTick", []);
418
- (0, import_utils.assert)(
419
- !(isShapeHidden && getShapeVisibility),
420
- "Cannot use both isShapeHidden and getShapeVisibility"
421
- );
422
- this._getShapeVisibility = isShapeHidden ? (
423
- // eslint-disable-next-line @typescript-eslint/no-deprecated
424
- (shape, editor) => isShapeHidden(shape, editor) ? "hidden" : "inherit"
425
- ) : getShapeVisibility;
410
+ this._getShapeVisibility = getShapeVisibility;
426
411
  this.options = { ...import_options.defaultTldrawOptions, ...options };
427
412
  this.store = store;
428
413
  this.history = new import_HistoryManager.HistoryManager({
@@ -448,6 +433,7 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
448
433
  }
449
434
  this.root = new NewRoot(this);
450
435
  this.root.children = {};
436
+ this.markEventAsHandled = this.markEventAsHandled.bind(this);
451
437
  const allShapeUtils = (0, import_defaultShapes.checkShapesAndAddCore)(shapeUtils);
452
438
  const _shapeUtils = {};
453
439
  const _styleProps = {};
@@ -902,34 +888,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
902
888
  getCanRedo() {
903
889
  return this.history.getNumRedos() > 0;
904
890
  }
905
- /**
906
- * Create a new "mark", or stopping point, in the undo redo history. Creating a mark will clear
907
- * any redos.
908
- *
909
- * @example
910
- * ```ts
911
- * editor.mark()
912
- * editor.mark('flip shapes')
913
- * ```
914
- *
915
- * @param markId - The mark's id, usually the reason for adding the mark.
916
- *
917
- * @public
918
- * @deprecated use {@link Editor.markHistoryStoppingPoint} instead
919
- */
920
- mark(markId) {
921
- if (typeof markId === "string") {
922
- console.warn(
923
- `[tldraw] \`editor.history.mark("${markId}")\` is deprecated. Please use \`const myMarkId = editor.markHistoryStoppingPoint()\` instead.`
924
- );
925
- } else {
926
- console.warn(
927
- "[tldraw] `editor.mark()` is deprecated. Use `editor.markHistoryStoppingPoint()` instead."
928
- );
929
- }
930
- this.history._mark(markId ?? (0, import_utils.uniqueId)());
931
- return this;
932
- }
933
891
  /**
934
892
  * Create a new "mark", or stopping point, in the undo redo history. Creating a mark will clear
935
893
  * any redos. You typically want to do this just before a user interaction begins or is handled.
@@ -1045,12 +1003,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
1045
1003
  }
1046
1004
  return this;
1047
1005
  }
1048
- /**
1049
- * @deprecated Use `Editor.run` instead.
1050
- */
1051
- batch(fn, opts) {
1052
- return this.run(fn, opts);
1053
- }
1054
1006
  /* --------------------- Errors --------------------- */
1055
1007
  /** @internal */
1056
1008
  annotateError(error, {
@@ -1272,39 +1224,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
1272
1224
  ]);
1273
1225
  }, opts);
1274
1226
  }
1275
- getOpenMenus() {
1276
- return this.menus.getOpenMenus();
1277
- }
1278
- /**
1279
- * @deprecated Use `editor.menus.addOpenMenu` instead.
1280
- *
1281
- * @public
1282
- */
1283
- addOpenMenu(id) {
1284
- this.menus.addOpenMenu(id);
1285
- return this;
1286
- }
1287
- /**
1288
- * @deprecated Use `editor.menus.deleteOpenMenu` instead.
1289
- *
1290
- * @public
1291
- */
1292
- deleteOpenMenu(id) {
1293
- this.menus.deleteOpenMenu(id);
1294
- return this;
1295
- }
1296
- /**
1297
- * @deprecated Use `editor.menus.clearOpenMenus` instead.
1298
- *
1299
- * @public
1300
- */
1301
- clearOpenMenus() {
1302
- this.menus.clearOpenMenus();
1303
- return this;
1304
- }
1305
- getIsMenuOpen() {
1306
- return this.menus.hasAnyOpenMenus();
1307
- }
1308
1227
  /* --------------------- Cursor --------------------- */
1309
1228
  /**
1310
1229
  * Set the cursor.
@@ -3612,8 +3531,9 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3612
3531
  return this.store.createComputedCache("pageBoundsCache", (shape) => {
3613
3532
  const pageTransform = this.getShapePageTransform(shape);
3614
3533
  if (!pageTransform) return void 0;
3615
- const geometry = this.getShapeGeometry(shape);
3616
- return import_Box.Box.FromPoints(pageTransform.applyToPoints(geometry.vertices));
3534
+ return import_Box.Box.FromPoints(
3535
+ pageTransform.applyToPoints(this.getShapeGeometry(shape).boundsVertices)
3536
+ );
3617
3537
  });
3618
3538
  }
3619
3539
  /**
@@ -3666,16 +3586,17 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
3666
3586
  _getShapeMaskCache() {
3667
3587
  return this.store.createComputedCache("pageMaskCache", (shape) => {
3668
3588
  if ((0, import_tlschema.isPageId)(shape.parentId)) return void 0;
3669
- const frameAncestors = this.getShapeAncestors(shape.id).filter(
3670
- (shape2) => this.isShapeOfType(shape2, "frame")
3671
- );
3672
- if (frameAncestors.length === 0) return void 0;
3673
- const pageMask = frameAncestors.map((s) => {
3674
- const geometry = this.getShapeGeometry(s.id);
3675
- const pageTransform = this.getShapePageTransform(s.id);
3676
- return pageTransform.applyToPoints(geometry.vertices);
3677
- }).reduce((acc, b) => {
3678
- if (!(b && acc)) return void 0;
3589
+ const clipPaths = [];
3590
+ for (const ancestor of this.getShapeAncestors(shape.id)) {
3591
+ const util = this.getShapeUtil(ancestor);
3592
+ const clipPath = util.getClipPath?.(ancestor);
3593
+ if (!clipPath) continue;
3594
+ if (util.shouldClipChild?.(shape) === false) continue;
3595
+ const pageTransform = this.getShapePageTransform(ancestor.id);
3596
+ clipPaths.push(pageTransform.applyToPoints(clipPath));
3597
+ }
3598
+ if (clipPaths.length === 0) return void 0;
3599
+ const pageMask = clipPaths.reduce((acc, b) => {
3679
3600
  const intersection = (0, import_intersect.intersectPolygonPolygon)(acc, b);
3680
3601
  if (intersection) {
3681
3602
  return intersection.map(import_Vec.Vec.Cast);
@@ -4373,10 +4294,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
4373
4294
  }
4374
4295
  return shapeIds;
4375
4296
  }
4376
- /** @deprecated Use {@link Editor.getDraggingOverShape} instead */
4377
- getDroppingOverShape(point, droppingShapes) {
4378
- return this.getDraggingOverShape(point, droppingShapes);
4379
- }
4380
4297
  /**
4381
4298
  * Get the shape that some shapes should be dropped on at a given point.
4382
4299
  *
@@ -6524,16 +6441,20 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
6524
6441
  * Handle external content, such as files, urls, embeds, or plain text which has been put into the app, for example by pasting external text or dropping external images onto canvas.
6525
6442
  *
6526
6443
  * @param info - Info about the external content.
6444
+ * @param opts - Options for handling external content, including force flag to bypass readonly checks.
6527
6445
  */
6528
- async putExternalContent(info) {
6446
+ async putExternalContent(info, opts = {}) {
6447
+ if (!opts.force && this.getIsReadonly()) return;
6529
6448
  return this.externalContentHandlers[info.type]?.(info);
6530
6449
  }
6531
6450
  /**
6532
6451
  * Handle replacing external content.
6533
6452
  *
6534
6453
  * @param info - Info about the external content.
6454
+ * @param opts - Options for handling external content, including force flag to bypass readonly checks.
6535
6455
  */
6536
- async replaceExternalContent(info) {
6456
+ async replaceExternalContent(info, opts = {}) {
6457
+ if (!opts.force && this.getIsReadonly()) return;
6537
6458
  return this.externalContentHandlers[info.type]?.(info);
6538
6459
  }
6539
6460
  /**
@@ -6887,12 +6808,6 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
6887
6808
  height: result.height
6888
6809
  };
6889
6810
  }
6890
- /** @deprecated Use {@link Editor.getSvgString} or {@link Editor.getSvgElement} instead. */
6891
- async getSvg(shapes, opts = {}) {
6892
- const result = await this.getSvgElement(shapes, opts);
6893
- if (!result) return void 0;
6894
- return result.svg;
6895
- }
6896
6811
  /**
6897
6812
  * Get an exported image of the given shapes.
6898
6813
  *
@@ -7459,6 +7374,32 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
7459
7374
  code: "MetaLeft"
7460
7375
  });
7461
7376
  }
7377
+ /**
7378
+ * In tldraw, events are sometimes handled by multiple components. For example, the shapes might
7379
+ * have events, but the canvas handles events too. The way that the canvas handles events can
7380
+ * interfere with the with the shapes event handlers - for example, it calls `.preventDefault()`
7381
+ * on `pointerDown`, which also prevents `click` events from firing on the shapes.
7382
+ *
7383
+ * You can use `.stopPropagation()` to prevent the event from propagating to the rest of the
7384
+ * DOM, but that can impact non-tldraw event handlers set up elsewhere. By using
7385
+ * `markEventAsHandled`, you'll stop other parts of tldraw from handling the event without
7386
+ * impacting other, non-tldraw event handlers. See also {@link Editor.wasEventAlreadyHandled}.
7387
+ *
7388
+ * @public
7389
+ */
7390
+ markEventAsHandled(e) {
7391
+ const nativeEvent = "nativeEvent" in e ? e.nativeEvent : e;
7392
+ this.handledEvents.add(nativeEvent);
7393
+ }
7394
+ /**
7395
+ * Checks if an event has already been handled. See {@link Editor.markEventAsHandled}.
7396
+ *
7397
+ * @public
7398
+ */
7399
+ wasEventAlreadyHandled(e) {
7400
+ const nativeEvent = "nativeEvent" in e ? e.nativeEvent : e;
7401
+ return this.handledEvents.has(nativeEvent);
7402
+ }
7462
7403
  /**
7463
7404
  * Dispatch an event to the editor.
7464
7405
  *
@@ -7614,7 +7555,12 @@ class Editor extends (_a = import_eventemitter3.default, _getIsShapeHiddenCache_
7614
7555
  case "wheel": {
7615
7556
  if (cameraOptions.isLocked) return;
7616
7557
  this._updateInputsFromEvent(info);
7617
- const { panSpeed, zoomSpeed, wheelBehavior } = cameraOptions;
7558
+ const { panSpeed, zoomSpeed } = cameraOptions;
7559
+ let wheelBehavior = cameraOptions.wheelBehavior;
7560
+ const inputMode = this.user.getUserPreferences().inputMode;
7561
+ if (inputMode !== null) {
7562
+ wheelBehavior = inputMode === "trackpad" ? "pan" : "zoom";
7563
+ }
7618
7564
  if (wheelBehavior !== "none") {
7619
7565
  this.stopCameraAnimation();
7620
7566
  if (instanceState.followingUserId) {
@@ -7873,8 +7819,6 @@ __decorateElement(_init, 1, "getCurrentTool", _getCurrentTool_dec, Editor);
7873
7819
  __decorateElement(_init, 1, "getCurrentToolId", _getCurrentToolId_dec, Editor);
7874
7820
  __decorateElement(_init, 1, "getDocumentSettings", _getDocumentSettings_dec, Editor);
7875
7821
  __decorateElement(_init, 1, "getInstanceState", _getInstanceState_dec, Editor);
7876
- __decorateElement(_init, 1, "getOpenMenus", _getOpenMenus_dec, Editor);
7877
- __decorateElement(_init, 1, "getIsMenuOpen", _getIsMenuOpen_dec, Editor);
7878
7822
  __decorateElement(_init, 1, "getPageStates", _getPageStates_dec, Editor);
7879
7823
  __decorateElement(_init, 1, "_getPageStatesQuery", __getPageStatesQuery_dec, Editor);
7880
7824
  __decorateElement(_init, 1, "getCurrentPageState", _getCurrentPageState_dec, Editor);