@dwelle/excalidraw 0.3.78 → 0.4.0-08c4fac

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 (334) hide show
  1. package/CHANGELOG.md +102 -754
  2. package/README.md +94 -26
  3. package/dist/excalidraw-assets/Assistant-Bold.woff2 +0 -0
  4. package/dist/excalidraw-assets/Assistant-Medium.woff2 +0 -0
  5. package/dist/excalidraw-assets/Assistant-Regular.woff2 +0 -0
  6. package/dist/excalidraw-assets/Assistant-SemiBold.woff2 +0 -0
  7. package/dist/excalidraw-assets/vendor-2002fe1b8862917b36c1.js +2 -0
  8. package/dist/excalidraw-assets/vendor-2002fe1b8862917b36c1.js.LICENSE.txt +12 -0
  9. package/dist/excalidraw-assets-dev/Assistant-Bold.woff2 +0 -0
  10. package/dist/excalidraw-assets-dev/Assistant-Medium.woff2 +0 -0
  11. package/dist/excalidraw-assets-dev/Assistant-Regular.woff2 +0 -0
  12. package/dist/excalidraw-assets-dev/Assistant-SemiBold.woff2 +0 -0
  13. package/dist/excalidraw-assets-dev/vendor-e6df8519da951026ff69.js +98 -0
  14. package/dist/excalidraw.development.js +1323 -1074
  15. package/dist/excalidraw.production.min.js +1 -1
  16. package/dist/excalidraw.production.min.js.LICENSE.txt +2 -0
  17. package/package.json +2 -2
  18. package/types/actions/actionAddToLibrary.d.ts +314 -311
  19. package/types/actions/actionAlign.d.ts +103 -91
  20. package/types/actions/actionBoundText.d.ts +129 -128
  21. package/types/actions/actionCanvas.d.ts +923 -901
  22. package/types/actions/actionClipboard.d.ts +595 -589
  23. package/types/actions/actionDeleteSelected.d.ts +345 -339
  24. package/types/actions/actionDistribute.d.ts +37 -33
  25. package/types/actions/actionDuplicateSelection.d.ts +24 -22
  26. package/types/actions/actionExport.d.ts +1025 -1000
  27. package/types/actions/actionFinalize.d.ts +220 -216
  28. package/types/actions/actionFlip.d.ts +35 -35
  29. package/types/actions/actionGroup.d.ts +49 -45
  30. package/types/actions/actionHistory.d.ts +6 -6
  31. package/types/actions/actionLinearEditor.d.ts +115 -0
  32. package/types/actions/actionMenu.d.ts +358 -349
  33. package/types/actions/actionNavigate.d.ts +15 -13
  34. package/types/actions/actionProperties.d.ts +1493 -1454
  35. package/types/actions/actionSelectAll.d.ts +16 -16
  36. package/types/actions/actionStyles.d.ts +130 -129
  37. package/types/actions/actionToggleGridMode.d.ts +117 -116
  38. package/types/actions/actionToggleLock.d.ts +116 -115
  39. package/types/actions/actionToggleStats.d.ts +115 -114
  40. package/types/actions/actionToggleViewMode.d.ts +116 -115
  41. package/types/actions/actionToggleZenMode.d.ts +116 -115
  42. package/types/actions/actionZindex.d.ts +75 -67
  43. package/types/actions/index.d.ts +24 -23
  44. package/types/actions/manager.d.ts +20 -20
  45. package/types/actions/register.d.ts +5 -5
  46. package/types/actions/shortcuts.d.ts +3 -3
  47. package/types/actions/types.d.ts +42 -40
  48. package/types/align.d.ts +6 -6
  49. package/types/analytics.d.ts +1 -1
  50. package/types/appState.d.ts +77 -76
  51. package/types/charts.d.ts +27 -27
  52. package/types/clients.d.ts +6 -6
  53. package/types/clipboard.d.ts +20 -20
  54. package/types/colors.d.ts +6 -6
  55. package/types/components/Actions.d.ts +35 -23
  56. package/types/components/ActiveFile.d.ts +7 -7
  57. package/types/components/App.d.ts +420 -368
  58. package/types/components/Avatar.d.ts +11 -11
  59. package/types/components/ButtonIconSelect.d.ts +11 -11
  60. package/types/components/CheckboxItem.d.ts +8 -8
  61. package/types/components/ClearCanvas.d.ts +4 -4
  62. package/types/components/CollabButton.d.ts +6 -7
  63. package/types/components/ColorPicker.d.ts +14 -14
  64. package/types/components/ConfirmDialog.d.ts +10 -10
  65. package/types/components/ContextMenu.d.ts +28 -28
  66. package/types/components/DarkModeToggle.d.ts +7 -7
  67. package/types/components/Dialog.d.ts +14 -14
  68. package/types/components/DialogActionButton.d.ts +10 -0
  69. package/types/components/ErrorDialog.d.ts +4 -4
  70. package/types/components/FixedSideContainer.d.ts +9 -9
  71. package/types/components/Footer.d.ts +10 -0
  72. package/types/components/HelpButton.d.ts +8 -0
  73. package/types/components/HelpDialog.d.ts +4 -4
  74. package/types/components/HintViewer.d.ts +11 -10
  75. package/types/components/HomeButton.d.ts +5 -0
  76. package/types/components/IconPicker.d.ts +13 -13
  77. package/types/components/ImageExportDialog.d.ts +18 -16
  78. package/types/components/InitializeApp.d.ts +10 -8
  79. package/types/components/Island.d.ts +10 -10
  80. package/types/components/JSONExportDialog.d.ts +13 -13
  81. package/types/components/LayerUI.d.ts +40 -38
  82. package/types/components/LibraryButton.d.ts +8 -7
  83. package/types/components/LibraryMenu.d.ts +25 -17
  84. package/types/components/LibraryMenuBrowseButton.d.ts +7 -0
  85. package/types/components/LibraryMenuHeaderContent.d.ts +12 -0
  86. package/types/components/LibraryMenuItems.d.ts +15 -24
  87. package/types/components/LibraryUnit.d.ts +11 -12
  88. package/types/components/LoadingMessage.d.ts +6 -4
  89. package/types/components/LockButton.d.ts +11 -11
  90. package/types/components/MenuItem.d.ts +11 -0
  91. package/types/components/MenuUtils.d.ts +1 -0
  92. package/types/components/MobileMenu.d.ts +30 -29
  93. package/types/components/Modal.d.ts +12 -12
  94. package/types/components/PasteChartDialog.d.ts +9 -9
  95. package/types/components/PenModeButton.d.ts +12 -12
  96. package/types/components/Popover.d.ts +15 -15
  97. package/types/components/ProjectName.d.ts +10 -10
  98. package/types/components/PublishLibrary.d.ts +16 -16
  99. package/types/components/Section.d.ts +6 -6
  100. package/types/components/Sidebar/Sidebar.d.ts +73 -0
  101. package/types/components/Sidebar/SidebarHeader.d.ts +20 -0
  102. package/types/components/Sidebar/common.d.ts +16 -0
  103. package/types/components/SingleLibraryItem.d.ts +10 -10
  104. package/types/components/Spinner.d.ts +6 -6
  105. package/types/components/Stack.d.ts +15 -15
  106. package/types/components/Stats.d.ts +11 -11
  107. package/types/components/Toast.d.ts +7 -7
  108. package/types/components/ToolButton.d.ts +46 -46
  109. package/types/components/Tooltip.d.ts +17 -17
  110. package/types/components/UserList.d.ts +10 -11
  111. package/types/components/WelcomeScreen.d.ts +8 -0
  112. package/types/components/WelcomeScreenDecor.d.ts +6 -0
  113. package/types/components/hoc/withUpstreamOverride.d.ts +10 -0
  114. package/types/components/icons.d.ts +139 -180
  115. package/types/constants.d.ts +157 -149
  116. package/types/data/blob.d.ts +47 -47
  117. package/types/data/encode.d.ts +53 -53
  118. package/types/data/encryption.d.ts +9 -9
  119. package/types/data/filesystem.d.ts +18 -18
  120. package/types/data/image.d.ts +15 -15
  121. package/types/data/index.d.ts +13 -13
  122. package/types/data/json.d.ts +16 -16
  123. package/types/data/library.d.ts +96 -96
  124. package/types/data/resave.d.ts +5 -5
  125. package/types/data/restore.d.ts +15 -15
  126. package/types/data/types.d.ts +47 -32
  127. package/types/distribute.d.ts +6 -6
  128. package/types/element/Hyperlink.d.ts +138 -136
  129. package/types/element/binding.d.ts +33 -33
  130. package/types/element/bounds.d.ts +27 -27
  131. package/types/element/collision.d.ts +21 -21
  132. package/types/element/dragElements.d.ts +5 -5
  133. package/types/element/image.d.ts +22 -22
  134. package/types/element/index.d.ts +20 -20
  135. package/types/element/linearElementEditor.d.ts +223 -203
  136. package/types/element/mutateElement.d.ts +11 -11
  137. package/types/element/newElement.d.ts +63 -50
  138. package/types/element/resizeElements.d.ts +9 -9
  139. package/types/element/resizeTest.d.ts +13 -13
  140. package/types/element/showSelectedShapeActions.d.ts +3 -3
  141. package/types/element/sizeHelpers.d.ts +21 -21
  142. package/types/element/textElement.d.ts +30 -26
  143. package/types/element/textWysiwyg.d.ts +16 -16
  144. package/types/element/transformHandles.d.ts +29 -28
  145. package/types/element/typeChecks.d.ts +17 -17
  146. package/types/element/types.d.ts +134 -133
  147. package/types/emitter.d.ts +21 -21
  148. package/types/errors.d.ts +8 -8
  149. package/types/ga.d.ts +63 -63
  150. package/types/gadirections.d.ts +8 -8
  151. package/types/galines.d.ts +22 -22
  152. package/types/gapoints.d.ts +7 -7
  153. package/types/gatransforms.d.ts +10 -10
  154. package/types/gesture.d.ts +6 -6
  155. package/types/groups.d.ts +27 -27
  156. package/types/history.d.ts +52 -52
  157. package/types/hooks/useCallbackRefState.d.ts +1 -1
  158. package/types/hooks/useOutsideClick.d.ts +2 -0
  159. package/types/i18n.d.ts +15 -15
  160. package/types/jotai.d.ts +122 -122
  161. package/types/keys.d.ts +68 -68
  162. package/types/math.d.ts +27 -20
  163. package/types/packages/excalidraw/dist/{excalidraw-assets-dev/image-469d5bd946743969995a.d.ts → excalidraw-assets/vendor-2002fe1b8862917b36c1.d.ts} +0 -0
  164. package/types/packages/excalidraw/dist/excalidraw-assets-dev/{image-028ba554a42cc8a4995a.d.ts → vendor-e6df8519da951026ff69.d.ts} +0 -0
  165. package/types/packages/excalidraw/dist/excalidraw.development.d.ts +2 -2
  166. package/types/packages/excalidraw/dist/excalidraw.production.min.d.ts +1 -5
  167. package/types/packages/excalidraw/entry.d.ts +1 -1
  168. package/types/packages/excalidraw/env.d.ts +1 -1
  169. package/types/packages/excalidraw/example/App.d.ts +8 -7
  170. package/types/packages/excalidraw/example/index.d.ts +1 -1
  171. package/types/packages/excalidraw/example/initialData.d.ts +172 -172
  172. package/types/packages/excalidraw/example/sidebar/{Sidebar.d.ts → ExampleSidebar.d.ts} +5 -5
  173. package/types/packages/excalidraw/index.d.ts +19 -18
  174. package/types/packages/excalidraw/main.d.ts +2 -2
  175. package/types/packages/excalidraw/publicPath.d.ts +1 -1
  176. package/types/packages/excalidraw/webpack.dev-server.config.d.ts +19 -19
  177. package/types/packages/excalidraw/webpack.dev.config.d.ts +79 -79
  178. package/types/packages/excalidraw/webpack.prod.config.d.ts +92 -92
  179. package/types/packages/utils.d.ts +35 -32
  180. package/types/points.d.ts +7 -6
  181. package/types/polyfill.d.ts +2 -0
  182. package/types/random.d.ts +3 -3
  183. package/types/renderer/renderElement.d.ts +35 -35
  184. package/types/renderer/renderScene.d.ts +41 -25
  185. package/types/renderer/roundRect.d.ts +11 -11
  186. package/types/scene/Scene.d.ts +25 -25
  187. package/types/scene/comparisons.d.ts +11 -11
  188. package/types/scene/export.d.ts +20 -20
  189. package/types/scene/index.d.ts +5 -5
  190. package/types/scene/scroll.d.ts +17 -17
  191. package/types/scene/scrollbars.d.ts +16 -16
  192. package/types/scene/selection.d.ts +11 -11
  193. package/types/scene/types.d.ts +59 -58
  194. package/types/scene/zoom.d.ts +13 -13
  195. package/types/shapes.d.ts +52 -38
  196. package/types/types.d.ts +399 -393
  197. package/types/utils.d.ts +136 -136
  198. package/types/zindex.d.ts +6 -6
  199. package/dist/excalidraw-assets/vendor-b9b3a25c026c138e55b2.js +0 -2
  200. package/dist/excalidraw-assets/vendor-b9b3a25c026c138e55b2.js.LICENSE.txt +0 -6
  201. package/dist/excalidraw-assets-dev/vendor-33bd21df77fc9cda16d2.js +0 -98
  202. package/types/actions/actionUnbindText.d.ts +0 -11
  203. package/types/components/BackgroundPickerAndDarkModeToggle.d.ts +0 -9
  204. package/types/components/Card.d.ts +0 -7
  205. package/types/components/HelpIcon.d.ts +0 -8
  206. package/types/components/SidebarLockButton.d.ts +0 -8
  207. package/types/disitrubte.d.ts +0 -6
  208. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ar-SA-json-9a3fdf94110439c2826a.d.ts +0 -0
  209. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ar-SA-json-efd63375f9605b72c4af.d.ts +0 -0
  210. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-bg-BG-json-047db6df7a74c0298938.d.ts +0 -0
  211. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-bg-BG-json-35c0e8b92b0dba8a4e6d.d.ts +0 -0
  212. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ca-ES-json-6acefe26cfe1d2f12349.d.ts +0 -0
  213. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ca-ES-json-9924fbd53652d5f15134.d.ts +0 -0
  214. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-cs-CZ-json-85a469d813bb069829e7.d.ts +0 -0
  215. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-de-DE-json-a52c17c4bd1b1db22464.d.ts +0 -0
  216. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-de-DE-json-f85a8a52534c04c3f3b8.d.ts +0 -0
  217. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-el-GR-json-060595a09e0004e33936.d.ts +0 -0
  218. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-el-GR-json-3b209ec86ca2ce69bdfa.d.ts +0 -0
  219. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-es-ES-json-32dc3bf0f789ef18e65d.d.ts +0 -0
  220. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-es-ES-json-af5c541f9ac1526a9eb7.d.ts +0 -0
  221. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-fa-IR-json-7ee232d4ef08da0903f6.d.ts +0 -0
  222. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-fa-IR-json-c732ff7772327332c259.d.ts +0 -0
  223. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-fi-FI-json-46abeda8d809d4091924.d.ts +0 -0
  224. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-fi-FI-json-c1d5c5510660a11a428e.d.ts +0 -0
  225. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-fr-FR-json-6a418571305eecefe9bc.d.ts +0 -0
  226. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-fr-FR-json-79fa555bfea0a356f393.d.ts +0 -0
  227. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-he-IL-json-157ae036fcf470528687.d.ts +0 -0
  228. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-he-IL-json-d006423b531ab062bb85.d.ts +0 -0
  229. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-hi-IN-json-3035c3b3ab3ce981dbc7.d.ts +0 -0
  230. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-hi-IN-json-d959b869453c591a8861.d.ts +0 -0
  231. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-hu-HU-json-50a13e322a60bb701615.d.ts +0 -0
  232. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-hu-HU-json-a366989217753fe3d02b.d.ts +0 -0
  233. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-id-ID-json-87212daac6113b5bf808.d.ts +0 -0
  234. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-id-ID-json-8d13d29ee41be15a1f99.d.ts +0 -0
  235. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-it-IT-json-59f2e9d3dac07f3264cb.d.ts +0 -0
  236. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-it-IT-json-90283cd2809f4165506b.d.ts +0 -0
  237. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ja-JP-json-9e0a78ddb43d5709fb29.d.ts +0 -0
  238. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ja-JP-json-ccb5ffd0f8a0980c2ec0.d.ts +0 -0
  239. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-kab-KAB-json-d9acc7b8ee952e356d06.d.ts +0 -0
  240. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-kab-KAB-json-dac787e0446cdb747fe1.d.ts +0 -0
  241. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ko-KR-json-d61af373bea59d1ff4c6.d.ts +0 -0
  242. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ko-KR-json-e42ededaa35032a201b9.d.ts +0 -0
  243. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-lv-LV-json-07f6bffcb44fdd9aad4f.d.ts +0 -0
  244. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-lv-LV-json-7eea5c4054f8418fdd10.d.ts +0 -0
  245. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-my-MM-json-26d1e27bab3b8ac4a3e6.d.ts +0 -0
  246. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-my-MM-json-a8f9bb37a7b947e9dfba.d.ts +0 -0
  247. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-nb-NO-json-8ce0749d46f0b4a8defb.d.ts +0 -0
  248. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-nb-NO-json-c01fab8602e1b658d5d1.d.ts +0 -0
  249. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-nl-NL-json-23fdfd9f11bc8efbaf56.d.ts +0 -0
  250. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-nl-NL-json-cf922daa828029c1aff5.d.ts +0 -0
  251. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-nn-NO-json-b5931de6e1ed336bf087.d.ts +0 -0
  252. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-nn-NO-json-d363be6b3dcdbf3a868a.d.ts +0 -0
  253. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-oc-FR-json-29d6193adb907d4f5890.d.ts +0 -0
  254. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-oc-FR-json-c6414107ad634b113aba.d.ts +0 -0
  255. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-pa-IN-json-27063e4865142ac11b1a.d.ts +0 -0
  256. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-pa-IN-json-f0c779291da384fb5173.d.ts +0 -0
  257. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-pl-PL-json-16af1b83ac16af57ad07.d.ts +0 -0
  258. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-pl-PL-json-a4a5c6e0a9877c43476a.d.ts +0 -0
  259. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-pt-BR-json-03a046855063512eb9ff.d.ts +0 -0
  260. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-pt-BR-json-db86828d6e3ced9f9854.d.ts +0 -0
  261. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-pt-PT-json-7ed352e9de6dc74ef503.d.ts +0 -0
  262. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-pt-PT-json-bc0cd589bd87a3079407.d.ts +0 -0
  263. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ro-RO-json-75692b7a0166d6ad27a4.d.ts +0 -0
  264. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ro-RO-json-f13a2e7b7a63fbfb6ae7.d.ts +0 -0
  265. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ru-RU-json-69b1a919b7f42adfd6ec.d.ts +0 -0
  266. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-ru-RU-json-7c2a2061d0ca99cf7007.d.ts +0 -0
  267. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-sk-SK-json-0ef09f90308059d22ae8.d.ts +0 -0
  268. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-sk-SK-json-4757551ceb15fa0a29a9.d.ts +0 -0
  269. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-sv-SE-json-dc7718d79b9bf93a4ba4.d.ts +0 -0
  270. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-sv-SE-json-fa5bd09f128972b13ac2.d.ts +0 -0
  271. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-tr-TR-json-b574833ee1c2f58fd24e.d.ts +0 -0
  272. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-tr-TR-json-cba7e62d9610795a5ac3.d.ts +0 -0
  273. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-uk-UA-json-a9a8ea7adb95c0a03680.d.ts +0 -0
  274. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-uk-UA-json-f0cab296bdc4089ffa77.d.ts +0 -0
  275. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-zh-CN-json-45da9983459601b845e8.d.ts +0 -0
  276. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-zh-CN-json-94f562845a945a45e385.d.ts +0 -0
  277. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-zh-TW-json-0e77c896018bcd221bf6.d.ts +0 -0
  278. package/types/packages/excalidraw/dist/excalidraw-assets/i18n-zh-TW-json-7dd3d9ba72493687c286.d.ts +0 -0
  279. package/types/packages/excalidraw/dist/excalidraw-assets/image-02a1f3ecd6baf42daaa6.d.ts +0 -0
  280. package/types/packages/excalidraw/dist/excalidraw-assets/image-0db17e06143a31f9772b.d.ts +0 -0
  281. package/types/packages/excalidraw/dist/excalidraw-assets/image-2be1c869cd5bacebdc3c.d.ts +0 -0
  282. package/types/packages/excalidraw/dist/excalidraw-assets/image-46f5e8e621bfedbf6d91.d.ts +0 -0
  283. package/types/packages/excalidraw/dist/excalidraw-assets/image-6f8d3b9873832b5f7a67.d.ts +0 -0
  284. package/types/packages/excalidraw/dist/excalidraw-assets/image-8e0c265e832504f62477.d.ts +0 -0
  285. package/types/packages/excalidraw/dist/excalidraw-assets/image-9592159c56d563857679.d.ts +0 -0
  286. package/types/packages/excalidraw/dist/excalidraw-assets/image-98a7b39bd21998c69c4b.d.ts +0 -0
  287. package/types/packages/excalidraw/dist/excalidraw-assets/image-a26261fb8a718f15853e.d.ts +0 -0
  288. package/types/packages/excalidraw/dist/excalidraw-assets/image-a97adda58b4c4d8d0107.d.ts +0 -0
  289. package/types/packages/excalidraw/dist/excalidraw-assets/image-af02967a8a4c328f2713.d.ts +0 -0
  290. package/types/packages/excalidraw/dist/excalidraw-assets/image-bd5991c772b4867c8d27.d.ts +0 -0
  291. package/types/packages/excalidraw/dist/excalidraw-assets/image-c198828284ec0dba28dc.d.ts +0 -0
  292. package/types/packages/excalidraw/dist/excalidraw-assets/image-eac20119cbc2ceb81523.d.ts +0 -0
  293. package/types/packages/excalidraw/dist/excalidraw-assets/image-eafab0c39ce13f7fea67.d.ts +0 -0
  294. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-0e2ecbd1f46fc190ec01.d.ts +0 -0
  295. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-1018b0a7e7e60d808384.d.ts +0 -0
  296. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-405364e1fdefedf5d3d7.d.ts +0 -0
  297. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-448ccb79e58765b61834.d.ts +0 -0
  298. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-585a4c89d479fd91edeb.d.ts +0 -0
  299. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-64ea3ed78bc76a895e61.d.ts +0 -0
  300. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-6644c8f79d52085cf653.d.ts +0 -0
  301. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-807e23d7531555236936.d.ts +0 -0
  302. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-8698157b56eb5e0ee549.d.ts +0 -0
  303. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-aed19b6e017f9f736254.d.ts +0 -0
  304. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-b088910ac1ba8853a571.d.ts +0 -0
  305. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-b9b3a25c026c138e55b2.d.ts +0 -0
  306. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-cb708a4580b007d81177.d.ts +0 -0
  307. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-ce466849186c701b6c48.d.ts +0 -0
  308. package/types/packages/excalidraw/dist/excalidraw-assets/vendor-e5c6cd57013e8e575a61.d.ts +0 -0
  309. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-664005f0b02c93342b89.d.ts +0 -0
  310. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-73be8b3c1837ea26950c.d.ts +0 -0
  311. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-821afe7d20de2d2ca898.d.ts +0 -0
  312. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-8825d180ee32659f8996.d.ts +0 -0
  313. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-89cddf27ef982ca154dc.d.ts +0 -0
  314. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-9f771c114a0a3ad7b334.d.ts +0 -0
  315. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-a98d24ea9aa42940a0df.d.ts +0 -0
  316. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-b2befe1e2a0424a41fb3.d.ts +0 -0
  317. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-cacb3d0c02eb2e346ecc.d.ts +0 -0
  318. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-d7e941a51c2e0a7b3c23.d.ts +0 -0
  319. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-e50a452aa26d28419e39.d.ts +0 -0
  320. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-eddc6ed66acd3a3f3d46.d.ts +0 -0
  321. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-f696fa36e3535df5e97a.d.ts +0 -0
  322. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-0454f90696ac835aeb45.d.ts +0 -0
  323. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-1bc8ceaafd8623c96dd4.d.ts +0 -0
  324. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-26ccabf52930f0ce0ffd.d.ts +0 -0
  325. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-33bd21df77fc9cda16d2.d.ts +0 -0
  326. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-4534d6e506404cef7a9e.d.ts +0 -0
  327. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-5d1c4700bd0fa2109ab5.d.ts +0 -0
  328. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-7664c12c379862ed98a5.d.ts +0 -0
  329. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-7fcb99cece261da4983f.d.ts +0 -0
  330. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-86b56a69e7dddcf8f70d.d.ts +0 -0
  331. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-a449655791956f151f51.d.ts +0 -0
  332. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-bb07a412033591d5470d.d.ts +0 -0
  333. package/types/packages/excalidraw/dist/excalidraw-assets-dev/vendor-ec7db14ff9ba640888c4.d.ts +0 -0
  334. package/types/renderer/index.d.ts +0 -1
