@excalidraw/element 0.18.0-508de2f3a → 0.18.0-51ca8ab

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 (297) hide show
  1. package/dist/dev/index.js +7356 -4244
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +20 -19
  4. package/dist/types/common/debug.d.ts +21 -0
  5. package/dist/types/common/src/appEventBus.d.ts +27 -0
  6. package/dist/types/common/src/bounds.d.ts +10 -0
  7. package/dist/types/common/src/colors.d.ts +59 -39
  8. package/dist/types/common/src/constants.d.ts +46 -33
  9. package/dist/types/common/src/editorInterface.d.ts +34 -0
  10. package/dist/types/common/src/font-metadata.d.ts +1 -3
  11. package/dist/types/common/src/index.d.ts +5 -0
  12. package/dist/types/common/src/keys.d.ts +1 -1
  13. package/dist/types/common/src/utility-types.d.ts +0 -1
  14. package/dist/types/common/src/utils.d.ts +46 -76
  15. package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
  16. package/dist/types/element/src/Scene.d.ts +10 -6
  17. package/dist/types/element/src/arrowheads.d.ts +3 -0
  18. package/dist/types/element/src/arrows/focus.d.ts +27 -0
  19. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  20. package/dist/types/element/src/binding.d.ts +67 -48
  21. package/dist/types/element/src/bounds.d.ts +25 -18
  22. package/dist/types/element/src/collision.d.ts +7 -2
  23. package/dist/types/element/src/comparisons.d.ts +8 -7
  24. package/dist/types/element/src/delta.d.ts +4 -5
  25. package/dist/types/element/src/distribute.d.ts +2 -1
  26. package/dist/types/element/src/dragElements.d.ts +3 -3
  27. package/dist/types/element/src/duplicate.d.ts +4 -3
  28. package/dist/types/element/src/elbowArrow.d.ts +2 -0
  29. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  30. package/dist/types/element/src/frame.d.ts +12 -7
  31. package/dist/types/element/src/heading.d.ts +2 -1
  32. package/dist/types/element/src/image.d.ts +1 -11
  33. package/dist/types/element/src/index.d.ts +5 -3
  34. package/dist/types/element/src/linearElementEditor.d.ts +23 -22
  35. package/dist/types/element/src/mutateElement.d.ts +5 -2
  36. package/dist/types/element/src/newElement.d.ts +7 -6
  37. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  38. package/dist/types/element/src/renderElement.d.ts +4 -7
  39. package/dist/types/element/src/resizeElements.d.ts +10 -10
  40. package/dist/types/element/src/resizeTest.d.ts +6 -5
  41. package/dist/types/element/src/selection.d.ts +10 -10
  42. package/dist/types/element/src/shape.d.ts +9 -8
  43. package/dist/types/element/src/store.d.ts +5 -0
  44. package/dist/types/element/src/textElement.d.ts +2 -2
  45. package/dist/types/element/src/textMeasurements.d.ts +1 -3
  46. package/dist/types/element/src/textWrapping.d.ts +26 -0
  47. package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
  48. package/dist/types/element/src/transformHandles.d.ts +8 -27
  49. package/dist/types/element/src/typeChecks.d.ts +5 -7
  50. package/dist/types/element/src/types.d.ts +18 -13
  51. package/dist/types/element/src/utils.d.ts +9 -4
  52. package/dist/types/element/src/visualdebug.d.ts +58 -0
  53. package/dist/types/element/src/zindex.d.ts +7 -1
  54. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +140 -174
  55. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
  56. package/dist/types/excalidraw/actions/actionBoundText.d.ts +100 -123
  57. package/dist/types/excalidraw/actions/actionCanvas.d.ts +520 -1193
  58. package/dist/types/excalidraw/actions/actionClipboard.d.ts +102 -866
  59. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +48 -60
  60. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +160 -198
  61. package/dist/types/excalidraw/actions/actionDeselect.d.ts +161 -0
  62. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  63. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -3
  64. package/dist/types/excalidraw/actions/actionElementLink.d.ts +40 -58
  65. package/dist/types/excalidraw/actions/actionElementLock.d.ts +98 -121
  66. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +49 -61
  67. package/dist/types/excalidraw/actions/actionExport.d.ts +179 -1407
  68. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -394
  69. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
  70. package/dist/types/excalidraw/actions/actionFrame.d.ts +292 -374
  71. package/dist/types/excalidraw/actions/actionGroup.d.ts +103 -134
  72. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +159 -208
  73. package/dist/types/excalidraw/actions/actionLink.d.ts +46 -58
  74. package/dist/types/excalidraw/actions/actionMenu.d.ts +39 -423
  75. package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -359
  76. package/dist/types/excalidraw/actions/actionProperties.d.ts +166 -2510
  77. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +51 -67
  78. package/dist/types/excalidraw/actions/actionStyles.d.ts +48 -59
  79. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  80. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +174 -0
  81. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +48 -60
  82. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +174 -0
  83. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +48 -60
  84. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +37 -55
  85. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  86. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +48 -60
  87. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +48 -60
  88. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +49 -61
  89. package/dist/types/excalidraw/actions/actionZindex.d.ts +2 -3
  90. package/dist/types/excalidraw/actions/index.d.ts +5 -2
  91. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  92. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  93. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  94. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  95. package/dist/types/excalidraw/appState.d.ts +24 -15
  96. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  97. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  98. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  99. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  100. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  101. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  102. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  103. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  104. package/dist/types/excalidraw/clipboard.d.ts +57 -19
  105. package/dist/types/excalidraw/components/Actions.d.ts +22 -5
  106. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  107. package/dist/types/excalidraw/components/App.d.ts +168 -103
  108. package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
  109. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  110. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  111. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
  112. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
  113. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
  114. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
  115. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -2
  116. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  117. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
  118. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  119. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +2 -4
  120. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +3 -3
  121. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  122. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  123. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  124. package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
  125. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  126. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -2
  127. package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
  128. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  129. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
  130. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  131. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  132. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  133. package/dist/types/excalidraw/components/IconPicker.d.ts +14 -9
  134. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  135. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  136. package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
  137. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  138. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  139. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
  140. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
  141. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
  142. package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
  143. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
  144. package/dist/types/excalidraw/components/MobileToolBar.d.ts +10 -0
  145. package/dist/types/excalidraw/components/Modal.d.ts +0 -1
  146. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
  147. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  148. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
  149. package/dist/types/excalidraw/components/Popover.d.ts +2 -1
  150. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +2 -1
  151. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  152. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  153. package/dist/types/excalidraw/components/Range.d.ts +10 -4
  154. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  155. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  156. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  157. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +16 -22
  158. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  159. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  160. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  161. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  162. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  163. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  164. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  165. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  166. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
  167. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  168. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  169. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  170. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
  171. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
  172. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
  173. package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
  174. package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
  175. package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
  176. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
  177. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  178. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
  179. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
  180. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +5 -2
  181. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  182. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  183. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  184. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  185. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  186. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  187. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
  188. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  189. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  190. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  191. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
  192. package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
  193. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
  194. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
  195. package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
  196. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
  197. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
  198. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
  199. package/dist/types/excalidraw/components/TextField.d.ts +1 -0
  200. package/dist/types/excalidraw/components/Toast.d.ts +11 -7
  201. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  202. package/dist/types/excalidraw/components/Trans.d.ts +2 -2
  203. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +8 -4
  204. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
  205. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  206. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +47 -35
  207. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -5
  208. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  209. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
  210. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  211. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
  212. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -2
  213. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  214. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  215. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  216. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  217. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  218. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  219. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +2 -2
  220. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  221. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  222. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  223. package/dist/types/excalidraw/components/icons.d.ts +51 -21
  224. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +24 -3
  225. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -35
  226. package/dist/types/excalidraw/components/shapes.d.ts +209 -1
  227. package/dist/types/excalidraw/data/blob.d.ts +331 -12
  228. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  229. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  230. package/dist/types/excalidraw/data/filesystem.d.ts +5 -7
  231. package/dist/types/excalidraw/data/index.d.ts +4 -5
  232. package/dist/types/excalidraw/data/json.d.ts +172 -4
  233. package/dist/types/excalidraw/data/library.d.ts +25 -10
  234. package/dist/types/excalidraw/data/resave.d.ts +7 -2
  235. package/dist/types/excalidraw/data/restore.d.ts +25 -10
  236. package/dist/types/excalidraw/data/types.d.ts +4 -1
  237. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  238. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  239. package/dist/types/excalidraw/errors.d.ts +14 -0
  240. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +2 -2
  241. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
  242. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  243. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  244. package/dist/types/excalidraw/i18n.d.ts +2 -2
  245. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  246. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  247. package/dist/types/excalidraw/renderer/animation.d.ts +16 -0
  248. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
  249. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
  250. package/dist/types/excalidraw/scene/Renderer.d.ts +428 -18
  251. package/dist/types/excalidraw/scene/export.d.ts +2 -2
  252. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  253. package/dist/types/excalidraw/scene/types.d.ts +22 -5
  254. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  255. package/dist/types/excalidraw/snapping.d.ts +5 -5
  256. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  257. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  258. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  259. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  260. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  261. package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
  262. package/dist/types/excalidraw/types.d.ts +290 -40
  263. package/dist/types/excalidraw/viewport.d.ts +316 -0
  264. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +7 -3
  265. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  266. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  267. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  268. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  269. package/dist/types/laser-pointer/src/state.d.ts +35 -0
  270. package/dist/types/math/src/constants.d.ts +0 -1
  271. package/dist/types/math/src/curve.d.ts +4 -1
  272. package/dist/types/math/src/point.d.ts +8 -2
  273. package/dist/types/math/src/polygon.d.ts +2 -2
  274. package/dist/types/math/src/range.d.ts +1 -3
  275. package/dist/types/math/src/segment.d.ts +4 -3
  276. package/dist/types/math/src/types.d.ts +25 -1
  277. package/dist/types/utils/src/export.d.ts +5 -5
  278. package/dist/types/utils/src/index.d.ts +1 -2
  279. package/dist/types/utils/src/shape.d.ts +6 -6
  280. package/package.json +10 -3
  281. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  282. package/dist/types/excalidraw/charts.d.ts +0 -27
  283. package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
  284. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -16
  285. package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
  286. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -9
  287. package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
  288. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -10
  289. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -58
  290. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -19
  291. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +0 -85
  292. package/dist/types/excalidraw/data/reconcile.d.ts +0 -7
  293. package/dist/types/excalidraw/index.d.ts +0 -47
  294. package/dist/types/excalidraw/polyfill.d.ts +0 -2
  295. package/dist/types/excalidraw/scene/scroll.d.ts +0 -23
  296. package/dist/types/utils/src/bbox.d.ts +0 -9
  297. package/dist/types/utils/src/withinBounds.d.ts +0 -19
