@excalidraw/element 0.18.0-9ba0f5d → 0.18.0-a52cd20

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 (279) hide show
  1. package/dist/dev/index.js +13141 -8453
  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/colors.d.ts +24 -2
  7. package/dist/types/common/src/constants.d.ts +70 -7
  8. package/dist/types/common/src/index.d.ts +3 -0
  9. package/dist/types/common/src/keys.d.ts +4 -0
  10. package/dist/types/common/src/points.d.ts +1 -1
  11. package/dist/types/common/src/random.d.ts +7 -0
  12. package/dist/types/common/src/utils.d.ts +10 -50
  13. package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
  14. package/dist/types/element/src/Scene.d.ts +9 -5
  15. package/dist/types/element/src/align.d.ts +2 -2
  16. package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
  17. package/dist/types/element/src/arrowheads.d.ts +3 -0
  18. package/dist/types/element/src/arrows/focus.d.ts +30 -0
  19. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  20. package/dist/types/element/src/binding.d.ts +37 -17
  21. package/dist/types/element/src/bounds.d.ts +23 -8
  22. package/dist/types/element/src/bucketFill.d.ts +110 -0
  23. package/dist/types/element/src/collision.d.ts +7 -3
  24. package/dist/types/element/src/comparisons.d.ts +8 -5
  25. package/dist/types/element/src/convertToShape.d.ts +23 -0
  26. package/dist/types/element/src/delta.d.ts +23 -1
  27. package/dist/types/element/src/distribute.d.ts +3 -2
  28. package/dist/types/element/src/dragElements.d.ts +27 -0
  29. package/dist/types/element/src/duplicate.d.ts +64 -3
  30. package/dist/types/element/src/elbowArrow.d.ts +2 -0
  31. package/dist/types/element/src/embeddable.d.ts +2 -2
  32. package/dist/types/element/src/flowchart.d.ts +11 -7
  33. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  34. package/dist/types/element/src/frame.d.ts +11 -10
  35. package/dist/types/element/src/groups.d.ts +9 -9
  36. package/dist/types/element/src/index.d.ts +8 -1
  37. package/dist/types/element/src/linearElementEditor.d.ts +32 -10
  38. package/dist/types/element/src/mutateElement.d.ts +3 -1
  39. package/dist/types/element/src/newElement.d.ts +53 -3
  40. package/dist/types/element/src/renderElement.d.ts +21 -7
  41. package/dist/types/element/src/resizeElements.d.ts +2 -2
  42. package/dist/types/element/src/selection.d.ts +11 -7
  43. package/dist/types/element/src/shape.d.ts +28 -2
  44. package/dist/types/element/src/sizeHelpers.d.ts +6 -0
  45. package/dist/types/element/src/sortElements.d.ts +10 -0
  46. package/dist/types/element/src/stickyNote.d.ts +183 -0
  47. package/dist/types/element/src/textElement.d.ts +21 -10
  48. package/dist/types/element/src/textWrapping.d.ts +26 -0
  49. package/dist/types/element/src/transform.d.ts +26 -7
  50. package/dist/types/element/src/typeChecks.d.ts +29 -27
  51. package/dist/types/element/src/types.d.ts +48 -9
  52. package/dist/types/element/src/utils.d.ts +19 -6
  53. package/dist/types/element/src/visualdebug.d.ts +1 -2
  54. package/dist/types/element/src/zindex.d.ts +2 -2
  55. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +125 -53
  56. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  57. package/dist/types/excalidraw/actions/actionBoundText.d.ts +85 -37
  58. package/dist/types/excalidraw/actions/actionCanvas.d.ts +356 -1019
  59. package/dist/types/excalidraw/actions/actionClipboard.d.ts +84 -36
  60. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +42 -18
  61. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +130 -55
  62. package/dist/types/excalidraw/actions/actionDeselect.d.ts +182 -0
  63. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  64. package/dist/types/excalidraw/actions/actionElementLink.d.ts +38 -18
  65. package/dist/types/excalidraw/actions/actionElementLock.d.ts +85 -37
  66. package/dist/types/excalidraw/actions/actionExport.d.ts +133 -359
  67. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
  68. package/dist/types/excalidraw/actions/actionFrame.d.ts +187 -236
  69. package/dist/types/excalidraw/actions/actionGroup.d.ts +100 -52
  70. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +99 -21
  71. package/dist/types/excalidraw/actions/actionLink.d.ts +43 -19
  72. package/dist/types/excalidraw/actions/actionMenu.d.ts +38 -18
  73. package/dist/types/excalidraw/actions/actionProperties.d.ts +120 -56
  74. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +46 -22
  75. package/dist/types/excalidraw/actions/actionStyles.d.ts +43 -18
  76. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  77. package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionToggleArrowBinding.d.ts} +57 -32
  78. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +46 -23
  79. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +195 -0
  80. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +43 -19
  81. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +42 -23
  82. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  83. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +43 -19
  84. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +44 -20
  85. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +43 -19
  86. package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
  87. package/dist/types/excalidraw/actions/index.d.ts +4 -2
  88. package/dist/types/excalidraw/actions/manager.d.ts +1 -0
  89. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  90. package/dist/types/excalidraw/actions/types.d.ts +8 -4
  91. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  92. package/dist/types/excalidraw/appState.d.ts +39 -13
  93. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  94. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  95. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  96. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  97. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  98. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  99. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  100. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  101. package/dist/types/excalidraw/clipboard.d.ts +6 -7
  102. package/dist/types/excalidraw/components/Actions.d.ts +17 -12
  103. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  104. package/dist/types/excalidraw/components/App.arrowText.d.ts +70 -0
  105. package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
  106. package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
  107. package/dist/types/excalidraw/components/App.d.ts +604 -89
  108. package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
  109. package/dist/types/excalidraw/components/App.duplicate.d.ts +51 -0
  110. package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
  111. package/dist/types/excalidraw/components/App.pan.d.ts +62 -0
  112. package/dist/types/excalidraw/components/App.textTool.d.ts +140 -0
  113. package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
  114. package/dist/types/excalidraw/components/App.viewport.d.ts +113 -0
  115. package/dist/types/excalidraw/components/App.wheel.d.ts +26 -0
  116. package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
  117. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
  118. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
  119. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +5 -1
  120. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
  121. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
  122. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
  123. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
  124. package/dist/types/excalidraw/components/ColorPicker/colorTopPicksDnD.d.ts +11 -0
  125. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
  126. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  127. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -1
  128. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  129. package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
  130. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  131. package/dist/types/excalidraw/components/FileDropOverlay.d.ts +2 -0
  132. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +4 -1
  133. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +6 -1
  134. package/dist/types/excalidraw/components/FontPicker/fontTopPicksDnD.d.ts +12 -0
  135. package/dist/types/excalidraw/components/IconButton.d.ts +48 -0
  136. package/dist/types/excalidraw/components/IconPicker.d.ts +14 -9
  137. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  138. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
  139. package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
  140. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  141. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +6 -2
  142. package/dist/types/excalidraw/components/LibraryUnit.d.ts +7 -2
  143. package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
  144. package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
  145. package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
  146. package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
  147. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  148. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
  149. package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
  150. package/dist/types/excalidraw/components/Popover.d.ts +1 -3
  151. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  152. package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
  153. package/dist/types/excalidraw/components/Range.d.ts +10 -4
  154. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  155. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  156. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
  157. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  158. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  159. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  160. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  161. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  162. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  163. package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
  164. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  165. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +2 -6
  166. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +2 -1
  167. package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
  168. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
  169. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +11 -7
  170. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
  171. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +4 -1
  172. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  173. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +2 -1
  174. package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
  175. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +4 -0
  176. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
  177. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
  178. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
  179. package/dist/types/excalidraw/components/Toast.d.ts +8 -4
  180. package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
  181. package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
  182. package/dist/types/excalidraw/components/Tools.d.ts +151 -0
  183. package/dist/types/excalidraw/components/Tooltip.d.ts +15 -1
  184. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksContextMenu.d.ts +14 -0
  185. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksTip.d.ts +11 -0
  186. package/dist/types/excalidraw/components/TopPicksDnD/topPicksDnD.d.ts +58 -0
  187. package/dist/types/excalidraw/components/UserList.d.ts +3 -2
  188. package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
  189. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -1
  190. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +3 -0
  191. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  192. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +30 -16
  193. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +3 -2
  194. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +11 -12
  195. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  196. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +2 -1
  197. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
  198. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  199. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  200. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  201. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +1 -1
  202. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  203. package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
  204. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  205. package/dist/types/excalidraw/components/icons.d.ts +30 -10
  206. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +26 -3
  207. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +23 -14
  208. package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
  209. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
  210. package/dist/types/excalidraw/data/blob.d.ts +107 -60
  211. package/dist/types/excalidraw/data/filesystem.d.ts +3 -5
  212. package/dist/types/excalidraw/data/index.d.ts +6 -7
  213. package/dist/types/excalidraw/data/json.d.ts +62 -30
  214. package/dist/types/excalidraw/data/library.d.ts +1 -1
  215. package/dist/types/excalidraw/data/resave.d.ts +7 -2
  216. package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
  217. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  218. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
  219. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  220. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  221. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
  222. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  223. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  224. package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
  225. package/dist/types/excalidraw/renderOverrides.d.ts +9 -0
  226. package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
  227. package/dist/types/excalidraw/renderer/helpers.d.ts +25 -0
  228. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +2 -4
  229. package/dist/types/excalidraw/scene/Renderer.d.ts +489 -20
  230. package/dist/types/excalidraw/scene/export.d.ts +3 -3
  231. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  232. package/dist/types/excalidraw/scene/types.d.ts +7 -4
  233. package/dist/types/excalidraw/snapping.d.ts +7 -7
  234. package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
  235. package/dist/types/excalidraw/types.d.ts +619 -42
  236. package/dist/types/excalidraw/viewport.d.ts +302 -0
  237. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +12 -3
  238. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  239. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  240. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  241. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  242. package/dist/types/laser-pointer/src/state.d.ts +36 -0
  243. package/dist/types/math/src/constants.d.ts +0 -1
  244. package/dist/types/math/src/curve.d.ts +23 -13
  245. package/dist/types/math/src/index.d.ts +1 -0
  246. package/dist/types/math/src/pca.d.ts +79 -0
  247. package/dist/types/math/src/point.d.ts +8 -2
  248. package/dist/types/math/src/polygon.d.ts +25 -1
  249. package/dist/types/math/src/segment.d.ts +6 -0
  250. package/dist/types/math/src/types.d.ts +25 -1
  251. package/dist/types/utils/src/export.d.ts +4 -3
  252. package/dist/types/utils/src/index.d.ts +1 -2
  253. package/dist/types/utils/src/shape.d.ts +2 -2
  254. package/package.json +4 -3
  255. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  256. package/dist/types/excalidraw/charts.d.ts +0 -27
  257. package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
  258. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -15
  259. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
  260. package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
  261. package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
  262. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
  263. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -8
  264. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +0 -24
  265. package/dist/types/excalidraw/components/ToolButton.d.ts +0 -49
  266. package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
  267. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -11
  268. package/dist/types/excalidraw/components/shapes.d.ts +0 -190
  269. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -58
  270. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -19
  271. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +0 -84
  272. package/dist/types/excalidraw/cursor.d.ts +0 -5
  273. package/dist/types/excalidraw/data/reconcile.d.ts +0 -7
  274. package/dist/types/excalidraw/index.d.ts +0 -46
  275. package/dist/types/excalidraw/polyfill.d.ts +0 -2
  276. package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
  277. package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
  278. package/dist/types/utils/src/bbox.d.ts +0 -9
  279. package/dist/types/utils/src/withinBounds.d.ts +0 -19
