@excalidraw/excalidraw 0.18.0-d92384b77-3 → 0.18.0-de715913e

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 (427) hide show
  1. package/CHANGELOG.md +40 -14
  2. package/README.md +1 -1
  3. package/dist/dev/chunk-CP5DND7P.js +7 -0
  4. package/dist/dev/chunk-CP5DND7P.js.map +7 -0
  5. package/dist/dev/chunk-CRKRRBMD.js +5677 -0
  6. package/dist/dev/chunk-CRKRRBMD.js.map +7 -0
  7. package/dist/dev/chunk-FB2NA5UG.js +4132 -0
  8. package/dist/dev/chunk-FB2NA5UG.js.map +7 -0
  9. package/dist/dev/{chunk-LMHBUWQS.js → chunk-QF5FRM6O.js} +16 -5
  10. package/dist/dev/chunk-QF5FRM6O.js.map +7 -0
  11. package/dist/dev/data/{image-N7WNQEIL.js → image-IWGLHPIX.js} +3 -3
  12. package/dist/dev/index.css +3020 -2947
  13. package/dist/dev/index.css.map +3 -3
  14. package/dist/dev/index.js +30775 -24190
  15. package/dist/dev/index.js.map +4 -4
  16. package/dist/dev/locales/{en-OZCJJ2HN.js → en-SMAPCEOQ.js} +2 -2
  17. package/dist/dev/subset-shared.chunk.js +2 -2
  18. package/dist/dev/subset-worker.chunk.js +2 -2
  19. package/dist/prod/chunk-A66AFZZU.js +7 -0
  20. package/dist/prod/chunk-HHV2PJKY.js +4 -0
  21. package/dist/prod/chunk-I4UNSFV6.js +12 -0
  22. package/dist/prod/chunk-LS7FJGPW.js +86 -0
  23. package/dist/prod/data/image-4SM4COIL.js +1 -0
  24. package/dist/prod/index.css +1 -1
  25. package/dist/prod/index.js +27 -16
  26. package/dist/prod/locales/{en-B4ZKOASM.js → en-TYY6KWIJ.js} +1 -1
  27. package/dist/prod/subset-shared.chunk.js +1 -1
  28. package/dist/prod/subset-worker.chunk.js +1 -1
  29. package/dist/types/{excalidraw/binaryheap.d.ts → common/src/binary-heap.d.ts} +12 -12
  30. package/dist/types/{excalidraw → common/src}/colors.d.ts +62 -61
  31. package/dist/types/{excalidraw → common/src}/constants.d.ts +344 -323
  32. package/dist/types/{excalidraw → common/src}/emitter.d.ts +16 -16
  33. package/dist/types/{excalidraw/fonts/FontMetadata.d.ts → common/src/font-metadata.d.ts} +48 -38
  34. package/dist/types/common/src/index.d.ts +12 -0
  35. package/dist/types/{excalidraw → common/src}/keys.d.ts +189 -189
  36. package/dist/types/{excalidraw → common/src}/points.d.ts +9 -7
  37. package/dist/types/common/src/promise-pool.d.ts +6 -0
  38. package/dist/types/{excalidraw → common/src}/queue.d.ts +9 -9
  39. package/dist/types/{excalidraw → common/src}/random.d.ts +3 -3
  40. package/dist/types/{excalidraw/data → common/src}/url.d.ts +7 -7
  41. package/dist/types/{excalidraw → common/src}/utility-types.d.ts +38 -33
  42. package/dist/types/{excalidraw → common/src}/utils.d.ts +267 -256
  43. package/dist/types/{excalidraw/scene → element/src}/Scene.d.ts +80 -79
  44. package/dist/types/element/src/align.d.ts +8 -0
  45. package/dist/types/{excalidraw/element → element/src}/binding.d.ts +110 -99
  46. package/dist/types/{excalidraw/element → element/src}/bounds.d.ts +89 -77
  47. package/dist/types/element/src/collision.d.ts +32 -0
  48. package/dist/types/{excalidraw/scene → element/src}/comparisons.d.ts +8 -8
  49. package/dist/types/{excalidraw/element → element/src}/containerCache.d.ts +11 -11
  50. package/dist/types/{excalidraw/element → element/src}/cropElement.d.ts +19 -19
  51. package/dist/types/{excalidraw/change.d.ts → element/src/delta.d.ts} +228 -191
  52. package/dist/types/element/src/distance.d.ts +3 -0
  53. package/dist/types/{excalidraw → element/src}/distribute.d.ts +7 -6
  54. package/dist/types/{excalidraw/element → element/src}/dragElements.d.ts +33 -32
  55. package/dist/types/element/src/duplicate.d.ts +63 -0
  56. package/dist/types/{excalidraw/element → element/src}/elbowArrow.d.ts +17 -16
  57. package/dist/types/{excalidraw/element → element/src}/elementLink.d.ts +13 -13
  58. package/dist/types/element/src/embeddable.d.ts +10 -0
  59. package/dist/types/{excalidraw/element → element/src}/flowchart.d.ts +26 -25
  60. package/dist/types/{excalidraw → element/src}/fractionalIndex.d.ts +57 -48
  61. package/dist/types/{excalidraw → element/src}/frame.d.ts +70 -69
  62. package/dist/types/{excalidraw → element/src}/groups.d.ts +34 -33
  63. package/dist/types/{excalidraw/element → element/src}/heading.d.ts +15 -16
  64. package/dist/types/{excalidraw/element → element/src}/image.d.ts +32 -32
  65. package/dist/types/element/src/index.d.ts +57 -0
  66. package/dist/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +117 -130
  67. package/dist/types/element/src/mutateElement.d.ts +21 -0
  68. package/dist/types/{excalidraw/element → element/src}/newElement.d.ts +62 -101
  69. package/dist/types/{excalidraw/renderer → element/src}/renderElement.d.ts +28 -28
  70. package/dist/types/{excalidraw/element → element/src}/resizeElements.d.ts +32 -31
  71. package/dist/types/{excalidraw/element → element/src}/resizeTest.d.ts +15 -15
  72. package/dist/types/{excalidraw/scene → element/src}/selection.d.ts +38 -32
  73. package/dist/types/element/src/shape.d.ts +42 -0
  74. package/dist/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +3 -3
  75. package/dist/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +35 -35
  76. package/dist/types/{excalidraw/element → element/src}/sortElements.d.ts +2 -2
  77. package/dist/types/element/src/store.d.ts +236 -0
  78. package/dist/types/{excalidraw/element → element/src}/textElement.d.ts +40 -39
  79. package/dist/types/{excalidraw/element → element/src}/textMeasurements.d.ts +41 -41
  80. package/dist/types/{excalidraw/element → element/src}/textWrapping.d.ts +13 -13
  81. package/dist/types/{excalidraw/element → element/src}/transformHandles.d.ts +55 -55
  82. package/dist/types/{excalidraw/element → element/src}/typeChecks.d.ts +57 -39
  83. package/dist/types/{excalidraw/element → element/src}/types.d.ts +295 -282
  84. package/dist/types/element/src/utils.d.ts +31 -0
  85. package/dist/types/{excalidraw → element/src}/zindex.d.ts +7 -6
  86. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +525 -534
  87. package/dist/types/excalidraw/actions/actionAlign.d.ts +110 -110
  88. package/dist/types/excalidraw/actions/actionBoundText.d.ts +387 -393
  89. package/dist/types/excalidraw/actions/actionCanvas.d.ts +2403 -2266
  90. package/dist/types/excalidraw/actions/actionClipboard.d.ts +1167 -1183
  91. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +188 -191
  92. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +565 -573
  93. package/dist/types/excalidraw/actions/actionDistribute.d.ts +35 -35
  94. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +18 -22
  95. package/dist/types/excalidraw/actions/actionElementLink.d.ts +210 -213
  96. package/dist/types/excalidraw/actions/actionElementLock.d.ts +373 -381
  97. package/dist/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +185 -198
  98. package/dist/types/excalidraw/actions/actionExport.d.ts +1639 -1666
  99. package/dist/types/excalidraw/actions/actionFinalize.d.ts +397 -362
  100. package/dist/types/excalidraw/actions/actionFlip.d.ts +35 -35
  101. package/dist/types/excalidraw/actions/actionFrame.d.ts +1241 -1253
  102. package/dist/types/excalidraw/actions/actionGroup.d.ts +385 -391
  103. package/dist/types/excalidraw/actions/actionHistory.d.ts +6 -7
  104. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +713 -192
  105. package/dist/types/excalidraw/actions/actionLink.d.ts +189 -192
  106. package/dist/types/excalidraw/actions/actionMenu.d.ts +545 -554
  107. package/dist/types/excalidraw/actions/actionNavigate.d.ts +361 -367
  108. package/dist/types/excalidraw/actions/actionProperties.d.ts +2759 -2796
  109. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +188 -191
  110. package/dist/types/excalidraw/actions/actionStyles.d.ts +202 -205
  111. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +17 -17
  112. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +191 -194
  113. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +189 -192
  114. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +182 -357
  115. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +19 -0
  116. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +188 -192
  117. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +189 -193
  118. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +189 -193
  119. package/dist/types/excalidraw/actions/actionZindex.d.ts +75 -75
  120. package/dist/types/excalidraw/actions/index.d.ts +28 -27
  121. package/dist/types/excalidraw/actions/manager.d.ts +21 -21
  122. package/dist/types/excalidraw/actions/register.d.ts +5 -5
  123. package/dist/types/excalidraw/actions/shortcuts.d.ts +4 -4
  124. package/dist/types/excalidraw/actions/types.d.ts +47 -46
  125. package/dist/types/excalidraw/analytics.d.ts +1 -1
  126. package/dist/types/excalidraw/animated-trail.d.ts +39 -33
  127. package/dist/types/excalidraw/animation-frame-handler.d.ts +16 -16
  128. package/dist/types/excalidraw/appState.d.ts +96 -86
  129. package/dist/types/excalidraw/charts.d.ts +27 -27
  130. package/dist/types/excalidraw/clients.d.ts +14 -14
  131. package/dist/types/excalidraw/clipboard.d.ts +66 -66
  132. package/dist/types/excalidraw/components/Actions.d.ts +30 -34
  133. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +4 -4
  134. package/dist/types/excalidraw/components/App.d.ts +561 -544
  135. package/dist/types/excalidraw/components/Avatar.d.ts +11 -11
  136. package/dist/types/excalidraw/components/BraveMeasureTextError.d.ts +2 -2
  137. package/dist/types/excalidraw/components/Button.d.ts +17 -17
  138. package/dist/types/excalidraw/components/ButtonIcon.d.ts +16 -15
  139. package/dist/types/excalidraw/components/ButtonIconCycle.d.ts +11 -11
  140. package/dist/types/excalidraw/components/ButtonSeparator.d.ts +1 -1
  141. package/dist/types/excalidraw/components/Card.d.ts +7 -7
  142. package/dist/types/excalidraw/components/CheckboxItem.d.ts +8 -8
  143. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +10 -9
  144. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +23 -19
  145. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +8 -8
  146. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +7 -8
  147. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +17 -18
  148. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -10
  149. package/dist/types/excalidraw/components/ColorPicker/PickerHeading.d.ts +5 -5
  150. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +8 -8
  151. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +9 -9
  152. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +21 -21
  153. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +21 -21
  154. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +18 -18
  155. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +2 -2
  156. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +26 -26
  157. package/dist/types/excalidraw/components/ConfirmDialog.d.ts +10 -10
  158. package/dist/types/excalidraw/components/ContextMenu.d.ts +16 -16
  159. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +23 -0
  160. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +7 -7
  161. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +31 -31
  162. package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +4 -4
  163. package/dist/types/excalidraw/components/Dialog.d.ts +13 -13
  164. package/dist/types/excalidraw/components/DialogActionButton.d.ts +10 -10
  165. package/dist/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +7 -7
  166. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +12 -11
  167. package/dist/types/excalidraw/components/Ellipsify.d.ts +4 -0
  168. package/dist/types/excalidraw/components/ErrorDialog.d.ts +5 -5
  169. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +16 -16
  170. package/dist/types/excalidraw/components/EyeDropper.d.ts +28 -28
  171. package/dist/types/excalidraw/components/FilledButton.d.ts +18 -18
  172. package/dist/types/excalidraw/components/FixedSideContainer.d.ts +9 -9
  173. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +10 -10
  174. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +21 -21
  175. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +26 -26
  176. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +6 -6
  177. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +14 -14
  178. package/dist/types/excalidraw/components/HandButton.d.ts +10 -10
  179. package/dist/types/excalidraw/components/HelpButton.d.ts +7 -7
  180. package/dist/types/excalidraw/components/HelpDialog.d.ts +4 -4
  181. package/dist/types/excalidraw/components/HintViewer.d.ts +10 -10
  182. package/dist/types/excalidraw/components/IconPicker.d.ts +15 -15
  183. package/dist/types/excalidraw/components/ImageExportDialog.d.ts +14 -14
  184. package/dist/types/excalidraw/components/InitializeApp.d.ts +10 -10
  185. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -3
  186. package/dist/types/excalidraw/components/Island.d.ts +10 -10
  187. package/dist/types/excalidraw/components/JSONExportDialog.d.ts +15 -15
  188. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +10 -10
  189. package/dist/types/excalidraw/components/LayerUI.d.ts +31 -31
  190. package/dist/types/excalidraw/components/LibraryMenu.d.ts +10 -10
  191. package/dist/types/excalidraw/components/LibraryMenuBrowseButton.d.ts +7 -7
  192. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +9 -9
  193. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +18 -18
  194. package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +14 -14
  195. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +23 -23
  196. package/dist/types/excalidraw/components/LibraryUnit.d.ts +15 -15
  197. package/dist/types/excalidraw/components/LoadingMessage.d.ts +6 -6
  198. package/dist/types/excalidraw/components/LockButton.d.ts +10 -10
  199. package/dist/types/excalidraw/components/MagicButton.d.ts +10 -10
  200. package/dist/types/excalidraw/components/MobileMenu.d.ts +25 -25
  201. package/dist/types/excalidraw/components/Modal.d.ts +12 -12
  202. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -17
  203. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -17
  204. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -22
  205. package/dist/types/excalidraw/components/Paragraph.d.ts +4 -4
  206. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +8 -8
  207. package/dist/types/excalidraw/components/PenModeButton.d.ts +12 -12
  208. package/dist/types/excalidraw/components/Popover.d.ts +15 -15
  209. package/dist/types/excalidraw/components/ProjectName.d.ts +10 -10
  210. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +15 -15
  211. package/dist/types/excalidraw/components/PublishLibrary.d.ts +16 -16
  212. package/dist/types/excalidraw/components/QuickSearch.d.ts +9 -9
  213. package/dist/types/excalidraw/components/RadioGroup.d.ts +14 -14
  214. package/dist/types/excalidraw/components/{ButtonIconSelect.d.ts → RadioSelection.d.ts} +20 -20
  215. package/dist/types/excalidraw/components/Range.d.ts +8 -8
  216. package/dist/types/excalidraw/components/SVGLayer.d.ts +7 -7
  217. package/dist/types/excalidraw/components/ScrollableList.d.ts +9 -9
  218. package/dist/types/excalidraw/components/SearchMenu.d.ts +5 -5
  219. package/dist/types/excalidraw/components/Section.d.ts +6 -6
  220. package/dist/types/excalidraw/components/ShareableLinkDialog.d.ts +7 -7
  221. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +76 -76
  222. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +7 -7
  223. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +9 -9
  224. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +10 -10
  225. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +7 -7
  226. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +7 -7
  227. package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +6 -6
  228. package/dist/types/excalidraw/components/Sidebar/common.d.ts +34 -34
  229. package/dist/types/excalidraw/components/Spinner.d.ts +8 -8
  230. package/dist/types/excalidraw/components/Stack.d.ts +15 -15
  231. package/dist/types/excalidraw/components/Stats/Angle.d.ts +11 -11
  232. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +11 -11
  233. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +11 -10
  234. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +11 -11
  235. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +45 -35
  236. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +11 -11
  237. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +11 -11
  238. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +14 -14
  239. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +12 -12
  240. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +14 -14
  241. package/dist/types/excalidraw/components/Stats/Position.d.ts +12 -12
  242. package/dist/types/excalidraw/components/Stats/index.d.ts +36 -36
  243. package/dist/types/excalidraw/components/Stats/utils.d.ts +19 -26
  244. package/dist/types/excalidraw/components/Switch.d.ts +9 -9
  245. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +6 -6
  246. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +30 -30
  247. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +9 -9
  248. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +8 -8
  249. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +17 -17
  250. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +4 -4
  251. package/dist/types/excalidraw/components/TTDDialog/TTDDialogSubmitShortcut.d.ts +1 -1
  252. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +8 -8
  253. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +9 -9
  254. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +7 -7
  255. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +11 -11
  256. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +9 -9
  257. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +33 -33
  258. package/dist/types/excalidraw/components/TextField.d.ts +21 -21
  259. package/dist/types/excalidraw/components/Toast.d.ts +9 -9
  260. package/dist/types/excalidraw/components/ToolButton.d.ts +49 -49
  261. package/dist/types/excalidraw/components/Tooltip.d.ts +18 -18
  262. package/dist/types/excalidraw/components/Trans.d.ts +9 -9
  263. package/dist/types/excalidraw/components/UnlockPopup.d.ts +8 -0
  264. package/dist/types/excalidraw/components/UserList.d.ts +18 -18
  265. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +30 -29
  266. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +14 -14
  267. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +19 -19
  268. package/dist/types/excalidraw/components/canvases/index.d.ts +3 -3
  269. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +86 -86
  270. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +15 -15
  271. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -11
  272. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +46 -46
  273. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +8 -8
  274. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +18 -18
  275. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -7
  276. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +16 -16
  277. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -5
  278. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +11 -11
  279. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +6 -6
  280. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -3
  281. package/dist/types/excalidraw/components/footer/Footer.d.ts +12 -12
  282. package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +8 -8
  283. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +4 -4
  284. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +19 -18
  285. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +10 -9
  286. package/dist/types/excalidraw/components/icons.d.ts +225 -221
  287. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +10 -10
  288. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +64 -64
  289. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +83 -80
  290. package/dist/types/excalidraw/components/shapes.d.ts +62 -0
  291. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +58 -58
  292. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -19
  293. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +85 -85
  294. package/dist/types/excalidraw/context/tunnels.d.ts +21 -21
  295. package/dist/types/excalidraw/context/ui-appState.d.ts +4 -4
  296. package/dist/types/excalidraw/cursor.d.ts +5 -5
  297. package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +8 -8
  298. package/dist/types/excalidraw/data/ai/types.d.ts +242 -242
  299. package/dist/types/excalidraw/data/blob.d.ts +53 -53
  300. package/dist/types/excalidraw/data/encode.d.ts +55 -55
  301. package/dist/types/excalidraw/data/encryption.d.ts +9 -9
  302. package/dist/types/excalidraw/data/filesystem.d.ts +21 -21
  303. package/dist/types/excalidraw/data/image.d.ts +9 -9
  304. package/dist/types/excalidraw/data/index.d.ts +22 -22
  305. package/dist/types/excalidraw/data/json.d.ts +16 -16
  306. package/dist/types/excalidraw/data/library.d.ts +112 -112
  307. package/dist/types/excalidraw/data/reconcile.d.ts +7 -6
  308. package/dist/types/excalidraw/data/resave.d.ts +5 -5
  309. package/dist/types/excalidraw/data/restore.d.ts +26 -21
  310. package/dist/types/excalidraw/data/transform.d.ts +81 -81
  311. package/dist/types/excalidraw/data/types.d.ts +45 -45
  312. package/dist/types/excalidraw/deburr.d.ts +1 -1
  313. package/dist/types/excalidraw/editor-jotai.d.ts +56 -56
  314. package/dist/types/excalidraw/eraser/index.d.ts +12 -0
  315. package/dist/types/excalidraw/errors.d.ts +29 -32
  316. package/dist/types/excalidraw/fonts/Cascadia/index.d.ts +2 -2
  317. package/dist/types/excalidraw/fonts/ComicShanns/index.d.ts +2 -2
  318. package/dist/types/excalidraw/fonts/Emoji/index.d.ts +2 -2
  319. package/dist/types/excalidraw/fonts/ExcalidrawFontFace.d.ts +25 -25
  320. package/dist/types/excalidraw/fonts/Excalifont/index.d.ts +2 -2
  321. package/dist/types/excalidraw/fonts/Fonts.d.ts +79 -89
  322. package/dist/types/excalidraw/fonts/Helvetica/index.d.ts +2 -2
  323. package/dist/types/excalidraw/fonts/Liberation/index.d.ts +2 -2
  324. package/dist/types/excalidraw/fonts/Lilita/index.d.ts +2 -2
  325. package/dist/types/excalidraw/fonts/Nunito/index.d.ts +2 -2
  326. package/dist/types/excalidraw/fonts/Virgil/index.d.ts +2 -2
  327. package/dist/types/excalidraw/fonts/Xiaolai/index.d.ts +8 -8
  328. package/dist/types/excalidraw/fonts/index.d.ts +1 -1
  329. package/dist/types/excalidraw/gesture.d.ts +6 -6
  330. package/dist/types/excalidraw/history.d.ts +48 -40
  331. package/dist/types/excalidraw/hooks/useCallbackRefState.d.ts +1 -1
  332. package/dist/types/excalidraw/hooks/useCopiedIndicator.d.ts +5 -5
  333. package/dist/types/excalidraw/hooks/useCreatePortalContainer.d.ts +4 -4
  334. package/dist/types/excalidraw/hooks/useEmitter.d.ts +2 -2
  335. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +11 -11
  336. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +20 -20
  337. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +2 -2
  338. package/dist/types/excalidraw/hooks/useStable.d.ts +1 -1
  339. package/dist/types/excalidraw/hooks/useStableCallback.d.ts +4 -4
  340. package/dist/types/excalidraw/hooks/useTransition.d.ts +2 -2
  341. package/dist/types/excalidraw/i18n.d.ts +24 -24
  342. package/dist/types/excalidraw/index-node.d.ts +1 -1
  343. package/dist/types/excalidraw/index.d.ts +47 -45
  344. package/dist/types/excalidraw/laser-trails.d.ts +20 -20
  345. package/dist/types/excalidraw/lasso/index.d.ts +16 -0
  346. package/dist/types/excalidraw/lasso/utils.d.ts +13 -0
  347. package/dist/types/excalidraw/mermaid.d.ts +2 -2
  348. package/dist/types/excalidraw/polyfill.d.ts +2 -2
  349. package/dist/types/excalidraw/reactUtils.d.ts +14 -14
  350. package/dist/types/excalidraw/renderer/helpers.d.ts +18 -13
  351. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +20 -20
  352. package/dist/types/excalidraw/renderer/renderNewElementScene.d.ts +7 -7
  353. package/dist/types/excalidraw/renderer/renderSnaps.d.ts +2 -2
  354. package/dist/types/excalidraw/renderer/roundRect.d.ts +11 -11
  355. package/dist/types/excalidraw/renderer/staticScene.d.ts +14 -11
  356. package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +5 -5
  357. package/dist/types/excalidraw/scene/Renderer.d.ts +27 -28
  358. package/dist/types/excalidraw/scene/export.d.ts +36 -36
  359. package/dist/types/excalidraw/scene/index.d.ts +4 -4
  360. package/dist/types/excalidraw/scene/normalize.d.ts +4 -4
  361. package/dist/types/excalidraw/scene/scroll.d.ts +23 -23
  362. package/dist/types/excalidraw/scene/scrollbars.d.ts +11 -12
  363. package/dist/types/excalidraw/scene/types.d.ts +120 -118
  364. package/dist/types/excalidraw/scene/zoom.d.ts +12 -12
  365. package/dist/types/excalidraw/snapping.d.ts +111 -112
  366. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +45 -45
  367. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +13 -13
  368. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +2 -2
  369. package/dist/types/excalidraw/subset/subset-main.d.ts +12 -12
  370. package/dist/types/excalidraw/subset/subset-shared.chunk.d.ts +32 -32
  371. package/dist/types/excalidraw/subset/subset-worker.chunk.d.ts +15 -15
  372. package/dist/types/excalidraw/subset/woff2/woff2-bindings.d.ts +31 -31
  373. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +14 -14
  374. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +2 -2
  375. package/dist/types/excalidraw/types.d.ts +707 -687
  376. package/dist/types/excalidraw/workers.d.ts +36 -36
  377. package/dist/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +24 -22
  378. package/dist/types/math/{angle.d.ts → src/angle.d.ts} +19 -17
  379. package/dist/types/math/src/constants.d.ts +3 -0
  380. package/dist/types/math/src/curve.d.ts +74 -0
  381. package/dist/types/math/{ellipse.d.ts → src/ellipse.d.ts} +44 -44
  382. package/dist/types/math/{index.d.ts → src/index.d.ts} +13 -12
  383. package/dist/types/math/{line.d.ts → src/line.d.ts} +17 -17
  384. package/dist/types/math/{point.d.ts → src/point.d.ts} +122 -122
  385. package/dist/types/math/{polygon.d.ts → src/polygon.d.ts} +6 -5
  386. package/dist/types/math/{range.d.ts → src/range.d.ts} +44 -44
  387. package/dist/types/math/{rectangle.d.ts → src/rectangle.d.ts} +5 -3
  388. package/dist/types/math/{segment.d.ts → src/segment.d.ts} +39 -39
  389. package/dist/types/math/{triangle.d.ts → src/triangle.d.ts} +11 -11
  390. package/dist/types/math/{types.d.ts → src/types.d.ts} +106 -105
  391. package/dist/types/math/{utils.d.ts → src/utils.d.ts} +7 -7
  392. package/dist/types/math/{vector.d.ts → src/vector.d.ts} +94 -88
  393. package/dist/types/utils/{bbox.d.ts → src/bbox.d.ts} +9 -9
  394. package/dist/types/utils/{export.d.ts → src/export.d.ts} +35 -35
  395. package/dist/types/utils/{index.d.ts → src/index.d.ts} +4 -4
  396. package/dist/types/utils/{geometry → src}/shape.d.ts +58 -71
  397. package/dist/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +19 -19
  398. package/history.ts +148 -109
  399. package/package.json +25 -10
  400. package/dist/dev/chunk-D5FBOTU3.js +0 -25634
  401. package/dist/dev/chunk-D5FBOTU3.js.map +0 -7
  402. package/dist/dev/chunk-LMHBUWQS.js.map +0 -7
  403. package/dist/dev/chunk-OKSO7T74.js +0 -4132
  404. package/dist/dev/chunk-OKSO7T74.js.map +0 -7
  405. package/dist/dev/chunk-VEGCHY7H.js +0 -7
  406. package/dist/dev/chunk-VEGCHY7H.js.map +0 -7
  407. package/dist/prod/chunk-3KJONZZM.js +0 -34
  408. package/dist/prod/chunk-6U3AYISY.js +0 -12
  409. package/dist/prod/chunk-EGSCQU2B.js +0 -7
  410. package/dist/prod/chunk-EIO257PC.js +0 -86
  411. package/dist/prod/data/image-SGA24VQ5.js +0 -1
  412. package/dist/types/excalidraw/align.d.ts +0 -7
  413. package/dist/types/excalidraw/components/ButtonSelect.d.ts +0 -9
  414. package/dist/types/excalidraw/element/collision.d.ts +0 -26
  415. package/dist/types/excalidraw/element/distance.d.ts +0 -3
  416. package/dist/types/excalidraw/element/index.d.ts +0 -26
  417. package/dist/types/excalidraw/element/mutateElement.d.ts +0 -13
  418. package/dist/types/excalidraw/element/utils.d.ts +0 -21
  419. package/dist/types/excalidraw/scene/Shape.d.ts +0 -17
  420. package/dist/types/excalidraw/scene/ShapeCache.d.ts +0 -25
  421. package/dist/types/excalidraw/shapes.d.ts +0 -85
  422. package/dist/types/excalidraw/store.d.ts +0 -129
  423. package/dist/types/excalidraw/visualdebug.d.ts +0 -41
  424. package/dist/types/math/curve.d.ts +0 -40
  425. package/dist/types/utils/collision.d.ts +0 -9
  426. /package/dist/dev/data/{image-N7WNQEIL.js.map → image-IWGLHPIX.js.map} +0 -0
  427. /package/dist/dev/locales/{en-OZCJJ2HN.js.map → en-SMAPCEOQ.js.map} +0 -0
