@zsviczian/excalidraw 0.15.2-obsidian-13 → 0.15.3-obsidian-1

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 (434) hide show
  1. package/dist/excalidraw.development.js +56 -56
  2. package/dist/excalidraw.production.min.js +1 -1
  3. package/package.json +1 -1
  4. package/types/actions/actionAddToLibrary.d.ts +452 -440
  5. package/types/actions/actionAlign.d.ts +96 -96
  6. package/types/actions/actionBoundText.d.ts +338 -330
  7. package/types/actions/actionCanvas.d.ts +1892 -1844
  8. package/types/actions/actionClipboard.d.ts +848 -828
  9. package/types/actions/actionDeleteSelected.d.ts +486 -474
  10. package/types/actions/actionDistribute.d.ts +32 -32
  11. package/types/actions/actionDuplicateSelection.d.ts +21 -21
  12. package/types/actions/actionElementLock.d.ts +323 -315
  13. package/types/actions/actionExport.d.ts +1424 -1388
  14. package/types/actions/actionFinalize.d.ts +306 -298
  15. package/types/actions/actionFlip.d.ts +32 -32
  16. package/types/actions/actionFrame.d.ts +501 -489
  17. package/types/actions/actionGroup.d.ts +334 -326
  18. package/types/actions/actionHistory.d.ts +6 -6
  19. package/types/actions/actionLinearEditor.d.ts +161 -157
  20. package/types/actions/actionMenu.d.ts +490 -478
  21. package/types/actions/actionNavigate.d.ts +14 -14
  22. package/types/actions/actionProperties.d.ts +2064 -2012
  23. package/types/actions/actionSelectAll.d.ts +161 -157
  24. package/types/actions/actionStyles.d.ts +175 -171
  25. package/types/actions/actionToggleGridMode.d.ts +164 -160
  26. package/types/actions/actionToggleStats.d.ts +161 -157
  27. package/types/actions/actionToggleViewMode.d.ts +163 -159
  28. package/types/actions/actionToggleZenMode.d.ts +163 -159
  29. package/types/actions/actionZindex.d.ts +67 -67
  30. package/types/actions/index.d.ts +24 -24
  31. package/types/actions/manager.d.ts +21 -21
  32. package/types/actions/register.d.ts +5 -5
  33. package/types/actions/shortcuts.d.ts +4 -4
  34. package/types/actions/types.d.ts +45 -45
  35. package/types/align.d.ts +6 -6
  36. package/types/analytics.d.ts +1 -1
  37. package/types/appState.d.ts +81 -81
  38. package/types/charts.d.ts +27 -27
  39. package/types/clients.d.ts +5 -5
  40. package/types/clipboard.d.ts +26 -26
  41. package/types/colors.d.ts +61 -61
  42. package/types/components/Actions.d.ts +36 -36
  43. package/types/components/ActiveConfirmDialog.d.ts +4 -4
  44. package/types/components/App.d.ts +290 -290
  45. package/types/components/Avatar.d.ts +10 -10
  46. package/types/components/BraveMeasureTextError.d.ts +2 -2
  47. package/types/components/Button.d.ts +16 -16
  48. package/types/components/ButtonIconSelect.d.ts +19 -19
  49. package/types/components/Card.d.ts +6 -6
  50. package/types/components/CheckboxItem.d.ts +8 -8
  51. package/types/components/ColorPicker/ColorInput.d.ts +7 -7
  52. package/types/components/ColorPicker/ColorPicker.d.ts +19 -19
  53. package/types/components/ColorPicker/CustomColorList.d.ts +8 -8
  54. package/types/components/ColorPicker/HotkeyLabel.d.ts +8 -8
  55. package/types/components/ColorPicker/Picker.d.ts +18 -18
  56. package/types/components/ColorPicker/PickerColorList.d.ts +10 -10
  57. package/types/components/ColorPicker/PickerHeading.d.ts +5 -5
  58. package/types/components/ColorPicker/ShadeList.d.ts +8 -8
  59. package/types/components/ColorPicker/TopPicks.d.ts +9 -9
  60. package/types/components/ColorPicker/colorPickerUtils.d.ts +21 -21
  61. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +20 -20
  62. package/types/components/ConfirmDialog.d.ts +10 -10
  63. package/types/components/ContextMenu.d.ts +15 -15
  64. package/types/components/DarkModeToggle.d.ts +7 -7
  65. package/types/components/DefaultSidebar.d.ts +29 -29
  66. package/types/components/Dialog.d.ts +13 -13
  67. package/types/components/DialogActionButton.d.ts +10 -10
  68. package/types/components/ErrorDialog.d.ts +5 -5
  69. package/types/components/EyeDropper.d.ts +17 -17
  70. package/types/components/FilledButton.d.ts +17 -17
  71. package/types/components/FixedSideContainer.d.ts +9 -9
  72. package/types/components/HandButton.d.ts +10 -10
  73. package/types/components/HelpButton.d.ts +7 -7
  74. package/types/components/HelpDialog.d.ts +4 -4
  75. package/types/components/HintViewer.d.ts +10 -10
  76. package/types/components/IconPicker.d.ts +13 -13
  77. package/types/components/ImageExportDialog.d.ts +13 -13
  78. package/types/components/InitializeApp.d.ts +10 -10
  79. package/types/components/Island.d.ts +10 -10
  80. package/types/components/JSONExportDialog.d.ts +15 -15
  81. package/types/components/LayerUI.d.ts +33 -33
  82. package/types/components/LibraryMenu.d.ts +24 -24
  83. package/types/components/LibraryMenuBrowseButton.d.ts +7 -7
  84. package/types/components/LibraryMenuControlButtons.d.ts +9 -9
  85. package/types/components/LibraryMenuHeaderContent.d.ts +17 -17
  86. package/types/components/LibraryMenuItems.d.ts +14 -14
  87. package/types/components/LibraryMenuSection.d.ts +22 -22
  88. package/types/components/LibraryUnit.d.ts +14 -14
  89. package/types/components/LoadingMessage.d.ts +5 -5
  90. package/types/components/LockButton.d.ts +10 -10
  91. package/types/components/MobileMenu.d.ts +27 -27
  92. package/types/components/Modal.d.ts +13 -13
  93. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -17
  94. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -17
  95. package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -22
  96. package/types/components/PasteChartDialog.d.ts +8 -8
  97. package/types/components/PenModeButton.d.ts +12 -12
  98. package/types/components/Popover.d.ts +15 -15
  99. package/types/components/ProjectName.d.ts +11 -11
  100. package/types/components/PublishLibrary.d.ts +16 -16
  101. package/types/components/RadioGroup.d.ts +12 -12
  102. package/types/components/Section.d.ts +6 -6
  103. package/types/components/Sidebar/Sidebar.d.ts +76 -76
  104. package/types/components/Sidebar/SidebarHeader.d.ts +7 -7
  105. package/types/components/Sidebar/SidebarTab.d.ts +8 -8
  106. package/types/components/Sidebar/SidebarTabTrigger.d.ts +9 -9
  107. package/types/components/Sidebar/SidebarTabTriggers.d.ts +6 -6
  108. package/types/components/Sidebar/SidebarTabs.d.ts +6 -6
  109. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -6
  110. package/types/components/Sidebar/common.d.ts +33 -33
  111. package/types/components/Spinner.d.ts +7 -7
  112. package/types/components/Stack.d.ts +16 -16
  113. package/types/components/Stats.d.ts +11 -11
  114. package/types/components/Switch.d.ts +9 -9
  115. package/types/components/Toast.d.ts +7 -7
  116. package/types/components/ToolButton.d.ts +47 -47
  117. package/types/components/Tooltip.d.ts +17 -17
  118. package/types/components/Trans.d.ts +9 -9
  119. package/types/components/UserList.d.ts +8 -8
  120. package/types/components/canvases/InteractiveCanvas.d.ts +27 -26
  121. package/types/components/canvases/StaticCanvas.d.ts +18 -18
  122. package/types/components/canvases/index.d.ts +3 -3
  123. package/types/components/dropdownMenu/DropdownMenu.d.ts +67 -67
  124. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +15 -15
  125. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -11
  126. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +12 -12
  127. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +6 -6
  128. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +6 -6
  129. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +13 -13
  130. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -5
  131. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -10
  132. package/types/components/dropdownMenu/common.d.ts +6 -6
  133. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -3
  134. package/types/components/footer/Footer.d.ts +12 -12
  135. package/types/components/footer/FooterCenter.d.ts +8 -8
  136. package/types/components/hoc/withInternalFallback.d.ts +4 -4
  137. package/types/components/icons.d.ts +154 -154
  138. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -9
  139. package/types/components/main-menu/DefaultItems.d.ts +44 -44
  140. package/types/components/main-menu/MainMenu.d.ts +61 -61
  141. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +57 -57
  142. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -19
  143. package/types/components/welcome-screen/WelcomeScreen.d.ts +84 -84
  144. package/types/constants.d.ts +230 -230
  145. package/types/context/tunnels.d.ts +19 -19
  146. package/types/context/ui-appState.d.ts +4 -4
  147. package/types/data/blob.d.ts +48 -48
  148. package/types/data/encode.d.ts +53 -53
  149. package/types/data/encryption.d.ts +9 -9
  150. package/types/data/filesystem.d.ts +19 -19
  151. package/types/data/image.d.ts +15 -15
  152. package/types/data/index.d.ts +13 -13
  153. package/types/data/json.d.ts +16 -16
  154. package/types/data/library.d.ts +54 -54
  155. package/types/data/resave.d.ts +5 -5
  156. package/types/data/restore.d.ts +21 -21
  157. package/types/data/transform.d.ts +71 -71
  158. package/types/data/types.d.ts +45 -45
  159. package/types/data/url.d.ts +7 -7
  160. package/types/distribute.d.ts +6 -6
  161. package/types/element/Hyperlink.d.ts +185 -181
  162. package/types/element/binding.d.ts +34 -34
  163. package/types/element/bounds.d.ts +53 -53
  164. package/types/element/collision.d.ts +21 -21
  165. package/types/element/dragElements.d.ts +6 -6
  166. package/types/element/embeddable.d.ts +179 -175
  167. package/types/element/image.d.ts +32 -32
  168. package/types/element/index.d.ts +21 -21
  169. package/types/element/linearElementEditor.d.ts +296 -292
  170. package/types/element/mutateElement.d.ts +12 -12
  171. package/types/element/newElement.d.ts +99 -99
  172. package/types/element/resizeElements.d.ts +9 -9
  173. package/types/element/resizeTest.d.ts +13 -13
  174. package/types/element/showSelectedShapeActions.d.ts +3 -3
  175. package/types/element/sizeHelpers.d.ts +28 -28
  176. package/types/element/sortElements.d.ts +2 -2
  177. package/types/element/textElement.d.ts +78 -78
  178. package/types/element/textWysiwyg.d.ts +21 -21
  179. package/types/element/transformHandles.d.ts +35 -35
  180. package/types/element/typeChecks.d.ts +29 -29
  181. package/types/element/types.d.ts +166 -166
  182. package/types/errors.d.ts +8 -8
  183. package/types/frame.d.ts +40 -40
  184. package/types/ga.d.ts +63 -63
  185. package/types/gadirections.d.ts +8 -8
  186. package/types/galines.d.ts +22 -22
  187. package/types/gapoints.d.ts +7 -7
  188. package/types/gatransforms.d.ts +10 -10
  189. package/types/gesture.d.ts +6 -6
  190. package/types/groups.d.ts +31 -30
  191. package/types/history.d.ts +52 -52
  192. package/types/hooks/useCallbackRefState.d.ts +1 -1
  193. package/types/hooks/useCreatePortalContainer.d.ts +5 -5
  194. package/types/hooks/useLibraryItemSvg.d.ts +11 -11
  195. package/types/hooks/useOutsideClick.d.ts +19 -19
  196. package/types/hooks/useScrollPosition.d.ts +1 -1
  197. package/types/hooks/useTransition.d.ts +2 -2
  198. package/types/i18n.d.ts +24 -24
  199. package/types/jotai.d.ts +34 -34
  200. package/types/keys.d.ts +80 -80
  201. package/types/math.d.ts +30 -30
  202. package/types/packages/excalidraw/dist/excalidraw.development.d.ts +2 -2
  203. package/types/packages/excalidraw/dist/excalidraw.production.min.d.ts +1 -1
  204. package/types/packages/excalidraw/entry.d.ts +1 -1
  205. package/types/packages/excalidraw/env.d.ts +1 -1
  206. package/types/packages/excalidraw/example/App.d.ts +14 -14
  207. package/types/packages/excalidraw/example/CustomFooter.d.ts +5 -5
  208. package/types/packages/excalidraw/example/MobileFooter.d.ts +5 -5
  209. package/types/packages/excalidraw/example/index.d.ts +1 -1
  210. package/types/packages/excalidraw/example/initialData.d.ts +290 -290
  211. package/types/packages/excalidraw/example/sidebar/ExampleSidebar.d.ts +5 -5
  212. package/types/packages/excalidraw/index.d.ts +39 -39
  213. package/types/packages/excalidraw/main.d.ts +2 -2
  214. package/types/packages/excalidraw/publicPath.d.ts +1 -1
  215. package/types/packages/excalidraw/webpack.dev-server.config.d.ts +19 -19
  216. package/types/packages/excalidraw/webpack.dev.config.d.ts +80 -80
  217. package/types/packages/excalidraw/webpack.prod.config.d.ts +95 -95
  218. package/types/packages/utils.d.ts +43 -43
  219. package/types/points.d.ts +7 -7
  220. package/types/polyfill.d.ts +2 -2
  221. package/types/random.d.ts +4 -4
  222. package/types/renderer/easingFunctions.d.ts +6 -6
  223. package/types/renderer/renderElement.d.ts +25 -25
  224. package/types/renderer/renderScene.d.ts +31 -31
  225. package/types/renderer/roundRect.d.ts +11 -11
  226. package/types/scene/Fonts.d.ts +21 -21
  227. package/types/scene/Renderer.d.ts +25 -25
  228. package/types/scene/Scene.d.ts +62 -62
  229. package/types/scene/Shape.d.ts +12 -12
  230. package/types/scene/ShapeCache.d.ts +20 -20
  231. package/types/scene/comparisons.d.ts +10 -10
  232. package/types/scene/export.d.ts +25 -25
  233. package/types/scene/index.d.ts +5 -5
  234. package/types/scene/scroll.d.ts +17 -17
  235. package/types/scene/scrollbars.d.ts +12 -12
  236. package/types/scene/selection.d.ts +31 -31
  237. package/types/scene/types.d.ts +92 -92
  238. package/types/scene/zoom.d.ts +13 -13
  239. package/types/shapes.d.ts +62 -62
  240. package/types/types.d.ts +547 -544
  241. package/types/utility-types.d.ts +24 -24
  242. package/types/utils.d.ts +200 -200
  243. package/types/zindex.d.ts +6 -6
  244. package/types/actions/actionToggleLock.d.ts +0 -135
  245. package/types/components/ColorPicker.d.ts +0 -19
  246. package/types/components/LibraryButton.d.ts +0 -8
  247. package/types/components/SingleLibraryItem.d.ts +0 -10
  248. package/types/components/context/tunnels.d.ts +0 -16
  249. package/types/components/hoc/withUpstreamOverride.d.ts +0 -10
  250. package/types/packages/common.webpack.dev.config.d.ts +0 -72
  251. package/types/packages/common.webpack.prod.config.d.ts +0 -84
  252. package/types/packages/excalidraw/dist/100.d.ts +0 -0
  253. package/types/packages/excalidraw/dist/1389.d.ts +0 -0
  254. package/types/packages/excalidraw/dist/1998.d.ts +0 -0
  255. package/types/packages/excalidraw/dist/4194.d.ts +0 -0
  256. package/types/packages/excalidraw/dist/4881.d.ts +0 -0
  257. package/types/packages/excalidraw/dist/5763.d.ts +0 -0
  258. package/types/packages/excalidraw/dist/5914.d.ts +0 -0
  259. package/types/packages/excalidraw/dist/6689.d.ts +0 -0
  260. package/types/packages/excalidraw/dist/excalidraw-assets/locales/ar-SA-json-b9c75e6743e089f51f9b.d.ts +0 -0
  261. package/types/packages/excalidraw/dist/excalidraw-assets/locales/az-AZ-json-32268e2c7ad89fce5d2c.d.ts +0 -0
  262. package/types/packages/excalidraw/dist/excalidraw-assets/locales/bg-BG-json-ff5ef83d3c2706367417.d.ts +0 -0
  263. package/types/packages/excalidraw/dist/excalidraw-assets/locales/bn-BD-json-f9b1344b2f5c0ab53ce8.d.ts +0 -0
  264. package/types/packages/excalidraw/dist/excalidraw-assets/locales/ca-ES-json-d4a1f01f8c174c315974.d.ts +0 -0
  265. package/types/packages/excalidraw/dist/excalidraw-assets/locales/cs-CZ-json-ff1b9bbfe92356698245.d.ts +0 -0
  266. package/types/packages/excalidraw/dist/excalidraw-assets/locales/da-DK-json-ac982a0c1e02b45f9500.d.ts +0 -0
  267. package/types/packages/excalidraw/dist/excalidraw-assets/locales/de-DE-json-a3222d8a9ed4864ccedf.d.ts +0 -0
  268. package/types/packages/excalidraw/dist/excalidraw-assets/locales/el-GR-json-8cc1609bd088ec4f197a.d.ts +0 -0
  269. package/types/packages/excalidraw/dist/excalidraw-assets/locales/es-ES-json-4f3da97feff33cb00e6d.d.ts +0 -0
  270. package/types/packages/excalidraw/dist/excalidraw-assets/locales/eu-ES-json-f9efd2bf2555bceb526a.d.ts +0 -0
  271. package/types/packages/excalidraw/dist/excalidraw-assets/locales/fa-IR-json-abcad5d329ac9558750e.d.ts +0 -0
  272. package/types/packages/excalidraw/dist/excalidraw-assets/locales/fi-FI-json-7250174bb3682c3ee602.d.ts +0 -0
  273. package/types/packages/excalidraw/dist/excalidraw-assets/locales/fr-FR-json-f82759a1bc767e0889bd.d.ts +0 -0
  274. package/types/packages/excalidraw/dist/excalidraw-assets/locales/gl-ES-json-8408403b5df17158e269.d.ts +0 -0
  275. package/types/packages/excalidraw/dist/excalidraw-assets/locales/he-IL-json-2e5cea590dd00f76b42f.d.ts +0 -0
  276. package/types/packages/excalidraw/dist/excalidraw-assets/locales/hi-IN-json-3898c9c1216b44476529.d.ts +0 -0
  277. package/types/packages/excalidraw/dist/excalidraw-assets/locales/hu-HU-json-1b5028b3a2676b3e7bde.d.ts +0 -0
  278. package/types/packages/excalidraw/dist/excalidraw-assets/locales/id-ID-json-43d505d7071a0e359681.d.ts +0 -0
  279. package/types/packages/excalidraw/dist/excalidraw-assets/locales/it-IT-json-a1526e95ebe4c2156ffb.d.ts +0 -0
  280. package/types/packages/excalidraw/dist/excalidraw-assets/locales/ja-JP-json-b7b0079dca8ece2551c7.d.ts +0 -0
  281. package/types/packages/excalidraw/dist/excalidraw-assets/locales/kaa-json-b2f03ae2f239b9fae304.d.ts +0 -0
  282. package/types/packages/excalidraw/dist/excalidraw-assets/locales/kab-KAB-json-e8618205ea49417e5fb4.d.ts +0 -0
  283. package/types/packages/excalidraw/dist/excalidraw-assets/locales/kk-KZ-json-f648362328b839e9313f.d.ts +0 -0
  284. package/types/packages/excalidraw/dist/excalidraw-assets/locales/km-KH-json-920cbd8cb9ea3c2ce631.d.ts +0 -0
  285. package/types/packages/excalidraw/dist/excalidraw-assets/locales/ko-KR-json-e5f26d9854a5d68ada0a.d.ts +0 -0
  286. package/types/packages/excalidraw/dist/excalidraw-assets/locales/ku-TR-json-374bbbb0b003a490681d.d.ts +0 -0
  287. package/types/packages/excalidraw/dist/excalidraw-assets/locales/lt-LT-json-9caac0d3530651221c75.d.ts +0 -0
  288. package/types/packages/excalidraw/dist/excalidraw-assets/locales/lv-LV-json-c811870330575e53285c.d.ts +0 -0
  289. package/types/packages/excalidraw/dist/excalidraw-assets/locales/mr-IN-json-05294735c64b63223d8e.d.ts +0 -0
  290. package/types/packages/excalidraw/dist/excalidraw-assets/locales/my-MM-json-c3cff6d30b1e629f546f.d.ts +0 -0
  291. package/types/packages/excalidraw/dist/excalidraw-assets/locales/nb-NO-json-75cfab63ad7c2ff45f19.d.ts +0 -0
  292. package/types/packages/excalidraw/dist/excalidraw-assets/locales/nl-NL-json-90ef39ed303967aeb9c2.d.ts +0 -0
  293. package/types/packages/excalidraw/dist/excalidraw-assets/locales/nn-NO-json-1a8db0d8c3717d895cc5.d.ts +0 -0
  294. package/types/packages/excalidraw/dist/excalidraw-assets/locales/oc-FR-json-925326d13bc187dcd377.d.ts +0 -0
  295. package/types/packages/excalidraw/dist/excalidraw-assets/locales/pa-IN-json-d9ee09801ed220840b2b.d.ts +0 -0
  296. package/types/packages/excalidraw/dist/excalidraw-assets/locales/pl-PL-json-9a1b0b7262cd86ab734f.d.ts +0 -0
  297. package/types/packages/excalidraw/dist/excalidraw-assets/locales/pt-BR-json-62a1095dd13343b61194.d.ts +0 -0
  298. package/types/packages/excalidraw/dist/excalidraw-assets/locales/pt-PT-json-cc517eed349ce432b054.d.ts +0 -0
  299. package/types/packages/excalidraw/dist/excalidraw-assets/locales/ro-RO-json-162b57c475da796d5a5b.d.ts +0 -0
  300. package/types/packages/excalidraw/dist/excalidraw-assets/locales/ru-RU-json-cfc347872e181d1335a7.d.ts +0 -0
  301. package/types/packages/excalidraw/dist/excalidraw-assets/locales/si-LK-json-674ece30d49390e45733.d.ts +0 -0
  302. package/types/packages/excalidraw/dist/excalidraw-assets/locales/sk-SK-json-8edebc008b63305c87e1.d.ts +0 -0
  303. package/types/packages/excalidraw/dist/excalidraw-assets/locales/sl-SI-json-826580e1006547dbbd3b.d.ts +0 -0
  304. package/types/packages/excalidraw/dist/excalidraw-assets/locales/sv-SE-json-84a855efd030e37f51ab.d.ts +0 -0
  305. package/types/packages/excalidraw/dist/excalidraw-assets/locales/ta-IN-json-f59f50c4b8f2b2fee8ca.d.ts +0 -0
  306. package/types/packages/excalidraw/dist/excalidraw-assets/locales/th-TH-json-4cbe42d56e0a6f261769.d.ts +0 -0
  307. package/types/packages/excalidraw/dist/excalidraw-assets/locales/tr-TR-json-eb07e9699c26fef02345.d.ts +0 -0
  308. package/types/packages/excalidraw/dist/excalidraw-assets/locales/uk-UA-json-a48bb2e866a11d396a35.d.ts +0 -0
  309. package/types/packages/excalidraw/dist/excalidraw-assets/locales/vi-VN-json-cbbaff972778abc0e34b.d.ts +0 -0
  310. package/types/packages/excalidraw/dist/excalidraw-assets/locales/zh-CN-json-48964474c5d477443a1b.d.ts +0 -0
  311. package/types/packages/excalidraw/dist/excalidraw-assets/locales/zh-HK-json-19e6814bddb06e0dd6e3.d.ts +0 -0
  312. package/types/packages/excalidraw/dist/excalidraw-assets/locales/zh-TW-json-3fcc3dcef74999ea3757.d.ts +0 -0
  313. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-4e96a832da47fc7016f9.d.ts +0 -0
  314. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-e62281f32dc8bed5f240.d.ts +0 -0
  315. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/ar-SA-json-a69e95810fd104088c5c.d.ts +0 -2
  316. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/az-AZ-json-589b1b62c7020f14c833.d.ts +0 -2
  317. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/bg-BG-json-79742eced03e74339dfa.d.ts +0 -2
  318. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/bn-BD-json-737c1b739f303a032d89.d.ts +0 -2
  319. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/ca-ES-json-5f515dea6151baaa2eaa.d.ts +0 -2
  320. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/cs-CZ-json-124bc5ab8060f0c7e965.d.ts +0 -2
  321. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/da-DK-json-d099915b14b07f999456.d.ts +0 -2
  322. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/de-DE-json-d8d9ee97794526088903.d.ts +0 -2
  323. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/el-GR-json-8562deea2ef40d73cf8a.d.ts +0 -2
  324. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/es-ES-json-da3d630806693d7dac08.d.ts +0 -2
  325. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/eu-ES-json-ea32646b47bf29438fb9.d.ts +0 -2
  326. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/fa-IR-json-e8d73ea1c5bdccca7b27.d.ts +0 -2
  327. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/fi-FI-json-1d2a667fad3ea0ced0ef.d.ts +0 -2
  328. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/fr-FR-json-ef3b02eac347cee42eac.d.ts +0 -2
  329. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/gl-ES-json-3c8bbe9429fc52e410b2.d.ts +0 -2
  330. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/he-IL-json-4a05a09da3b8c37144d5.d.ts +0 -2
  331. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/hi-IN-json-0300ce94e80ea89134af.d.ts +0 -2
  332. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/hu-HU-json-331ac1b31c82505ea6cc.d.ts +0 -2
  333. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/id-ID-json-f8ba56a28586e4e77070.d.ts +0 -2
  334. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/it-IT-json-0d8f11dec1a87e9359c8.d.ts +0 -2
  335. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/ja-JP-json-ceaa3287f265ae241112.d.ts +0 -2
  336. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/kaa-json-4efd2d14964af8a534cb.d.ts +0 -2
  337. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/kab-KAB-json-3e7e196cc06505d82d71.d.ts +0 -2
  338. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/kk-KZ-json-96ab3e149666871ce872.d.ts +0 -2
  339. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/km-KH-json-5e3f43be16a6ec0eb24f.d.ts +0 -2
  340. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/ko-KR-json-1f078c7aad070d3bd0e9.d.ts +0 -2
  341. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/ku-TR-json-fcef5d1f6a04981f2a5e.d.ts +0 -2
  342. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/lt-LT-json-09bf8afbe684fc98c92a.d.ts +0 -2
  343. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/lv-LV-json-95d0faca7a20097e219f.d.ts +0 -2
  344. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/mr-IN-json-3ffe983e37fedc73cd65.d.ts +0 -2
  345. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/my-MM-json-c88241ade5d8f9bafe5d.d.ts +0 -2
  346. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/nb-NO-json-b80dd1befb2641b9364c.d.ts +0 -2
  347. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/nl-NL-json-4f65f25ec5e87503413e.d.ts +0 -2
  348. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/nn-NO-json-2134d8b06b7e30965748.d.ts +0 -2
  349. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/oc-FR-json-3e134022a025ff54b6f2.d.ts +0 -2
  350. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/pa-IN-json-97ad2e2064b71f244820.d.ts +0 -2
  351. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/pl-PL-json-1ed88814e0018339868e.d.ts +0 -2
  352. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/pt-BR-json-49f03e588be4c6bbe08c.d.ts +0 -2
  353. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/pt-PT-json-2929d15eba5953ef7715.d.ts +0 -2
  354. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/ro-RO-json-785455320326c2640311.d.ts +0 -2
  355. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/ru-RU-json-8836a70e1fe715aa70c7.d.ts +0 -2
  356. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/si-LK-json-244722aa29ba7ca8bd7a.d.ts +0 -2
  357. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/sk-SK-json-97afb0ec22d1503e2af4.d.ts +0 -2
  358. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/sl-SI-json-e59c2bd944228503e705.d.ts +0 -2
  359. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/sv-SE-json-8ee6702d94e84e48faa8.d.ts +0 -2
  360. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/ta-IN-json-3c99dc4ff8af7e2523f3.d.ts +0 -2
  361. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/th-TH-json-a4b323409d22013c30e2.d.ts +0 -2
  362. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/tr-TR-json-399c6f39c50e30399d18.d.ts +0 -2
  363. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/uk-UA-json-8657d9ac1c78af847957.d.ts +0 -2
  364. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/vi-VN-json-e81217b667a314e4b841.d.ts +0 -2
  365. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/zh-CN-json-a97b8c616b2f0548d66c.d.ts +0 -2
  366. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/zh-HK-json-2f278ce98daca1c37501.d.ts +0 -2
  367. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/zh-TW-json-e4eb1416e4564d3a1fd9.d.ts +0 -2
  368. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-a14cd58fa2db417e42b2.d.ts +0 -0
  369. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-ca1b29f7c27b424efab5.d.ts +0 -0
  370. package/types/packages/excalidraw/dist/locales/ar-SA-json.d.ts +0 -2
  371. package/types/packages/excalidraw/dist/locales/az-AZ-json.d.ts +0 -2
  372. package/types/packages/excalidraw/dist/locales/bg-BG-json.d.ts +0 -2
  373. package/types/packages/excalidraw/dist/locales/bn-BD-json.d.ts +0 -2
  374. package/types/packages/excalidraw/dist/locales/ca-ES-json.d.ts +0 -2
  375. package/types/packages/excalidraw/dist/locales/cs-CZ-json.d.ts +0 -2
  376. package/types/packages/excalidraw/dist/locales/da-DK-json.d.ts +0 -2
  377. package/types/packages/excalidraw/dist/locales/de-DE-json.d.ts +0 -2
  378. package/types/packages/excalidraw/dist/locales/el-GR-json.d.ts +0 -2
  379. package/types/packages/excalidraw/dist/locales/es-ES-json.d.ts +0 -2
  380. package/types/packages/excalidraw/dist/locales/eu-ES-json.d.ts +0 -2
  381. package/types/packages/excalidraw/dist/locales/fa-IR-json.d.ts +0 -2
  382. package/types/packages/excalidraw/dist/locales/fi-FI-json.d.ts +0 -2
  383. package/types/packages/excalidraw/dist/locales/fr-FR-json.d.ts +0 -2
  384. package/types/packages/excalidraw/dist/locales/gl-ES-json.d.ts +0 -2
  385. package/types/packages/excalidraw/dist/locales/he-IL-json.d.ts +0 -2
  386. package/types/packages/excalidraw/dist/locales/hi-IN-json.d.ts +0 -2
  387. package/types/packages/excalidraw/dist/locales/hu-HU-json.d.ts +0 -2
  388. package/types/packages/excalidraw/dist/locales/id-ID-json.d.ts +0 -2
  389. package/types/packages/excalidraw/dist/locales/it-IT-json.d.ts +0 -2
  390. package/types/packages/excalidraw/dist/locales/ja-JP-json.d.ts +0 -2
  391. package/types/packages/excalidraw/dist/locales/kaa-json.d.ts +0 -2
  392. package/types/packages/excalidraw/dist/locales/kab-KAB-json.d.ts +0 -2
  393. package/types/packages/excalidraw/dist/locales/kk-KZ-json.d.ts +0 -2
  394. package/types/packages/excalidraw/dist/locales/km-KH-json.d.ts +0 -2
  395. package/types/packages/excalidraw/dist/locales/ko-KR-json.d.ts +0 -2
  396. package/types/packages/excalidraw/dist/locales/ku-TR-json.d.ts +0 -2
  397. package/types/packages/excalidraw/dist/locales/lt-LT-json.d.ts +0 -2
  398. package/types/packages/excalidraw/dist/locales/lv-LV-json.d.ts +0 -2
  399. package/types/packages/excalidraw/dist/locales/mr-IN-json.d.ts +0 -2
  400. package/types/packages/excalidraw/dist/locales/my-MM-json.d.ts +0 -2
  401. package/types/packages/excalidraw/dist/locales/nb-NO-json.d.ts +0 -2
  402. package/types/packages/excalidraw/dist/locales/nl-NL-json.d.ts +0 -2
  403. package/types/packages/excalidraw/dist/locales/nn-NO-json.d.ts +0 -2
  404. package/types/packages/excalidraw/dist/locales/oc-FR-json.d.ts +0 -2
  405. package/types/packages/excalidraw/dist/locales/pa-IN-json.d.ts +0 -2
  406. package/types/packages/excalidraw/dist/locales/pl-PL-json.d.ts +0 -2
  407. package/types/packages/excalidraw/dist/locales/pt-BR-json.d.ts +0 -2
  408. package/types/packages/excalidraw/dist/locales/pt-PT-json.d.ts +0 -2
  409. package/types/packages/excalidraw/dist/locales/ro-RO-json.d.ts +0 -2
  410. package/types/packages/excalidraw/dist/locales/ru-RU-json.d.ts +0 -2
  411. package/types/packages/excalidraw/dist/locales/si-LK-json.d.ts +0 -2
  412. package/types/packages/excalidraw/dist/locales/sk-SK-json.d.ts +0 -2
  413. package/types/packages/excalidraw/dist/locales/sl-SI-json.d.ts +0 -2
  414. package/types/packages/excalidraw/dist/locales/sv-SE-json.d.ts +0 -2
  415. package/types/packages/excalidraw/dist/locales/ta-IN-json.d.ts +0 -2
  416. package/types/packages/excalidraw/dist/locales/th-TH-json.d.ts +0 -2
  417. package/types/packages/excalidraw/dist/locales/tr-TR-json.d.ts +0 -2
  418. package/types/packages/excalidraw/dist/locales/uk-UA-json.d.ts +0 -2
  419. package/types/packages/excalidraw/dist/locales/vi-VN-json.d.ts +0 -2
  420. package/types/packages/excalidraw/dist/locales/zh-CN-json.d.ts +0 -2
  421. package/types/packages/excalidraw/dist/locales/zh-HK-json.d.ts +0 -2
  422. package/types/packages/excalidraw/dist/locales/zh-TW-json.d.ts +0 -2
  423. package/types/packages/excalidraw/dist/node_modules_browser-fs-access_dist_directory-open-01563666_js.d.ts +0 -0
  424. package/types/packages/excalidraw/dist/node_modules_browser-fs-access_dist_directory-open-4ed118d0_js.d.ts +0 -0
  425. package/types/packages/excalidraw/dist/node_modules_browser-fs-access_dist_file-open-002ab408_js.d.ts +0 -0
  426. package/types/packages/excalidraw/dist/node_modules_browser-fs-access_dist_file-open-7c801643_js.d.ts +0 -0
  427. package/types/packages/excalidraw/dist/node_modules_browser-fs-access_dist_file-save-3189631c_js.d.ts +0 -0
  428. package/types/packages/excalidraw/dist/node_modules_browser-fs-access_dist_file-save-745eba88_js.d.ts +0 -0
  429. package/types/packages/excalidraw/dist/node_modules_image-blob-reduce_dist_image-blob-reduce_esm_mjs.d.ts +0 -0
  430. package/types/packages/excalidraw/dist/node_modules_pica_dist_pica_js.d.ts +0 -0
  431. package/types/packages/excalidraw/dist/vendors-node_modules_image-blob-reduce_dist_image-blob-reduce_esm_mjs.d.ts +0 -0
  432. package/types/packages/excalidraw/dist/vendors-node_modules_pica_dist_pica_js.d.ts +0 -0
  433. package/types/packages/excalidraw/webpack.prod.config.newfromexcalidraw.d.ts +0 -95
  434. package/types/packages/excalidraw/webpack.prod.config.old.d.ts +0 -78
