@excalidraw/math 0.18.0-d2463f87d → 0.18.0-d255747

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 (280) hide show
  1. package/dist/dev/index.js +92 -65
  2. package/dist/dev/index.js.map +3 -3
  3. package/dist/prod/index.js +1 -1
  4. package/dist/types/common/debug.d.ts +21 -0
  5. package/dist/types/common/src/appEventBus.d.ts +27 -0
  6. package/dist/types/common/src/bounds.d.ts +10 -0
  7. package/dist/types/common/src/colors.d.ts +59 -39
  8. package/dist/types/common/src/constants.d.ts +38 -26
  9. package/dist/types/common/src/editorInterface.d.ts +34 -0
  10. package/dist/types/common/src/font-metadata.d.ts +1 -3
  11. package/dist/types/common/src/index.d.ts +5 -0
  12. package/dist/types/common/src/keys.d.ts +1 -1
  13. package/dist/types/common/src/utility-types.d.ts +0 -1
  14. package/dist/types/common/src/utils.d.ts +53 -41
  15. package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
  16. package/dist/types/element/src/Scene.d.ts +16 -8
  17. package/dist/types/element/src/align.d.ts +2 -1
  18. package/dist/types/element/src/arrowheads.d.ts +3 -0
  19. package/dist/types/element/src/arrows/focus.d.ts +27 -0
  20. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  21. package/dist/types/element/src/binding.d.ts +67 -48
  22. package/dist/types/element/src/bounds.d.ts +8 -14
  23. package/dist/types/element/src/collision.d.ts +7 -2
  24. package/dist/types/element/src/comparisons.d.ts +7 -7
  25. package/dist/types/element/src/delta.d.ts +16 -4
  26. package/dist/types/element/src/distribute.d.ts +3 -1
  27. package/dist/types/element/src/dragElements.d.ts +3 -3
  28. package/dist/types/element/src/duplicate.d.ts +4 -3
  29. package/dist/types/element/src/elbowArrow.d.ts +2 -0
  30. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  31. package/dist/types/element/src/frame.d.ts +12 -7
  32. package/dist/types/element/src/groups.d.ts +1 -0
  33. package/dist/types/element/src/heading.d.ts +2 -1
  34. package/dist/types/element/src/image.d.ts +1 -11
  35. package/dist/types/element/src/index.d.ts +5 -3
  36. package/dist/types/element/src/linearElementEditor.d.ts +25 -23
  37. package/dist/types/element/src/mutateElement.d.ts +5 -1
  38. package/dist/types/element/src/newElement.d.ts +6 -6
  39. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  40. package/dist/types/element/src/renderElement.d.ts +4 -7
  41. package/dist/types/element/src/resizeElements.d.ts +10 -10
  42. package/dist/types/element/src/resizeTest.d.ts +6 -5
  43. package/dist/types/element/src/selection.d.ts +10 -10
  44. package/dist/types/element/src/shape.d.ts +9 -8
  45. package/dist/types/element/src/store.d.ts +8 -2
  46. package/dist/types/element/src/textElement.d.ts +2 -2
  47. package/dist/types/element/src/textMeasurements.d.ts +1 -3
  48. package/dist/types/element/src/textWrapping.d.ts +26 -0
  49. package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
  50. package/dist/types/element/src/transformHandles.d.ts +8 -27
  51. package/dist/types/element/src/typeChecks.d.ts +5 -7
  52. package/dist/types/element/src/types.d.ts +12 -13
  53. package/dist/types/element/src/utils.d.ts +9 -4
  54. package/dist/types/element/src/zindex.d.ts +7 -1
  55. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +167 -210
  56. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
  57. package/dist/types/excalidraw/actions/actionBoundText.d.ts +94 -123
  58. package/dist/types/excalidraw/actions/actionCanvas.d.ts +557 -914
  59. package/dist/types/excalidraw/actions/actionClipboard.d.ts +123 -896
  60. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +45 -60
  61. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +151 -198
  62. package/dist/types/excalidraw/actions/actionDeselect.d.ts +159 -0
  63. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  64. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +3 -4
  65. package/dist/types/excalidraw/actions/actionElementLink.d.ts +53 -74
  66. package/dist/types/excalidraw/actions/actionElementLock.d.ts +92 -121
  67. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +59 -74
  68. package/dist/types/excalidraw/actions/actionExport.d.ts +173 -1414
  69. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -395
  70. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
  71. package/dist/types/excalidraw/actions/actionFrame.d.ts +265 -360
  72. package/dist/types/excalidraw/actions/actionGroup.d.ts +97 -134
  73. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +162 -184
  74. package/dist/types/excalidraw/actions/actionLink.d.ts +59 -74
  75. package/dist/types/excalidraw/actions/actionMenu.d.ts +48 -437
  76. package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -361
  77. package/dist/types/excalidraw/actions/actionProperties.d.ts +152 -2524
  78. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +48 -67
  79. package/dist/types/excalidraw/actions/actionStyles.d.ts +45 -59
  80. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +4 -4
  81. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +172 -0
  82. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +59 -74
  83. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +172 -0
  84. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +59 -74
  85. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +47 -68
  86. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  87. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +58 -73
  88. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +59 -74
  89. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +59 -74
  90. package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -9
  91. package/dist/types/excalidraw/actions/index.d.ts +5 -2
  92. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  93. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  94. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  95. package/dist/types/excalidraw/appState.d.ts +29 -21
  96. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  97. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  98. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  99. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  100. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  101. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  102. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  103. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  104. package/dist/types/excalidraw/clipboard.d.ts +57 -19
  105. package/dist/types/excalidraw/components/Actions.d.ts +21 -8
  106. package/dist/types/excalidraw/components/App.d.ts +127 -75
  107. package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
  108. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  109. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  110. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
  111. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
  112. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
  113. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
  114. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
  115. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  116. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
  117. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +2 -4
  118. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  119. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  120. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  121. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  122. package/dist/types/excalidraw/components/Ellipsify.d.ts +3 -0
  123. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  124. package/dist/types/excalidraw/components/EyeDropper.d.ts +0 -1
  125. package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
  126. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  127. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
  128. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  129. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  130. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  131. package/dist/types/excalidraw/components/IconPicker.d.ts +14 -9
  132. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  133. package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
  134. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  135. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
  136. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
  137. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
  138. package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
  139. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
  140. package/dist/types/excalidraw/components/MobileToolBar.d.ts +10 -0
  141. package/dist/types/excalidraw/components/Modal.d.ts +0 -1
  142. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
  143. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
  144. package/dist/types/excalidraw/components/Popover.d.ts +2 -1
  145. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +2 -1
  146. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  147. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  148. package/dist/types/excalidraw/components/Range.d.ts +10 -4
  149. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  150. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +15 -21
  151. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  152. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  153. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  154. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  155. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  156. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  157. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  158. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  159. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
  160. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  161. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  162. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  163. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
  164. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
  165. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
  166. package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
  167. package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
  168. package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
  169. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
  170. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  171. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
  172. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
  173. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +5 -2
  174. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  175. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  176. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  177. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  178. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  179. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  180. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
  181. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  182. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  183. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  184. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
  185. package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
  186. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
  187. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
  188. package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
  189. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
  190. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
  191. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
  192. package/dist/types/excalidraw/components/TextField.d.ts +1 -0
  193. package/dist/types/excalidraw/components/Toast.d.ts +11 -7
  194. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  195. package/dist/types/excalidraw/components/Trans.d.ts +2 -2
  196. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +8 -4
  197. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
  198. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  199. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +47 -35
  200. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -5
  201. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  202. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
  203. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  204. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
  205. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -2
  206. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  207. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  208. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  209. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  210. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  211. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  212. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +2 -2
  213. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  214. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  215. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  216. package/dist/types/excalidraw/components/icons.d.ts +49 -21
  217. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +20 -2
  218. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -35
  219. package/dist/types/excalidraw/components/shapes.d.ts +202 -1
  220. package/dist/types/excalidraw/data/blob.d.ts +327 -12
  221. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  222. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  223. package/dist/types/excalidraw/data/filesystem.d.ts +5 -7
  224. package/dist/types/excalidraw/data/index.d.ts +4 -5
  225. package/dist/types/excalidraw/data/json.d.ts +170 -4
  226. package/dist/types/excalidraw/data/library.d.ts +24 -9
  227. package/dist/types/excalidraw/data/resave.d.ts +7 -2
  228. package/dist/types/excalidraw/data/restore.d.ts +27 -7
  229. package/dist/types/excalidraw/data/types.d.ts +4 -1
  230. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  231. package/dist/types/excalidraw/errors.d.ts +14 -0
  232. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  233. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
  234. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  235. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  236. package/dist/types/excalidraw/i18n.d.ts +2 -2
  237. package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
  238. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
  239. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
  240. package/dist/types/excalidraw/renderer/staticScene.d.ts +4 -1
  241. package/dist/types/excalidraw/scene/Renderer.d.ts +427 -18
  242. package/dist/types/excalidraw/scene/export.d.ts +2 -2
  243. package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
  244. package/dist/types/excalidraw/scene/types.d.ts +22 -5
  245. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  246. package/dist/types/excalidraw/snapping.d.ts +5 -5
  247. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  248. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  249. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  250. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  251. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  252. package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
  253. package/dist/types/excalidraw/types.d.ts +134 -39
  254. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +7 -3
  255. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  256. package/dist/types/math/src/constants.d.ts +0 -1
  257. package/dist/types/math/src/curve.d.ts +4 -1
  258. package/dist/types/math/src/point.d.ts +7 -2
  259. package/dist/types/math/src/polygon.d.ts +2 -2
  260. package/dist/types/math/src/range.d.ts +1 -3
  261. package/dist/types/math/src/segment.d.ts +4 -3
  262. package/dist/types/math/src/types.d.ts +25 -1
  263. package/dist/types/utils/src/bbox.d.ts +1 -1
  264. package/dist/types/utils/src/export.d.ts +5 -5
  265. package/dist/types/utils/src/shape.d.ts +6 -6
  266. package/dist/types/utils/src/withinBounds.d.ts +2 -2
  267. package/package.json +2 -2
  268. package/dist/types/excalidraw/charts.d.ts +0 -27
  269. package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
  270. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -16
  271. package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
  272. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -9
  273. package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
  274. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -10
  275. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -58
  276. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -19
  277. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +0 -85
  278. package/dist/types/excalidraw/data/reconcile.d.ts +0 -6
  279. package/dist/types/excalidraw/index.d.ts +0 -46
  280. package/dist/types/excalidraw/polyfill.d.ts +0 -2
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import { type EXPORT_IMAGE_TYPES, Emitter } from "@excalidraw/common";
3
- import { LinearElementEditor, FlowChartCreator, Scene, Store, type ElementUpdate } from "@excalidraw/element";
4
- import type { ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered } from "@excalidraw/element/types";
2
+ import { AppEventBus, type EXPORT_IMAGE_TYPES, Emitter, type EditorInterface, type StylesPanelMode } from "@excalidraw/common";
3
+ import { LinearElementEditor, FlowChartCreator, Scene, Store, type ElementUpdate, StoreDelta, type ApplyToOptions } from "@excalidraw/element";
4
+ import type { ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered, SceneElementsMap } from "@excalidraw/element/types";
5
5
  import type { Mutable } from "@excalidraw/common/utility-types";
