@excalidraw/element 0.18.0-9ba0f5d → 0.18.0-a52cd20

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 (279) hide show
  1. package/dist/dev/index.js +13141 -8453
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +20 -19
  4. package/dist/types/common/debug.d.ts +21 -0
  5. package/dist/types/common/src/appEventBus.d.ts +27 -0
  6. package/dist/types/common/src/colors.d.ts +24 -2
  7. package/dist/types/common/src/constants.d.ts +70 -7
  8. package/dist/types/common/src/index.d.ts +3 -0
  9. package/dist/types/common/src/keys.d.ts +4 -0
  10. package/dist/types/common/src/points.d.ts +1 -1
  11. package/dist/types/common/src/random.d.ts +7 -0
  12. package/dist/types/common/src/utils.d.ts +10 -50
  13. package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
  14. package/dist/types/element/src/Scene.d.ts +9 -5
  15. package/dist/types/element/src/align.d.ts +2 -2
  16. package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
  17. package/dist/types/element/src/arrowheads.d.ts +3 -0
  18. package/dist/types/element/src/arrows/focus.d.ts +30 -0
  19. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  20. package/dist/types/element/src/binding.d.ts +37 -17
  21. package/dist/types/element/src/bounds.d.ts +23 -8
  22. package/dist/types/element/src/bucketFill.d.ts +110 -0
  23. package/dist/types/element/src/collision.d.ts +7 -3
  24. package/dist/types/element/src/comparisons.d.ts +8 -5
  25. package/dist/types/element/src/convertToShape.d.ts +23 -0
  26. package/dist/types/element/src/delta.d.ts +23 -1
  27. package/dist/types/element/src/distribute.d.ts +3 -2
  28. package/dist/types/element/src/dragElements.d.ts +27 -0
  29. package/dist/types/element/src/duplicate.d.ts +64 -3
  30. package/dist/types/element/src/elbowArrow.d.ts +2 -0
  31. package/dist/types/element/src/embeddable.d.ts +2 -2
  32. package/dist/types/element/src/flowchart.d.ts +11 -7
  33. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  34. package/dist/types/element/src/frame.d.ts +11 -10
  35. package/dist/types/element/src/groups.d.ts +9 -9
  36. package/dist/types/element/src/index.d.ts +8 -1
  37. package/dist/types/element/src/linearElementEditor.d.ts +32 -10
  38. package/dist/types/element/src/mutateElement.d.ts +3 -1
  39. package/dist/types/element/src/newElement.d.ts +53 -3
  40. package/dist/types/element/src/renderElement.d.ts +21 -7
  41. package/dist/types/element/src/resizeElements.d.ts +2 -2
  42. package/dist/types/element/src/selection.d.ts +11 -7
  43. package/dist/types/element/src/shape.d.ts +28 -2
  44. package/dist/types/element/src/sizeHelpers.d.ts +6 -0
  45. package/dist/types/element/src/sortElements.d.ts +10 -0
  46. package/dist/types/element/src/stickyNote.d.ts +183 -0
  47. package/dist/types/element/src/textElement.d.ts +21 -10
  48. package/dist/types/element/src/textWrapping.d.ts +26 -0
  49. package/dist/types/element/src/transform.d.ts +26 -7
  50. package/dist/types/element/src/typeChecks.d.ts +29 -27
  51. package/dist/types/element/src/types.d.ts +48 -9
  52. package/dist/types/element/src/utils.d.ts +19 -6
  53. package/dist/types/element/src/visualdebug.d.ts +1 -2
  54. package/dist/types/element/src/zindex.d.ts +2 -2
  55. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +125 -53
  56. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  57. package/dist/types/excalidraw/actions/actionBoundText.d.ts +85 -37
  58. package/dist/types/excalidraw/actions/actionCanvas.d.ts +356 -1019
  59. package/dist/types/excalidraw/actions/actionClipboard.d.ts +84 -36
  60. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +42 -18
  61. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +130 -55
  62. package/dist/types/excalidraw/actions/actionDeselect.d.ts +182 -0
  63. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  64. package/dist/types/excalidraw/actions/actionElementLink.d.ts +38 -18
  65. package/dist/types/excalidraw/actions/actionElementLock.d.ts +85 -37
  66. package/dist/types/excalidraw/actions/actionExport.d.ts +133 -359
  67. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
  68. package/dist/types/excalidraw/actions/actionFrame.d.ts +187 -236
  69. package/dist/types/excalidraw/actions/actionGroup.d.ts +100 -52
  70. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +99 -21
  71. package/dist/types/excalidraw/actions/actionLink.d.ts +43 -19
  72. package/dist/types/excalidraw/actions/actionMenu.d.ts +38 -18
  73. package/dist/types/excalidraw/actions/actionProperties.d.ts +120 -56
  74. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +46 -22
  75. package/dist/types/excalidraw/actions/actionStyles.d.ts +43 -18
  76. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  77. package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionToggleArrowBinding.d.ts} +57 -32
  78. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +46 -23
  79. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +195 -0
  80. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +43 -19
  81. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +42 -23
  82. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  83. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +43 -19
  84. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +44 -20
  85. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +43 -19
  86. package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
  87. package/dist/types/excalidraw/actions/index.d.ts +4 -2
  88. package/dist/types/excalidraw/actions/manager.d.ts +1 -0
  89. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  90. package/dist/types/excalidraw/actions/types.d.ts +8 -4
  91. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  92. package/dist/types/excalidraw/appState.d.ts +39 -13
  93. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  94. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  95. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  96. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  97. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  98. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  99. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  100. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  101. package/dist/types/excalidraw/clipboard.d.ts +6 -7
  102. package/dist/types/excalidraw/components/Actions.d.ts +17 -12
  103. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  104. package/dist/types/excalidraw/components/App.arrowText.d.ts +70 -0
  105. package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
  106. package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
  107. package/dist/types/excalidraw/components/App.d.ts +604 -89
  108. package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
  109. package/dist/types/excalidraw/components/App.duplicate.d.ts +51 -0
  110. package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
  111. package/dist/types/excalidraw/components/App.pan.d.ts +62 -0
  112. package/dist/types/excalidraw/components/App.textTool.d.ts +140 -0
  113. package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
  114. package/dist/types/excalidraw/components/App.viewport.d.ts +113 -0
  115. package/dist/types/excalidraw/components/App.wheel.d.ts +26 -0
  116. package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
  117. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
  118. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
  119. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +5 -1
  120. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
  121. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
  122. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
  123. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
  124. package/dist/types/excalidraw/components/ColorPicker/colorTopPicksDnD.d.ts +11 -0
  125. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
  126. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  127. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -1
  128. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  129. package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
  130. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  131. package/dist/types/excalidraw/components/FileDropOverlay.d.ts +2 -0
  132. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +4 -1
  133. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +6 -1
  134. package/dist/types/excalidraw/components/FontPicker/fontTopPicksDnD.d.ts +12 -0
  135. package/dist/types/excalidraw/components/IconButton.d.ts +48 -0
  136. package/dist/types/excalidraw/components/IconPicker.d.ts +14 -9
  137. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  138. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
  139. package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
  140. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  141. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +6 -2
  142. package/dist/types/excalidraw/components/LibraryUnit.d.ts +7 -2
  143. package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
  144. package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
  145. package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
  146. package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
  147. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  148. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
  149. package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
  150. package/dist/types/excalidraw/components/Popover.d.ts +1 -3
  151. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  152. package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
  153. package/dist/types/excalidraw/components/Range.d.ts +10 -4
  154. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  155. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  156. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
  157. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  158. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  159. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  160. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  161. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  162. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  163. package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
  164. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  165. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +2 -6
  166. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +2 -1
  167. package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
  168. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
  169. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +11 -7
  170. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
  171. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +4 -1
  172. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  173. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +2 -1
  174. package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
  175. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +4 -0
  176. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
  177. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
  178. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
  179. package/dist/types/excalidraw/components/Toast.d.ts +8 -4
  180. package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
  181. package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
  182. package/dist/types/excalidraw/components/Tools.d.ts +151 -0
  183. package/dist/types/excalidraw/components/Tooltip.d.ts +15 -1
  184. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksContextMenu.d.ts +14 -0
  185. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksTip.d.ts +11 -0
  186. package/dist/types/excalidraw/components/TopPicksDnD/topPicksDnD.d.ts +58 -0
  187. package/dist/types/excalidraw/components/UserList.d.ts +3 -2
  188. package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
  189. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -1
  190. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +3 -0
  191. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  192. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +30 -16
  193. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +3 -2
  194. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +11 -12
  195. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  196. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +2 -1
  197. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
  198. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  199. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  200. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  201. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +1 -1
  202. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  203. package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
  204. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  205. package/dist/types/excalidraw/components/icons.d.ts +30 -10
  206. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +26 -3
  207. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +23 -14
  208. package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
  209. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
  210. package/dist/types/excalidraw/data/blob.d.ts +107 -60
  211. package/dist/types/excalidraw/data/filesystem.d.ts +3 -5
  212. package/dist/types/excalidraw/data/index.d.ts +6 -7
  213. package/dist/types/excalidraw/data/json.d.ts +62 -30
  214. package/dist/types/excalidraw/data/library.d.ts +1 -1
  215. package/dist/types/excalidraw/data/resave.d.ts +7 -2
  216. package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
  217. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  218. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
  219. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  220. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  221. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
  222. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  223. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  224. package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
  225. package/dist/types/excalidraw/renderOverrides.d.ts +9 -0
  226. package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
  227. package/dist/types/excalidraw/renderer/helpers.d.ts +25 -0
  228. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +2 -4
  229. package/dist/types/excalidraw/scene/Renderer.d.ts +489 -20
  230. package/dist/types/excalidraw/scene/export.d.ts +3 -3
  231. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  232. package/dist/types/excalidraw/scene/types.d.ts +7 -4
  233. package/dist/types/excalidraw/snapping.d.ts +7 -7
  234. package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
  235. package/dist/types/excalidraw/types.d.ts +619 -42
  236. package/dist/types/excalidraw/viewport.d.ts +302 -0
  237. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +12 -3
  238. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  239. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  240. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  241. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  242. package/dist/types/laser-pointer/src/state.d.ts +36 -0
  243. package/dist/types/math/src/constants.d.ts +0 -1
  244. package/dist/types/math/src/curve.d.ts +23 -13
  245. package/dist/types/math/src/index.d.ts +1 -0
  246. package/dist/types/math/src/pca.d.ts +79 -0
  247. package/dist/types/math/src/point.d.ts +8 -2
  248. package/dist/types/math/src/polygon.d.ts +25 -1
  249. package/dist/types/math/src/segment.d.ts +6 -0
  250. package/dist/types/math/src/types.d.ts +25 -1
  251. package/dist/types/utils/src/export.d.ts +4 -3
  252. package/dist/types/utils/src/index.d.ts +1 -2
  253. package/dist/types/utils/src/shape.d.ts +2 -2
  254. package/package.json +4 -3
  255. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  256. package/dist/types/excalidraw/charts.d.ts +0 -27
  257. package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
  258. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -15
  259. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
  260. package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
  261. package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
  262. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
  263. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -8
  264. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +0 -24
  265. package/dist/types/excalidraw/components/ToolButton.d.ts +0 -49
  266. package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
  267. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -11
  268. package/dist/types/excalidraw/components/shapes.d.ts +0 -190
  269. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -58
  270. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -19
  271. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +0 -84
  272. package/dist/types/excalidraw/cursor.d.ts +0 -5
  273. package/dist/types/excalidraw/data/reconcile.d.ts +0 -7
  274. package/dist/types/excalidraw/index.d.ts +0 -46
  275. package/dist/types/excalidraw/polyfill.d.ts +0 -2
  276. package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
  277. package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
  278. package/dist/types/utils/src/bbox.d.ts +0 -9
  279. package/dist/types/utils/src/withinBounds.d.ts +0 -19