package/types/types.d.ts CHANGED
@@ -1,544 +1,547 @@
1
- import React from "react";
2
- import { PointerType, ExcalidrawLinearElement, NonDeletedExcalidrawElement, NonDeleted, TextAlign, ExcalidrawElement, GroupId, ExcalidrawBindableElement, Arrowhead, ChartType, FontFamilyValues, ExcalidrawTextElement, FileId, ExcalidrawImageElement, Theme, StrokeRoundness, ExcalidrawFrameElement, ExcalidrawEmbeddableElement } from "./element/types";
3
- import { SHAPES } from "./shapes";
4
- import { Point as RoughPoint } from "roughjs/bin/geometry";
5
- import { LinearElementEditor } from "./element/linearElementEditor";
6
- import { SuggestedBinding } from "./element/binding";
7
- import { ImportedDataState } from "./data/types";
8
- import type App from "./components/App";
9
- import type { ResolvablePromise, throttleRAF } from "./utils";
10
- import { Spreadsheet } from "./charts";
11
- import { Language } from "./i18n";
12
- import { ClipboardData } from "./clipboard";
13
- import { isOverScrollBars } from "./scene";
14
- import { MaybeTransformHandleType } from "./element/transformHandles";
15
- import Library from "./data/library";
16
- import type { FileSystemHandle } from "./data/filesystem";
17
- import type { IMAGE_MIME_TYPES, MIME_TYPES } from "./constants";
18
- import { ContextMenuItems } from "./components/ContextMenu";
19
- import { Merge, ForwardRef, ValueOf } from "./utility-types";
20
- import { ColorPaletteCustom } from "./colors";
21
- export type Point = Readonly<RoughPoint>;
22
- export type Collaborator = {
23
- pointer?: {
24
- x: number;
25
- y: number;
26
- };
27
- button?: "up" | "down";
28
- selectedElementIds?: AppState["selectedElementIds"];
29
- username?: string | null;
30
- userState?: UserIdleState;
31
- color?: {
32
- background: string;
33
- stroke: string;
34
- };
35
- avatarUrl?: string;
36
- id?: string;
37
- };
38
- export type DataURL = string & {
39
- _brand: "DataURL";
40
- };
41
- export type BinaryFileData = {
42
- mimeType: ValueOf<typeof IMAGE_MIME_TYPES> | typeof MIME_TYPES.binary;
43
- id: FileId;
44
- dataURL: DataURL;
45
- /**
46
- * Epoch timestamp in milliseconds
47
- */
48
- created: number;
49
- /**
50
- * Indicates when the file was last retrieved from storage to be loaded
51
- * onto the scene. We use this flag to determine whether to delete unused
52
- * files from storage.
53
- *
54
- * Epoch timestamp in milliseconds.
55
- */
56
- lastRetrieved?: number;
57
- };
58
- export type BinaryFileMetadata = Omit<BinaryFileData, "dataURL">;
59
- export type BinaryFiles = Record<ExcalidrawElement["id"], BinaryFileData>;
60
- export type LastActiveTool = {
61
- type: typeof SHAPES[number]["value"] | "eraser" | "hand" | "frame" | "embeddable";
62
- customType: null;
63
- } | {
64
- type: "custom";
65
- customType: string;
66
- } | null;
67
- export type SidebarName = string;
68
- export type SidebarTabName = string;
69
- export type CommonCanvasAppState = {
70
- zoom: AppState["zoom"];
71
- scrollX: AppState["scrollX"];
72
- scrollY: AppState["scrollY"];
73
- width: AppState["width"];
74
- height: AppState["height"];
75
- viewModeEnabled: AppState["viewModeEnabled"];
76
- editingElement: AppState["editingElement"];
77
- editingGroupId: AppState["editingGroupId"];
78
- selectedElementIds: AppState["selectedElementIds"];
79
- frameToHighlight: AppState["frameToHighlight"];
80
- offsetLeft: AppState["offsetLeft"];
81
- offsetTop: AppState["offsetTop"];
82
- theme: AppState["theme"];
83
- pendingImageElementId: AppState["pendingImageElementId"];
84
- };
85
- export type StaticCanvasAppState = CommonCanvasAppState & {
86
- shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
87
- /** null indicates transparent bg */
88
- viewBackgroundColor: AppState["viewBackgroundColor"] | null;
89
- exportScale: AppState["exportScale"];
90
- selectedElementsAreBeingDragged: AppState["selectedElementsAreBeingDragged"];
91
- gridSize: AppState["gridSize"];
92
- frameRendering: AppState["frameRendering"];
93
- linkOpacity: AppState["linkOpacity"];
94
- gridColor: AppState["gridColor"];
95
- };
96
- export type InteractiveCanvasAppState = CommonCanvasAppState & {
97
- activeEmbeddable: AppState["activeEmbeddable"];
98
- editingLinearElement: AppState["editingLinearElement"];
99
- selectionElement: AppState["selectionElement"];
100
- selectedGroupIds: AppState["selectedGroupIds"];
101
- selectedLinearElement: AppState["selectedLinearElement"];
102
- multiElement: AppState["multiElement"];
103
- isBindingEnabled: AppState["isBindingEnabled"];
104
- suggestedBindings: AppState["suggestedBindings"];
105
- isRotating: AppState["isRotating"];
106
- elementsToHighlight: AppState["elementsToHighlight"];
107
- openSidebar: AppState["openSidebar"];
108
- showHyperlinkPopup: AppState["showHyperlinkPopup"];
109
- collaborators: AppState["collaborators"];
110
- };
111
- export type AppState = {
112
- contextMenu: {
113
- items: ContextMenuItems;
114
- top: number;
115
- left: number;
116
- } | null;
117
- showWelcomeScreen: boolean;
118
- isLoading: boolean;
119
- errorMessage: React.ReactNode;
120
- activeEmbeddable: {
121
- element: NonDeletedExcalidrawElement;
122
- state: "hover" | "active";
123
- } | null;
124
- draggingElement: NonDeletedExcalidrawElement | null;
125
- resizingElement: NonDeletedExcalidrawElement | null;
126
- multiElement: NonDeleted<ExcalidrawLinearElement> | null;
127
- selectionElement: NonDeletedExcalidrawElement | null;
128
- isBindingEnabled: boolean;
129
- startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
130
- suggestedBindings: SuggestedBinding[];
131
- frameToHighlight: NonDeleted<ExcalidrawFrameElement> | null;
132
- frameRendering: {
133
- enabled: boolean;
134
- name: boolean;
135
- outline: boolean;
136
- clip: boolean;
137
- };
138
- editingFrame: string | null;
139
- elementsToHighlight: NonDeleted<ExcalidrawElement>[] | null;
140
- editingElement: NonDeletedExcalidrawElement | null;
141
- editingLinearElement: LinearElementEditor | null;
142
- activeTool: {
143
- /**
144
- * indicates a previous tool we should revert back to if we deselect the
145
- * currently active tool. At the moment applies to `eraser` and `hand` tool.
146
- */
147
- lastActiveTool: LastActiveTool;
148
- locked: boolean;
149
- } & ({
150
- type: typeof SHAPES[number]["value"] | "eraser" | "hand" | "frame" | "embeddable";
151
- customType: null;
152
- } | {
153
- type: "custom";
154
- customType: string;
155
- });
156
- penMode: boolean;
157
- penDetected: boolean;
158
- exportBackground: boolean;
159
- exportEmbedScene: boolean;
160
- exportWithDarkMode: boolean;
161
- exportScale: number;
162
- currentItemStrokeColor: string;
163
- currentItemBackgroundColor: string;
164
- currentItemFillStyle: ExcalidrawElement["fillStyle"];
165
- currentItemStrokeWidth: number;
166
- currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
167
- currentItemRoughness: number;
168
- currentItemOpacity: number;
169
- currentItemFontFamily: FontFamilyValues;
170
- currentItemFontSize: number;
171
- currentItemTextAlign: TextAlign;
172
- currentItemStartArrowhead: Arrowhead | null;
173
- currentItemEndArrowhead: Arrowhead | null;
174
- currentItemRoundness: StrokeRoundness;
175
- viewBackgroundColor: string;
176
- scrollX: number;
177
- scrollY: number;
178
- cursorButton: "up" | "down";
179
- scrolledOutside: boolean;
180
- name: string;
181
- isResizing: boolean;
182
- isRotating: boolean;
183
- zoom: Zoom;
184
- openMenu: "canvas" | "shape" | null;
185
- openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
186
- openSidebar: {
187
- name: SidebarName;
188
- tab?: SidebarTabName;
189
- } | null;
190
- openDialog: "imageExport" | "help" | "jsonExport" | null;
191
- /**
192
- * Reflects user preference for whether the default sidebar should be docked.
193
- *
194
- * NOTE this is only a user preference and does not reflect the actual docked
195
- * state of the sidebar, because the host apps can override this through
196
- * a DefaultSidebar prop, which is not reflected back to the appState.
197
- */
198
- defaultSidebarDockedPreference: boolean;
199
- lastPointerDownWith: PointerType;
200
- selectedElementIds: Readonly<{
201
- [id: string]: true;
202
- }>;
203
- previousSelectedElementIds: {
204
- [id: string]: true;
205
- };
206
- selectedElementsAreBeingDragged: boolean;
207
- shouldCacheIgnoreZoom: boolean;
208
- toast: {
209
- message: string;
210
- closable?: boolean;
211
- duration?: number;
212
- } | null;
213
- zenModeEnabled: boolean;
214
- theme: Theme;
215
- gridSize: number | null;
216
- previousGridSize: number | null;
217
- viewModeEnabled: boolean;
218
- /** top-most selected groups (i.e. does not include nested groups) */
219
- selectedGroupIds: {
220
- [groupId: string]: boolean;
221
- };
222
- /** group being edited when you drill down to its constituent element
223
- (e.g. when you double-click on a group's element) */
224
- editingGroupId: GroupId | null;
225
- width: number;
226
- height: number;
227
- offsetTop: number;
228
- offsetLeft: number;
229
- fileHandle: FileSystemHandle | null;
230
- collaborators: Map<string, Collaborator>;
231
- showStats: boolean;
232
- currentChartType: ChartType;
233
- pasteDialog: {
234
- shown: false;
235
- data: null;
236
- } | {
237
- shown: true;
238
- data: Spreadsheet;
239
- };
240
- /** imageElement waiting to be placed on canvas */
241
- pendingImageElementId: ExcalidrawImageElement["id"] | null;
242
- showHyperlinkPopup: false | "info" | "editor";
243
- linkOpacity: number;
244
- trayModeEnabled: boolean;
245
- colorPalette?: {
246
- canvasBackground: ColorPaletteCustom;
247
- elementBackground: ColorPaletteCustom;
248
- elementStroke: ColorPaletteCustom;
249
- topPicks: {
250
- canvasBackground: [string, string, string, string, string];
251
- elementStroke: [string, string, string, string, string];
252
- elementBackground: [string, string, string, string, string];
253
- };
254
- };
255
- allowWheelZoom?: boolean;
256
- allowPinchZoom?: boolean;
257
- pinnedScripts?: string[];
258
- customPens?: any[];
259
- currentStrokeOptions?: any;
260
- resetCustomPen?: any;
261
- gridColor: string;
262
- dynamicStyle: string;
263
- invertBindingBehaviour: boolean;
264
- selectedLinearElement: LinearElementEditor | null;
265
- };
266
- export type UIAppState = Omit<AppState, "suggestedBindings" | "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
267
- export type NormalizedZoomValue = number & {
268
- _brand: "normalizedZoom";
269
- };
270
- export type Zoom = Readonly<{
271
- value: NormalizedZoomValue;
272
- }>;
273
- export type PointerCoords = Readonly<{
274
- x: number;
275
- y: number;
276
- }>;
277
- export type Gesture = {
278
- pointers: Map<number, PointerCoords>;
279
- lastCenter: {
280
- x: number;
281
- y: number;
282
- } | null;
283
- initialDistance: number | null;
284
- initialScale: number | null;
285
- };
286
- export declare class GestureEvent extends UIEvent {
287
- readonly rotation: number;
288
- readonly scale: number;
289
- }
290
- /** @deprecated legacy: do not use outside of migration paths */
291
- export type LibraryItem_v1 = readonly NonDeleted<ExcalidrawElement>[];
292
- /** @deprecated legacy: do not use outside of migration paths */
293
- type LibraryItems_v1 = readonly LibraryItem_v1[];
294
- /** v2 library item */
295
- export type LibraryItem = {
296
- id: string;
297
- status: "published" | "unpublished";
298
- elements: readonly NonDeleted<ExcalidrawElement>[];
299
- /** timestamp in epoch (ms) */
300
- created: number;
301
- name?: string;
302
- error?: string;
303
- };
304
- export type LibraryItems = readonly LibraryItem[];
305
- export type LibraryItems_anyVersion = LibraryItems | LibraryItems_v1;
306
- export type LibraryItemsSource = ((currentLibraryItems: LibraryItems) => Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>) | Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>;
307
- export type ExcalidrawAPIRefValue = ExcalidrawImperativeAPI | {
308
- readyPromise?: ResolvablePromise<ExcalidrawImperativeAPI>;
309
- ready?: false;
310
- };
311
- export type ExcalidrawInitialDataState = Merge<ImportedDataState, {
312
- libraryItems?: Required<ImportedDataState>["libraryItems"] | Promise<Required<ImportedDataState>["libraryItems"]>;
313
- }>;
314
- export interface ExcalidrawProps {
315
- onChange?: (elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles) => void;
316
- initialData?: ExcalidrawInitialDataState | null | Promise<ExcalidrawInitialDataState | null>;
317
- excalidrawRef?: ForwardRef<ExcalidrawAPIRefValue>;
318
- isCollaborating?: boolean;
319
- onPointerUpdate?: (payload: {
320
- pointer: {
321
- x: number;
322
- y: number;
323
- };
324
- button: "down" | "up";
325
- pointersMap: Gesture["pointers"];
326
- }) => void;
327
- onPaste?: (data: ClipboardData, event: ClipboardEvent | null) => Promise<boolean> | boolean;
328
- onDrop?: (event: React.DragEvent<HTMLDivElement>) => Promise<boolean> | boolean;
329
- renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
330
- langCode?: Language["code"];
331
- viewModeEnabled?: boolean;
332
- zenModeEnabled?: boolean;
333
- gridModeEnabled?: boolean;
334
- libraryReturnUrl?: string;
335
- initState?: AppState;
336
- theme?: Theme;
337
- name?: string;
338
- renderCustomStats?: (elements: readonly NonDeletedExcalidrawElement[], appState: UIAppState) => JSX.Element;
339
- UIOptions?: Partial<UIOptions>;
340
- detectScroll?: boolean;
341
- handleKeyboardGlobally?: boolean;
342
- onLibraryChange?: (libraryItems: LibraryItems) => void | Promise<any>;
343
- autoFocus?: boolean;
344
- onBeforeTextEdit?: (textElement: ExcalidrawTextElement) => string;
345
- onBeforeTextSubmit?: (textElement: ExcalidrawTextElement, textToSubmit: string, originalText: string, isDeleted: boolean) => [updatedText: string, updatedOriginalText: string, link: string];
346
- generateIdForFile?: (file: File) => string | Promise<string>;
347
- onThemeChange?: (newTheme: string) => void;
348
- onViewModeChange?: (isViewModeEnabled: boolean) => void;
349
- onLinkOpen?: (element: NonDeletedExcalidrawElement, event: CustomEvent<{
350
- nativeEvent: MouseEvent | React.PointerEvent<HTMLCanvasElement>;
351
- }>) => void;
352
- onLinkHover?: (element: NonDeletedExcalidrawElement, event: React.PointerEvent<HTMLCanvasElement>) => void;
353
- onPointerDown?: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState) => void;
354
- onScrollChange?: (scrollX: number, scrollY: number) => void;
355
- children?: React.ReactNode;
356
- validateEmbeddable?: boolean | string[] | RegExp | RegExp[] | ((link: string) => boolean | undefined);
357
- renderEmbeddable?: (element: NonDeleted<ExcalidrawEmbeddableElement>, appState: AppState) => JSX.Element | null;
358
- renderWebview?: boolean;
359
- renderEmbeddableMenu?: (appState: AppState) => JSX.Element | null;
360
- }
361
- export type SceneData = {
362
- elements?: ImportedDataState["elements"];
363
- appState?: ImportedDataState["appState"];
364
- collaborators?: Map<string, Collaborator>;
365
- commitToHistory?: boolean;
366
- };
367
- export declare enum UserIdleState {
368
- ACTIVE = "active",
369
- AWAY = "away",
370
- IDLE = "idle"
371
- }
372
- export type ExportOpts = {
373
- saveFileToDisk?: boolean;
374
- onExportToBackend?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: UIAppState, files: BinaryFiles, canvas: HTMLCanvasElement) => void;
375
- renderCustomUI?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: UIAppState, files: BinaryFiles, canvas: HTMLCanvasElement) => JSX.Element;
376
- };
377
- type CanvasActions = Partial<{
378
- changeViewBackgroundColor: boolean;
379
- clearCanvas: boolean;
380
- export: false | ExportOpts;
381
- loadScene: boolean;
382
- saveToActiveFile: boolean;
383
- toggleTheme: boolean | null;
384
- saveAsImage: boolean;
385
- }>;
386
- type UIOptions = Partial<{
387
- dockedSidebarBreakpoint: number;
388
- canvasActions: CanvasActions;
389
- /** @deprecated does nothing. Will be removed in 0.15 */
390
- welcomeScreen?: boolean;
391
- }>;
392
- export type AppProps = Merge<ExcalidrawProps, {
393
- UIOptions: Merge<UIOptions, {
394
- canvasActions: Required<CanvasActions> & {
395
- export: ExportOpts;
396
- };
397
- }>;
398
- detectScroll: boolean;
399
- handleKeyboardGlobally: boolean;
400
- isCollaborating: boolean;
401
- children?: React.ReactNode;
402
- }>;
403
- /** A subset of App class properties that we need to use elsewhere
404
- * in the app, eg Manager. Factored out into a separate type to keep DRY. */
405
- export type AppClassProperties = {
406
- props: AppProps;
407
- canvas: HTMLCanvasElement;
408
- interactiveCanvas: HTMLCanvasElement | null;
409
- focusContainer(): void;
410
- library: Library;
411
- imageCache: Map<FileId, {
412
- image: HTMLImageElement | Promise<HTMLImageElement>;
413
- mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
414
- }>;
415
- files: BinaryFiles;
416
- device: App["device"];
417
- scene: App["scene"];
418
- pasteFromClipboard: App["pasteFromClipboard"];
419
- id: App["id"];
420
- onInsertElements: App["onInsertElements"];
421
- onExportImage: App["onExportImage"];
422
- lastViewportPosition: App["lastViewportPosition"];
423
- };
424
- export type PointerDownState = Readonly<{
425
- origin: Readonly<{
426
- x: number;
427
- y: number;
428
- }>;
429
- originInGrid: Readonly<{
430
- x: number;
431
- y: number;
432
- }>;
433
- scrollbars: ReturnType<typeof isOverScrollBars>;
434
- lastCoords: {
435
- x: number;
436
- y: number;
437
- };
438
- originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
439
- resize: {
440
- handleType: MaybeTransformHandleType;
441
- isResizing: boolean;
442
- offset: {
443
- x: number;
444
- y: number;
445
- };
446
- arrowDirection: "origin" | "end";
447
- center: {
448
- x: number;
449
- y: number;
450
- };
451
- };
452
- hit: {
453
- element: NonDeleted<ExcalidrawElement> | null;
454
- allHitElements: NonDeleted<ExcalidrawElement>[];
455
- wasAddedToSelection: boolean;
456
- hasBeenDuplicated: boolean;
457
- hasHitCommonBoundingBoxOfSelectedElements: boolean;
458
- };
459
- withCmdOrCtrl: boolean;
460
- drag: {
461
- hasOccurred: boolean;
462
- offset: {
463
- x: number;
464
- y: number;
465
- } | null;
466
- };
467
- eventListeners: {
468
- onMove: null | ReturnType<typeof throttleRAF>;
469
- onUp: null | ((event: PointerEvent) => void);
470
- onKeyDown: null | ((event: KeyboardEvent) => void);
471
- onKeyUp: null | ((event: KeyboardEvent) => void);
472
- };
473
- boxSelection: {
474
- hasOccurred: boolean;
475
- };
476
- elementIdsToErase: {
477
- [key: ExcalidrawElement["id"]]: {
478
- opacity: ExcalidrawElement["opacity"];
479
- erase: boolean;
480
- };
481
- };
482
- }>;
483
- export type ExcalidrawImperativeAPI = {
484
- updateScene: InstanceType<typeof App>["updateScene"];
485
- updateLibrary: InstanceType<typeof Library>["updateLibrary"];
486
- resetScene: InstanceType<typeof App>["resetScene"];
487
- getSceneElementsIncludingDeleted: InstanceType<typeof App>["getSceneElementsIncludingDeleted"];
488
- history: {
489
- clear: InstanceType<typeof App>["resetHistory"];
490
- };
491
- scrollToContent: InstanceType<typeof App>["scrollToContent"];
492
- zoomToFit: InstanceType<typeof App>["zoomToFit"];
493
- startLineEditor: InstanceType<typeof App>["startLineEditor"];
494
- getSceneElements: InstanceType<typeof App>["getSceneElements"];
495
- getAppState: () => InstanceType<typeof App>["state"];
496
- getFiles: () => InstanceType<typeof App>["files"];
497
- refresh: InstanceType<typeof App>["refresh"];
498
- setToast: InstanceType<typeof App>["setToast"];
499
- addFiles: (data: BinaryFileData[]) => void;
500
- updateContainerSize: InstanceType<typeof App>["updateContainerSize"];
501
- readyPromise: ResolvablePromise<ExcalidrawImperativeAPI>;
502
- ready: true;
503
- id: string;
504
- setLocalFont: (showOnPanel: boolean) => void;
505
- selectElements: (elements: readonly ExcalidrawElement[]) => void;
506
- sendBackward: (elements: readonly ExcalidrawElement[]) => void;
507
- bringForward: (elements: readonly ExcalidrawElement[]) => void;
508
- sendToBack: (elements: readonly ExcalidrawElement[]) => void;
509
- bringToFront: (elements: readonly ExcalidrawElement[]) => void;
510
- setMobileModeAllowed: (allow: boolean) => void;
511
- setActiveTool: InstanceType<typeof App>["setActiveTool"];
512
- setCursor: InstanceType<typeof App>["setCursor"];
513
- resetCursor: InstanceType<typeof App>["resetCursor"];
514
- toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
515
- getHTMLIFrameElement: InstanceType<typeof App>["getHTMLIFrameElement"];
516
- /**
517
- * Disables rendering of frames (including element clipping), but currently
518
- * the frames are still interactive in edit mode. As such, this API should be
519
- * used in conjunction with view mode (props.viewModeEnabled).
520
- */
521
- updateFrameRendering: InstanceType<typeof App>["updateFrameRendering"];
522
- };
523
- export type Device = Readonly<{
524
- isSmScreen: boolean;
525
- isMobile: boolean;
526
- isTouchScreen: boolean;
527
- canDeviceFitSidebar: boolean;
528
- isLandscape: boolean;
529
- }>;
530
- type FrameNameBounds = {
531
- x: number;
532
- y: number;
533
- width: number;
534
- height: number;
535
- angle: number;
536
- };
537
- export type FrameNameBoundsCache = {
538
- get: (frameElement: ExcalidrawFrameElement) => FrameNameBounds | null;
539
- _cache: Map<string, FrameNameBounds & {
540
- zoom: AppState["zoom"]["value"];
541
- versionNonce: ExcalidrawFrameElement["versionNonce"];
542
- }>;
543
- };
544
- export {};
1
+ import React from "react";
2
+ import { PointerType, ExcalidrawLinearElement, NonDeletedExcalidrawElement, NonDeleted, TextAlign, ExcalidrawElement, GroupId, ExcalidrawBindableElement, Arrowhead, ChartType, FontFamilyValues, ExcalidrawTextElement, FileId, ExcalidrawImageElement, Theme, StrokeRoundness, ExcalidrawFrameElement, ExcalidrawEmbeddableElement } from "./element/types";
3
+ import { SHAPES } from "./shapes";
4
+ import { Point as RoughPoint } from "roughjs/bin/geometry";
5
+ import { LinearElementEditor } from "./element/linearElementEditor";
6
+ import { SuggestedBinding } from "./element/binding";
7
+ import { ImportedDataState } from "./data/types";
8
+ import type App from "./components/App";
9
+ import type { ResolvablePromise, throttleRAF } from "./utils";
10
+ import { Spreadsheet } from "./charts";
11
+ import { Language } from "./i18n";
12
+ import { ClipboardData } from "./clipboard";
13
+ import { isOverScrollBars } from "./scene";
14
+ import { MaybeTransformHandleType } from "./element/transformHandles";
15
+ import Library from "./data/library";
16
+ import type { FileSystemHandle } from "./data/filesystem";
17
+ import type { IMAGE_MIME_TYPES, MIME_TYPES } from "./constants";
18
+ import { ContextMenuItems } from "./components/ContextMenu";
19
+ import { Merge, ForwardRef, ValueOf } from "./utility-types";
20
+ import { ColorPaletteCustom } from "./colors";
21
+ export type Point = Readonly<RoughPoint>;
22
+ export type Collaborator = {
23
+ pointer?: {
24
+ x: number;
25
+ y: number;
26
+ };
27
+ button?: "up" | "down";
28
+ selectedElementIds?: AppState["selectedElementIds"];
29
+ username?: string | null;
30
+ userState?: UserIdleState;
31
+ color?: {
32
+ background: string;
33
+ stroke: string;
34
+ };
35
+ avatarUrl?: string;
36
+ id?: string;
37
+ };
38
+ export type DataURL = string & {
39
+ _brand: "DataURL";
40
+ };
41
+ export type BinaryFileData = {
42
+ mimeType: ValueOf<typeof IMAGE_MIME_TYPES> | typeof MIME_TYPES.binary;
43
+ id: FileId;
44
+ dataURL: DataURL;
45
+ /**
46
+ * Epoch timestamp in milliseconds
47
+ */
48
+ created: number;
49
+ /**
50
+ * Indicates when the file was last retrieved from storage to be loaded
51
+ * onto the scene. We use this flag to determine whether to delete unused
52
+ * files from storage.
53
+ *
54
+ * Epoch timestamp in milliseconds.
55
+ */
56
+ lastRetrieved?: number;
57
+ };
58
+ export type BinaryFileMetadata = Omit<BinaryFileData, "dataURL">;
59
+ export type BinaryFiles = Record<ExcalidrawElement["id"], BinaryFileData>;
60
+ export type LastActiveTool = {
61
+ type: typeof SHAPES[number]["value"] | "eraser" | "hand" | "frame" | "embeddable";
62
+ customType: null;
63
+ } | {
64
+ type: "custom";
65
+ customType: string;
66
+ } | null;
67
+ export type SidebarName = string;
68
+ export type SidebarTabName = string;
69
+ type _CommonCanvasAppState = {
70
+ zoom: AppState["zoom"];
71
+ scrollX: AppState["scrollX"];
72
+ scrollY: AppState["scrollY"];
73
+ width: AppState["width"];
74
+ height: AppState["height"];
75
+ viewModeEnabled: AppState["viewModeEnabled"];
76
+ editingGroupId: AppState["editingGroupId"];
77
+ selectedElementIds: AppState["selectedElementIds"];
78
+ frameToHighlight: AppState["frameToHighlight"];
79
+ offsetLeft: AppState["offsetLeft"];
80
+ offsetTop: AppState["offsetTop"];
81
+ theme: AppState["theme"];
82
+ pendingImageElementId: AppState["pendingImageElementId"];
83
+ };
84
+ export type StaticCanvasAppState = Readonly<_CommonCanvasAppState & {
85
+ shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
86
+ /** null indicates transparent bg */
87
+ viewBackgroundColor: AppState["viewBackgroundColor"] | null;
88
+ exportScale: AppState["exportScale"];
89
+ selectedElementsAreBeingDragged: AppState["selectedElementsAreBeingDragged"];
90
+ gridSize: AppState["gridSize"];
91
+ frameRendering: AppState["frameRendering"];
92
+ linkOpacity: AppState["linkOpacity"];
93
+ gridColor: AppState["gridColor"];
94
+ }>;
95
+ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
96
+ activeEmbeddable: AppState["activeEmbeddable"];
97
+ editingLinearElement: AppState["editingLinearElement"];
98
+ selectionElement: AppState["selectionElement"];
99
+ selectedGroupIds: AppState["selectedGroupIds"];
100
+ selectedLinearElement: AppState["selectedLinearElement"];
101
+ multiElement: AppState["multiElement"];
102
+ isBindingEnabled: AppState["isBindingEnabled"];
103
+ suggestedBindings: AppState["suggestedBindings"];
104
+ isRotating: AppState["isRotating"];
105
+ elementsToHighlight: AppState["elementsToHighlight"];
106
+ openSidebar: AppState["openSidebar"];
107
+ showHyperlinkPopup: AppState["showHyperlinkPopup"];
108
+ collaborators: AppState["collaborators"];
109
+ }>;
110
+ export type AppState = {
111
+ contextMenu: {
112
+ items: ContextMenuItems;
113
+ top: number;
114
+ left: number;
115
+ } | null;
116
+ showWelcomeScreen: boolean;
117
+ isLoading: boolean;
118
+ errorMessage: React.ReactNode;
119
+ activeEmbeddable: {
120
+ element: NonDeletedExcalidrawElement;
121
+ state: "hover" | "active";
122
+ } | null;
123
+ draggingElement: NonDeletedExcalidrawElement | null;
124
+ resizingElement: NonDeletedExcalidrawElement | null;
125
+ multiElement: NonDeleted<ExcalidrawLinearElement> | null;
126
+ selectionElement: NonDeletedExcalidrawElement | null;
127
+ isBindingEnabled: boolean;
128
+ startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
129
+ suggestedBindings: SuggestedBinding[];
130
+ frameToHighlight: NonDeleted<ExcalidrawFrameElement> | null;
131
+ frameRendering: {
132
+ enabled: boolean;
133
+ name: boolean;
134
+ outline: boolean;
135
+ clip: boolean;
136
+ };
137
+ editingFrame: string | null;
138
+ elementsToHighlight: NonDeleted<ExcalidrawElement>[] | null;
139
+ editingElement: NonDeletedExcalidrawElement | null;
140
+ editingLinearElement: LinearElementEditor | null;
141
+ activeTool: {
142
+ /**
143
+ * indicates a previous tool we should revert back to if we deselect the
144
+ * currently active tool. At the moment applies to `eraser` and `hand` tool.
145
+ */
146
+ lastActiveTool: LastActiveTool;
147
+ locked: boolean;
148
+ } & ({
149
+ type: typeof SHAPES[number]["value"] | "eraser" | "hand" | "frame" | "embeddable";
150
+ customType: null;
151
+ } | {
152
+ type: "custom";
153
+ customType: string;
154
+ });
155
+ penMode: boolean;
156
+ penDetected: boolean;
157
+ exportBackground: boolean;
158
+ exportEmbedScene: boolean;
159
+ exportWithDarkMode: boolean;
160
+ exportScale: number;
161
+ currentItemStrokeColor: string;
162
+ currentItemBackgroundColor: string;
163
+ currentItemFillStyle: ExcalidrawElement["fillStyle"];
164
+ currentItemStrokeWidth: number;
165
+ currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
166
+ currentItemRoughness: number;
167
+ currentItemOpacity: number;
168
+ currentItemFontFamily: FontFamilyValues;
169
+ currentItemFontSize: number;
170
+ currentItemTextAlign: TextAlign;
171
+ currentItemStartArrowhead: Arrowhead | null;
172
+ currentItemEndArrowhead: Arrowhead | null;
173
+ currentItemRoundness: StrokeRoundness;
174
+ viewBackgroundColor: string;
175
+ scrollX: number;
176
+ scrollY: number;
177
+ cursorButton: "up" | "down";
178
+ scrolledOutside: boolean;
179
+ name: string;
180
+ isResizing: boolean;
181
+ isRotating: boolean;
182
+ zoom: Zoom;
183
+ openMenu: "canvas" | "shape" | null;
184
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
185
+ openSidebar: {
186
+ name: SidebarName;
187
+ tab?: SidebarTabName;
188
+ } | null;
189
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
190
+ /**
191
+ * Reflects user preference for whether the default sidebar should be docked.
192
+ *
193
+ * NOTE this is only a user preference and does not reflect the actual docked
194
+ * state of the sidebar, because the host apps can override this through
195
+ * a DefaultSidebar prop, which is not reflected back to the appState.
196
+ */
197
+ defaultSidebarDockedPreference: boolean;
198
+ lastPointerDownWith: PointerType;
199
+ selectedElementIds: Readonly<{
200
+ [id: string]: true;
201
+ }>;
202
+ previousSelectedElementIds: {
203
+ [id: string]: true;
204
+ };
205
+ selectedElementsAreBeingDragged: boolean;
206
+ shouldCacheIgnoreZoom: boolean;
207
+ toast: {
208
+ message: string;
209
+ closable?: boolean;
210
+ duration?: number;
211
+ } | null;
212
+ zenModeEnabled: boolean;
213
+ theme: Theme;
214
+ gridSize: number | null;
215
+ previousGridSize: number | null;
216
+ viewModeEnabled: boolean;
217
+ /** top-most selected groups (i.e. does not include nested groups) */
218
+ selectedGroupIds: {
219
+ [groupId: string]: boolean;
220
+ };
221
+ /** group being edited when you drill down to its constituent element
222
+ (e.g. when you double-click on a group's element) */
223
+ editingGroupId: GroupId | null;
224
+ width: number;
225
+ height: number;
226
+ offsetTop: number;
227
+ offsetLeft: number;
228
+ fileHandle: FileSystemHandle | null;
229
+ collaborators: Map<string, Collaborator>;
230
+ showStats: boolean;
231
+ currentChartType: ChartType;
232
+ pasteDialog: {
233
+ shown: false;
234
+ data: null;
235
+ } | {
236
+ shown: true;
237
+ data: Spreadsheet;
238
+ };
239
+ /** imageElement waiting to be placed on canvas */
240
+ pendingImageElementId: ExcalidrawImageElement["id"] | null;
241
+ showHyperlinkPopup: false | "info" | "editor";
242
+ linkOpacity: number;
243
+ trayModeEnabled: boolean;
244
+ colorPalette?: {
245
+ canvasBackground: ColorPaletteCustom;
246
+ elementBackground: ColorPaletteCustom;
247
+ elementStroke: ColorPaletteCustom;
248
+ topPicks: {
249
+ canvasBackground: [string, string, string, string, string];
250
+ elementStroke: [string, string, string, string, string];
251
+ elementBackground: [string, string, string, string, string];
252
+ };
253
+ };
254
+ allowWheelZoom?: boolean;
255
+ allowPinchZoom?: boolean;
256
+ pinnedScripts?: string[];
257
+ customPens?: any[];
258
+ currentStrokeOptions?: any;
259
+ resetCustomPen?: any;
260
+ gridColor: {
261
+ Bold: string;
262
+ Regular: string;
263
+ MajorGridFrequency?: number;
264
+ };
265
+ dynamicStyle: string;
266
+ invertBindingBehaviour: boolean;
267
+ selectedLinearElement: LinearElementEditor | null;
268
+ };
269
+ export type UIAppState = Omit<AppState, "suggestedBindings" | "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
270
+ export type NormalizedZoomValue = number & {
271
+ _brand: "normalizedZoom";
272
+ };
273
+ export type Zoom = Readonly<{
274
+ value: NormalizedZoomValue;
275
+ }>;
276
+ export type PointerCoords = Readonly<{
277
+ x: number;
278
+ y: number;
279
+ }>;
280
+ export type Gesture = {
281
+ pointers: Map<number, PointerCoords>;
282
+ lastCenter: {
283
+ x: number;
284
+ y: number;
285
+ } | null;
286
+ initialDistance: number | null;
287
+ initialScale: number | null;
288
+ };
289
+ export declare class GestureEvent extends UIEvent {
290
+ readonly rotation: number;
291
+ readonly scale: number;
292
+ }
293
+ /** @deprecated legacy: do not use outside of migration paths */
294
+ export type LibraryItem_v1 = readonly NonDeleted<ExcalidrawElement>[];
295
+ /** @deprecated legacy: do not use outside of migration paths */
296
+ type LibraryItems_v1 = readonly LibraryItem_v1[];
297
+ /** v2 library item */
298
+ export type LibraryItem = {
299
+ id: string;
300
+ status: "published" | "unpublished";
301
+ elements: readonly NonDeleted<ExcalidrawElement>[];
302
+ /** timestamp in epoch (ms) */
303
+ created: number;
304
+ name?: string;
305
+ error?: string;
306
+ };
307
+ export type LibraryItems = readonly LibraryItem[];
308
+ export type LibraryItems_anyVersion = LibraryItems | LibraryItems_v1;
309
+ export type LibraryItemsSource = ((currentLibraryItems: LibraryItems) => Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>) | Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>;
310
+ export type ExcalidrawAPIRefValue = ExcalidrawImperativeAPI | {
311
+ readyPromise?: ResolvablePromise<ExcalidrawImperativeAPI>;
312
+ ready?: false;
313
+ };
314
+ export type ExcalidrawInitialDataState = Merge<ImportedDataState, {
315
+ libraryItems?: Required<ImportedDataState>["libraryItems"] | Promise<Required<ImportedDataState>["libraryItems"]>;
316
+ }>;
317
+ export interface ExcalidrawProps {
318
+ onChange?: (elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles) => void;
319
+ initialData?: ExcalidrawInitialDataState | null | Promise<ExcalidrawInitialDataState | null>;
320
+ excalidrawRef?: ForwardRef<ExcalidrawAPIRefValue>;
321
+ isCollaborating?: boolean;
322
+ onPointerUpdate?: (payload: {
323
+ pointer: {
324
+ x: number;
325
+ y: number;
326
+ };
327
+ button: "down" | "up";
328
+ pointersMap: Gesture["pointers"];
329
+ }) => void;
330
+ onPaste?: (data: ClipboardData, event: ClipboardEvent | null) => Promise<boolean> | boolean;
331
+ onDrop?: (event: React.DragEvent<HTMLDivElement>) => Promise<boolean> | boolean;
332
+ renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
333
+ langCode?: Language["code"];
334
+ viewModeEnabled?: boolean;
335
+ zenModeEnabled?: boolean;
336
+ gridModeEnabled?: boolean;
337
+ libraryReturnUrl?: string;
338
+ initState?: AppState;
339
+ theme?: Theme;
340
+ name?: string;
341
+ renderCustomStats?: (elements: readonly NonDeletedExcalidrawElement[], appState: UIAppState) => JSX.Element;
342
+ UIOptions?: Partial<UIOptions>;
343
+ detectScroll?: boolean;
344
+ handleKeyboardGlobally?: boolean;
345
+ onLibraryChange?: (libraryItems: LibraryItems) => void | Promise<any>;
346
+ autoFocus?: boolean;
347
+ onBeforeTextEdit?: (textElement: ExcalidrawTextElement) => string;
348
+ onBeforeTextSubmit?: (textElement: ExcalidrawTextElement, textToSubmit: string, originalText: string, isDeleted: boolean) => [updatedText: string, updatedOriginalText: string, link: string];
349
+ generateIdForFile?: (file: File) => string | Promise<string>;
350
+ onThemeChange?: (newTheme: string) => void;
351
+ onViewModeChange?: (isViewModeEnabled: boolean) => void;
352
+ onLinkOpen?: (element: NonDeletedExcalidrawElement, event: CustomEvent<{
353
+ nativeEvent: MouseEvent | React.PointerEvent<HTMLCanvasElement>;
354
+ }>) => void;
355
+ onLinkHover?: (element: NonDeletedExcalidrawElement, event: React.PointerEvent<HTMLCanvasElement>) => void;
356
+ onPointerDown?: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState) => void;
357
+ onScrollChange?: (scrollX: number, scrollY: number) => void;
358
+ children?: React.ReactNode;
359
+ validateEmbeddable?: boolean | string[] | RegExp | RegExp[] | ((link: string) => boolean | undefined);
360
+ renderEmbeddable?: (element: NonDeleted<ExcalidrawEmbeddableElement>, appState: AppState) => JSX.Element | null;
361
+ renderWebview?: boolean;
362
+ renderEmbeddableMenu?: (appState: AppState) => JSX.Element | null;
363
+ }
364
+ export type SceneData = {
365
+ elements?: ImportedDataState["elements"];
366
+ appState?: ImportedDataState["appState"];
367
+ collaborators?: Map<string, Collaborator>;
368
+ commitToHistory?: boolean;
369
+ };
370
+ export declare enum UserIdleState {
371
+ ACTIVE = "active",
372
+ AWAY = "away",
373
+ IDLE = "idle"
374
+ }
375
+ export type ExportOpts = {
376
+ saveFileToDisk?: boolean;
377
+ onExportToBackend?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: UIAppState, files: BinaryFiles, canvas: HTMLCanvasElement) => void;
378
+ renderCustomUI?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: UIAppState, files: BinaryFiles, canvas: HTMLCanvasElement) => JSX.Element;
379
+ };
380
+ type CanvasActions = Partial<{
381
+ changeViewBackgroundColor: boolean;
382
+ clearCanvas: boolean;
383
+ export: false | ExportOpts;
384
+ loadScene: boolean;
385
+ saveToActiveFile: boolean;
386
+ toggleTheme: boolean | null;
387
+ saveAsImage: boolean;
388
+ }>;
389
+ type UIOptions = Partial<{
390
+ dockedSidebarBreakpoint: number;
391
+ canvasActions: CanvasActions;
392
+ /** @deprecated does nothing. Will be removed in 0.15 */
393
+ welcomeScreen?: boolean;
394
+ }>;
395
+ export type AppProps = Merge<ExcalidrawProps, {
396
+ UIOptions: Merge<UIOptions, {
397
+ canvasActions: Required<CanvasActions> & {
398
+ export: ExportOpts;
399
+ };
400
+ }>;
401
+ detectScroll: boolean;
402
+ handleKeyboardGlobally: boolean;
403
+ isCollaborating: boolean;
404
+ children?: React.ReactNode;
405
+ }>;
406
+ /** A subset of App class properties that we need to use elsewhere
407
+ * in the app, eg Manager. Factored out into a separate type to keep DRY. */
408
+ export type AppClassProperties = {
409
+ props: AppProps;
410
+ canvas: HTMLCanvasElement;
411
+ interactiveCanvas: HTMLCanvasElement | null;
412
+ focusContainer(): void;
413
+ library: Library;
414
+ imageCache: Map<FileId, {
415
+ image: HTMLImageElement | Promise<HTMLImageElement>;
416
+ mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
417
+ }>;
418
+ files: BinaryFiles;
419
+ device: App["device"];
420
+ scene: App["scene"];
421
+ pasteFromClipboard: App["pasteFromClipboard"];
422
+ id: App["id"];
423
+ onInsertElements: App["onInsertElements"];
424
+ onExportImage: App["onExportImage"];
425
+ lastViewportPosition: App["lastViewportPosition"];
426
+ };
427
+ export type PointerDownState = Readonly<{
428
+ origin: Readonly<{
429
+ x: number;
430
+ y: number;
431
+ }>;
432
+ originInGrid: Readonly<{
433
+ x: number;
434
+ y: number;
435
+ }>;
436
+ scrollbars: ReturnType<typeof isOverScrollBars>;
437
+ lastCoords: {
438
+ x: number;
439
+ y: number;
440
+ };
441
+ originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
442
+ resize: {
443
+ handleType: MaybeTransformHandleType;
444
+ isResizing: boolean;
445
+ offset: {
446
+ x: number;
447
+ y: number;
448
+ };
449
+ arrowDirection: "origin" | "end";
450
+ center: {
451
+ x: number;
452
+ y: number;
453
+ };
454
+ };
455
+ hit: {
456
+ element: NonDeleted<ExcalidrawElement> | null;
457
+ allHitElements: NonDeleted<ExcalidrawElement>[];
458
+ wasAddedToSelection: boolean;
459
+ hasBeenDuplicated: boolean;
460
+ hasHitCommonBoundingBoxOfSelectedElements: boolean;
461
+ };
462
+ withCmdOrCtrl: boolean;
463
+ drag: {
464
+ hasOccurred: boolean;
465
+ offset: {
466
+ x: number;
467
+ y: number;
468
+ } | null;
469
+ };
470
+ eventListeners: {
471
+ onMove: null | ReturnType<typeof throttleRAF>;
472
+ onUp: null | ((event: PointerEvent) => void);
473
+ onKeyDown: null | ((event: KeyboardEvent) => void);
474
+ onKeyUp: null | ((event: KeyboardEvent) => void);
475
+ };
476
+ boxSelection: {
477
+ hasOccurred: boolean;
478
+ };
479
+ elementIdsToErase: {
480
+ [key: ExcalidrawElement["id"]]: {
481
+ opacity: ExcalidrawElement["opacity"];
482
+ erase: boolean;
483
+ };
484
+ };
485
+ }>;
486
+ export type ExcalidrawImperativeAPI = {
487
+ updateScene: InstanceType<typeof App>["updateScene"];
488
+ updateLibrary: InstanceType<typeof Library>["updateLibrary"];
489
+ resetScene: InstanceType<typeof App>["resetScene"];
490
+ getSceneElementsIncludingDeleted: InstanceType<typeof App>["getSceneElementsIncludingDeleted"];
491
+ history: {
492
+ clear: InstanceType<typeof App>["resetHistory"];
493
+ };
494
+ scrollToContent: InstanceType<typeof App>["scrollToContent"];
495
+ zoomToFit: InstanceType<typeof App>["zoomToFit"];
496
+ startLineEditor: InstanceType<typeof App>["startLineEditor"];
497
+ getSceneElements: InstanceType<typeof App>["getSceneElements"];
498
+ getAppState: () => InstanceType<typeof App>["state"];
499
+ getFiles: () => InstanceType<typeof App>["files"];
500
+ refresh: InstanceType<typeof App>["refresh"];
501
+ setToast: InstanceType<typeof App>["setToast"];
502
+ addFiles: (data: BinaryFileData[]) => void;
503
+ updateContainerSize: InstanceType<typeof App>["updateContainerSize"];
504
+ readyPromise: ResolvablePromise<ExcalidrawImperativeAPI>;
505
+ ready: true;
506
+ id: string;
507
+ setLocalFont: (showOnPanel: boolean) => void;
508
+ selectElements: (elements: readonly ExcalidrawElement[]) => void;
509
+ sendBackward: (elements: readonly ExcalidrawElement[]) => void;
510
+ bringForward: (elements: readonly ExcalidrawElement[]) => void;
511
+ sendToBack: (elements: readonly ExcalidrawElement[]) => void;
512
+ bringToFront: (elements: readonly ExcalidrawElement[]) => void;
513
+ setMobileModeAllowed: (allow: boolean) => void;
514
+ setActiveTool: InstanceType<typeof App>["setActiveTool"];
515
+ setCursor: InstanceType<typeof App>["setCursor"];
516
+ resetCursor: InstanceType<typeof App>["resetCursor"];
517
+ toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
518
+ getHTMLIFrameElement: InstanceType<typeof App>["getHTMLIFrameElement"];
519
+ /**
520
+ * Disables rendering of frames (including element clipping), but currently
521
+ * the frames are still interactive in edit mode. As such, this API should be
522
+ * used in conjunction with view mode (props.viewModeEnabled).
523
+ */
524
+ updateFrameRendering: InstanceType<typeof App>["updateFrameRendering"];
525
+ };
526
+ export type Device = Readonly<{
527
+ isSmScreen: boolean;
528
+ isMobile: boolean;
529
+ isTouchScreen: boolean;
530
+ canDeviceFitSidebar: boolean;
531
+ isLandscape: boolean;
532
+ }>;
533
+ type FrameNameBounds = {
534
+ x: number;
535
+ y: number;
536
+ width: number;
537
+ height: number;
538
+ angle: number;
539
+ };
540
+ export type FrameNameBoundsCache = {
541
+ get: (frameElement: ExcalidrawFrameElement) => FrameNameBounds | null;
542
+ _cache: Map<string, FrameNameBounds & {
543
+ zoom: AppState["zoom"]["value"];
544
+ versionNonce: ExcalidrawFrameElement["versionNonce"];
545
+ }>;
546
+ };
547
+ export {};