6
6
  import { ActionManager } from "../actions/manager";
7
7
  import { AnimationFrameHandler } from "../animation-frame-handler";
@@ -10,30 +10,48 @@ import { Fonts } from "../fonts";
10
10
  import { type WritableAtom } from "../editor-jotai";
11
11
  import { Renderer } from "../scene/Renderer";
12
12
  import { LaserTrails } from "../laser-trails";
13
+ import { isOverScrollBars } from "../scene/scrollbars";
13
14
  import { LassoTrail } from "../lasso";
14
15
  import { EraserTrail } from "../eraser";
16
+ import { type OnStateChange } from "./AppStateObserver";
15
17
  import type { ExportedElements } from "../data";
16
- import type { FileSystemHandle } from "../data/filesystem";
17
- import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, Device, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, GenerateDiagramToCode, NullableGridSize, Offsets } from "../types";
18
+ import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, ExcalidrawImperativeAPIEventMap, GenerateDiagramToCode, NullableGridSize, Offsets } from "../types";
18
19
  import type { RoughCanvas } from "roughjs/bin/canvas";
19
20
  import type { ActionResult } from "../actions/types";
21
+ declare const editorLifecycleEventBehavior: {
22
+ readonly "editor:mount": {
23
+ readonly cardinality: "once";
24
+ readonly replay: "last";
25
+ };
26
+ readonly "editor:initialize": {
27
+ readonly cardinality: "once";
28
+ readonly replay: "last";
29
+ };
30
+ readonly "editor:unmount": {
31
+ readonly cardinality: "once";
32
+ readonly replay: "last";
33
+ };
34
+ };
20
35
  export declare const ExcalidrawContainerContext: React.Context<{
21
36
  container: HTMLDivElement | null;
22
37
  id: string | null;
23
38
  }>;
