@excalidraw/element 0.18.0-0fc927cb4 → 0.18.0-1acf66e

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/dist/dev/index.js +10079 -6277
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +20 -19
  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 +48 -33
  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/points.d.ts +1 -1
  14. package/dist/types/common/src/utility-types.d.ts +0 -1
  15. package/dist/types/common/src/utils.d.ts +47 -77
  16. package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
  17. package/dist/types/element/src/Scene.d.ts +11 -7
  18. package/dist/types/element/src/align.d.ts +2 -2
  19. package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
  20. package/dist/types/element/src/arrowheads.d.ts +3 -0
  21. package/dist/types/element/src/arrows/focus.d.ts +30 -0
  22. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  23. package/dist/types/element/src/binding.d.ts +79 -51
  24. package/dist/types/element/src/bounds.d.ts +26 -19
  25. package/dist/types/element/src/collision.d.ts +7 -2
  26. package/dist/types/element/src/comparisons.d.ts +8 -7
  27. package/dist/types/element/src/convertToShape.d.ts +23 -0
  28. package/dist/types/element/src/delta.d.ts +2 -2
  29. package/dist/types/element/src/distribute.d.ts +3 -2
  30. package/dist/types/element/src/dragElements.d.ts +30 -3
  31. package/dist/types/element/src/duplicate.d.ts +7 -6
  32. package/dist/types/element/src/elbowArrow.d.ts +2 -0
  33. package/dist/types/element/src/embeddable.d.ts +2 -2
  34. package/dist/types/element/src/flowchart.d.ts +7 -7
  35. package/dist/types/element/src/fractionalIndex.d.ts +4 -4
  36. package/dist/types/element/src/frame.d.ts +14 -9
  37. package/dist/types/element/src/groups.d.ts +9 -9
  38. package/dist/types/element/src/heading.d.ts +2 -1
  39. package/dist/types/element/src/image.d.ts +1 -11
  40. package/dist/types/element/src/index.d.ts +8 -4
  41. package/dist/types/element/src/linearElementEditor.d.ts +38 -30
  42. package/dist/types/element/src/mutateElement.d.ts +5 -1
  43. package/dist/types/element/src/newElement.d.ts +20 -6
  44. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  45. package/dist/types/element/src/renderElement.d.ts +4 -10
  46. package/dist/types/element/src/resizeElements.d.ts +12 -12
  47. package/dist/types/element/src/resizeTest.d.ts +6 -5
  48. package/dist/types/element/src/selection.d.ts +14 -14
  49. package/dist/types/element/src/shape.d.ts +9 -8
  50. package/dist/types/element/src/store.d.ts +3 -2
  51. package/dist/types/element/src/textElement.d.ts +14 -11
  52. package/dist/types/element/src/textMeasurements.d.ts +1 -3
  53. package/dist/types/element/src/textWrapping.d.ts +26 -0
  54. package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
  55. package/dist/types/element/src/transformHandles.d.ts +8 -27
  56. package/dist/types/element/src/typeChecks.d.ts +29 -31
  57. package/dist/types/element/src/types.d.ts +20 -14
  58. package/dist/types/element/src/utils.d.ts +9 -4
  59. package/dist/types/element/src/visualdebug.d.ts +58 -0
  60. package/dist/types/element/src/zindex.d.ts +7 -1
  61. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +158 -180
  62. package/dist/types/excalidraw/actions/actionAlign.d.ts +12 -13
  63. package/dist/types/excalidraw/actions/actionBoundText.d.ts +112 -127
  64. package/dist/types/excalidraw/actions/actionCanvas.d.ts +412 -1550
  65. package/dist/types/excalidraw/actions/actionClipboard.d.ts +114 -870
  66. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +54 -62
  67. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +180 -205
  68. package/dist/types/excalidraw/actions/actionDeselect.d.ts +162 -0
  69. package/dist/types/excalidraw/actions/actionDistribute.d.ts +4 -6
  70. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -3
  71. package/dist/types/excalidraw/actions/actionElementLink.d.ts +46 -60
  72. package/dist/types/excalidraw/actions/actionElementLock.d.ts +111 -126
  73. package/dist/types/excalidraw/actions/actionExport.d.ts +190 -1410
  74. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -394
  75. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
  76. package/dist/types/excalidraw/actions/actionFrame.d.ts +267 -512
  77. package/dist/types/excalidraw/actions/actionGroup.d.ts +122 -145
  78. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +168 -212
  79. package/dist/types/excalidraw/actions/actionLink.d.ts +53 -61
  80. package/dist/types/excalidraw/actions/actionMenu.d.ts +45 -425
  81. package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -359
  82. package/dist/types/excalidraw/actions/actionProperties.d.ts +191 -2527
  83. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +61 -73
  84. package/dist/types/excalidraw/actions/actionStyles.d.ts +54 -61
  85. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  86. package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionToggleArrowBinding.d.ts} +69 -76
  87. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +58 -67
  88. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +178 -0
  89. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +55 -63
  90. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +46 -61
  91. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +2 -2
  92. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +55 -63
  93. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +56 -64
  94. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +56 -64
  95. package/dist/types/excalidraw/actions/actionZindex.d.ts +2 -3
  96. package/dist/types/excalidraw/actions/index.d.ts +5 -3
  97. package/dist/types/excalidraw/actions/manager.d.ts +1 -0
  98. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  99. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  100. package/dist/types/excalidraw/actions/types.d.ts +11 -7
  101. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  102. package/dist/types/excalidraw/appState.d.ts +27 -18
  103. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  104. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  105. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  106. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  107. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  108. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  109. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  110. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  111. package/dist/types/excalidraw/clipboard.d.ts +57 -19
  112. package/dist/types/excalidraw/components/Actions.d.ts +33 -11
  113. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  114. package/dist/types/excalidraw/components/App.arrowText.d.ts +72 -0
  115. package/dist/types/excalidraw/components/App.cursor.d.ts +31 -0
  116. package/dist/types/excalidraw/components/App.d.ts +447 -122
  117. package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
  118. package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
  119. package/dist/types/excalidraw/components/App.viewport.d.ts +73 -0
  120. package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
  121. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  122. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  123. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +2 -3
  124. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
  125. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
  126. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
  127. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -2
  128. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  129. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
  130. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  131. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +2 -4
  132. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +4 -4
  133. package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
  134. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  135. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  136. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  137. package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
  138. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  139. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -2
  140. package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
  141. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  142. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
  143. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  144. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  145. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  146. package/dist/types/excalidraw/components/{ToolButton.d.ts → IconButton.d.ts} +16 -19
  147. package/dist/types/excalidraw/components/IconPicker.d.ts +14 -9
  148. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  149. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  150. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
  151. package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
  152. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  153. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  154. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
  155. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
  156. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
  157. package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
  158. package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
  159. package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
  160. package/dist/types/excalidraw/components/MobileMenu.d.ts +5 -7
  161. package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
  162. package/dist/types/excalidraw/components/Modal.d.ts +0 -1
  163. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
  164. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  165. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
  166. package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
  167. package/dist/types/excalidraw/components/Popover.d.ts +2 -3
  168. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +2 -1
  169. package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
  170. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  171. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  172. package/dist/types/excalidraw/components/Range.d.ts +10 -4
  173. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  174. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  175. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  176. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +16 -22
  177. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  178. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  179. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  180. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  181. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  182. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  183. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  184. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  185. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  186. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  187. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -3
  188. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  189. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  190. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  191. package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
  192. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  193. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  194. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  195. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
  196. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
  197. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
  198. package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
  199. package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
  200. package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
  201. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
  202. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  203. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
  204. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
  205. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +5 -2
  206. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  207. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  208. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  209. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  210. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  211. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  212. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
  213. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  214. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  215. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  216. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
  217. package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
  218. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
  219. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
  220. package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
  221. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
  222. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
  223. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
  224. package/dist/types/excalidraw/components/TextField.d.ts +1 -0
  225. package/dist/types/excalidraw/components/Toast.d.ts +11 -7
  226. package/dist/types/excalidraw/components/ToolPopover.d.ts +22 -0
  227. package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
  228. package/dist/types/excalidraw/components/Tools.d.ts +145 -0
  229. package/dist/types/excalidraw/components/Trans.d.ts +2 -2
  230. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +10 -4
  231. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
  232. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  233. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +47 -35
  234. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -5
  235. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  236. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
  237. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  238. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
  239. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -2
  240. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  241. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  242. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  243. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  244. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  245. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  246. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +2 -2
  247. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  248. package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
  249. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  250. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +3 -3
  251. package/dist/types/excalidraw/components/icons.d.ts +52 -22
  252. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +24 -3
  253. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -35
  254. package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
  255. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
  256. package/dist/types/excalidraw/data/blob.d.ts +339 -12
  257. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  258. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  259. package/dist/types/excalidraw/data/filesystem.d.ts +5 -7
  260. package/dist/types/excalidraw/data/index.d.ts +8 -9
  261. package/dist/types/excalidraw/data/json.d.ts +175 -3
  262. package/dist/types/excalidraw/data/library.d.ts +25 -10
  263. package/dist/types/excalidraw/data/resave.d.ts +7 -2
  264. package/dist/types/excalidraw/data/restore.d.ts +25 -10
  265. package/dist/types/excalidraw/data/types.d.ts +4 -1
  266. package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
  267. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  268. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  269. package/dist/types/excalidraw/errors.d.ts +14 -0
  270. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  271. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +2 -2
  272. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
  273. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  274. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  275. package/dist/types/excalidraw/i18n.d.ts +2 -2
  276. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  277. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  278. package/dist/types/excalidraw/renderer/animation.d.ts +16 -0
  279. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
  280. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +7 -15
  281. package/dist/types/excalidraw/scene/Renderer.d.ts +428 -18
  282. package/dist/types/excalidraw/scene/export.d.ts +4 -4
  283. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  284. package/dist/types/excalidraw/scene/types.d.ts +26 -8
  285. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  286. package/dist/types/excalidraw/snapping.d.ts +12 -12
  287. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  288. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  289. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  290. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  291. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  292. package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
  293. package/dist/types/excalidraw/types.d.ts +487 -50
  294. package/dist/types/excalidraw/viewport.d.ts +272 -0
  295. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +8 -5
  296. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  297. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  298. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  299. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  300. package/dist/types/laser-pointer/src/state.d.ts +36 -0
  301. package/dist/types/math/src/constants.d.ts +0 -1
  302. package/dist/types/math/src/curve.d.ts +4 -1
  303. package/dist/types/math/src/index.d.ts +1 -0
  304. package/dist/types/math/src/pca.d.ts +79 -0
  305. package/dist/types/math/src/point.d.ts +8 -2
  306. package/dist/types/math/src/polygon.d.ts +26 -2
  307. package/dist/types/math/src/range.d.ts +1 -3
  308. package/dist/types/math/src/segment.d.ts +4 -3
  309. package/dist/types/math/src/types.d.ts +25 -1
  310. package/dist/types/utils/src/export.d.ts +8 -8
  311. package/dist/types/utils/src/index.d.ts +1 -2
  312. package/dist/types/utils/src/shape.d.ts +6 -6
  313. package/package.json +10 -3
  314. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  315. package/dist/types/excalidraw/charts.d.ts +0 -27
  316. package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
  317. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -16
  318. package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
  319. package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
  320. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -9
  321. package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
  322. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -10
  323. package/dist/types/excalidraw/components/shapes.d.ts +0 -62
  324. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -58
  325. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -19
  326. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +0 -85
  327. package/dist/types/excalidraw/cursor.d.ts +0 -5
  328. package/dist/types/excalidraw/data/reconcile.d.ts +0 -7
  329. package/dist/types/excalidraw/index.d.ts +0 -47
  330. package/dist/types/excalidraw/polyfill.d.ts +0 -2
  331. package/dist/types/excalidraw/scene/scroll.d.ts +0 -23
  332. package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
  333. package/dist/types/utils/src/bbox.d.ts +0 -9
  334. package/dist/types/utils/src/withinBounds.d.ts +0 -19
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const actionToggleZenMode: {
3
2
  name: "zenMode";
4
3
  label: string;
@@ -18,18 +17,27 @@ export declare const actionToggleZenMode: {
18
17
  } | null;
19
18
  showWelcomeScreen: boolean;
20
19
  isLoading: boolean;
21
- errorMessage: import("react").ReactNode;
20
+ errorMessage: React.ReactNode;
22
21
  activeEmbeddable: {
23
22
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
24
- state: "active" | "hover";
23
+ state: "hover" | "active";
25
24
  } | null;
26
25
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
27
26
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
28
27
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
29
28
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
30
29
  isBindingEnabled: boolean;
31
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
32
- suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
30
+ boxSelectionMode: import("../types").BoxSelectionMode;
31
+ bindingPreference: "enabled" | "disabled";
32
+ isMidpointSnappingEnabled: boolean;
33
+ suggestedBinding: {
34
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
35
+ midPoint?: import("@excalidraw/math").GlobalPoint;
36
+ } | null;
37
+ hoveredArrowTextAnchor: {
38
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
39
+ anchor: "start" | "end" | "label";
40
+ } | null;
33
41
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
34
42
  frameRendering: {
35
43
  enabled: boolean;
@@ -37,14 +45,18 @@ export declare const actionToggleZenMode: {
37
45
  outline: boolean;
38
46
  clip: boolean;
39
47
  };
40
- editingFrame: string | null;
41
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
42
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
48
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
49
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
50
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
43
51
  activeTool: {
44
52
  lastActiveTool: import("../types").ActiveTool | null;
45
53
  locked: boolean;
46
54
  fromSelection: boolean;
47
55
  } & import("../types").ActiveTool;
56
+ preferredSelectionTool: {
57
+ type: "selection" | "lasso";
58
+ initialized: boolean;
59
+ };
48
60
  penMode: boolean;
49
61
  penDetected: boolean;
50
62
  exportBackground: boolean;
@@ -53,47 +65,53 @@ export declare const actionToggleZenMode: {
53
65
  exportScale: number;
54
66
  currentItemStrokeColor: string;
55
67
  currentItemBackgroundColor: string;
56
- currentItemFillStyle: import("@excalidraw/element/types").FillStyle;
57
- currentItemStrokeWidth: number;
58
- currentItemStrokeStyle: import("@excalidraw/element/types").StrokeStyle;
68
+ currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
69
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
70
+ currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
59
71
  currentItemRoughness: number;
72
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
60
73
  currentItemOpacity: number;
61
- currentItemFontFamily: number;
74
+ currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
62
75
  currentItemFontSize: number;
63
- currentItemTextAlign: string;
76
+ currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
64
77
  currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
65
78
  currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
66
- currentHoveredFontFamily: number | null;
79
+ currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
67
80
  currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
68
- currentItemArrowType: "round" | "sharp" | "elbow";
81
+ currentItemArrowType: "sharp" | "round" | "elbow";
69
82
  viewBackgroundColor: string;
70
83
  scrollX: number;
71
84
  scrollY: number;
85
+ scrollConstraints: import("../types").ScrollConstraints | null;
72
86
  cursorButton: "up" | "down";
73
87
  scrolledOutside: boolean;
74
88
  name: string | null;
75
89
  isResizing: boolean;
76
90
  isRotating: boolean;
77
- zoom: Readonly<{
78
- value: import("../types").NormalizedZoomValue;
79
- }>;
80
- openMenu: "canvas" | "shape" | null;
81
- openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
91
+ zoom: import("../types").Zoom;
92
+ openMenu: "canvas" | null;
93
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
82
94
  openSidebar: {
83
- name: string;
84
- tab?: string | undefined;
95
+ name: import("../types").SidebarName;
96
+ tab?: import("../types").SidebarTabName;
85
97
  } | null;
86
- openDialog: {
98
+ openDialog: null | {
87
99
  name: "imageExport" | "help" | "jsonExport";
88
100
  } | {
89
101
  name: "ttd";
90
- tab: "mermaid" | "text-to-diagram";
102
+ tab: "text-to-diagram" | "mermaid";
91
103
  } | {
92
104
  name: "commandPalette";
105
+ } | {
106
+ name: "settings";
93
107
  } | {
94
108
  name: "elementLinkSelector";
95
- sourceElementId: string;
96
- } | null;
109
+ sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
110
+ } | {
111
+ name: "charts";
112
+ data: import("../charts").Spreadsheet;
113
+ rawText: string;
114
+ };
97
115
  defaultSidebarDockedPreference: boolean;
98
116
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
99
117
  selectedElementIds: Readonly<{
@@ -108,9 +126,9 @@ export declare const actionToggleZenMode: {
108
126
  selectedElementsAreBeingDragged: boolean;
109
127
  shouldCacheIgnoreZoom: boolean;
110
128
  toast: {
111
- message: string;
112
- closable?: boolean | undefined;
113
- duration?: number | undefined;
129
+ message: React.ReactNode;
130
+ closable?: boolean;
131
+ duration?: number;
114
132
  } | null;
115
133
  theme: import("@excalidraw/element/types").Theme;
116
134
  gridSize: number;
@@ -120,45 +138,18 @@ export declare const actionToggleZenMode: {
120
138
  selectedGroupIds: {
121
139
  [groupId: string]: boolean;
122
140
  };
123
- editingGroupId: string | null;
141
+ editingGroupId: import("@excalidraw/element/types").GroupId | null;
124
142
  width: number;
125
143
  height: number;
126
144
  offsetTop: number;
127
145
  offsetLeft: number;
128
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
129
- collaborators: Map<import("../types").SocketId, Readonly<{
130
- pointer?: import("../types").CollaboratorPointer | undefined;
131
- button?: "up" | "down" | undefined;
132
- selectedElementIds?: Readonly<{
133
- [id: string]: true;
134
- }> | undefined;
135
- username?: string | null | undefined;
136
- userState?: import("@excalidraw/common").UserIdleState | undefined;
137
- color?: {
138
- background: string;
139
- stroke: string;
140
- } | undefined;
141
- avatarUrl?: string | undefined;
142
- id?: string | undefined;
143
- socketId?: import("../types").SocketId | undefined;
144
- isCurrentUser?: boolean | undefined;
145
- isInCall?: boolean | undefined;
146
- isSpeaking?: boolean | undefined;
147
- isMuted?: boolean | undefined;
148
- }>>;
146
+ fileHandle: FileSystemFileHandle | null;
147
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
149
148
  stats: {
150
149
  open: boolean;
151
150
  panels: number;
152
151
  };
153
- currentChartType: import("@excalidraw/element/types").ChartType;
154
- pasteDialog: {
155
- shown: false;
156
- data: null;
157
- } | {
158
- shown: true;
159
- data: import("../charts").Spreadsheet;
160
- };
161
- showHyperlinkPopup: false | "editor" | "info";
152
+ showHyperlinkPopup: false | "info" | "editor";
162
153
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
163
154
  snapLines: readonly import("../snapping").SnapLine[];
164
155
  originSnapOffset: {
@@ -169,20 +160,21 @@ export declare const actionToggleZenMode: {
169
160
  userToFollow: import("../types").UserToFollow | null;
170
161
  followedBy: Set<import("../types").SocketId>;
171
162
  isCropping: boolean;
172
- croppingElementId: string | null;
163
+ croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
173
164
  searchMatches: Readonly<{
174
- focusedId: string | null;
165
+ focusedId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
175
166
  matches: readonly import("../types").SearchMatch[];
176
167
  }> | null;
177
168
  activeLockedId: string | null;
178
169
  lockedMultiSelections: {
179
170
  [groupId: string]: true;
180
171
  };
172
+ bindMode: import("@excalidraw/element/types").BindMode;
181
173
  };
182
174
  captureUpdate: "EVENTUALLY";
183
175
  };
184
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
185
- predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
176
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
177
+ predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
186
178
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
187
179
  } & {
188
180
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const actionSendBackward: {
3
2
  name: "sendBackward";
4
3
  label: string;
@@ -7,7 +6,7 @@ export declare const actionSendBackward: {
7
6
  trackEvent: {
8
7
  category: "element";
9
8
  };
10
- perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any, app: import("../types").AppClassProperties) => {
9
+ perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: unknown, app: import("../types").AppClassProperties) => {
11
10
  elements: readonly import("@excalidraw/element/types").ExcalidrawElement[];
12
11
  appState: Readonly<import("../types").AppState>;
13
12
  captureUpdate: "IMMEDIATELY";
@@ -26,7 +25,7 @@ export declare const actionBringForward: {
26
25
  trackEvent: {
27
26
  category: "element";
28
27
  };
29
- perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any, app: import("../types").AppClassProperties) => {
28
+ perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: unknown, app: import("../types").AppClassProperties) => {
30
29
  elements: readonly import("@excalidraw/element/types").ExcalidrawElement[];
31
30
  appState: Readonly<import("../types").AppState>;
32
31
  captureUpdate: "IMMEDIATELY";
@@ -2,13 +2,13 @@ export { actionDeleteSelected } from "./actionDeleteSelected";
2
2
  export { actionBringForward, actionBringToFront, actionSendBackward, actionSendToBack, } from "./actionZindex";
3
3
  export { actionSelectAll } from "./actionSelectAll";
4
4
  export { actionDuplicateSelection } from "./actionDuplicateSelection";
5
- export { actionChangeStrokeColor, actionChangeBackgroundColor, actionChangeStrokeWidth, actionChangeFillStyle, actionChangeSloppiness, actionChangeOpacity, actionChangeFontSize, actionChangeFontFamily, actionChangeTextAlign, actionChangeVerticalAlign, } from "./actionProperties";
5
+ export { actionChangeStrokeColor, actionChangeBackgroundColor, actionChangeStrokeWidth, actionChangeFillStyle, actionChangeSloppiness, actionChangeFreedrawMode, actionChangeOpacity, actionChangeFontSize, actionChangeFontFamily, actionChangeTextAlign, actionChangeVerticalAlign, actionChangeArrowProperties, } from "./actionProperties";
6
6
  export { actionChangeViewBackgroundColor, actionClearCanvas, actionZoomIn, actionZoomOut, actionResetZoom, actionZoomToFit, actionToggleTheme, } from "./actionCanvas";
7
- export { actionSetEmbeddableAsActiveTool } from "./actionEmbeddable";
8
7
  export { actionFinalize } from "./actionFinalize";
8
+ export { actionDeselect } from "./actionDeselect";
9
9
  export { actionChangeProjectName, actionChangeExportBackground, actionSaveToActiveFile, actionSaveFileToDisk, actionLoadScene, } from "./actionExport";
10
10
  export { actionCopyStyles, actionPasteStyles } from "./actionStyles";
11
- export { actionToggleCanvasMenu, actionToggleEditMenu, actionShortcuts, } from "./actionMenu";
11
+ export { actionShortcuts } from "./actionMenu";
12
12
  export { actionGroup, actionUngroup } from "./actionGroup";
13
13
  export { actionGoToCollaborator } from "./actionNavigate";
14
14
  export { actionAddToLibrary } from "./actionAddToLibrary";
@@ -19,6 +19,8 @@ export { actionCopy, actionCut, actionCopyAsPng, actionCopyAsSvg, copyText, } fr
19
19
  export { actionToggleGridMode } from "./actionToggleGridMode";
20
20
  export { actionToggleZenMode } from "./actionToggleZenMode";
21
21
  export { actionToggleObjectsSnapMode } from "./actionToggleObjectsSnapMode";
22
+ export { actionToggleArrowBinding } from "./actionToggleArrowBinding";
23
+ export { actionToggleMidpointSnapping } from "./actionToggleMidpointSnapping";
22
24
  export { actionToggleStats } from "./actionToggleStats";
23
25
  export { actionUnbindText, actionBindText } from "./actionBoundText";
24
26
  export { actionLink } from "./actionLink";
@@ -11,6 +11,7 @@ export declare class ActionManager {
11
11
  constructor(updater: UpdaterFn, getAppState: () => AppState, getElementsIncludingDeleted: () => readonly OrderedExcalidrawElement[], app: AppClassProperties);
12
12
  registerAction(action: Action): void;
13
13
  registerAll(actions: readonly Action[]): void;
14
+ private isActionBlockedByViewportTransition;
14
15
  handleKeyDown(event: React.KeyboardEvent | KeyboardEvent): boolean;
15
16
  executeAction<T extends Action>(action: T, source?: ActionSource, value?: Parameters<T["perform"]>[2]): void;
16
17
  /**
@@ -1,5 +1,5 @@
1
1
  import type { Action } from "./types";
2
2
  export declare let actions: readonly Action[];
3
- export declare const register: <T extends Action>(action: T) => T & {
4
- keyTest?: (unknown extends T["keyTest"] ? never : T["keyTest"]) | undefined;
3
+ export declare const register: <TData extends any, T extends Action<TData> = Action<TData>>(action: T) => T & {
4
+ keyTest?: unknown extends T["keyTest"] ? never : T["keyTest"];
5
5
  };
@@ -1,4 +1,4 @@
1
1
  import type { SubtypeOf } from "@excalidraw/common/utility-types";
2
2
  import type { ActionName } from "./types";
3
- export type ShortcutName = SubtypeOf<ActionName, "toggleTheme" | "loadScene" | "clearCanvas" | "cut" | "copy" | "paste" | "copyStyles" | "pasteStyles" | "selectAll" | "deleteSelectedElements" | "duplicateSelection" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyAsPng" | "group" | "ungroup" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "addToLibrary" | "viewMode" | "flipHorizontal" | "flipVertical" | "hyperlink" | "toggleElementLock" | "resetZoom" | "zoomOut" | "zoomIn" | "zoomToFit" | "zoomToFitSelectionInViewport" | "zoomToFitSelection" | "toggleEraserTool" | "toggleHandTool" | "setFrameAsActiveTool" | "saveFileToDisk" | "saveToActiveFile" | "toggleShortcuts" | "wrapSelectionInFrame"> | "saveScene" | "imageExport" | "commandPalette" | "searchMenu";
3
+ export type ShortcutName = SubtypeOf<ActionName, "toggleTheme" | "loadScene" | "clearCanvas" | "cut" | "copy" | "paste" | "copyStyles" | "pasteStyles" | "selectAll" | "deleteSelectedElements" | "duplicateSelection" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyAsPng" | "group" | "ungroup" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "addToLibrary" | "viewMode" | "flipHorizontal" | "flipVertical" | "hyperlink" | "toggleElementLock" | "resetZoom" | "zoomOut" | "zoomIn" | "zoomToFit" | "zoomToFitSelectionInViewport" | "zoomToFitSelection" | "saveFileToDisk" | "saveToActiveFile" | "toggleShortcuts" | "wrapSelectionInFrame"> | "saveScene" | "imageExport" | "commandPalette" | "searchMenu" | "toolLock";
4
4
  export declare const getShortcutFromShortcutName: (name: ShortcutName, idx?: number) => string;
@@ -11,30 +11,30 @@ export type ActionResult = {
11
11
  captureUpdate: CaptureUpdateActionType;
12
12
  replaceFiles?: boolean;
13
13
  } | false;
14
- type ActionFn = (elements: readonly OrderedExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
14
+ type ActionFn<TData = any> = (elements: readonly OrderedExcalidrawElement[], appState: Readonly<AppState>, formData: TData | undefined, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
15
15
  export type UpdaterFn = (res: ActionResult) => void;
16
16
  export type ActionFilterFn = (action: Action) => void;
17
- export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor" | "wrapSelectionInFrame" | "toggleLassoTool" | "toggleShapeSwitch" | "togglePolygon";
17
+ export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "arrowBinding" | "midpointSnapping" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeSloppiness" | "changeFreedrawMode" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeArrowProperties" | "changeOpacity" | "changeFontSize" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "deselect" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "createContainerFromText" | "wrapTextInContainer" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor" | "wrapSelectionInFrame" | "toggleShapeSwitch" | "togglePolygon";
18
18
  export type PanelComponentProps = {
19
19
  elements: readonly ExcalidrawElement[];
20
- appState: AppState;
20
+ appState: UIAppState;
21
21
  updateData: <T = any>(formData?: T) => void;
22
22
  appProps: ExcalidrawProps;
23
23
  data?: Record<string, any>;
24
24
  app: AppClassProperties;
25
25
  renderAction: (name: ActionName, data?: PanelComponentProps["data"]) => React.JSX.Element | null;
26
26
  };
27
- export interface Action {
27
+ export interface Action<TData = any> {
28
28
  name: ActionName;
29
- label: string | ((elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, app: AppClassProperties) => string);
29
+ label: string | ((elements: readonly ExcalidrawElement[], appState: Readonly<UIAppState>, app: AppClassProperties) => string);
30
30
  keywords?: string[];
31
31
  icon?: React.ReactNode | ((appState: UIAppState, elements: readonly ExcalidrawElement[]) => React.ReactNode);
32
32
  PanelComponent?: React.FC<PanelComponentProps>;
33
- perform: ActionFn;
33
+ perform: ActionFn<TData>;
34
34
  keyPriority?: number;
35
35
  keyTest?: (event: React.KeyboardEvent | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[], app: AppClassProperties) => boolean;
36
36
  predicate?: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: ExcalidrawProps, app: AppClassProperties) => boolean;
37
- checked?: (appState: Readonly<AppState>) => boolean;
37
+ checked?: (appState: Readonly<UIAppState>) => boolean;
38
38
  trackEvent: false | {
39
39
  category: "toolbar" | "element" | "canvas" | "export" | "history" | "menu" | "collab" | "hyperlink" | "search_menu" | "shape_switch";
40
40
  action?: string;
@@ -43,5 +43,9 @@ export interface Action {
43
43
  /** if set to `true`, allow action to be performed in viewMode.
44
44
  * Defaults to `false` */
45
45
  viewMode?: boolean;
46
+ /** if set to `true`, the action counts as canvas navigation and remains
47
+ * available in the non-interactive editor when
48
+ * `interaction: { enabled: { navigation: true } }`. Defaults to `false` */
49
+ navigation?: boolean;
46
50
  }
47
51
  export {};
@@ -1,6 +1,5 @@
1
1
  import { LaserPointer } from "@excalidraw/laser-pointer";
2
2
  import type { LaserPointerOptions } from "@excalidraw/laser-pointer";
3
- import type { AnimationFrameHandler } from "./animation-frame-handler";
4
3
  import type App from "./components/App";
5
4
  export interface Trail {
6
5
  start(container: SVGSVGElement): void;
@@ -15,7 +14,6 @@ export interface AnimatedTrailOptions {
15
14
  animateTrail?: boolean;
16
15
  }
17
16
  export declare class AnimatedTrail implements Trail {
18
- private animationFrameHandler;
19
17
  protected app: App;
20
18
  private options;
21
19
  private currentTrail?;
@@ -23,9 +21,12 @@ export declare class AnimatedTrail implements Trail {
23
21
  private container?;
24
22
  private trailElement;
25
23
  private trailAnimation?;
26
- constructor(animationFrameHandler: AnimationFrameHandler, app: App, options: Partial<LaserPointerOptions> & Partial<AnimatedTrailOptions>);
24
+ private key;
25
+ private static counter;
26
+ constructor(app: App, options: Partial<LaserPointerOptions> & Partial<AnimatedTrailOptions>);
27
27
  get hasCurrentTrail(): boolean;
28
28
  hasLastPoint(x: number, y: number): boolean;
29
+ private cleanup;
29
30
  start(container?: SVGSVGElement): void;
30
31
  stop(): void;
31
32
  startPath(x: number, y: number): void;
@@ -2,6 +2,7 @@ import type { AppState, NormalizedZoomValue } from "./types";
2
2
  export declare const getDefaultAppState: () => Omit<AppState, "offsetTop" | "offsetLeft" | "width" | "height">;
3
3
  export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>) => {
4
4
  viewBackgroundColor?: string | undefined;
5
+ theme?: import("@excalidraw/element/types").Theme | undefined;
5
6
  name?: string | null | undefined;
6
7
  zoom?: Readonly<{
7
8
  value: NormalizedZoomValue;
@@ -12,30 +13,43 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
12
13
  selectedElementIds?: Readonly<{
13
14
  [id: string]: true;
14
15
  }> | undefined;
15
- theme?: import("@excalidraw/element/types").Theme | undefined;
16
+ activeTool?: ({
17
+ lastActiveTool: import("./types").ActiveTool | null;
18
+ locked: boolean;
19
+ fromSelection: boolean;
20
+ } & import("./types").ActiveTool) | undefined;
16
21
  selectedGroupIds?: {
17
22
  [groupId: string]: boolean;
18
23
  } | undefined;
19
24
  selectedLinearElement?: import("@excalidraw/element").LinearElementEditor | null | undefined;
25
+ isBindingEnabled?: boolean | undefined;
26
+ isMidpointSnappingEnabled?: boolean | undefined;
27
+ gridModeEnabled?: boolean | undefined;
20
28
  zenModeEnabled?: boolean | undefined;
29
+ shouldCacheIgnoreZoom?: boolean | undefined;
30
+ exportScale?: number | undefined;
31
+ currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
32
+ gridSize?: number | undefined;
33
+ bindMode?: import("@excalidraw/element/types").BindMode | undefined;
21
34
  showWelcomeScreen?: boolean | undefined;
22
- activeTool?: ({
23
- lastActiveTool: import("./types").ActiveTool | null;
24
- locked: boolean;
25
- fromSelection: boolean;
26
- } & import("./types").ActiveTool) | undefined;
35
+ boxSelectionMode?: import("./types").BoxSelectionMode | undefined;
36
+ bindingPreference?: "enabled" | "disabled" | undefined;
37
+ preferredSelectionTool?: {
38
+ type: "selection" | "lasso";
39
+ initialized: boolean;
40
+ } | undefined;
27
41
  penMode?: boolean | undefined;
28
42
  penDetected?: boolean | undefined;
29
43
  exportBackground?: boolean | undefined;
30
44
  exportEmbedScene?: boolean | undefined;
31
45
  exportWithDarkMode?: boolean | undefined;
32
- exportScale?: number | undefined;
33
46
  currentItemStrokeColor?: string | undefined;
34
47
  currentItemBackgroundColor?: string | undefined;
35
48
  currentItemFillStyle?: import("@excalidraw/element/types").FillStyle | undefined;
36
- currentItemStrokeWidth?: number | undefined;
49
+ currentItemStrokeWidthKey?: import("@excalidraw/common").StrokeWidthKey | undefined;
37
50
  currentItemStrokeStyle?: import("@excalidraw/element/types").StrokeStyle | undefined;
38
51
  currentItemRoughness?: number | undefined;
52
+ currentItemStrokeVariability?: import("@excalidraw/element/types").StrokeVariability | undefined;
39
53
  currentItemOpacity?: number | undefined;
40
54
  currentItemFontFamily?: number | undefined;
41
55
  currentItemFontSize?: number | undefined;
@@ -43,28 +57,23 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
43
57
  currentItemStartArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
44
58
  currentItemEndArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
45
59
  currentItemRoundness?: import("@excalidraw/element/types").StrokeRoundness | undefined;
46
- currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
47
60
  cursorButton?: "up" | "down" | undefined;
48
61
  scrolledOutside?: boolean | undefined;
49
- openMenu?: "canvas" | "shape" | null | undefined;
62
+ openMenu?: "canvas" | null | undefined;
50
63
  openSidebar?: {
51
- name: string;
52
- tab?: string | undefined;
64
+ name: import("./types").SidebarName;
65
+ tab?: import("./types").SidebarTabName;
53
66
  } | null | undefined;
54
67
  defaultSidebarDockedPreference?: boolean | undefined;
55
68
  lastPointerDownWith?: import("@excalidraw/element/types").PointerType | undefined;
56
69
  previousSelectedElementIds?: {
57
70
  [id: string]: true;
58
71
  } | undefined;
59
- shouldCacheIgnoreZoom?: boolean | undefined;
60
- gridSize?: number | undefined;
61
72
  gridStep?: number | undefined;
62
- gridModeEnabled?: boolean | undefined;
63
73
  stats?: {
64
74
  open: boolean;
65
75
  panels: number;
66
76
  } | undefined;
67
- currentChartType?: import("@excalidraw/element/types").ChartType | undefined;
68
77
  objectsSnapModeEnabled?: boolean | undefined;
69
78
  lockedMultiSelections?: {
70
79
  [groupId: string]: true;
@@ -72,18 +81,18 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
72
81
  };
73
82
  export declare const cleanAppStateForExport: (appState: Partial<AppState>) => {
74
83
  viewBackgroundColor?: string | undefined;
84
+ gridModeEnabled?: boolean | undefined;
75
85
  gridSize?: number | undefined;
76
86
  gridStep?: number | undefined;
77
- gridModeEnabled?: boolean | undefined;
78
87
  lockedMultiSelections?: {
79
88
  [groupId: string]: true;
80
89
  } | undefined;
81
90
  };
82
91
  export declare const clearAppStateForDatabase: (appState: Partial<AppState>) => {
83
92
  viewBackgroundColor?: string | undefined;
93
+ gridModeEnabled?: boolean | undefined;
84
94
  gridSize?: number | undefined;
85
95
  gridStep?: number | undefined;
86
- gridModeEnabled?: boolean | undefined;
87
96
  lockedMultiSelections?: {
88
97
  [groupId: string]: true;
89
98
  } | undefined;
@@ -0,0 +1,2 @@
1
+ import type { ChartElements, Spreadsheet } from "./charts.types";
2
+ export declare const renderBarChart: (spreadsheet: Spreadsheet, x: number, y: number, colorSeed?: number) => ChartElements;
@@ -0,0 +1,48 @@
1
+ import type { Radians } from "@excalidraw/math";
2
+ export declare const CARTESIAN_BASE_SLOT_WIDTH = 44;
3
+ export declare const CARTESIAN_BAR_SLOT_EXTRA_PER_SERIES = 22;
4
+ export declare const CARTESIAN_BAR_SLOT_EXTRA_MAX = 66;
5
+ export declare const CARTESIAN_LINE_SLOT_WIDTH = 48;
6
+ export declare const CARTESIAN_GAP = 14;
7
+ export declare const CARTESIAN_BAR_HEIGHT = 304;
8
+ export declare const CARTESIAN_LINE_HEIGHT = 320;
9
+ export declare const CARTESIAN_LABEL_ROTATION: Radians;
10
+ export declare const CARTESIAN_LABEL_MIN_WIDTH = 28;
11
+ export declare const CARTESIAN_LABEL_SLOT_PADDING = 4;
12
+ export declare const CARTESIAN_LABEL_AXIS_CLEARANCE = 2;
13
+ export declare const CARTESIAN_LABEL_MAX_WIDTH_BUFFER = 10;
14
+ export declare const CARTESIAN_LABEL_ROTATED_WIDTH_BUFFER = 10;
15
+ export declare const CARTESIAN_LABEL_OVERFLOW_PREFERENCE_BUFFER = 8;
16
+ export declare const BAR_GAP = 12;
17
+ export declare const BAR_HEIGHT = 256;
18
+ export declare const GRID_OPACITY = 10;
19
+ export declare const RADAR_GRID_LEVELS = 4;
20
+ export declare const RADAR_LABEL_OFFSET: number;
21
+ export declare const RADAR_PADDING: number;
22
+ export declare const RADAR_SINGLE_SERIES_LOG_SCALE_THRESHOLD = 100;
23
+ export declare const RADAR_AXIS_LABEL_MAX_WIDTH = 140;
24
+ export declare const RADAR_AXIS_LABEL_ALIGNMENT_THRESHOLD = 0.35;
25
+ export declare const RADAR_AXIS_LABEL_CLEARANCE: number;
26
+ export declare const RADAR_LEGEND_SWATCH_SIZE = 20;
27
+ export declare const RADAR_LEGEND_ITEM_GAP: number;
28
+ export declare const RADAR_LEGEND_TEXT_GAP = 12;
29
+ export declare const commonProps: {
30
+ readonly fillStyle: "hachure";
31
+ readonly fontFamily: number;
32
+ readonly fontSize: 20;
33
+ readonly opacity: 100;
34
+ readonly roughness: 1;
35
+ readonly strokeColor: "#1e1e1e";
36
+ readonly roundness: null;
37
+ readonly strokeStyle: "solid";
38
+ readonly strokeWidth: 1;
39
+ readonly verticalAlign: string;
40
+ readonly locked: false;
41
+ };
42
+ export type CartesianChartType = "bar" | "line";
43
+ export type CartesianChartLayout = {
44
+ slotWidth: number;
45
+ gap: number;
46
+ chartHeight: number;
47
+ xLabelMaxWidth: number;
48
+ };
@@ -0,0 +1,32 @@
1
+ import { getFontString } from "@excalidraw/common";
2
+ import type { ChartType } from "@excalidraw/element/types";
3
+ import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
4
+ import { type CartesianChartLayout, type CartesianChartType } from "./charts.constants";
5
+ import type { ChartElements, Spreadsheet, SpreadsheetSeries } from "./charts.types";
6
+ export declare const isSpreadsheetValidForChartType: (spreadsheet: Spreadsheet | null, chartType: ChartType) => boolean;
7
+ export declare const getCartesianChartLayout: (chartType: CartesianChartType, seriesCount: number) => CartesianChartLayout;
8
+ export declare const getChartDimensions: (spreadsheet: Spreadsheet, layout: CartesianChartLayout) => {
9
+ chartWidth: number;
10
+ chartHeight: number;
11
+ };
12
+ export declare const getRadarDimensions: () => {
13
+ chartWidth: number;
14
+ chartHeight: number;
15
+ };
16
+ export declare const getSeriesColors: (seriesCount: number, colorOffset: number) => readonly string[];
17
+ export declare const getColorOffset: (colorSeed?: number) => number;
18
+ export declare const getBackgroundColor: (colorOffset: number) => "#fff5f5" | "#ffc9c9" | "#ff8787" | "#fa5252" | "#e03131" | "#fff0f6" | "#fcc2d7" | "#f783ac" | "#e64980" | "#c2255c" | "#f8f0fc" | "#eebefa" | "#da77f2" | "#be4bdb" | "#9c36b5" | "#f3f0ff" | "#d0bfff" | "#9775fa" | "#7950f2" | "#6741d9" | "#e7f5ff" | "#a5d8ff" | "#4dabf7" | "#228be6" | "#1971c2" | "#e3fafc" | "#99e9f2" | "#3bc9db" | "#15aabf" | "#0c8599" | "#e6fcf5" | "#96f2d7" | "#38d9a9" | "#12b886" | "#099268" | "#ebfbee" | "#b2f2bb" | "#69db7c" | "#40c057" | "#2f9e44" | "#fff9db" | "#ffec99" | "#ffd43b" | "#fab005" | "#f08c00" | "#fff4e6" | "#ffd8a8" | "#ffa94d" | "#fd7e14" | "#e8590c";
19
+ export declare const getRadarValueScale: (series: SpreadsheetSeries[], _labelsLength: number) => {
20
+ renderSteps: boolean;
21
+ normalize: (value: number, _axisIndex: number) => number;
22
+ };
23
+ export declare const getRadarDisplayText: (text: string, fontString: ReturnType<typeof getFontString>, maxWidth: number) => string;
24
+ export declare const createRadarAxisLabels: (labels: readonly string[], angles: readonly number[], centerX: number, centerY: number, radius: number, backgroundColor: string) => {
25
+ axisLabels: ChartElements;
26
+ axisLabelTopY: number;
27
+ axisLabelBottomY: number;
28
+ };
29
+ export declare const createSeriesLegend: (series: SpreadsheetSeries[], seriesColors: readonly string[], centerX: number, minLegendTopY: number, fallbackLegendY: number, backgroundColor: string) => ChartElements;
30
+ export declare const getRotatedTextElementBottom: (element: NonDeletedExcalidrawElement) => number;
31
+ export declare const chartXLabels: (spreadsheet: Spreadsheet, x: number, y: number, backgroundColor: string, layout: CartesianChartLayout) => ChartElements;
32
+ export declare const chartBaseElements: (spreadsheet: Spreadsheet, x: number, y: number, backgroundColor: string, layout: CartesianChartLayout, maxValue?: number, debug?: boolean) => ChartElements;
@@ -0,0 +1,2 @@
1
+ import type { ChartElements, Spreadsheet } from "./charts.types";
2
+ export declare const renderLineChart: (spreadsheet: Spreadsheet, x: number, y: number, colorSeed?: number) => ChartElements;
@@ -0,0 +1,10 @@
1
+ import { type ParseSpreadsheetResult } from "./charts.types";
2
+ /**
3
+ * @private exported for testing
4
+ */
5
+ export declare const tryParseNumber: (s: string) => number | null;
6
+ /**
7
+ * @private exported for testing
8
+ */
9
+ export declare const tryParseCells: (cells: string[][]) => ParseSpreadsheetResult;
10
+ export declare const tryParseSpreadsheet: (text: string) => ParseSpreadsheetResult;
@@ -0,0 +1,2 @@
1
+ import type { ChartElements, Spreadsheet } from "./charts.types";
2
+ export declare const renderRadarChart: (spreadsheet: Spreadsheet, x: number, y: number, colorSeed?: number) => ChartElements | null;
@@ -0,0 +1,18 @@
1
+ import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
2
+ export type ChartElements = readonly NonDeletedExcalidrawElement[];
3
+ export interface Spreadsheet {
4
+ title: string | null;
5
+ labels: string[] | null;
6
+ series: SpreadsheetSeries[];
7
+ }
8
+ export interface SpreadsheetSeries {
9
+ title: string | null;
10
+ values: number[];
11
+ }
12
+ export type ParseSpreadsheetResult = {
13
+ ok: false;
14
+ reason: string;
15
+ } | {
16
+ ok: true;
17
+ data: Spreadsheet;
18
+ };