@@ -1,39 +1,57 @@
1
1
  import React from "react";
2
- import { type EXPORT_IMAGE_TYPES, Emitter } from "@excalidraw/common";
3
- import { LinearElementEditor, FlowChartCreator, Scene, Store, type ElementUpdate, StoreDelta } from "@excalidraw/element";
4
- import type { ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered, OrderedExcalidrawElement, SceneElementsMap } from "@excalidraw/element/types";
2
+ import { AppEventBus, type EXPORT_IMAGE_TYPES, Emitter, type EditorInterface, type StylesPanelMode } 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
5
  import type { Mutable } from "@excalidraw/common/utility-types";
6
6
  import { ActionManager } from "../actions/manager";
7
- import { AnimationFrameHandler } from "../animation-frame-handler";
8
7
  import { History } from "../history";
9
8
  import { Fonts } from "../fonts";
10
9
  import { type WritableAtom } from "../editor-jotai";
11
10
  import { Renderer } from "../scene/Renderer";
12
- import { LaserTrails } from "../laser-trails";
11
+ import { type SetViewportOptions } from "../viewport";
12
+ import { LaserTrails } from "../laserTrails";
13
+ import { isOverScrollBars } from "../scene/scrollbars";
13
14
  import { LassoTrail } from "../lasso";