39
+ export declare const ExcalidrawAPIContext: React.Context<ExcalidrawImperativeAPI | null>;
40
+ export declare const ExcalidrawAPISetContext: React.Context<((api: ExcalidrawImperativeAPI | null) => void) | null>;
24
41
  export declare const useApp: () => AppClassProperties;
25
42
  export declare const useAppProps: () => AppProps;
26
- export declare const useDevice: () => Readonly<{
27
- viewport: {
28
- isMobile: boolean;
29
- isLandscape: boolean;
30
- };
31
- editor: {
32
- isMobile: boolean;
33
- canFitSidebar: boolean;
34
- };
43
+ export declare const useEditorInterface: () => Readonly<{
44
+ formFactor: "phone" | "tablet" | "desktop";
45
+ desktopUIMode: "compact" | "full";
46
+ userAgent: Readonly<{
47
+ isMobileDevice: boolean;
48
+ platform: "ios" | "android" | "other" | "unknown";
49
+ }>;
35
50
  isTouchScreen: boolean;
51
+ canFitSidebar: boolean;
52
+ isLandscape: boolean;
36
53
  }>;
54
+ export declare const useStylesPanelMode: () => StylesPanelMode;
37
55
  export declare const useExcalidrawContainer: () => {
38
56
  container: HTMLDivElement | null;
39
57
  id: string | null;
@@ -42,20 +60,25 @@ export declare const useExcalidrawElements: () => readonly NonDeletedExcalidrawE
42
60
  export declare const useExcalidrawAppState: () => AppState;
43
61
  export declare const useExcalidrawSetAppState: () => <K extends keyof AppState>(state: AppState | ((prevState: Readonly<AppState>, props: Readonly<any>) => AppState | Pick<AppState, K> | null) | Pick<AppState, K> | null, callback?: (() => void) | undefined) => void;
44
62
  export declare const useExcalidrawActionManager: () => ActionManager;
63
+ /**
64
+ * Requires wrapping your component in <ExcalidrawAPIContext.Provider>
65
+ */
66
+ export declare const useExcalidrawAPI: () => ExcalidrawImperativeAPI | null;
45
67
  declare class App extends React.Component<AppProps, AppState> {
46
68
  canvas: AppClassProperties["canvas"];
47
69
  interactiveCanvas: AppClassProperties["interactiveCanvas"];
70
+ sessionExportThemeOverride: AppState["theme"] | undefined;
48
71
  rc: RoughCanvas;
49
72
  unmounted: boolean;
50
73
  actionManager: ActionManager;
51
- device: Device;
74
+ editorInterface: EditorInterface;
75
+ private stylesPanelMode;
52
76
  private excalidrawContainerRef;
53
77
  scene: Scene;
54
78
  fonts: Fonts;
55
79
  renderer: Renderer;
56
80
  visibleElements: readonly NonDeletedExcalidrawElement[];
57
81
  private resizeObserver;
58
- private nearestScrollableContainer;
59
82
  library: AppClassProperties["library"];
60
83
  libraryItemsFromStorage: LibraryItems | undefined;
61
84
  id: string;
@@ -79,16 +102,30 @@ declare class App extends React.Component<AppProps, AppState> {
79
102
  * insert to DOM before user initially scrolls to them) */
80
103
  private initializedEmbeds;
81
104
  private elementsPendingErasure;
105
+ private _initialized;
106
+ private readonly editorLifecycleEvents;
107
+ onEvent: AppEventBus<ExcalidrawImperativeAPIEventMap, typeof editorLifecycleEventBehavior>["on"];
108
+ private appStateObserver;
109
+ onStateChange: OnStateChange;
82
110
  flowChartCreator: FlowChartCreator;
83
111
  private flowChartNavigator;
112
+ bindModeHandler: ReturnType<typeof setTimeout> | null;
84
113
  hitLinkElement?: NonDeletedExcalidrawElement;
85
114
  lastPointerDownEvent: React.PointerEvent<HTMLElement> | null;
86
115
  lastPointerUpEvent: React.PointerEvent<HTMLElement> | PointerEvent | null;
116
+ lastPointerUpIsDoubleClick: boolean;
87
117
  lastPointerMoveEvent: PointerEvent | null;
118
+ /** current frame pointer cords */
88
119
  lastPointerMoveCoords: {
89
120
  x: number;
90
121
  y: number;
91
122
  } | null;
123
+ private lastCompletedCanvasClicks;
124
+ /** previous frame pointer coords */
125
+ previousPointerMoveCoords: {
126
+ x: number;
127
+ y: number;
128
+ } | null;
92
129
  lastViewportPosition: {
93
130
  x: number;
94
131
  y: number;
@@ -111,11 +148,7 @@ declare class App extends React.Component<AppProps, AppState> {
111
148
  x: number;
112
149
  y: number;
113
150
  }>;
114
- scrollbars: {
115
- isOverEither: boolean;
116
- isOverHorizontal: boolean;
117
- isOverVertical: boolean;
118
- };
151
+ scrollbars: ReturnType<typeof isOverScrollBars>;
119
152
  lastCoords: {
120
153
  x: number;
121
154
  y: number;
@@ -128,7 +161,7 @@ declare class App extends React.Component<AppProps, AppState> {
128
161
  x: number;
129
162
  y: number;
130
163
  };
131
- arrowDirection: "end" | "origin";
164
+ arrowDirection: "origin" | "end";
132
165
  center: {
133
166
  x: number;
134
167
  y: number;
@@ -152,16 +185,13 @@ declare class App extends React.Component<AppProps, AppState> {
152
185
  x: number;
153
186
  y: number;
154
187
  };
188
+ blockDragging: boolean;
155
189
  };
156
190
  eventListeners: {
157
- onMove: {
158
- (...args: any[]): void;
159
- flush(): void;
160
- cancel(): void;
161
- } | null;
162
- onUp: ((event: PointerEvent) => void) | null;
163
- onKeyDown: ((event: KeyboardEvent) => void) | null;
164
- onKeyUp: ((event: KeyboardEvent) => void) | null;
191
+ onMove: null | ReturnType<typeof import("@excalidraw/common").throttleRAF>;
192
+ onUp: null | ((event: PointerEvent) => void);
193
+ onKeyDown: null | ((event: KeyboardEvent) => void);
194
+ onKeyUp: null | ((event: KeyboardEvent) => void);
165
195
  };
166
196
  boxSelection: {
167
197
  hasOccurred: boolean;
@@ -180,11 +210,7 @@ declare class App extends React.Component<AppProps, AppState> {
180
210
  x: number;
181
211
  y: number;
182
212
  }>;
183
- scrollbars: {
184
- isOverEither: boolean;
185
- isOverHorizontal: boolean;
186
- isOverVertical: boolean;
187
- };
213
+ scrollbars: ReturnType<typeof isOverScrollBars>;
188
214
  lastCoords: {
189
215
  x: number;
190
216
  y: number;
@@ -197,7 +223,7 @@ declare class App extends React.Component<AppProps, AppState> {
197
223
  x: number;
198
224
  y: number;
199
225
  };
200
- arrowDirection: "end" | "origin";
226
+ arrowDirection: "origin" | "end";
201
227
  center: {
202
228
  x: number;
203
229
  y: number;
@@ -221,16 +247,13 @@ declare class App extends React.Component<AppProps, AppState> {
221
247
  x: number;
222
248
  y: number;
223
249
  };
250
+ blockDragging: boolean;
224
251
  };
225
252
  eventListeners: {
226
- onMove: {
227
- (...args: any[]): void;
228
- flush(): void;
229
- cancel(): void;
230
- } | null;
231
- onUp: ((event: PointerEvent) => void) | null;
232
- onKeyDown: ((event: KeyboardEvent) => void) | null;
233
- onKeyUp: ((event: KeyboardEvent) => void) | null;
253
+ onMove: null | ReturnType<typeof import("@excalidraw/common").throttleRAF>;
254
+ onUp: null | ((event: PointerEvent) => void);
255
+ onKeyDown: null | ((event: KeyboardEvent) => void);
256
+ onKeyUp: null | ((event: KeyboardEvent) => void);
234
257
  };
235
258
  boxSelection: {
236
259
  hasOccurred: boolean;
@@ -242,17 +265,27 @@ declare class App extends React.Component<AppProps, AppState> {
242
265
  }>]>;
243
266
  missingPointerEventCleanupEmitter: Emitter<[event: PointerEvent | null]>;
244
267
  onRemoveEventListenersEmitter: Emitter<[]>;
268
+ api: ExcalidrawImperativeAPI;
269
+ private createExcalidrawAPI;
245
270
  constructor(props: AppProps);
246
271
  updateEditorAtom: <Value, Args extends unknown[], Result>(atom: WritableAtom<Value, Args, Result>, ...args: Args) => Result;
247
272
  private onWindowMessage;
273
+ private handleSkipBindMode;
274
+ private resetDelayedBindMode;
275
+ private previousHoveredBindableElement;
276
+ private handleDelayedBindModeChange;
248
277
  private cacheEmbeddableRef;
249
278
  /**
250
279
  * Returns gridSize taking into account `gridModeEnabled`.
251
280
  * If disabled, returns null.
252
281
  */
253
282
  getEffectiveGridSize: () => NullableGridSize;
283
+ private getTextCreationGridPoint;
254
284
  private getHTMLIFrameElement;
255
- private handleEmbeddableCenterClick;
285
+ private handleIframeLikeElementHover;
286
+ /** @returns true if iframe-like element click handled */
287
+ private handleIframeLikeCenterClick;
288
+ private isDoubleClick;
256
289
  private isIframeLikeElementCenter;
257
290
  private updateEmbedValidationStatus;
258
291
  private updateEmbeddables;
@@ -265,7 +298,7 @@ declare class App extends React.Component<AppProps, AppState> {
265
298
  render(): import("react/jsx-runtime").JSX.Element;
266
299
  focusContainer: AppClassProperties["focusContainer"];
267
300
  getSceneElementsIncludingDeleted: () => readonly import("@excalidraw/element/types").OrderedExcalidrawElement[];
268
- getSceneElementsMapIncludingDeleted: () => Map<string, Ordered<ExcalidrawElement>> & import("@excalidraw/common/utility-types").MakeBrand<"SceneElementsMap">;
301
+ getSceneElementsMapIncludingDeleted: () => SceneElementsMap;
269
302
  getSceneElements: () => readonly Ordered<NonDeletedExcalidrawElement>[];
270
303
  onInsertElements: (elements: readonly ExcalidrawElement[]) => void;
271
304
  onExportImage: (type: keyof typeof EXPORT_IMAGE_TYPES, elements: ExportedElements, opts: {
@@ -296,9 +329,11 @@ declare class App extends React.Component<AppProps, AppState> {
296
329
  */
297
330
  private resetScene;
298
331
  private initializeScene;
299
- private isMobileBreakpoint;
300
- private refreshViewportBreakpoints;
301
- private refreshEditorBreakpoints;
332
+ private getFormFactor;
333
+ refreshEditorInterface: () => void;
334
+ private reconcileStylesPanelMode;
335
+ /** TO BE USED LATER */
336
+ private setDesktopUIMode;
302
337
  private clearImageShapeCache;
303
338
  componentDidMount(): Promise<void>;
304
339
  componentWillUnmount(): void;
@@ -315,6 +350,7 @@ declare class App extends React.Component<AppProps, AppState> {
315
350
  private static resetTapTwice;
316
351
  private onTouchStart;
317
352
  private onTouchEnd;
353
+ private insertClipboardContent;
318
354
  pasteFromClipboard: (event: ClipboardEvent) => Promise<void>;
319
355
  addElementsFromPasteOrLibrary: (opts: {
320
356
  elements: readonly ExcalidrawElement[];
@@ -325,26 +361,34 @@ declare class App extends React.Component<AppProps, AppState> {
325
361
  } | "cursor" | "center";
326
362
  retainSeed?: boolean;
327
363
  fitToContent?: boolean;
364
+ preserveFrameChildrenOrder?: boolean;
328
365
  }) => void;
329
366
  private addElementsFromMixedContentPaste;
330
367
  private addTextFromPaste;
331
368
  setAppState: React.Component<any, AppState>["setState"];
332
369
  removePointer: (event: React.PointerEvent<HTMLElement> | PointerEvent) => void;
333
370
  toggleLock: (source?: "keyboard" | "ui") => void;
334
- updateFrameRendering: (opts: Partial<{
335
- enabled: boolean;
336
- name: boolean;
337
- outline: boolean;
338
- clip: boolean;
339
- }> | ((prevState: AppState["frameRendering"]) => Partial<AppState["frameRendering"]>)) => void;
371
+ updateFrameRendering: (opts: Partial<AppState["frameRendering"]> | ((prevState: AppState["frameRendering"]) => Partial<AppState["frameRendering"]>)) => void;
340
372
  togglePenMode: (force: boolean | null) => void;
341
373
  onHandToolToggle: () => void;
342
374
  /**
343
375
  * Zooms on canvas viewport center
344
376
  */
345
- zoomCanvas: (value: number) => void;
377
+ zoomCanvas: (
378
+ /**
379
+ * Decimal fraction, auto-clamped between MIN_ZOOM and MAX_ZOOM.
380
+ * 1 = 100% zoom, 2 = 200% zoom, 0.5 = 50% zoom
381
+ */
382
+ value: number) => void;
346
383
  private cancelInProgressAnimation;
347
- scrollToContent: (target?: string | ExcalidrawElement | readonly ExcalidrawElement[], opts?: ({
384
+ scrollToContent: (
385
+ /**
386
+ * target to scroll to
387
+ *
388
+ * - string - id of element or group, or url containing elementLink
389
+ * - ExcalidrawElement | ExcalidrawElement[] - element(s) objects
390
+ */
391
+ target?: string | ExcalidrawElement | readonly ExcalidrawElement[], opts?: ({
348
392
  fitToContent?: boolean;
349
393
  fitToViewport?: never;
350
394
  viewportZoomFactor?: number;
@@ -367,11 +411,7 @@ declare class App extends React.Component<AppProps, AppState> {
367
411
  private maybeUnfollowRemoteUser;
368
412
  /** use when changing scrollX/scrollY/zoom based on user interaction */
369
413
  private translateCanvas;
370
- setToast: (toast: {
371
- message: string;
372
- closable?: boolean;
373
- duration?: number;
374
- } | null) => void;
414
+ setToast: (toast: AppState["toast"]) => void;
375
415
  restoreFileFromShare: () => Promise<void>;
376
416
  /**
377
417
  * adds supplied files to existing files in the appState.
@@ -381,7 +421,7 @@ declare class App extends React.Component<AppProps, AppState> {
381
421
  private addMissingFiles;
382
422
  updateScene: <K extends keyof AppState>(sceneData: {
383
423
  elements?: SceneData["elements"];
384
- appState?: Pick<AppState, K> | null | undefined;
424
+ appState?: Pick<AppState, K> | null;
385
425
  collaborators?: SceneData["collaborators"];
386
426
  /**
387
427
  * Controls which updates should be captured by the `Store`. Captured updates are emmitted and listened to by other components, such as `History` for undo / redo purposes.
@@ -396,6 +436,7 @@ declare class App extends React.Component<AppProps, AppState> {
396
436
  */
397
437
  captureUpdate?: SceneData["captureUpdate"];
398
438
  }) => void;
439
+ applyDeltas: (deltas: StoreDelta[], options?: ApplyToOptions) => [SceneElementsMap, AppState, boolean];
399
440
  mutateElement: <TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, informMutation?: boolean) => TElement;
400
441
  private triggerRender;
401
442
  /**
@@ -403,8 +444,8 @@ declare class App extends React.Component<AppProps, AppState> {
403
444
  */
404
445
  toggleSidebar: ({ name, tab, force, }: {
405
446
  name: SidebarName | null;
406
- tab?: string | undefined;
407
- force?: boolean | undefined;
447
+ tab?: SidebarTabName;
448
+ force?: boolean;
408
449
  }) => boolean;
409
450
  private updateCurrentCursorPosition;
410
451
  getEditorUIOffsets: () => Offsets;
@@ -436,7 +477,11 @@ declare class App extends React.Component<AppProps, AppState> {
436
477
  private onGestureEnd;
437
478
  private handleTextWysiwyg;
438
479
  private deselectElements;
480
+ private getSelectedTextElement;
481
+ private getSelectedTextEditingContainerAtPosition;
439
482
  private getTextElementAtPosition;
483
+ private isHittingTextAutoResizeHandle;
484
+ private handleTextAutoResizeHandlePointerDown;
440
485
  private getElementAtPosition;
441
486
  private getElementsAtPosition;
442
487
  getElementHitThreshold(element: ExcalidrawElement): number;
@@ -445,10 +490,20 @@ declare class App extends React.Component<AppProps, AppState> {
445
490
  private startTextEditing;
446
491
  private startImageCropping;
447
492
  private finishImageCropping;
493
+ private shouldHandleBrowserCanvasDoubleClick;
448
494
  private handleCanvasDoubleClick;
495
+ private handleCanvasClick;
449
496
  private getElementLinkAtPosition;
450
- private redirectToLink;
497
+ private handleElementLinkClick;
498
+ /**
499
+ * finds candidate frame under cursor (when dragging frame children/elements
500
+ * inside frames)
501
+ */
451
502
  private getTopLayerFrameAtSceneCoords;
503
+ private updateFrameToHighlight;
504
+ private maybeUpdateFrameToHighlightOnPointerMove;
505
+ private insertNewElements;
506
+ private insertNewElement;
452
507
  private handleCanvasPointerMove;
453
508
  private handleEraser;
454
509
  private handleTouchMove;
@@ -487,7 +542,7 @@ declare class App extends React.Component<AppProps, AppState> {
487
542
  sceneY: number;
488
543
  link: string;
489
544
  }) => NonDeleted<ExcalidrawEmbeddableElement> | undefined;
490
- private createImageElement;
545
+ private newImagePlaceholder;
491
546
  private handleLinearElementOnPointerDown;
492
547
  private getCurrentItemRoundness;
493
548
  private createGenericElementOnPointerDown;
@@ -508,11 +563,7 @@ declare class App extends React.Component<AppProps, AppState> {
508
563
  * and when you don't want to loose those modifications
509
564
  */
510
565
  private getLatestInitializedImageElement;
511
- /**
512
- * inserts image into elements array and rerenders
513
- */
514
- private insertImageElement;
515
- private onImageAction;
566
+ private onImageToolbarButtonClick;
516
567
  private getImageNaturalDimensions;
517
568
  /** updates image cache, refreshing updated elements and/or setting status
518
569
  to error for images that fail during <img> element creation */
@@ -522,12 +573,11 @@ declare class App extends React.Component<AppProps, AppState> {
522
573
  /** generally you should use `addNewImagesToImageCache()` directly if you need
523
574
  * to render new images. This is just a failsafe */
524
575
  private scheduleImageRefresh;
525
- private updateBindingEnabledOnPointerMove;
526
- private maybeSuggestBindingAtCursor;
527
576
  private clearSelection;
528
577
  private handleInteractiveCanvasRef;
578
+ private insertImages;
529
579
  private handleAppOnDrop;
530
- loadFileToCanvas: (file: File, fileHandle: FileSystemHandle | null) => Promise<void>;
580
+ loadFileToCanvas: (file: File, fileHandle: FileSystemFileHandle | null) => Promise<void>;
531
581
  private handleCanvasContextMenu;
532
582
  private maybeDragNewGenericElement;
533
583
  private maybeHandleCrop;
@@ -540,6 +590,7 @@ declare class App extends React.Component<AppProps, AppState> {
540
590
  private updateDOMRect;
541
591
  refresh: () => void;
542
592
  private getCanvasOffsets;
593
+ watchState: () => void;
543
594
  private updateLanguage;
544
595
  }
545
596
  declare global {
@@ -549,6 +600,7 @@ declare global {
549
600
  elements: readonly ExcalidrawElement[];
550
601
  state: AppState;
551
602
  setState: React.Component<any, AppState>["setState"];
603
+ watchState: (prev: any, next: any) => void | undefined;
552
604
  app: InstanceType<typeof App>;
553
605
  history: History;
554
606
  store: Store;
@@ -0,0 +1,37 @@
1
+ import type { AppState, UnsubscribeCallback } from "../types";
2
+ type StateChangeSelector = keyof AppState | (keyof AppState)[] | ((appState: AppState) => unknown);
3
+ export type OnStateChange = {
4
+ <K extends keyof AppState>(prop: K, callback: (value: AppState[K], appState: AppState) => void, opts?: {
5
+ once: boolean;
6
+ }): UnsubscribeCallback;
7
+ <K extends keyof AppState>(prop: K): Promise<AppState[K]>;
8
+ (prop: (keyof AppState)[], callback: (appState: AppState, appState2: AppState) => void, opts?: {
9
+ once: boolean;
10
+ }): UnsubscribeCallback;
11
+ (prop: (keyof AppState)[]): Promise<AppState>;
12
+ <T>(prop: (appState: AppState) => T, callback: (value: T, appState: AppState) => void, opts?: {
13
+ once: boolean;
14
+ }): UnsubscribeCallback;
15
+ <T>(prop: (appState: AppState) => T): Promise<T>;
16
+ (opts: {
17
+ predicate: (appState: AppState) => boolean;
18
+ callback: (appState: AppState) => void;
19
+ once?: boolean;
20
+ }): UnsubscribeCallback;
21
+ (opts: {
22
+ predicate: (appState: AppState) => boolean;
23
+ }): Promise<AppState>;
24
+ (selector: StateChangeSelector, callback: (value: any, appState: AppState) => void): any;
25
+ };
26
+ export declare class AppStateObserver {
27
+ private readonly getState;
28
+ private listeners;
29
+ constructor(getState: () => AppState);
30
+ private isStateChangePredicateOptions;
31
+ private subscribe;
32
+ private normalize;
33
+ onStateChange: OnStateChange;
34
+ flush(prevState: AppState): void;
35
+ clear(): void;
36
+ }
37
+ export {};
@@ -1,7 +1,5 @@
1
- /// <reference types="react" />
2
- import OpenColor from "open-color";
3
1
  import "./Card.scss";
4
2
  export declare const Card: React.FC<{
5
- color: keyof OpenColor | "primary";
3
+ color: "primary" | "lime" | "pink";
6
4
  children?: React.ReactNode;
7
5
  }>;
@@ -1,10 +1,8 @@
1
1
  import type { ColorPickerType } from "./colorPickerUtils";
2
- interface ColorInputProps {
2
+ export declare const ColorInput: ({ color, onChange, label, colorPickerType, placeholder, }: {
3
3
  color: string;
4
4
  onChange: (color: string) => void;
5
5
  label: string;
6
6
  colorPickerType: ColorPickerType;
7
7
  placeholder?: string;
8
- }
9
- export declare const ColorInput: ({ color, onChange, label, colorPickerType, placeholder, }: ColorInputProps) => import("react/jsx-runtime").JSX.Element;
10
- export {};
8
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -3,7 +3,6 @@ import type { ExcalidrawElement } from "@excalidraw/element/types";
3
3
  import "./ColorPicker.scss";
4
4
  import type { ColorPickerType } from "./colorPickerUtils";
5
5
  import type { AppState } from "../../types";
6
- export declare const getColor: (color: string) => string | null;
7
6
  interface ColorPickerProps {
8
7
  type: ColorPickerType;
9
8
  /**
@@ -10,8 +10,10 @@ interface PickerProps {
10
10
  palette: ColorPaletteCustom;
11
11
  updateData: (formData?: any) => void;
12
12
  children?: React.ReactNode;
13
+ showTitle?: boolean;
13
14
  onEyeDropperToggle: (force?: boolean) => void;
14
15
  onEscape: (event: React.KeyboardEvent | KeyboardEvent) => void;
16
+ showHotKey?: boolean;
15
17
  }
16
18
  export declare const Picker: React.ForwardRefExoticComponent<PickerProps & React.RefAttributes<unknown>>;
17
19
  export {};
@@ -4,6 +4,7 @@ interface PickerColorListProps {
4
4
  color: string | null;
5
5
  onChange: (color: string) => void;
6
6
  activeShade: number;
7
+ showHotKey?: boolean;
7
8
  }
8
- declare const PickerColorList: ({ palette, color, onChange, activeShade, }: PickerColorListProps) => import("react/jsx-runtime").JSX.Element;
9
+ declare const PickerColorList: ({ palette, color, onChange, activeShade, showHotKey, }: PickerColorListProps) => import("react/jsx-runtime").JSX.Element;
9
10
  export default PickerColorList;
@@ -3,6 +3,7 @@ interface ShadeListProps {
3
3
  color: string | null;
4
4
  onChange: (color: string) => void;
5
5
  palette: ColorPaletteCustom;
6
+ showHotKey?: boolean;
6
7
  }
7
- export declare const ShadeList: ({ color, onChange, palette }: ShadeListProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const ShadeList: ({ color, onChange, palette, showHotKey, }: ShadeListProps) => import("react/jsx-runtime").JSX.Element;
8
9
  export {};
@@ -17,5 +17,4 @@ export type ActiveColorPickerSectionAtomType = "custom" | "baseColors" | "shades
17
17
  export declare const activeColorPickerSectionAtom: import("jotai/vanilla/atom").PrimitiveAtom<ActiveColorPickerSectionAtomType> & {
18
18
  init: ActiveColorPickerSectionAtomType;
19
19
  };
20
- export declare const isColorDark: (color: string, threshold?: number) => boolean;
21
20
  export type ColorPickerType = "canvasBackground" | "elementBackground" | "elementStroke";
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ColorPaletteCustom } from "@excalidraw/common";
3
2
  import type { ActiveColorPickerSectionAtomType } from "./colorPickerUtils";
4
3
  interface ColorPickerKeyNavHandlerProps {
@@ -8,6 +8,7 @@ export declare const DEFAULT_CATEGORIES: {
8
8
  editor: string;
9
9
  elements: string;
10
10
  links: string;
11
+ library: string;
11
12
  };
12
13
  type CommandPaletteProps = {
13
14
  customCommandPaletteItems?: CommandPaletteItem[];
@@ -1,7 +1,5 @@
1
- /// <reference types="react" />
2
1
  import type { ActionManager } from "../../actions/manager";
3
2
  import type { Action } from "../../actions/types";
4
- import type { UIAppState } from "../../types";
5
3
  export type CommandPaletteItem = {
6
4
  label: string;
7
5
  /** additional keywords to match against
@@ -12,11 +10,11 @@ export type CommandPaletteItem = {
12
10
  * (deburred name + keywords)
13
11
  */
14
12
  haystack?: string;
15
- icon?: React.ReactNode | ((appState: UIAppState) => React.ReactNode);
13
+ icon?: Action["icon"];
16
14
  category: string;
17
15
  order?: number;
18
16
  predicate?: boolean | Action["predicate"];
19
- shortcut?: string;
17
+ shortcut?: string | null;
20
18
  /** if false, command will not show while in view mode */
21
19
  viewMode?: boolean;
22
20
  perform: (data: {
@@ -16,8 +16,8 @@ export declare const adjustBoundTextSize: (container: ExcalidrawTextContainer, b
16
16
  type ConversionType = "generic" | "linear" | null;
17
17
  export declare const convertElementTypes: (app: App, { conversionType, nextType, direction, }: {
18
18
  conversionType: ConversionType;
19
- nextType?: ConvertibleTypes | undefined;
20
- direction?: "left" | "right" | undefined;
19
+ nextType?: ConvertibleTypes;
20
+ direction?: "left" | "right";
21
21
  }) => boolean;
22
22
  export declare const getConversionTypeFromElements: (elements: ExcalidrawElement[]) => ConversionType;
23
23
  export default ConvertElementTypePopup;
@@ -3,5 +3,5 @@ import "./ToolIcon.scss";
3
3
  export declare const DarkModeToggle: (props: {
4
4
  value: Theme;
5
5
  onChange: (value: Theme) => void;
6
- title?: string | undefined;
6
+ title?: string;
7
7
  }) => import("react/jsx-runtime").JSX.Element;
@@ -1,26 +1,22 @@
1
- /// <reference types="react" />
2
1
  import type { MarkOptional } from "@excalidraw/common/utility-types";
3
2
  import "../components/dropdownMenu/DropdownMenu.scss";
4
3
  import type { SidebarProps, SidebarTriggerProps } from "./Sidebar/common";
5
4
  export declare const DefaultSidebar: import("react").FC<Omit<MarkOptional<Omit<{
6
- name: string;
7
- children: import("react").ReactNode;
8
- onStateChange?: ((state: {
9
- name: string;
10
- tab?: string | undefined;
11
- } | null) => void) | undefined;
12
- onDock?: ((docked: boolean) => void) | undefined;
13
- docked?: boolean | undefined;
14
- className?: string | undefined;
15
- __fallback?: boolean | undefined;
5
+ name: import("../types").SidebarName;
6
+ children: React.ReactNode;
7
+ onStateChange?: (state: import("../types").AppState["openSidebar"]) => void;
8
+ onDock?: (docked: boolean) => void;
9
+ docked?: boolean;
10
+ className?: string;
11
+ __fallback?: boolean;
16
12
  }, "name">, "children">, "onDock"> & {
17
13
  /** pass `false` to disable docking */
18
14
  onDock?: SidebarProps["onDock"] | false;
19
15
  } & {
20
- __fallback?: boolean | undefined;
16
+ __fallback?: boolean;
21
17
  }> & {
22
18
  Trigger: import("react").FC<Omit<SidebarTriggerProps, "name"> & import("react").HTMLAttributes<HTMLDivElement> & {
23
- __fallback?: boolean | undefined;
19
+ __fallback?: boolean;
24
20
  }>;
25
21
  TabTriggers: {
26
22
  ({ children }: {
@@ -6,7 +6,7 @@ declare const ElementLinkDialog: ({ sourceElementId, onClose, appState, scene, g
6
6
  sourceElementId: ExcalidrawElement["id"];
7
7
  appState: UIAppState;
8
8
  scene: Scene;
9
- onClose?: (() => void) | undefined;
9
+ onClose?: () => void;
10
10
  generateLinkForSelection: AppProps["generateLinkForSelection"];
11
11
  }) => import("react/jsx-runtime").JSX.Element;
12
12
  export default ElementLinkDialog;