package/types/types.d.ts CHANGED
@@ -1,393 +1,399 @@
1
- /// <reference types="react" />
2
- import { PointerType, ExcalidrawLinearElement, NonDeletedExcalidrawElement, NonDeleted, TextAlign, ExcalidrawElement, GroupId, ExcalidrawBindableElement, Arrowhead, ChartType, FontFamilyValues, FileId, ExcalidrawImageElement, Theme } 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 { ALLOWED_IMAGE_MIME_TYPES, MIME_TYPES } from "./constants";
18
- export declare type Point = Readonly<RoughPoint>;
19
- export declare type Collaborator = {
20
- pointer?: {
21
- x: number;
22
- y: number;
23
- };
24
- button?: "up" | "down";
25
- selectedElementIds?: AppState["selectedElementIds"];
26
- username?: string | null;
27
- userState?: UserIdleState;
28
- color?: {
29
- background: string;
30
- stroke: string;
31
- };
32
- avatarUrl?: string;
33
- id?: string;
34
- };
35
- export declare type DataURL = string & {
36
- _brand: "DataURL";
37
- };
38
- export declare type BinaryFileData = {
39
- mimeType: typeof ALLOWED_IMAGE_MIME_TYPES[number] | typeof MIME_TYPES.binary;
40
- id: FileId;
41
- dataURL: DataURL;
42
- created: number;
43
- };
44
- export declare type BinaryFileMetadata = Omit<BinaryFileData, "dataURL">;
45
- export declare type BinaryFiles = Record<ExcalidrawElement["id"], BinaryFileData>;
46
- export declare type LastActiveToolBeforeEraser = {
47
- type: typeof SHAPES[number]["value"] | "eraser";
48
- customType: null;
49
- } | {
50
- type: "custom";
51
- customType: string;
52
- } | null;
53
- export declare type AppState = {
54
- isLoading: boolean;
55
- errorMessage: string | null;
56
- draggingElement: NonDeletedExcalidrawElement | null;
57
- resizingElement: NonDeletedExcalidrawElement | null;
58
- multiElement: NonDeleted<ExcalidrawLinearElement> | null;
59
- selectionElement: NonDeletedExcalidrawElement | null;
60
- isBindingEnabled: boolean;
61
- startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
62
- suggestedBindings: SuggestedBinding[];
63
- editingElement: NonDeletedExcalidrawElement | null;
64
- editingLinearElement: LinearElementEditor | null;
65
- activeTool: {
66
- type: typeof SHAPES[number]["value"] | "eraser";
67
- lastActiveToolBeforeEraser: LastActiveToolBeforeEraser;
68
- locked: boolean;
69
- customType: null;
70
- } | {
71
- type: "custom";
72
- customType: string;
73
- lastActiveToolBeforeEraser: LastActiveToolBeforeEraser;
74
- locked: boolean;
75
- };
76
- penMode: boolean;
77
- penDetected: boolean;
78
- exportBackground: boolean;
79
- exportEmbedScene: boolean;
80
- exportWithDarkMode: boolean;
81
- exportScale: number;
82
- currentItemStrokeColor: string;
83
- currentItemBackgroundColor: string;
84
- currentItemFillStyle: ExcalidrawElement["fillStyle"];
85
- currentItemStrokeWidth: number;
86
- currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
87
- currentItemRoughness: number;
88
- currentItemOpacity: number;
89
- currentItemFontFamily: FontFamilyValues;
90
- currentItemFontSize: number;
91
- currentItemTextAlign: TextAlign;
92
- currentItemStrokeSharpness: ExcalidrawElement["strokeSharpness"];
93
- currentItemStartArrowhead: Arrowhead | null;
94
- currentItemEndArrowhead: Arrowhead | null;
95
- currentItemLinearStrokeSharpness: ExcalidrawElement["strokeSharpness"];
96
- viewBackgroundColor: string;
97
- scrollX: number;
98
- scrollY: number;
99
- cursorButton: "up" | "down";
100
- scrolledOutside: boolean;
101
- name: string;
102
- isResizing: boolean;
103
- isRotating: boolean;
104
- zoom: Zoom;
105
- openMenu: "canvas" | "shape" | null;
106
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
107
- lastPointerDownWith: PointerType;
108
- selectedElementIds: {
109
- [id: string]: boolean;
110
- };
111
- previousSelectedElementIds: {
112
- [id: string]: boolean;
113
- };
114
- shouldCacheIgnoreZoom: boolean;
115
- showHelpDialog: boolean;
116
- toast: {
117
- message: string;
118
- closable?: boolean;
119
- duration?: number;
120
- } | null;
121
- zenModeEnabled: boolean;
122
- theme: Theme;
123
- gridSize: number | null;
124
- viewModeEnabled: boolean;
125
- /** top-most selected groups (i.e. does not include nested groups) */
126
- selectedGroupIds: {
127
- [groupId: string]: boolean;
128
- };
129
- /** group being edited when you drill down to its constituent element
130
- (e.g. when you double-click on a group's element) */
131
- editingGroupId: GroupId | null;
132
- width: number;
133
- height: number;
134
- offsetTop: number;
135
- offsetLeft: number;
136
- isLibraryOpen: boolean;
137
- isLibraryMenuDocked: boolean;
138
- fileHandle: FileSystemHandle | null;
139
- collaborators: Map<string, Collaborator>;
140
- showStats: boolean;
141
- currentChartType: ChartType;
142
- pasteDialog: {
143
- shown: false;
144
- data: null;
145
- } | {
146
- shown: true;
147
- data: Spreadsheet;
148
- };
149
- /** imageElement waiting to be placed on canvas */
150
- pendingImageElementId: ExcalidrawImageElement["id"] | null;
151
- showHyperlinkPopup: false | "info" | "editor";
152
- selectedLinearElement: LinearElementEditor | null;
153
- };
154
- export declare type NormalizedZoomValue = number & {
155
- _brand: "normalizedZoom";
156
- };
157
- export declare type Zoom = Readonly<{
158
- value: NormalizedZoomValue;
159
- }>;
160
- export declare type PointerCoords = Readonly<{
161
- x: number;
162
- y: number;
163
- }>;
164
- export declare type Gesture = {
165
- pointers: Map<number, PointerCoords>;
166
- lastCenter: {
167
- x: number;
168
- y: number;
169
- } | null;
170
- initialDistance: number | null;
171
- initialScale: number | null;
172
- };
173
- export declare class GestureEvent extends UIEvent {
174
- readonly rotation: number;
175
- readonly scale: number;
176
- }
177
- /** @deprecated legacy: do not use outside of migration paths */
178
- export declare type LibraryItem_v1 = readonly NonDeleted<ExcalidrawElement>[];
179
- /** @deprecated legacy: do not use outside of migration paths */
180
- declare type LibraryItems_v1 = readonly LibraryItem_v1[];
181
- /** v2 library item */
182
- export declare type LibraryItem = {
183
- id: string;
184
- status: "published" | "unpublished";
185
- elements: readonly NonDeleted<ExcalidrawElement>[];
186
- /** timestamp in epoch (ms) */
187
- created: number;
188
- name?: string;
189
- error?: string;
190
- };
191
- export declare type LibraryItems = readonly LibraryItem[];
192
- export declare type LibraryItems_anyVersion = LibraryItems | LibraryItems_v1;
193
- export declare type LibraryItemsSource = ((currentLibraryItems: LibraryItems) => Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>) | Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>;
194
- export declare type ExcalidrawAPIRefValue = ExcalidrawImperativeAPI | {
195
- readyPromise?: ResolvablePromise<ExcalidrawImperativeAPI>;
196
- ready?: false;
197
- };
198
- export declare type ExcalidrawInitialDataState = Merge<ImportedDataState, {
199
- scrollX?: number;
200
- scrollY?: number;
201
- libraryItems?: Required<ImportedDataState>["libraryItems"] | Promise<Required<ImportedDataState>["libraryItems"]>;
202
- }>;
203
- export interface ExcalidrawProps {
204
- id?: string | null;
205
- onChange?: (elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles, id?: string | null) => void;
206
- initialData?: ExcalidrawInitialDataState | null | Promise<ExcalidrawInitialDataState | null>;
207
- onHomeButtonClick?: () => void;
208
- user?: {
209
- name?: string | null;
210
- };
211
- excalidrawRef?: ForwardRef<ExcalidrawAPIRefValue>;
212
- onCollabButtonClick?: () => void;
213
- isCollaborating?: boolean;
214
- onPointerUpdate?: (payload: {
215
- pointer: {
216
- x: number;
217
- y: number;
218
- };
219
- button: "down" | "up";
220
- pointersMap: Gesture["pointers"];
221
- }) => void;
222
- onPaste?: (data: ClipboardData, event: ClipboardEvent | null) => Promise<boolean> | boolean;
223
- renderTopRightUI?: (isMobile: boolean, appState: AppState, canvas: HTMLCanvasElement | null) => JSX.Element | null;
224
- renderFooter?: (isMobile: boolean, appState: AppState) => JSX.Element | null;
225
- langCode?: Language["code"];
226
- viewModeEnabled?: boolean;
227
- zenModeEnabled?: boolean;
228
- gridModeEnabled?: boolean;
229
- libraryReturnUrl?: string;
230
- theme?: Theme;
231
- name?: string;
232
- renderCustomStats?: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState) => JSX.Element;
233
- UIOptions?: {
234
- dockedSidebarBreakpoint?: number;
235
- canvasActions?: CanvasActions;
236
- };
237
- detectScroll?: boolean;
238
- handleKeyboardGlobally?: boolean;
239
- onLibraryChange?: (libraryItems: LibraryItems) => void | Promise<any>;
240
- autoFocus?: boolean;
241
- generateIdForFile?: (file: File) => string | Promise<string>;
242
- onLinkOpen?: (element: NonDeletedExcalidrawElement, event: CustomEvent<{
243
- nativeEvent: MouseEvent | React.PointerEvent<HTMLCanvasElement>;
244
- }>) => void;
245
- onPointerDown?: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState) => void;
246
- onScrollChange?: (scrollX: number, scrollY: number) => void;
247
- }
248
- export declare type SceneData = {
249
- elements?: ImportedDataState["elements"];
250
- appState?: ImportedDataState["appState"];
251
- collaborators?: Map<string, Collaborator>;
252
- commitToHistory?: boolean;
253
- };
254
- export declare enum UserIdleState {
255
- ACTIVE = "active",
256
- AWAY = "away",
257
- IDLE = "idle"
258
- }
259
- export declare type ExportOpts = {
260
- saveFileToDisk?: boolean;
261
- onExportToBackend?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles, canvas: HTMLCanvasElement | null) => void;
262
- renderCustomUI?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles, canvas: HTMLCanvasElement | null) => JSX.Element;
263
- };
264
- export declare type CanvasActions = {
265
- changeViewBackgroundColor?: boolean;
266
- clearCanvas?: boolean;
267
- export?: false | ExportOpts | (() => void);
268
- loadScene?: boolean;
269
- saveToActiveFile?: boolean;
270
- theme?: boolean;
271
- saveAsImage?: boolean;
272
- };
273
- export declare type UIOptions = {
274
- canvasActions?: CanvasActions | false;
275
- };
276
- export declare type AppProps = ExcalidrawProps & {
277
- UIOptions: {
278
- canvasActions: Required<CanvasActions> | false;
279
- dockedSidebarBreakpoint?: number;
280
- };
281
- detectScroll: boolean;
282
- handleKeyboardGlobally: boolean;
283
- isCollaborating: boolean;
284
- };
285
- /** A subset of App class properties that we need to use elsewhere
286
- * in the app, eg Manager. Factored out into a separate type to keep DRY. */
287
- export declare type AppClassProperties = {
288
- props: AppProps;
289
- canvas: HTMLCanvasElement | null;
290
- focusContainer(): void;
291
- library: Library;
292
- imageCache: Map<FileId, {
293
- image: HTMLImageElement | Promise<HTMLImageElement>;
294
- mimeType: typeof ALLOWED_IMAGE_MIME_TYPES[number];
295
- }>;
296
- files: BinaryFiles;
297
- device: App["device"];
298
- scene: App["scene"];
299
- };
300
- export declare type PointerDownState = Readonly<{
301
- origin: Readonly<{
302
- x: number;
303
- y: number;
304
- }>;
305
- originInGrid: Readonly<{
306
- x: number;
307
- y: number;
308
- }>;
309
- scrollbars: ReturnType<typeof isOverScrollBars>;
310
- lastCoords: {
311
- x: number;
312
- y: number;
313
- };
314
- originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
315
- resize: {
316
- handleType: MaybeTransformHandleType;
317
- isResizing: boolean;
318
- offset: {
319
- x: number;
320
- y: number;
321
- };
322
- arrowDirection: "origin" | "end";
323
- center: {
324
- x: number;
325
- y: number;
326
- };
327
- };
328
- hit: {
329
- element: NonDeleted<ExcalidrawElement> | null;
330
- allHitElements: NonDeleted<ExcalidrawElement>[];
331
- wasAddedToSelection: boolean;
332
- hasBeenDuplicated: boolean;
333
- hasHitCommonBoundingBoxOfSelectedElements: boolean;
334
- hasHitElementInside: boolean;
335
- };
336
- withCmdOrCtrl: boolean;
337
- drag: {
338
- hasOccurred: boolean;
339
- offset: {
340
- x: number;
341
- y: number;
342
- } | null;
343
- };
344
- eventListeners: {
345
- onMove: null | ReturnType<typeof throttleRAF>;
346
- onUp: null | ((event: PointerEvent) => void);
347
- onKeyDown: null | ((event: KeyboardEvent) => void);
348
- onKeyUp: null | ((event: KeyboardEvent) => void);
349
- };
350
- boxSelection: {
351
- hasOccurred: boolean;
352
- };
353
- elementIdsToErase: {
354
- [key: ExcalidrawElement["id"]]: {
355
- opacity: ExcalidrawElement["opacity"];
356
- erase: boolean;
357
- };
358
- };
359
- }>;
360
- declare type UnsubscribeCallback = () => void;
361
- export declare type ExcalidrawImperativeAPI = {
362
- updateScene: InstanceType<typeof App>["updateScene"];
363
- updateLibrary: InstanceType<typeof Library>["updateLibrary"];
364
- resetScene: InstanceType<typeof App>["resetScene"];
365
- getSceneElementsIncludingDeleted: InstanceType<typeof App>["getSceneElementsIncludingDeleted"];
366
- history: {
367
- clear: InstanceType<typeof App>["resetHistory"];
368
- };
369
- scrollToContent: InstanceType<typeof App>["scrollToContent"];
370
- getSceneElements: InstanceType<typeof App>["getSceneElements"];
371
- getAppState: () => InstanceType<typeof App>["state"];
372
- getFiles: () => InstanceType<typeof App>["files"];
373
- refresh: InstanceType<typeof App>["refresh"];
374
- setToast: InstanceType<typeof App>["setToast"];
375
- addFiles: (data: BinaryFileData[]) => void;
376
- readyPromise: ResolvablePromise<ExcalidrawImperativeAPI>;
377
- ready: true;
378
- id: string;
379
- setActiveTool: InstanceType<typeof App>["setActiveTool"];
380
- setCursor: InstanceType<typeof App>["setCursor"];
381
- resetCursor: InstanceType<typeof App>["resetCursor"];
382
- app: InstanceType<typeof App>;
383
- onChange: (callback: (elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles) => void) => UnsubscribeCallback;
384
- onPointerDown: (callback: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState, event: React.PointerEvent<HTMLCanvasElement>) => void) => UnsubscribeCallback;
385
- onPointerUp: (callback: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState, event: PointerEvent) => void) => UnsubscribeCallback;
386
- };
387
- export declare type Device = Readonly<{
388
- isSmScreen: boolean;
389
- isMobile: boolean;
390
- isTouchScreen: boolean;
391
- canDeviceFitSidebar: boolean;
392
- }>;
393
- export {};
1
+ /// <reference types="react" />
2
+ import { PointerType, ExcalidrawLinearElement, NonDeletedExcalidrawElement, NonDeleted, TextAlign, ExcalidrawElement, GroupId, ExcalidrawBindableElement, Arrowhead, ChartType, FontFamilyValues, FileId, ExcalidrawImageElement, Theme } 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 { ALLOWED_IMAGE_MIME_TYPES, MIME_TYPES } from "./constants";
18
+ export declare type Point = Readonly<RoughPoint>;
19
+ export declare type Collaborator = {
20
+ pointer?: {
21
+ x: number;
22
+ y: number;
23
+ };
24
+ button?: "up" | "down";
25
+ selectedElementIds?: AppState["selectedElementIds"];
26
+ username?: string | null;
27
+ userState?: UserIdleState;
28
+ color?: {
29
+ background: string;
30
+ stroke: string;
31
+ };
32
+ avatarUrl?: string;
33
+ id?: string;
34
+ };
35
+ export declare type DataURL = string & {
36
+ _brand: "DataURL";
37
+ };
38
+ export declare type BinaryFileData = {
39
+ mimeType: typeof ALLOWED_IMAGE_MIME_TYPES[number] | typeof MIME_TYPES.binary;
40
+ id: FileId;
41
+ dataURL: DataURL;
42
+ created: number;
43
+ };
44
+ export declare type BinaryFileMetadata = Omit<BinaryFileData, "dataURL">;
45
+ export declare type BinaryFiles = Record<ExcalidrawElement["id"], BinaryFileData>;
46
+ export declare type LastActiveToolBeforeEraser = {
47
+ type: typeof SHAPES[number]["value"] | "eraser";
48
+ customType: null;
49
+ } | {
50
+ type: "custom";
51
+ customType: string;
52
+ } | null;
53
+ export declare type AppState = {
54
+ showWelcomeScreen: boolean;
55
+ isLoading: boolean;
56
+ errorMessage: string | null;
57
+ draggingElement: NonDeletedExcalidrawElement | null;
58
+ resizingElement: NonDeletedExcalidrawElement | null;
59
+ multiElement: NonDeleted<ExcalidrawLinearElement> | null;
60
+ selectionElement: NonDeletedExcalidrawElement | null;
61
+ isBindingEnabled: boolean;
62
+ startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
63
+ suggestedBindings: SuggestedBinding[];
64
+ editingElement: NonDeletedExcalidrawElement | null;
65
+ editingLinearElement: LinearElementEditor | null;
66
+ activeTool: {
67
+ type: typeof SHAPES[number]["value"] | "eraser";
68
+ lastActiveToolBeforeEraser: LastActiveToolBeforeEraser;
69
+ locked: boolean;
70
+ customType: null;
71
+ } | {
72
+ type: "custom";
73
+ customType: string;
74
+ lastActiveToolBeforeEraser: LastActiveToolBeforeEraser;
75
+ locked: boolean;
76
+ };
77
+ penMode: boolean;
78
+ penDetected: boolean;
79
+ exportBackground: boolean;
80
+ exportEmbedScene: boolean;
81
+ exportWithDarkMode: boolean;
82
+ exportScale: number;
83
+ currentItemStrokeColor: string;
84
+ currentItemBackgroundColor: string;
85
+ currentItemFillStyle: ExcalidrawElement["fillStyle"];
86
+ currentItemStrokeWidth: number;
87
+ currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
88
+ currentItemRoughness: number;
89
+ currentItemOpacity: number;
90
+ currentItemFontFamily: FontFamilyValues;
91
+ currentItemFontSize: number;
92
+ currentItemTextAlign: TextAlign;
93
+ currentItemStrokeSharpness: ExcalidrawElement["strokeSharpness"];
94
+ currentItemStartArrowhead: Arrowhead | null;
95
+ currentItemEndArrowhead: Arrowhead | null;
96
+ currentItemLinearStrokeSharpness: ExcalidrawElement["strokeSharpness"];
97
+ viewBackgroundColor: string;
98
+ scrollX: number;
99
+ scrollY: number;
100
+ cursorButton: "up" | "down";
101
+ scrolledOutside: boolean;
102
+ name: string;
103
+ isResizing: boolean;
104
+ isRotating: boolean;
105
+ zoom: Zoom;
106
+ openMenu: "canvas" | "shape" | null;
107
+ openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
108
+ openSidebar: "library" | "customSidebar" | null;
109
+ openDialog: "imageExport" | "help" | null;
110
+ isSidebarDocked: boolean;
111
+ lastPointerDownWith: PointerType;
112
+ selectedElementIds: {
113
+ [id: string]: boolean;
114
+ };
115
+ previousSelectedElementIds: {
116
+ [id: string]: boolean;
117
+ };
118
+ shouldCacheIgnoreZoom: boolean;
119
+ toast: {
120
+ message: string;
121
+ closable?: boolean;
122
+ duration?: number;
123
+ } | null;
124
+ zenModeEnabled: boolean;
125
+ theme: Theme;
126
+ gridSize: number | null;
127
+ viewModeEnabled: boolean;
128
+ /** top-most selected groups (i.e. does not include nested groups) */
129
+ selectedGroupIds: {
130
+ [groupId: string]: boolean;
131
+ };
132
+ /** group being edited when you drill down to its constituent element
133
+ (e.g. when you double-click on a group's element) */
134
+ editingGroupId: GroupId | null;
135
+ width: number;
136
+ height: number;
137
+ offsetTop: number;
138
+ offsetLeft: number;
139
+ fileHandle: FileSystemHandle | null;
140
+ collaborators: Map<string, Collaborator>;
141
+ showStats: boolean;
142
+ currentChartType: ChartType;
143
+ pasteDialog: {
144
+ shown: false;
145
+ data: null;
146
+ } | {
147
+ shown: true;
148
+ data: Spreadsheet;
149
+ };
150
+ /** imageElement waiting to be placed on canvas */
151
+ pendingImageElementId: ExcalidrawImageElement["id"] | null;
152
+ showHyperlinkPopup: false | "info" | "editor";
153
+ selectedLinearElement: LinearElementEditor | null;
154
+ };
155
+ export declare type NormalizedZoomValue = number & {
156
+ _brand: "normalizedZoom";
157
+ };
158
+ export declare type Zoom = Readonly<{
159
+ value: NormalizedZoomValue;
160
+ }>;
161
+ export declare type PointerCoords = Readonly<{
162
+ x: number;
163
+ y: number;
164
+ }>;
165
+ export declare type Gesture = {
166
+ pointers: Map<number, PointerCoords>;
167
+ lastCenter: {
168
+ x: number;
169
+ y: number;
170
+ } | null;
171
+ initialDistance: number | null;
172
+ initialScale: number | null;
173
+ };
174
+ export declare class GestureEvent extends UIEvent {
175
+ readonly rotation: number;
176
+ readonly scale: number;
177
+ }
178
+ /** @deprecated legacy: do not use outside of migration paths */
179
+ export declare type LibraryItem_v1 = readonly NonDeleted<ExcalidrawElement>[];
180
+ /** @deprecated legacy: do not use outside of migration paths */
181
+ declare type LibraryItems_v1 = readonly LibraryItem_v1[];
182
+ /** v2 library item */
183
+ export declare type LibraryItem = {
184
+ id: string;
185
+ status: "published" | "unpublished";
186
+ elements: readonly NonDeleted<ExcalidrawElement>[];
187
+ /** timestamp in epoch (ms) */
188
+ created: number;
189
+ name?: string;
190
+ error?: string;
191
+ };
192
+ export declare type LibraryItems = readonly LibraryItem[];
193
+ export declare type LibraryItems_anyVersion = LibraryItems | LibraryItems_v1;
194
+ export declare type LibraryItemsSource = ((currentLibraryItems: LibraryItems) => Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>) | Blob | LibraryItems_anyVersion | Promise<LibraryItems_anyVersion | Blob>;
195
+ export declare type ExcalidrawAPIRefValue = ExcalidrawImperativeAPI | {
196
+ readyPromise?: ResolvablePromise<ExcalidrawImperativeAPI>;
197
+ ready?: false;
198
+ };
199
+ export declare type ExcalidrawInitialDataState = Merge<ImportedDataState, {
200
+ scrollX?: number;
201
+ scrollY?: number;
202
+ libraryItems?: Required<ImportedDataState>["libraryItems"] | Promise<Required<ImportedDataState>["libraryItems"]>;
203
+ }>;
204
+ export interface ExcalidrawProps {
205
+ id?: string | null;
206
+ onChange?: (elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles, id?: string | null) => void;
207
+ initialData?: ExcalidrawInitialDataState | null | Promise<ExcalidrawInitialDataState | null>;
208
+ onHomeButtonClick: () => void;
209
+ onThemeToggle: (theme: Theme) => void;
210
+ user?: {
211
+ name?: string | null;
212
+ };
213
+ excalidrawRef?: ForwardRef<ExcalidrawAPIRefValue>;
214
+ onCollabButtonClick?: () => void;
215
+ isCollaborating?: boolean;
216
+ onPointerUpdate?: (payload: {
217
+ pointer: {
218
+ x: number;
219
+ y: number;
220
+ };
221
+ button: "down" | "up";
222
+ pointersMap: Gesture["pointers"];
223
+ }) => void;
224
+ onPaste?: (data: ClipboardData, event: ClipboardEvent | null) => Promise<boolean> | boolean;
225
+ renderTopRightUI?: (isMobile: boolean, appState: AppState) => JSX.Element | null;
226
+ renderFooter?: (isMobile: boolean, appState: AppState) => JSX.Element | null;
227
+ langCode?: Language["code"];
228
+ viewModeEnabled?: boolean;
229
+ zenModeEnabled?: boolean;
230
+ gridModeEnabled?: boolean;
231
+ libraryReturnUrl?: string;
232
+ theme?: Theme;
233
+ name?: string;
234
+ renderCustomStats?: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState) => JSX.Element;
235
+ UIOptions?: {
236
+ dockedSidebarBreakpoint?: number;
237
+ canvasActions?: CanvasActions;
238
+ };
239
+ detectScroll?: boolean;
240
+ handleKeyboardGlobally?: boolean;
241
+ onLibraryChange?: (libraryItems: LibraryItems) => void | Promise<any>;
242
+ autoFocus?: boolean;
243
+ generateIdForFile?: (file: File) => string | Promise<string>;
244
+ onLinkOpen?: (element: NonDeletedExcalidrawElement, event: CustomEvent<{
245
+ nativeEvent: MouseEvent | React.PointerEvent<HTMLCanvasElement>;
246
+ }>) => void;
247
+ onPointerDown?: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState) => void;
248
+ onScrollChange?: (scrollX: number, scrollY: number) => void;
249
+ /**
250
+ * Render function that renders custom <Sidebar /> component.
251
+ */
252
+ renderSidebar?: () => JSX.Element | null;
253
+ }
254
+ export declare type SceneData = {
255
+ elements?: ImportedDataState["elements"];
256
+ appState?: ImportedDataState["appState"];
257
+ collaborators?: Map<string, Collaborator>;
258
+ commitToHistory?: boolean;
259
+ };
260
+ export declare enum UserIdleState {
261
+ ACTIVE = "active",
262
+ AWAY = "away",
263
+ IDLE = "idle"
264
+ }
265
+ export declare type ExportOpts = {
266
+ saveFileToDisk?: boolean;
267
+ onExportToBackend?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles, canvas: HTMLCanvasElement | null) => void;
268
+ renderCustomUI?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles, canvas: HTMLCanvasElement | null) => JSX.Element;
269
+ };
270
+ declare type CanvasActions = {
271
+ changeViewBackgroundColor?: boolean;
272
+ clearCanvas?: boolean;
273
+ export?: false | ExportOpts;
274
+ loadScene?: boolean;
275
+ saveToActiveFile?: boolean;
276
+ toggleTheme?: boolean | null;
277
+ saveAsImage?: boolean;
278
+ };
279
+ export declare type AppProps = Merge<ExcalidrawProps, {
280
+ UIOptions: {
281
+ canvasActions: Required<CanvasActions> & {
282
+ export: ExportOpts;
283
+ };
284
+ dockedSidebarBreakpoint?: number;
285
+ };
286
+ detectScroll: boolean;
287
+ handleKeyboardGlobally: boolean;
288
+ isCollaborating: boolean;
289
+ children?: React.ReactNode;
290
+ }>;
291
+ /** A subset of App class properties that we need to use elsewhere
292
+ * in the app, eg Manager. Factored out into a separate type to keep DRY. */
293
+ export declare type AppClassProperties = {
294
+ props: AppProps;
295
+ canvas: HTMLCanvasElement | null;
296
+ focusContainer(): void;
297
+ library: Library;
298
+ imageCache: Map<FileId, {
299
+ image: HTMLImageElement | Promise<HTMLImageElement>;
300
+ mimeType: typeof ALLOWED_IMAGE_MIME_TYPES[number];
301
+ }>;
302
+ files: BinaryFiles;
303
+ device: App["device"];
304
+ scene: App["scene"];
305
+ };
306
+ export declare type PointerDownState = Readonly<{
307
+ origin: Readonly<{
308
+ x: number;
309
+ y: number;
310
+ }>;
311
+ originInGrid: Readonly<{
312
+ x: number;
313
+ y: number;
314
+ }>;
315
+ scrollbars: ReturnType<typeof isOverScrollBars>;
316
+ lastCoords: {
317
+ x: number;
318
+ y: number;
319
+ };
320
+ originalElements: Map<string, NonDeleted<ExcalidrawElement>>;
321
+ resize: {
322
+ handleType: MaybeTransformHandleType;
323
+ isResizing: boolean;
324
+ offset: {
325
+ x: number;
326
+ y: number;
327
+ };
328
+ arrowDirection: "origin" | "end";
329
+ center: {
330
+ x: number;
331
+ y: number;
332
+ };
333
+ };
334
+ hit: {
335
+ element: NonDeleted<ExcalidrawElement> | null;
336
+ allHitElements: NonDeleted<ExcalidrawElement>[];
337
+ wasAddedToSelection: boolean;
338
+ hasBeenDuplicated: boolean;
339
+ hasHitCommonBoundingBoxOfSelectedElements: boolean;
340
+ };
341
+ withCmdOrCtrl: boolean;
342
+ drag: {
343
+ hasOccurred: boolean;
344
+ offset: {
345
+ x: number;
346
+ y: number;
347
+ } | null;
348
+ };
349
+ eventListeners: {
350
+ onMove: null | ReturnType<typeof throttleRAF>;
351
+ onUp: null | ((event: PointerEvent) => void);
352
+ onKeyDown: null | ((event: KeyboardEvent) => void);
353
+ onKeyUp: null | ((event: KeyboardEvent) => void);
354
+ };
355
+ boxSelection: {
356
+ hasOccurred: boolean;
357
+ };
358
+ elementIdsToErase: {
359
+ [key: ExcalidrawElement["id"]]: {
360
+ opacity: ExcalidrawElement["opacity"];
361
+ erase: boolean;
362
+ };
363
+ };
364
+ }>;
365
+ declare type UnsubscribeCallback = () => void;
366
+ export declare type ExcalidrawImperativeAPI = {
367
+ updateScene: InstanceType<typeof App>["updateScene"];
368
+ updateLibrary: InstanceType<typeof Library>["updateLibrary"];
369
+ resetScene: InstanceType<typeof App>["resetScene"];
370
+ getSceneElementsIncludingDeleted: InstanceType<typeof App>["getSceneElementsIncludingDeleted"];
371
+ history: {
372
+ clear: InstanceType<typeof App>["resetHistory"];
373
+ };
374
+ scrollToContent: InstanceType<typeof App>["scrollToContent"];
375
+ getSceneElements: InstanceType<typeof App>["getSceneElements"];
376
+ getAppState: () => InstanceType<typeof App>["state"];
377
+ getFiles: () => InstanceType<typeof App>["files"];
378
+ refresh: InstanceType<typeof App>["refresh"];
379
+ setToast: InstanceType<typeof App>["setToast"];
380
+ addFiles: (data: BinaryFileData[]) => void;
381
+ readyPromise: ResolvablePromise<ExcalidrawImperativeAPI>;
382
+ ready: true;
383
+ id: string;
384
+ setActiveTool: InstanceType<typeof App>["setActiveTool"];
385
+ setCursor: InstanceType<typeof App>["setCursor"];
386
+ resetCursor: InstanceType<typeof App>["resetCursor"];
387
+ toggleMenu: InstanceType<typeof App>["toggleMenu"];
388
+ app: InstanceType<typeof App>;
389
+ onChange: (callback: (elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles) => void) => UnsubscribeCallback;
390
+ onPointerDown: (callback: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState, event: React.PointerEvent<HTMLCanvasElement>) => void) => UnsubscribeCallback;
391
+ onPointerUp: (callback: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState, event: PointerEvent) => void) => UnsubscribeCallback;
392
+ };
393
+ export declare type Device = Readonly<{
394
+ isSmScreen: boolean;
395
+ isMobile: boolean;
396
+ isTouchScreen: boolean;
397
+ canDeviceFitSidebar: boolean;
398
+ }>;
399
+ export {};