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

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/CHANGELOG.md +11 -11
  2. package/dist/dev/{chunk-LMHBUWQS.js → chunk-CARD3WJZ.js} +10 -4
  3. package/dist/dev/chunk-CARD3WJZ.js.map +7 -0
  4. package/dist/dev/{chunk-3SN6HYVK.js → chunk-ETWEPOFC.js} +15663 -22657
  5. package/dist/dev/chunk-ETWEPOFC.js.map +7 -0
  6. package/dist/dev/chunk-FB2NA5UG.js +4132 -0
  7. package/dist/dev/chunk-FB2NA5UG.js.map +7 -0
  8. package/dist/dev/{chunk-53KHN5WM.js → chunk-RS23HYC4.js} +2 -2
  9. package/dist/dev/{chunk-53KHN5WM.js.map → chunk-RS23HYC4.js.map} +1 -1
  10. package/dist/dev/data/{image-V26YBSDB.js → image-AYLHSOBV.js} +3 -3
  11. package/dist/dev/index.css +3093 -3055
  12. package/dist/dev/index.css.map +3 -3
  13. package/dist/dev/index.js +32056 -23232
  14. package/dist/dev/index.js.map +4 -4
  15. package/dist/dev/locales/{en-OZCJJ2HN.js → en-E3O5XSXJ.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-6BSJPDKJ.js +33 -0
  19. package/dist/prod/{chunk-6U3AYISY.js → chunk-FGHASORR.js} +4 -4
  20. package/dist/prod/chunk-LS7FJGPW.js +86 -0
  21. package/dist/prod/{chunk-G5N3DNGT.js → chunk-SBKTMZM7.js} +1 -1
  22. package/dist/prod/data/image-VAYKYPXV.js +1 -0
  23. package/dist/prod/index.css +1 -1
  24. package/dist/prod/index.js +19 -15
  25. package/dist/prod/locales/{en-B4ZKOASM.js → en-44IKVKYT.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 +11 -6
  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 +22 -12
  38. package/dist/types/{excalidraw/scene → element/src}/Scene.d.ts +12 -15
  39. package/dist/types/{excalidraw/scene → element/src}/Shape.d.ts +2 -2
  40. package/dist/types/{excalidraw/scene → element/src}/ShapeCache.d.ts +4 -4
  41. package/dist/types/element/src/align.d.ts +7 -0
  42. package/dist/types/{excalidraw/element → element/src}/binding.d.ts +24 -16
  43. package/dist/types/{excalidraw/element → element/src}/bounds.d.ts +9 -4
  44. package/dist/types/{excalidraw/element → element/src}/collision.d.ts +3 -3
  45. package/dist/types/{excalidraw/scene → element/src}/comparisons.d.ts +1 -1
  46. package/dist/types/{excalidraw/change.d.ts → element/src/delta.d.ts} +41 -36
  47. package/dist/types/{excalidraw → element/src}/distribute.d.ts +1 -1
  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 +5 -2
  55. package/dist/types/{excalidraw → element/src}/frame.d.ts +8 -7
  56. package/dist/types/{excalidraw → element/src}/groups.d.ts +5 -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 +16 -0
  60. package/dist/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +16 -20
  61. package/dist/types/{excalidraw/element → element/src}/mutateElement.d.ts +11 -3
  62. package/dist/types/{excalidraw/element → element/src}/newElement.d.ts +4 -44
  63. package/dist/types/{excalidraw/renderer → element/src}/renderElement.d.ts +3 -3
  64. package/dist/types/{excalidraw/element → element/src}/resizeElements.d.ts +6 -6
  65. package/dist/types/{excalidraw/element → element/src}/resizeTest.d.ts +4 -4
  66. package/dist/types/{excalidraw/scene → element/src}/selection.d.ts +13 -2
  67. package/dist/types/element/src/shapes.d.ts +23 -0
  68. package/dist/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +1 -1
  69. package/dist/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +1 -2
  70. package/dist/types/element/src/store.d.ts +227 -0
  71. package/dist/types/{excalidraw/element → element/src}/textElement.d.ts +8 -7
  72. package/dist/types/{excalidraw/element → element/src}/transformHandles.d.ts +7 -7
  73. package/dist/types/{excalidraw/element → element/src}/typeChecks.d.ts +5 -2
  74. package/dist/types/{excalidraw/element → element/src}/types.d.ts +9 -2
  75. package/dist/types/element/src/zindex.d.ts +7 -0
  76. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +88 -103
  77. package/dist/types/excalidraw/actions/actionAlign.d.ts +15 -15
  78. package/dist/types/excalidraw/actions/actionBoundText.d.ts +64 -74
  79. package/dist/types/excalidraw/actions/actionCanvas.d.ts +608 -497
  80. package/dist/types/excalidraw/actions/actionClipboard.d.ts +188 -218
  81. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +31 -36
  82. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +89 -104
  83. package/dist/types/excalidraw/actions/actionDistribute.d.ts +7 -7
  84. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +5 -9
  85. package/dist/types/excalidraw/actions/actionElementLink.d.ts +34 -39
  86. package/dist/types/excalidraw/actions/actionElementLock.d.ts +65 -76
  87. package/dist/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +31 -46
  88. package/dist/types/excalidraw/actions/actionExport.d.ts +342 -387
  89. package/dist/types/excalidraw/actions/actionFinalize.d.ts +52 -62
  90. package/dist/types/excalidraw/actions/actionFlip.d.ts +7 -7
  91. package/dist/types/excalidraw/actions/actionFrame.d.ts +234 -254
  92. package/dist/types/excalidraw/actions/actionGroup.d.ts +65 -75
  93. package/dist/types/excalidraw/actions/actionHistory.d.ts +2 -3
  94. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +32 -37
  95. package/dist/types/excalidraw/actions/actionLink.d.ts +34 -39
  96. package/dist/types/excalidraw/actions/actionMenu.d.ts +91 -106
  97. package/dist/types/excalidraw/actions/actionNavigate.d.ts +59 -69
  98. package/dist/types/excalidraw/actions/actionProperties.d.ts +396 -471
  99. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +33 -38
  100. package/dist/types/excalidraw/actions/actionStyles.d.ts +37 -42
  101. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  102. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +33 -38
  103. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +33 -38
  104. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +32 -209
  105. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +19 -0
  106. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +32 -38
  107. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +33 -39
  108. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +33 -39
  109. package/dist/types/excalidraw/actions/actionZindex.d.ts +16 -16
  110. package/dist/types/excalidraw/actions/index.d.ts +1 -0
  111. package/dist/types/excalidraw/actions/manager.d.ts +2 -2
  112. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  113. package/dist/types/excalidraw/actions/types.d.ts +5 -5
  114. package/dist/types/excalidraw/animated-trail.d.ts +7 -1
  115. package/dist/types/excalidraw/appState.d.ts +34 -33
  116. package/dist/types/excalidraw/charts.d.ts +1 -1
  117. package/dist/types/excalidraw/clipboard.d.ts +7 -7
  118. package/dist/types/excalidraw/components/Actions.d.ts +3 -3
  119. package/dist/types/excalidraw/components/App.d.ts +38 -20
  120. package/dist/types/excalidraw/components/Avatar.d.ts +1 -1
  121. package/dist/types/excalidraw/components/ButtonIcon.d.ts +1 -1
  122. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +4 -4
  123. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +1 -2
  124. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -2
  125. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +1 -1
  126. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +1 -1
  127. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +3 -3
  128. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +1 -1
  129. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -1
  130. package/dist/types/excalidraw/components/ConfirmDialog.d.ts +1 -1
  131. package/dist/types/excalidraw/components/ContextMenu.d.ts +2 -2
  132. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +49 -0
  133. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  134. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +2 -2
  135. package/dist/types/excalidraw/components/DialogActionButton.d.ts +1 -1
  136. package/dist/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +1 -1
  137. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +5 -4
  138. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  139. package/dist/types/excalidraw/components/FixedSideContainer.d.ts +1 -1
  140. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
  141. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +1 -1
  142. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +3 -3
  143. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +1 -1
  144. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +1 -1
  145. package/dist/types/excalidraw/components/HintViewer.d.ts +1 -1
  146. package/dist/types/excalidraw/components/IconPicker.d.ts +1 -1
  147. package/dist/types/excalidraw/components/ImageExportDialog.d.ts +2 -2
  148. package/dist/types/excalidraw/components/InitializeApp.d.ts +1 -1
  149. package/dist/types/excalidraw/components/Island.d.ts +1 -1
  150. package/dist/types/excalidraw/components/JSONExportDialog.d.ts +2 -2
  151. package/dist/types/excalidraw/components/LayerUI.d.ts +3 -3
  152. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -1
  153. package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +1 -1
  154. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +3 -3
  155. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -2
  156. package/dist/types/excalidraw/components/LoadingMessage.d.ts +1 -1
  157. package/dist/types/excalidraw/components/MagicButton.d.ts +1 -1
  158. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -3
  159. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +1 -1
  160. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  161. package/dist/types/excalidraw/components/PublishLibrary.d.ts +1 -1
  162. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  163. package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
  164. package/dist/types/excalidraw/components/Sidebar/common.d.ts +1 -1
  165. package/dist/types/excalidraw/components/Stack.d.ts +1 -1
  166. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  167. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +1 -1
  168. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +2 -1
  169. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  170. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +3 -3
  171. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +2 -2
  172. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  173. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +3 -3
  174. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +2 -2
  175. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  176. package/dist/types/excalidraw/components/Stats/Position.d.ts +2 -2
  177. package/dist/types/excalidraw/components/Stats/index.d.ts +2 -2
  178. package/dist/types/excalidraw/components/Stats/utils.d.ts +4 -11
  179. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  180. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +1 -1
  181. package/dist/types/excalidraw/components/TextField.d.ts +1 -1
  182. package/dist/types/excalidraw/components/Toast.d.ts +1 -1
  183. package/dist/types/excalidraw/components/ToolButton.d.ts +2 -2
  184. package/dist/types/excalidraw/components/Tooltip.d.ts +1 -1
  185. package/dist/types/excalidraw/components/UserList.d.ts +1 -1
  186. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -3
  187. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -2
  188. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +3 -3
  189. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +1 -1
  190. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +2 -2
  191. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +1 -1
  192. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +5 -4
  193. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  194. package/dist/types/excalidraw/components/icons.d.ts +2 -1
  195. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
  196. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +4 -1
  197. package/dist/types/excalidraw/components/shapes.d.ts +62 -0
  198. package/dist/types/excalidraw/context/tunnels.d.ts +1 -1
  199. package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +1 -1
  200. package/dist/types/excalidraw/data/blob.d.ts +4 -4
  201. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  202. package/dist/types/excalidraw/data/index.d.ts +2 -2
  203. package/dist/types/excalidraw/data/json.d.ts +1 -1
  204. package/dist/types/excalidraw/data/library.d.ts +3 -3
  205. package/dist/types/excalidraw/data/reconcile.d.ts +2 -2
  206. package/dist/types/excalidraw/data/resave.d.ts +1 -1
  207. package/dist/types/excalidraw/data/restore.d.ts +1 -1
  208. package/dist/types/excalidraw/data/transform.d.ts +4 -4
  209. package/dist/types/excalidraw/data/types.d.ts +3 -3
  210. package/dist/types/excalidraw/editor-jotai.d.ts +6 -6
  211. package/dist/types/excalidraw/eraser/index.d.ts +14 -0
  212. package/dist/types/excalidraw/errors.d.ts +0 -3
  213. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -13
  214. package/dist/types/excalidraw/history.d.ts +15 -23
  215. package/dist/types/excalidraw/hooks/useEmitter.d.ts +1 -1
  216. package/dist/types/excalidraw/i18n.d.ts +1 -1
  217. package/dist/types/excalidraw/index.d.ts +16 -15
  218. package/dist/types/excalidraw/laser-trails.d.ts +1 -1
  219. package/dist/types/excalidraw/lasso/index.d.ts +15 -0
  220. package/dist/types/excalidraw/lasso/utils.d.ts +12 -0
  221. package/dist/types/excalidraw/renderer/helpers.d.ts +7 -2
  222. package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +2 -2
  223. package/dist/types/excalidraw/scene/Renderer.d.ts +3 -3
  224. package/dist/types/excalidraw/scene/export.d.ts +1 -1
  225. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  226. package/dist/types/excalidraw/scene/scroll.d.ts +1 -1
  227. package/dist/types/excalidraw/scene/scrollbars.d.ts +2 -3
  228. package/dist/types/excalidraw/scene/types.d.ts +6 -4
  229. package/dist/types/excalidraw/snapping.d.ts +5 -6
  230. package/dist/types/excalidraw/types.d.ts +31 -18
  231. package/dist/types/excalidraw/visualdebug.d.ts +2 -2
  232. package/dist/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +4 -2
  233. package/dist/types/math/{curve.d.ts → src/curve.d.ts} +2 -0
  234. package/dist/types/math/{point.d.ts → src/point.d.ts} +2 -2
  235. package/dist/types/math/{polygon.d.ts → src/polygon.d.ts} +1 -0
  236. package/dist/types/math/{segment.d.ts → src/segment.d.ts} +1 -1
  237. package/dist/types/math/{types.d.ts → src/types.d.ts} +1 -0
  238. package/dist/types/math/{vector.d.ts → src/vector.d.ts} +4 -0
  239. package/dist/types/utils/{bbox.d.ts → src/bbox.d.ts} +1 -1
  240. package/dist/types/utils/{collision.d.ts → src/collision.d.ts} +2 -3
  241. package/dist/types/utils/{export.d.ts → src/export.d.ts} +2 -2
  242. package/dist/types/utils/{index.d.ts → src/index.d.ts} +1 -1
  243. package/dist/types/utils/{geometry → src}/shape.d.ts +2 -15
  244. package/dist/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +2 -2
  245. package/history.ts +70 -94
  246. package/package.json +16 -4
  247. package/dist/dev/chunk-3SN6HYVK.js.map +0 -7
  248. package/dist/dev/chunk-LMHBUWQS.js.map +0 -7
  249. package/dist/dev/chunk-OKSO7T74.js +0 -4132
  250. package/dist/dev/chunk-OKSO7T74.js.map +0 -7
  251. package/dist/prod/chunk-36CXSE6H.js +0 -34
  252. package/dist/prod/chunk-EIO257PC.js +0 -86
  253. package/dist/prod/data/image-N4WCURRR.js +0 -1
  254. package/dist/types/excalidraw/align.d.ts +0 -7
  255. package/dist/types/excalidraw/element/index.d.ts +0 -26
  256. package/dist/types/excalidraw/shapes.d.ts +0 -85
  257. package/dist/types/excalidraw/store.d.ts +0 -129
  258. package/dist/types/excalidraw/zindex.d.ts +0 -6
  259. package/dist/dev/data/{image-V26YBSDB.js.map → image-AYLHSOBV.js.map} +0 -0
  260. package/dist/dev/locales/{en-OZCJJ2HN.js.map → en-E3O5XSXJ.js.map} +0 -0
  261. package/dist/types/{excalidraw → common/src}/keys.d.ts +0 -0
  262. package/dist/types/{excalidraw → common/src}/queue.d.ts +0 -0
  263. package/dist/types/{excalidraw → common/src}/random.d.ts +0 -0
  264. package/dist/types/{excalidraw/data → common/src}/url.d.ts +0 -0
  265. package/dist/types/{excalidraw/element → element/src}/containerCache.d.ts +0 -0
  266. package/dist/types/{excalidraw/element → element/src}/cropElement.d.ts +0 -0
  267. package/dist/types/{excalidraw/element → element/src}/distance.d.ts +0 -0
  268. package/dist/types/{excalidraw/element → element/src}/sortElements.d.ts +0 -0
  269. package/dist/types/{excalidraw/element → element/src}/textMeasurements.d.ts +0 -0
  270. package/dist/types/{excalidraw/element → element/src}/textWrapping.d.ts +0 -0
  271. package/dist/types/{excalidraw/element → element/src}/utils.d.ts +1 -1
  272. /package/dist/types/math/{angle.d.ts → src/angle.d.ts} +0 -0
  273. /package/dist/types/math/{ellipse.d.ts → src/ellipse.d.ts} +0 -0
  274. /package/dist/types/math/{index.d.ts → src/index.d.ts} +0 -0
  275. /package/dist/types/math/{line.d.ts → src/line.d.ts} +0 -0
  276. /package/dist/types/math/{range.d.ts → src/range.d.ts} +0 -0
  277. /package/dist/types/math/{rectangle.d.ts → src/rectangle.d.ts} +0 -0
  278. /package/dist/types/math/{triangle.d.ts → src/triangle.d.ts} +0 -0
  279. /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/store";
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" | "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";
18
18
  export type PanelComponentProps = {
19
19
  elements: readonly ExcalidrawElement[];
20
20
  appState: AppState;
@@ -35,7 +35,7 @@ export interface Action {
35
35
  predicate?: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: ExcalidrawProps, app: AppClassProperties) => boolean;
36
36
  checked?: (appState: Readonly<AppState>) => boolean;
37
37
  trackEvent: false | {
38
- category: "toolbar" | "element" | "canvas" | "export" | "history" | "menu" | "collab" | "hyperlink" | "search_menu";
38
+ category: "toolbar" | "element" | "canvas" | "export" | "history" | "menu" | "collab" | "hyperlink" | "search_menu" | "shape_switch";
39
39
  action?: string;
40
40
  predicate?: (appState: Readonly<AppState>, elements: readonly ExcalidrawElement[], value: any) => boolean;
41
41
  };
@@ -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,80 +1,81 @@
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;
10
- showWelcomeScreen?: boolean | 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").LinearElementEditor | null | undefined;
20
+ zenModeEnabled?: boolean | undefined;
11
21
  activeTool?: ({
12
22
  lastActiveTool: import("./types").ActiveTool | null;
13
23
  locked: boolean;
24
+ fromSelection: boolean;
14
25
  } & import("./types").ActiveTool) | undefined;
26
+ gridModeEnabled?: boolean | undefined;
27
+ objectsSnapModeEnabled?: boolean | undefined;
28
+ shouldCacheIgnoreZoom?: boolean | undefined;
29
+ exportScale?: number | undefined;
30
+ gridSize?: number | undefined;
31
+ gridStep?: number | undefined;
32
+ showWelcomeScreen?: boolean | undefined;
15
33
  penMode?: boolean | undefined;
16
34
  penDetected?: boolean | undefined;
17
35
  exportBackground?: boolean | undefined;
18
36
  exportEmbedScene?: boolean | undefined;
19
37
  exportWithDarkMode?: boolean | undefined;
20
- exportScale?: number | undefined;
21
38
  currentItemStrokeColor?: string | undefined;
22
39
  currentItemBackgroundColor?: string | undefined;
23
- currentItemFillStyle?: import("./element/types").FillStyle | undefined;
40
+ currentItemFillStyle?: import("@excalidraw/element/types").FillStyle | undefined;
24
41
  currentItemStrokeWidth?: number | undefined;
25
- currentItemStrokeStyle?: import("./element/types").StrokeStyle | undefined;
42
+ currentItemStrokeStyle?: import("@excalidraw/element/types").StrokeStyle | undefined;
26
43
  currentItemRoughness?: number | undefined;
27
44
  currentItemOpacity?: number | undefined;
28
45
  currentItemFontFamily?: number | undefined;
29
46
  currentItemFontSize?: number | undefined;
30
47
  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;
48
+ currentItemStartArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
49
+ currentItemEndArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
50
+ currentItemRoundness?: import("@excalidraw/element/types").StrokeRoundness | undefined;
51
+ currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
37
52
  cursorButton?: "up" | "down" | undefined;
38
53
  scrolledOutside?: boolean | undefined;
39
- zoom?: Readonly<{
40
- value: NormalizedZoomValue;
41
- }> | undefined;
42
54
  openMenu?: "canvas" | "shape" | null | undefined;
43
55
  openSidebar?: {
44
56
  name: string;
45
57
  tab?: string | undefined;
46
58
  } | null | undefined;
47
59
  defaultSidebarDockedPreference?: boolean | undefined;
48
- lastPointerDownWith?: import("./element/types").PointerType | undefined;
49
- selectedElementIds?: Readonly<{
50
- [id: string]: true;
51
- }> | undefined;
60
+ lastPointerDownWith?: import("@excalidraw/element/types").PointerType | undefined;
52
61
  previousSelectedElementIds?: {
53
62
  [id: string]: true;
54
63
  } | undefined;
55
- shouldCacheIgnoreZoom?: boolean | undefined;
56
- gridSize?: number | undefined;
57
- gridStep?: number | undefined;
58
- selectedGroupIds?: {
59
- [groupId: string]: boolean;
60
- } | undefined;
61
- editingGroupId?: string | null | undefined;
62
64
  stats?: {
63
65
  open: boolean;
64
66
  panels: number;
65
67
  } | undefined;
66
- currentChartType?: import("./element/types").ChartType | undefined;
67
- selectedLinearElement?: import("./element/linearElementEditor").LinearElementEditor | null | undefined;
68
+ currentChartType?: import("@excalidraw/element/types").ChartType | undefined;
68
69
  };
69
70
  export declare const cleanAppStateForExport: (appState: Partial<AppState>) => {
70
- gridModeEnabled?: boolean | undefined;
71
71
  viewBackgroundColor?: string | undefined;
72
+ gridModeEnabled?: boolean | undefined;
72
73
  gridSize?: number | undefined;
73
74
  gridStep?: number | undefined;
74
75
  };
75
76
  export declare const clearAppStateForDatabase: (appState: Partial<AppState>) => {
76
- gridModeEnabled?: boolean | undefined;
77
77
  viewBackgroundColor?: string | undefined;
78
+ gridModeEnabled?: boolean | undefined;
78
79
  gridSize?: number | undefined;
79
80
  gridStep?: number | undefined;
80
81
  };
@@ -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,7 @@
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 { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
3
3
  import type { Spreadsheet } from "./charts";
4
- import { ALLOWED_PASTE_MIME_TYPES } from "./constants";
4
+ import type { BinaryFiles } from "./types";
5
5
  export type PastedMixedContent = {
6
6
  type: "text" | "imageUrl";
7
7
  value: string;
@@ -21,6 +21,8 @@ export declare const probablySupportsClipboardWriteText: boolean;
21
21
  export declare const probablySupportsClipboardBlob: boolean;
22
22
  export declare const createPasteEvent: ({ types, files, }: {
23
23
  types?: {
24
+ "text/plain"?: string | File | undefined;
25
+ "text/html"?: string | File | undefined;
24
26
  "image/svg+xml"?: string | File | undefined;
25
27
  "image/png"?: string | File | undefined;
26
28
  "image/jpeg"?: string | File | undefined;
@@ -30,8 +32,6 @@ export declare const createPasteEvent: ({ types, files, }: {
30
32
  "image/x-icon"?: string | File | undefined;
31
33
  "image/avif"?: string | File | undefined;
32
34
  "image/jfif"?: string | File | undefined;
33
- "text/plain"?: string | File | undefined;
34
- "text/html"?: string | File | undefined;
35
35
  } | undefined;
36
36
  files?: File[] | undefined;
37
37
  }) => ClipboardEvent;
@@ -45,6 +45,8 @@ export declare const copyToClipboard: (elements: readonly NonDeletedExcalidrawEl
45
45
  * Will prompt user for permission if not granted.
46
46
  */
47
47
  export declare const readSystemClipboard: () => Promise<{
48
+ "text/plain"?: string | File | undefined;
49
+ "text/html"?: string | File | undefined;
48
50
  "image/svg+xml"?: string | File | undefined;
49
51
  "image/png"?: string | File | undefined;
50
52
  "image/jpeg"?: string | File | undefined;
@@ -54,8 +56,6 @@ export declare const readSystemClipboard: () => Promise<{
54
56
  "image/x-icon"?: string | File | undefined;
55
57
  "image/avif"?: string | File | undefined;
56
58
  "image/jfif"?: string | File | undefined;
57
- "text/plain"?: string | File | undefined;
58
- "text/html"?: string | File | undefined;
59
59
  }>;
60
60
  /**
61
61
  * Attempts to parse clipboard event.
@@ -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 } 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, }: {
@@ -1,23 +1,26 @@
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 } from "@excalidraw/element/linearElementEditor";
4
+ import { FlowChartCreator } from "@excalidraw/element/flowchart";
5
+ import Scene from "@excalidraw/element/Scene";
6
+ import { Store } from "@excalidraw/element/store";
7
+ import type { ElementUpdate } from "@excalidraw/element/mutateElement";
8
+ import type { ExcalidrawElement, NonDeleted, InitializedExcalidrawImageElement, ExcalidrawImageElement, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered } from "@excalidraw/element/types";
9
+ import type { Mutable } from "@excalidraw/common/utility-types";
3
10
  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";
11
+ import { AnimationFrameHandler } from "../animation-frame-handler";
9
12
  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
13
  import { Fonts } from "../fonts";
14
+ import { type WritableAtom } from "../editor-jotai";
14
15
  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
16
  import { LaserTrails } from "../laser-trails";
20
- import { FlowChartCreator } from "../element/flowchart";
17
+ import { LassoTrail } from "../lasso";
18
+ import { EraserTrail } from "../eraser";
19
+ import type { ExportedElements } from "../data";
20
+ import type { FileSystemHandle } from "../data/filesystem";
21
+ import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, Device, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, GenerateDiagramToCode, NullableGridSize, Offsets } from "../types";
22
+ import type { RoughCanvas } from "roughjs/bin/canvas";
23
+ import type { ActionResult } from "../actions/types";
21
24
  export declare const ExcalidrawContainerContext: React.Context<{
22
25
  container: HTMLDivElement | null;
23
26
  id: string | null;
@@ -96,11 +99,13 @@ declare class App extends React.Component<AppProps, AppState> {
96
99
  };
97
100
  animationFrameHandler: AnimationFrameHandler;
98
101
  laserTrails: LaserTrails;
99
- eraserTrail: AnimatedTrail;
102
+ eraserTrail: EraserTrail;
103
+ lassoTrail: LassoTrail;
100
104
  onChangeEmitter: Emitter<[elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles]>;
101
105
  onPointerDownEmitter: Emitter<[activeTool: {
102
106
  lastActiveTool: import("../types").ActiveTool | null;
103
107
  locked: boolean;
108
+ fromSelection: boolean;
104
109
  } & import("../types").ActiveTool, pointerDownState: Readonly<{
105
110
  origin: Readonly<{
106
111
  x: number;
@@ -121,7 +126,7 @@ declare class App extends React.Component<AppProps, AppState> {
121
126
  };
122
127
  originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
123
128
  resize: {
124
- handleType: import("../element/transformHandles").MaybeTransformHandleType;
129
+ handleType: import("@excalidraw/element/transformHandles").MaybeTransformHandleType;
125
130
  isResizing: boolean;
126
131
  offset: {
127
132
  x: number;
@@ -147,6 +152,10 @@ 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
+ };
150
159
  };
151
160
  eventListeners: {
152
161
  onMove: {
@@ -165,6 +174,7 @@ declare class App extends React.Component<AppProps, AppState> {
165
174
  onPointerUpEmitter: Emitter<[activeTool: {
166
175
  lastActiveTool: import("../types").ActiveTool | null;
167
176
  locked: boolean;
177
+ fromSelection: boolean;
168
178
  } & import("../types").ActiveTool, pointerDownState: Readonly<{
169
179
  origin: Readonly<{
170
180
  x: number;
@@ -185,7 +195,7 @@ declare class App extends React.Component<AppProps, AppState> {
185
195
  };
186
196
  originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
187
197
  resize: {
188
- handleType: import("../element/transformHandles").MaybeTransformHandleType;
198
+ handleType: import("@excalidraw/element/transformHandles").MaybeTransformHandleType;
189
199
  isResizing: boolean;
190
200
  offset: {
191
201
  x: number;
@@ -211,6 +221,10 @@ declare class App extends React.Component<AppProps, AppState> {
211
221
  x: number;
212
222
  y: number;
213
223
  } | null;
224
+ origin: {
225
+ x: number;
226
+ y: number;
227
+ };
214
228
  };
215
229
  eventListeners: {
216
230
  onMove: {
@@ -233,6 +247,7 @@ declare class App extends React.Component<AppProps, AppState> {
233
247
  missingPointerEventCleanupEmitter: Emitter<[event: PointerEvent | null]>;
234
248
  onRemoveEventListenersEmitter: Emitter<[]>;
235
249
  constructor(props: AppProps);
250
+ updateEditorAtom: <Value, Args extends unknown[], Result>(atom: WritableAtom<Value, Args, Result>, ...args: Args) => Result;
236
251
  private onWindowMessage;
237
252
  private cacheEmbeddableRef;
238
253
  /**
@@ -253,7 +268,8 @@ declare class App extends React.Component<AppProps, AppState> {
253
268
  private toggleOverscrollBehavior;
254
269
  render(): import("react/jsx-runtime").JSX.Element;
255
270
  focusContainer: AppClassProperties["focusContainer"];
256
- getSceneElementsIncludingDeleted: () => readonly import("../element/types").OrderedExcalidrawElement[];
271
+ getSceneElementsIncludingDeleted: () => readonly import("@excalidraw/element/types").OrderedExcalidrawElement[];
272
+ getSceneElementsMapIncludingDeleted: () => Map<string, Ordered<ExcalidrawElement>> & import("@excalidraw/common/utility-types").MakeBrand<"SceneElementsMap">;
257
273
  getSceneElements: () => readonly Ordered<NonDeletedExcalidrawElement>[];
258
274
  onInsertElements: (elements: readonly ExcalidrawElement[]) => void;
259
275
  onExportImage: (type: keyof typeof EXPORT_IMAGE_TYPES, elements: ExportedElements, opts: {
@@ -384,6 +400,7 @@ declare class App extends React.Component<AppProps, AppState> {
384
400
  */
385
401
  captureUpdate?: SceneData["captureUpdate"];
386
402
  }) => void;
403
+ mutateElement: <TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, informMutation?: boolean) => TElement;
387
404
  private triggerRender;
388
405
  /**
389
406
  * @returns whether the menu was toggled on or off
@@ -408,7 +425,8 @@ declare class App extends React.Component<AppProps, AppState> {
408
425
  customType: string;
409
426
  }) & {
410
427
  locked?: boolean;
411
- }) => void;
428
+ fromSelection?: boolean;
429
+ }, keepSelection?: boolean) => void;
412
430
  setOpenDialog: (dialogType: AppState["openDialog"]) => void;
413
431
  private setCursor;
414
432
  private resetCursor;
@@ -428,7 +446,7 @@ declare class App extends React.Component<AppProps, AppState> {
428
446
  private getTextElementAtPosition;
429
447
  private getElementAtPosition;
430
448
  private getElementsAtPosition;
431
- private getElementHitThreshold;
449
+ getElementHitThreshold(): number;
432
450
  private hitElement;
433
451
  private getTextBindableContainerAtPosition;
434
452
  private startTextEditing;
@@ -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;
@@ -1,8 +1,8 @@
1
- import type { ExcalidrawElement } from "../../element/types";
2
- import type { AppState } from "../../types";
3
- import type { ColorPickerType } from "./colorPickerUtils";
4
- import type { ColorTuple, ColorPaletteCustom } from "../../colors";
1
+ import type { ColorTuple, ColorPaletteCustom } from "@excalidraw/common";
2
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
5
3
  import "./ColorPicker.scss";
4
+ import type { ColorPickerType } from "./colorPickerUtils";
5
+ import type { AppState } from "../../types";
6
6
  export declare const getColor: (color: string) => string | null;
7
7
  interface ColorPickerProps {
8
8
  type: ColorPickerType;
@@ -1,8 +1,7 @@
1
1
  interface HotkeyLabelProps {
2
2
  color: string;
3
3
  keyLabel: string | number;
4
- isCustomColor?: boolean;
5
4
  isShade?: boolean;
6
5
  }
7
- declare const HotkeyLabel: ({ color, keyLabel, isCustomColor, isShade, }: HotkeyLabelProps) => import("react/jsx-runtime").JSX.Element;
6
+ declare const HotkeyLabel: ({ color, keyLabel, isShade, }: HotkeyLabelProps) => import("react/jsx-runtime").JSX.Element;
8
7
  export default HotkeyLabel;
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import type { ExcalidrawElement } from "../../element/types";
2
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
3
+ import type { ColorPaletteCustom } from "@excalidraw/common";
3
4
  import type { ColorPickerType } from "./colorPickerUtils";
4
- import type { ColorPaletteCustom } from "../../colors";
5
5
  interface PickerProps {
6
6
  color: string;
7
7
  onChange: (color: string) => void;
@@ -1,4 +1,4 @@
1
- import type { ColorPaletteCustom } from "../../colors";
1
+ import type { ColorPaletteCustom } from "@excalidraw/common";
2
2
  interface PickerColorListProps {
3
3
  palette: ColorPaletteCustom;
4
4
  color: string;
@@ -1,4 +1,4 @@
1
- import type { ColorPaletteCustom } from "../../colors";
1
+ import type { ColorPaletteCustom } from "@excalidraw/common";
2
2
  interface ShadeListProps {
3
3
  hex: string;
4
4
  onChange: (color: string) => void;
@@ -1,5 +1,5 @@
1
- import type { ExcalidrawElement } from "../../element/types";
2
- import type { ColorPickerColor, ColorPaletteCustom } from "../../colors";
1
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
2
+ import type { ColorPickerColor, ColorPaletteCustom } from "@excalidraw/common";
3
3
  export declare const getColorNameAndShadeFromColor: ({ palette, color, }: {
4
4
  palette: ColorPaletteCustom;
5
5
  color: string;
@@ -17,5 +17,5 @@ export type ActiveColorPickerSectionAtomType = "custom" | "baseColors" | "shades
17
17
  export declare const activeColorPickerSectionAtom: import("jotai/vanilla/atom").PrimitiveAtom<ActiveColorPickerSectionAtomType> & {
18
18
  init: ActiveColorPickerSectionAtomType;
19
19
  };
20
- export declare const getContrastYIQ: (bgHex: string, isCustomColor: boolean) => "white" | "black";
20
+ export declare const isColorDark: (color: string, threshold?: number) => boolean;
21
21
  export type ColorPickerType = "canvasBackground" | "elementBackground" | "elementStroke";
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import type { ColorPaletteCustom } from "../../colors";
2
+ import type { ColorPaletteCustom } from "@excalidraw/common";
3
3
  import type { ActiveColorPickerSectionAtomType } from "./colorPickerUtils";
4
4
  interface ColorPickerKeyNavHandlerProps {
5
5
  event: React.KeyboardEvent;
@@ -1,6 +1,6 @@
1
- import type { CommandPaletteItem } from "./types";
2
1
  import * as defaultItems from "./defaultCommandPaletteItems";
3
2
  import "./CommandPalette.scss";
3
+ import type { CommandPaletteItem } from "./types";
4
4
  export declare const DEFAULT_CATEGORIES: {
5
5
  app: string;
6
6
  export: string;
@@ -1,5 +1,5 @@
1
- import type { DialogProps } from "./Dialog";
2
1
  import "./ConfirmDialog.scss";
2
+ import type { DialogProps } from "./Dialog";
3
3
  interface Props extends Omit<DialogProps, "onCloseRequest"> {
4
4
  onConfirm: () => void;
5
5
  onCancel: () => void;
@@ -1,7 +1,7 @@
1
+ import React from "react";
1
2
  import "./ContextMenu.scss";
2
- import type { Action } from "../actions/types";
3
3
  import type { ActionManager } from "../actions/manager";
4
- import React from "react";
4
+ import type { Action } from "../actions/types";
5
5
  export type ContextMenuItem = typeof CONTEXT_MENU_SEPARATOR | Action;
6
6
  export type ContextMenuItems = (ContextMenuItem | false | null | undefined)[];
7
7
  type ContextMenuProps = {
@@ -0,0 +1,49 @@
1
+ import type { ConvertibleGenericTypes, ConvertibleLinearTypes, ConvertibleTypes, ExcalidrawElbowArrowElement, ExcalidrawElement, ExcalidrawLinearElement, ExcalidrawTextContainer, ExcalidrawTextElementWithContainer } from "@excalidraw/element/types";
2
+ import type Scene from "@excalidraw/element/Scene";
3
+ import "./ConvertElementTypePopup.scss";
4
+ import type App from "./App";
5
+ export declare const convertElementTypePopupAtom: import("jotai/vanilla/atom").PrimitiveAtom<{
6
+ type: "panel";
7
+ } | null> & {
8
+ init: {
9
+ type: "panel";
10
+ } | null;
11
+ };
12
+ export declare const fontSize_conversionCacheAtom: import("jotai/vanilla/atom").PrimitiveAtom<{
13
+ [id: string]: {
14
+ fontSize: number;
15
+ elementType: ConvertibleGenericTypes;
16
+ };
17
+ } | null> & {
18
+ init: {
19
+ [id: string]: {
20
+ fontSize: number;
21
+ elementType: ConvertibleGenericTypes;
22
+ };
23
+ } | null;
24
+ };
25
+ export declare const linearElement_conversionCacheAtom: import("jotai/vanilla/atom").PrimitiveAtom<{
26
+ [id: string]: {
27
+ properties: Partial<ExcalidrawLinearElement> | Partial<ExcalidrawElbowArrowElement>;
28
+ initialType: ConvertibleLinearTypes;
29
+ };
30
+ } | null> & {
31
+ init: {
32
+ [id: string]: {
33
+ properties: Partial<ExcalidrawLinearElement> | Partial<ExcalidrawElbowArrowElement>;
34
+ initialType: ConvertibleLinearTypes;
35
+ };
36
+ } | null;
37
+ };
38
+ declare const ConvertElementTypePopup: ({ app }: {
39
+ app: App;
40
+ }) => import("react/jsx-runtime").JSX.Element;
41
+ export declare const adjustBoundTextSize: (container: ExcalidrawTextContainer, boundText: ExcalidrawTextElementWithContainer, scene: Scene) => void;
42
+ type ConversionType = "generic" | "linear" | null;
43
+ export declare const convertElementTypes: (app: App, { conversionType, nextType, direction, }: {
44
+ conversionType: ConversionType;
45
+ nextType?: ConvertibleTypes | undefined;
46
+ direction?: "left" | "right" | undefined;
47
+ }) => boolean;
48
+ export declare const getConversionTypeFromElements: (elements: ExcalidrawElement[]) => ConversionType;
49
+ export default ConvertElementTypePopup;
@@ -1,5 +1,5 @@
1
+ import type { Theme } from "@excalidraw/element/types";
1
2
  import "./ToolIcon.scss";
2
- import type { Theme } from "../element/types";
3
3
  export declare const DarkModeToggle: (props: {
4
4
  value: Theme;
5
5
  onChange: (value: Theme) => void;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
- import type { MarkOptional } from "../utility-types";
3
- import type { SidebarProps, SidebarTriggerProps } from "./Sidebar/common";
2
+ import type { MarkOptional } from "@excalidraw/common/utility-types";
4
3
  import "../components/dropdownMenu/DropdownMenu.scss";
4
+ import type { SidebarProps, SidebarTriggerProps } from "./Sidebar/common";
5
5
  export declare const DefaultSidebar: import("react").FC<Omit<MarkOptional<Omit<{
6
6
  name: string;
7
7
  children: import("react").ReactNode;
@@ -1,5 +1,5 @@
1
- import type { ReactNode } from "react";
2
1
  import "./DialogActionButton.scss";
2
+ import type { ReactNode } from "react";
3
3
  interface DialogActionButtonProps {
4
4
  label: string;
5
5
  children?: ReactNode;
@@ -1,4 +1,4 @@
1
- import type { ElementsMap, NonDeletedExcalidrawElement } from "./types";
1
+ import type { ElementsMap, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
2
2
  import "./ElementCanvasButtons.scss";
3
3
  export declare const ElementCanvasButtons: ({ children, element, elementsMap, }: {
4
4
  children: React.ReactNode;
@@ -1,10 +1,11 @@
1
- import type { AppProps, UIAppState } from "../types";
2
- import type { ElementsMap, ExcalidrawElement } from "../element/types";
1
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
2
+ import type Scene from "@excalidraw/element/Scene";
3
3
  import "./ElementLinkDialog.scss";
4
- declare const ElementLinkDialog: ({ sourceElementId, onClose, elementsMap, appState, generateLinkForSelection, }: {
4
+ import type { AppProps, UIAppState } from "../types";
5
+ declare const ElementLinkDialog: ({ sourceElementId, onClose, appState, scene, generateLinkForSelection, }: {
5
6
  sourceElementId: ExcalidrawElement["id"];
6
- elementsMap: ElementsMap;
7
7
  appState: UIAppState;
8
+ scene: Scene;
8
9
  onClose?: (() => void) | undefined;
9
10
  generateLinkForSelection: AppProps["generateLinkForSelection"];
10
11
  }) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
2
3
  import "./EyeDropper.scss";
3
4
  import type { ColorPickerType } from "./ColorPicker/colorPickerUtils";
4
- import type { ExcalidrawElement } from "../element/types";
5
5
  export type EyeDropperProperties = {
6
6
  keepOpenOnAlt: boolean;
7
7
  swapPreviewOnAlt?: boolean;