@excalidraw/element 0.18.0-c6f8ef9 → 0.18.0-d1cff91

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 (252) hide show
  1. package/dist/dev/index.js +4978 -2538
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +18 -18
  4. package/dist/types/common/debug.d.ts +21 -0
  5. package/dist/types/common/src/bounds.d.ts +10 -0
  6. package/dist/types/common/src/colors.d.ts +59 -39
  7. package/dist/types/common/src/constants.d.ts +37 -26
  8. package/dist/types/common/src/editorInterface.d.ts +34 -0
  9. package/dist/types/common/src/font-metadata.d.ts +1 -3
  10. package/dist/types/common/src/index.d.ts +3 -0
  11. package/dist/types/common/src/keys.d.ts +1 -1
  12. package/dist/types/common/src/utility-types.d.ts +0 -1
  13. package/dist/types/common/src/utils.d.ts +52 -38
  14. package/dist/types/element/src/Scene.d.ts +5 -3
  15. package/dist/types/element/src/arrows/focus.d.ts +27 -0
  16. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  17. package/dist/types/element/src/binding.d.ts +67 -48
  18. package/dist/types/element/src/bounds.d.ts +3 -11
  19. package/dist/types/element/src/collision.d.ts +7 -2
  20. package/dist/types/element/src/comparisons.d.ts +7 -7
  21. package/dist/types/element/src/delta.d.ts +0 -1
  22. package/dist/types/element/src/distribute.d.ts +2 -1
  23. package/dist/types/element/src/dragElements.d.ts +3 -3
  24. package/dist/types/element/src/duplicate.d.ts +3 -3
  25. package/dist/types/element/src/elbowArrow.d.ts +2 -0
  26. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  27. package/dist/types/element/src/frame.d.ts +5 -1
  28. package/dist/types/element/src/heading.d.ts +2 -1
  29. package/dist/types/element/src/image.d.ts +1 -11
  30. package/dist/types/element/src/index.d.ts +4 -3
  31. package/dist/types/element/src/linearElementEditor.d.ts +21 -20
  32. package/dist/types/element/src/mutateElement.d.ts +5 -1
  33. package/dist/types/element/src/newElement.d.ts +6 -6
  34. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  35. package/dist/types/element/src/renderElement.d.ts +4 -7
  36. package/dist/types/element/src/resizeElements.d.ts +10 -10
  37. package/dist/types/element/src/resizeTest.d.ts +6 -5
  38. package/dist/types/element/src/selection.d.ts +3 -7
  39. package/dist/types/element/src/shape.d.ts +8 -7
  40. package/dist/types/element/src/textElement.d.ts +1 -1
  41. package/dist/types/element/src/textMeasurements.d.ts +1 -3
  42. package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
  43. package/dist/types/element/src/transformHandles.d.ts +8 -27
  44. package/dist/types/element/src/typeChecks.d.ts +4 -7
  45. package/dist/types/element/src/types.d.ts +8 -12
  46. package/dist/types/element/src/utils.d.ts +8 -3
  47. package/dist/types/element/src/visualdebug.d.ts +59 -0
  48. package/dist/types/element/src/zindex.d.ts +7 -1
  49. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +120 -160
  50. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
  51. package/dist/types/excalidraw/actions/actionBoundText.d.ts +85 -112
  52. package/dist/types/excalidraw/actions/actionCanvas.d.ts +509 -853
  53. package/dist/types/excalidraw/actions/actionClipboard.d.ts +104 -872
  54. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +41 -55
  55. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +139 -183
  56. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  57. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -3
  58. package/dist/types/excalidraw/actions/actionElementLink.d.ts +33 -53
  59. package/dist/types/excalidraw/actions/actionElementLock.d.ts +84 -111
  60. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +42 -56
  61. package/dist/types/excalidraw/actions/actionExport.d.ts +181 -1141
  62. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -394
  63. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
  64. package/dist/types/excalidraw/actions/actionFrame.d.ts +263 -354
  65. package/dist/types/excalidraw/actions/actionGroup.d.ts +88 -123
  66. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +151 -203
  67. package/dist/types/excalidraw/actions/actionLink.d.ts +39 -53
  68. package/dist/types/excalidraw/actions/actionMenu.d.ts +32 -418
  69. package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -359
  70. package/dist/types/excalidraw/actions/actionProperties.d.ts +144 -2501
  71. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +44 -62
  72. package/dist/types/excalidraw/actions/actionStyles.d.ts +41 -55
  73. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
  74. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +172 -0
  75. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +41 -55
  76. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +172 -0
  77. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +41 -55
  78. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +30 -50
  79. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  80. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +41 -55
  81. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +41 -55
  82. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +42 -56
  83. package/dist/types/excalidraw/actions/actionZindex.d.ts +2 -3
  84. package/dist/types/excalidraw/actions/index.d.ts +4 -2
  85. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  86. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  87. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  88. package/dist/types/excalidraw/appState.d.ts +21 -14
  89. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  90. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  91. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  92. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  93. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  94. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  95. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  96. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  97. package/dist/types/excalidraw/clipboard.d.ts +58 -19
  98. package/dist/types/excalidraw/components/Actions.d.ts +22 -5
  99. package/dist/types/excalidraw/components/App.d.ts +74 -66
  100. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  101. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  102. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
  103. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
  104. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
  105. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
  106. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
  107. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  108. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
  109. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +2 -4
  110. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  111. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  112. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  113. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  114. package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
  115. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  116. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +1 -2
  117. package/dist/types/excalidraw/components/EyeDropper.d.ts +0 -1
  118. package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
  119. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  120. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
  121. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  122. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  123. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  124. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  125. package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
  126. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  127. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
  128. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
  129. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
  130. package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
  131. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
  132. package/dist/types/excalidraw/components/MobileToolBar.d.ts +10 -0
  133. package/dist/types/excalidraw/components/Modal.d.ts +0 -1
  134. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
  135. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
  136. package/dist/types/excalidraw/components/Popover.d.ts +2 -1
  137. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +2 -1
  138. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  139. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  140. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  141. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +15 -21
  142. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  143. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  144. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  145. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  146. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  147. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  148. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  149. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  150. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
  151. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  152. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  153. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  154. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
  155. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
  156. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
  157. package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
  158. package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
  159. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
  160. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  161. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
  162. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +2 -2
  163. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  164. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  165. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  166. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  167. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +2 -3
  168. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  169. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  170. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
  171. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  172. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  173. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  174. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
  175. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
  176. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
  177. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +24 -0
  178. package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
  179. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
  180. package/dist/types/excalidraw/components/TextField.d.ts +1 -0
  181. package/dist/types/excalidraw/components/Toast.d.ts +3 -3
  182. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  183. package/dist/types/excalidraw/components/Trans.d.ts +2 -2
  184. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +6 -3
  185. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +47 -35
  186. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -5
  187. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  188. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
  189. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  190. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
  191. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +0 -1
  192. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  193. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  194. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  195. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  196. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  197. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  198. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +2 -2
  199. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  200. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  201. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  202. package/dist/types/excalidraw/components/icons.d.ts +32 -13
  203. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +4 -3
  204. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +19 -2
  205. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -35
  206. package/dist/types/excalidraw/components/shapes.d.ts +202 -1
  207. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +6 -6
  208. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +15 -16
  209. package/dist/types/excalidraw/data/blob.d.ts +326 -10
  210. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  211. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  212. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  213. package/dist/types/excalidraw/data/index.d.ts +3 -3
  214. package/dist/types/excalidraw/data/json.d.ts +160 -2
  215. package/dist/types/excalidraw/data/library.d.ts +24 -9
  216. package/dist/types/excalidraw/data/restore.d.ts +25 -10
  217. package/dist/types/excalidraw/data/types.d.ts +4 -1
  218. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  219. package/dist/types/excalidraw/errors.d.ts +14 -0
  220. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  221. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
  222. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  223. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  224. package/dist/types/excalidraw/i18n.d.ts +2 -2
  225. package/dist/types/excalidraw/index.d.ts +8 -7
  226. package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
  227. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
  228. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
  229. package/dist/types/excalidraw/scene/Renderer.d.ts +5 -2
  230. package/dist/types/excalidraw/scene/export.d.ts +2 -2
  231. package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
  232. package/dist/types/excalidraw/scene/types.d.ts +22 -5
  233. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  234. package/dist/types/excalidraw/snapping.d.ts +5 -5
  235. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  236. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  237. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  238. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  239. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  240. package/dist/types/excalidraw/types.d.ts +52 -29
  241. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -2
  242. package/dist/types/math/src/point.d.ts +6 -1
  243. package/dist/types/math/src/polygon.d.ts +2 -2
  244. package/dist/types/math/src/range.d.ts +1 -3
  245. package/dist/types/math/src/segment.d.ts +4 -3
  246. package/dist/types/math/src/types.d.ts +25 -1
  247. package/dist/types/utils/src/bbox.d.ts +1 -1
  248. package/dist/types/utils/src/export.d.ts +5 -5
  249. package/dist/types/utils/src/shape.d.ts +6 -6
  250. package/dist/types/utils/src/withinBounds.d.ts +2 -2
  251. package/package.json +9 -3
  252. package/dist/types/excalidraw/charts.d.ts +0 -27