@@ -1,79 +1,80 @@
1
- import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameLikeElement, ElementsMapOrArray, OrderedExcalidrawElement, Ordered } from "../element/types";
2
- import type { LinearElementEditor } from "../element/linearElementEditor";
3
- import type { AppState } from "../types";
4
- type ElementIdKey = InstanceType<typeof LinearElementEditor>["elementId"];
5
- type ElementKey = ExcalidrawElement | ElementIdKey;
6
- type SceneStateCallback = () => void;
7
- type SceneStateCallbackRemover = () => void;
8
- export type ExcalidrawElementsIncludingDeleted = readonly ExcalidrawElement[];
9
- declare class Scene {
10
- private static sceneMapByElement;
11
- private static sceneMapById;
12
- static mapElementToScene(elementKey: ElementKey, scene: Scene): void;
13
- /**
14
- * @deprecated pass down `app.scene` and use it directly
15
- */
16
- static getScene(elementKey: ElementKey): Scene | null;
17
- private callbacks;
18
- private nonDeletedElements;
19
- private nonDeletedElementsMap;
20
- private elements;
21
- private nonDeletedFramesLikes;
22
- private frames;
23
- private elementsMap;
24
- private selectedElementsCache;
25
- /**
26
- * Random integer regenerated each scene update.
27
- *
28
- * Does not relate to elements versions, it's only a renderer
29
- * cache-invalidation nonce at the moment.
30
- */
31
- private sceneNonce;
32
- getSceneNonce(): number | undefined;
33
- getNonDeletedElementsMap(): Map<string, Ordered<NonDeletedExcalidrawElement>> & import("../utility-types").MakeBrand<"NonDeletedSceneElementsMap">;
34
- getElementsIncludingDeleted(): readonly OrderedExcalidrawElement[];
35
- getElementsMapIncludingDeleted(): Map<string, Ordered<ExcalidrawElement>> & import("../utility-types").MakeBrand<"SceneElementsMap">;
36
- getNonDeletedElements(): readonly Ordered<NonDeletedExcalidrawElement>[];
37
- getFramesIncludingDeleted(): readonly ExcalidrawFrameLikeElement[];
38
- getSelectedElements(opts: {
39
- selectedElementIds: AppState["selectedElementIds"];
40
- /**
41
- * for specific cases where you need to use elements not from current
42
- * scene state. This in effect will likely result in cache-miss, and
43
- * the cache won't be updated in this case.
44
- */
45
- elements?: ElementsMapOrArray;
46
- includeBoundTextElement?: boolean;
47
- includeElementsInFrames?: boolean;
48
- }): NonDeleted<ExcalidrawElement>[];
49
- getNonDeletedFramesLikes(): readonly NonDeleted<ExcalidrawFrameLikeElement>[];
50
- getElement<T extends ExcalidrawElement>(id: T["id"]): T | null;
51
- getNonDeletedElement(id: ExcalidrawElement["id"]): NonDeleted<ExcalidrawElement> | null;
52
- /**
53
- * A utility method to help with updating all scene elements, with the added
54
- * performance optimization of not renewing the array if no change is made.
55
- *
56
- * Maps all current excalidraw elements, invoking the callback for each
57
- * element. The callback should either return a new mapped element, or the
58
- * original element if no changes are made. If no changes are made to any
59
- * element, this results in a no-op. Otherwise, the newly mapped elements
60
- * are set as the next scene's elements.
61
- *
62
- * @returns whether a change was made
63
- */
64
- mapElements(iteratee: (element: ExcalidrawElement) => ExcalidrawElement): boolean;
65
- replaceAllElements(nextElements: ElementsMapOrArray): void;
66
- triggerUpdate(): void;
67
- onUpdate(cb: SceneStateCallback): SceneStateCallbackRemover;
68
- destroy(): void;
69
- insertElementAtIndex(element: ExcalidrawElement, index: number): void;
70
- insertElementsAtIndex(elements: ExcalidrawElement[], index: number): void;
71
- insertElement: (element: ExcalidrawElement) => void;
72
- insertElements: (elements: ExcalidrawElement[]) => void;
73
- getElementIndex(elementId: string): number;
74
- getContainerElement: (element: (ExcalidrawElement & {
75
- containerId: ExcalidrawElement["id"] | null;
76
- }) | null) => 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 | null;
77
- getElementsFromId: (id: string) => ExcalidrawElement[];
78
- }
79
- export default Scene;
1
+ import { type ElementUpdate } from "@excalidraw/element";
2
+ import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameLikeElement, ElementsMapOrArray, OrderedExcalidrawElement, Ordered } from "@excalidraw/element/types";
3
+ import type { Mutable } from "@excalidraw/common/utility-types";
4
+ import type { AppState } from "../../excalidraw/types";
5
+ type SceneStateCallback = () => void;
6
+ type SceneStateCallbackRemover = () => void;
7
+ export type ExcalidrawElementsIncludingDeleted = readonly ExcalidrawElement[];
8
+ export declare class Scene {
9
+ private callbacks;
10
+ private nonDeletedElements;
11
+ private nonDeletedElementsMap;
12
+ private elements;
13
+ private nonDeletedFramesLikes;
14
+ private frames;
15
+ private elementsMap;
16
+ private selectedElementsCache;
17
+ /**
18
+ * Random integer regenerated each scene update.
19
+ *
20
+ * Does not relate to elements versions, it's only a renderer
21
+ * cache-invalidation nonce at the moment.
22
+ */
23
+ private sceneNonce;
24
+ getSceneNonce(): number | undefined;
25
+ getNonDeletedElementsMap(): Map<string, Ordered<NonDeletedExcalidrawElement>> & import("@excalidraw/common/utility-types").MakeBrand<"NonDeletedSceneElementsMap">;
26
+ getElementsIncludingDeleted(): readonly OrderedExcalidrawElement[];
27
+ getElementsMapIncludingDeleted(): Map<string, Ordered<ExcalidrawElement>> & import("@excalidraw/common/utility-types").MakeBrand<"SceneElementsMap">;
28
+ getNonDeletedElements(): readonly Ordered<NonDeletedExcalidrawElement>[];
29
+ getFramesIncludingDeleted(): readonly ExcalidrawFrameLikeElement[];
30
+ constructor(elements?: ElementsMapOrArray | null, options?: {
31
+ skipValidation?: true;
32
+ });
33
+ getSelectedElements(opts: {
34
+ selectedElementIds: AppState["selectedElementIds"];
35
+ /**
36
+ * for specific cases where you need to use elements not from current
37
+ * scene state. This in effect will likely result in cache-miss, and
38
+ * the cache won't be updated in this case.
39
+ */
40
+ elements?: ElementsMapOrArray;
41
+ includeBoundTextElement?: boolean;
42
+ includeElementsInFrames?: boolean;
43
+ }): NonDeleted<ExcalidrawElement>[];
44
+ getNonDeletedFramesLikes(): readonly NonDeleted<ExcalidrawFrameLikeElement>[];
45
+ getElement<T extends ExcalidrawElement>(id: T["id"]): T | null;
46
+ getNonDeletedElement(id: ExcalidrawElement["id"]): NonDeleted<ExcalidrawElement> | null;
47
+ /**
48
+ * A utility method to help with updating all scene elements, with the added
49
+ * performance optimization of not renewing the array if no change is made.
50
+ *
51
+ * Maps all current excalidraw elements, invoking the callback for each
52
+ * element. The callback should either return a new mapped element, or the
53
+ * original element if no changes are made. If no changes are made to any
54
+ * element, this results in a no-op. Otherwise, the newly mapped elements
55
+ * are set as the next scene's elements.
56
+ *
57
+ * @returns whether a change was made
58
+ */
59
+ mapElements(iteratee: (element: ExcalidrawElement) => ExcalidrawElement): boolean;
60
+ replaceAllElements(nextElements: ElementsMapOrArray, options?: {
61
+ skipValidation?: true;
62
+ }): void;
63
+ triggerUpdate(): void;
64
+ onUpdate(cb: SceneStateCallback): SceneStateCallbackRemover;
65
+ destroy(): void;
66
+ insertElementAtIndex(element: ExcalidrawElement, index: number): void;
67
+ insertElementsAtIndex(elements: ExcalidrawElement[], index: number): void;
68
+ insertElement: (element: ExcalidrawElement) => void;
69
+ insertElements: (elements: ExcalidrawElement[]) => void;
70
+ getElementIndex(elementId: string): number;
71
+ getContainerElement: (element: (ExcalidrawElement & {
72
+ containerId: ExcalidrawElement["id"] | null;
73
+ }) | null) => import("@excalidraw/element/types").ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawSelectionElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | import("@excalidraw/element/types").ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement | null;
74
+ getElementsFromId: (id: string) => ExcalidrawElement[];
75
+ mutateElement<TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, options?: {
76
+ informMutation: boolean;
77
+ isDragging: boolean;
78
+ }): TElement;
79
+ }
80
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { AppState } from "@excalidraw/excalidraw/types";
2
+ import type { Scene } from "./Scene";
3
+ import type { ExcalidrawElement } from "./types";
4
+ export interface Alignment {
5
+ position: "start" | "center" | "end";
6
+ axis: "x" | "y";
7
+ }
8
+ export declare const alignElements: (selectedElements: ExcalidrawElement[], alignment: Alignment, scene: Scene, appState: Readonly<AppState>) => ExcalidrawElement[];
@@ -1,99 +1,110 @@
1
- import type { ExcalidrawBindableElement, ExcalidrawElement, NonDeleted, ExcalidrawLinearElement, NonDeletedExcalidrawElement, ElementsMap, NonDeletedSceneElementsMap, OrderedExcalidrawElement, ExcalidrawElbowArrowElement, FixedPoint, SceneElementsMap } from "./types";
2
- import type { Bounds } from "./bounds";
3
- import type { AppState } from "../types";
4
- import type { ElementUpdate } from "./mutateElement";
5
- import type Scene from "../scene/Scene";
6
- import { type Heading } from "./heading";
7
- import type { LocalPoint } from "@excalidraw/math";
8
- import { type GlobalPoint } from "@excalidraw/math";
9
- export type SuggestedBinding = NonDeleted<ExcalidrawBindableElement> | SuggestedPointBinding;
10
- export type SuggestedPointBinding = [
11
- NonDeleted<ExcalidrawLinearElement>,
12
- "start" | "end" | "both",
13
- NonDeleted<ExcalidrawBindableElement>
14
- ];
15
- export declare const shouldEnableBindingForPointerEvent: (event: React.PointerEvent<HTMLElement>) => boolean;
16
- export declare const isBindingEnabled: (appState: AppState) => boolean;
17
- export declare const FIXED_BINDING_DISTANCE = 5;
18
- export declare const BINDING_HIGHLIGHT_THICKNESS = 10;
19
- export declare const BINDING_HIGHLIGHT_OFFSET = 4;
20
- export declare const bindOrUnbindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, startBindingElement: ExcalidrawBindableElement | null | "keep", endBindingElement: ExcalidrawBindableElement | null | "keep", elementsMap: NonDeletedSceneElementsMap, scene: Scene) => void;
21
- export declare const bindOrUnbindLinearElements: (selectedElements: NonDeleted<ExcalidrawLinearElement>[], elementsMap: NonDeletedSceneElementsMap, elements: readonly NonDeletedExcalidrawElement[], scene: Scene, isBindingEnabled: boolean, draggingPoints: readonly number[] | null, zoom?: AppState["zoom"]) => void;
22
- export declare const getSuggestedBindingsForArrows: (selectedElements: NonDeleted<ExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, zoom: AppState["zoom"]) => SuggestedBinding[];
23
- export declare const maybeBindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, appState: AppState, pointerCoords: {
24
- x: number;
25
- y: number;
26
- }, elementsMap: NonDeletedSceneElementsMap, elements: readonly NonDeletedExcalidrawElement[]) => void;
27
- export declare const bindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: NonDeletedSceneElementsMap) => void;
28
- export declare const isLinearElementSimpleAndAlreadyBound: (linearElement: NonDeleted<ExcalidrawLinearElement>, alreadyBoundToId: ExcalidrawBindableElement["id"] | undefined, bindableElement: ExcalidrawBindableElement) => boolean;
29
- export declare const getHoveredElementForBinding: (pointerCoords: {
30
- x: number;
31
- y: number;
32
- }, elements: readonly NonDeletedExcalidrawElement[], elementsMap: NonDeletedSceneElementsMap, zoom?: AppState["zoom"], fullShape?: boolean, considerAllElements?: boolean) => NonDeleted<ExcalidrawBindableElement> | null;
33
- export declare const updateBoundElements: (changedElement: NonDeletedExcalidrawElement, elementsMap: NonDeletedSceneElementsMap | SceneElementsMap, options?: {
34
- simultaneouslyUpdated?: readonly ExcalidrawElement[];
35
- newSize?: {
36
- width: number;
37
- height: number;
38
- };
39
- changedElements?: Map<string, OrderedExcalidrawElement>;
40
- }) => void;
41
- export declare const getHeadingForElbowArrowSnap: (p: Readonly<GlobalPoint>, otherPoint: Readonly<GlobalPoint>, bindableElement: ExcalidrawBindableElement | undefined | null, aabb: Bounds | undefined | null, elementsMap: ElementsMap, origPoint: GlobalPoint, zoom?: AppState["zoom"]) => Heading;
42
- export declare const bindPointToSnapToElementOutline: (arrow: ExcalidrawElbowArrowElement, bindableElement: ExcalidrawBindableElement | undefined, startOrEnd: "start" | "end") => GlobalPoint;
43
- export declare const avoidRectangularCorner: (element: ExcalidrawBindableElement, p: GlobalPoint) => GlobalPoint;
44
- export declare const snapToMid: (element: ExcalidrawBindableElement, p: GlobalPoint, tolerance?: number) => GlobalPoint;
45
- export declare const calculateFixedPointForElbowArrowBinding: (linearElement: NonDeleted<ExcalidrawElbowArrowElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap) => {
46
- fixedPoint: FixedPoint;
47
- };
48
- export declare const fixBindingsAfterDuplication: (sceneElements: readonly ExcalidrawElement[], oldElements: readonly ExcalidrawElement[], oldIdToDuplicatedId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>, duplicatesServeAsOld?: "duplicatesServeAsOld" | undefined) => void;
49
- export declare const fixBindingsAfterDeletion: (sceneElements: readonly ExcalidrawElement[], deletedElements: readonly ExcalidrawElement[]) => void;
50
- export declare const bindingBorderTest: (element: NonDeleted<ExcalidrawBindableElement>, { x, y }: {
51
- x: number;
52
- y: number;
53
- }, elementsMap: NonDeletedSceneElementsMap, zoom?: AppState["zoom"], fullShape?: boolean) => boolean;
54
- export declare const maxBindingGap: (element: ExcalidrawElement, elementWidth: number, elementHeight: number, zoom?: AppState["zoom"]) => number;
55
- export declare const bindingProperties: Set<BindableProp | BindingProp>;
56
- export type BindableProp = "boundElements";
57
- export type BindingProp = "frameId" | "containerId" | "startBinding" | "endBinding";
58
- /**
59
- * Bound element containing bindings to `frameId`, `containerId`, `startBinding` or `endBinding`.
60
- */
61
- export declare class BoundElement {
62
- /**
63
- * Unbind the affected non deleted bindable elements (removing element from `boundElements`).
64
- * - iterates non deleted bindable elements (`containerId` | `startBinding.elementId` | `endBinding.elementId`) of the current element
65
- * - prepares updates to unbind each bindable element's `boundElements` from the current element
66
- */
67
- static unbindAffected(elements: ElementsMap, boundElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void): void;
68
- /**
69
- * Rebind the next affected non deleted bindable elements (adding element to `boundElements`).
70
- * - iterates non deleted bindable elements (`containerId` | `startBinding.elementId` | `endBinding.elementId`) of the current element
71
- * - prepares updates to rebind each bindable element's `boundElements` to the current element
72
- *
73
- * NOTE: rebind expects that affected elements were previously unbound with `BoundElement.unbindAffected`
74
- */
75
- static rebindAffected: (elements: ElementsMap, boundElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void) => void;
76
- }
77
- /**
78
- * Bindable element containing bindings to `boundElements`.
79
- */
80
- export declare class BindableElement {
81
- /**
82
- * Unbind the affected non deleted bound elements (resetting `containerId`, `startBinding`, `endBinding` to `null`).
83
- * - iterates through non deleted `boundElements` of the current element
84
- * - prepares updates to unbind each bound element from the current element
85
- */
86
- static unbindAffected(elements: ElementsMap, bindableElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void): void;
87
- /**
88
- * Rebind the affected non deleted bound elements (for now setting only `containerId`, as we cannot rebind arrows atm).
89
- * - iterates through non deleted `boundElements` of the current element
90
- * - prepares updates to rebind each bound element to the current element or unbind it from `boundElements` in case of conflicts
91
- *
92
- * NOTE: rebind expects that affected elements were previously unbound with `BindaleElement.unbindAffected`
93
- */
94
- static rebindAffected: (elements: ElementsMap, bindableElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void) => void;
95
- }
96
- export declare const getGlobalFixedPointForBindableElement: (fixedPointRatio: [number, number], element: ExcalidrawBindableElement) => GlobalPoint;
97
- export declare const getGlobalFixedPoints: (arrow: ExcalidrawElbowArrowElement, elementsMap: ElementsMap) => [GlobalPoint, GlobalPoint];
98
- export declare const getArrowLocalFixedPoints: (arrow: ExcalidrawElbowArrowElement, elementsMap: ElementsMap) => LocalPoint[];
99
- export declare const normalizeFixedPoint: <T extends FixedPoint | null>(fixedPoint: T) => T extends null ? null : FixedPoint;
1
+ import { type GlobalPoint } from "@excalidraw/math";
2
+ import type { LocalPoint } from "@excalidraw/math";
3
+ import type { AppState } from "@excalidraw/excalidraw/types";
4
+ import { type Heading } from "./heading";
5
+ import type { Scene } from "./Scene";
6
+ import type { Bounds } from "./bounds";
7
+ import type { ElementUpdate } from "./mutateElement";
8
+ import type { ExcalidrawBindableElement, ExcalidrawElement, NonDeleted, ExcalidrawLinearElement, NonDeletedExcalidrawElement, ElementsMap, NonDeletedSceneElementsMap, ExcalidrawElbowArrowElement, FixedPoint } from "./types";
9
+ export type SuggestedBinding = NonDeleted<ExcalidrawBindableElement> | SuggestedPointBinding;
10
+ export type SuggestedPointBinding = [
11
+ NonDeleted<ExcalidrawLinearElement>,
12
+ "start" | "end" | "both",
13
+ NonDeleted<ExcalidrawBindableElement>
14
+ ];
15
+ export declare const shouldEnableBindingForPointerEvent: (event: React.PointerEvent<HTMLElement>) => boolean;
16
+ export declare const isBindingEnabled: (appState: AppState) => boolean;
17
+ export declare const FIXED_BINDING_DISTANCE = 5;
18
+ export declare const BINDING_HIGHLIGHT_THICKNESS = 10;
19
+ export declare const bindOrUnbindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, startBindingElement: ExcalidrawBindableElement | null | "keep", endBindingElement: ExcalidrawBindableElement | null | "keep", scene: Scene) => void;
20
+ export declare const bindOrUnbindLinearElements: (selectedElements: NonDeleted<ExcalidrawLinearElement>[], isBindingEnabled: boolean, draggingPoints: readonly number[] | null, scene: Scene, zoom?: AppState["zoom"]) => void;
21
+ export declare const getSuggestedBindingsForArrows: (selectedElements: NonDeleted<ExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, zoom: AppState["zoom"]) => SuggestedBinding[];
22
+ export declare const maybeSuggestBindingsForLinearElementAtCoords: (linearElement: NonDeleted<ExcalidrawLinearElement>, pointerCoords: {
23
+ x: number;
24
+ y: number;
25
+ }[], scene: Scene, zoom: AppState["zoom"], oppositeBindingBoundElement?: ExcalidrawBindableElement | null) => ExcalidrawBindableElement[];
26
+ export declare const maybeBindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, appState: AppState, pointerCoords: {
27
+ x: number;
28
+ y: number;
29
+ }, scene: Scene) => void;
30
+ export declare const bindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", scene: Scene) => void;
31
+ export declare const isLinearElementSimpleAndAlreadyBound: (linearElement: NonDeleted<ExcalidrawLinearElement>, alreadyBoundToId: ExcalidrawBindableElement["id"] | undefined, bindableElement: ExcalidrawBindableElement) => boolean;
32
+ export declare const getHoveredElementForBinding: (pointerCoords: {
33
+ x: number;
34
+ y: number;
35
+ }, elements: readonly NonDeletedExcalidrawElement[], elementsMap: NonDeletedSceneElementsMap, zoom?: AppState["zoom"], fullShape?: boolean, considerAllElements?: boolean) => NonDeleted<ExcalidrawBindableElement> | null;
36
+ export declare const updateBoundElements: (changedElement: NonDeletedExcalidrawElement, scene: Scene, options?: {
37
+ simultaneouslyUpdated?: readonly ExcalidrawElement[];
38
+ newSize?: {
39
+ width: number;
40
+ height: number;
41
+ };
42
+ changedElements?: Map<string, ExcalidrawElement>;
43
+ }) => void;
44
+ export declare const updateBindings: (latestElement: ExcalidrawElement, scene: Scene, options?: {
45
+ simultaneouslyUpdated?: readonly ExcalidrawElement[];
46
+ newSize?: {
47
+ width: number;
48
+ height: number;
49
+ };
50
+ zoom?: AppState["zoom"];
51
+ }) => void;
52
+ export declare const getHeadingForElbowArrowSnap: (p: Readonly<GlobalPoint>, otherPoint: Readonly<GlobalPoint>, bindableElement: ExcalidrawBindableElement | undefined | null, aabb: Bounds | undefined | null, origPoint: GlobalPoint, elementsMap: ElementsMap, zoom?: AppState["zoom"]) => Heading;
53
+ export declare const bindPointToSnapToElementOutline: (arrow: ExcalidrawElbowArrowElement, bindableElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap) => GlobalPoint;
54
+ export declare const avoidRectangularCorner: (element: ExcalidrawBindableElement, elementsMap: ElementsMap, p: GlobalPoint) => GlobalPoint;
55
+ export declare const snapToMid: (element: ExcalidrawBindableElement, elementsMap: ElementsMap, p: GlobalPoint, tolerance?: number) => GlobalPoint;
56
+ export declare const calculateFixedPointForElbowArrowBinding: (linearElement: NonDeleted<ExcalidrawElbowArrowElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap) => {
57
+ fixedPoint: FixedPoint;
58
+ };
59
+ export declare const fixDuplicatedBindingsAfterDuplication: (duplicatedElements: ExcalidrawElement[], origIdToDuplicateId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>, duplicateElementsMap: NonDeletedSceneElementsMap) => void;
60
+ export declare const fixBindingsAfterDeletion: (sceneElements: readonly ExcalidrawElement[], deletedElements: readonly ExcalidrawElement[]) => void;
61
+ export declare const bindingBorderTest: (element: NonDeleted<ExcalidrawBindableElement>, { x, y }: {
62
+ x: number;
63
+ y: number;
64
+ }, elementsMap: NonDeletedSceneElementsMap, zoom?: AppState["zoom"], fullShape?: boolean) => boolean;
65
+ export declare const maxBindingGap: (element: ExcalidrawElement, elementWidth: number, elementHeight: number, zoom?: AppState["zoom"]) => number;
66
+ export declare const bindingProperties: Set<BindableProp | BindingProp>;
67
+ export type BindableProp = "boundElements";
68
+ export type BindingProp = "frameId" | "containerId" | "startBinding" | "endBinding";
69
+ /**
70
+ * Bound element containing bindings to `frameId`, `containerId`, `startBinding` or `endBinding`.
71
+ */
72
+ export declare class BoundElement {
73
+ /**
74
+ * Unbind the affected non deleted bindable elements (removing element from `boundElements`).
75
+ * - iterates non deleted bindable elements (`containerId` | `startBinding.elementId` | `endBinding.elementId`) of the current element
76
+ * - prepares updates to unbind each bindable element's `boundElements` from the current element
77
+ */
78
+ static unbindAffected(elements: ElementsMap, boundElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void): void;
79
+ /**
80
+ * Rebind the next affected non deleted bindable elements (adding element to `boundElements`).
81
+ * - iterates non deleted bindable elements (`containerId` | `startBinding.elementId` | `endBinding.elementId`) of the current element
82
+ * - prepares updates to rebind each bindable element's `boundElements` to the current element
83
+ *
84
+ * NOTE: rebind expects that affected elements were previously unbound with `BoundElement.unbindAffected`
85
+ */
86
+ static rebindAffected: (elements: ElementsMap, boundElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void) => void;
87
+ }
88
+ /**
89
+ * Bindable element containing bindings to `boundElements`.
90
+ */
91
+ export declare class BindableElement {
92
+ /**
93
+ * Unbind the affected non deleted bound elements (resetting `containerId`, `startBinding`, `endBinding` to `null`).
94
+ * - iterates through non deleted `boundElements` of the current element
95
+ * - prepares updates to unbind each bound element from the current element
96
+ */
97
+ static unbindAffected(elements: ElementsMap, bindableElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void): void;
98
+ /**
99
+ * Rebind the affected non deleted bound elements (for now setting only `containerId`, as we cannot rebind arrows atm).
100
+ * - iterates through non deleted `boundElements` of the current element
101
+ * - prepares updates to rebind each bound element to the current element or unbind it from `boundElements` in case of conflicts
102
+ *
103
+ * NOTE: rebind expects that affected elements were previously unbound with `BindaleElement.unbindAffected`
104
+ */
105
+ static rebindAffected: (elements: ElementsMap, bindableElement: ExcalidrawElement | undefined, updateElementWith: (affected: ExcalidrawElement, updates: ElementUpdate<ExcalidrawElement>) => void) => void;
106
+ }
107
+ export declare const getGlobalFixedPointForBindableElement: (fixedPointRatio: [number, number], element: ExcalidrawBindableElement, elementsMap: ElementsMap) => GlobalPoint;
108
+ export declare const getGlobalFixedPoints: (arrow: ExcalidrawElbowArrowElement, elementsMap: ElementsMap) => [GlobalPoint, GlobalPoint];
109
+ export declare const getArrowLocalFixedPoints: (arrow: ExcalidrawElbowArrowElement, elementsMap: ElementsMap) => LocalPoint[];
110
+ export declare const normalizeFixedPoint: <T extends FixedPoint | null>(fixedPoint: T) => T extends null ? null : FixedPoint;
@@ -1,77 +1,89 @@
1
- import type { ExcalidrawElement, ExcalidrawLinearElement, Arrowhead, ExcalidrawFreeDrawElement, NonDeleted, ElementsMap } from "./types";
2
- import type { Drawable, Op } from "roughjs/bin/core";
3
- import type { AppState } from "../types";
4
- import type { Degrees, GlobalPoint, LineSegment } from "@excalidraw/math";
5
- export type RectangleBox = {
6
- x: number;
7
- y: number;
8
- width: number;
9
- height: number;
10
- angle: number;
11
- };
12
- /**
13
- * x and y position of top left corner, x and y position of bottom right corner
14
- */
15
- export type Bounds = readonly [
16
- minX: number,
17
- minY: number,
18
- maxX: number,
19
- maxY: number
20
- ];
21
- export type SceneBounds = readonly [
22
- sceneX: number,
23
- sceneY: number,
24
- sceneX2: number,
25
- sceneY2: number
26
- ];
27
- export declare class ElementBounds {
28
- private static boundsCache;
29
- static getBounds(element: ExcalidrawElement, elementsMap: ElementsMap): Bounds;
30
- private static calculateBounds;
31
- }
32
- export declare const getElementAbsoluteCoords: (element: ExcalidrawElement, elementsMap: ElementsMap, includeBoundText?: boolean) => [number, number, number, number, number, number];
33
- export declare const getElementLineSegments: (element: ExcalidrawElement, elementsMap: ElementsMap) => LineSegment<GlobalPoint>[];
34
- /**
35
- * Scene -> Scene coords, but in x1,x2,y1,y2 format.
36
- *
37
- * Rectangle here means any rectangular frame, not an excalidraw element.
38
- */
39
- export declare const getRectangleBoxAbsoluteCoords: (boxSceneCoords: RectangleBox) => number[];
40
- export declare const getDiamondPoints: (element: ExcalidrawElement) => number[];
41
- export declare const getCurvePathOps: (shape: Drawable) => Op[];
42
- export declare const getMinMaxXYFromCurvePathOps: (ops: Op[], transformXY?: ((p: GlobalPoint) => GlobalPoint) | undefined) => Bounds;
43
- export declare const getBoundsFromPoints: (points: ExcalidrawFreeDrawElement["points"]) => Bounds;
44
- /** @returns number in pixels */
45
- export declare const getArrowheadSize: (arrowhead: Arrowhead) => number;
46
- /** @returns number in degrees */
47
- export declare const getArrowheadAngle: (arrowhead: Arrowhead) => Degrees;
48
- export declare const getArrowheadPoints: (element: ExcalidrawLinearElement, shape: Drawable[], position: "start" | "end", arrowhead: Arrowhead) => number[] | null;
49
- export declare const getElementBounds: (element: ExcalidrawElement, elementsMap: ElementsMap) => Bounds;
50
- export declare const getCommonBounds: (elements: readonly ExcalidrawElement[], elementsMap?: ElementsMap) => Bounds;
51
- export declare const getDraggedElementsBounds: (elements: ExcalidrawElement[], dragOffset: {
52
- x: number;
53
- y: number;
54
- }) => number[];
55
- export declare const getResizedElementAbsoluteCoords: (element: ExcalidrawElement, nextWidth: number, nextHeight: number, normalizePoints: boolean) => Bounds;
56
- export declare const getElementPointsCoords: (element: ExcalidrawLinearElement, points: readonly (readonly [number, number])[]) => Bounds;
57
- export declare const getClosestElementBounds: (elements: readonly ExcalidrawElement[], from: {
58
- x: number;
59
- y: number;
60
- }) => Bounds;
61
- export interface BoundingBox {
62
- minX: number;
63
- minY: number;
64
- maxX: number;
65
- maxY: number;
66
- midX: number;
67
- midY: number;
68
- width: number;
69
- height: number;
70
- }
71
- export declare const getCommonBoundingBox: (elements: ExcalidrawElement[] | readonly NonDeleted<ExcalidrawElement>[]) => BoundingBox;
72
- /**
73
- * returns scene coords of user's editor viewport (visible canvas area) bounds
74
- */
75
- export declare const getVisibleSceneBounds: ({ scrollX, scrollY, width, height, zoom, }: AppState) => SceneBounds;
76
- export declare const getCenterForBounds: (bounds: Bounds) => GlobalPoint;
77
- export declare const doBoundsIntersect: (bounds1: Bounds | null, bounds2: Bounds | null) => boolean;
1
+ import type { Degrees, GlobalPoint, LineSegment, LocalPoint } from "@excalidraw/math";
2
+ import type { AppState } from "@excalidraw/excalidraw/types";
3
+ import type { Drawable, Op } from "roughjs/bin/core";
4
+ import type { Arrowhead, ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawLinearElement, NonDeleted } from "./types";
5
+ export type RectangleBox = {
6
+ x: number;
7
+ y: number;
8
+ width: number;
9
+ height: number;
10
+ angle: number;
11
+ };
12
+ /**
13
+ * x and y position of top left corner, x and y position of bottom right corner
14
+ */
15
+ export type Bounds = readonly [
16
+ minX: number,
17
+ minY: number,
18
+ maxX: number,
19
+ maxY: number
20
+ ];
21
+ export type SceneBounds = readonly [
22
+ sceneX: number,
23
+ sceneY: number,
24
+ sceneX2: number,
25
+ sceneY2: number
26
+ ];
27
+ export declare class ElementBounds {
28
+ private static boundsCache;
29
+ private static nonRotatedBoundsCache;
30
+ static getBounds(element: ExcalidrawElement, elementsMap: ElementsMap, nonRotated?: boolean): Bounds;
31
+ private static calculateBounds;
32
+ }
33
+ export declare const getElementAbsoluteCoords: (element: ExcalidrawElement, elementsMap: ElementsMap, includeBoundText?: boolean) => [number, number, number, number, number, number];
34
+ /**
35
+ * Given an element, return the line segments that make up the element.
36
+ *
37
+ * Uses helpers from /math
38
+ */
39
+ export declare const getElementLineSegments: (element: ExcalidrawElement, elementsMap: ElementsMap) => LineSegment<GlobalPoint>[];
40
+ /**
41
+ * Scene -> Scene coords, but in x1,x2,y1,y2 format.
42
+ *
43
+ * Rectangle here means any rectangular frame, not an excalidraw element.
44
+ */
45
+ export declare const getRectangleBoxAbsoluteCoords: (boxSceneCoords: RectangleBox) => number[];
46
+ export declare const getDiamondPoints: (element: ExcalidrawElement) => number[];
47
+ export declare const getCubicBezierCurveBound: (p0: GlobalPoint, p1: GlobalPoint, p2: GlobalPoint, p3: GlobalPoint) => Bounds;
48
+ export declare const getMinMaxXYFromCurvePathOps: (ops: Op[], transformXY?: ((p: GlobalPoint) => GlobalPoint) | undefined) => Bounds;
49
+ export declare const getBoundsFromPoints: (points: ExcalidrawFreeDrawElement["points"]) => Bounds;
50
+ /** @returns number in pixels */
51
+ export declare const getArrowheadSize: (arrowhead: Arrowhead) => number;
52
+ /** @returns number in degrees */
53
+ export declare const getArrowheadAngle: (arrowhead: Arrowhead) => Degrees;
54
+ export declare const getArrowheadPoints: (element: ExcalidrawLinearElement, shape: Drawable[], position: "start" | "end", arrowhead: Arrowhead) => number[] | null;
55
+ export declare const getElementBounds: (element: ExcalidrawElement, elementsMap: ElementsMap, nonRotated?: boolean) => Bounds;
56
+ export declare const getCommonBounds: (elements: ElementsMapOrArray, elementsMap?: ElementsMap) => Bounds;
57
+ export declare const getDraggedElementsBounds: (elements: ExcalidrawElement[], dragOffset: {
58
+ x: number;
59
+ y: number;
60
+ }) => number[];
61
+ export declare const getResizedElementAbsoluteCoords: (element: ExcalidrawElement, nextWidth: number, nextHeight: number, normalizePoints: boolean) => Bounds;
62
+ export declare const getElementPointsCoords: (element: ExcalidrawLinearElement, points: readonly (readonly [number, number])[]) => Bounds;
63
+ export declare const getClosestElementBounds: (elements: readonly ExcalidrawElement[], from: {
64
+ x: number;
65
+ y: number;
66
+ }) => Bounds;
67
+ export interface BoundingBox {
68
+ minX: number;
69
+ minY: number;
70
+ maxX: number;
71
+ maxY: number;
72
+ midX: number;
73
+ midY: number;
74
+ width: number;
75
+ height: number;
76
+ }
77
+ export declare const getCommonBoundingBox: (elements: ExcalidrawElement[] | readonly NonDeleted<ExcalidrawElement>[]) => BoundingBox;
78
+ /**
79
+ * returns scene coords of user's editor viewport (visible canvas area) bounds
80
+ */
81
+ export declare const getVisibleSceneBounds: ({ scrollX, scrollY, width, height, zoom, }: AppState) => SceneBounds;
82
+ export declare const getCenterForBounds: (bounds: Bounds) => GlobalPoint;
83
+ /**
84
+ * Get the axis-aligned bounding box for a given element
85
+ */
86
+ export declare const aabbForElement: (element: Readonly<ExcalidrawElement>, elementsMap: ElementsMap, offset?: [number, number, number, number]) => Bounds;
87
+ export declare const pointInsideBounds: <P extends GlobalPoint | LocalPoint>(p: P, bounds: Bounds) => boolean;
88
+ export declare const doBoundsIntersect: (bounds1: Bounds | null, bounds2: Bounds | null) => boolean;
89
+ export declare const elementCenterPoint: (element: ExcalidrawElement, elementsMap: ElementsMap, xOffset?: number, yOffset?: number) => GlobalPoint;
@@ -0,0 +1,32 @@
1
+ import type { GlobalPoint, LineSegment } from "@excalidraw/math";
2
+ import type { FrameNameBounds } from "@excalidraw/excalidraw/types";
3
+ import type { ElementsMap, ExcalidrawElement } from "./types";
4
+ export declare const shouldTestInside: (element: ExcalidrawElement) => boolean;
5
+ export type HitTestArgs = {
6
+ point: GlobalPoint;
7
+ element: ExcalidrawElement;
8
+ threshold: number;
9
+ elementsMap: ElementsMap;
10
+ frameNameBound?: FrameNameBounds | null;
11
+ };
12
+ export declare const hitElementItself: ({ point, element, threshold, elementsMap, frameNameBound, }: HitTestArgs) => boolean;
13
+ export declare const hitElementBoundingBox: (point: GlobalPoint, element: ExcalidrawElement, elementsMap: ElementsMap, tolerance?: number) => boolean;
14
+ export declare const hitElementBoundingBoxOnly: (hitArgs: HitTestArgs, elementsMap: ElementsMap) => boolean;
15
+ export declare const hitElementBoundText: (point: GlobalPoint, element: ExcalidrawElement, elementsMap: ElementsMap) => boolean;
16
+ /**
17
+ * Intersect a line with an element for binding test
18
+ *
19
+ * @param element
20
+ * @param line
21
+ * @param offset
22
+ * @returns
23
+ */
24
+ export declare const intersectElementWithLineSegment: (element: ExcalidrawElement, elementsMap: ElementsMap, line: LineSegment<GlobalPoint>, offset?: number, onlyFirst?: boolean) => GlobalPoint[];
25
+ /**
26
+ * Check if the given point is considered inside the element's border
27
+ *
28
+ * @param point
29
+ * @param element
30
+ * @returns
31
+ */
32
+ export declare const isPointInElement: (point: GlobalPoint, element: ExcalidrawElement, elementsMap: ElementsMap) => boolean;