@excalidraw/excalidraw 0.18.0-817d8c5 → 0.18.0-a18b139

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 (271) hide show
  1. package/CHANGELOG.md +11 -11
  2. package/dist/dev/chunk-FB2NA5UG.js +4132 -0
  3. package/dist/dev/chunk-FB2NA5UG.js.map +7 -0
  4. package/dist/dev/{chunk-53KHN5WM.js → chunk-MJMGTOVG.js} +2 -2
  5. package/dist/dev/{chunk-53KHN5WM.js.map → chunk-MJMGTOVG.js.map} +1 -1
  6. package/dist/dev/{chunk-3SN6HYVK.js → chunk-U3G3LY5D.js} +14433 -21847
  7. package/dist/dev/chunk-U3G3LY5D.js.map +7 -0
  8. package/dist/dev/{chunk-LMHBUWQS.js → chunk-X3RYHLJU.js} +2 -1
  9. package/dist/dev/chunk-X3RYHLJU.js.map +7 -0
  10. package/dist/dev/data/{image-V26YBSDB.js → image-Y366K5SN.js} +3 -3
  11. package/dist/dev/index.css +3031 -3034
  12. package/dist/dev/index.css.map +3 -3
  13. package/dist/dev/index.js +30824 -23152
  14. package/dist/dev/index.js.map +4 -4
  15. package/dist/dev/locales/{en-OZCJJ2HN.js → en-CKWC2GMK.js} +2 -2
  16. package/dist/dev/subset-shared.chunk.js +2 -2
  17. package/dist/dev/subset-worker.chunk.js +2 -2
  18. package/dist/prod/{chunk-6U3AYISY.js → chunk-IUH5AXLB.js} +1 -1
  19. package/dist/prod/chunk-LS7FJGPW.js +86 -0
  20. package/dist/prod/chunk-PUQLEN73.js +33 -0
  21. package/dist/prod/{chunk-G5N3DNGT.js → chunk-VQA74LVG.js} +1 -1
  22. package/dist/prod/data/image-WY2VMQLG.js +1 -0
  23. package/dist/prod/index.css +1 -1
  24. package/dist/prod/index.js +17 -14
  25. package/dist/prod/locales/{en-B4ZKOASM.js → en-SBO6ZHT2.js} +1 -1
  26. package/dist/prod/subset-shared.chunk.js +1 -1
  27. package/dist/prod/subset-worker.chunk.js +1 -1
  28. package/dist/types/{excalidraw/binaryheap.d.ts → common/src/binary-heap.d.ts} +1 -1
  29. package/dist/types/{excalidraw → common/src}/colors.d.ts +1 -0
  30. package/dist/types/{excalidraw → common/src}/constants.d.ts +9 -6
  31. package/dist/types/{excalidraw/fonts/FontMetadata.d.ts → common/src/font-metadata.d.ts} +11 -3
  32. package/dist/types/common/src/index.d.ts +11 -0
  33. package/dist/types/{excalidraw → common/src}/points.d.ts +2 -0
  34. package/dist/types/common/src/promise-pool.d.ts +6 -0
  35. package/dist/types/{excalidraw → common/src}/utils.d.ts +13 -12
  36. package/dist/types/{excalidraw/scene → element/src}/Scene.d.ts +12 -15
  37. package/dist/types/{excalidraw/scene → element/src}/Shape.d.ts +2 -2
  38. package/dist/types/{excalidraw/scene → element/src}/ShapeCache.d.ts +4 -4
  39. package/dist/types/element/src/align.d.ts +7 -0
  40. package/dist/types/{excalidraw/element → element/src}/binding.d.ts +15 -15
  41. package/dist/types/{excalidraw/element → element/src}/bounds.d.ts +9 -4
  42. package/dist/types/{excalidraw/element → element/src}/collision.d.ts +3 -3
  43. package/dist/types/{excalidraw/scene → element/src}/comparisons.d.ts +1 -1
  44. package/dist/types/{excalidraw → element/src}/distribute.d.ts +1 -1
  45. package/dist/types/{excalidraw/element → element/src}/dragElements.d.ts +5 -4
  46. package/dist/types/element/src/duplicate.d.ts +63 -0
  47. package/dist/types/{excalidraw/element → element/src}/elbowArrow.d.ts +1 -1
  48. package/dist/types/{excalidraw/element → element/src}/elementLink.d.ts +1 -1
  49. package/dist/types/element/src/embeddable.d.ts +10 -0
  50. package/dist/types/{excalidraw/element → element/src}/flowchart.d.ts +4 -3
  51. package/dist/types/{excalidraw → element/src}/fractionalIndex.d.ts +5 -2
  52. package/dist/types/{excalidraw → element/src}/frame.d.ts +7 -7
  53. package/dist/types/{excalidraw → element/src}/groups.d.ts +5 -5
  54. package/dist/types/{excalidraw/element → element/src}/heading.d.ts +1 -2
  55. package/dist/types/{excalidraw/element → element/src}/image.d.ts +2 -2
  56. package/dist/types/{excalidraw/element → element/src}/index.d.ts +0 -10
  57. package/dist/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +16 -16
  58. package/dist/types/{excalidraw/element → element/src}/mutateElement.d.ts +11 -3
  59. package/dist/types/{excalidraw/element → element/src}/newElement.d.ts +3 -43
  60. package/dist/types/{excalidraw/renderer → element/src}/renderElement.d.ts +3 -3
  61. package/dist/types/{excalidraw/element → element/src}/resizeElements.d.ts +6 -6
  62. package/dist/types/{excalidraw/element → element/src}/resizeTest.d.ts +4 -4
  63. package/dist/types/{excalidraw/scene → element/src}/selection.d.ts +13 -2
  64. package/dist/types/element/src/shapes.d.ts +23 -0
  65. package/dist/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +1 -1
  66. package/dist/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +1 -2
  67. package/dist/types/{excalidraw/element → element/src}/textElement.d.ts +8 -7
  68. package/dist/types/{excalidraw/element → element/src}/transformHandles.d.ts +7 -7
  69. package/dist/types/{excalidraw/element → element/src}/typeChecks.d.ts +2 -2
  70. package/dist/types/{excalidraw/element → element/src}/types.d.ts +2 -2
  71. package/dist/types/element/src/zindex.d.ts +7 -0
  72. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +70 -67
  73. package/dist/types/excalidraw/actions/actionAlign.d.ts +7 -7
  74. package/dist/types/excalidraw/actions/actionBoundText.d.ts +52 -50
  75. package/dist/types/excalidraw/actions/actionCanvas.d.ts +533 -344
  76. package/dist/types/excalidraw/actions/actionClipboard.d.ts +149 -143
  77. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +25 -24
  78. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +70 -67
  79. package/dist/types/excalidraw/actions/actionDistribute.d.ts +3 -3
  80. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +3 -7
  81. package/dist/types/excalidraw/actions/actionElementLink.d.ts +29 -28
  82. package/dist/types/excalidraw/actions/actionElementLock.d.ts +51 -50
  83. package/dist/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +25 -34
  84. package/dist/types/excalidraw/actions/actionExport.d.ts +288 -279
  85. package/dist/types/excalidraw/actions/actionFinalize.d.ts +39 -37
  86. package/dist/types/excalidraw/actions/actionFlip.d.ts +3 -3
  87. package/dist/types/excalidraw/actions/actionFrame.d.ts +208 -204
  88. package/dist/types/excalidraw/actions/actionGroup.d.ts +49 -47
  89. package/dist/types/excalidraw/actions/actionHistory.d.ts +1 -1
  90. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +26 -25
  91. package/dist/types/excalidraw/actions/actionLink.d.ts +26 -25
  92. package/dist/types/excalidraw/actions/actionMenu.d.ts +72 -69
  93. package/dist/types/excalidraw/actions/actionNavigate.d.ts +47 -45
  94. package/dist/types/excalidraw/actions/actionProperties.d.ts +300 -285
  95. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +25 -24
  96. package/dist/types/excalidraw/actions/actionStyles.d.ts +27 -26
  97. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  98. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +25 -24
  99. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +25 -24
  100. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +48 -46
  101. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +24 -24
  102. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +25 -25
  103. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +25 -25
  104. package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -8
  105. package/dist/types/excalidraw/actions/index.d.ts +1 -0
  106. package/dist/types/excalidraw/actions/manager.d.ts +2 -2
  107. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  108. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  109. package/dist/types/excalidraw/animated-trail.d.ts +7 -1
  110. package/dist/types/excalidraw/appState.d.ts +30 -29
  111. package/dist/types/excalidraw/change.d.ts +3 -3
  112. package/dist/types/excalidraw/charts.d.ts +1 -1
  113. package/dist/types/excalidraw/clipboard.d.ts +7 -7
  114. package/dist/types/excalidraw/components/Actions.d.ts +3 -3
  115. package/dist/types/excalidraw/components/App.d.ts +34 -18
  116. package/dist/types/excalidraw/components/Avatar.d.ts +1 -1
  117. package/dist/types/excalidraw/components/ButtonIcon.d.ts +1 -1
  118. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +4 -4
  119. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +1 -2
  120. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -2
  121. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +1 -1
  122. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +1 -1
  123. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +3 -3
  124. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +1 -1
  125. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -1
  126. package/dist/types/excalidraw/components/ConfirmDialog.d.ts +1 -1
  127. package/dist/types/excalidraw/components/ContextMenu.d.ts +2 -2
  128. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  129. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +2 -2
  130. package/dist/types/excalidraw/components/DialogActionButton.d.ts +1 -1
  131. package/dist/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +1 -1
  132. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +5 -4
  133. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  134. package/dist/types/excalidraw/components/FixedSideContainer.d.ts +1 -1
  135. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
  136. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +1 -1
  137. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +3 -3
  138. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +1 -1
  139. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +1 -1
  140. package/dist/types/excalidraw/components/HintViewer.d.ts +1 -1
  141. package/dist/types/excalidraw/components/IconPicker.d.ts +1 -1
  142. package/dist/types/excalidraw/components/ImageExportDialog.d.ts +2 -2
  143. package/dist/types/excalidraw/components/InitializeApp.d.ts +1 -1
  144. package/dist/types/excalidraw/components/Island.d.ts +1 -1
  145. package/dist/types/excalidraw/components/JSONExportDialog.d.ts +2 -2
  146. package/dist/types/excalidraw/components/LayerUI.d.ts +3 -3
  147. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -1
  148. package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +1 -1
  149. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +3 -3
  150. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -2
  151. package/dist/types/excalidraw/components/LoadingMessage.d.ts +1 -1
  152. package/dist/types/excalidraw/components/MagicButton.d.ts +1 -1
  153. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -3
  154. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +1 -1
  155. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  156. package/dist/types/excalidraw/components/PublishLibrary.d.ts +1 -1
  157. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  158. package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
  159. package/dist/types/excalidraw/components/Sidebar/common.d.ts +1 -1
  160. package/dist/types/excalidraw/components/Stack.d.ts +1 -1
  161. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  162. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +1 -1
  163. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  164. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +3 -3
  165. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +2 -2
  166. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  167. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +3 -3
  168. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +2 -2
  169. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  170. package/dist/types/excalidraw/components/Stats/Position.d.ts +2 -2
  171. package/dist/types/excalidraw/components/Stats/index.d.ts +2 -2
  172. package/dist/types/excalidraw/components/Stats/utils.d.ts +4 -4
  173. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  174. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +1 -1
  175. package/dist/types/excalidraw/components/TextField.d.ts +1 -1
  176. package/dist/types/excalidraw/components/Toast.d.ts +1 -1
  177. package/dist/types/excalidraw/components/ToolButton.d.ts +2 -2
  178. package/dist/types/excalidraw/components/Tooltip.d.ts +1 -1
  179. package/dist/types/excalidraw/components/UserList.d.ts +1 -1
  180. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -3
  181. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -2
  182. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +3 -3
  183. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +1 -1
  184. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +2 -2
  185. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +1 -1
  186. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +5 -4
  187. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  188. package/dist/types/excalidraw/components/icons.d.ts +2 -1
  189. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
  190. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +4 -1
  191. package/dist/types/excalidraw/components/shapes.d.ts +62 -0
  192. package/dist/types/excalidraw/context/tunnels.d.ts +1 -1
  193. package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +1 -1
  194. package/dist/types/excalidraw/data/blob.d.ts +4 -4
  195. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  196. package/dist/types/excalidraw/data/index.d.ts +2 -2
  197. package/dist/types/excalidraw/data/json.d.ts +1 -1
  198. package/dist/types/excalidraw/data/library.d.ts +3 -3
  199. package/dist/types/excalidraw/data/reconcile.d.ts +2 -2
  200. package/dist/types/excalidraw/data/resave.d.ts +1 -1
  201. package/dist/types/excalidraw/data/restore.d.ts +1 -1
  202. package/dist/types/excalidraw/data/transform.d.ts +4 -4
  203. package/dist/types/excalidraw/data/types.d.ts +3 -3
  204. package/dist/types/excalidraw/eraser/index.d.ts +14 -0
  205. package/dist/types/excalidraw/errors.d.ts +0 -3
  206. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -13
  207. package/dist/types/excalidraw/history.d.ts +2 -2
  208. package/dist/types/excalidraw/i18n.d.ts +1 -1
  209. package/dist/types/excalidraw/index.d.ts +15 -14
  210. package/dist/types/excalidraw/laser-trails.d.ts +1 -1
  211. package/dist/types/excalidraw/lasso/index.d.ts +15 -0
  212. package/dist/types/excalidraw/lasso/utils.d.ts +12 -0
  213. package/dist/types/excalidraw/renderer/helpers.d.ts +2 -2
  214. package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +2 -2
  215. package/dist/types/excalidraw/scene/Renderer.d.ts +3 -3
  216. package/dist/types/excalidraw/scene/export.d.ts +1 -1
  217. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  218. package/dist/types/excalidraw/scene/scroll.d.ts +1 -1
  219. package/dist/types/excalidraw/scene/scrollbars.d.ts +2 -3
  220. package/dist/types/excalidraw/scene/types.d.ts +6 -4
  221. package/dist/types/excalidraw/snapping.d.ts +5 -6
  222. package/dist/types/excalidraw/store.d.ts +2 -2
  223. package/dist/types/excalidraw/types.d.ts +20 -15
  224. package/dist/types/excalidraw/visualdebug.d.ts +2 -2
  225. package/dist/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +1 -1
  226. package/dist/types/math/{point.d.ts → src/point.d.ts} +2 -2
  227. package/dist/types/math/{polygon.d.ts → src/polygon.d.ts} +1 -0
  228. package/dist/types/math/{segment.d.ts → src/segment.d.ts} +1 -1
  229. package/dist/types/math/{types.d.ts → src/types.d.ts} +1 -0
  230. package/dist/types/utils/{bbox.d.ts → src/bbox.d.ts} +1 -1
  231. package/dist/types/utils/{collision.d.ts → src/collision.d.ts} +2 -3
  232. package/dist/types/utils/{export.d.ts → src/export.d.ts} +2 -2
  233. package/dist/types/utils/{index.d.ts → src/index.d.ts} +1 -1
  234. package/dist/types/utils/{geometry → src}/shape.d.ts +2 -15
  235. package/dist/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +2 -2
  236. package/history.ts +4 -2
  237. package/package.json +14 -2
  238. package/dist/dev/chunk-3SN6HYVK.js.map +0 -7
  239. package/dist/dev/chunk-LMHBUWQS.js.map +0 -7
  240. package/dist/dev/chunk-OKSO7T74.js +0 -4132
  241. package/dist/dev/chunk-OKSO7T74.js.map +0 -7
  242. package/dist/prod/chunk-36CXSE6H.js +0 -34
  243. package/dist/prod/chunk-EIO257PC.js +0 -86
  244. package/dist/prod/data/image-N4WCURRR.js +0 -1
  245. package/dist/types/excalidraw/align.d.ts +0 -7
  246. package/dist/types/excalidraw/shapes.d.ts +0 -85
  247. package/dist/types/excalidraw/zindex.d.ts +0 -6
  248. package/dist/dev/data/{image-V26YBSDB.js.map → image-Y366K5SN.js.map} +0 -0
  249. package/dist/dev/locales/{en-OZCJJ2HN.js.map → en-CKWC2GMK.js.map} +0 -0
  250. package/dist/types/{excalidraw → common/src}/keys.d.ts +0 -0
  251. package/dist/types/{excalidraw → common/src}/queue.d.ts +0 -0
  252. package/dist/types/{excalidraw → common/src}/random.d.ts +0 -0
  253. package/dist/types/{excalidraw/data → common/src}/url.d.ts +0 -0
  254. package/dist/types/{excalidraw → common/src}/utility-types.d.ts +0 -0
  255. package/dist/types/{excalidraw/element → element/src}/containerCache.d.ts +0 -0
  256. package/dist/types/{excalidraw/element → element/src}/cropElement.d.ts +0 -0
  257. package/dist/types/{excalidraw/element → element/src}/distance.d.ts +0 -0
  258. package/dist/types/{excalidraw/element → element/src}/sortElements.d.ts +0 -0
  259. package/dist/types/{excalidraw/element → element/src}/textMeasurements.d.ts +0 -0
  260. package/dist/types/{excalidraw/element → element/src}/textWrapping.d.ts +0 -0
  261. package/dist/types/{excalidraw/element → element/src}/utils.d.ts +1 -1
  262. /package/dist/types/math/{angle.d.ts → src/angle.d.ts} +0 -0
  263. /package/dist/types/math/{curve.d.ts → src/curve.d.ts} +0 -0
  264. /package/dist/types/math/{ellipse.d.ts → src/ellipse.d.ts} +0 -0
  265. /package/dist/types/math/{index.d.ts → src/index.d.ts} +0 -0
  266. /package/dist/types/math/{line.d.ts → src/line.d.ts} +0 -0
  267. /package/dist/types/math/{range.d.ts → src/range.d.ts} +0 -0
  268. /package/dist/types/math/{rectangle.d.ts → src/rectangle.d.ts} +0 -0
  269. /package/dist/types/math/{triangle.d.ts → src/triangle.d.ts} +0 -0
  270. /package/dist/types/math/{utils.d.ts → src/utils.d.ts} +0 -0
  271. /package/dist/types/math/{vector.d.ts → src/vector.d.ts} +0 -0
