@zsviczian/excalidraw 0.17.1-obsidian-46 → 0.17.1-obsidian-47

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 (349) hide show
  1. package/dist/excalidraw.development.js +152 -76
  2. package/dist/excalidraw.production.min.js +1 -1
  3. package/dist/excalidraw.production.min.js.LICENSE.txt +66 -0
  4. package/dist/styles.development.css +1 -1
  5. package/dist/styles.production.css +1 -1
  6. package/package.json +3 -1
  7. package/types/excalidraw/actions/actionAddToLibrary.d.ts +575 -575
  8. package/types/excalidraw/actions/actionAlign.d.ts +108 -108
  9. package/types/excalidraw/actions/actionBoundText.d.ts +420 -420
  10. package/types/excalidraw/actions/actionCanvas.d.ts +2802 -2802
  11. package/types/excalidraw/actions/actionClipboard.d.ts +1436 -1436
  12. package/types/excalidraw/actions/actionDeleteSelected.d.ts +609 -609
  13. package/types/excalidraw/actions/actionDistribute.d.ts +34 -34
  14. package/types/excalidraw/actions/actionDuplicateSelection.d.ts +21 -21
  15. package/types/excalidraw/actions/actionElementLock.d.ts +408 -408
  16. package/types/excalidraw/actions/actionExport.d.ts +1794 -1794
  17. package/types/excalidraw/actions/actionFinalize.d.ts +389 -389
  18. package/types/excalidraw/actions/actionFlip.d.ts +34 -34
  19. package/types/excalidraw/actions/actionFrame.d.ts +815 -815
  20. package/types/excalidraw/actions/actionGroup.d.ts +418 -418
  21. package/types/excalidraw/actions/actionHistory.d.ts +7 -7
  22. package/types/excalidraw/actions/actionLinearEditor.d.ts +205 -205
  23. package/types/excalidraw/actions/actionLink.d.ts +205 -205
  24. package/types/excalidraw/actions/actionMenu.d.ts +598 -598
  25. package/types/excalidraw/actions/actionNavigate.d.ts +394 -394
  26. package/types/excalidraw/actions/actionProperties.d.ts +3006 -3006
  27. package/types/excalidraw/actions/actionSelectAll.d.ts +204 -204
  28. package/types/excalidraw/actions/actionStyles.d.ts +218 -218
  29. package/types/excalidraw/actions/actionTextAutoResize.d.ts +17 -17
  30. package/types/excalidraw/actions/actionToggleGridMode.d.ts +207 -207
  31. package/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +205 -205
  32. package/types/excalidraw/actions/actionToggleStats.d.ts +205 -205
  33. package/types/excalidraw/actions/actionToggleViewMode.d.ts +206 -206
  34. package/types/excalidraw/actions/actionToggleZenMode.d.ts +206 -206
  35. package/types/excalidraw/actions/actionZindex.d.ts +74 -74
  36. package/types/excalidraw/actions/index.d.ts +25 -25
  37. package/types/excalidraw/actions/manager.d.ts +21 -21
  38. package/types/excalidraw/actions/register.d.ts +5 -5
  39. package/types/excalidraw/actions/shortcuts.d.ts +4 -4
  40. package/types/excalidraw/actions/types.d.ts +47 -47
  41. package/types/excalidraw/align.d.ts +6 -6
  42. package/types/excalidraw/analytics.d.ts +1 -1
  43. package/types/excalidraw/animated-trail.d.ts +33 -33
  44. package/types/excalidraw/animation-frame-handler.d.ts +16 -16
  45. package/types/excalidraw/appState.d.ts +89 -89
  46. package/types/excalidraw/binaryheap.d.ts +12 -12
  47. package/types/excalidraw/change.d.ts +191 -191
  48. package/types/excalidraw/charts.d.ts +27 -27
  49. package/types/excalidraw/clients.d.ts +14 -14
  50. package/types/excalidraw/clipboard.d.ts +44 -44
  51. package/types/excalidraw/colors.d.ts +61 -61
  52. package/types/excalidraw/components/Actions.d.ts +34 -34
  53. package/types/excalidraw/components/ActiveConfirmDialog.d.ts +4 -4
  54. package/types/excalidraw/components/App.d.ts +526 -527
  55. package/types/excalidraw/components/Avatar.d.ts +11 -11
  56. package/types/excalidraw/components/BraveMeasureTextError.d.ts +2 -2
  57. package/types/excalidraw/components/Button.d.ts +17 -17
  58. package/types/excalidraw/components/ButtonIcon.d.ts +14 -14
  59. package/types/excalidraw/components/ButtonIconCycle.d.ts +10 -10
  60. package/types/excalidraw/components/ButtonIconSelect.d.ts +19 -19
  61. package/types/excalidraw/components/ButtonSelect.d.ts +9 -9
  62. package/types/excalidraw/components/ButtonSeparator.d.ts +1 -1
  63. package/types/excalidraw/components/Card.d.ts +6 -6
  64. package/types/excalidraw/components/CheckboxItem.d.ts +8 -8
  65. package/types/excalidraw/components/ColorPicker/ColorInput.d.ts +9 -9
  66. package/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +19 -19
  67. package/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +8 -8
  68. package/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +8 -8
  69. package/types/excalidraw/components/ColorPicker/Picker.d.ts +18 -18
  70. package/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +10 -10
  71. package/types/excalidraw/components/ColorPicker/PickerHeading.d.ts +5 -5
  72. package/types/excalidraw/components/ColorPicker/ShadeList.d.ts +8 -8
  73. package/types/excalidraw/components/ColorPicker/TopPicks.d.ts +9 -9
  74. package/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +21 -21
  75. package/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +20 -20
  76. package/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +18 -18
  77. package/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +2 -2
  78. package/types/excalidraw/components/CommandPalette/types.d.ts +25 -25
  79. package/types/excalidraw/components/ConfirmDialog.d.ts +10 -10
  80. package/types/excalidraw/components/ContextMenu.d.ts +16 -16
  81. package/types/excalidraw/components/DarkModeToggle.d.ts +7 -7
  82. package/types/excalidraw/components/DefaultSidebar.d.ts +29 -29
  83. package/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +4 -4
  84. package/types/excalidraw/components/Dialog.d.ts +13 -13
  85. package/types/excalidraw/components/DialogActionButton.d.ts +10 -10
  86. package/types/excalidraw/components/ErrorDialog.d.ts +5 -5
  87. package/types/excalidraw/components/ExcalidrawLogo.d.ts +15 -15
  88. package/types/excalidraw/components/EyeDropper.d.ts +27 -27
  89. package/types/excalidraw/components/FilledButton.d.ts +18 -18
  90. package/types/excalidraw/components/FixedSideContainer.d.ts +9 -9
  91. package/types/excalidraw/components/FollowMode/FollowMode.d.ts +10 -10
  92. package/types/excalidraw/components/FontPicker/FontPicker.d.ts +21 -21
  93. package/types/excalidraw/components/FontPicker/FontPickerList.d.ts +25 -25
  94. package/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +6 -6
  95. package/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +13 -13
  96. package/types/excalidraw/components/HandButton.d.ts +10 -10
  97. package/types/excalidraw/components/HelpButton.d.ts +7 -7
  98. package/types/excalidraw/components/HelpDialog.d.ts +4 -4
  99. package/types/excalidraw/components/HintViewer.d.ts +10 -10
  100. package/types/excalidraw/components/IconPicker.d.ts +14 -14
  101. package/types/excalidraw/components/ImageExportDialog.d.ts +14 -14
  102. package/types/excalidraw/components/InitializeApp.d.ts +10 -10
  103. package/types/excalidraw/components/InlineIcon.d.ts +3 -3
  104. package/types/excalidraw/components/Island.d.ts +10 -10
  105. package/types/excalidraw/components/JSONExportDialog.d.ts +15 -15
  106. package/types/excalidraw/components/LaserPointerButton.d.ts +10 -10
  107. package/types/excalidraw/components/LayerUI.d.ts +30 -30
  108. package/types/excalidraw/components/LibraryMenu.d.ts +24 -24
  109. package/types/excalidraw/components/LibraryMenuBrowseButton.d.ts +7 -7
  110. package/types/excalidraw/components/LibraryMenuControlButtons.d.ts +9 -9
  111. package/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +17 -17
  112. package/types/excalidraw/components/LibraryMenuItems.d.ts +14 -14
  113. package/types/excalidraw/components/LibraryMenuSection.d.ts +23 -23
  114. package/types/excalidraw/components/LibraryUnit.d.ts +14 -14
  115. package/types/excalidraw/components/LoadingMessage.d.ts +5 -5
  116. package/types/excalidraw/components/LockButton.d.ts +10 -10
  117. package/types/excalidraw/components/MagicButton.d.ts +9 -9
  118. package/types/excalidraw/components/MobileMenu.d.ts +24 -24
  119. package/types/excalidraw/components/Modal.d.ts +14 -14
  120. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -17
  121. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -17
  122. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -22
  123. package/types/excalidraw/components/Paragraph.d.ts +4 -4
  124. package/types/excalidraw/components/PasteChartDialog.d.ts +8 -8
  125. package/types/excalidraw/components/PenModeButton.d.ts +12 -12
  126. package/types/excalidraw/components/Popover.d.ts +15 -15
  127. package/types/excalidraw/components/ProjectName.d.ts +10 -10
  128. package/types/excalidraw/components/PropertiesPopover.d.ts +15 -15
  129. package/types/excalidraw/components/PublishLibrary.d.ts +16 -16
  130. package/types/excalidraw/components/QuickSearch.d.ts +9 -9
  131. package/types/excalidraw/components/RadioGroup.d.ts +13 -13
  132. package/types/excalidraw/components/SVGLayer.d.ts +7 -7
  133. package/types/excalidraw/components/ScrollableList.d.ts +8 -8
  134. package/types/excalidraw/components/Section.d.ts +6 -6
  135. package/types/excalidraw/components/ShareableLinkDialog.d.ts +7 -7
  136. package/types/excalidraw/components/Sidebar/Sidebar.d.ts +76 -76
  137. package/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +7 -7
  138. package/types/excalidraw/components/Sidebar/SidebarTab.d.ts +8 -8
  139. package/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +9 -9
  140. package/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +6 -6
  141. package/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +6 -6
  142. package/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +6 -6
  143. package/types/excalidraw/components/Sidebar/common.d.ts +33 -33
  144. package/types/excalidraw/components/Spinner.d.ts +8 -8
  145. package/types/excalidraw/components/Stack.d.ts +16 -16
  146. package/types/excalidraw/components/Stats/Angle.d.ts +11 -11
  147. package/types/excalidraw/components/Stats/CanvasGrid.d.ts +10 -10
  148. package/types/excalidraw/components/Stats/CanvasGridSize.d.ts +10 -10
  149. package/types/excalidraw/components/Stats/Collapsible.d.ts +8 -8
  150. package/types/excalidraw/components/Stats/Dimension.d.ts +11 -11
  151. package/types/excalidraw/components/Stats/DragInput.d.ts +34 -34
  152. package/types/excalidraw/components/Stats/FontSize.d.ts +11 -11
  153. package/types/excalidraw/components/Stats/MultiAngle.d.ts +11 -11
  154. package/types/excalidraw/components/Stats/MultiDimension.d.ts +14 -14
  155. package/types/excalidraw/components/Stats/MultiFontSize.d.ts +12 -12
  156. package/types/excalidraw/components/Stats/MultiPosition.d.ts +14 -14
  157. package/types/excalidraw/components/Stats/Position.d.ts +12 -12
  158. package/types/excalidraw/components/Stats/index.d.ts +35 -35
  159. package/types/excalidraw/components/Stats/utils.d.ts +26 -26
  160. package/types/excalidraw/components/Switch.d.ts +9 -9
  161. package/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +14 -14
  162. package/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +29 -29
  163. package/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +9 -9
  164. package/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +7 -7
  165. package/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +17 -17
  166. package/types/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +4 -4
  167. package/types/excalidraw/components/TTDDialog/TTDDialogSubmitShortcut.d.ts +1 -1
  168. package/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +7 -7
  169. package/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +8 -8
  170. package/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +6 -6
  171. package/types/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +11 -11
  172. package/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +8 -8
  173. package/types/excalidraw/components/TTDDialog/common.d.ts +32 -32
  174. package/types/excalidraw/components/TextField.d.ts +19 -19
  175. package/types/excalidraw/components/Toast.d.ts +9 -9
  176. package/types/excalidraw/components/ToolButton.d.ts +49 -49
  177. package/types/excalidraw/components/Tooltip.d.ts +18 -18
  178. package/types/excalidraw/components/Trans.d.ts +9 -9
  179. package/types/excalidraw/components/UserList.d.ts +18 -18
  180. package/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +29 -29
  181. package/types/excalidraw/components/canvases/NewElementCanvas.d.ts +14 -14
  182. package/types/excalidraw/components/canvases/StaticCanvas.d.ts +19 -19
  183. package/types/excalidraw/components/canvases/index.d.ts +3 -3
  184. package/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +86 -86
  185. package/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +15 -15
  186. package/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -11
  187. package/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +45 -45
  188. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +7 -7
  189. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +17 -17
  190. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -7
  191. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +15 -15
  192. package/types/excalidraw/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -5
  193. package/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -10
  194. package/types/excalidraw/components/dropdownMenu/common.d.ts +6 -6
  195. package/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -3
  196. package/types/excalidraw/components/footer/Footer.d.ts +12 -12
  197. package/types/excalidraw/components/footer/FooterCenter.d.ts +8 -8
  198. package/types/excalidraw/components/hoc/withInternalFallback.d.ts +4 -4
  199. package/types/excalidraw/components/hyperlink/Hyperlink.d.ts +18 -18
  200. package/types/excalidraw/components/hyperlink/helpers.d.ts +7 -7
  201. package/types/excalidraw/components/icons.d.ts +211 -211
  202. package/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -9
  203. package/types/excalidraw/components/main-menu/DefaultItems.d.ts +58 -58
  204. package/types/excalidraw/components/main-menu/MainMenu.d.ts +80 -80
  205. package/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +59 -59
  206. package/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -19
  207. package/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +86 -86
  208. package/types/excalidraw/constants.d.ts +314 -314
  209. package/types/excalidraw/context/tunnels.d.ts +20 -20
  210. package/types/excalidraw/context/ui-appState.d.ts +4 -4
  211. package/types/excalidraw/cursor.d.ts +6 -6
  212. package/types/excalidraw/data/EditorLocalStorage.d.ts +8 -8
  213. package/types/excalidraw/data/ai/types.d.ts +242 -242
  214. package/types/excalidraw/data/blob.d.ts +49 -49
  215. package/types/excalidraw/data/encode.d.ts +53 -53
  216. package/types/excalidraw/data/encryption.d.ts +9 -9
  217. package/types/excalidraw/data/filesystem.d.ts +20 -20
  218. package/types/excalidraw/data/image.d.ts +15 -15
  219. package/types/excalidraw/data/index.d.ts +22 -22
  220. package/types/excalidraw/data/json.d.ts +16 -16
  221. package/types/excalidraw/data/library.d.ts +106 -106
  222. package/types/excalidraw/data/reconcile.d.ts +6 -6
  223. package/types/excalidraw/data/resave.d.ts +5 -5
  224. package/types/excalidraw/data/restore.d.ts +21 -21
  225. package/types/excalidraw/data/transform.d.ts +81 -81
  226. package/types/excalidraw/data/types.d.ts +45 -45
  227. package/types/excalidraw/data/url.d.ts +8 -8
  228. package/types/excalidraw/deburr.d.ts +1 -1
  229. package/types/excalidraw/dist/excalidraw.development.d.ts +2 -2
  230. package/types/excalidraw/dist/excalidraw.production.min.d.ts +1 -1
  231. package/types/excalidraw/distribute.d.ts +6 -6
  232. package/types/excalidraw/element/ElementCanvasButtons.d.ts +7 -7
  233. package/types/excalidraw/element/binding.d.ts +97 -97
  234. package/types/excalidraw/element/bounds.d.ts +74 -74
  235. package/types/excalidraw/element/collision.d.ts +16 -16
  236. package/types/excalidraw/element/containerCache.d.ts +11 -11
  237. package/types/excalidraw/element/dragElements.d.ts +32 -32
  238. package/types/excalidraw/element/embeddable.d.ts +211 -211
  239. package/types/excalidraw/element/flowchart.d.ts +25 -25
  240. package/types/excalidraw/element/heading.d.ts +11 -11
  241. package/types/excalidraw/element/image.d.ts +32 -32
  242. package/types/excalidraw/element/index.d.ts +26 -26
  243. package/types/excalidraw/element/linearElementEditor.d.ts +344 -344
  244. package/types/excalidraw/element/mutateElement.d.ts +11 -11
  245. package/types/excalidraw/element/newElement.d.ts +106 -106
  246. package/types/excalidraw/element/resizeElements.d.ts +17 -17
  247. package/types/excalidraw/element/resizeTest.d.ts +14 -14
  248. package/types/excalidraw/element/routing.d.ts +10 -10
  249. package/types/excalidraw/element/showSelectedShapeActions.d.ts +3 -3
  250. package/types/excalidraw/element/sizeHelpers.d.ts +40 -40
  251. package/types/excalidraw/element/sortElements.d.ts +2 -2
  252. package/types/excalidraw/element/textElement.d.ts +70 -70
  253. package/types/excalidraw/element/textWysiwyg.d.ts +22 -22
  254. package/types/excalidraw/element/transformHandles.d.ts +54 -54
  255. package/types/excalidraw/element/typeChecks.d.ts +42 -42
  256. package/types/excalidraw/element/types.d.ts +253 -253
  257. package/types/excalidraw/emitter.d.ts +16 -16
  258. package/types/excalidraw/entry.d.ts +1 -1
  259. package/types/excalidraw/env.d.cts +1 -1
  260. package/types/excalidraw/env.d.ts +1 -1
  261. package/types/excalidraw/errors.d.ts +16 -16
  262. package/types/excalidraw/fonts/ExcalidrawFont.d.ts +37 -21
  263. package/types/excalidraw/fonts/index.d.ts +83 -83
  264. package/types/excalidraw/fonts/metadata.d.ts +35 -35
  265. package/types/excalidraw/fonts/wasm/hb-subset.bindings.d.ts +45 -0
  266. package/types/excalidraw/fonts/wasm/hb-subset.loader.d.ts +5 -0
  267. package/types/excalidraw/fonts/wasm/hb-subset.wasm.d.ts +2 -0
  268. package/types/excalidraw/fonts/wasm/woff2.bindings.d.ts +31 -0
  269. package/types/excalidraw/fonts/wasm/woff2.loader.d.ts +6 -0
  270. package/types/excalidraw/fonts/wasm/woff2.wasm.d.ts +2 -0
  271. package/types/excalidraw/fractionalIndex.d.ts +48 -48
  272. package/types/excalidraw/frame.d.ts +63 -63
  273. package/types/excalidraw/ga.d.ts +63 -63
  274. package/types/excalidraw/gadirections.d.ts +8 -8
  275. package/types/excalidraw/galines.d.ts +22 -22
  276. package/types/excalidraw/gapoints.d.ts +7 -7
  277. package/types/excalidraw/gatransforms.d.ts +10 -10
  278. package/types/excalidraw/gesture.d.ts +6 -6
  279. package/types/excalidraw/groups.d.ts +33 -33
  280. package/types/excalidraw/history.d.ts +40 -40
  281. package/types/excalidraw/hooks/useCallbackRefState.d.ts +1 -1
  282. package/types/excalidraw/hooks/useCopiedIndicator.d.ts +5 -5
  283. package/types/excalidraw/hooks/useCreatePortalContainer.d.ts +7 -7
  284. package/types/excalidraw/hooks/useEmitter.d.ts +2 -2
  285. package/types/excalidraw/hooks/useLibraryItemSvg.d.ts +11 -11
  286. package/types/excalidraw/hooks/useOutsideClick.d.ts +19 -19
  287. package/types/excalidraw/hooks/useScrollPosition.d.ts +1 -1
  288. package/types/excalidraw/hooks/useStable.d.ts +1 -1
  289. package/types/excalidraw/hooks/useStableCallback.d.ts +4 -4
  290. package/types/excalidraw/hooks/useTransition.d.ts +2 -2
  291. package/types/excalidraw/i18n.d.ts +24 -24
  292. package/types/excalidraw/index-node.d.ts +1 -1
  293. package/types/excalidraw/index.d.ts +61 -61
  294. package/types/excalidraw/jotai.d.ts +34 -34
  295. package/types/excalidraw/keys.d.ts +82 -82
  296. package/types/excalidraw/laser-trails.d.ts +20 -20
  297. package/types/excalidraw/main.d.ts +2 -2
  298. package/types/excalidraw/math.d.ts +79 -79
  299. package/types/excalidraw/mermaid.d.ts +2 -2
  300. package/types/excalidraw/obsidianUtils.d.ts +17 -17
  301. package/types/excalidraw/points.d.ts +7 -7
  302. package/types/excalidraw/polyfill.d.ts +2 -2
  303. package/types/excalidraw/publicPath.d.ts +1 -1
  304. package/types/excalidraw/queue.d.ts +9 -9
  305. package/types/excalidraw/random.d.ts +4 -4
  306. package/types/excalidraw/reactUtils.d.ts +14 -14
  307. package/types/excalidraw/renderer/easingFunctions.d.ts +6 -6
  308. package/types/excalidraw/renderer/helpers.d.ts +13 -13
  309. package/types/excalidraw/renderer/interactiveScene.d.ts +20 -20
  310. package/types/excalidraw/renderer/renderElement.d.ts +27 -27
  311. package/types/excalidraw/renderer/renderNewElementScene.d.ts +7 -7
  312. package/types/excalidraw/renderer/renderSnaps.d.ts +2 -2
  313. package/types/excalidraw/renderer/roundRect.d.ts +11 -11
  314. package/types/excalidraw/renderer/staticScene.d.ts +11 -11
  315. package/types/excalidraw/renderer/staticSvgScene.d.ts +5 -5
  316. package/types/excalidraw/scene/Renderer.d.ts +28 -28
  317. package/types/excalidraw/scene/Scene.d.ts +78 -78
  318. package/types/excalidraw/scene/Shape.d.ts +17 -17
  319. package/types/excalidraw/scene/ShapeCache.d.ts +25 -25
  320. package/types/excalidraw/scene/comparisons.d.ts +11 -11
  321. package/types/excalidraw/scene/export.d.ts +29 -29
  322. package/types/excalidraw/scene/index.d.ts +4 -4
  323. package/types/excalidraw/scene/normalize.d.ts +4 -4
  324. package/types/excalidraw/scene/scroll.d.ts +17 -17
  325. package/types/excalidraw/scene/scrollbars.d.ts +12 -12
  326. package/types/excalidraw/scene/selection.d.ts +32 -32
  327. package/types/excalidraw/scene/types.d.ts +112 -112
  328. package/types/excalidraw/scene/zoom.d.ts +12 -12
  329. package/types/excalidraw/shapes.d.ts +70 -70
  330. package/types/excalidraw/snapping.d.ts +109 -109
  331. package/types/excalidraw/store.d.ts +129 -129
  332. package/types/excalidraw/types.d.ts +700 -700
  333. package/types/excalidraw/utility-types.d.ts +31 -31
  334. package/types/excalidraw/utils.d.ts +243 -243
  335. package/types/excalidraw/visualdebug.d.ts +34 -34
  336. package/types/excalidraw/webpack.dev.config.d.ts +81 -81
  337. package/types/excalidraw/webpack.prod.config.d.ts +97 -97
  338. package/types/excalidraw/zindex.d.ts +6 -6
  339. package/types/utils/bbox.d.ts +11 -11
  340. package/types/utils/collision.d.ts +4 -4
  341. package/types/utils/export.d.ts +44 -44
  342. package/types/utils/geometry/geometry.d.ts +89 -89
  343. package/types/utils/geometry/shape.d.ts +56 -56
  344. package/types/utils/index.d.ts +4 -4
  345. package/types/utils/withinBounds.d.ts +19 -19
  346. package/types/excalidraw/components/MagicSettings.d.ts +0 -8
  347. package/types/excalidraw/components/Stats.d.ts +0 -11
  348. package/types/excalidraw/data/magic.d.ts +0 -23
  349. package/types/excalidraw/scene/Fonts.d.ts +0 -19