@@ -19,12 +19,24 @@ export type InclusiveRange = [number, number] & {
19
19
  _brand: "excalimath_degree";
20
20
  };
21
21
  /**
22
- * Represents a 2D position in world or canvas space. A
22
+ * Represents a 2D position in world/canvas/scene space. A
23
23
  * global coordinate.
24
24
  */
25
25
  export type GlobalPoint = [x: number, y: number] & {
26
26
  _brand: "excalimath__globalpoint";
27
27
  };
28
+ /**
29
+ * Represents a 2D position in world/canvas/scene space. A
30
+ * global coordinate.
31
+ *
32
+ * TODO remove this once we migrate the codebase to use Point tuples everywhere
33
+ */
34
+ export type GlobalCoord = {
35
+ x: number;
36
+ y: number;
37
+ } & {
38
+ _brand: "excalimath__globalcoord";
39
+ };
28
40
  /**
29
41
  * Represents a 2D position in whatever local space it's
30
42
  * needed. A local coordinate.
@@ -32,6 +44,18 @@ export type GlobalPoint = [x: number, y: number] & {
32
44
  export type LocalPoint = [x: number, y: number] & {
33
45
  _brand: "excalimath__localpoint";
34
46
  };
47
+ /**
48
+ * Represents a 2D position in whatever local space it's needed.
49
+ * A local coordinate.
50
+ *
51
+ * TODO remove this once we migrate the codebase to use Point tuples everywhere
52
+ */
53
+ export type LocalCoord = {
54
+ x: number;
55
+ y: number;
56
+ } & {
57
+ _brand: "excalimath__localcoord";
58
+ };
35
59
  /**
36
60
  * A line is an infinitely long object with no width, depth, or curvature.
37
61
  */