@@ -1,8 +1,8 @@
1
- import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "./element/types";
2
- import type { AppClassProperties, AppState, StaticCanvasAppState } from "./types";
3
- import type { ExcalidrawElementsIncludingDeleted } from "./scene/Scene";
4
- import type { ReadonlySetLike } from "./utility-types";
5
- export declare const bindElementsToFramesAfterDuplication: (nextElements: readonly ExcalidrawElement[], oldElements: readonly ExcalidrawElement[], oldIdToDuplicatedId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>) => void;
1
+ import type { AppClassProperties, AppState, StaticCanvasAppState } from "@excalidraw/excalidraw/types";
2
+ import type { ReadonlySetLike } from "@excalidraw/common/utility-types";
3
+ import type { ExcalidrawElementsIncludingDeleted } from "./Scene";
4
+ import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "./types";
5
+ export declare const bindElementsToFramesAfterDuplication: (nextElements: readonly ExcalidrawElement[], origElements: readonly ExcalidrawElement[], origIdToDuplicateId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>) => void;
6
6
  export declare function isElementIntersectingFrame(element: ExcalidrawElement, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap): boolean;
7
7
  export declare const getElementsCompletelyInFrame: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => ExcalidrawElement[];
8
8
  export declare const isElementContainingFrame: (element: ExcalidrawElement, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => boolean;
@@ -31,8 +31,8 @@ export declare const getFrameLikeElements: (allElements: ExcalidrawElementsInclu
31
31
  */
32
32
  export declare const getRootElements: (allElements: ExcalidrawElementsIncludingDeleted) => ExcalidrawElement[];
33
33
  export declare const getElementsInResizingFrame: (allElements: ExcalidrawElementsIncludingDeleted, frame: ExcalidrawFrameLikeElement, appState: AppState, elementsMap: ElementsMap) => ExcalidrawElement[];
34
- export declare const getElementsInNewFrame: (elements: ExcalidrawElementsIncludingDeleted, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => (import("./element/types").ExcalidrawSelectionElement | import("./element/types").ExcalidrawRectangleElement | import("./element/types").ExcalidrawDiamondElement | import("./element/types").ExcalidrawEllipseElement | import("./element/types").ExcalidrawTextElement | import("./element/types").ExcalidrawLinearElement | import("./element/types").ExcalidrawFreeDrawElement | import("./element/types").ExcalidrawImageElement | import("./element/types").ExcalidrawFrameElement | import("./element/types").ExcalidrawMagicFrameElement | import("./element/types").ExcalidrawIframeElement | import("./element/types").ExcalidrawEmbeddableElement)[];
35
- export declare const omitPartialGroups: (elements: ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, allElementsMap: ElementsMap) => (import("./element/types").ExcalidrawSelectionElement | import("./element/types").ExcalidrawRectangleElement | import("./element/types").ExcalidrawDiamondElement | import("./element/types").ExcalidrawEllipseElement | import("./element/types").ExcalidrawTextElement | import("./element/types").ExcalidrawLinearElement | import("./element/types").ExcalidrawFreeDrawElement | import("./element/types").ExcalidrawImageElement | import("./element/types").ExcalidrawFrameElement | import("./element/types").ExcalidrawMagicFrameElement | import("./element/types").ExcalidrawIframeElement | import("./element/types").ExcalidrawEmbeddableElement)[];
34
+ export declare const getElementsInNewFrame: (elements: ExcalidrawElementsIncludingDeleted, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => (import("./types").ExcalidrawRectangleElement | import("./types").ExcalidrawDiamondElement | import("./types").ExcalidrawFrameElement | import("./types").ExcalidrawMagicFrameElement | import("./types").ExcalidrawEmbeddableElement | import("./types").ExcalidrawImageElement | import("./types").ExcalidrawIframeElement | import("./types").ExcalidrawTextElement | import("./types").ExcalidrawSelectionElement | import("./types").ExcalidrawEllipseElement | import("./types").ExcalidrawLinearElement | import("./types").ExcalidrawFreeDrawElement)[];
35
+ export declare const omitPartialGroups: (elements: ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, allElementsMap: ElementsMap) => (import("./types").ExcalidrawRectangleElement | import("./types").ExcalidrawDiamondElement | import("./types").ExcalidrawFrameElement | import("./types").ExcalidrawMagicFrameElement | import("./types").ExcalidrawEmbeddableElement | import("./types").ExcalidrawImageElement | import("./types").ExcalidrawIframeElement | import("./types").ExcalidrawTextElement | import("./types").ExcalidrawSelectionElement | import("./types").ExcalidrawEllipseElement | import("./types").ExcalidrawLinearElement | import("./types").ExcalidrawFreeDrawElement)[];
36
36
  export declare const getContainingFrame: (element: ExcalidrawElement, elementsMap: ElementsMap) => ExcalidrawFrameLikeElement | null;
37
37
  /** */
38
38
  export declare const filterElementsEligibleAsFrameChildren: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement) => ExcalidrawElement[];
@@ -1,6 +1,6 @@
1
- import type { GroupId, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ElementsMapOrArray, ElementsMap } from "./element/types";
2
- import type { AppClassProperties, AppState, InteractiveCanvasAppState } from "./types";
3
- import type { Mutable } from "./utility-types";
1
+ import type { AppClassProperties, AppState, InteractiveCanvasAppState } from "@excalidraw/excalidraw/types";
2
+ import type { Mutable } from "@excalidraw/common/utility-types";
3
+ import type { GroupId, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ElementsMapOrArray, ElementsMap } from "./types";
4
4
  export declare const selectGroup: (groupId: GroupId, appState: InteractiveCanvasAppState, elements: readonly NonDeleted<ExcalidrawElement>[]) => Pick<InteractiveCanvasAppState, "selectedGroupIds" | "selectedElementIds" | "editingGroupId">;
5
5
  export declare const selectGroupsForSelectedElements: {
6
6
  (appState: Pick<AppState, "selectedElementIds" | "editingGroupId">, elements: readonly NonDeletedExcalidrawElement[], prevAppState: InteractiveCanvasAppState, app: AppClassProperties | null): Mutable<Pick<InteractiveCanvasAppState, "selectedGroupIds" | "editingGroupId" | "selectedElementIds">>;
@@ -11,7 +11,7 @@ export declare const selectGroupsForSelectedElements: {
11
11
  * selection border around it.
12
12
  */
13
13
  export declare const isSelectedViaGroup: (appState: InteractiveCanvasAppState, element: ExcalidrawElement) => boolean;
14
- export declare const getSelectedGroupForElement: (appState: InteractiveCanvasAppState, element: ExcalidrawElement) => string | undefined;
14
+ export declare const getSelectedGroupForElement: (appState: Pick<InteractiveCanvasAppState, "editingGroupId" | "selectedGroupIds">, element: ExcalidrawElement) => string | undefined;
15
15
  export declare const getSelectedGroupIds: (appState: InteractiveCanvasAppState) => GroupId[];
16
16
  export declare const selectGroupsFromGivenElements: (elements: readonly NonDeleted<ExcalidrawElement>[], appState: InteractiveCanvasAppState) => {
17
17
  [groupId: string]: boolean;
@@ -22,7 +22,6 @@ export declare const getElementsInGroup: (elements: ElementsMapOrArray, groupId:
22
22
  export declare const getSelectedGroupIdForElement: (element: ExcalidrawElement, selectedGroupIds: {
23
23
  [groupId: string]: boolean;
24
24
  }) => string | undefined;
25
- export declare const getNewGroupIdsForDuplication: (groupIds: ExcalidrawElement["groupIds"], editingGroupId: AppState["editingGroupId"], mapper: (groupId: GroupId) => GroupId) => string[];
26
25
  export declare const addToGroup: (prevGroupIds: ExcalidrawElement["groupIds"], newGroupId: GroupId, editingGroupId: AppState["editingGroupId"]) => string[];
27
26
  export declare const removeFromSelectedGroups: (groupIds: ExcalidrawElement["groupIds"], selectedGroupIds: {
28
27
  [groupId: string]: boolean;
@@ -31,3 +30,4 @@ export declare const getMaximumGroups: (elements: ExcalidrawElement[], elementsM
31
30
  export declare const getNonDeletedGroupIds: (elements: ElementsMap) => Set<string>;
32
31
  export declare const elementsAreInSameGroup: (elements: readonly ExcalidrawElement[]) => boolean;
33
32
  export declare const isInGroup: (element: NonDeletedExcalidrawElement) => boolean;
33
+ export declare const getNewGroupIdsForDuplication: (groupIds: ExcalidrawElement["groupIds"], editingGroupId: AppState["editingGroupId"], mapper: (groupId: GroupId) => GroupId) => string[];
@@ -5,12 +5,11 @@ export declare const HEADING_DOWN: Heading;
5
5
  export declare const HEADING_LEFT: Heading;
6
6
  export declare const HEADING_UP: Heading;
7
7
  export type Heading = [1, 0] | [0, 1] | [-1, 0] | [0, -1];
8
- export declare const headingForDiamond: <Point extends GlobalPoint | LocalPoint>(a: Point, b: Point) => Heading;
9
8
  export declare const vectorToHeading: (vec: Vector) => Heading;
10
9
  export declare const headingForPoint: <P extends GlobalPoint | LocalPoint>(p: P, o: P) => Heading;
11
10
  export declare const headingForPointIsHorizontal: <P extends GlobalPoint | LocalPoint>(p: P, o: P) => boolean;
12
11
  export declare const compareHeading: (a: Heading, b: Heading) => boolean;
13
12
  export declare const headingIsHorizontal: (a: Heading) => boolean;
14
13
  export declare const headingIsVertical: (a: Heading) => boolean;
15
- export declare const headingForPointFromElement: <Point extends GlobalPoint | LocalPoint>(element: Readonly<ExcalidrawBindableElement>, aabb: readonly [minX: number, minY: number, maxX: number, maxY: number], p: Readonly<Point>) => Heading;
14
+ export declare const headingForPointFromElement: <Point extends GlobalPoint>(element: Readonly<ExcalidrawBindableElement>, aabb: readonly [minX: number, minY: number, maxX: number, maxY: number], p: Readonly<Point>) => Heading;
16
15
  export declare const flipHeading: (h: Heading) => Heading;
@@ -1,4 +1,4 @@
1
- import type { AppClassProperties, DataURL, BinaryFiles } from "../types";
1
+ import type { AppClassProperties, DataURL, BinaryFiles } from "@excalidraw/excalidraw/types";
2
2
  import type { ExcalidrawElement, FileId, InitializedExcalidrawImageElement } from "./types";
3
3
  export declare const loadHTMLImageElement: (dataURL: DataURL) => Promise<HTMLImageElement>;
4
4
  /** NOTE: updates cache even if already populated with given image. Thus,
@@ -10,7 +10,7 @@ export declare const updateImageCache: ({ fileIds, files, imageCache, }: {
10
10
  }) => Promise<{
11
11
  imageCache: Map<FileId, {
12
12
  image: HTMLImageElement | Promise<HTMLImageElement>;
13
- mimeType: import("../utility-types").ValueOf<{
13
+ mimeType: import("../../common/src/utility-types").ValueOf<{
14
14
  readonly svg: "image/svg+xml";
15
15
  readonly png: "image/png";
16
16
  readonly jpg: "image/jpeg";
@@ -1,14 +1,4 @@
1
1
  import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted } from "./types";
2
- export { newElement, newTextElement, refreshTextDimensions, newLinearElement, newArrowElement, newImageElement, duplicateElement, } from "./newElement";
3
- export { getElementAbsoluteCoords, getElementBounds, getCommonBounds, getDiamondPoints, getArrowheadPoints, getClosestElementBounds, } from "./bounds";
4
- export { OMIT_SIDES_FOR_MULTIPLE_ELEMENTS, getTransformHandlesFromCoords, getTransformHandles, } from "./transformHandles";
5
- export { resizeTest, getCursorForResizingElement, getElementWithTransformHandleType, getTransformHandleTypeFromCoords, } from "./resizeTest";
6
- export { transformElements, getResizeOffsetXY, getResizeArrowDirection, } from "./resizeElements";
7
- export { dragSelectedElements, getDragOffsetXY, dragNewElement, } from "./dragElements";
8
- export { isTextElement, isExcalidrawElement } from "./typeChecks";
9
- export { redrawTextBoundingBox, getTextFromElements } from "./textElement";
10
- export { getPerfectElementSize, getLockedLinearCursorAlignSize, isInvisiblySmallElement, resizePerfectLineForNWHandler, getNormalizedDimensions, } from "./sizeHelpers";
11
- export { showSelectedShapeActions } from "./showSelectedShapeActions";
12
2
  /**
13
3
  * @deprecated unsafe, use hashElementsVersion instead
14
4
  */
@@ -1,10 +1,10 @@
1
1
  /// <reference types="react" />
2
- import type { NonDeleted, ExcalidrawLinearElement, ExcalidrawElement, PointBinding, ExcalidrawBindableElement, ExcalidrawTextElementWithContainer, ElementsMap, NonDeletedSceneElementsMap, SceneElementsMap, ExcalidrawElbowArrowElement } from "./types";
3
- import type { Bounds } from "./bounds";
4
- import type { AppState, PointerCoords, InteractiveCanvasAppState, AppClassProperties, NullableGridSize, Zoom } from "../types";
5
- import type { Store } from "../store";
6
- import type Scene from "../scene/Scene";
7
2
  import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
3
+ import type { Store } from "@excalidraw/excalidraw/store";
4
+ import type { AppState, PointerCoords, InteractiveCanvasAppState, AppClassProperties, NullableGridSize, Zoom } from "@excalidraw/excalidraw/types";
5
+ import type Scene from "./Scene";
6
+ import type { Bounds } from "./bounds";
7
+ import type { NonDeleted, ExcalidrawLinearElement, ExcalidrawElement, PointBinding, ExcalidrawBindableElement, ExcalidrawTextElementWithContainer, ElementsMap, NonDeletedSceneElementsMap, ExcalidrawElbowArrowElement } from "./types";
8
8
  declare const editorMidPointsCache: {
9
9
  version: number | null;
10
10
  points: (GlobalPoint | null)[];
@@ -43,7 +43,7 @@ export declare class LinearElementEditor {
43
43
  readonly hoverPointIndex: number;
44
44
  readonly segmentMidPointHoveredCoords: GlobalPoint | null;
45
45
  readonly elbowed: boolean;
46
- constructor(element: NonDeleted<ExcalidrawLinearElement>);
46
+ constructor(element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap);
47
47
  static POINT_HANDLE_SIZE: number;
48
48
  /**
49
49
  * @param id the `elementId` from the instance of this class (so that we can
@@ -57,7 +57,7 @@ export declare class LinearElementEditor {
57
57
  static handlePointDragging(event: PointerEvent, app: AppClassProperties, scenePointerX: number, scenePointerY: number, maybeSuggestBinding: (element: NonDeleted<ExcalidrawLinearElement>, pointSceneCoords: {
58
58
  x: number;
59
59
  y: number;
60
- }[]) => void, linearElementEditor: LinearElementEditor, scene: Scene): boolean;
60
+ }[]) => void, linearElementEditor: LinearElementEditor, scene: Scene): LinearElementEditor | null;
61
61
  static handlePointerUp(event: PointerEvent, editingLinearElement: LinearElementEditor, appState: AppState, scene: Scene): LinearElementEditor;
62
62
  static getEditorMidPoints: (element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap, appState: InteractiveCanvasAppState) => (typeof editorMidPointsCache)["points"];
63
63
  static updateEditorMidPointsCache: (element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap, appState: InteractiveCanvasAppState) => void;
@@ -77,7 +77,7 @@ export declare class LinearElementEditor {
77
77
  linearElementEditor: LinearElementEditor | null;
78
78
  };
79
79
  static arePointsEqual<Point extends LocalPoint | GlobalPoint>(point1: Point | null, point2: Point | null): boolean;
80
- static handlePointerMove(event: React.PointerEvent<HTMLCanvasElement>, scenePointerX: number, scenePointerY: number, app: AppClassProperties, elementsMap: NonDeletedSceneElementsMap | SceneElementsMap): LinearElementEditor | null;
80
+ static handlePointerMove(event: React.PointerEvent<HTMLCanvasElement>, scenePointerX: number, scenePointerY: number, app: AppClassProperties): LinearElementEditor | null;
81
81
  /** scene coords */
82
82
  static getPointGlobalCoordinates(element: NonDeleted<ExcalidrawLinearElement>, p: LocalPoint, elementsMap: ElementsMap): GlobalPoint;
83
83
  /** scene coords */
@@ -97,13 +97,13 @@ export declare class LinearElementEditor {
97
97
  x: number;
98
98
  y: number;
99
99
  };
100
- static normalizePoints(element: NonDeleted<ExcalidrawLinearElement>): void;
101
- static duplicateSelectedPoints(appState: AppState, elementsMap: NonDeletedSceneElementsMap | SceneElementsMap): AppState;
102
- static deletePoints(element: NonDeleted<ExcalidrawLinearElement>, pointIndices: readonly number[]): void;
103
- static addPoints(element: NonDeleted<ExcalidrawLinearElement>, targetPoints: {
100
+ static normalizePoints(element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap): void;
101
+ static duplicateSelectedPoints(appState: AppState, scene: Scene): AppState;
102
+ static deletePoints(element: NonDeleted<ExcalidrawLinearElement>, scene: Scene, pointIndices: readonly number[]): void;
103
+ static addPoints(element: NonDeleted<ExcalidrawLinearElement>, scene: Scene, targetPoints: {
104
104
  point: LocalPoint;
105
105
  }[]): void;
106
- static movePoints(element: NonDeleted<ExcalidrawLinearElement>, targetPoints: {
106
+ static movePoints(element: NonDeleted<ExcalidrawLinearElement>, scene: Scene, targetPoints: {
107
107
  index: number;
108
108
  point: LocalPoint;
109
109
  isDragging?: boolean;
@@ -112,7 +112,7 @@ export declare class LinearElementEditor {
112
112
  endBinding?: PointBinding | null;
113
113
  }): void;
114
114
  static shouldAddMidpoint(linearElementEditor: LinearElementEditor, pointerCoords: PointerCoords, appState: AppState, elementsMap: ElementsMap): boolean;
115
- static addMidpoint(linearElementEditor: LinearElementEditor, pointerCoords: PointerCoords, app: AppClassProperties, snapToGrid: boolean, elementsMap: ElementsMap): {
115
+ static addMidpoint(linearElementEditor: LinearElementEditor, pointerCoords: PointerCoords, app: AppClassProperties, snapToGrid: boolean, scene: Scene): {
116
116
  pointerDownState: LinearElementEditor["pointerDownState"];
117
117
  selectedPointsIndices: LinearElementEditor["selectedPointsIndices"];
118
118
  } | undefined;
@@ -124,7 +124,7 @@ export declare class LinearElementEditor {
124
124
  };
125
125
  static getMinMaxXYWithBoundText: (element: ExcalidrawLinearElement, elementsMap: ElementsMap, elementBounds: Bounds, boundTextElement: ExcalidrawTextElementWithContainer) => [number, number, number, number, number, number];
126
126
  static getElementAbsoluteCoords: (element: ExcalidrawLinearElement, elementsMap: ElementsMap, includeBoundText?: boolean) => [number, number, number, number, number, number];
127
- static moveFixedSegment(linearElement: LinearElementEditor, index: number, x: number, y: number, elementsMap: ElementsMap): LinearElementEditor;
128
- static deleteFixedSegment(element: ExcalidrawElbowArrowElement, index: number): void;
127
+ static moveFixedSegment(linearElement: LinearElementEditor, index: number, x: number, y: number, scene: Scene): LinearElementEditor;
128
+ static deleteFixedSegment(element: ExcalidrawElbowArrowElement, scene: Scene, index: number): void;
129
129
  }
130
130
  export {};
@@ -1,7 +1,15 @@
1
- import type { ExcalidrawElement } from "./types";
2
- import type { Mutable } from "../utility-types";
1
+ import type { Mutable } from "@excalidraw/common/utility-types";
2
+ import type { ElementsMap, ExcalidrawElement } from "./types";
3
3
  export type ElementUpdate<TElement extends ExcalidrawElement> = Omit<Partial<TElement>, "id" | "version" | "versionNonce" | "updated">;
4
- export declare const mutateElement: <TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, informMutation?: boolean, options?: {
4
+ /**
5
+ * This function tracks updates of text elements for the purposes for collaboration.
6
+ * The version is used to compare updates when more than one user is working in
7
+ * the same drawing.
8
+ *
9
+ * WARNING: this won't trigger the component to update, so if you need to trigger component update,
10
+ * use `scene.mutateElement` or `ExcalidrawImperativeAPI.mutateElement` instead.
11
+ */
12
+ export declare const mutateElement: <TElement extends Mutable<ExcalidrawElement>>(element: TElement, elementsMap: ElementsMap, updates: ElementUpdate<TElement>, options?: {
5
13
  isDragging?: boolean;
6
14
  }) => TElement;
7
15
  export declare const newElementWith: <TElement extends ExcalidrawElement>(element: TElement, updates: ElementUpdate<TElement>, force?: boolean) => TElement;
@@ -1,6 +1,5 @@
1
- import type { ExcalidrawElement, ExcalidrawImageElement, ExcalidrawTextElement, ExcalidrawLinearElement, ExcalidrawGenericElement, NonDeleted, TextAlign, GroupId, VerticalAlign, Arrowhead, ExcalidrawFreeDrawElement, FontFamilyValues, ExcalidrawTextContainer, ExcalidrawFrameElement, ExcalidrawEmbeddableElement, ExcalidrawMagicFrameElement, ExcalidrawIframeElement, ElementsMap, ExcalidrawArrowElement, FixedSegment, ExcalidrawElbowArrowElement } from "./types";
2
- import type { AppState } from "../types";
3
- import type { MarkOptional, Mutable } from "../utility-types";
1
+ import type { MarkOptional } from "@excalidraw/common/utility-types";
2
+ import type { ExcalidrawImageElement, ExcalidrawTextElement, ExcalidrawLinearElement, ExcalidrawGenericElement, NonDeleted, TextAlign, VerticalAlign, Arrowhead, ExcalidrawFreeDrawElement, FontFamilyValues, ExcalidrawTextContainer, ExcalidrawFrameElement, ExcalidrawEmbeddableElement, ExcalidrawMagicFrameElement, ExcalidrawIframeElement, ElementsMap, ExcalidrawArrowElement, FixedSegment, ExcalidrawElbowArrowElement } from "./types";
4
3
  export type ElementConstructorOpts = MarkOptional<Omit<ExcalidrawGenericElement, "id" | "type" | "isDeleted" | "updated">, "width" | "height" | "angle" | "groupIds" | "frameId" | "index" | "boundElements" | "seed" | "version" | "versionNonce" | "link" | "strokeStyle" | "fillStyle" | "strokeColor" | "backgroundColor" | "roughness" | "strokeWidth" | "roundness" | "locked" | "opacity" | "customData">;
5
4
  export declare const newElement: (opts: {
6
5
  type: ExcalidrawGenericElement["type"];
@@ -52,7 +51,7 @@ export declare const newArrowElement: <T extends boolean>(opts: {
52
51
  points?: readonly import("@excalidraw/math").LocalPoint[] | undefined;
53
52
  elbowed?: T | undefined;
54
53
  fixedSegments?: FixedSegment[] | null | undefined;
55
- } & Omit<Omit<ExcalidrawGenericElement, "id" | "isDeleted" | "updated" | "type">, "link" | "strokeColor" | "backgroundColor" | "fillStyle" | "strokeWidth" | "strokeStyle" | "roundness" | "roughness" | "opacity" | "width" | "height" | "angle" | "seed" | "version" | "versionNonce" | "index" | "groupIds" | "frameId" | "boundElements" | "locked" | "customData"> & Partial<Pick<Omit<ExcalidrawGenericElement, "id" | "isDeleted" | "updated" | "type">, "link" | "strokeColor" | "backgroundColor" | "fillStyle" | "strokeWidth" | "strokeStyle" | "roundness" | "roughness" | "opacity" | "width" | "height" | "angle" | "seed" | "version" | "versionNonce" | "index" | "groupIds" | "frameId" | "boundElements" | "locked" | "customData">>) => T extends true ? NonDeleted<ExcalidrawElbowArrowElement> : NonDeleted<ExcalidrawArrowElement>;
54
+ } & Omit<Omit<ExcalidrawGenericElement, "id" | "isDeleted" | "updated" | "type">, "link" | "angle" | "strokeColor" | "backgroundColor" | "fillStyle" | "strokeWidth" | "strokeStyle" | "roundness" | "roughness" | "opacity" | "width" | "height" | "seed" | "version" | "versionNonce" | "index" | "groupIds" | "frameId" | "boundElements" | "locked" | "customData"> & Partial<Pick<Omit<ExcalidrawGenericElement, "id" | "isDeleted" | "updated" | "type">, "link" | "angle" | "strokeColor" | "backgroundColor" | "fillStyle" | "strokeWidth" | "strokeStyle" | "roundness" | "roughness" | "opacity" | "width" | "height" | "seed" | "version" | "versionNonce" | "index" | "groupIds" | "frameId" | "boundElements" | "locked" | "customData">>) => T extends true ? NonDeleted<ExcalidrawElbowArrowElement> : NonDeleted<ExcalidrawArrowElement>;
56
55
  export declare const newImageElement: (opts: {
57
56
  type: ExcalidrawImageElement["type"];
58
57
  status?: ExcalidrawImageElement["status"];
@@ -60,42 +59,3 @@ export declare const newImageElement: (opts: {
60
59
  scale?: ExcalidrawImageElement["scale"];
61
60
  crop?: ExcalidrawImageElement["crop"];
62
61
  } & ElementConstructorOpts) => NonDeleted<ExcalidrawImageElement>;
63
- /**
64
- * Clones ExcalidrawElement data structure. Does not regenerate id, nonce, or
65
- * any value. The purpose is to to break object references for immutability
66
- * reasons, whenever we want to keep the original element, but ensure it's not
67
- * mutated.
68
- *
69
- * Only clones plain objects and arrays. Doesn't clone Date, RegExp, Map, Set,
70
- * Typed arrays and other non-null objects.
71
- */
72
- export declare const deepCopyElement: <T extends ExcalidrawElement>(val: T) => Mutable<T>;
73
- /**
74
- * Duplicate an element, often used in the alt-drag operation.
75
- * Note that this method has gotten a bit complicated since the
76
- * introduction of gruoping/ungrouping elements.
77
- * @param editingGroupId The current group being edited. The new
78
- * element will inherit this group and its
79
- * parents.
80
- * @param groupIdMapForOperation A Map that maps old group IDs to
81
- * duplicated ones. If you are duplicating
82
- * multiple elements at once, share this map
83
- * amongst all of them
84
- * @param element Element to duplicate
85
- * @param overrides Any element properties to override
86
- */
87
- export declare const duplicateElement: <TElement extends ExcalidrawElement>(editingGroupId: AppState["editingGroupId"], groupIdMapForOperation: Map<GroupId, GroupId>, element: TElement, overrides?: Partial<TElement> | undefined) => Readonly<TElement>;
88
- /**
89
- * Clones elements, regenerating their ids (including bindings) and group ids.
90
- *
91
- * If bindings don't exist in the elements array, they are removed. Therefore,
92
- * it's advised to supply the whole elements array, or sets of elements that
93
- * are encapsulated (such as library items), if the purpose is to retain
94
- * bindings to the cloned elements intact.
95
- *
96
- * NOTE by default does not randomize or regenerate anything except the id.
97
- */
98
- export declare const duplicateElements: (elements: readonly ExcalidrawElement[], opts?: {
99
- /** NOTE also updates version flags and `updated` */
100
- randomizeSeed: boolean;
101
- }) => ExcalidrawElement[];
@@ -1,7 +1,7 @@
1
- import type { ExcalidrawElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawImageElement, ExcalidrawFrameLikeElement, NonDeletedSceneElementsMap } from "../element/types";
1
+ import type { AppState, StaticCanvasAppState, InteractiveCanvasAppState, ElementsPendingErasure, PendingExcalidrawElements } from "@excalidraw/excalidraw/types";
2
+ import type { StaticCanvasRenderConfig, RenderableElementsMap, InteractiveCanvasRenderConfig } from "@excalidraw/excalidraw/scene/types";
3
+ import type { ExcalidrawElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawImageElement, ExcalidrawFrameLikeElement, NonDeletedSceneElementsMap } from "./types";
2
4
  import type { RoughCanvas } from "roughjs/bin/canvas";
3
- import type { StaticCanvasRenderConfig, RenderableElementsMap, InteractiveCanvasRenderConfig } from "../scene/types";
4
- import type { AppState, StaticCanvasAppState, InteractiveCanvasAppState, ElementsPendingErasure, PendingExcalidrawElements } from "../types";
5
5
  export declare const IMAGE_INVERT_FILTER = "invert(100%) hue-rotate(180deg) saturate(1.25)";
6
6
  export declare const getRenderOpacity: (element: ExcalidrawElement, containingFrame: ExcalidrawFrameLikeElement | null, elementsPendingErasure: ElementsPendingErasure, pendingNodes: Readonly<PendingExcalidrawElements> | null, globalAlpha?: number) => number;
7
7
  export interface ExcalidrawElementWithCanvas {
@@ -1,10 +1,10 @@
1
- import type { ExcalidrawLinearElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawElement, ElementsMap, SceneElementsMap } from "./types";
1
+ import { type LocalPoint } from "@excalidraw/math";
2
+ import type { PointerDownState } from "@excalidraw/excalidraw/types";
3
+ import type Scene from "./Scene";
2
4
  import type { BoundingBox } from "./bounds";
3
5
  import type { MaybeTransformHandleType, TransformHandleDirection } from "./transformHandles";
4
- import type { PointerDownState } from "../types";
5
- import type Scene from "../scene/Scene";
6
- import { type LocalPoint } from "@excalidraw/math";
7
- export declare const transformElements: (originalElements: PointerDownState["originalElements"], transformHandleType: MaybeTransformHandleType, selectedElements: readonly NonDeletedExcalidrawElement[], elementsMap: SceneElementsMap, scene: Scene, shouldRotateWithDiscreteAngle: boolean, shouldResizeFromCenter: boolean, shouldMaintainAspectRatio: boolean, pointerX: number, pointerY: number, centerX: number, centerY: number) => boolean;
6
+ import type { ExcalidrawLinearElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawElement, ElementsMap } from "./types";
7
+ export declare const transformElements: (originalElements: PointerDownState["originalElements"], transformHandleType: MaybeTransformHandleType, selectedElements: readonly NonDeletedExcalidrawElement[], scene: Scene, shouldRotateWithDiscreteAngle: boolean, shouldResizeFromCenter: boolean, shouldMaintainAspectRatio: boolean, pointerX: number, pointerY: number, centerX: number, centerY: number) => boolean;
8
8
  export declare const rescalePointsInElement: (element: NonDeletedExcalidrawElement, width: number, height: number, normalizePoints: boolean) => {
9
9
  points: LocalPoint[];
10
10
  } | {
@@ -15,7 +15,7 @@ export declare const measureFontSizeFromWidth: (element: NonDeleted<ExcalidrawTe
15
15
  } | null;
16
16
  export declare const getResizeOffsetXY: (transformHandleType: MaybeTransformHandleType, selectedElements: NonDeletedExcalidrawElement[], elementsMap: ElementsMap, x: number, y: number) => [number, number];
17
17
  export declare const getResizeArrowDirection: (transformHandleType: MaybeTransformHandleType, element: NonDeleted<ExcalidrawLinearElement>) => "origin" | "end";
18
- export declare const resizeSingleElement: (nextWidth: number, nextHeight: number, latestElement: ExcalidrawElement, origElement: ExcalidrawElement, elementsMap: ElementsMap, originalElementsMap: ElementsMap, handleDirection: TransformHandleDirection, { shouldInformMutation, shouldMaintainAspectRatio, shouldResizeFromCenter, }?: {
18
+ export declare const resizeSingleElement: (nextWidth: number, nextHeight: number, latestElement: ExcalidrawElement, origElement: ExcalidrawElement, originalElementsMap: ElementsMap, scene: Scene, handleDirection: TransformHandleDirection, { shouldInformMutation, shouldMaintainAspectRatio, shouldResizeFromCenter, }?: {
19
19
  shouldMaintainAspectRatio?: boolean | undefined;
20
20
  shouldResizeFromCenter?: boolean | undefined;
21
21
  shouldInformMutation?: boolean | undefined;
@@ -1,8 +1,8 @@
1
- import type { ExcalidrawElement, PointerType, NonDeletedExcalidrawElement, ElementsMap } from "./types";
2
- import type { MaybeTransformHandleType } from "./transformHandles";
3
- import type { AppState, Device, Zoom } from "../types";
4
- import type { Bounds } from "./bounds";
5
1
  import type { GlobalPoint, LocalPoint } from "@excalidraw/math";
2
+ import type { AppState, Device, Zoom } from "@excalidraw/excalidraw/types";
3
+ import type { Bounds } from "./bounds";
4
+ import type { MaybeTransformHandleType } from "./transformHandles";
5
+ import type { ExcalidrawElement, PointerType, NonDeletedExcalidrawElement, ElementsMap } from "./types";
6
6
  export declare const resizeTest: <Point extends GlobalPoint | LocalPoint>(element: NonDeletedExcalidrawElement, elementsMap: ElementsMap, appState: AppState, x: number, y: number, zoom: Zoom, pointerType: PointerType, device: Device) => MaybeTransformHandleType;
7
7
  export declare const getElementWithTransformHandleType: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState, scenePointerX: number, scenePointerY: number, zoom: Zoom, pointerType: PointerType, elementsMap: ElementsMap, device: Device) => {
8
8
  element: NonDeletedExcalidrawElement;
@@ -1,5 +1,6 @@
1
- import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, NonDeletedExcalidrawElement } from "../element/types";
2
- import type { AppState, InteractiveCanvasAppState } from "../types";
1
+ import type { AppState, InteractiveCanvasAppState } from "@excalidraw/excalidraw/types";
2
+ import { LinearElementEditor } from "./linearElementEditor";
3
+ import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, NonDeletedExcalidrawElement } from "./types";
3
4
  /**
4
5
  * Frames and their containing elements are not to be selected at the same time.
5
6
  * Given an array of selected elements, if there are frames and their containing elements
@@ -30,3 +31,13 @@ export declare const getTargetElements: (elements: ElementsMapOrArray, appState:
30
31
  export declare const makeNextSelectedElementIds: (nextSelectedElementIds: AppState["selectedElementIds"], prevState: Pick<AppState, "selectedElementIds">) => Readonly<{
31
32
  [id: string]: true;
32
33
  }>;
34
+ export declare const getSelectionStateForElements: (targetElements: readonly ExcalidrawElement[], allElements: readonly NonDeletedExcalidrawElement[], appState: AppState) => {
35
+ editingGroupId: string | null;
36
+ selectedElementIds: Readonly<{
37
+ [id: string]: true;
38
+ }>;
39
+ selectedGroupIds: {
40
+ [groupId: string]: boolean;
41
+ };
42
+ selectedLinearElement: LinearElementEditor | null;
43
+ };
@@ -0,0 +1,23 @@
1
+ import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
2
+ import { type GeometricShape } from "@excalidraw/utils/shape";
3
+ import type { Zoom } from "@excalidraw/excalidraw/types";
4
+ import { type Bounds } from "./bounds";
5
+ import type { ElementsMap, ExcalidrawElement, ExcalidrawLinearElement, NonDeleted } from "./types";
6
+ /**
7
+ * get the pure geometric shape of an excalidraw elementw
8
+ * which is then used for hit detection
9
+ */
10
+ export declare const getElementShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap) => GeometricShape<Point>;
11
+ export declare const getBoundTextShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap) => GeometricShape<Point> | null;
12
+ export declare const getControlPointsForBezierCurve: <P extends GlobalPoint | LocalPoint>(element: NonDeleted<ExcalidrawLinearElement>, endPoint: P) => P[] | null;
13
+ export declare const getBezierXY: <P extends GlobalPoint | LocalPoint>(p0: P, p1: P, p2: P, p3: P, t: number) => P;
14
+ export declare const getBezierCurveLength: <P extends GlobalPoint | LocalPoint>(element: NonDeleted<ExcalidrawLinearElement>, endPoint: P) => number;
15
+ export declare const mapIntervalToBezierT: <P extends GlobalPoint | LocalPoint>(element: NonDeleted<ExcalidrawLinearElement>, endPoint: P, interval: number) => number;
16
+ /**
17
+ * Get the axis-aligned bounding box for a given element
18
+ */
19
+ export declare const aabbForElement: (element: Readonly<ExcalidrawElement>, offset?: [number, number, number, number]) => Bounds;
20
+ export declare const pointInsideBounds: <P extends GlobalPoint | LocalPoint>(p: P, bounds: Bounds) => boolean;
21
+ export declare const aabbsOverlapping: (a: Bounds, b: Bounds) => boolean;
22
+ export declare const getCornerRadius: (x: number, element: ExcalidrawElement) => number;
23
+ export declare const isPathALoop: (points: ExcalidrawLinearElement["points"], zoomValue?: Zoom["value"]) => boolean;
@@ -1,3 +1,3 @@
1
+ import type { UIAppState } from "@excalidraw/excalidraw/types";
1
2
  import type { NonDeletedExcalidrawElement } from "./types";
2
- import type { UIAppState } from "../types";
3
3
  export declare const showSelectedShapeActions: (appState: UIAppState, elements: readonly NonDeletedExcalidrawElement[]) => boolean;
@@ -1,5 +1,5 @@
1
+ import type { AppState, Offsets, Zoom } from "@excalidraw/excalidraw/types";
1
2
  import type { ElementsMap, ExcalidrawElement } from "./types";
2
- import type { AppState, Offsets, Zoom } from "../types";
3
3
  export declare const isInvisiblySmallElement: (element: ExcalidrawElement) => boolean;
4
4
  export declare const isElementInViewport: (element: ExcalidrawElement, width: number, height: number, viewTransformations: {
5
5
  zoom: Zoom;
@@ -26,7 +26,6 @@ export declare const getLockedLinearCursorAlignSize: (originX: number, originY:
26
26
  width: number;
27
27
  height: number;
28
28
  };
29
- export declare const resizePerfectLineForNWHandler: (element: ExcalidrawElement, x: number, y: number) => void;
30
29
  export declare const getNormalizedDimensions: (element: Pick<ExcalidrawElement, "width" | "height" | "x" | "y">) => {
31
30
  width: ExcalidrawElement["width"];
32
31
  height: ExcalidrawElement["height"];
@@ -1,10 +1,11 @@
1
- import type { ElementsMap, ExcalidrawElement, ExcalidrawElementType, ExcalidrawTextContainer, ExcalidrawTextElement, ExcalidrawTextElementWithContainer, NonDeletedExcalidrawElement } from "./types";
1
+ import type { AppState } from "@excalidraw/excalidraw/types";
2
+ import type { ExtractSetType } from "@excalidraw/common/utility-types";
3
+ import type { Radians } from "@excalidraw/math";
4
+ import type Scene from "./Scene";
2
5
  import type { MaybeTransformHandleType } from "./transformHandles";
3
- import type { AppState } from "../types";
4
- import type { ExtractSetType } from "../utility-types";
5
- export declare const redrawTextBoundingBox: (textElement: ExcalidrawTextElement, container: ExcalidrawElement | null, elementsMap: ElementsMap, informMutation?: boolean) => void;
6
- export declare const bindTextToShapeAfterDuplication: (newElements: ExcalidrawElement[], oldElements: ExcalidrawElement[], oldIdToDuplicatedId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>) => void;
7
- export declare const handleBindTextResize: (container: NonDeletedExcalidrawElement, elementsMap: ElementsMap, transformHandleType: MaybeTransformHandleType, shouldMaintainAspectRatio?: boolean) => void;
6
+ import type { ElementsMap, ExcalidrawElement, ExcalidrawElementType, ExcalidrawTextContainer, ExcalidrawTextElement, ExcalidrawTextElementWithContainer, NonDeletedExcalidrawElement } from "./types";
7
+ export declare const redrawTextBoundingBox: (textElement: ExcalidrawTextElement, container: ExcalidrawElement | null, scene: Scene) => void;
8
+ export declare const handleBindTextResize: (container: NonDeletedExcalidrawElement, scene: Scene, transformHandleType: MaybeTransformHandleType, shouldMaintainAspectRatio?: boolean) => void;
8
9
  export declare const computeBoundTextPosition: (container: ExcalidrawElement, boundTextElement: ExcalidrawTextElementWithContainer, elementsMap: ElementsMap) => {
9
10
  x: number;
10
11
  y: number;
@@ -20,7 +21,7 @@ export declare const getContainerCoords: (container: NonDeletedExcalidrawElement
20
21
  x: number;
21
22
  y: number;
22
23
  };
23
- export declare const getTextElementAngle: (textElement: ExcalidrawTextElement, container: ExcalidrawTextContainer | null) => import("@excalidraw/math").Radians;
24
+ export declare const getTextElementAngle: (textElement: ExcalidrawTextElement, container: ExcalidrawTextContainer | null) => 0 | Radians;
24
25
  export declare const getBoundTextElementPosition: (container: ExcalidrawElement, boundTextElement: ExcalidrawTextElementWithContainer, elementsMap: ElementsMap) => {
25
26
  x: number;
26
27
  y: number;
@@ -1,7 +1,7 @@
1
- import type { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement, PointerType } from "./types";
2
- import type { Bounds } from "./bounds";
3
- import type { Device, InteractiveCanvasAppState, Zoom } from "../types";
4
1
  import type { Radians } from "@excalidraw/math";
2
+ import type { Device, InteractiveCanvasAppState, Zoom } from "@excalidraw/excalidraw/types";
3
+ import type { Bounds } from "./bounds";
4
+ import type { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement, PointerType } from "./types";
5
5
  export type TransformHandleDirection = "n" | "s" | "w" | "e" | "nw" | "ne" | "sw" | "se";
6
6
  export type TransformHandleType = TransformHandleDirection | "rotation";
7
7
  export type TransformHandle = Bounds;
@@ -32,9 +32,9 @@ export declare const canResizeFromSides: (device: Device) => boolean;
32
32
  export declare const getOmitSidesForDevice: (device: Device) => {};
33
33
  export declare const getTransformHandlesFromCoords: ([x1, y1, x2, y2, cx, cy]: [number, number, number, number, number, number], angle: Radians, zoom: Zoom, pointerType: PointerType, omitSides?: {
34
34
  s?: boolean | undefined;
35
- e?: boolean | undefined;
36
- w?: boolean | undefined;
37
35
  n?: boolean | undefined;
36
+ w?: boolean | undefined;
37
+ e?: boolean | undefined;
38
38
  nw?: boolean | undefined;
39
39
  ne?: boolean | undefined;
40
40
  sw?: boolean | undefined;
@@ -43,9 +43,9 @@ export declare const getTransformHandlesFromCoords: ([x1, y1, x2, y2, cx, cy]: [
43
43
  }, margin?: number, spacing?: number) => TransformHandles;
44
44
  export declare const getTransformHandles: (element: ExcalidrawElement, zoom: Zoom, elementsMap: ElementsMap, pointerType?: PointerType, omitSides?: {
45
45
  s?: boolean | undefined;
46
- e?: boolean | undefined;
47
- w?: boolean | undefined;
48
46
  n?: boolean | undefined;
47
+ w?: boolean | undefined;
48
+ e?: boolean | undefined;
49
49
  nw?: boolean | undefined;
50
50
  ne?: boolean | undefined;
51
51
  sw?: boolean | undefined;
@@ -1,5 +1,5 @@
1
- import type { ElementOrToolType } from "../types";
2
- import type { MarkNonNullable } from "../utility-types";
1
+ import type { ElementOrToolType } from "@excalidraw/excalidraw/types";
2
+ import type { MarkNonNullable } from "@excalidraw/common/utility-types";
3
3
  import type { Bounds } from "./bounds";
4
4
  import type { ExcalidrawElement, ExcalidrawTextElement, ExcalidrawEmbeddableElement, ExcalidrawLinearElement, ExcalidrawBindableElement, ExcalidrawFreeDrawElement, InitializedExcalidrawImageElement, ExcalidrawImageElement, ExcalidrawTextElementWithContainer, ExcalidrawTextContainer, ExcalidrawFrameElement, RoundnessType, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeElement, ExcalidrawIframeLikeElement, ExcalidrawMagicFrameElement, ExcalidrawArrowElement, ExcalidrawElbowArrowElement, PointBinding, FixedPointBinding, ExcalidrawFlowchartNodeElement } from "./types";
5
5
  export declare const isInitializedImageElement: (element: ExcalidrawElement | null) => element is InitializedExcalidrawImageElement;
@@ -1,6 +1,6 @@
1
1
  import type { LocalPoint, Radians } from "@excalidraw/math";
2
- import type { FONT_FAMILY, ROUNDNESS, TEXT_ALIGN, THEME, VERTICAL_ALIGN } from "../constants";
3
- import type { MakeBrand, MarkNonNullable, Merge, ValueOf } from "../utility-types";
2
+ import type { FONT_FAMILY, ROUNDNESS, TEXT_ALIGN, THEME, VERTICAL_ALIGN } from "@excalidraw/common";
3
+ import type { MakeBrand, MarkNonNullable, Merge, ValueOf } from "@excalidraw/common/utility-types";
4
4
  export type ChartType = "bar" | "line";
5
5
  export type FillStyle = "hachure" | "cross-hatch" | "solid" | "zigzag";
6
6
  export type FontFamilyKeys = keyof typeof FONT_FAMILY;
@@ -0,0 +1,7 @@
1
+ import type { AppState } from "@excalidraw/excalidraw/types";
2
+ import type Scene from "./Scene";
3
+ import type { ExcalidrawElement } from "./types";
4
+ export declare const moveOneLeft: (allElements: readonly ExcalidrawElement[], appState: AppState, scene: Scene) => readonly ExcalidrawElement[];
5
+ export declare const moveOneRight: (allElements: readonly ExcalidrawElement[], appState: AppState, scene: Scene) => readonly ExcalidrawElement[];
6
+ export declare const moveAllLeft: (allElements: readonly ExcalidrawElement[], appState: AppState) => ExcalidrawElement[] | readonly ExcalidrawElement[];
7
+ export declare const moveAllRight: (allElements: readonly ExcalidrawElement[], appState: AppState) => ExcalidrawElement[] | readonly ExcalidrawElement[];