14
15
  import { EraserTrail } from "../eraser";
16
+ import { type OnStateChange } from "./AppStateObserver";
15
17
  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, ApplyDeltasOptions } from "../types";
18
+ import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, ExcalidrawImperativeAPIEventMap, GenerateDiagramToCode, NullableGridSize, Offsets, ViewportOffsetsOptions } from "../types";
18
19
  import type { RoughCanvas } from "roughjs/bin/canvas";
19
20
  import type { ActionResult } from "../actions/types";
21
+ declare const editorLifecycleEventBehavior: {
22
+ readonly "editor:mount": {
23
+ readonly cardinality: "once";
24
+ readonly replay: "last";
25
+ };
26
+ readonly "editor:initialize": {
27
+ readonly cardinality: "once";
28
+ readonly replay: "last";
29
+ };
30
+ readonly "editor:unmount": {
31
+ readonly cardinality: "once";
32
+ readonly replay: "last";
33
+ };
34
+ };
20
35
  export declare const ExcalidrawContainerContext: React.Context<{
21
36
  container: HTMLDivElement | null;
22
37
  id: string | null;
23
38
  }>;
39
+ export declare const ExcalidrawAPIContext: React.Context<ExcalidrawImperativeAPI | null>;
40
+ export declare const ExcalidrawAPISetContext: React.Context<((api: ExcalidrawImperativeAPI | null) => void) | null>;
24
41
  export declare const useApp: () => AppClassProperties;
25
42
  export declare const useAppProps: () => AppProps;
