@zsviczian/excalidraw 0.15.2-obsidian-11 → 0.15.2-obsidian-13

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