@@ -1,527 +1,526 @@
1
- import React from "react";
2
- import type { RoughCanvas } from "roughjs/bin/canvas";
3
- import { ActionManager } from "../actions/manager";
4
- import type { ActionResult } from "../actions/types";
5
- import { type EXPORT_IMAGE_TYPES } from "../constants";
6
- import type { ExportedElements } from "../data";
7
- import { LinearElementEditor } from "../element/linearElementEditor";
8
- import type { ExcalidrawElement, ExcalidrawLinearElement, NonDeleted, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered } from "../element/types";
9
- import { History } from "../history";
10
- import Scene from "../scene/Scene";
11
- import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, Device, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, GenerateDiagramToCode, NullableGridSize } from "../types";
12
- import type { FileSystemHandle } from "../data/filesystem";
13
- import { Fonts } from "../fonts";
14
- import { Renderer } from "../scene/Renderer";
15
- import { Emitter } from "../emitter";
16
- import { Store } from "../store";
17
- import { AnimationFrameHandler } from "../animation-frame-handler";
18
- import { AnimatedTrail } from "../animated-trail";
19
- import { LaserTrails } from "../laser-trails";
20
- import { FlowChartCreator } from "../element/flowchart";
21
- export declare const ExcalidrawContainerContext: React.Context<{
22
- container: HTMLDivElement | null;
23
- id: string | null;
24
- }>;
25
- export declare const useApp: () => AppClassProperties;
26
- export declare const useAppProps: () => AppProps;
27
- export declare const useDevice: () => Readonly<{
28
- viewport: {
29
- isMobile: boolean;
30
- isLandscape: boolean;
31
- };
32
- editor: {
33
- isMobile: boolean;
34
- canFitSidebar: boolean;
35
- };
36
- isTouchScreen: boolean;
37
- }>;
38
- export declare const useExcalidrawContainer: () => {
39
- container: HTMLDivElement | null;
40
- id: string | null;
41
- };
42
- export declare const useExcalidrawElements: () => readonly NonDeletedExcalidrawElement[];
43
- export declare const useExcalidrawAppState: () => AppState;
44
- 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;
45
- export declare const useExcalidrawActionManager: () => ActionManager;
46
- declare class App extends React.Component<AppProps, AppState> {
47
- canvas: AppClassProperties["canvas"];
48
- interactiveCanvas: AppClassProperties["interactiveCanvas"];
49
- rc: RoughCanvas;
50
- unmounted: boolean;
51
- actionManager: ActionManager;
52
- device: Device;
53
- private excalidrawContainerRef;
54
- scene: Scene;
55
- fonts: Fonts;
56
- renderer: Renderer;
57
- private resizeObserver;
58
- private nearestScrollableContainer;
59
- library: AppClassProperties["library"];
60
- libraryItemsFromStorage: LibraryItems | undefined;
61
- id: string;
62
- private store;
63
- private history;
64
- private excalidrawContainerValue;
65
- files: BinaryFiles;
66
- imageCache: AppClassProperties["imageCache"];
67
- private iFrameRefs;
68
- /**
69
- * Indicates whether the embeddable's url has been validated for rendering.
70
- * If value not set, indicates that the validation is pending.
71
- * Initially or on url change the flag is not reset so that we can guarantee
72
- * the validation came from a trusted source (the editor).
73
- **/
74
- private embedsValidationStatus;
75
- /** embeds that have been inserted to DOM (as a perf optim, we don't want to
76
- * insert to DOM before user initially scrolls to them) */
77
- private initializedEmbeds;
78
- private elementsPendingErasure;
79
- flowChartCreator: FlowChartCreator;
80
- private flowChartNavigator;
81
- hitLinkElement?: NonDeletedExcalidrawElement;
82
- lastPointerDownEvent: React.PointerEvent<HTMLElement> | null;
83
- lastPointerUpEvent: React.PointerEvent<HTMLElement> | PointerEvent | null;
84
- lastPointerMoveEvent: PointerEvent | null;
85
- lastViewportPosition: {
86
- x: number;
87
- y: number;
88
- };
89
- allowMobileMode: boolean;
90
- animationFrameHandler: AnimationFrameHandler;
91
- laserTrails: LaserTrails;
92
- eraserTrail: AnimatedTrail;
93
- onChangeEmitter: Emitter<[elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles]>;
94
- onPointerDownEmitter: Emitter<[activeTool: {
95
- lastActiveTool: import("../types").ActiveTool | null;
96
- locked: boolean;
97
- } & import("../types").ActiveTool, pointerDownState: Readonly<{
98
- origin: Readonly<{
99
- x: number;
100
- y: number;
101
- }>;
102
- originInGrid: Readonly<{
103
- x: number;
104
- y: number;
105
- }>;
106
- scrollbars: {
107
- isOverEither: boolean;
108
- isOverHorizontal: boolean;
109
- isOverVertical: boolean;
110
- };
111
- lastCoords: {
112
- x: number;
113
- y: number;
114
- };
115
- originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
116
- resize: {
117
- handleType: import("../element/transformHandles").MaybeTransformHandleType;
118
- isResizing: boolean;
119
- offset: {
120
- x: number;
121
- y: number;
122
- };
123
- arrowDirection: "origin" | "end";
124
- center: {
125
- x: number;
126
- y: number;
127
- };
128
- };
129
- hit: {
130
- element: NonDeleted<ExcalidrawElement> | null;
131
- allHitElements: NonDeleted<ExcalidrawElement>[];
132
- wasAddedToSelection: boolean;
133
- hasBeenDuplicated: boolean;
134
- hasHitCommonBoundingBoxOfSelectedElements: boolean;
135
- };
136
- withCmdOrCtrl: boolean;
137
- drag: {
138
- hasOccurred: boolean;
139
- offset: {
140
- x: number;
141
- y: number;
142
- } | null;
143
- };
144
- eventListeners: {
145
- onMove: {
146
- (...args: any[]): void;
147
- flush(): void;
148
- cancel(): void;
149
- } | null;
150
- onUp: ((event: PointerEvent) => void) | null;
151
- onKeyDown: ((event: KeyboardEvent) => void) | null;
152
- onKeyUp: ((event: KeyboardEvent) => void) | null;
153
- };
154
- boxSelection: {
155
- hasOccurred: boolean;
156
- };
157
- }>, event: React.PointerEvent<HTMLElement>]>;
158
- onPointerUpEmitter: Emitter<[activeTool: {
159
- lastActiveTool: import("../types").ActiveTool | null;
160
- locked: boolean;
161
- } & import("../types").ActiveTool, pointerDownState: Readonly<{
162
- origin: Readonly<{
163
- x: number;
164
- y: number;
165
- }>;
166
- originInGrid: Readonly<{
167
- x: number;
168
- y: number;
169
- }>;
170
- scrollbars: {
171
- isOverEither: boolean;
172
- isOverHorizontal: boolean;
173
- isOverVertical: boolean;
174
- };
175
- lastCoords: {
176
- x: number;
177
- y: number;
178
- };
179
- originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
180
- resize: {
181
- handleType: import("../element/transformHandles").MaybeTransformHandleType;
182
- isResizing: boolean;
183
- offset: {
184
- x: number;
185
- y: number;
186
- };
187
- arrowDirection: "origin" | "end";
188
- center: {
189
- x: number;
190
- y: number;
191
- };
192
- };
193
- hit: {
194
- element: NonDeleted<ExcalidrawElement> | null;
195
- allHitElements: NonDeleted<ExcalidrawElement>[];
196
- wasAddedToSelection: boolean;
197
- hasBeenDuplicated: boolean;
198
- hasHitCommonBoundingBoxOfSelectedElements: boolean;
199
- };
200
- withCmdOrCtrl: boolean;
201
- drag: {
202
- hasOccurred: boolean;
203
- offset: {
204
- x: number;
205
- y: number;
206
- } | null;
207
- };
208
- eventListeners: {
209
- onMove: {
210
- (...args: any[]): void;
211
- flush(): void;
212
- cancel(): void;
213
- } | null;
214
- onUp: ((event: PointerEvent) => void) | null;
215
- onKeyDown: ((event: KeyboardEvent) => void) | null;
216
- onKeyUp: ((event: KeyboardEvent) => void) | null;
217
- };
218
- boxSelection: {
219
- hasOccurred: boolean;
220
- };
221
- }>, event: PointerEvent]>;
222
- onUserFollowEmitter: Emitter<[payload: OnUserFollowedPayload]>;
223
- onScrollChangeEmitter: Emitter<[scrollX: number, scrollY: number, zoom: Readonly<{
224
- value: import("../types").NormalizedZoomValue;
225
- }>]>;
226
- missingPointerEventCleanupEmitter: Emitter<[event: PointerEvent | null]>;
227
- onRemoveEventListenersEmitter: Emitter<[]>;
228
- constructor(props: AppProps);
229
- private onWindowMessage;
230
- private cacheEmbeddableRef;
231
- /**
232
- * Returns gridSize taking into account `gridModeEnabled`.
233
- * If disabled, returns null.
234
- */
235
- getEffectiveGridSize: () => NullableGridSize;
236
- private getHTMLIFrameElement;
237
- private handleEmbeddableCenterClick;
238
- private isIframeLikeElementCenter;
239
- private updateEmbedValidationStatus;
240
- private updateEmbeddables;
241
- private renderEmbeddables;
242
- private getFrameNameDOMId;
243
- frameNameBoundsCache: FrameNameBoundsCache;
244
- private renderFrameNames;
245
- private toggleOverscrollBehavior;
246
- render(): JSX.Element;
247
- focusContainer: AppClassProperties["focusContainer"];
248
- getSceneElementsIncludingDeleted: () => readonly import("../element/types").OrderedExcalidrawElement[];
249
- getSceneElements: () => readonly Ordered<NonDeletedExcalidrawElement>[];
250
- onInsertElements: (elements: readonly ExcalidrawElement[]) => void;
251
- onExportImage: (type: keyof typeof EXPORT_IMAGE_TYPES, elements: ExportedElements, opts: {
252
- exportingFrame: ExcalidrawFrameLikeElement | null;
253
- }) => Promise<void>;
254
- private magicGenerations;
255
- private updateMagicGeneration;
256
- plugins: {
257
- diagramToCode?: {
258
- generate: GenerateDiagramToCode;
259
- };
260
- };
261
- setPlugins(plugins: Partial<App["plugins"]>): void;
262
- private onMagicFrameGenerate;
263
- private onIframeSrcCopy;
264
- onMagicframeToolSelect: () => void;
265
- private openEyeDropper;
266
- dismissLinearEditor: () => void;
267
- syncActionResult: (actionResult: ActionResult) => void;
268
- private onBlur;
269
- private onUnload;
270
- private disableEvent;
271
- private resetHistory;
272
- private resetStore;
273
- /**
274
- * Resets scene & history.
275
- * ! Do not use to clear scene user action !
276
- */
277
- private resetScene;
278
- private initializeScene;
279
- private isMobileBreakpoint;
280
- private refreshViewportBreakpoints;
281
- private refreshEditorBreakpoints;
282
- componentDidMount(): Promise<void>;
283
- componentWillUnmount(): void;
284
- private onResize;
285
- /** generally invoked only if fullscreen was invoked programmatically */
286
- private onFullscreenChange;
287
- private removeEventListeners;
288
- private addEventListeners;
289
- componentDidUpdate(prevProps: AppProps, prevState: AppState): void;
290
- private renderInteractiveSceneCallback;
291
- private onScroll;
292
- private onCut;
293
- private onCopy;
294
- private static resetTapTwice;
295
- private onTouchStart;
296
- private onTouchEnd;
297
- pasteFromClipboard: (event: ClipboardEvent) => Promise<void>;
298
- addElementsFromPasteOrLibrary: (opts: {
299
- elements: readonly ExcalidrawElement[];
300
- files: BinaryFiles | null;
301
- position: {
302
- clientX: number;
303
- clientY: number;
304
- } | "cursor" | "center";
305
- retainSeed?: boolean;
306
- fitToContent?: boolean;
307
- }) => void;
308
- private addElementsFromMixedContentPaste;
309
- private addTextFromPaste;
310
- setAppState: React.Component<any, AppState>["setState"];
311
- removePointer: (event: React.PointerEvent<HTMLElement> | PointerEvent) => void;
312
- toggleLock: (source?: "keyboard" | "ui") => void;
313
- updateFrameRendering: (opts: Partial<{
314
- enabled: boolean;
315
- name: boolean;
316
- outline: boolean;
317
- clip: boolean;
318
- }> | ((prevState: AppState["frameRendering"]) => Partial<AppState["frameRendering"]>)) => void;
319
- togglePenMode: (force: boolean | null) => void;
320
- onHandToolToggle: () => void;
321
- /**
322
- * Zooms on canvas viewport center
323
- */
324
- zoomCanvas: (value: number) => void;
325
- private cancelInProgressAnimation;
326
- scrollToContent: (target?: ExcalidrawElement | readonly ExcalidrawElement[], opts?: {
327
- fitToContent?: boolean;
328
- fitToViewport?: never;
329
- viewportZoomFactor?: number;
330
- animate?: boolean;
331
- duration?: number;
332
- } | {
333
- fitToContent?: never;
334
- fitToViewport?: boolean;
335
- /** when fitToViewport=true, how much screen should the content cover,
336
- * between 0.1 (10%) and 1 (100%)
337
- */
338
- viewportZoomFactor?: number;
339
- animate?: boolean;
340
- duration?: number;
341
- }) => void;
342
- private maybeUnfollowRemoteUser;
343
- /** use when changing scrollX/scrollY/zoom based on user interaction */
344
- private translateCanvas;
345
- zoomToFit: (target?: readonly ExcalidrawElement[], maxZoom?: number, margin?: number) => void;
346
- startLineEditor: (el: ExcalidrawLinearElement, selectedPointsIndices?: number[] | null) => void;
347
- updateContainerSize: (containers: NonDeletedExcalidrawElement[]) => void;
348
- setToast: (toast: {
349
- message: string;
350
- closable?: boolean;
351
- duration?: number;
352
- } | null) => void;
353
- restoreFileFromShare: () => Promise<void>;
354
- /** adds supplied files to existing files in the appState */
355
- addFiles: ExcalidrawImperativeAPI["addFiles"];
356
- setMobileModeAllowed: ExcalidrawImperativeAPI["setMobileModeAllowed"];
357
- private debounceClearHighlightSearchResults;
358
- selectElements: ExcalidrawImperativeAPI["selectElements"];
359
- bringToFront: ExcalidrawImperativeAPI["bringToFront"];
360
- bringForward: ExcalidrawImperativeAPI["bringForward"];
361
- sendToBack: ExcalidrawImperativeAPI["sendToBack"];
362
- sendBackward: ExcalidrawImperativeAPI["sendBackward"];
363
- updateScene: <K extends keyof AppState>(sceneData: {
364
- elements?: SceneData["elements"];
365
- appState?: Pick<AppState, K> | null | undefined;
366
- collaborators?: SceneData["collaborators"];
367
- /** @default StoreAction.NONE */
368
- storeAction?: SceneData["storeAction"];
369
- forceFlushSync?: boolean | undefined;
370
- }) => void;
371
- private triggerRender;
372
- /**
373
- * @returns whether the menu was toggled on or off
374
- */
375
- toggleSidebar: ({ name, tab, force, }: {
376
- name: SidebarName | null;
377
- tab?: string | undefined;
378
- force?: boolean | undefined;
379
- }) => boolean;
380
- private updateCurrentCursorPosition;
381
- private getEditorUIOffsets;
382
- private onKeyDown;
383
- private onWheel;
384
- private onKeyUp;
385
- private isToolSupported;
386
- setActiveTool: (tool: (({
387
- type: Exclude<ToolType, "image">;
388
- } | {
389
- type: Extract<ToolType, "image">;
390
- insertOnCanvasDirectly?: boolean;
391
- }) | {
392
- type: "custom";
393
- customType: string;
394
- }) & {
395
- locked?: boolean;
396
- }) => void;
397
- setOpenDialog: (dialogType: AppState["openDialog"]) => void;
398
- private setCursor;
399
- private resetCursor;
400
- /**
401
- * returns whether user is making a gesture with >= 2 fingers (points)
402
- * on o touch screen (not on a trackpad). Currently only relates to Darwin
403
- * (iOS/iPadOS,MacOS), but may work on other devices in the future if
404
- * GestureEvent is standardized.
405
- */
406
- private isTouchScreenMultiTouchGesture;
407
- getName: () => string;
408
- private onGestureStart;
409
- private onGestureChange;
410
- private onGestureEnd;
411
- private handleTextWysiwyg;
412
- private deselectElements;
413
- private getTextElementAtPosition;
414
- private getElementAtPosition;
415
- private getElementsAtPosition;
416
- private getElementHitThreshold;
417
- private hitElement;
418
- private getTextBindableContainerAtPosition;
419
- private startTextEditing;
420
- private debounceDoubleClickTimestamp;
421
- private handleCanvasDoubleClick;
422
- private getElementLinkAtPosition;
423
- private redirectToLink;
424
- private getTopLayerFrameAtSceneCoords;
425
- private handleCanvasPointerMove;
426
- private handleEraser;
427
- private handleTouchMove;
428
- handleHoverSelectedLinearElement(linearElementEditor: LinearElementEditor, scenePointerX: number, scenePointerY: number): void;
429
- private handleCanvasPointerDown;
430
- private handleCanvasPointerUp;
431
- private maybeOpenContextMenuAfterPointerDownOnTouchDevices;
432
- private resetContextMenuTimer;
433
- /**
434
- * pointerup may not fire in certian cases (user tabs away...), so in order
435
- * to properly cleanup pointerdown state, we need to fire any hanging
436
- * pointerup handlers manually
437
- */
438
- private maybeCleanupAfterMissingPointerUp;
439
- handleCanvasPanUsingWheelOrSpaceDrag: (event: React.PointerEvent<HTMLElement> | MouseEvent) => boolean;
440
- private updateGestureOnPointerDown;
441
- private initialPointerDownState;
442
- private handleDraggingScrollBar;
443
- private clearSelectionIfNotUsingSelection;
444
- /**
445
- * @returns whether the pointer event has been completely handled
446
- */
447
- private handleSelectionOnPointerDown;
448
- private isASelectedElement;
449
- private isHittingCommonBoundingBoxOfSelectedElements;
450
- private handleTextOnPointerDown;
451
- private handleFreeDrawElementOnPointerDown;
452
- insertIframeElement: ({ sceneX, sceneY, width, height, }: {
453
- sceneX: number;
454
- sceneY: number;
455
- width: number;
456
- height: number;
457
- }) => NonDeleted<ExcalidrawIframeElement>;
458
- insertEmbeddableElement: ({ sceneX, sceneY, link, }: {
459
- sceneX: number;
460
- sceneY: number;
461
- link: string;
462
- }) => NonDeleted<ExcalidrawEmbeddableElement> | undefined;
463
- private createImageElement;
464
- private handleLinearElementOnPointerDown;
465
- private getCurrentItemRoundness;
466
- private createGenericElementOnPointerDown;
467
- private createFrameElementOnPointerDown;
468
- private maybeCacheReferenceSnapPoints;
469
- private maybeCacheVisibleGaps;
470
- private onKeyDownFromPointerDownHandler;
471
- private onKeyUpFromPointerDownHandler;
472
- private onPointerMoveFromPointerDownHandler;
473
- private handlePointerMoveOverScrollbars;
474
- private onPointerUpFromPointerDownHandler;
475
- private restoreReadyToEraseElements;
476
- private eraseElements;
477
- private initializeImage;
478
- /**
479
- * inserts image into elements array and rerenders
480
- */
481
- private insertImageElement;
482
- private setImagePreviewCursor;
483
- private onImageAction;
484
- private initializeImageDimensions;
485
- /** updates image cache, refreshing updated elements and/or setting status
486
- to error for images that fail during <img> element creation */
487
- private updateImageCache;
488
- /** adds new images to imageCache and re-renders if needed */
489
- private addNewImagesToImageCache;
490
- /** generally you should use `addNewImagesToImageCache()` directly if you need
491
- * to render new images. This is just a failsafe */
492
- private scheduleImageRefresh;
493
- private updateBindingEnabledOnPointerMove;
494
- private maybeSuggestBindingAtCursor;
495
- private maybeSuggestBindingsForLinearElementAtCoords;
496
- setSelection(elements: readonly NonDeletedExcalidrawElement[]): void;
497
- private clearSelection;
498
- private handleInteractiveCanvasRef;
499
- private handleAppOnDrop;
500
- loadFileToCanvas: (file: File, fileHandle: FileSystemHandle | null) => Promise<void>;
501
- private handleCanvasContextMenu;
502
- private maybeDragNewGenericElement;
503
- private maybeHandleResize;
504
- private getContextMenuItems;
505
- private handleWheel;
506
- private getTextWysiwygSnappedToCenterPosition;
507
- private savePointer;
508
- private resetShouldCacheIgnoreZoomDebounced;
509
- private updateDOMRect;
510
- refresh: () => void;
511
- private getCanvasOffsets;
512
- private updateLanguage;
513
- }
514
- declare global {
515
- interface Window {
516
- h: {
517
- scene: Scene;
518
- elements: readonly ExcalidrawElement[];
519
- state: AppState;
520
- setState: React.Component<any, AppState>["setState"];
521
- app: InstanceType<typeof App>;
522
- history: History;
523
- store: Store;
524
- };
525
- }
526
- }
527
- export default App;
1
+ import React from "react";
2
+ import type { RoughCanvas } from "roughjs/bin/canvas";
3
+ import { ActionManager } from "../actions/manager";
4
+ import type { ActionResult } from "../actions/types";
5
+ import { type EXPORT_IMAGE_TYPES } from "../constants";
6
+ import type { ExportedElements } from "../data";
7
+ import { LinearElementEditor } from "../element/linearElementEditor";
8
+ import type { ExcalidrawElement, ExcalidrawLinearElement, NonDeleted, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered } from "../element/types";
9
+ import { History } from "../history";
10
+ import Scene from "../scene/Scene";
11
+ import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, Device, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, GenerateDiagramToCode, NullableGridSize } from "../types";
12
+ import type { FileSystemHandle } from "../data/filesystem";
13
+ import { Fonts } from "../fonts";
14
+ import { Renderer } from "../scene/Renderer";
15
+ import { Emitter } from "../emitter";
16
+ import { Store } from "../store";
17
+ import { AnimationFrameHandler } from "../animation-frame-handler";
18
+ import { AnimatedTrail } from "../animated-trail";
19
+ import { LaserTrails } from "../laser-trails";
20
+ import { FlowChartCreator } from "../element/flowchart";
21
+ export declare const ExcalidrawContainerContext: React.Context<{
22
+ container: HTMLDivElement | null;
23
+ id: string | null;
24
+ }>;
25
+ export declare const useApp: () => AppClassProperties;
26
+ export declare const useAppProps: () => AppProps;
27
+ export declare const useDevice: () => Readonly<{
28
+ viewport: {
29
+ isMobile: boolean;
30
+ isLandscape: boolean;
31
+ };
32
+ editor: {
33
+ isMobile: boolean;
34
+ canFitSidebar: boolean;
35
+ };
36
+ isTouchScreen: boolean;
37
+ }>;
38
+ export declare const useExcalidrawContainer: () => {
39
+ container: HTMLDivElement | null;
40
+ id: string | null;
41
+ };
42
+ export declare const useExcalidrawElements: () => readonly NonDeletedExcalidrawElement[];
43
+ export declare const useExcalidrawAppState: () => AppState;
44
+ 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;
45
+ export declare const useExcalidrawActionManager: () => ActionManager;
46
+ declare class App extends React.Component<AppProps, AppState> {
47
+ canvas: AppClassProperties["canvas"];
48
+ interactiveCanvas: AppClassProperties["interactiveCanvas"];
49
+ rc: RoughCanvas;
50
+ unmounted: boolean;
51
+ actionManager: ActionManager;
52
+ device: Device;
53
+ private excalidrawContainerRef;
54
+ scene: Scene;
55
+ fonts: Fonts;
56
+ renderer: Renderer;
57
+ private resizeObserver;
58
+ private nearestScrollableContainer;
59
+ library: AppClassProperties["library"];
60
+ libraryItemsFromStorage: LibraryItems | undefined;
61
+ id: string;
62
+ private store;
63
+ private history;
64
+ private excalidrawContainerValue;
65
+ files: BinaryFiles;
66
+ imageCache: AppClassProperties["imageCache"];
67
+ private iFrameRefs;
68
+ /**
69
+ * Indicates whether the embeddable's url has been validated for rendering.
70
+ * If value not set, indicates that the validation is pending.
71
+ * Initially or on url change the flag is not reset so that we can guarantee
72
+ * the validation came from a trusted source (the editor).
73
+ **/
74
+ private embedsValidationStatus;
75
+ /** embeds that have been inserted to DOM (as a perf optim, we don't want to
76
+ * insert to DOM before user initially scrolls to them) */
77
+ private initializedEmbeds;
78
+ private elementsPendingErasure;
79
+ flowChartCreator: FlowChartCreator;
80
+ private flowChartNavigator;
81
+ hitLinkElement?: NonDeletedExcalidrawElement;
82
+ lastPointerDownEvent: React.PointerEvent<HTMLElement> | null;
83
+ lastPointerUpEvent: React.PointerEvent<HTMLElement> | PointerEvent | null;
84
+ lastPointerMoveEvent: PointerEvent | null;
85
+ lastViewportPosition: {
86
+ x: number;
87
+ y: number;
88
+ };
89
+ allowMobileMode: boolean;
90
+ animationFrameHandler: AnimationFrameHandler;
91
+ laserTrails: LaserTrails;
92
+ eraserTrail: AnimatedTrail;
93
+ onChangeEmitter: Emitter<[elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles]>;
94
+ onPointerDownEmitter: Emitter<[activeTool: {
95
+ lastActiveTool: import("../types").ActiveTool | null;
96
+ locked: boolean;
97
+ } & import("../types").ActiveTool, pointerDownState: Readonly<{
98
+ origin: Readonly<{
99
+ x: number;
100
+ y: number;
101
+ }>;
102
+ originInGrid: Readonly<{
103
+ x: number;
104
+ y: number;
105
+ }>;
106
+ scrollbars: {
107
+ isOverEither: boolean;
108
+ isOverHorizontal: boolean;
109
+ isOverVertical: boolean;
110
+ };
111
+ lastCoords: {
112
+ x: number;
113
+ y: number;
114
+ };
115
+ originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
116
+ resize: {
117
+ handleType: import("../element/transformHandles").MaybeTransformHandleType;
118
+ isResizing: boolean;
119
+ offset: {
120
+ x: number;
121
+ y: number;
122
+ };
123
+ arrowDirection: "origin" | "end";
124
+ center: {
125
+ x: number;
126
+ y: number;
127
+ };
128
+ };
129
+ hit: {
130
+ element: NonDeleted<ExcalidrawElement> | null;
131
+ allHitElements: NonDeleted<ExcalidrawElement>[];
132
+ wasAddedToSelection: boolean;
133
+ hasBeenDuplicated: boolean;
134
+ hasHitCommonBoundingBoxOfSelectedElements: boolean;
135
+ };
136
+ withCmdOrCtrl: boolean;
137
+ drag: {
138
+ hasOccurred: boolean;
139
+ offset: {
140
+ x: number;
141
+ y: number;
142
+ } | null;
143
+ };
144
+ eventListeners: {
145
+ onMove: {
146
+ (...args: any[]): void;
147
+ flush(): void;
148
+ cancel(): void;
149
+ } | null;
150
+ onUp: ((event: PointerEvent) => void) | null;
151
+ onKeyDown: ((event: KeyboardEvent) => void) | null;
152
+ onKeyUp: ((event: KeyboardEvent) => void) | null;
153
+ };
154
+ boxSelection: {
155
+ hasOccurred: boolean;
156
+ };
157
+ }>, event: React.PointerEvent<HTMLElement>]>;
158
+ onPointerUpEmitter: Emitter<[activeTool: {
159
+ lastActiveTool: import("../types").ActiveTool | null;
160
+ locked: boolean;
161
+ } & import("../types").ActiveTool, pointerDownState: Readonly<{
162
+ origin: Readonly<{
163
+ x: number;
164
+ y: number;
165
+ }>;
166
+ originInGrid: Readonly<{
167
+ x: number;
168
+ y: number;
169
+ }>;
170
+ scrollbars: {
171
+ isOverEither: boolean;
172
+ isOverHorizontal: boolean;
173
+ isOverVertical: boolean;
174
+ };
175
+ lastCoords: {
176
+ x: number;
177
+ y: number;
178
+ };
179
+ originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
180
+ resize: {
181
+ handleType: import("../element/transformHandles").MaybeTransformHandleType;
182
+ isResizing: boolean;
183
+ offset: {
184
+ x: number;
185
+ y: number;
186
+ };
187
+ arrowDirection: "origin" | "end";
188
+ center: {
189
+ x: number;
190
+ y: number;
191
+ };
192
+ };
193
+ hit: {
194
+ element: NonDeleted<ExcalidrawElement> | null;
195
+ allHitElements: NonDeleted<ExcalidrawElement>[];
196
+ wasAddedToSelection: boolean;
197
+ hasBeenDuplicated: boolean;
198
+ hasHitCommonBoundingBoxOfSelectedElements: boolean;
199
+ };
200
+ withCmdOrCtrl: boolean;
201
+ drag: {
202
+ hasOccurred: boolean;
203
+ offset: {
204
+ x: number;
205
+ y: number;
206
+ } | null;
207
+ };
208
+ eventListeners: {
209
+ onMove: {
210
+ (...args: any[]): void;
211
+ flush(): void;
212
+ cancel(): void;
213
+ } | null;
214
+ onUp: ((event: PointerEvent) => void) | null;
215
+ onKeyDown: ((event: KeyboardEvent) => void) | null;
216
+ onKeyUp: ((event: KeyboardEvent) => void) | null;
217
+ };
218
+ boxSelection: {
219
+ hasOccurred: boolean;
220
+ };
221
+ }>, event: PointerEvent]>;
222
+ onUserFollowEmitter: Emitter<[payload: OnUserFollowedPayload]>;
223
+ onScrollChangeEmitter: Emitter<[scrollX: number, scrollY: number, zoom: Readonly<{
224
+ value: import("../types").NormalizedZoomValue;
225
+ }>]>;
226
+ missingPointerEventCleanupEmitter: Emitter<[event: PointerEvent | null]>;
227
+ onRemoveEventListenersEmitter: Emitter<[]>;
228
+ constructor(props: AppProps);
229
+ private onWindowMessage;
230
+ private cacheEmbeddableRef;
231
+ /**
232
+ * Returns gridSize taking into account `gridModeEnabled`.
233
+ * If disabled, returns null.
234
+ */
235
+ getEffectiveGridSize: () => NullableGridSize;
236
+ private getHTMLIFrameElement;
237
+ private handleEmbeddableCenterClick;
238
+ private isIframeLikeElementCenter;
239
+ private updateEmbedValidationStatus;
240
+ private updateEmbeddables;
241
+ private renderEmbeddables;
242
+ private getFrameNameDOMId;
243
+ frameNameBoundsCache: FrameNameBoundsCache;
244
+ private renderFrameNames;
245
+ private toggleOverscrollBehavior;
246
+ render(): JSX.Element;
247
+ focusContainer: AppClassProperties["focusContainer"];
248
+ getSceneElementsIncludingDeleted: () => readonly import("../element/types").OrderedExcalidrawElement[];
249
+ getSceneElements: () => readonly Ordered<NonDeletedExcalidrawElement>[];
250
+ onInsertElements: (elements: readonly ExcalidrawElement[]) => void;
251
+ onExportImage: (type: keyof typeof EXPORT_IMAGE_TYPES, elements: ExportedElements, opts: {
252
+ exportingFrame: ExcalidrawFrameLikeElement | null;
253
+ }) => Promise<void>;
254
+ private magicGenerations;
255
+ private updateMagicGeneration;
256
+ plugins: {
257
+ diagramToCode?: {
258
+ generate: GenerateDiagramToCode;
259
+ };
260
+ };
261
+ setPlugins(plugins: Partial<App["plugins"]>): void;
262
+ private onMagicFrameGenerate;
263
+ private onIframeSrcCopy;
264
+ onMagicframeToolSelect: () => void;
265
+ private openEyeDropper;
266
+ dismissLinearEditor: () => void;
267
+ syncActionResult: (actionResult: ActionResult) => void;
268
+ private onBlur;
269
+ private onUnload;
270
+ private disableEvent;
271
+ private resetHistory;
272
+ private resetStore;
273
+ /**
274
+ * Resets scene & history.
275
+ * ! Do not use to clear scene user action !
276
+ */
277
+ private resetScene;
278
+ private initializeScene;
279
+ private isMobileBreakpoint;
280
+ private refreshViewportBreakpoints;
281
+ private refreshEditorBreakpoints;
282
+ componentDidMount(): Promise<void>;
283
+ componentWillUnmount(): void;
284
+ private onResize;
285
+ /** generally invoked only if fullscreen was invoked programmatically */
286
+ private onFullscreenChange;
287
+ private removeEventListeners;
288
+ private addEventListeners;
289
+ componentDidUpdate(prevProps: AppProps, prevState: AppState): void;
290
+ private renderInteractiveSceneCallback;
291
+ private onScroll;
292
+ private onCut;
293
+ private onCopy;
294
+ private static resetTapTwice;
295
+ private onTouchStart;
296
+ private onTouchEnd;
297
+ pasteFromClipboard: (event: ClipboardEvent) => Promise<void>;
298
+ addElementsFromPasteOrLibrary: (opts: {
299
+ elements: readonly ExcalidrawElement[];
300
+ files: BinaryFiles | null;
301
+ position: {
302
+ clientX: number;
303
+ clientY: number;
304
+ } | "cursor" | "center";
305
+ retainSeed?: boolean;
306
+ fitToContent?: boolean;
307
+ }) => void;
308
+ private addElementsFromMixedContentPaste;
309
+ private addTextFromPaste;
310
+ setAppState: React.Component<any, AppState>["setState"];
311
+ removePointer: (event: React.PointerEvent<HTMLElement> | PointerEvent) => void;
312
+ toggleLock: (source?: "keyboard" | "ui") => void;
313
+ updateFrameRendering: (opts: Partial<{
314
+ enabled: boolean;
315
+ name: boolean;
316
+ outline: boolean;
317
+ clip: boolean;
318
+ }> | ((prevState: AppState["frameRendering"]) => Partial<AppState["frameRendering"]>)) => void;
319
+ togglePenMode: (force: boolean | null) => void;
320
+ onHandToolToggle: () => void;
321
+ /**
322
+ * Zooms on canvas viewport center
323
+ */
324
+ zoomCanvas: (value: number) => void;
325
+ private cancelInProgressAnimation;
326
+ scrollToContent: (target?: ExcalidrawElement | readonly ExcalidrawElement[], opts?: {
327
+ fitToContent?: boolean;
328
+ fitToViewport?: never;
329
+ viewportZoomFactor?: number;
330
+ animate?: boolean;
331
+ duration?: number;
332
+ } | {
333
+ fitToContent?: never;
334
+ fitToViewport?: boolean;
335
+ /** when fitToViewport=true, how much screen should the content cover,
336
+ * between 0.1 (10%) and 1 (100%)
337
+ */
338
+ viewportZoomFactor?: number;
339
+ animate?: boolean;
340
+ duration?: number;
341
+ }) => void;
342
+ private maybeUnfollowRemoteUser;
343
+ /** use when changing scrollX/scrollY/zoom based on user interaction */
344
+ private translateCanvas;
345
+ zoomToFit: (target?: readonly ExcalidrawElement[], maxZoom?: number, margin?: number) => void;
346
+ startLineEditor: (el: ExcalidrawLinearElement, selectedPointsIndices?: number[] | null) => void;
347
+ updateContainerSize: (containers: NonDeletedExcalidrawElement[]) => void;
348
+ setToast: (toast: {
349
+ message: string;
350
+ closable?: boolean;
351
+ duration?: number;
352
+ } | null) => void;
353
+ restoreFileFromShare: () => Promise<void>;
354
+ /** adds supplied files to existing files in the appState */
355
+ addFiles: ExcalidrawImperativeAPI["addFiles"];
356
+ setMobileModeAllowed: ExcalidrawImperativeAPI["setMobileModeAllowed"];
357
+ private debounceClearHighlightSearchResults;
358
+ selectElements: ExcalidrawImperativeAPI["selectElements"];
359
+ bringToFront: ExcalidrawImperativeAPI["bringToFront"];
360
+ bringForward: ExcalidrawImperativeAPI["bringForward"];
361
+ sendToBack: ExcalidrawImperativeAPI["sendToBack"];
362
+ sendBackward: ExcalidrawImperativeAPI["sendBackward"];
363
+ updateScene: <K extends keyof AppState>(sceneData: {
364
+ elements?: SceneData["elements"];
365
+ appState?: Pick<AppState, K> | null | undefined;
366
+ collaborators?: SceneData["collaborators"];
367
+ /** @default StoreAction.NONE */
368
+ storeAction?: SceneData["storeAction"];
369
+ forceFlushSync?: boolean | undefined;
370
+ }) => void;
371
+ private triggerRender;
372
+ /**
373
+ * @returns whether the menu was toggled on or off
374
+ */
375
+ toggleSidebar: ({ name, tab, force, }: {
376
+ name: SidebarName | null;
377
+ tab?: string | undefined;
378
+ force?: boolean | undefined;
379
+ }) => boolean;
380
+ private updateCurrentCursorPosition;
381
+ private getEditorUIOffsets;
382
+ private onKeyDown;
383
+ private onKeyUp;
384
+ private isToolSupported;
385
+ setActiveTool: (tool: (({
386
+ type: Exclude<ToolType, "image">;
387
+ } | {
388
+ type: Extract<ToolType, "image">;
389
+ insertOnCanvasDirectly?: boolean;
390
+ }) | {
391
+ type: "custom";
392
+ customType: string;
393
+ }) & {
394
+ locked?: boolean;
395
+ }) => void;
396
+ setOpenDialog: (dialogType: AppState["openDialog"]) => void;
397
+ private setCursor;
398
+ private resetCursor;
399
+ /**
400
+ * returns whether user is making a gesture with >= 2 fingers (points)
401
+ * on o touch screen (not on a trackpad). Currently only relates to Darwin
402
+ * (iOS/iPadOS,MacOS), but may work on other devices in the future if
403
+ * GestureEvent is standardized.
404
+ */
405
+ private isTouchScreenMultiTouchGesture;
406
+ getName: () => string;
407
+ private onGestureStart;
408
+ private onGestureChange;
409
+ private onGestureEnd;
410
+ private handleTextWysiwyg;
411
+ private deselectElements;
412
+ private getTextElementAtPosition;
413
+ private getElementAtPosition;
414
+ private getElementsAtPosition;
415
+ private getElementHitThreshold;
416
+ private hitElement;
417
+ private getTextBindableContainerAtPosition;
418
+ private startTextEditing;
419
+ private debounceDoubleClickTimestamp;
420
+ private handleCanvasDoubleClick;
421
+ private getElementLinkAtPosition;
422
+ private redirectToLink;
423
+ private getTopLayerFrameAtSceneCoords;
424
+ private handleCanvasPointerMove;
425
+ private handleEraser;
426
+ private handleTouchMove;
427
+ handleHoverSelectedLinearElement(linearElementEditor: LinearElementEditor, scenePointerX: number, scenePointerY: number): void;
428
+ private handleCanvasPointerDown;
429
+ private handleCanvasPointerUp;
430
+ private maybeOpenContextMenuAfterPointerDownOnTouchDevices;
431
+ private resetContextMenuTimer;
432
+ /**
433
+ * pointerup may not fire in certian cases (user tabs away...), so in order
434
+ * to properly cleanup pointerdown state, we need to fire any hanging
435
+ * pointerup handlers manually
436
+ */
437
+ private maybeCleanupAfterMissingPointerUp;
438
+ handleCanvasPanUsingWheelOrSpaceDrag: (event: React.PointerEvent<HTMLElement> | MouseEvent) => boolean;
439
+ private updateGestureOnPointerDown;
440
+ private initialPointerDownState;
441
+ private handleDraggingScrollBar;
442
+ private clearSelectionIfNotUsingSelection;
443
+ /**
444
+ * @returns whether the pointer event has been completely handled
445
+ */
446
+ private handleSelectionOnPointerDown;
447
+ private isASelectedElement;
448
+ private isHittingCommonBoundingBoxOfSelectedElements;
449
+ private handleTextOnPointerDown;
450
+ private handleFreeDrawElementOnPointerDown;
451
+ insertIframeElement: ({ sceneX, sceneY, width, height, }: {
452
+ sceneX: number;
453
+ sceneY: number;
454
+ width: number;
455
+ height: number;
456
+ }) => NonDeleted<ExcalidrawIframeElement>;
457
+ insertEmbeddableElement: ({ sceneX, sceneY, link, }: {
458
+ sceneX: number;
459
+ sceneY: number;
460
+ link: string;
461
+ }) => NonDeleted<ExcalidrawEmbeddableElement> | undefined;
462
+ private createImageElement;
463
+ private handleLinearElementOnPointerDown;
464
+ private getCurrentItemRoundness;
465
+ private createGenericElementOnPointerDown;
466
+ private createFrameElementOnPointerDown;
467
+ private maybeCacheReferenceSnapPoints;
468
+ private maybeCacheVisibleGaps;
469
+ private onKeyDownFromPointerDownHandler;
470
+ private onKeyUpFromPointerDownHandler;
471
+ private onPointerMoveFromPointerDownHandler;
472
+ private handlePointerMoveOverScrollbars;
473
+ private onPointerUpFromPointerDownHandler;
474
+ private restoreReadyToEraseElements;
475
+ private eraseElements;
476
+ private initializeImage;
477
+ /**
478
+ * inserts image into elements array and rerenders
479
+ */
480
+ private insertImageElement;
481
+ private setImagePreviewCursor;
482
+ private onImageAction;
483
+ private initializeImageDimensions;
484
+ /** updates image cache, refreshing updated elements and/or setting status
485
+ to error for images that fail during <img> element creation */
486
+ private updateImageCache;
487
+ /** adds new images to imageCache and re-renders if needed */
488
+ private addNewImagesToImageCache;
489
+ /** generally you should use `addNewImagesToImageCache()` directly if you need
490
+ * to render new images. This is just a failsafe */
491
+ private scheduleImageRefresh;
492
+ private updateBindingEnabledOnPointerMove;
493
+ private maybeSuggestBindingAtCursor;
494
+ private maybeSuggestBindingsForLinearElementAtCoords;
495
+ setSelection(elements: readonly NonDeletedExcalidrawElement[]): void;
496
+ private clearSelection;
497
+ private handleInteractiveCanvasRef;
498
+ private handleAppOnDrop;
499
+ loadFileToCanvas: (file: File, fileHandle: FileSystemHandle | null) => Promise<void>;
500
+ private handleCanvasContextMenu;
501
+ private maybeDragNewGenericElement;
502
+ private maybeHandleResize;
503
+ private getContextMenuItems;
504
+ private handleWheel;
505
+ private getTextWysiwygSnappedToCenterPosition;
506
+ private savePointer;
507
+ private resetShouldCacheIgnoreZoomDebounced;
508
+ private updateDOMRect;
509
+ refresh: () => void;
510
+ private getCanvasOffsets;
511
+ private updateLanguage;
512
+ }
513
+ declare global {
514
+ interface Window {
515
+ h: {
516
+ scene: Scene;
517
+ elements: readonly ExcalidrawElement[];
518
+ state: AppState;
519
+ setState: React.Component<any, AppState>["setState"];
520
+ app: InstanceType<typeof App>;
521
+ history: History;
522
+ store: Store;
523
+ };
524
+ }
525
+ }
526
+ export default App;