@@ -27,8 +27,26 @@ export declare const actionToggleViewMode: {
27
27
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
28
28
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
29
29
  isBindingEnabled: boolean;
30
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
31
- suggestedBinding: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
30
+ boxSelectionMode: import("../types").BoxSelectionMode;
31
+ bindingPreference: "enabled" | "disabled";
32
+ isMidpointSnappingEnabled: boolean;
33
+ showHints: boolean;
34
+ inputDevice: import("../types").InputDevice;
35
+ suggestedBinding: {
36
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
37
+ midPoint?: import("@excalidraw/math").GlobalPoint;
38
+ } | null;
39
+ textToolHover: {
40
+ type: "text";
41
+ elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
42
+ } | {
43
+ type: "container";
44
+ elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
45
+ } | {
46
+ type: "arrow";
47
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
48
+ anchor: "start" | "end" | "label";
49
+ } | null;
32
50
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
33
51
  frameRendering: {
34
52
  enabled: boolean;
@@ -36,9 +54,9 @@ export declare const actionToggleViewMode: {
36
54
  outline: boolean;
37
55
  clip: boolean;
38
56
  };
39
- editingFrame: string | null;
40
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
41
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
57
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
58
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
59
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
42
60
  activeTool: {
43
61
  lastActiveTool: import("../types").ActiveTool | null;
44
62
  locked: boolean;
@@ -55,11 +73,14 @@ export declare const actionToggleViewMode: {
55
73
  exportWithDarkMode: boolean;
56
74
  exportScale: number;
57
75
  currentItemStrokeColor: string;
76
+ currentItemStickynoteStrokeColor: string;
77
+ currentItemStickynoteBackgroundColor: string;
58
78
  currentItemBackgroundColor: string;
59
79
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
60
- currentItemStrokeWidth: number;
80
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
61
81
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
62
82
  currentItemRoughness: number;
83
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
63
84
  currentItemOpacity: number;
64
85
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
65
86
  currentItemFontSize: number;
@@ -72,6 +93,7 @@ export declare const actionToggleViewMode: {
72
93
  viewBackgroundColor: string;
73
94
  scrollX: number;
74
95
  scrollY: number;
96
+ scrollConstraints: import("../types").ScrollConstraints | null;
75
97
  cursorButton: "up" | "down";
76
98
  scrolledOutside: boolean;
77
99
  name: string | null;
@@ -96,6 +118,10 @@ export declare const actionToggleViewMode: {
96
118
  } | {
97
119
  name: "elementLinkSelector";
98
120
  sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
121
+ } | {
122
+ name: "charts";
123
+ data: import("../charts").Spreadsheet;
124
+ rawText: string;
99
125
  };
100
126
  defaultSidebarDockedPreference: boolean;
101
127
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
@@ -111,7 +137,7 @@ export declare const actionToggleViewMode: {
111
137
  selectedElementsAreBeingDragged: boolean;
112
138
  shouldCacheIgnoreZoom: boolean;
113
139
  toast: {
114
- message: string;
140
+ message: React.ReactNode;
115
141
  closable?: boolean;
116
142
  duration?: number;
117
143
  } | null;
@@ -128,20 +154,12 @@ export declare const actionToggleViewMode: {
128
154
  height: number;
129
155
  offsetTop: number;
130
156
  offsetLeft: number;
131
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
157
+ fileHandle: FileSystemFileHandle | null;
132
158
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
133
159
  stats: {
134
160
  open: boolean;
135
161
  panels: number;
136
162
  };
137
- currentChartType: import("@excalidraw/element/types").ChartType;
138
- pasteDialog: {
139
- shown: false;
140
- data: null;
141
- } | {
142
- shown: true;
143
- data: import("../charts").Spreadsheet;
144
- };
145
163
  showHyperlinkPopup: false | "info" | "editor";
146
164
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
147
165
  snapLines: readonly import("../snapping").SnapLine[];
@@ -150,8 +168,6 @@ export declare const actionToggleViewMode: {
150
168
  y: number;
151
169
  } | null;
152
170
  objectsSnapModeEnabled: boolean;
153
- userToFollow: import("../types").UserToFollow | null;
154
- followedBy: Set<import("../types").SocketId>;
155
171
  isCropping: boolean;
156
172
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
157
173
  searchMatches: Readonly<{
@@ -163,11 +179,19 @@ export declare const actionToggleViewMode: {
163
179
  [groupId: string]: true;
164
180
  };
165
181
  bindMode: import("@excalidraw/element/types").BindMode;
182
+ colorTopPicks: {
183
+ elementStroke: readonly string[] | null;
184
+ elementBackground: readonly string[] | null;
185
+ bucketFill: readonly string[] | null;
186
+ stickyNoteStroke: readonly string[] | null;
187
+ stickyNoteBackground: readonly string[] | null;
188
+ };
189
+ fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
166
190
  };
167
191
  captureUpdate: "EVENTUALLY";
168
192
  };
169
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
170
- predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
193
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
194
+ predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
171
195
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
172
196
  } & {
173
197
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
@@ -27,8 +27,26 @@ export declare const actionToggleZenMode: {
27
27
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
28
28
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
29
29
  isBindingEnabled: boolean;
30
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
31
- suggestedBinding: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
30
+ boxSelectionMode: import("../types").BoxSelectionMode;
31
+ bindingPreference: "enabled" | "disabled";
32
+ isMidpointSnappingEnabled: boolean;
33
+ showHints: boolean;
34
+ inputDevice: import("../types").InputDevice;
35
+ suggestedBinding: {
36
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
37
+ midPoint?: import("@excalidraw/math").GlobalPoint;
38
+ } | null;
39
+ textToolHover: {
40
+ type: "text";
41
+ elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
42
+ } | {
43
+ type: "container";
44
+ elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
45
+ } | {
46
+ type: "arrow";
47
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
48
+ anchor: "start" | "end" | "label";
49
+ } | null;
32
50
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
33
51
  frameRendering: {
34
52
  enabled: boolean;
@@ -36,9 +54,9 @@ export declare const actionToggleZenMode: {
36
54
  outline: boolean;
37
55
  clip: boolean;
38
56
  };
39
- editingFrame: string | null;
40
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
41
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
57
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
58
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
59
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
42
60
  activeTool: {
43
61
  lastActiveTool: import("../types").ActiveTool | null;
44
62
  locked: boolean;
@@ -55,11 +73,14 @@ export declare const actionToggleZenMode: {
55
73
  exportWithDarkMode: boolean;
56
74
  exportScale: number;
57
75
  currentItemStrokeColor: string;
76
+ currentItemStickynoteStrokeColor: string;
77
+ currentItemStickynoteBackgroundColor: string;
58
78
  currentItemBackgroundColor: string;
59
79
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
60
- currentItemStrokeWidth: number;
80
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
61
81
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
62
82
  currentItemRoughness: number;
83
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
63
84
  currentItemOpacity: number;
64
85
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
65
86
  currentItemFontSize: number;
@@ -72,6 +93,7 @@ export declare const actionToggleZenMode: {
72
93
  viewBackgroundColor: string;
73
94
  scrollX: number;
74
95
  scrollY: number;
96
+ scrollConstraints: import("../types").ScrollConstraints | null;
75
97
  cursorButton: "up" | "down";
76
98
  scrolledOutside: boolean;
77
99
  name: string | null;
@@ -96,6 +118,10 @@ export declare const actionToggleZenMode: {
96
118
  } | {
97
119
  name: "elementLinkSelector";
98
120
  sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
121
+ } | {
122
+ name: "charts";
123
+ data: import("../charts").Spreadsheet;
124
+ rawText: string;
99
125
  };
100
126
  defaultSidebarDockedPreference: boolean;
101
127
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
@@ -111,7 +137,7 @@ export declare const actionToggleZenMode: {
111
137
  selectedElementsAreBeingDragged: boolean;
112
138
  shouldCacheIgnoreZoom: boolean;
113
139
  toast: {
114
- message: string;
140
+ message: React.ReactNode;
115
141
  closable?: boolean;
116
142
  duration?: number;
117
143
  } | null;
@@ -128,20 +154,12 @@ export declare const actionToggleZenMode: {
128
154
  height: number;
129
155
  offsetTop: number;
130
156
  offsetLeft: number;
131
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
157
+ fileHandle: FileSystemFileHandle | null;
132
158
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
133
159
  stats: {
134
160
  open: boolean;
135
161
  panels: number;
136
162
  };
137
- currentChartType: import("@excalidraw/element/types").ChartType;
138
- pasteDialog: {
139
- shown: false;
140
- data: null;
141
- } | {
142
- shown: true;
143
- data: import("../charts").Spreadsheet;
144
- };
145
163
  showHyperlinkPopup: false | "info" | "editor";
146
164
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
147
165
  snapLines: readonly import("../snapping").SnapLine[];
@@ -150,8 +168,6 @@ export declare const actionToggleZenMode: {
150
168
  y: number;
151
169
  } | null;
152
170
  objectsSnapModeEnabled: boolean;
153
- userToFollow: import("../types").UserToFollow | null;
154
- followedBy: Set<import("../types").SocketId>;
155
171
  isCropping: boolean;
156
172
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
157
173
  searchMatches: Readonly<{
@@ -163,10 +179,18 @@ export declare const actionToggleZenMode: {
163
179
  [groupId: string]: true;
164
180
  };
165
181
  bindMode: import("@excalidraw/element/types").BindMode;
182
+ colorTopPicks: {
183
+ elementStroke: readonly string[] | null;
184
+ elementBackground: readonly string[] | null;
185
+ bucketFill: readonly string[] | null;
186
+ stickyNoteStroke: readonly string[] | null;
187
+ stickyNoteBackground: readonly string[] | null;
188
+ };
189
+ fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
166
190
  };
167
191
  captureUpdate: "EVENTUALLY";
168
192
  };
169
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
193
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
170
194
  predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
171
195
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
172
196
  } & {
@@ -0,0 +1,39 @@
1
+ import type { ColorPaletteCustom, ColorTuple } from "@excalidraw/common";
2
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
3
+ import type { AppState } from "../types";
4
+ export type ColorProperty = "strokeColor" | "backgroundColor";
5
+ /**
6
+ * Sticky notes are their own color domain: own defaults, own top picks, no
7
+ * transparent. A pick targets the regular domain, the sticky domain, or both
8
+ * ("mixed" selections write both defaults and use the regular picker).
9
+ */
10
+ export type ColorTargetKind = "regular" | "sticky" | "mixed";
11
+ export type ColorDefaultKey = "currentItemStrokeColor" | "currentItemBackgroundColor" | "currentItemStickynoteStrokeColor" | "currentItemStickynoteBackgroundColor";
12
+ export type ColorTargetAppState = Pick<AppState, "selectedElementIds" | "editingTextElement" | "activeTool" | ColorDefaultKey>;
13
+ export type ColorTarget = {
14
+ kind: ColorTargetKind;
15
+ property: ColorProperty;
16
+ /** the current-item defaults a pick is written to (normalized per domain) */
17
+ appStateKeys: readonly ColorDefaultKey[];
18
+ /** the default shown when no element is targeted */
19
+ currentValue: string;
20
+ palette: ColorPaletteCustom;
21
+ topPicks: ColorTuple;
22
+ customizableTopPicks: keyof AppState["colorTopPicks"];
23
+ excludedColors: readonly string[] | undefined;
24
+ };
25
+ /**
26
+ * Who a stroke/background pick targets. Resolve it from the state an action
27
+ * runs against, at execution time — never capture it in a render closure:
28
+ * the memoized picker keeps a stale `onChange`, and the always-visible top
29
+ * picks fire it without a re-render.
30
+ *
31
+ * Targets are the selected color-capable elements (for stroke incl. bound
32
+ * labels, since a note's visible text is its label) plus the text being
33
+ * edited (`handleTextWysiwyg` deselects while editing) — or, for a
34
+ * background pick on a note's label, the note (see `getColorTargetElement`).
35
+ * With no target, the active tool decides the domain.
36
+ */
37
+ export declare const resolveColorTarget: (appState: ColorTargetAppState, elements: readonly ExcalidrawElement[], property: ColorProperty) => ColorTarget;
38
+ /** the current-item default updates for a picked color */
39
+ export declare const getColorTargetAppStateUpdates: (target: ColorTarget, color: string) => Partial<AppState>;
@@ -2,10 +2,10 @@ 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, actionChangeArrowProperties, } from "./actionProperties";
5
+ export { actionChangeStrokeColor, actionChangeBackgroundColor, actionChangeBucketFillBackgroundColor, 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
11
  export { actionShortcuts } from "./actionMenu";
@@ -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,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;
@@ -14,10 +14,10 @@ export type ActionResult = {
14
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" | "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" | "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" | "changeBucketFillBackgroundColor" | "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>;
@@ -26,7 +26,7 @@ export type PanelComponentProps = {
26
26
  };
27
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>;
@@ -34,7 +34,7 @@ export interface Action<TData = any> {
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<TData = any> {
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;
@@ -1,4 +1,4 @@
1
- import type { AppState, NormalizedZoomValue } from "./types";
1
+ import type { AppState, InputDevice, 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;
@@ -13,21 +13,29 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
13
13
  selectedElementIds?: Readonly<{
14
14
  [id: string]: true;
15
15
  }> | 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;
21
29
  shouldCacheIgnoreZoom?: boolean | undefined;
22
30
  exportScale?: number | undefined;
23
- bindMode?: import("@excalidraw/element/types").BindMode | undefined;
31
+ currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
24
32
  gridSize?: number | undefined;
33
+ bindMode?: import("@excalidraw/element/types").BindMode | undefined;
25
34
  showWelcomeScreen?: boolean | undefined;
26
- activeTool?: ({
27
- lastActiveTool: import("./types").ActiveTool | null;
28
- locked: boolean;
29
- fromSelection: boolean;
30
- } & import("./types").ActiveTool) | undefined;
35
+ boxSelectionMode?: import("./types").BoxSelectionMode | undefined;
36
+ bindingPreference?: "enabled" | "disabled" | undefined;
37
+ showHints?: boolean | undefined;
38
+ inputDevice?: InputDevice | undefined;
31
39
  preferredSelectionTool?: {
32
40
  type: "selection" | "lasso";
33
41
  initialized: boolean;
@@ -38,11 +46,14 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
38
46
  exportEmbedScene?: boolean | undefined;
39
47
  exportWithDarkMode?: boolean | undefined;
40
48
  currentItemStrokeColor?: string | undefined;
49
+ currentItemStickynoteStrokeColor?: string | undefined;
50
+ currentItemStickynoteBackgroundColor?: string | undefined;
41
51
  currentItemBackgroundColor?: string | undefined;
42
52
  currentItemFillStyle?: import("@excalidraw/element/types").FillStyle | undefined;
43
- currentItemStrokeWidth?: number | undefined;
53
+ currentItemStrokeWidthKey?: import("@excalidraw/common").StrokeWidthKey | undefined;
44
54
  currentItemStrokeStyle?: import("@excalidraw/element/types").StrokeStyle | undefined;
45
55
  currentItemRoughness?: number | undefined;
56
+ currentItemStrokeVariability?: import("@excalidraw/element/types").StrokeVariability | undefined;
46
57
  currentItemOpacity?: number | undefined;
47
58
  currentItemFontFamily?: number | undefined;
48
59
  currentItemFontSize?: number | undefined;
@@ -50,7 +61,6 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
50
61
  currentItemStartArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
51
62
  currentItemEndArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
52
63
  currentItemRoundness?: import("@excalidraw/element/types").StrokeRoundness | undefined;
53
- currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
54
64
  cursorButton?: "up" | "down" | undefined;
55
65
  scrolledOutside?: boolean | undefined;
56
66
  openMenu?: "canvas" | null | undefined;
@@ -64,31 +74,37 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
64
74
  [id: string]: true;
65
75
  } | undefined;
66
76
  gridStep?: number | undefined;
67
- gridModeEnabled?: boolean | undefined;
68
77
  stats?: {
69
78
  open: boolean;
70
79
  panels: number;
71
80
  } | undefined;
72
- currentChartType?: import("@excalidraw/element/types").ChartType | undefined;
73
81
  objectsSnapModeEnabled?: boolean | undefined;
74
82
  lockedMultiSelections?: {
75
83
  [groupId: string]: true;
76
84
  } | undefined;
85
+ colorTopPicks?: {
86
+ elementStroke: readonly string[] | null;
87
+ elementBackground: readonly string[] | null;
88
+ bucketFill: readonly string[] | null;
89
+ stickyNoteStroke: readonly string[] | null;
90
+ stickyNoteBackground: readonly string[] | null;
91
+ } | undefined;
92
+ fontTopPicks?: readonly number[] | null | undefined;
77
93
  };
78
94
  export declare const cleanAppStateForExport: (appState: Partial<AppState>) => {
79
95
  viewBackgroundColor?: string | undefined;
96
+ gridModeEnabled?: boolean | undefined;
80
97
  gridSize?: number | undefined;
81
98
  gridStep?: number | undefined;
82
- gridModeEnabled?: boolean | undefined;
83
99
  lockedMultiSelections?: {
84
100
  [groupId: string]: true;
85
101
  } | undefined;
86
102
  };
87
103
  export declare const clearAppStateForDatabase: (appState: Partial<AppState>) => {
88
104
  viewBackgroundColor?: string | undefined;
105
+ gridModeEnabled?: boolean | undefined;
89
106
  gridSize?: number | undefined;
90
107
  gridStep?: number | undefined;
91
- gridModeEnabled?: boolean | undefined;
92
108
  lockedMultiSelections?: {
93
109
  [groupId: string]: true;
94
110
  } | undefined;
@@ -99,3 +115,13 @@ export declare const isEraserActive: ({ activeTool, }: {
99
115
  export declare const isHandToolActive: ({ activeTool, }: {
100
116
  activeTool: AppState["activeTool"];
101
117
  }) => boolean;
118
+ /**
119
+ * The device the wheel mappings follow for the given preference.
120
+ *
121
+ * `auto` is meant to detect the device from the wheel events themselves
122
+ * (line vs. pixel delta modes, whole vs. fractional deltas, one vs. two axes
123
+ * moving, event cadence and momentum tails). That is not implemented yet, so
124
+ * it resolves to `trackpad` — the mapping the editor has always had, and the
125
+ * default to keep until detection exists.
126
+ */
127
+ export declare const resolveInputDevice: (inputDevice: InputDevice) => Exclude<InputDevice, "auto">;
@@ -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
+ };