@@ -1,13 +1,14 @@
1
1
  import { MIME_TYPES } from "@excalidraw/common";
2
- import type { ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted } from "@excalidraw/element/types";
2
+ import type { ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
3
3
  import type { AppState, BinaryFiles } from "@excalidraw/excalidraw/types";
4
4
  export { MIME_TYPES };
5
5
  type ExportOpts = {
6
- elements: readonly NonDeleted<ExcalidrawElement>[];
6
+ /** restored before exporting */
7
+ elements: readonly NonDeletedExcalidrawElement[];
7
8
  appState?: Partial<Omit<AppState, "offsetTop" | "offsetLeft">>;
8
9
  files: BinaryFiles | null;
9
10
  maxWidthOrHeight?: number;
10
- exportingFrame?: ExcalidrawFrameLikeElement | null;
11
+ exportingFrame?: NonDeleted<ExcalidrawFrameLikeElement> | null;
11
12
  getDimensions?: (width: number, height: number) => {
12
13
  width: number;
13
14
  height: number;
@@ -1,4 +1,3 @@
1
1
  export * from "./export";
2
- export * from "./withinBounds";
3
- export * from "./bbox";
2
+ export { elementsOverlappingBBox } from "@excalidraw/element";
4
3
  export { getCommonBounds } from "@excalidraw/element";
@@ -1,5 +1,5 @@
1
1
  import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
2
- import type { ElementsMap, ExcalidrawBindableElement, ExcalidrawDiamondElement, ExcalidrawElement, ExcalidrawEllipseElement, ExcalidrawEmbeddableElement, ExcalidrawFrameLikeElement, ExcalidrawFreeDrawElement, ExcalidrawIframeElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawRectangleElement, ExcalidrawSelectionElement, ExcalidrawTextElement } from "@excalidraw/element/types";
2
+ import type { ElementsMap, ExcalidrawBindableElement, ExcalidrawDiamondElement, ExcalidrawElement, ExcalidrawEllipseElement, ExcalidrawEmbeddableElement, ExcalidrawFrameLikeElement, ExcalidrawFreeDrawElement, ExcalidrawIframeElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawRectangleElement, ExcalidrawSelectionElement, ExcalidrawStickyNoteElement, ExcalidrawTextElement } from "@excalidraw/element/types";
3
3
  import type { Curve, LineSegment, Polygon, Radians } from "@excalidraw/math";
4
4
  import type { Drawable, Op } from "roughjs/bin/core";
5
5
  export type Polyline<Point extends GlobalPoint | LocalPoint> = LineSegment<Point>[];
@@ -29,7 +29,7 @@ export type GeometricShape<Point extends GlobalPoint | LocalPoint> = {
29
29
  type: "polycurve";
30
30
  data: Polycurve<Point>;
31
31
  };
32
- type RectangularElement = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawFrameLikeElement | ExcalidrawEmbeddableElement | ExcalidrawImageElement | ExcalidrawIframeElement | ExcalidrawTextElement | ExcalidrawSelectionElement;
32
+ type RectangularElement = ExcalidrawRectangleElement | ExcalidrawStickyNoteElement | ExcalidrawDiamondElement | ExcalidrawFrameLikeElement | ExcalidrawEmbeddableElement | ExcalidrawImageElement | ExcalidrawIframeElement | ExcalidrawTextElement | ExcalidrawSelectionElement;
33
33
  export declare const getPolygonShape: <Point extends GlobalPoint | LocalPoint>(element: RectangularElement) => GeometricShape<Point>;
34
34
  export declare const getSelectionBoxShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap, padding?: number) => GeometricShape<Point>;
35
35
  export declare const getEllipseShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawEllipseElement) => GeometricShape<Point>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@excalidraw/element",
3
- "version": "0.18.0-9ba0f5d",
3
+ "version": "0.18.0-a52cd20",
4
4
  "type": "module",
5
5
  "types": "./dist/types/element/src/index.d.ts",
6
6
  "main": "./dist/prod/index.js",
@@ -63,7 +63,8 @@
63
63
  "build:esm": "rimraf dist && node ../../scripts/buildBase.js && yarn gen:types"
64
64
  },
