@excalidraw/excalidraw 0.18.0-817d8c5 → 0.18.0-8608d7b

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 (306) hide show
  1. package/CHANGELOG.md +11 -11
  2. package/dist/dev/chunk-CP5DND7P.js +7 -0
  3. package/dist/dev/chunk-CP5DND7P.js.map +7 -0
  4. package/dist/dev/chunk-FB2NA5UG.js +4132 -0
  5. package/dist/dev/chunk-FB2NA5UG.js.map +7 -0
  6. package/dist/dev/{chunk-LMHBUWQS.js → chunk-PWQMCSHA.js} +27 -8
  7. package/dist/dev/chunk-PWQMCSHA.js.map +7 -0
  8. package/dist/dev/chunk-YMRX7R7U.js +5671 -0
  9. package/dist/dev/chunk-YMRX7R7U.js.map +7 -0
  10. package/dist/dev/data/{image-V26YBSDB.js → image-L23D26XS.js} +3 -3
  11. package/dist/dev/index.css +3945 -3493
  12. package/dist/dev/index.css.map +3 -3
  13. package/dist/dev/index.js +33090 -24527
  14. package/dist/dev/index.js.map +4 -4
  15. package/dist/dev/locales/{en-OZCJJ2HN.js → en-V3NQTBPG.js} +2 -2
  16. package/dist/dev/subset-shared.chunk.js +2 -2
  17. package/dist/dev/subset-worker.chunk.js +2 -2
  18. package/dist/prod/chunk-A66AFZZU.js +7 -0
  19. package/dist/prod/chunk-GF46JCB3.js +12 -0
  20. package/dist/prod/chunk-HT4FKTIQ.js +4 -0
  21. package/dist/prod/chunk-LS7FJGPW.js +86 -0
  22. package/dist/prod/data/image-NWF7UX55.js +1 -0
  23. package/dist/prod/index.css +1 -1
  24. package/dist/prod/index.js +27 -16
  25. package/dist/prod/locales/{en-B4ZKOASM.js → en-LQE6K457.js} +1 -1
  26. package/dist/prod/subset-shared.chunk.js +1 -1
  27. package/dist/prod/subset-worker.chunk.js +1 -1
  28. package/dist/types/{excalidraw/binaryheap.d.ts → common/src/binary-heap.d.ts} +1 -1
  29. package/dist/types/{excalidraw → common/src}/colors.d.ts +1 -0
  30. package/dist/types/{excalidraw → common/src}/constants.d.ts +52 -12
  31. package/dist/types/{excalidraw → common/src}/emitter.d.ts +1 -1
  32. package/dist/types/{excalidraw/fonts/FontMetadata.d.ts → common/src/font-metadata.d.ts} +15 -5
  33. package/dist/types/common/src/index.d.ts +12 -0
  34. package/dist/types/{excalidraw → common/src}/points.d.ts +2 -0
  35. package/dist/types/common/src/promise-pool.d.ts +6 -0
  36. package/dist/types/{excalidraw → common/src}/utility-types.d.ts +5 -0
  37. package/dist/types/{excalidraw → common/src}/utils.d.ts +25 -11
  38. package/dist/types/{excalidraw/scene → element/src}/Scene.d.ts +19 -18
  39. package/dist/types/element/src/align.d.ts +8 -0
  40. package/dist/types/{excalidraw/element → element/src}/binding.d.ts +30 -19
  41. package/dist/types/{excalidraw/element → element/src}/bounds.d.ts +20 -7
  42. package/dist/types/element/src/collision.d.ts +32 -0
  43. package/dist/types/{excalidraw/scene → element/src}/comparisons.d.ts +1 -1
  44. package/dist/types/{excalidraw/element → element/src}/cropElement.d.ts +1 -1
  45. package/dist/types/{excalidraw/change.d.ts → element/src/delta.d.ts} +78 -41
  46. package/dist/types/element/src/distance.d.ts +3 -0
  47. package/dist/types/{excalidraw → element/src}/distribute.d.ts +3 -2
  48. package/dist/types/{excalidraw/element → element/src}/dragElements.d.ts +5 -4
  49. package/dist/types/element/src/duplicate.d.ts +63 -0
  50. package/dist/types/{excalidraw/element → element/src}/elbowArrow.d.ts +1 -1
  51. package/dist/types/{excalidraw/element → element/src}/elementLink.d.ts +1 -1
  52. package/dist/types/element/src/embeddable.d.ts +10 -0
  53. package/dist/types/{excalidraw/element → element/src}/flowchart.d.ts +4 -3
  54. package/dist/types/{excalidraw → element/src}/fractionalIndex.d.ts +12 -3
  55. package/dist/types/{excalidraw → element/src}/frame.d.ts +8 -7
  56. package/dist/types/{excalidraw → element/src}/groups.d.ts +6 -5
  57. package/dist/types/{excalidraw/element → element/src}/heading.d.ts +1 -2
  58. package/dist/types/{excalidraw/element → element/src}/image.d.ts +2 -2
  59. package/dist/types/element/src/index.d.ts +58 -0
  60. package/dist/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +24 -37
  61. package/dist/types/element/src/mutateElement.d.ts +21 -0
  62. package/dist/types/{excalidraw/element → element/src}/newElement.d.ts +4 -43
  63. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  64. package/dist/types/{excalidraw/renderer → element/src}/renderElement.d.ts +6 -3
  65. package/dist/types/{excalidraw/element → element/src}/resizeElements.d.ts +7 -6
  66. package/dist/types/{excalidraw/element → element/src}/resizeTest.d.ts +4 -4
  67. package/dist/types/{excalidraw/scene → element/src}/selection.d.ts +13 -7
  68. package/dist/types/element/src/shape.d.ts +42 -0
  69. package/dist/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +1 -1
  70. package/dist/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +3 -3
  71. package/dist/types/element/src/store.d.ts +237 -0
  72. package/dist/types/{excalidraw/element → element/src}/textElement.d.ts +8 -7
  73. package/dist/types/{excalidraw/element → element/src}/transformHandles.d.ts +7 -7
  74. package/dist/types/{excalidraw/element → element/src}/typeChecks.d.ts +21 -3
  75. package/dist/types/{excalidraw/element → element/src}/types.d.ts +17 -4
  76. package/dist/types/element/src/utils.d.ts +31 -0
  77. package/dist/types/{excalidraw → element/src}/zindex.d.ts +5 -4
  78. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +115 -109
  79. package/dist/types/excalidraw/actions/actionAlign.d.ts +7 -7
  80. package/dist/types/excalidraw/actions/actionBoundText.d.ts +82 -78
  81. package/dist/types/excalidraw/actions/actionCanvas.d.ts +705 -502
  82. package/dist/types/excalidraw/actions/actionClipboard.d.ts +242 -228
  83. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +40 -38
  84. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +120 -113
  85. package/dist/types/excalidraw/actions/actionDistribute.d.ts +3 -3
  86. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +3 -7
  87. package/dist/types/excalidraw/actions/actionElementLink.d.ts +43 -41
  88. package/dist/types/excalidraw/actions/actionElementLock.d.ts +94 -92
  89. package/dist/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +40 -48
  90. package/dist/types/excalidraw/actions/actionExport.d.ts +405 -387
  91. package/dist/types/excalidraw/actions/actionFinalize.d.ts +112 -67
  92. package/dist/types/excalidraw/actions/actionFlip.d.ts +3 -3
  93. package/dist/types/excalidraw/actions/actionFrame.d.ts +276 -268
  94. package/dist/types/excalidraw/actions/actionGroup.d.ts +79 -75
  95. package/dist/types/excalidraw/actions/actionHistory.d.ts +2 -3
  96. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +568 -42
  97. package/dist/types/excalidraw/actions/actionLink.d.ts +41 -39
  98. package/dist/types/excalidraw/actions/actionMenu.d.ts +116 -110
  99. package/dist/types/excalidraw/actions/actionNavigate.d.ts +77 -73
  100. package/dist/types/excalidraw/actions/actionProperties.d.ts +571 -524
  101. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +41 -39
  102. package/dist/types/excalidraw/actions/actionStyles.d.ts +42 -40
  103. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  104. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +40 -38
  105. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +40 -38
  106. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +39 -209
  107. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +19 -0
  108. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +39 -38
  109. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +40 -39
  110. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +40 -39
  111. package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -8
  112. package/dist/types/excalidraw/actions/index.d.ts +2 -1
  113. package/dist/types/excalidraw/actions/manager.d.ts +2 -2
  114. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  115. package/dist/types/excalidraw/actions/types.d.ts +6 -5
  116. package/dist/types/excalidraw/animated-trail.d.ts +7 -1
  117. package/dist/types/excalidraw/appState.d.ts +42 -28
  118. package/dist/types/excalidraw/charts.d.ts +1 -1
  119. package/dist/types/excalidraw/clipboard.d.ts +71 -8
  120. package/dist/types/excalidraw/components/Actions.d.ts +19 -9
  121. package/dist/types/excalidraw/components/App.d.ts +58 -34
  122. package/dist/types/excalidraw/components/Avatar.d.ts +1 -1
  123. package/dist/types/excalidraw/components/ButtonIcon.d.ts +2 -1
  124. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -1
  125. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +10 -5
  126. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +1 -1
  127. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +1 -2
  128. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +6 -5
  129. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +4 -4
  130. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -3
  131. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +1 -1
  132. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +4 -4
  133. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -2
  134. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +2 -1
  135. package/dist/types/excalidraw/components/ConfirmDialog.d.ts +1 -1
  136. package/dist/types/excalidraw/components/ContextMenu.d.ts +2 -2
  137. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +23 -0
  138. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  139. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +2 -2
  140. package/dist/types/excalidraw/components/DialogActionButton.d.ts +1 -1
  141. package/dist/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +1 -1
  142. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +5 -4
  143. package/dist/types/excalidraw/components/Ellipsify.d.ts +4 -0
  144. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +1 -1
  145. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  146. package/dist/types/excalidraw/components/FixedSideContainer.d.ts +1 -1
  147. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
  148. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +3 -2
  149. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +3 -3
  150. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +4 -2
  151. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +1 -1
  152. package/dist/types/excalidraw/components/HintViewer.d.ts +1 -1
  153. package/dist/types/excalidraw/components/IconPicker.d.ts +1 -1
  154. package/dist/types/excalidraw/components/ImageExportDialog.d.ts +2 -2
  155. package/dist/types/excalidraw/components/InitializeApp.d.ts +1 -1
  156. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  157. package/dist/types/excalidraw/components/Island.d.ts +1 -1
  158. package/dist/types/excalidraw/components/JSONExportDialog.d.ts +2 -2
  159. package/dist/types/excalidraw/components/LayerUI.d.ts +5 -4
  160. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -1
  161. package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +1 -1
  162. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +4 -4
  163. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -2
  164. package/dist/types/excalidraw/components/LoadingMessage.d.ts +1 -1
  165. package/dist/types/excalidraw/components/MagicButton.d.ts +1 -1
  166. package/dist/types/excalidraw/components/MobileMenu.d.ts +5 -7
  167. package/dist/types/excalidraw/components/MobileToolBar.d.ts +11 -0
  168. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +1 -1
  169. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +2 -1
  170. package/dist/types/excalidraw/components/PublishLibrary.d.ts +1 -1
  171. package/dist/types/excalidraw/components/{ButtonIconSelect.d.ts → RadioSelection.d.ts} +1 -1
  172. package/dist/types/excalidraw/components/Range.d.ts +3 -3
  173. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  174. package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
  175. package/dist/types/excalidraw/components/Sidebar/common.d.ts +1 -1
  176. package/dist/types/excalidraw/components/Stack.d.ts +1 -1
  177. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  178. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +1 -1
  179. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +2 -1
  180. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  181. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +14 -4
  182. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +2 -2
  183. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  184. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +3 -3
  185. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +2 -2
  186. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  187. package/dist/types/excalidraw/components/Stats/Position.d.ts +2 -2
  188. package/dist/types/excalidraw/components/Stats/index.d.ts +2 -2
  189. package/dist/types/excalidraw/components/Stats/utils.d.ts +4 -11
  190. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -2
  191. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +1 -1
  192. package/dist/types/excalidraw/components/TextField.d.ts +2 -1
  193. package/dist/types/excalidraw/components/Toast.d.ts +1 -1
  194. package/dist/types/excalidraw/components/ToolButton.d.ts +2 -2
  195. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  196. package/dist/types/excalidraw/components/Tooltip.d.ts +1 -1
  197. package/dist/types/excalidraw/components/UnlockPopup.d.ts +8 -0
  198. package/dist/types/excalidraw/components/UserList.d.ts +1 -1
  199. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -3
  200. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -2
  201. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +3 -3
  202. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +5 -3
  203. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +2 -1
  204. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +2 -2
  205. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +1 -1
  206. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +5 -4
  207. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +3 -2
  208. package/dist/types/excalidraw/components/icons.d.ts +10 -1
  209. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
  210. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +4 -1
  211. package/dist/types/excalidraw/components/shapes.d.ts +190 -0
  212. package/dist/types/excalidraw/context/tunnels.d.ts +1 -1
  213. package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +1 -1
  214. package/dist/types/excalidraw/data/blob.d.ts +7 -11
  215. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  216. package/dist/types/excalidraw/data/index.d.ts +2 -2
  217. package/dist/types/excalidraw/data/json.d.ts +1 -1
  218. package/dist/types/excalidraw/data/library.d.ts +3 -3
  219. package/dist/types/excalidraw/data/reconcile.d.ts +3 -2
  220. package/dist/types/excalidraw/data/resave.d.ts +1 -1
  221. package/dist/types/excalidraw/data/restore.d.ts +6 -1
  222. package/dist/types/excalidraw/data/transform.d.ts +4 -4
  223. package/dist/types/excalidraw/data/types.d.ts +6 -3
  224. package/dist/types/excalidraw/editor-jotai.d.ts +6 -6
  225. package/dist/types/excalidraw/eraser/index.d.ts +12 -0
  226. package/dist/types/excalidraw/errors.d.ts +0 -3
  227. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -13
  228. package/dist/types/excalidraw/history.d.ts +31 -23
  229. package/dist/types/excalidraw/hooks/useEmitter.d.ts +1 -1
  230. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  231. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  232. package/dist/types/excalidraw/i18n.d.ts +1 -1
  233. package/dist/types/excalidraw/index.d.ts +18 -16
  234. package/dist/types/excalidraw/laser-trails.d.ts +1 -1
  235. package/dist/types/excalidraw/lasso/index.d.ts +16 -0
  236. package/dist/types/excalidraw/lasso/utils.d.ts +13 -0
  237. package/dist/types/excalidraw/renderer/helpers.d.ts +8 -3
  238. package/dist/types/excalidraw/renderer/staticScene.d.ts +4 -1
  239. package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +2 -2
  240. package/dist/types/excalidraw/scene/Renderer.d.ts +3 -4
  241. package/dist/types/excalidraw/scene/export.d.ts +1 -1
  242. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  243. package/dist/types/excalidraw/scene/scroll.d.ts +1 -1
  244. package/dist/types/excalidraw/scene/scrollbars.d.ts +2 -3
  245. package/dist/types/excalidraw/scene/types.d.ts +6 -4
  246. package/dist/types/excalidraw/snapping.d.ts +5 -6
  247. package/dist/types/excalidraw/types.d.ts +55 -26
  248. package/dist/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +4 -2
  249. package/dist/types/math/{angle.d.ts → src/angle.d.ts} +2 -0
  250. package/dist/types/math/src/constants.d.ts +3 -0
  251. package/dist/types/math/src/curve.d.ts +74 -0
  252. package/dist/types/math/{index.d.ts → src/index.d.ts} +1 -0
  253. package/dist/types/math/{point.d.ts → src/point.d.ts} +3 -3
  254. package/dist/types/math/{polygon.d.ts → src/polygon.d.ts} +1 -0
  255. package/dist/types/math/{rectangle.d.ts → src/rectangle.d.ts} +2 -0
  256. package/dist/types/math/{segment.d.ts → src/segment.d.ts} +2 -1
  257. package/dist/types/math/{types.d.ts → src/types.d.ts} +1 -0
  258. package/dist/types/math/{vector.d.ts → src/vector.d.ts} +8 -2
  259. package/dist/types/utils/{bbox.d.ts → src/bbox.d.ts} +1 -1
  260. package/dist/types/utils/{export.d.ts → src/export.d.ts} +2 -2
  261. package/dist/types/utils/{index.d.ts → src/index.d.ts} +1 -1
  262. package/dist/types/utils/{geometry → src}/shape.d.ts +2 -15
  263. package/dist/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +2 -2
  264. package/history.ts +148 -109
  265. package/package.json +26 -11
  266. package/dist/dev/chunk-3SN6HYVK.js +0 -25695
  267. package/dist/dev/chunk-3SN6HYVK.js.map +0 -7
  268. package/dist/dev/chunk-53KHN5WM.js +0 -7
  269. package/dist/dev/chunk-53KHN5WM.js.map +0 -7
  270. package/dist/dev/chunk-LMHBUWQS.js.map +0 -7
  271. package/dist/dev/chunk-OKSO7T74.js +0 -4132
  272. package/dist/dev/chunk-OKSO7T74.js.map +0 -7
  273. package/dist/prod/chunk-36CXSE6H.js +0 -34
  274. package/dist/prod/chunk-6U3AYISY.js +0 -12
  275. package/dist/prod/chunk-EIO257PC.js +0 -86
  276. package/dist/prod/chunk-G5N3DNGT.js +0 -7
  277. package/dist/prod/data/image-N4WCURRR.js +0 -1
  278. package/dist/types/excalidraw/align.d.ts +0 -7
  279. package/dist/types/excalidraw/components/ButtonSelect.d.ts +0 -9
  280. package/dist/types/excalidraw/element/collision.d.ts +0 -26
  281. package/dist/types/excalidraw/element/distance.d.ts +0 -3
  282. package/dist/types/excalidraw/element/index.d.ts +0 -26
  283. package/dist/types/excalidraw/element/mutateElement.d.ts +0 -13
  284. package/dist/types/excalidraw/element/utils.d.ts +0 -21
  285. package/dist/types/excalidraw/scene/Shape.d.ts +0 -17
  286. package/dist/types/excalidraw/scene/ShapeCache.d.ts +0 -25
  287. package/dist/types/excalidraw/shapes.d.ts +0 -85
  288. package/dist/types/excalidraw/store.d.ts +0 -129
  289. package/dist/types/excalidraw/visualdebug.d.ts +0 -41
  290. package/dist/types/math/curve.d.ts +0 -40
  291. package/dist/types/utils/collision.d.ts +0 -9
  292. /package/dist/dev/data/{image-V26YBSDB.js.map → image-L23D26XS.js.map} +0 -0
  293. /package/dist/dev/locales/{en-OZCJJ2HN.js.map → en-V3NQTBPG.js.map} +0 -0
  294. /package/dist/types/{excalidraw → common/src}/keys.d.ts +0 -0
  295. /package/dist/types/{excalidraw → common/src}/queue.d.ts +0 -0
  296. /package/dist/types/{excalidraw → common/src}/random.d.ts +0 -0
  297. /package/dist/types/{excalidraw/data → common/src}/url.d.ts +0 -0
  298. /package/dist/types/{excalidraw/element → element/src}/containerCache.d.ts +0 -0
  299. /package/dist/types/{excalidraw/element → element/src}/sortElements.d.ts +0 -0
  300. /package/dist/types/{excalidraw/element → element/src}/textMeasurements.d.ts +0 -0
  301. /package/dist/types/{excalidraw/element → element/src}/textWrapping.d.ts +0 -0
  302. /package/dist/types/math/{ellipse.d.ts → src/ellipse.d.ts} +0 -0
  303. /package/dist/types/math/{line.d.ts → src/line.d.ts} +0 -0
  304. /package/dist/types/math/{range.d.ts → src/range.d.ts} +0 -0
  305. /package/dist/types/math/{triangle.d.ts → src/triangle.d.ts} +0 -0
  306. /package/dist/types/math/{utils.d.ts → src/utils.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
- import type React from "react";
2
- import type { ExcalidrawElement, OrderedExcalidrawElement } from "../element/types";
1
+ import type { ExcalidrawElement, OrderedExcalidrawElement } from "@excalidraw/element/types";
2
+ import type { CaptureUpdateActionType } from "@excalidraw/element";
3
3
  import type { AppClassProperties, AppState, ExcalidrawProps, BinaryFiles, UIAppState } from "../types";
4
- import type { CaptureUpdateActionType } from "../store";
4
+ import type React from "react";
5
5
  export type ActionSource = "ui" | "keyboard" | "contextMenu" | "api" | "commandPalette";
6
6
  /** if false, the action should be prevented */
7
7
  export type ActionResult = {
@@ -14,7 +14,7 @@ export type ActionResult = {
14
14
  type ActionFn = (elements: readonly OrderedExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
15
15
  export type UpdaterFn = (res: ActionResult) => void;
16
16
  export type ActionFilterFn = (action: Action) => void;
17
- export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor" | "wrapSelectionInFrame";
17
+ export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeArrowProperties" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor" | "wrapSelectionInFrame" | "toggleLassoTool" | "toggleShapeSwitch" | "togglePolygon";
18
18
  export type PanelComponentProps = {
19
19
  elements: readonly ExcalidrawElement[];
20
20
  appState: AppState;
@@ -22,6 +22,7 @@ export type PanelComponentProps = {
22
22
  appProps: ExcalidrawProps;
23
23
  data?: Record<string, any>;
24
24
  app: AppClassProperties;
25
+ renderAction: (name: ActionName, data?: PanelComponentProps["data"]) => React.JSX.Element | null;
25
26
  };
26
27
  export interface Action {
27
28
  name: ActionName;
@@ -35,7 +36,7 @@ export interface Action {
35
36
  predicate?: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: ExcalidrawProps, app: AppClassProperties) => boolean;
36
37
  checked?: (appState: Readonly<AppState>) => boolean;
37
38
  trackEvent: false | {
38
- category: "toolbar" | "element" | "canvas" | "export" | "history" | "menu" | "collab" | "hyperlink" | "search_menu";
39
+ category: "toolbar" | "element" | "canvas" | "export" | "history" | "menu" | "collab" | "hyperlink" | "search_menu" | "shape_switch";
39
40
  action?: string;
40
41
  predicate?: (appState: Readonly<AppState>, elements: readonly ExcalidrawElement[], value: any) => boolean;
41
42
  };
@@ -1,3 +1,4 @@
1
+ import { LaserPointer } from "@excalidraw/laser-pointer";
1
2
  import type { LaserPointerOptions } from "@excalidraw/laser-pointer";
2
3
  import type { AnimationFrameHandler } from "./animation-frame-handler";
3
4
  import type App from "./components/App";
@@ -10,15 +11,18 @@ export interface Trail {
10
11
  }
11
12
  export interface AnimatedTrailOptions {
12
13
  fill: (trail: AnimatedTrail) => string;
14
+ stroke?: (trail: AnimatedTrail) => string;
15
+ animateTrail?: boolean;
13
16
  }
14
17
  export declare class AnimatedTrail implements Trail {
15
18
  private animationFrameHandler;
16
- private app;
19
+ protected app: App;
17
20
  private options;
18
21
  private currentTrail?;
19
22
  private pastTrails;
20
23
  private container?;
21
24
  private trailElement;
25
+ private trailAnimation?;
22
26
  constructor(animationFrameHandler: AnimationFrameHandler, app: App, options: Partial<LaserPointerOptions> & Partial<AnimatedTrailOptions>);
23
27
  get hasCurrentTrail(): boolean;
24
28
  hasLastPoint(x: number, y: number): boolean;
@@ -27,6 +31,8 @@ export declare class AnimatedTrail implements Trail {
27
31
  startPath(x: number, y: number): void;
28
32
  addPointToPath(x: number, y: number): void;
29
33
  endPath(): void;
34
+ getCurrentTrail(): LaserPointer | undefined;
35
+ clearTrails(): void;
30
36
  private update;
31
37
  private onFrame;
32
38
  private drawTrail;
@@ -1,17 +1,33 @@
1
1
  import type { AppState, NormalizedZoomValue } from "./types";
2
2
  export declare const getDefaultAppState: () => Omit<AppState, "offsetTop" | "offsetLeft" | "width" | "height">;
3
3
  export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>) => {
4
- zenModeEnabled?: boolean | undefined;
5
- gridModeEnabled?: boolean | undefined;
6
- objectsSnapModeEnabled?: boolean | undefined;
7
- theme?: import("./element/types").Theme | undefined;
4
+ viewBackgroundColor?: string | undefined;
8
5
  name?: string | null | undefined;
9
- currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
6
+ zoom?: Readonly<{
7
+ value: NormalizedZoomValue;
8
+ }> | undefined;
9
+ scrollX?: number | undefined;
10
+ scrollY?: number | undefined;
11
+ editingGroupId?: string | null | undefined;
12
+ selectedElementIds?: Readonly<{
13
+ [id: string]: true;
14
+ }> | undefined;
15
+ theme?: import("@excalidraw/element/types").Theme | undefined;
16
+ selectedGroupIds?: {
17
+ [groupId: string]: boolean;
18
+ } | undefined;
19
+ selectedLinearElement?: import("@excalidraw/element").LinearElementEditor | null | undefined;
20
+ zenModeEnabled?: boolean | undefined;
10
21
  showWelcomeScreen?: boolean | undefined;
11
22
  activeTool?: ({
12
23
  lastActiveTool: import("./types").ActiveTool | null;
13
24
  locked: boolean;
25
+ fromSelection: boolean;
14
26
  } & import("./types").ActiveTool) | undefined;
27
+ preferredSelectionTool?: {
28
+ type: "selection" | "lasso";
29
+ initialized: boolean;
30
+ } | undefined;
15
31
  penMode?: boolean | undefined;
16
32
  penDetected?: boolean | undefined;
17
33
  exportBackground?: boolean | undefined;
@@ -20,63 +36,61 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
20
36
  exportScale?: number | undefined;
21
37
  currentItemStrokeColor?: string | undefined;
22
38
  currentItemBackgroundColor?: string | undefined;
23
- currentItemFillStyle?: import("./element/types").FillStyle | undefined;
39
+ currentItemFillStyle?: import("@excalidraw/element/types").FillStyle | undefined;
24
40
  currentItemStrokeWidth?: number | undefined;
25
- currentItemStrokeStyle?: import("./element/types").StrokeStyle | undefined;
41
+ currentItemStrokeStyle?: import("@excalidraw/element/types").StrokeStyle | undefined;
26
42
  currentItemRoughness?: number | undefined;
27
43
  currentItemOpacity?: number | undefined;
28
44
  currentItemFontFamily?: number | undefined;
29
45
  currentItemFontSize?: number | undefined;
30
46
  currentItemTextAlign?: string | undefined;
31
- currentItemStartArrowhead?: import("./element/types").Arrowhead | null | undefined;
32
- currentItemEndArrowhead?: import("./element/types").Arrowhead | null | undefined;
33
- currentItemRoundness?: import("./element/types").StrokeRoundness | undefined;
34
- viewBackgroundColor?: string | undefined;
35
- scrollX?: number | undefined;
36
- scrollY?: number | undefined;
47
+ currentItemStartArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
48
+ currentItemEndArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
49
+ currentItemRoundness?: import("@excalidraw/element/types").StrokeRoundness | undefined;
50
+ currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
37
51
  cursorButton?: "up" | "down" | undefined;
38
52
  scrolledOutside?: boolean | undefined;
39
- zoom?: Readonly<{
40
- value: NormalizedZoomValue;
41
- }> | undefined;
42
53
  openMenu?: "canvas" | "shape" | null | undefined;
43
54
  openSidebar?: {
44
55
  name: string;
45
56
  tab?: string | undefined;
46
57
  } | null | undefined;
47
58
  defaultSidebarDockedPreference?: boolean | undefined;
48
- lastPointerDownWith?: import("./element/types").PointerType | undefined;
49
- selectedElementIds?: Readonly<{
50
- [id: string]: true;
51
- }> | undefined;
59
+ lastPointerDownWith?: import("@excalidraw/element/types").PointerType | undefined;
52
60
  previousSelectedElementIds?: {
53
61
  [id: string]: true;
54
62
  } | undefined;
55
63
  shouldCacheIgnoreZoom?: boolean | undefined;
56
64
  gridSize?: number | undefined;
57
65
  gridStep?: number | undefined;
58
- selectedGroupIds?: {
59
- [groupId: string]: boolean;
60
- } | undefined;
61
- editingGroupId?: string | null | undefined;
66
+ gridModeEnabled?: boolean | undefined;
62
67
  stats?: {
63
68
  open: boolean;
64
69
  panels: number;
65
70
  } | undefined;
66
- currentChartType?: import("./element/types").ChartType | undefined;
67
- selectedLinearElement?: import("./element/linearElementEditor").LinearElementEditor | null | undefined;
71
+ currentChartType?: import("@excalidraw/element/types").ChartType | undefined;
72
+ objectsSnapModeEnabled?: boolean | undefined;
73
+ lockedMultiSelections?: {
74
+ [groupId: string]: true;
75
+ } | undefined;
68
76
  };
69
77
  export declare const cleanAppStateForExport: (appState: Partial<AppState>) => {
70
- gridModeEnabled?: boolean | undefined;
71
78
  viewBackgroundColor?: string | undefined;
72
79
  gridSize?: number | undefined;
73
80
  gridStep?: number | undefined;
81
+ gridModeEnabled?: boolean | undefined;
82
+ lockedMultiSelections?: {
83
+ [groupId: string]: true;
84
+ } | undefined;
74
85
  };
75
86
  export declare const clearAppStateForDatabase: (appState: Partial<AppState>) => {
76
- gridModeEnabled?: boolean | undefined;
77
87
  viewBackgroundColor?: string | undefined;
78
88
  gridSize?: number | undefined;
79
89
  gridStep?: number | undefined;
90
+ gridModeEnabled?: boolean | undefined;
91
+ lockedMultiSelections?: {
92
+ [groupId: string]: true;
93
+ } | undefined;
80
94
  };
81
95
  export declare const isEraserActive: ({ activeTool, }: {
82
96
  activeTool: AppState["activeTool"];
@@ -1,4 +1,4 @@
1
- import type { NonDeletedExcalidrawElement } from "./element/types";
1
+ import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
2
2
  export type ChartElements = readonly NonDeletedExcalidrawElement[];
3
3
  export interface Spreadsheet {
4
4
  title: string | null;
@@ -1,7 +1,10 @@
1
- import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "./element/types";
2
- import type { BinaryFiles } from "./types";
1
+ import { ALLOWED_PASTE_MIME_TYPES } from "@excalidraw/common";
2
+ import type { ValueOf } from "@excalidraw/common/utility-types";
3
+ import type { IMAGE_MIME_TYPES, STRING_MIME_TYPES } from "@excalidraw/common";
4
+ import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
5
+ import type { FileSystemHandle } from "./data/filesystem";
3
6
  import type { Spreadsheet } from "./charts";
4
- import { ALLOWED_PASTE_MIME_TYPES } from "./constants";
7
+ import type { BinaryFiles } from "./types";
5
8
  export type PastedMixedContent = {
6
9
  type: "text" | "imageUrl";
7
10
  value: string;
@@ -21,6 +24,8 @@ export declare const probablySupportsClipboardWriteText: boolean;
21
24
  export declare const probablySupportsClipboardBlob: boolean;
22
25
  export declare const createPasteEvent: ({ types, files, }: {
23
26
  types?: {
27
+ "text/plain"?: string | File | undefined;
28
+ "text/html"?: string | File | undefined;
24
29
  "image/svg+xml"?: string | File | undefined;
25
30
  "image/png"?: string | File | undefined;
26
31
  "image/jpeg"?: string | File | undefined;
@@ -30,8 +35,6 @@ export declare const createPasteEvent: ({ types, files, }: {
30
35
  "image/x-icon"?: string | File | undefined;
31
36
  "image/avif"?: string | File | undefined;
32
37
  "image/jfif"?: string | File | undefined;
33
- "text/plain"?: string | File | undefined;
34
- "text/html"?: string | File | undefined;
35
38
  } | undefined;
36
39
  files?: File[] | undefined;
37
40
  }) => ClipboardEvent;
@@ -45,6 +48,8 @@ export declare const copyToClipboard: (elements: readonly NonDeletedExcalidrawEl
45
48
  * Will prompt user for permission if not granted.
46
49
  */
47
50
  export declare const readSystemClipboard: () => Promise<{
51
+ "text/plain"?: string | File | undefined;
52
+ "text/html"?: string | File | undefined;
48
53
  "image/svg+xml"?: string | File | undefined;
49
54
  "image/png"?: string | File | undefined;
50
55
  "image/jpeg"?: string | File | undefined;
@@ -54,13 +59,71 @@ export declare const readSystemClipboard: () => Promise<{
54
59
  "image/x-icon"?: string | File | undefined;
55
60
  "image/avif"?: string | File | undefined;
56
61
  "image/jfif"?: string | File | undefined;
57
- "text/plain"?: string | File | undefined;
58
- "text/html"?: string | File | undefined;
59
62
  }>;
63
+ type AllowedParsedDataTransferItem = {
64
+ type: ValueOf<typeof IMAGE_MIME_TYPES>;
65
+ kind: "file";
66
+ file: File;
67
+ fileHandle: FileSystemHandle | null;
68
+ } | {
69
+ type: ValueOf<typeof STRING_MIME_TYPES>;
70
+ kind: "string";
71
+ value: string;
72
+ };
73
+ type ParsedDataTransferItem = {
74
+ type: string;
75
+ kind: "file";
76
+ file: File;
77
+ fileHandle: FileSystemHandle | null;
78
+ } | {
79
+ type: string;
80
+ kind: "string";
81
+ value: string;
82
+ };
83
+ type ParsedDataTransferItemType<T extends AllowedParsedDataTransferItem["type"]> = AllowedParsedDataTransferItem & {
84
+ type: T;
85
+ };
86
+ export type ParsedDataTransferFile = Extract<AllowedParsedDataTransferItem, {
87
+ kind: "file";
88
+ }>;
89
+ type ParsedDataTranferList = ParsedDataTransferItem[] & {
90
+ /**
91
+ * Only allows filtering by known `string` data types, since `file`
92
+ * types can have multiple items of the same type (e.g. multiple image files)
93
+ * unlike `string` data transfer items.
94
+ */
95
+ findByType: typeof findDataTransferItemType;
96
+ /**
97
+ * Only allows filtering by known `string` data types, since `file`
98
+ * types can have multiple items of the same type (e.g. multiple image files)
99
+ * unlike `string` data transfer items.
100
+ */
101
+ getData: typeof getDataTransferItemData;
102
+ getFiles: typeof getDataTransferFiles;
103
+ };
104
+ declare const findDataTransferItemType: <T extends ValueOf<{
105
+ readonly text: "text/plain";
106
+ readonly html: "text/html";
107
+ readonly json: "application/json";
108
+ readonly excalidraw: "application/vnd.excalidraw+json";
109
+ readonly excalidrawlib: "application/vnd.excalidrawlib+json";
110
+ readonly excalidrawlibIds: "application/vnd.excalidrawlib.ids+json";
111
+ }>>(this: ParsedDataTranferList, type: T) => ParsedDataTransferItemType<T> | null;
112
+ declare const getDataTransferItemData: <T extends ValueOf<{
113
+ readonly text: "text/plain";
114
+ readonly html: "text/html";
115
+ readonly json: "application/json";
116
+ readonly excalidraw: "application/vnd.excalidraw+json";
117
+ readonly excalidrawlib: "application/vnd.excalidrawlib+json";
118
+ readonly excalidrawlibIds: "application/vnd.excalidrawlib.ids+json";
119
+ }>>(this: ParsedDataTranferList, type: T) => ParsedDataTransferItemType<ValueOf<typeof STRING_MIME_TYPES>>["value"] | null;
120
+ declare const getDataTransferFiles: (this: ParsedDataTranferList) => ParsedDataTransferFile[];
121
+ export declare const parseDataTransferEvent: (event: ClipboardEvent | DragEvent | React.DragEvent<HTMLDivElement>) => Promise<ParsedDataTranferList>;
60
122
  /**
61
123
  * Attempts to parse clipboard event.
62
124
  */
63
- export declare const parseClipboard: (event: ClipboardEvent, isPlainPaste?: boolean) => Promise<ClipboardData>;
125
+ export declare const parseClipboard: (dataList: ParsedDataTranferList, isPlainPaste?: boolean) => Promise<ClipboardData>;
64
126
  export declare const copyBlobToClipboardAsPng: (blob: Blob | Promise<Blob>) => Promise<void>;
65
127
  export declare const copyTextToSystemClipboard: (text: string | null, clipboardEvent?: ClipboardEvent | null) => Promise<void>;
128
+ export declare const isClipboardEvent: (event: React.SyntheticEvent | Event) => event is ClipboardEvent;
66
129
  export {};
@@ -1,7 +1,7 @@
1
- import type { ActionManager } from "../actions/manager";
2
- import type { ExcalidrawElement, NonDeletedElementsMap, NonDeletedSceneElementsMap } from "../element/types";
3
- import type { AppClassProperties, AppProps, UIAppState, Zoom } from "../types";
1
+ import type { ExcalidrawElement, NonDeletedElementsMap, NonDeletedSceneElementsMap } from "@excalidraw/element/types";
4
2
  import "./Actions.scss";
3
+ import type { AppClassProperties, AppProps, UIAppState, Zoom, AppState } from "../types";
4
+ import type { ActionManager } from "../actions/manager";
5
5
  export declare const canChangeStrokeColor: (appState: UIAppState, targetElements: ExcalidrawElement[]) => boolean;
6
6
  export declare const canChangeBackgroundColor: (appState: UIAppState, targetElements: ExcalidrawElement[]) => boolean;
7
7
  export declare const SelectedShapeActions: ({ appState, elementsMap, renderAction, app, }: {
@@ -10,9 +10,23 @@ export declare const SelectedShapeActions: ({ appState, elementsMap, renderActio
10
10
  renderAction: ActionManager["renderAction"];
11
11
  app: AppClassProperties;
12
12
  }) => import("react/jsx-runtime").JSX.Element;
13
- export declare const ShapesSwitcher: ({ activeTool, appState, app, UIOptions, }: {
14
- activeTool: UIAppState["activeTool"];
13
+ export declare const CompactShapeActions: ({ appState, elementsMap, renderAction, app, setAppState, }: {
14
+ appState: UIAppState;
15
+ elementsMap: NonDeletedElementsMap | NonDeletedSceneElementsMap;
16
+ renderAction: ActionManager["renderAction"];
17
+ app: AppClassProperties;
18
+ setAppState: React.Component<any, AppState>["setState"];
19
+ }) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const MobileShapeActions: ({ appState, elementsMap, renderAction, app, setAppState, }: {
15
21
  appState: UIAppState;
22
+ elementsMap: NonDeletedElementsMap | NonDeletedSceneElementsMap;
23
+ renderAction: ActionManager["renderAction"];
24
+ app: AppClassProperties;
25
+ setAppState: React.Component<any, AppState>["setState"];
26
+ }) => import("react/jsx-runtime").JSX.Element;
27
+ export declare const ShapesSwitcher: ({ activeTool, setAppState, app, UIOptions, }: {
28
+ activeTool: UIAppState["activeTool"];
29
+ setAppState: React.Component<any, AppState>["setState"];
16
30
  app: AppClassProperties;
17
31
  UIOptions: AppProps["UIOptions"];
18
32
  }) => import("react/jsx-runtime").JSX.Element;
@@ -28,7 +42,3 @@ export declare const ExitZenModeAction: ({ actionManager, showExitZenModeBtn, }:
28
42
  actionManager: ActionManager;
29
43
  showExitZenModeBtn: boolean;
30
44
  }) => import("react/jsx-runtime").JSX.Element;
31
- export declare const FinalizeAction: ({ renderAction, className, }: {
32
- renderAction: ActionManager["renderAction"];
33
- className?: string | undefined;
34
- }) => import("react/jsx-runtime").JSX.Element;
@@ -1,23 +1,22 @@
1
1
  import React from "react";
2
- import type { RoughCanvas } from "roughjs/bin/canvas";
2
+ import { type EXPORT_IMAGE_TYPES, Emitter } from "@excalidraw/common";
3
+ import { LinearElementEditor, FlowChartCreator, Scene, Store, type ElementUpdate, StoreDelta, type ApplyToOptions } from "@excalidraw/element";
4
+ import type { ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered, SceneElementsMap } from "@excalidraw/element/types";
5
+ import type { Mutable } from "@excalidraw/common/utility-types";
3
6
  import { ActionManager } from "../actions/manager";
4
- import type { ActionResult } from "../actions/types";
5
- import { type EXPORT_IMAGE_TYPES } from "../constants";
6
- import type { ExportedElements } from "../data";
7
- import { LinearElementEditor } from "../element/linearElementEditor";
8
- import type { ExcalidrawElement, NonDeleted, InitializedExcalidrawImageElement, ExcalidrawImageElement, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered } from "../element/types";
7
+ import { AnimationFrameHandler } from "../animation-frame-handler";
9
8
  import { History } from "../history";
10
- import Scene from "../scene/Scene";
11
- import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, Device, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, GenerateDiagramToCode, NullableGridSize, Offsets } from "../types";
12
- import type { FileSystemHandle } from "../data/filesystem";
13
9
  import { Fonts } from "../fonts";
10
+ import { type WritableAtom } from "../editor-jotai";
14
11
  import { Renderer } from "../scene/Renderer";
15
- import { Emitter } from "../emitter";
16
- import { Store } from "../store";
17
- import { AnimationFrameHandler } from "../animation-frame-handler";
18
- import { AnimatedTrail } from "../animated-trail";
19
12
  import { LaserTrails } from "../laser-trails";
20
- import { FlowChartCreator } from "../element/flowchart";
13
+ import { LassoTrail } from "../lasso";
14
+ import { EraserTrail } from "../eraser";
15
+ import type { ExportedElements } from "../data";
16
+ import type { FileSystemHandle } from "../data/filesystem";
17
+ import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, Device, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, GenerateDiagramToCode, NullableGridSize, Offsets } from "../types";
18
+ import type { RoughCanvas } from "roughjs/bin/canvas";
19
+ import type { ActionResult } from "../actions/types";
21
20
  export declare const ExcalidrawContainerContext: React.Context<{
22
21
  container: HTMLDivElement | null;
23
22
  id: string | null;
@@ -79,6 +78,7 @@ declare class App extends React.Component<AppProps, AppState> {
79
78
  /** embeds that have been inserted to DOM (as a perf optim, we don't want to
80
79
  * insert to DOM before user initially scrolls to them) */
81
80
  private initializedEmbeds;
81
+ private handleToastClose;
82
82
  private elementsPendingErasure;
83
83
  flowChartCreator: FlowChartCreator;
84
84
  private flowChartNavigator;
@@ -96,11 +96,13 @@ declare class App extends React.Component<AppProps, AppState> {
96
96
  };
97
97
  animationFrameHandler: AnimationFrameHandler;
98
98
  laserTrails: LaserTrails;
99
- eraserTrail: AnimatedTrail;
99
+ eraserTrail: EraserTrail;
100
+ lassoTrail: LassoTrail;
100
101
  onChangeEmitter: Emitter<[elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles]>;
101
102
  onPointerDownEmitter: Emitter<[activeTool: {
102
103
  lastActiveTool: import("../types").ActiveTool | null;
103
104
  locked: boolean;
105
+ fromSelection: boolean;
104
106
  } & import("../types").ActiveTool, pointerDownState: Readonly<{
105
107
  origin: Readonly<{
106
108
  x: number;
@@ -121,7 +123,7 @@ declare class App extends React.Component<AppProps, AppState> {
121
123
  };
122
124
  originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
123
125
  resize: {
124
- handleType: import("../element/transformHandles").MaybeTransformHandleType;
126
+ handleType: import("@excalidraw/element").MaybeTransformHandleType;
125
127
  isResizing: boolean;
126
128
  offset: {
127
129
  x: number;
@@ -134,7 +136,10 @@ declare class App extends React.Component<AppProps, AppState> {
134
136
  };
135
137
  };
136
138
  hit: {
137
- element: NonDeleted<ExcalidrawElement> | null;
139
+ element: NonDeleted<ExcalidrawElement> | null; /**
140
+ * Returns gridSize taking into account `gridModeEnabled`.
141
+ * If disabled, returns null.
142
+ */
138
143
  allHitElements: NonDeleted<ExcalidrawElement>[];
139
144
  wasAddedToSelection: boolean;
140
145
  hasBeenDuplicated: boolean;
@@ -147,6 +152,11 @@ declare class App extends React.Component<AppProps, AppState> {
147
152
  x: number;
148
153
  y: number;
149
154
  } | null;
155
+ origin: {
156
+ x: number;
157
+ y: number;
158
+ };
159
+ blockDragging: boolean;
150
160
  };
151
161
  eventListeners: {
152
162
  onMove: {
@@ -165,6 +175,7 @@ declare class App extends React.Component<AppProps, AppState> {
165
175
  onPointerUpEmitter: Emitter<[activeTool: {
166
176
  lastActiveTool: import("../types").ActiveTool | null;
167
177
  locked: boolean;
178
+ fromSelection: boolean;
168
179
  } & import("../types").ActiveTool, pointerDownState: Readonly<{
169
180
  origin: Readonly<{
170
181
  x: number;
@@ -185,7 +196,7 @@ declare class App extends React.Component<AppProps, AppState> {
185
196
  };
186
197
  originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
187
198
  resize: {
188
- handleType: import("../element/transformHandles").MaybeTransformHandleType;
199
+ handleType: import("@excalidraw/element").MaybeTransformHandleType;
189
200
  isResizing: boolean;
190
201
  offset: {
191
202
  x: number;
@@ -198,7 +209,10 @@ declare class App extends React.Component<AppProps, AppState> {
198
209
  };
199
210
  };
200
211
  hit: {
201
- element: NonDeleted<ExcalidrawElement> | null;
212
+ element: NonDeleted<ExcalidrawElement> | null; /**
213
+ * Returns gridSize taking into account `gridModeEnabled`.
214
+ * If disabled, returns null.
215
+ */
202
216
  allHitElements: NonDeleted<ExcalidrawElement>[];
203
217
  wasAddedToSelection: boolean;
204
218
  hasBeenDuplicated: boolean;
@@ -211,6 +225,11 @@ declare class App extends React.Component<AppProps, AppState> {
211
225
  x: number;
212
226
  y: number;
213
227
  } | null;
228
+ origin: {
229
+ x: number;
230
+ y: number;
231
+ };
232
+ blockDragging: boolean;
214
233
  };
215
234
  eventListeners: {
216
235
  onMove: {
@@ -233,6 +252,7 @@ declare class App extends React.Component<AppProps, AppState> {
233
252
  missingPointerEventCleanupEmitter: Emitter<[event: PointerEvent | null]>;
234
253
  onRemoveEventListenersEmitter: Emitter<[]>;
235
254
  constructor(props: AppProps);
255
+ updateEditorAtom: <Value, Args extends unknown[], Result>(atom: WritableAtom<Value, Args, Result>, ...args: Args) => Result;
236
256
  private onWindowMessage;
237
257
  private cacheEmbeddableRef;
238
258
  /**
@@ -253,7 +273,8 @@ declare class App extends React.Component<AppProps, AppState> {
253
273
  private toggleOverscrollBehavior;
254
274
  render(): import("react/jsx-runtime").JSX.Element;
255
275
  focusContainer: AppClassProperties["focusContainer"];
256
- getSceneElementsIncludingDeleted: () => readonly import("../element/types").OrderedExcalidrawElement[];
276
+ getSceneElementsIncludingDeleted: () => readonly import("@excalidraw/element/types").OrderedExcalidrawElement[];
277
+ getSceneElementsMapIncludingDeleted: () => Map<string, Ordered<ExcalidrawElement>> & import("@excalidraw/common/utility-types").MakeBrand<"SceneElementsMap">;
257
278
  getSceneElements: () => readonly Ordered<NonDeletedExcalidrawElement>[];
258
279
  onInsertElements: (elements: readonly ExcalidrawElement[]) => void;
259
280
  onExportImage: (type: keyof typeof EXPORT_IMAGE_TYPES, elements: ExportedElements, opts: {
@@ -285,6 +306,7 @@ declare class App extends React.Component<AppProps, AppState> {
285
306
  private resetScene;
286
307
  private initializeScene;
287
308
  private isMobileBreakpoint;
309
+ private isTabletBreakpoint;
288
310
  private refreshViewportBreakpoints;
289
311
  private refreshEditorBreakpoints;
290
312
  private clearImageShapeCache;
@@ -303,6 +325,7 @@ declare class App extends React.Component<AppProps, AppState> {
303
325
  private static resetTapTwice;
304
326
  private onTouchStart;
305
327
  private onTouchEnd;
328
+ private insertClipboardContent;
306
329
  pasteFromClipboard: (event: ClipboardEvent) => Promise<void>;
307
330
  addElementsFromPasteOrLibrary: (opts: {
308
331
  elements: readonly ExcalidrawElement[];
@@ -384,6 +407,8 @@ declare class App extends React.Component<AppProps, AppState> {
384
407
  */
385
408
  captureUpdate?: SceneData["captureUpdate"];
386
409
  }) => void;
410
+ applyDeltas: (deltas: StoreDelta[], options?: ApplyToOptions) => [SceneElementsMap, AppState, boolean];
411
+ mutateElement: <TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, informMutation?: boolean) => TElement;
387
412
  private triggerRender;
388
413
  /**
389
414
  * @returns whether the menu was toggled on or off
@@ -398,17 +423,15 @@ declare class App extends React.Component<AppProps, AppState> {
398
423
  private onKeyDown;
399
424
  private onKeyUp;
400
425
  private isToolSupported;
401
- setActiveTool: (tool: (({
402
- type: Exclude<ToolType, "image">;
426
+ setActiveTool: (tool: ({
427
+ type: ToolType;
403
428
  } | {
404
- type: Extract<ToolType, "image">;
405
- insertOnCanvasDirectly?: boolean;
406
- }) | {
407
429
  type: "custom";
408
430
  customType: string;
409
431
  }) & {
410
432
  locked?: boolean;
411
- }) => void;
433
+ fromSelection?: boolean;
434
+ }, keepSelection?: boolean) => void;
412
435
  setOpenDialog: (dialogType: AppState["openDialog"]) => void;
413
436
  private setCursor;
414
437
  private resetCursor;
@@ -428,7 +451,7 @@ declare class App extends React.Component<AppProps, AppState> {
428
451
  private getTextElementAtPosition;
429
452
  private getElementAtPosition;
430
453
  private getElementsAtPosition;
431
- private getElementHitThreshold;
454
+ getElementHitThreshold(element: ExcalidrawElement): number;
432
455
  private hitElement;
433
456
  private getTextBindableContainerAtPosition;
434
457
  private startTextEditing;
@@ -476,7 +499,7 @@ declare class App extends React.Component<AppProps, AppState> {
476
499
  sceneY: number;
477
500
  link: string;
478
501
  }) => NonDeleted<ExcalidrawEmbeddableElement> | undefined;
479
- private createImageElement;
502
+ private newImagePlaceholder;
480
503
  private handleLinearElementOnPointerDown;
481
504
  private getCurrentItemRoundness;
482
505
  private createGenericElementOnPointerDown;
@@ -492,12 +515,13 @@ declare class App extends React.Component<AppProps, AppState> {
492
515
  private eraseElements;
493
516
  private initializeImage;
494
517
  /**
495
- * inserts image into elements array and rerenders
518
+ * use during async image initialization,
519
+ * when the placeholder image could have been modified in the meantime,
520
+ * and when you don't want to loose those modifications
496
521
  */
497
- insertImageElement: (imageElement: ExcalidrawImageElement, imageFile: File, showCursorImagePreview?: boolean) => Promise<NonDeleted<InitializedExcalidrawImageElement> | null | undefined>;
498
- private setImagePreviewCursor;
499
- private onImageAction;
500
- initializeImageDimensions: (imageElement: ExcalidrawImageElement, forceNaturalSize?: boolean) => void;
522
+ private getLatestInitializedImageElement;
523
+ private onImageToolbarButtonClick;
524
+ private getImageNaturalDimensions;
501
525
  /** updates image cache, refreshing updated elements and/or setting status
502
526
  to error for images that fail during <img> element creation */
503
527
  private updateImageCache;
@@ -508,9 +532,9 @@ declare class App extends React.Component<AppProps, AppState> {
508
532
  private scheduleImageRefresh;
509
533
  private updateBindingEnabledOnPointerMove;
510
534
  private maybeSuggestBindingAtCursor;
511
- private maybeSuggestBindingsForLinearElementAtCoords;
512
535
  private clearSelection;
513
536
  private handleInteractiveCanvasRef;
537
+ private insertImages;
514
538
  private handleAppOnDrop;
515
539
  loadFileToCanvas: (file: File, fileHandle: FileSystemHandle | null) => Promise<void>;
516
540
  private handleCanvasContextMenu;
@@ -1,5 +1,5 @@
1
- import "./Avatar.scss";
2
1
  import React from "react";
2
+ import "./Avatar.scss";
3
3
  type AvatarProps = {
4
4
  onClick: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
5
5
  color: string;
@@ -1,5 +1,5 @@
1
- import type { JSX } from "react";
2
1
  import "./ButtonIcon.scss";
2
+ import type { JSX } from "react";
3
3
  interface ButtonIconProps {
4
4
  icon: JSX.Element;
5
5
  title: string;
@@ -10,6 +10,7 @@ interface ButtonIconProps {
10
10
  /** include standalone style (could interfere with parent styles) */
11
11
  standalone?: boolean;
12
12
  onClick: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
13
+ style?: React.CSSProperties;
13
14
  }
14
15
  export declare const ButtonIcon: import("react").ForwardRefExoticComponent<ButtonIconProps & import("react").RefAttributes<HTMLButtonElement>>;
15
16
  export {};
@@ -4,6 +4,7 @@ interface ColorInputProps {
4
4
  onChange: (color: string) => void;
5
5
  label: string;
6
6
  colorPickerType: ColorPickerType;
7
+ placeholder?: string;
7
8
  }
8
- export declare const ColorInput: ({ color, onChange, label, colorPickerType, }: ColorInputProps) => import("react/jsx-runtime").JSX.Element;
9
+ export declare const ColorInput: ({ color, onChange, label, colorPickerType, placeholder, }: ColorInputProps) => import("react/jsx-runtime").JSX.Element;
9
10
  export {};