26
- export declare const useDevice: () => Readonly<{
27
- viewport: {
28
- isMobile: boolean;
29
- isLandscape: boolean;
30
- };
31
- editor: {
32
- isMobile: boolean;
33
- canFitSidebar: boolean;
34
- };
43
+ export declare const useEditorInterface: () => Readonly<{
44
+ formFactor: "phone" | "tablet" | "desktop";
45
+ desktopUIMode: "compact" | "full";
46
+ userAgent: Readonly<{
47
+ isMobileDevice: boolean;
48
+ platform: "ios" | "android" | "other" | "unknown";
49
+ }>;
35
50
  isTouchScreen: boolean;
51
+ canFitSidebar: boolean;
52
+ isLandscape: boolean;
36
53
  }>;
54
+ export declare const useStylesPanelMode: () => StylesPanelMode;
37
55
  export declare const useExcalidrawContainer: () => {
38
56
  container: HTMLDivElement | null;
39
57
  id: string | null;
@@ -42,20 +60,31 @@ export declare const useExcalidrawElements: () => readonly NonDeletedExcalidrawE
42
60
  export declare const useExcalidrawAppState: () => AppState;
43
61
  export declare const useExcalidrawSetAppState: () => <K extends keyof AppState>(state: AppState | ((prevState: Readonly<AppState>, props: Readonly<any>) => AppState | Pick<AppState, K> | null) | Pick<AppState, K> | null, callback?: (() => void) | undefined) => void;
44
62
  export declare const useExcalidrawActionManager: () => ActionManager;
63
+ /**
64
+ * Requires wrapping your component in <ExcalidrawAPIContext.Provider>
65
+ */
66
+ export declare const useExcalidrawAPI: () => ExcalidrawImperativeAPI | null;
45
67
  declare class App extends React.Component<AppProps, AppState> {
46
68
  canvas: AppClassProperties["canvas"];
47
69
  interactiveCanvas: AppClassProperties["interactiveCanvas"];
70
+ sessionExportThemeOverride: AppState["theme"] | undefined;
48
71
  rc: RoughCanvas;
49
72
  unmounted: boolean;
50
73
  actionManager: ActionManager;
51
- device: Device;
74
+ editorInterface: EditorInterface;
75
+ private stylesPanelMode;
76
+ /**
77
+ * Last-measured footprints of named viewport UI surfaces
78
+ * (`data-viewport-ui-name`), so `getViewportOffsets` can reserve space
79
+ * for them while they're hidden.
80
+ */
81
+ private viewportUILastMeasured;
52
82
  private excalidrawContainerRef;
53
83
  scene: Scene;
54
84
  fonts: Fonts;
55
85
  renderer: Renderer;
56
86
  visibleElements: readonly NonDeletedExcalidrawElement[];
57
87
  private resizeObserver;
58
- private nearestScrollableContainer;
59
88
  library: AppClassProperties["library"];
60
89
  libraryItemsFromStorage: LibraryItems | undefined;
61
90
  id: string;
@@ -78,23 +107,35 @@ declare class App extends React.Component<AppProps, AppState> {
78
107
  /** embeds that have been inserted to DOM (as a perf optim, we don't want to
79
108
  * insert to DOM before user initially scrolls to them) */
80
109
  private initializedEmbeds;
81
- private handleToastClose;
82
110
  private elementsPendingErasure;
111
+ private _initialized;
112
+ private readonly editorLifecycleEvents;
113
+ onEvent: AppEventBus<ExcalidrawImperativeAPIEventMap, typeof editorLifecycleEventBehavior>["on"];
114
+ private appStateObserver;
115
+ onStateChange: OnStateChange;
83
116
  flowChartCreator: FlowChartCreator;
84
117
  private flowChartNavigator;
118
+ bindModeHandler: ReturnType<typeof setTimeout> | null;
85
119
  hitLinkElement?: NonDeletedExcalidrawElement;
86
120
  lastPointerDownEvent: React.PointerEvent<HTMLElement> | null;
87
121
  lastPointerUpEvent: React.PointerEvent<HTMLElement> | PointerEvent | null;
122
+ lastPointerUpIsDoubleClick: boolean;
88
123
  lastPointerMoveEvent: PointerEvent | null;
124
+ /** current frame pointer cords */
89
125
  lastPointerMoveCoords: {
90
126
  x: number;
91
127
  y: number;
92
128
  } | null;
129
+ private lastCompletedCanvasClicks;
130
+ /** previous frame pointer coords */
131
+ previousPointerMoveCoords: {
132
+ x: number;
133
+ y: number;
134
+ } | null;
93
135
  lastViewportPosition: {
94
136
  x: number;
95
137
  y: number;
96
138
  };
97
- animationFrameHandler: AnimationFrameHandler;
98
139
  laserTrails: LaserTrails;
99
140
  eraserTrail: EraserTrail;
100
141
  lassoTrail: LassoTrail;
@@ -112,11 +153,7 @@ declare class App extends React.Component<AppProps, AppState> {
112
153
  x: number;
113
154
  y: number;
114
155
  }>;
115
- scrollbars: {
116
- isOverEither: boolean;
117
- isOverHorizontal: boolean;
118
- isOverVertical: boolean;
119
- };
156
+ scrollbars: ReturnType<typeof isOverScrollBars>;
120
157
  lastCoords: {
121
158
  x: number;
122
159
  y: number;
@@ -129,7 +166,7 @@ declare class App extends React.Component<AppProps, AppState> {
129
166
  x: number;
130
167
  y: number;
131
168
  };
132
- arrowDirection: "end" | "origin";
169
+ arrowDirection: "origin" | "end";
133
170
  center: {
134
171
  x: number;
135
172
  y: number;
@@ -153,16 +190,13 @@ declare class App extends React.Component<AppProps, AppState> {
153
190
  x: number;
154
191
  y: number;
155
192
  };
193
+ blockDragging: boolean;
156
194
  };
157
195
  eventListeners: {
158
- onMove: {
159
- (...args: any[]): void;
160
- flush(): void;
161
- cancel(): void;
162
- } | null;
163
- onUp: ((event: PointerEvent) => void) | null;
164
- onKeyDown: ((event: KeyboardEvent) => void) | null;
165
- onKeyUp: ((event: KeyboardEvent) => void) | null;
196
+ onMove: null | ReturnType<typeof import("@excalidraw/common").throttleRAF>;
197
+ onUp: null | ((event: PointerEvent) => void);
198
+ onKeyDown: null | ((event: KeyboardEvent) => void);
199
+ onKeyUp: null | ((event: KeyboardEvent) => void);
166
200
  };
167
201
  boxSelection: {
168
202
  hasOccurred: boolean;
@@ -181,11 +215,7 @@ declare class App extends React.Component<AppProps, AppState> {
181
215
  x: number;
182
216
  y: number;
183
217
  }>;
184
- scrollbars: {
185
- isOverEither: boolean;
186
- isOverHorizontal: boolean;
187
- isOverVertical: boolean;
188
- };
218
+ scrollbars: ReturnType<typeof isOverScrollBars>;
189
219
  lastCoords: {
190
220
  x: number;
191
221
  y: number;
@@ -198,7 +228,7 @@ declare class App extends React.Component<AppProps, AppState> {
198
228
  x: number;
199
229
  y: number;
200
230
  };
201
- arrowDirection: "end" | "origin";
231
+ arrowDirection: "origin" | "end";
202
232
  center: {
203
233
  x: number;
204
234
  y: number;
@@ -222,16 +252,13 @@ declare class App extends React.Component<AppProps, AppState> {
222
252
  x: number;
223
253
  y: number;
224
254
  };
255
+ blockDragging: boolean;
225
256
  };
226
257
  eventListeners: {
227
- onMove: {
228
- (...args: any[]): void;
229
- flush(): void;
230
- cancel(): void;
231
- } | null;
232
- onUp: ((event: PointerEvent) => void) | null;
233
- onKeyDown: ((event: KeyboardEvent) => void) | null;
234
- onKeyUp: ((event: KeyboardEvent) => void) | null;
258
+ onMove: null | ReturnType<typeof import("@excalidraw/common").throttleRAF>;
259
+ onUp: null | ((event: PointerEvent) => void);
260
+ onKeyDown: null | ((event: KeyboardEvent) => void);
261
+ onKeyUp: null | ((event: KeyboardEvent) => void);
235
262
  };
236
263
  boxSelection: {
237
264
  hasOccurred: boolean;
@@ -243,17 +270,27 @@ declare class App extends React.Component<AppProps, AppState> {
243
270
  }>]>;
244
271
  missingPointerEventCleanupEmitter: Emitter<[event: PointerEvent | null]>;
245
272
  onRemoveEventListenersEmitter: Emitter<[]>;
273
+ api: ExcalidrawImperativeAPI;
274
+ private createExcalidrawAPI;
246
275
  constructor(props: AppProps);
247
276
  updateEditorAtom: <Value, Args extends unknown[], Result>(atom: WritableAtom<Value, Args, Result>, ...args: Args) => Result;
248
277
  private onWindowMessage;
278
+ private handleSkipBindMode;
279
+ private resetDelayedBindMode;
280
+ private previousHoveredBindableElement;
281
+ private handleDelayedBindModeChange;
249
282
  private cacheEmbeddableRef;
250
283
  /**
251
284
  * Returns gridSize taking into account `gridModeEnabled`.
252
285
  * If disabled, returns null.
253
286
  */
254
287
  getEffectiveGridSize: () => NullableGridSize;
288
+ private getTextCreationGridPoint;
255
289
  private getHTMLIFrameElement;
256
- private handleEmbeddableCenterClick;
290
+ private handleIframeLikeElementHover;
291
+ /** @returns true if iframe-like element click handled */
292
+ private handleIframeLikeCenterClick;
293
+ private isDoubleClick;
257
294
  private isIframeLikeElementCenter;
258
295
  private updateEmbedValidationStatus;
259
296
  private updateEmbeddables;
@@ -265,8 +302,8 @@ declare class App extends React.Component<AppProps, AppState> {
265
302
  private toggleOverscrollBehavior;
266
303
  render(): import("react/jsx-runtime").JSX.Element;
267
304
  focusContainer: AppClassProperties["focusContainer"];
268
- getSceneElementsIncludingDeleted: () => readonly OrderedExcalidrawElement[];
269
- getSceneElementsMapIncludingDeleted: () => Map<string, Ordered<ExcalidrawElement>> & import("@excalidraw/common/utility-types").MakeBrand<"SceneElementsMap">;
305
+ getSceneElementsIncludingDeleted: () => readonly import("@excalidraw/element/types").OrderedExcalidrawElement[];
306
+ getSceneElementsMapIncludingDeleted: () => SceneElementsMap;
270
307
  getSceneElements: () => readonly Ordered<NonDeletedExcalidrawElement>[];
271
308
  onInsertElements: (elements: readonly ExcalidrawElement[]) => void;
272
309
  onExportImage: (type: keyof typeof EXPORT_IMAGE_TYPES, elements: ExportedElements, opts: {
@@ -297,9 +334,11 @@ declare class App extends React.Component<AppProps, AppState> {
297
334
  */
298
335
  private resetScene;
299
336
  private initializeScene;
300
- private isMobileBreakpoint;
301
- private refreshViewportBreakpoints;
302
- private refreshEditorBreakpoints;
337
+ private getFormFactor;
338
+ refreshEditorInterface: () => void;
339
+ private reconcileStylesPanelMode;
340
+ /** TO BE USED LATER */
341
+ private setDesktopUIMode;
303
342
  private clearImageShapeCache;
304
343
  componentDidMount(): Promise<void>;
305
344
  componentWillUnmount(): void;
@@ -316,6 +355,7 @@ declare class App extends React.Component<AppProps, AppState> {
316
355
  private static resetTapTwice;
317
356
  private onTouchStart;
318
357
  private onTouchEnd;
358
+ private insertClipboardContent;
319
359
  pasteFromClipboard: (event: ClipboardEvent) => Promise<void>;
320
360
  addElementsFromPasteOrLibrary: (opts: {
321
361
  elements: readonly ExcalidrawElement[];
@@ -325,54 +365,57 @@ declare class App extends React.Component<AppProps, AppState> {
325
365
  clientY: number;
326
366
  } | "cursor" | "center";
327
367
  retainSeed?: boolean;
328
- fitToContent?: boolean;
368
+ fit?: SetViewportOptions["fit"];
369
+ preserveFrameChildrenOrder?: boolean;
329
370
  }) => void;
330
371
  private addElementsFromMixedContentPaste;
331
372
  private addTextFromPaste;
332
373
  setAppState: React.Component<any, AppState>["setState"];
333
374
  removePointer: (event: React.PointerEvent<HTMLElement> | PointerEvent) => void;
334
375
  toggleLock: (source?: "keyboard" | "ui") => void;
335
- updateFrameRendering: (opts: Partial<{
336
- enabled: boolean;
337
- name: boolean;
338
- outline: boolean;
339
- clip: boolean;
340
- }> | ((prevState: AppState["frameRendering"]) => Partial<AppState["frameRendering"]>)) => void;
376
+ updateFrameRendering: (opts: Partial<AppState["frameRendering"]> | ((prevState: AppState["frameRendering"]) => Partial<AppState["frameRendering"]>)) => void;
341
377
  togglePenMode: (force: boolean | null) => void;
342
378
  onHandToolToggle: () => void;
343
379
  /**
344
380
  * Zooms on canvas viewport center
345
381
  */
346
- zoomCanvas: (value: number) => void;
347
- private cancelInProgressAnimation;
348
- scrollToContent: (target?: string | ExcalidrawElement | readonly ExcalidrawElement[], opts?: ({
349
- fitToContent?: boolean;
350
- fitToViewport?: never;
351
- viewportZoomFactor?: number;
352
- animate?: boolean;
353
- duration?: number;
354
- } | {
355
- fitToContent?: never;
356
- fitToViewport?: boolean;
357
- /** when fitToViewport=true, how much screen should the content cover,
358
- * between 0.1 (10%) and 1 (100%)
359
- */
360
- viewportZoomFactor?: number;
361
- animate?: boolean;
362
- duration?: number;
363
- }) & {
364
- minZoom?: number;
365
- maxZoom?: number;
366
- canvasOffsets?: Offsets;
367
- }) => void;
382
+ zoomCanvas: (
383
+ /**
384
+ * Decimal fraction, auto-clamped between MIN_ZOOM and MAX_ZOOM.
385
+ * 1 = 100% zoom, 2 = 200% zoom, 0.5 = 50% zoom
386
+ */
387
+ value: number) => void;
388
+ /**
389
+ * Navigates the viewport to a target and, optionally, locks pan/zoom to it.
390
+ * The resolved target box drives both the navigation (pan + zoom per
391
+ * `fit`) and the lock: the operations chain — the viewport animates onto
392
+ * the target, then the lock is installed against the settled viewport.
393
+ *
394
+ * Passing `null` clears any active lock without navigating.
395
+ */
396
+ /**
397
+ * Resolves user-supplied viewport offsets ({@link ViewportOffsets}) into
398
+ * concrete per-side pixel values: static sides are used as-is, and when
399
+ * `ui` is set, the remaining sides are derived from the currently
400
+ * rendered editor UI (via `getViewportOffsets`).
401
+ *
402
+ * Must be called at the time the offsets are applied (not e.g. cached at
403
+ * props-definition time), so the UI-derived values reflect the actual
404
+ * rendered UI.
405
+ */
406
+ private resolveViewportOffsets;
407
+ setViewport: (opts: SetViewportOptions | null) => void;
368
408
  private maybeUnfollowRemoteUser;
369
409
  /** use when changing scrollX/scrollY/zoom based on user interaction */
370
410
  private translateCanvas;
371
- setToast: (toast: {
372
- message: string;
373
- closable?: boolean;
374
- duration?: number;
375
- } | null) => void;
411
+ /** clamps scroll/zoom back into `appState.scrollConstraints` (no-op when
412
+ * unconstrained). Runs as a queued update, so it sees the preceding change.
413
+ * `overscroll` (screen px) relaxes the bounds for rubberbanding. */
414
+ private constrainViewportToScrollConstraints;
415
+ /** animates an overscrolled viewport back inside the constraint box */
416
+ private snapBackToScrollConstraints;
417
+ private snapBackToScrollConstraintsDebounced;
418
+ setToast: (toast: AppState["toast"]) => void;
376
419
  restoreFileFromShare: () => Promise<void>;
377
420
  /**
378
421
  * adds supplied files to existing files in the appState.
@@ -382,7 +425,7 @@ declare class App extends React.Component<AppProps, AppState> {
382
425
  private addMissingFiles;
383
426
  updateScene: <K extends keyof AppState>(sceneData: {
384
427
  elements?: SceneData["elements"];
385
- appState?: Pick<AppState, K> | null | undefined;
428
+ appState?: Pick<AppState, K> | null;
386
429
  collaborators?: SceneData["collaborators"];
387
430
  /**
388
431
  * Controls which updates should be captured by the `Store`. Captured updates are emmitted and listened to by other components, such as `History` for undo / redo purposes.
@@ -397,7 +440,7 @@ declare class App extends React.Component<AppProps, AppState> {
397
440
  */
398
441
  captureUpdate?: SceneData["captureUpdate"];
399
442
  }) => void;
400
- applyDeltas: (deltas: StoreDelta[], options?: ApplyDeltasOptions) => [SceneElementsMap, AppState, boolean];
443
+ applyDeltas: (deltas: StoreDelta[], options?: ApplyToOptions) => [SceneElementsMap, AppState, boolean];
401
444
  mutateElement: <TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, informMutation?: boolean) => TElement;
402
445
  private triggerRender;
403
446
  /**
@@ -405,11 +448,21 @@ declare class App extends React.Component<AppProps, AppState> {
405
448
  */
406
449
  toggleSidebar: ({ name, tab, force, }: {
407
450
  name: SidebarName | null;
408
- tab?: string | undefined;
409
- force?: boolean | undefined;
451
+ tab?: SidebarTabName;
452
+ force?: boolean;
410
453
  }) => boolean;
411
454
  private updateCurrentCursorPosition;
412
- getEditorUIOffsets: () => Offsets;
455
+ /**
456
+ * top/right/bottom/left override the final offsets for those sides.
457
+ *
458
+ * Default side offsets are measured from the currently rendered UI
459
+ * surfaces marked with the `data-viewport-ui` attribute (see
460
+ * {@link ViewportUIDock}), plus padding.
461
+ *
462
+ * See {@link ViewportOffsetsOptions} for the individual options
463
+ * (padding, per-side overrides, reserving space for hidden surfaces).
464
+ */
465
+ getViewportOffsets: (opts?: ViewportOffsetsOptions) => Offsets;
413
466
  private onKeyDown;
414
467
  private onKeyUp;
415
468
  private isToolSupported;
@@ -438,7 +491,11 @@ declare class App extends React.Component<AppProps, AppState> {
438
491
  private onGestureEnd;
439
492
  private handleTextWysiwyg;
440
493
  private deselectElements;
494
+ private getSelectedTextElement;
495
+ private getSelectedTextEditingContainerAtPosition;
441
496
  private getTextElementAtPosition;
497
+ private isHittingTextAutoResizeHandle;
498
+ private handleTextAutoResizeHandlePointerDown;
442
499
  private getElementAtPosition;
443
500
  private getElementsAtPosition;
444
501
  getElementHitThreshold(element: ExcalidrawElement): number;
@@ -447,10 +504,20 @@ declare class App extends React.Component<AppProps, AppState> {
447
504
  private startTextEditing;
448
505
  private startImageCropping;
449
506
  private finishImageCropping;
507
+ private shouldHandleBrowserCanvasDoubleClick;
450
508
  private handleCanvasDoubleClick;
509
+ private handleCanvasClick;
451
510
  private getElementLinkAtPosition;
452
- private redirectToLink;
511
+ private handleElementLinkClick;
512
+ /**
513
+ * finds candidate frame under cursor (when dragging frame children/elements
514
+ * inside frames)
515
+ */
453
516
  private getTopLayerFrameAtSceneCoords;
517
+ private updateFrameToHighlight;
518
+ private maybeUpdateFrameToHighlightOnPointerMove;
519
+ private insertNewElements;
520
+ private insertNewElement;
454
521
  private handleCanvasPointerMove;
455
522
  private handleEraser;
456
523
  private handleTouchMove;
@@ -489,9 +556,10 @@ declare class App extends React.Component<AppProps, AppState> {
489
556
  sceneY: number;
490
557
  link: string;
491
558
  }) => NonDeleted<ExcalidrawEmbeddableElement> | undefined;
492
- private createImageElement;
559
+ private newImagePlaceholder;
493
560
  private handleLinearElementOnPointerDown;
494
561
  private getCurrentItemRoundness;
562
+ private getCurrentItemStrokeWidth;
495
563
  private createGenericElementOnPointerDown;
496
564
  private createFrameElementOnPointerDown;
497
565
  private maybeCacheReferenceSnapPoints;
@@ -510,11 +578,7 @@ declare class App extends React.Component<AppProps, AppState> {
510
578
  * and when you don't want to loose those modifications
511
579
  */
512
580
  private getLatestInitializedImageElement;
513
- /**
514
- * inserts image into elements array and rerenders
515
- */
516
- private insertImageElement;
517
- private onImageAction;
581
+ private onImageToolbarButtonClick;
518
582
  private getImageNaturalDimensions;
519
583
  /** updates image cache, refreshing updated elements and/or setting status
520
584
  to error for images that fail during <img> element creation */
@@ -524,12 +588,11 @@ declare class App extends React.Component<AppProps, AppState> {
524
588
  /** generally you should use `addNewImagesToImageCache()` directly if you need
525
589
  * to render new images. This is just a failsafe */
526
590
  private scheduleImageRefresh;
527
- private updateBindingEnabledOnPointerMove;
528
- private maybeSuggestBindingAtCursor;
529
591
  private clearSelection;
530
592
  private handleInteractiveCanvasRef;
593
+ private insertImages;
531
594
  private handleAppOnDrop;
532
- loadFileToCanvas: (file: File, fileHandle: FileSystemHandle | null) => Promise<void>;
595
+ loadFileToCanvas: (file: File, fileHandle: FileSystemFileHandle | null) => Promise<void>;
533
596
  private handleCanvasContextMenu;
534
597
  private maybeDragNewGenericElement;
535
598
  private maybeHandleCrop;
@@ -542,6 +605,7 @@ declare class App extends React.Component<AppProps, AppState> {
542
605
  private updateDOMRect;
543
606
  refresh: () => void;
544
607
  private getCanvasOffsets;
608
+ watchState: () => void;
545
609
  private updateLanguage;
546
610
  }
547
611
  declare global {
@@ -551,6 +615,7 @@ declare global {
551
615
  elements: readonly ExcalidrawElement[];
552
616
  state: AppState;
553
617
  setState: React.Component<any, AppState>["setState"];
618
+ watchState: (prev: any, next: any) => void | undefined;
554
619
  app: InstanceType<typeof App>;
555
620
  history: History;
556
621
  store: Store;
@@ -0,0 +1,37 @@
1
+ import type { AppState, UnsubscribeCallback } from "../types";
2
+ type StateChangeSelector = keyof AppState | (keyof AppState)[] | ((appState: AppState) => unknown);
3
+ export type OnStateChange = {
4
+ <K extends keyof AppState>(prop: K, callback: (value: AppState[K], appState: AppState) => void, opts?: {
5
+ once: boolean;
6
+ }): UnsubscribeCallback;
7
+ <K extends keyof AppState>(prop: K): Promise<AppState[K]>;
8
+ (prop: (keyof AppState)[], callback: (appState: AppState, appState2: AppState) => void, opts?: {
9
+ once: boolean;
10
+ }): UnsubscribeCallback;
11
+ (prop: (keyof AppState)[]): Promise<AppState>;
12
+ <T>(prop: (appState: AppState) => T, callback: (value: T, appState: AppState) => void, opts?: {
13
+ once: boolean;
14
+ }): UnsubscribeCallback;
15
+ <T>(prop: (appState: AppState) => T): Promise<T>;
16
+ (opts: {
17
+ predicate: (appState: AppState) => boolean;
18
+ callback: (appState: AppState) => void;
19
+ once?: boolean;
20
+ }): UnsubscribeCallback;
21
+ (opts: {
22
+ predicate: (appState: AppState) => boolean;
23
+ }): Promise<AppState>;
24
+ (selector: StateChangeSelector, callback: (value: any, appState: AppState) => void): any;
25
+ };
26
+ export declare class AppStateObserver {
27
+ private readonly getState;
28
+ private listeners;
29
+ constructor(getState: () => AppState);
30
+ private isStateChangePredicateOptions;
31
+ private subscribe;
32
+ private normalize;
33
+ onStateChange: OnStateChange;
34
+ flush(prevState: AppState): void;
35
+ clear(): void;
36
+ }
37
+ export {};
@@ -1,7 +1,5 @@
1
- /// <reference types="react" />
2
- import OpenColor from "open-color";
3
1
  import "./Card.scss";
4
2
  export declare const Card: React.FC<{
5
- color: keyof OpenColor | "primary";
3
+ color: "primary" | "lime" | "pink";
6
4
  children?: React.ReactNode;
7
5
  }>;
@@ -1,10 +1,8 @@
1
1
  import type { ColorPickerType } from "./colorPickerUtils";
2
- interface ColorInputProps {
2
+ export declare const ColorInput: ({ color, onChange, label, colorPickerType, placeholder, }: {
3
3
  color: string;
4
4
  onChange: (color: string) => void;
5
5
  label: string;
6
6
  colorPickerType: ColorPickerType;
7
7
  placeholder?: string;
8
- }
9
- export declare const ColorInput: ({ color, onChange, label, colorPickerType, placeholder, }: ColorInputProps) => import("react/jsx-runtime").JSX.Element;
10
- export {};
8
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -3,7 +3,6 @@ import type { ExcalidrawElement } from "@excalidraw/element/types";
3
3
  import "./ColorPicker.scss";
4
4
  import type { ColorPickerType } from "./colorPickerUtils";
5
5
  import type { AppState } from "../../types";
6
- export declare const getColor: (color: string) => string | null;
7
6
  interface ColorPickerProps {
8
7
  type: ColorPickerType;
9
8
  /**
@@ -10,8 +10,10 @@ interface PickerProps {
10
10
  palette: ColorPaletteCustom;
11
11
  updateData: (formData?: any) => void;
12
12
  children?: React.ReactNode;
13
+ showTitle?: boolean;
13
14
  onEyeDropperToggle: (force?: boolean) => void;
14
15
  onEscape: (event: React.KeyboardEvent | KeyboardEvent) => void;
16
+ showHotKey?: boolean;
15
17
  }
16
18
  export declare const Picker: React.ForwardRefExoticComponent<PickerProps & React.RefAttributes<unknown>>;
17
19
  export {};
@@ -4,6 +4,7 @@ interface PickerColorListProps {
4
4
  color: string | null;
5
5
  onChange: (color: string) => void;
6
6
  activeShade: number;
7
+ showHotKey?: boolean;
7
8
  }
8
- declare const PickerColorList: ({ palette, color, onChange, activeShade, }: PickerColorListProps) => import("react/jsx-runtime").JSX.Element;
9
+ declare const PickerColorList: ({ palette, color, onChange, activeShade, showHotKey, }: PickerColorListProps) => import("react/jsx-runtime").JSX.Element;
9
10
  export default PickerColorList;
@@ -3,6 +3,7 @@ interface ShadeListProps {
3
3
  color: string | null;
4
4
  onChange: (color: string) => void;
5
5
  palette: ColorPaletteCustom;
6
+ showHotKey?: boolean;
6
7
  }
7
- export declare const ShadeList: ({ color, onChange, palette }: ShadeListProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const ShadeList: ({ color, onChange, palette, showHotKey, }: ShadeListProps) => import("react/jsx-runtime").JSX.Element;
8
9
  export {};
@@ -14,8 +14,7 @@ export declare const isCustomColor: ({ color, palette, }: {
14
14
  }) => boolean;
15
15
  export declare const getMostUsedCustomColors: (elements: readonly ExcalidrawElement[], type: "elementBackground" | "elementStroke", palette: ColorPaletteCustom) => string[];
16
16
  export type ActiveColorPickerSectionAtomType = "custom" | "baseColors" | "shades" | "hex" | null;
17
- export declare const activeColorPickerSectionAtom: import("jotai/vanilla/atom").PrimitiveAtom<ActiveColorPickerSectionAtomType> & {
17
+ export declare const activeColorPickerSectionAtom: import("jotai").PrimitiveAtom<ActiveColorPickerSectionAtomType> & {
18
18
  init: ActiveColorPickerSectionAtomType;
19
19
  };
20
- export declare const isColorDark: (color: string, threshold?: number) => boolean;
21
20
  export type ColorPickerType = "canvasBackground" | "elementBackground" | "elementStroke";
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ColorPaletteCustom } from "@excalidraw/common";
3
2
  import type { ActiveColorPickerSectionAtomType } from "./colorPickerUtils";
4
3
  interface ColorPickerKeyNavHandlerProps {
@@ -8,6 +8,7 @@ export declare const DEFAULT_CATEGORIES: {
8
8
  editor: string;
9
9
  elements: string;
10
10
  links: string;
11
+ library: string;
11
12
  };
12
13
  type CommandPaletteProps = {
13
14
  customCommandPaletteItems?: CommandPaletteItem[];
@@ -1,2 +1 @@
1
- import type { CommandPaletteItem } from "./types";
2
- export declare const toggleTheme: CommandPaletteItem;
1
+ export {};