65
65
  "dependencies": {
66
- "@excalidraw/common": "0.18.0-9ba0f5d",
67
- "@excalidraw/math": "0.18.0-9ba0f5d"
66
+ "@excalidraw/common": "0.18.0-a52cd20",
67
+ "@excalidraw/math": "0.18.0-a52cd20",
68
+ "@excalidraw/fractional-indexing": "0.18.0-a52cd20"
68
69
  }
69
70
  }
@@ -1,16 +0,0 @@
1
- export type AnimationCallback = (timestamp: number) => void | boolean;
2
- export type AnimationTarget = {
3
- callback: AnimationCallback;
4
- stopped: boolean;
5
- };
6
- export declare class AnimationFrameHandler {
7
- private targets;
8
- private rafIds;
9
- register(key: object, callback: AnimationCallback): void;
10
- start(key: object): void;
11
- stop(key: object): void;
12
- private constructFrame;
13
- private scheduleFrame;
14
- private cancelFrame;
15
- private onFrame;
16
- }
@@ -1,27 +0,0 @@
1
- import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
2
- export type ChartElements = readonly NonDeletedExcalidrawElement[];
3
- export interface Spreadsheet {
4
- title: string | null;
5
- labels: string[] | null;
6
- values: number[];
7
- }
8
- export declare const NOT_SPREADSHEET = "NOT_SPREADSHEET";
9
- export declare const VALID_SPREADSHEET = "VALID_SPREADSHEET";
10
- type ParseSpreadsheetResult = {
11
- type: typeof NOT_SPREADSHEET;
12
- reason: string;
13
- } | {
14
- type: typeof VALID_SPREADSHEET;
15
- spreadsheet: Spreadsheet;
16
- };
17
- /**
18
- * @private exported for testing
19
- */
20
- export declare const tryParseNumber: (s: string) => number | null;
21
- /**
22
- * @private exported for testing
23
- */
24
- export declare const tryParseCells: (cells: string[][]) => ParseSpreadsheetResult;
25
- export declare const tryParseSpreadsheet: (text: string) => ParseSpreadsheetResult;
26
- export declare const renderSpreadsheet: (chartType: string, spreadsheet: Spreadsheet, x: number, y: number) => ChartElements;
27
- export {};
@@ -1,4 +0,0 @@
1
- import type { GenerateDiagramToCode } from "../../types";
2
- export declare const DiagramToCodePlugin: (props: {
3
- generate: GenerateDiagramToCode;
4
- }) => null;
@@ -1,15 +0,0 @@
1
- import "./ExcalidrawLogo.scss";
2
- type LogoSize = "xs" | "small" | "normal" | "large" | "custom" | "mobile";
3
- interface LogoProps {
4
- size?: LogoSize;
5
- withText?: boolean;
6
- style?: React.CSSProperties;
7
- /**
8
- * If true, the logo will not be wrapped in a Link component.
9
- * The link prop will be ignored as well.
10
- * It will merely be a plain div.
11
- */
12
- isNotLink?: boolean;
13
- }
14
- export declare const ExcalidrawLogo: ({ style, size, withText, }: LogoProps) => import("react/jsx-runtime").JSX.Element;
15
- export {};
@@ -1,10 +0,0 @@
1
- import "./FollowMode.scss";
2
- import type { UserToFollow } from "../../types";
3
- interface FollowModeProps {
4
- width: number;
5
- height: number;
6
- userToFollow: UserToFollow;
7
- onDisconnect: () => void;
8
- }
9
- declare const FollowMode: ({ height, width, userToFollow, onDisconnect, }: FollowModeProps) => import("react/jsx-runtime").JSX.Element;
10
- export default FollowMode;
@@ -1,10 +0,0 @@
1
- import "./ToolIcon.scss";
2
- type LockIconProps = {
3
- title?: string;
4
- name?: string;
5
- checked: boolean;
6
- onChange?(): void;
7
- isMobile?: boolean;
8
- };
9
- export declare const HandButton: (props: LockIconProps) => import("react/jsx-runtime").JSX.Element;
10
- export {};
@@ -1,10 +0,0 @@
1
- import React from "react";
2
- import type { Theme } from "@excalidraw/element/types";
3
- import type { Language } from "../i18n";
4
- interface Props {
5
- langCode: Language["code"];
6
- children: React.ReactElement;
7
- theme?: Theme;
8
- }
9
- export declare const InitializeApp: (props: Props) => import("react/jsx-runtime").JSX.Element;
10
- export {};
@@ -1,10 +0,0 @@
1
- import "./ToolIcon.scss";
2
- import "./MobileToolBar.scss";
3
- import type { AppClassProperties, UIAppState } from "../types";
4
- type MobileToolBarProps = {
5
- app: AppClassProperties;
6
- onHandToolToggle: () => void;
7
- setAppState: React.Component<any, UIAppState>["setState"];
8
- };
9
- export declare const MobileToolBar: ({ app, onHandToolToggle, setAppState, }: MobileToolBarProps) => import("react/jsx-runtime").JSX.Element;
10
- export {};
@@ -1,8 +0,0 @@
1
- import type { JSX, ReactNode } from "react";
2
- export declare const TTDDialogTrigger: {
3
- ({ children, icon, }: {
4
- children?: ReactNode;
5
- icon?: JSX.Element;
6
- }): import("react/jsx-runtime").JSX.Element;
7
- displayName: string;
8
- };
@@ -1,24 +0,0 @@
1
- import type { LLMMessage, TTTDDialog } from "@excalidraw/excalidraw/components/TTDDialog/types";
2
- interface StreamingOptions {
3
- url: string;
4
- messages: readonly LLMMessage[];
5
- onChunk?: (chunk: string) => void;
6
- extractRateLimits?: boolean;
7
- signal?: AbortSignal;
8
- onStreamCreated?: () => void;
9
- }
10
- export type StreamChunk = {
11
- type: "content";
12
- delta: string;
13
- } | {
14
- type: "done";
15
- finishReason: "stop" | "length" | "content_filter" | "tool_calls" | null;
16
- } | {
17
- type: "error";
18
- error: {
19
- message: string;
20
- status?: number;
21
- };
22
- };
23
- export declare function TTDStreamFetch(options: StreamingOptions): Promise<TTTDDialog.OnTextSubmitRetValue>;
24
- export {};
@@ -1,49 +0,0 @@
1
- import React from "react";
2
- import type { PointerType } from "@excalidraw/element/types";
3
- import "./ToolIcon.scss";
4
- import type { CSSProperties } from "react";
5
- export type ToolButtonSize = "small" | "medium";
6
- type ToolButtonBaseProps = {
7
- icon?: React.ReactNode;
8
- "aria-label": string;
9
- "aria-keyshortcuts"?: string;
10
- "data-testid"?: string;
11
- label?: string;
12
- title?: string;
13
- name?: string;
14
- id?: string;
15
- size?: ToolButtonSize;
16
- keyBindingLabel?: string | null;
17
- showAriaLabel?: boolean;
18
- hidden?: boolean;
19
- visible?: boolean;
20
- selected?: boolean;
21
- disabled?: boolean;
22
- className?: string;
23
- style?: CSSProperties;
24
- isLoading?: boolean;
25
- };
26
- type ToolButtonProps = (ToolButtonBaseProps & {
27
- type: "button";
28
- children?: React.ReactNode;
29
- onClick?(event: React.MouseEvent): void;
30
- }) | (ToolButtonBaseProps & {
31
- type: "submit";
32
- children?: React.ReactNode;
33
- onClick?(event: React.MouseEvent): void;
34
- }) | (ToolButtonBaseProps & {
35
- type: "icon";
36
- children?: React.ReactNode;
37
- onClick?(): void;
38
- }) | (ToolButtonBaseProps & {
39
- type: "radio";
40
- checked: boolean;
41
- onChange?(data: {
42
- pointerType: PointerType | null;
43
- }): void;
44
- onPointerDown?(data: {
45
- pointerType: PointerType;
46
- }): void;
47
- });
48
- export declare const ToolButton: React.ForwardRefExoticComponent<ToolButtonProps & React.RefAttributes<unknown>>;
49
- export {};
@@ -1,8 +0,0 @@
1
- import "./FooterCenter.scss";
2
- declare const FooterCenter: {
3
- ({ children }: {
4
- children?: React.ReactNode;
5
- }): import("react/jsx-runtime").JSX.Element;
6
- displayName: string;
7
- };
8
- export default FooterCenter;
@@ -1,11 +0,0 @@
1
- import { type EditorInterface } from "@excalidraw/common";
2
- import "./LiveCollaborationTrigger.scss";
3
- declare const LiveCollaborationTrigger: {
4
- ({ isCollaborating, onSelect, editorInterface, ...rest }: {
5
- isCollaborating: boolean;
6
- onSelect: () => void;
7
- editorInterface?: EditorInterface;
8
- } & React.ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
9
- displayName: string;
10
- };
11
- export default LiveCollaborationTrigger;
@@ -1,190 +0,0 @@
1
- import type { AppClassProperties } from "../types";
2
- export declare const SHAPES: readonly [{
3
- readonly icon: import("react/jsx-runtime").JSX.Element;
4
- readonly value: "selection";
5
- readonly key: "v";
6
- readonly numericKey: "1";
7
- readonly fillable: true;
8
- }, {
9
- readonly icon: import("react/jsx-runtime").JSX.Element;
10
- readonly value: "rectangle";
11
- readonly key: "r";
12
- readonly numericKey: "2";
13
- readonly fillable: true;
14
- }, {
15
- readonly icon: import("react/jsx-runtime").JSX.Element;
16
- readonly value: "diamond";
17
- readonly key: "d";
18
- readonly numericKey: "3";
19
- readonly fillable: true;
20
- }, {
21
- readonly icon: import("react/jsx-runtime").JSX.Element;
22
- readonly value: "ellipse";
23
- readonly key: "o";
24
- readonly numericKey: "4";
25
- readonly fillable: true;
26
- }, {
27
- readonly icon: import("react/jsx-runtime").JSX.Element;
28
- readonly value: "arrow";
29
- readonly key: "a";
30
- readonly numericKey: "5";
31
- readonly fillable: true;
32
- }, {
33
- readonly icon: import("react/jsx-runtime").JSX.Element;
34
- readonly value: "line";
35
- readonly key: "l";
36
- readonly numericKey: "6";
37
- readonly fillable: true;
38
- }, {
39
- readonly icon: import("react/jsx-runtime").JSX.Element;
40
- readonly value: "freedraw";
41
- readonly key: readonly ["p", "x"];
42
- readonly numericKey: "7";
43
- readonly fillable: false;
44
- }, {
45
- readonly icon: import("react/jsx-runtime").JSX.Element;
46
- readonly value: "text";
47
- readonly key: "t";
48
- readonly numericKey: "8";
49
- readonly fillable: false;
50
- }, {
51
- readonly icon: import("react/jsx-runtime").JSX.Element;
52
- readonly value: "image";
53
- readonly key: null;
54
- readonly numericKey: "9";
55
- readonly fillable: false;
56
- }, {
57
- readonly icon: import("react/jsx-runtime").JSX.Element;
58
- readonly value: "eraser";
59
- readonly key: "e";
60
- readonly numericKey: "0";
61
- readonly fillable: false;
62
- }];
63
- export declare const getToolbarTools: (app: AppClassProperties) => readonly [{
64
- readonly icon: import("react/jsx-runtime").JSX.Element;
65
- readonly value: "selection";
66
- readonly key: "v";
67
- readonly numericKey: "1";
68
- readonly fillable: true;
69
- }, {
70
- readonly icon: import("react/jsx-runtime").JSX.Element;
71
- readonly value: "rectangle";
72
- readonly key: "r";
73
- readonly numericKey: "2";
74
- readonly fillable: true;
75
- }, {
76
- readonly icon: import("react/jsx-runtime").JSX.Element;
77
- readonly value: "diamond";
78
- readonly key: "d";
79
- readonly numericKey: "3";
80
- readonly fillable: true;
81
- }, {
82
- readonly icon: import("react/jsx-runtime").JSX.Element;
83
- readonly value: "ellipse";
84
- readonly key: "o";
85
- readonly numericKey: "4";
86
- readonly fillable: true;
87
- }, {
88
- readonly icon: import("react/jsx-runtime").JSX.Element;
89
- readonly value: "arrow";
90
- readonly key: "a";
91
- readonly numericKey: "5";
92
- readonly fillable: true;
93
- }, {
94
- readonly icon: import("react/jsx-runtime").JSX.Element;
95
- readonly value: "line";
96
- readonly key: "l";
97
- readonly numericKey: "6";
98
- readonly fillable: true;
99
- }, {
100
- readonly icon: import("react/jsx-runtime").JSX.Element;
101
- readonly value: "freedraw";
102
- readonly key: readonly ["p", "x"];
103
- readonly numericKey: "7";
104
- readonly fillable: false;
105
- }, {
106
- readonly icon: import("react/jsx-runtime").JSX.Element;
107
- readonly value: "text";
108
- readonly key: "t";
109
- readonly numericKey: "8";
110
- readonly fillable: false;
111
- }, {
112
- readonly icon: import("react/jsx-runtime").JSX.Element;
113
- readonly value: "image";
114
- readonly key: null;
115
- readonly numericKey: "9";
116
- readonly fillable: false;
117
- }, {
118
- readonly icon: import("react/jsx-runtime").JSX.Element;
119
- readonly value: "eraser";
120
- readonly key: "e";
121
- readonly numericKey: "0";
122
- readonly fillable: false;
123
- }] | readonly [{
124
- readonly value: "lasso";
125
- readonly icon: import("react/jsx-runtime").JSX.Element;
126
- readonly key: "v";
127
- readonly numericKey: "1";
128
- readonly fillable: true;
129
- }, ...({
130
- readonly icon: import("react/jsx-runtime").JSX.Element;
131
- readonly value: "selection";
132
- readonly key: "v";
133
- readonly numericKey: "1";
134
- readonly fillable: true;
135
- } | {
136
- readonly icon: import("react/jsx-runtime").JSX.Element;
137
- readonly value: "rectangle";
138
- readonly key: "r";
139
- readonly numericKey: "2";
140
- readonly fillable: true;
141
- } | {
142
- readonly icon: import("react/jsx-runtime").JSX.Element;
143
- readonly value: "diamond";
144
- readonly key: "d";
145
- readonly numericKey: "3";
146
- readonly fillable: true;
147
- } | {
148
- readonly icon: import("react/jsx-runtime").JSX.Element;
149
- readonly value: "ellipse";
150
- readonly key: "o";
151
- readonly numericKey: "4";
152
- readonly fillable: true;
153
- } | {
154
- readonly icon: import("react/jsx-runtime").JSX.Element;
155
- readonly value: "arrow";
156
- readonly key: "a";
157
- readonly numericKey: "5";
158
- readonly fillable: true;
159
- } | {
160
- readonly icon: import("react/jsx-runtime").JSX.Element;
161
- readonly value: "line";
162
- readonly key: "l";
163
- readonly numericKey: "6";
164
- readonly fillable: true;
165
- } | {
166
- readonly icon: import("react/jsx-runtime").JSX.Element;
167
- readonly value: "freedraw";
168
- readonly key: readonly ["p", "x"];
169
- readonly numericKey: "7";
170
- readonly fillable: false;
171
- } | {
172
- readonly icon: import("react/jsx-runtime").JSX.Element;
173
- readonly value: "text";
174
- readonly key: "t";
175
- readonly numericKey: "8";
176
- readonly fillable: false;
177
- } | {
178
- readonly icon: import("react/jsx-runtime").JSX.Element;
179
- readonly value: "image";
180
- readonly key: null;
181
- readonly numericKey: "9";
182
- readonly fillable: false;
183
- } | {
184
- readonly icon: import("react/jsx-runtime").JSX.Element;
185
- readonly value: "eraser";
186
- readonly key: "e";
187
- readonly numericKey: "0";
188
- readonly fillable: false;
189
- })[]];
190
- export declare const findShapeByKey: (key: string, app: AppClassProperties) => "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "lasso" | "eraser" | null;
@@ -1,58 +0,0 @@
1
- import type { JSX } from "react";
2
- declare const Center: {
3
- ({ children }: {
4
- children?: React.ReactNode;
5
- }): import("react/jsx-runtime").JSX.Element;
6
- displayName: string;
7
- Logo: {
8
- ({ children }: {
9
- children?: React.ReactNode;
10
- }): import("react/jsx-runtime").JSX.Element;
11
- displayName: string;
12
- };
13
- Heading: {
14
- ({ children }: {
15
- children: React.ReactNode;
16
- }): import("react/jsx-runtime").JSX.Element;
17
- displayName: string;
18
- };
19
- Menu: {
20
- ({ children }: {
21
- children?: React.ReactNode;
22
- }): import("react/jsx-runtime").JSX.Element;
23
- displayName: string;
24
- };
25
- MenuItem: {
26
- ({ onSelect, children, icon, shortcut, className, ...props }: {
27
- onSelect: () => void;
28
- children: React.ReactNode;
29
- icon?: JSX.Element;
30
- shortcut?: string | null;
31
- } & React.ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
32
- displayName: string;
33
- };
34
- MenuItemLink: {
35
- ({ children, href, icon, shortcut, className, ...props }: {
36
- children: React.ReactNode;
37
- href: string;
38
- icon?: JSX.Element;
39
- shortcut?: string | null;
40
- } & React.AnchorHTMLAttributes<HTMLAnchorElement>): import("react/jsx-runtime").JSX.Element;
41
- displayName: string;
42
- };
43
- MenuItemHelp: {
44
- (): import("react/jsx-runtime").JSX.Element;
45
- displayName: string;
46
- };
47
- MenuItemLoadScene: {
48
- (): import("react/jsx-runtime").JSX.Element | null;
49
- displayName: string;
50
- };
51
- MenuItemLiveCollaborationTrigger: {
52
- ({ onSelect, }: {
53
- onSelect: () => any;
54
- }): import("react/jsx-runtime").JSX.Element;
55
- displayName: string;
56
- };
57
- };
58
- export { Center };
@@ -1,19 +0,0 @@
1
- declare const MenuHint: {
2
- ({ children }: {
3
- children?: React.ReactNode;
4
- }): import("react/jsx-runtime").JSX.Element;
5
- displayName: string;
6
- };
7
- declare const ToolbarHint: {
8
- ({ children }: {
9
- children?: React.ReactNode;
10
- }): import("react/jsx-runtime").JSX.Element;
11
- displayName: string;
12
- };
13
- declare const HelpHint: {
14
- ({ children }: {
15
- children?: React.ReactNode;
16
- }): import("react/jsx-runtime").JSX.Element;
17
- displayName: string;
18
- };
19
- export { HelpHint, MenuHint, ToolbarHint };