@@ -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,23 @@ 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;
30
+ bindingPreference: "enabled" | "disabled";
31
+ isMidpointSnappingEnabled: boolean;
31
32
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
32
- suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
33
+ suggestedBinding: {
34
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
35
+ midPoint?: import("@excalidraw/math").GlobalPoint;
36
+ } | null;
33
37
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
34
38
  frameRendering: {
35
39
  enabled: boolean;
@@ -45,6 +49,10 @@ export declare const actionToggleZenMode: {
45
49
  locked: boolean;
46
50
  fromSelection: boolean;
47
51
  } & import("../types").ActiveTool;
52
+ preferredSelectionTool: {
53
+ type: "selection" | "lasso";
54
+ initialized: boolean;
55
+ };
48
56
  penMode: boolean;
49
57
  penDetected: boolean;
50
58
  exportBackground: boolean;
@@ -53,19 +61,19 @@ export declare const actionToggleZenMode: {
53
61
  exportScale: number;
54
62
  currentItemStrokeColor: string;
55
63
  currentItemBackgroundColor: string;
56
- currentItemFillStyle: import("@excalidraw/element/types").FillStyle;
64
+ currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
57
65
  currentItemStrokeWidth: number;
58
- currentItemStrokeStyle: import("@excalidraw/element/types").StrokeStyle;
66
+ currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
59
67
  currentItemRoughness: number;
60
68
  currentItemOpacity: number;
61
- currentItemFontFamily: number;
69
+ currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
62
70
  currentItemFontSize: number;
63
- currentItemTextAlign: string;
71
+ currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
64
72
  currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
65
73
  currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
66
- currentHoveredFontFamily: number | null;
74
+ currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
67
75
  currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
68
- currentItemArrowType: "round" | "sharp" | "elbow";
76
+ currentItemArrowType: "sharp" | "round" | "elbow";
69
77
  viewBackgroundColor: string;
70
78
  scrollX: number;
71
79
  scrollY: number;
@@ -74,26 +82,30 @@ export declare const actionToggleZenMode: {
74
82
  name: string | null;
75
83
  isResizing: boolean;
76
84
  isRotating: boolean;
77
- zoom: Readonly<{
78
- value: import("../types").NormalizedZoomValue;
79
- }>;
80
- openMenu: "canvas" | "shape" | null;
81
- openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
85
+ zoom: import("../types").Zoom;
86
+ openMenu: "canvas" | null;
87
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
82
88
  openSidebar: {
83
- name: string;
84
- tab?: string | undefined;
89
+ name: import("../types").SidebarName;
90
+ tab?: import("../types").SidebarTabName;
85
91
  } | null;
86
- openDialog: {
92
+ openDialog: null | {
87
93
  name: "imageExport" | "help" | "jsonExport";
88
94
  } | {
89
95
  name: "ttd";
90
- tab: "mermaid" | "text-to-diagram";
96
+ tab: "text-to-diagram" | "mermaid";
91
97
  } | {
92
98
  name: "commandPalette";
99
+ } | {
100
+ name: "settings";
93
101
  } | {
94
102
  name: "elementLinkSelector";
95
- sourceElementId: string;
96
- } | null;
103
+ sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
104
+ } | {
105
+ name: "charts";
106
+ data: import("../charts").Spreadsheet;
107
+ rawText: string;
108
+ };
97
109
  defaultSidebarDockedPreference: boolean;
98
110
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
99
111
  selectedElementIds: Readonly<{
@@ -109,8 +121,8 @@ export declare const actionToggleZenMode: {
109
121
  shouldCacheIgnoreZoom: boolean;
110
122
  toast: {
111
123
  message: string;
112
- closable?: boolean | undefined;
113
- duration?: number | undefined;
124
+ closable?: boolean;
125
+ duration?: number;
114
126
  } | null;
115
127
  theme: import("@excalidraw/element/types").Theme;
116
128
  gridSize: number;
@@ -120,45 +132,18 @@ export declare const actionToggleZenMode: {
120
132
  selectedGroupIds: {
121
133
  [groupId: string]: boolean;
122
134
  };
123
- editingGroupId: string | null;
135
+ editingGroupId: import("@excalidraw/element/types").GroupId | null;
124
136
  width: number;
125
137
  height: number;
126
138
  offsetTop: number;
127
139
  offsetLeft: number;
128
140
  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
- }>>;
141
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
149
142
  stats: {
150
143
  open: boolean;
151
144
  panels: number;
152
145
  };
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";
146
+ showHyperlinkPopup: false | "info" | "editor";
162
147
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
163
148
  snapLines: readonly import("../snapping").SnapLine[];
164
149
  originSnapOffset: {
@@ -169,20 +154,21 @@ export declare const actionToggleZenMode: {
169
154
  userToFollow: import("../types").UserToFollow | null;
170
155
  followedBy: Set<import("../types").SocketId>;
171
156
  isCropping: boolean;
172
- croppingElementId: string | null;
157
+ croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
173
158
  searchMatches: Readonly<{
174
- focusedId: string | null;
159
+ focusedId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
175
160
  matches: readonly import("../types").SearchMatch[];
176
161
  }> | null;
177
162
  activeLockedId: string | null;
178
163
  lockedMultiSelections: {
179
164
  [groupId: string]: true;
180
165
  };
166
+ bindMode: import("@excalidraw/element/types").BindMode;
181
167
  };
182
168
  captureUpdate: "EVENTUALLY";
183
169
  };
184
170
  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;
171
+ predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
186
172
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
187
173
  } & {
188
174
  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, actionChangeOpacity, actionChangeFontSize, actionChangeFontFamily, actionChangeTextAlign, actionChangeVerticalAlign, actionChangeArrowProperties, } from "./actionProperties";
6
6
  export { actionChangeViewBackgroundColor, actionClearCanvas, actionZoomIn, actionZoomOut, actionResetZoom, actionZoomToFit, actionToggleTheme, } from "./actionCanvas";
7
7
  export { actionSetEmbeddableAsActiveTool } from "./actionEmbeddable";
8
8
  export { actionFinalize } from "./actionFinalize";
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";
@@ -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" | "toggleEraserTool" | "toggleHandTool" | "setFrameAsActiveTool" | "saveFileToDisk" | "saveToActiveFile" | "toggleShortcuts" | "wrapSelectionInFrame"> | "saveScene" | "imageExport" | "commandPalette" | "searchMenu" | "toolLock";
4
4
  export declare const getShortcutFromShortcutName: (name: ShortcutName, idx?: number) => string;
@@ -11,10 +11,10 @@ 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" | "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";
18
18
  export type PanelComponentProps = {
19
19
  elements: readonly ExcalidrawElement[];
20
20
  appState: AppState;
@@ -24,13 +24,13 @@ export type PanelComponentProps = {
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
29
  label: string | ((elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, 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;
@@ -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,24 +13,34 @@ 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;
20
27
  zenModeEnabled?: boolean | undefined;
28
+ shouldCacheIgnoreZoom?: boolean | undefined;
29
+ exportScale?: number | undefined;
30
+ currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
31
+ bindMode?: import("@excalidraw/element/types").BindMode | undefined;
32
+ gridSize?: number | undefined;
21
33
  showWelcomeScreen?: boolean | undefined;
22
- activeTool?: ({
23
- lastActiveTool: import("./types").ActiveTool | null;
24
- locked: boolean;
25
- fromSelection: boolean;
26
- } & import("./types").ActiveTool) | undefined;
34
+ bindingPreference?: "enabled" | "disabled" | undefined;
35
+ preferredSelectionTool?: {
36
+ type: "selection" | "lasso";
37
+ initialized: boolean;
38
+ } | undefined;
27
39
  penMode?: boolean | undefined;
28
40
  penDetected?: boolean | undefined;
29
41
  exportBackground?: boolean | undefined;
30
42
  exportEmbedScene?: boolean | undefined;
31
43
  exportWithDarkMode?: boolean | undefined;
32
- exportScale?: number | undefined;
33
44
  currentItemStrokeColor?: string | undefined;
34
45
  currentItemBackgroundColor?: string | undefined;
35
46
  currentItemFillStyle?: import("@excalidraw/element/types").FillStyle | undefined;
@@ -43,28 +54,24 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
43
54
  currentItemStartArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
44
55
  currentItemEndArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
45
56
  currentItemRoundness?: import("@excalidraw/element/types").StrokeRoundness | undefined;
46
- currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
47
57
  cursorButton?: "up" | "down" | undefined;
48
58
  scrolledOutside?: boolean | undefined;
49
- openMenu?: "canvas" | "shape" | null | undefined;
59
+ openMenu?: "canvas" | null | undefined;
50
60
  openSidebar?: {
51
- name: string;
52
- tab?: string | undefined;
61
+ name: import("./types").SidebarName;
62
+ tab?: import("./types").SidebarTabName;
53
63
  } | null | undefined;
54
64
  defaultSidebarDockedPreference?: boolean | undefined;
55
65
  lastPointerDownWith?: import("@excalidraw/element/types").PointerType | undefined;
56
66
  previousSelectedElementIds?: {
57
67
  [id: string]: true;
58
68
  } | undefined;
59
- shouldCacheIgnoreZoom?: boolean | undefined;
60
- gridSize?: number | undefined;
61
69
  gridStep?: number | undefined;
62
70
  gridModeEnabled?: boolean | undefined;
63
71
  stats?: {
64
72
  open: boolean;
65
73
  panels: number;
66
74
  } | undefined;
67
- currentChartType?: import("@excalidraw/element/types").ChartType | undefined;
68
75
  objectsSnapModeEnabled?: boolean | undefined;
69
76
  lockedMultiSelections?: {
70
77
  [groupId: string]: true;
@@ -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
+ };
@@ -0,0 +1,7 @@
1
+ import type { ChartType } from "@excalidraw/element/types";
2
+ import { tryParseCells, tryParseNumber, tryParseSpreadsheet } from "./charts.parse";
3
+ import type { ChartElements, Spreadsheet } from "./charts.types";
4
+ export { type ParseSpreadsheetResult, type Spreadsheet, type SpreadsheetSeries, type ChartElements, } from "./charts.types";
5
+ export { isSpreadsheetValidForChartType } from "./charts.helpers";
6
+ export { tryParseCells, tryParseNumber, tryParseSpreadsheet };
7
+ export declare const renderSpreadsheet: (chartType: ChartType, spreadsheet: Spreadsheet, x: number, y: number, colorSeed?: number) => ChartElements | null;
@@ -1,13 +1,14 @@
1
1
  import { ALLOWED_PASTE_MIME_TYPES } from "@excalidraw/common";
2
+ import type { ValueOf } from "@excalidraw/common/utility-types";
3
+ import type { IMAGE_MIME_TYPES, STRING_MIME_TYPES } from "@excalidraw/common";
2
4
  import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
3
- import type { Spreadsheet } from "./charts";
5
+ import type { FileSystemHandle } from "./data/filesystem";
4
6
  import type { BinaryFiles } from "./types";
5
7
  export type PastedMixedContent = {
6
8
  type: "text" | "imageUrl";
7
9
  value: string;
8
10
  }[];
9
11
  export interface ClipboardData {
10
- spreadsheet?: Spreadsheet;
11
12
  elements?: readonly ExcalidrawElement[];
12
13
  files?: BinaryFiles;
13
14
  text?: string;
@@ -20,26 +21,16 @@ export declare const probablySupportsClipboardReadText: boolean;
20
21
  export declare const probablySupportsClipboardWriteText: boolean;
21
22
  export declare const probablySupportsClipboardBlob: boolean;
22
23
  export declare const createPasteEvent: ({ types, files, }: {
23
- types?: {
24
- "text/plain"?: string | File | undefined;
25
- "text/html"?: string | File | undefined;
26
- "image/svg+xml"?: string | File | undefined;
27
- "image/png"?: string | File | undefined;
28
- "image/jpeg"?: string | File | undefined;
29
- "image/gif"?: string | File | undefined;
30
- "image/webp"?: string | File | undefined;
31
- "image/bmp"?: string | File | undefined;
32
- "image/x-icon"?: string | File | undefined;
33
- "image/avif"?: string | File | undefined;
34
- "image/jfif"?: string | File | undefined;
35
- } | undefined;
36
- files?: File[] | undefined;
24
+ types?: { [key in AllowedPasteMimeTypes]?: string | File; };
25
+ files?: File[];
37
26
  }) => ClipboardEvent;
38
27
  export declare const serializeAsClipboardJSON: ({ elements, files, }: {
39
28
  elements: readonly NonDeletedExcalidrawElement[];
40
29
  files: BinaryFiles | null;
41
30
  }) => string;
42
- export declare const copyToClipboard: (elements: readonly NonDeletedExcalidrawElement[], files: BinaryFiles | null, clipboardEvent?: ClipboardEvent | null) => Promise<void>;
31
+ export declare const copyToClipboard: (elements: readonly NonDeletedExcalidrawElement[], files: BinaryFiles | null,
32
+ /** supply if available to make the operation more certain to succeed */
33
+ clipboardEvent?: ClipboardEvent | null) => Promise<void>;
43
34
  /**
44
35
  * Reads OS clipboard programmatically. May not work on all browsers.
45
36
  * Will prompt user for permission if not granted.
@@ -57,10 +48,58 @@ export declare const readSystemClipboard: () => Promise<{
57
48
  "image/avif"?: string | File | undefined;
58
49
  "image/jfif"?: string | File | undefined;
59
50
  }>;
51
+ type AllowedParsedDataTransferItem = {
52
+ type: ValueOf<typeof IMAGE_MIME_TYPES>;
53
+ kind: "file";
54
+ file: File;
55
+ fileHandle: FileSystemHandle | null;
56
+ } | {
57
+ type: ValueOf<typeof STRING_MIME_TYPES>;
58
+ kind: "string";
59
+ value: string;
60
+ };
61
+ type ParsedDataTransferItem = {
62
+ type: string;
63
+ kind: "file";
64
+ file: File;
65
+ fileHandle: FileSystemHandle | null;
66
+ } | {
67
+ type: string;
68
+ kind: "string";
69
+ value: string;
70
+ };
71
+ type ParsedDataTransferItemType<T extends AllowedParsedDataTransferItem["type"]> = AllowedParsedDataTransferItem & {
72
+ type: T;
73
+ };
74
+ export type ParsedDataTransferFile = Extract<AllowedParsedDataTransferItem, {
75
+ kind: "file";
76
+ }>;
77
+ export type ParsedDataTranferList = ParsedDataTransferItem[] & {
78
+ /**
79
+ * Only allows filtering by known `string` data types, since `file`
80
+ * types can have multiple items of the same type (e.g. multiple image files)
81
+ * unlike `string` data transfer items.
82
+ */
83
+ findByType: typeof findDataTransferItemType;
84
+ /**
85
+ * Only allows filtering by known `string` data types, since `file`
86
+ * types can have multiple items of the same type (e.g. multiple image files)
87
+ * unlike `string` data transfer items.
88
+ */
89
+ getData: typeof getDataTransferItemData;
90
+ getFiles: typeof getDataTransferFiles;
91
+ };
92
+ declare const findDataTransferItemType: <T extends ValueOf<typeof STRING_MIME_TYPES>>(this: ParsedDataTranferList, type: T) => ParsedDataTransferItemType<T> | null;
93
+ declare const getDataTransferItemData: <T extends ValueOf<typeof STRING_MIME_TYPES>>(this: ParsedDataTranferList, type: T) => ParsedDataTransferItemType<ValueOf<typeof STRING_MIME_TYPES>>["value"] | null;
94
+ declare const getDataTransferFiles: (this: ParsedDataTranferList) => ParsedDataTransferFile[];
95
+ /** @returns list of MIME types, synchronously */
96
+ export declare const parseDataTransferEventMimeTypes: (event: ClipboardEvent | DragEvent | React.DragEvent<HTMLDivElement>) => Set<string>;
97
+ export declare const parseDataTransferEvent: (event: ClipboardEvent | DragEvent | React.DragEvent<HTMLDivElement>) => Promise<ParsedDataTranferList>;
60
98
  /**
61
99
  * Attempts to parse clipboard event.
62
100
  */
63
- export declare const parseClipboard: (event: ClipboardEvent, isPlainPaste?: boolean) => Promise<ClipboardData>;
101
+ export declare const parseClipboard: (dataList: ParsedDataTranferList, isPlainPaste?: boolean) => Promise<ClipboardData>;
64
102
  export declare const copyBlobToClipboardAsPng: (blob: Blob | Promise<Blob>) => Promise<void>;
65
- export declare const copyTextToSystemClipboard: (text: string | null, clipboardEvent?: ClipboardEvent | null) => Promise<void>;
103
+ export declare const copyTextToSystemClipboard: <MimeType extends ValueOf<typeof STRING_MIME_TYPES>>(text: string | { [K in MimeType]: string; } | null, clipboardEvent?: ClipboardEvent | null) => Promise<void>;
104
+ export declare const isClipboardEvent: (event: React.SyntheticEvent | Event) => event is ClipboardEvent;
66
105
  export {};