@excalidraw/element 0.18.0-042a6979d → 0.18.0-063e025

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