@excalidraw/element 0.18.0-c141960 → 0.18.0-c1dbbdf

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 (233) hide show
  1. package/dist/dev/index.js +2698 -954
  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 +17 -11
  8. package/dist/types/common/src/editorInterface.d.ts +1 -1
  9. package/dist/types/common/src/font-metadata.d.ts +1 -3
  10. package/dist/types/common/src/index.d.ts +2 -1
  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 +46 -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 +19 -12
  18. package/dist/types/element/src/bounds.d.ts +2 -10
  19. package/dist/types/element/src/collision.d.ts +4 -3
  20. package/dist/types/element/src/comparisons.d.ts +7 -7
  21. package/dist/types/element/src/distribute.d.ts +2 -1
  22. package/dist/types/element/src/dragElements.d.ts +3 -3
  23. package/dist/types/element/src/duplicate.d.ts +3 -3
  24. package/dist/types/element/src/elbowArrow.d.ts +2 -0
  25. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  26. package/dist/types/element/src/frame.d.ts +5 -1
  27. package/dist/types/element/src/heading.d.ts +2 -1
  28. package/dist/types/element/src/image.d.ts +1 -11
  29. package/dist/types/element/src/index.d.ts +3 -0
  30. package/dist/types/element/src/linearElementEditor.d.ts +6 -2
  31. package/dist/types/element/src/mutateElement.d.ts +5 -1
  32. package/dist/types/element/src/newElement.d.ts +6 -6
  33. package/dist/types/element/src/renderElement.d.ts +0 -6
  34. package/dist/types/element/src/resizeElements.d.ts +10 -10
  35. package/dist/types/element/src/resizeTest.d.ts +1 -1
  36. package/dist/types/element/src/selection.d.ts +3 -7
  37. package/dist/types/element/src/shape.d.ts +8 -7
  38. package/dist/types/element/src/textMeasurements.d.ts +1 -3
  39. package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
  40. package/dist/types/element/src/transformHandles.d.ts +3 -23
  41. package/dist/types/element/src/typeChecks.d.ts +2 -4
  42. package/dist/types/element/src/types.d.ts +1 -1
  43. package/dist/types/element/src/utils.d.ts +8 -4
  44. package/dist/types/{common → element}/src/visualdebug.d.ts +20 -2
  45. package/dist/types/element/src/zindex.d.ts +1 -1
  46. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +92 -153
  47. package/dist/types/excalidraw/actions/actionAlign.d.ts +0 -1
  48. package/dist/types/excalidraw/actions/actionBoundText.d.ts +64 -105
  49. package/dist/types/excalidraw/actions/actionCanvas.d.ts +383 -618
  50. package/dist/types/excalidraw/actions/actionClipboard.d.ts +64 -105
  51. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +31 -52
  52. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +106 -169
  53. package/dist/types/excalidraw/actions/actionDistribute.d.ts +0 -1
  54. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +0 -1
  55. package/dist/types/excalidraw/actions/actionElementLink.d.ts +24 -49
  56. package/dist/types/excalidraw/actions/actionElementLock.d.ts +65 -106
  57. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +32 -53
  58. package/dist/types/excalidraw/actions/actionExport.d.ts +126 -211
  59. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -2
  60. package/dist/types/excalidraw/actions/actionFlip.d.ts +0 -1
  61. package/dist/types/excalidraw/actions/actionFrame.d.ts +221 -338
  62. package/dist/types/excalidraw/actions/actionGroup.d.ts +68 -117
  63. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +134 -189
  64. package/dist/types/excalidraw/actions/actionLink.d.ts +32 -53
  65. package/dist/types/excalidraw/actions/actionMenu.d.ts +23 -48
  66. package/dist/types/excalidraw/actions/actionNavigate.d.ts +14 -17
  67. package/dist/types/excalidraw/actions/actionProperties.d.ts +79 -120
  68. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +34 -59
  69. package/dist/types/excalidraw/actions/actionStyles.d.ts +30 -51
  70. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +172 -0
  71. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +32 -53
  72. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +172 -0
  73. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +32 -53
  74. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +22 -47
  75. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +32 -53
  76. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +32 -53
  77. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +32 -53
  78. package/dist/types/excalidraw/actions/actionZindex.d.ts +0 -1
  79. package/dist/types/excalidraw/actions/index.d.ts +2 -0
  80. package/dist/types/excalidraw/actions/manager.d.ts +1 -1
  81. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  82. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  83. package/dist/types/excalidraw/actions/types.d.ts +1 -1
  84. package/dist/types/excalidraw/appState.d.ts +12 -10
  85. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  86. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  87. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  88. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  89. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  90. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  91. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  92. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  93. package/dist/types/excalidraw/clipboard.d.ts +11 -35
  94. package/dist/types/excalidraw/components/Actions.d.ts +1 -1
  95. package/dist/types/excalidraw/components/App.d.ts +43 -44
  96. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  97. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  98. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
  99. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
  100. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  101. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -2
  102. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  103. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  104. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  105. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  106. package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
  107. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  108. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -1
  109. package/dist/types/excalidraw/components/EyeDropper.d.ts +0 -1
  110. package/dist/types/excalidraw/components/FilledButton.d.ts +1 -0
  111. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  112. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  113. package/dist/types/excalidraw/components/InlineIcon.d.ts +2 -2
  114. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  115. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
  116. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
  117. package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
  118. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -1
  119. package/dist/types/excalidraw/components/Modal.d.ts +0 -1
  120. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
  121. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
  122. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  123. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  124. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  125. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  126. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +15 -21
  127. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  128. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  129. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  130. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  131. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  132. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  133. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  134. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  135. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
  136. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  137. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  138. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
  139. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
  140. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
  141. package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
  142. package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
  143. package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
  144. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
  145. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  146. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
  147. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
  148. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +5 -2
  149. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  150. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  151. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  152. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  153. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  154. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  155. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  156. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
  157. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  158. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  159. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  160. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
  161. package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
  162. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
  163. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
  164. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +24 -0
  165. package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
  166. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
  167. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
  168. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
  169. package/dist/types/excalidraw/components/Toast.d.ts +3 -3
  170. package/dist/types/excalidraw/components/Trans.d.ts +2 -2
  171. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +48 -38
  172. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -6
  173. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  174. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
  175. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  176. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
  177. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +0 -1
  178. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  179. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  180. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  181. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  182. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  183. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  184. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +2 -2
  185. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  186. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  187. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  188. package/dist/types/excalidraw/components/icons.d.ts +22 -13
  189. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +2 -13
  190. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +19 -2
  191. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -32
  192. package/dist/types/excalidraw/components/shapes.d.ts +74 -1
  193. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +6 -6
  194. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +15 -16
  195. package/dist/types/excalidraw/data/blob.d.ts +323 -3
  196. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  197. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  198. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  199. package/dist/types/excalidraw/data/index.d.ts +3 -3
  200. package/dist/types/excalidraw/data/json.d.ts +160 -2
  201. package/dist/types/excalidraw/data/library.d.ts +24 -9
  202. package/dist/types/excalidraw/data/restore.d.ts +25 -10
  203. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  204. package/dist/types/excalidraw/errors.d.ts +14 -0
  205. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +1 -2
  206. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  207. package/dist/types/excalidraw/i18n.d.ts +2 -2
  208. package/dist/types/excalidraw/index.d.ts +6 -4
  209. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -4
  210. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -6
  211. package/dist/types/excalidraw/scene/Renderer.d.ts +5 -2
  212. package/dist/types/excalidraw/scene/export.d.ts +2 -2
  213. package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
  214. package/dist/types/excalidraw/scene/types.d.ts +7 -2
  215. package/dist/types/excalidraw/snapping.d.ts +5 -5
  216. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  217. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  218. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  219. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  220. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  221. package/dist/types/excalidraw/types.d.ts +25 -14
  222. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -2
  223. package/dist/types/math/src/point.d.ts +6 -1
  224. package/dist/types/math/src/polygon.d.ts +2 -2
  225. package/dist/types/math/src/range.d.ts +1 -3
  226. package/dist/types/math/src/segment.d.ts +3 -3
  227. package/dist/types/math/src/types.d.ts +25 -1
  228. package/dist/types/utils/src/bbox.d.ts +1 -1
  229. package/dist/types/utils/src/export.d.ts +5 -5
  230. package/dist/types/utils/src/shape.d.ts +6 -6
  231. package/dist/types/utils/src/withinBounds.d.ts +2 -2
  232. package/package.json +9 -3
  233. package/dist/types/excalidraw/charts.d.ts +0 -27
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const actionToggleViewMode: {
3
2
  name: "viewMode";
4
3
  label: string;
@@ -18,18 +17,23 @@ export declare const actionToggleViewMode: {
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
- suggestedBinding: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
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;
@@ -57,19 +61,19 @@ export declare const actionToggleViewMode: {
57
61
  exportScale: number;
58
62
  currentItemStrokeColor: string;
59
63
  currentItemBackgroundColor: string;
60
- currentItemFillStyle: import("@excalidraw/element/types").FillStyle;
64
+ currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
61
65
  currentItemStrokeWidth: number;
62
- currentItemStrokeStyle: import("@excalidraw/element/types").StrokeStyle;
66
+ currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
63
67
  currentItemRoughness: number;
64
68
  currentItemOpacity: number;
65
- currentItemFontFamily: number;
69
+ currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
66
70
  currentItemFontSize: number;
67
- currentItemTextAlign: string;
71
+ currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
68
72
  currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
69
73
  currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
70
- currentHoveredFontFamily: number | null;
74
+ currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
71
75
  currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
72
- currentItemArrowType: "round" | "sharp" | "elbow";
76
+ currentItemArrowType: "sharp" | "round" | "elbow";
73
77
  viewBackgroundColor: string;
74
78
  scrollX: number;
75
79
  scrollY: number;
@@ -78,28 +82,30 @@ export declare const actionToggleViewMode: {
78
82
  name: string | null;
79
83
  isResizing: boolean;
80
84
  isRotating: boolean;
81
- zoom: Readonly<{
82
- value: import("../types").NormalizedZoomValue;
83
- }>;
85
+ zoom: import("../types").Zoom;
84
86
  openMenu: "canvas" | null;
85
- openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
87
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
86
88
  openSidebar: {
87
- name: string;
88
- tab?: string | undefined;
89
+ name: import("../types").SidebarName;
90
+ tab?: import("../types").SidebarTabName;
89
91
  } | null;
90
- openDialog: {
92
+ openDialog: null | {
91
93
  name: "imageExport" | "help" | "jsonExport";
92
94
  } | {
93
95
  name: "ttd";
94
- tab: "mermaid" | "text-to-diagram";
96
+ tab: "text-to-diagram" | "mermaid";
95
97
  } | {
96
98
  name: "commandPalette";
97
99
  } | {
98
100
  name: "settings";
99
101
  } | {
100
102
  name: "elementLinkSelector";
101
- sourceElementId: string;
102
- } | null;
103
+ sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
104
+ } | {
105
+ name: "charts";
106
+ data: import("../charts").Spreadsheet;
107
+ rawText: string;
108
+ };
103
109
  defaultSidebarDockedPreference: boolean;
104
110
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
105
111
  selectedElementIds: Readonly<{
@@ -115,8 +121,8 @@ export declare const actionToggleViewMode: {
115
121
  shouldCacheIgnoreZoom: boolean;
116
122
  toast: {
117
123
  message: string;
118
- closable?: boolean | undefined;
119
- duration?: number | undefined;
124
+ closable?: boolean;
125
+ duration?: number;
120
126
  } | null;
121
127
  zenModeEnabled: boolean;
122
128
  theme: import("@excalidraw/element/types").Theme;
@@ -126,44 +132,17 @@ export declare const actionToggleViewMode: {
126
132
  selectedGroupIds: {
127
133
  [groupId: string]: boolean;
128
134
  };
129
- editingGroupId: string | null;
135
+ editingGroupId: import("@excalidraw/element/types").GroupId | null;
130
136
  width: number;
131
137
  height: number;
132
138
  offsetTop: number;
133
139
  offsetLeft: number;
134
140
  fileHandle: import("browser-fs-access").FileSystemHandle | null;
135
- collaborators: Map<import("../types").SocketId, Readonly<{
136
- pointer?: import("../types").CollaboratorPointer | undefined;
137
- button?: "up" | "down" | undefined;
138
- selectedElementIds?: Readonly<{
139
- [id: string]: true;
140
- }> | undefined;
141
- username?: string | null | undefined;
142
- userState?: import("@excalidraw/common").UserIdleState | undefined;
143
- color?: {
144
- background: string;
145
- stroke: string;
146
- } | undefined;
147
- avatarUrl?: string | undefined;
148
- id?: string | undefined;
149
- socketId?: import("../types").SocketId | undefined;
150
- isCurrentUser?: boolean | undefined;
151
- isInCall?: boolean | undefined;
152
- isSpeaking?: boolean | undefined;
153
- isMuted?: boolean | undefined;
154
- }>>;
141
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
155
142
  stats: {
156
143
  open: boolean;
157
144
  panels: number;
158
145
  };
159
- currentChartType: import("@excalidraw/element/types").ChartType;
160
- pasteDialog: {
161
- shown: false;
162
- data: null;
163
- } | {
164
- shown: true;
165
- data: import("../charts").Spreadsheet;
166
- };
167
146
  showHyperlinkPopup: false | "info" | "editor";
168
147
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
169
148
  snapLines: readonly import("../snapping").SnapLine[];
@@ -175,9 +154,9 @@ export declare const actionToggleViewMode: {
175
154
  userToFollow: import("../types").UserToFollow | null;
176
155
  followedBy: Set<import("../types").SocketId>;
177
156
  isCropping: boolean;
178
- croppingElementId: string | null;
157
+ croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
179
158
  searchMatches: Readonly<{
180
- focusedId: string | null;
159
+ focusedId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
181
160
  matches: readonly import("../types").SearchMatch[];
182
161
  }> | null;
183
162
  activeLockedId: string | null;
@@ -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
- suggestedBinding: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
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;
@@ -57,19 +61,19 @@ export declare const actionToggleZenMode: {
57
61
  exportScale: number;
58
62
  currentItemStrokeColor: string;
59
63
  currentItemBackgroundColor: string;
60
- currentItemFillStyle: import("@excalidraw/element/types").FillStyle;
64
+ currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
61
65
  currentItemStrokeWidth: number;
62
- currentItemStrokeStyle: import("@excalidraw/element/types").StrokeStyle;
66
+ currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
63
67
  currentItemRoughness: number;
64
68
  currentItemOpacity: number;
65
- currentItemFontFamily: number;
69
+ currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
66
70
  currentItemFontSize: number;
67
- currentItemTextAlign: string;
71
+ currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
68
72
  currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
69
73
  currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
70
- currentHoveredFontFamily: number | null;
74
+ currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
71
75
  currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
72
- currentItemArrowType: "round" | "sharp" | "elbow";
76
+ currentItemArrowType: "sharp" | "round" | "elbow";
73
77
  viewBackgroundColor: string;
74
78
  scrollX: number;
75
79
  scrollY: number;
@@ -78,28 +82,30 @@ export declare const actionToggleZenMode: {
78
82
  name: string | null;
79
83
  isResizing: boolean;
80
84
  isRotating: boolean;
81
- zoom: Readonly<{
82
- value: import("../types").NormalizedZoomValue;
83
- }>;
85
+ zoom: import("../types").Zoom;
84
86
  openMenu: "canvas" | null;
85
- openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
87
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
86
88
  openSidebar: {
87
- name: string;
88
- tab?: string | undefined;
89
+ name: import("../types").SidebarName;
90
+ tab?: import("../types").SidebarTabName;
89
91
  } | null;
90
- openDialog: {
92
+ openDialog: null | {
91
93
  name: "imageExport" | "help" | "jsonExport";
92
94
  } | {
93
95
  name: "ttd";
94
- tab: "mermaid" | "text-to-diagram";
96
+ tab: "text-to-diagram" | "mermaid";
95
97
  } | {
96
98
  name: "commandPalette";
97
99
  } | {
98
100
  name: "settings";
99
101
  } | {
100
102
  name: "elementLinkSelector";
101
- sourceElementId: string;
102
- } | null;
103
+ sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
104
+ } | {
105
+ name: "charts";
106
+ data: import("../charts").Spreadsheet;
107
+ rawText: string;
108
+ };
103
109
  defaultSidebarDockedPreference: boolean;
104
110
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
105
111
  selectedElementIds: Readonly<{
@@ -115,8 +121,8 @@ export declare const actionToggleZenMode: {
115
121
  shouldCacheIgnoreZoom: boolean;
116
122
  toast: {
117
123
  message: string;
118
- closable?: boolean | undefined;
119
- duration?: number | undefined;
124
+ closable?: boolean;
125
+ duration?: number;
120
126
  } | null;
121
127
  theme: import("@excalidraw/element/types").Theme;
122
128
  gridSize: number;
@@ -126,44 +132,17 @@ export declare const actionToggleZenMode: {
126
132
  selectedGroupIds: {
127
133
  [groupId: string]: boolean;
128
134
  };
129
- editingGroupId: string | null;
135
+ editingGroupId: import("@excalidraw/element/types").GroupId | null;
130
136
  width: number;
131
137
  height: number;
132
138
  offsetTop: number;
133
139
  offsetLeft: number;
134
140
  fileHandle: import("browser-fs-access").FileSystemHandle | null;
135
- collaborators: Map<import("../types").SocketId, Readonly<{
136
- pointer?: import("../types").CollaboratorPointer | undefined;
137
- button?: "up" | "down" | undefined;
138
- selectedElementIds?: Readonly<{
139
- [id: string]: true;
140
- }> | undefined;
141
- username?: string | null | undefined;
142
- userState?: import("@excalidraw/common").UserIdleState | undefined;
143
- color?: {
144
- background: string;
145
- stroke: string;
146
- } | undefined;
147
- avatarUrl?: string | undefined;
148
- id?: string | undefined;
149
- socketId?: import("../types").SocketId | undefined;
150
- isCurrentUser?: boolean | undefined;
151
- isInCall?: boolean | undefined;
152
- isSpeaking?: boolean | undefined;
153
- isMuted?: boolean | undefined;
154
- }>>;
141
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
155
142
  stats: {
156
143
  open: boolean;
157
144
  panels: number;
158
145
  };
159
- currentChartType: import("@excalidraw/element/types").ChartType;
160
- pasteDialog: {
161
- shown: false;
162
- data: null;
163
- } | {
164
- shown: true;
165
- data: import("../charts").Spreadsheet;
166
- };
167
146
  showHyperlinkPopup: false | "info" | "editor";
168
147
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
169
148
  snapLines: readonly import("../snapping").SnapLine[];
@@ -175,9 +154,9 @@ export declare const actionToggleZenMode: {
175
154
  userToFollow: import("../types").UserToFollow | null;
176
155
  followedBy: Set<import("../types").SocketId>;
177
156
  isCropping: boolean;
178
- croppingElementId: string | null;
157
+ croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
179
158
  searchMatches: Readonly<{
180
- focusedId: string | null;
159
+ focusedId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
181
160
  matches: readonly import("../types").SearchMatch[];
182
161
  }> | null;
183
162
  activeLockedId: string | null;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const actionSendBackward: {
3
2
  name: "sendBackward";
4
3
  label: string;
@@ -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";
@@ -3,7 +3,7 @@ import type { OrderedExcalidrawElement } from "@excalidraw/element/types";
3
3
  import type { AppClassProperties, AppState } from "../types";
4
4
  import type { Action, UpdaterFn, ActionName, ActionResult, PanelComponentProps, ActionSource } from "./types";
5
5
  export declare class ActionManager {
6
- actions: Record<ActionName, Action<any>>;
6
+ actions: Record<ActionName, Action>;
7
7
  updater: (actionResult: ActionResult | Promise<ActionResult>) => void;
8
8
  getAppState: () => Readonly<AppState>;
9
9
  getElementsIncludingDeleted: () => readonly OrderedExcalidrawElement[];
@@ -1,5 +1,5 @@
1
1
  import type { Action } from "./types";
2
2
  export declare let actions: readonly Action[];
3
- export declare const register: <TData extends unknown, T extends Action<TData> = Action<TData>>(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;
@@ -14,7 +14,7 @@ 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" | "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;
@@ -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,22 +13,25 @@ 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;
21
28
  shouldCacheIgnoreZoom?: boolean | undefined;
22
29
  exportScale?: number | undefined;
30
+ currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
23
31
  bindMode?: import("@excalidraw/element/types").BindMode | undefined;
24
32
  gridSize?: number | undefined;
25
33
  showWelcomeScreen?: boolean | undefined;
26
- activeTool?: ({
27
- lastActiveTool: import("./types").ActiveTool | null;
28
- locked: boolean;
29
- fromSelection: boolean;
30
- } & import("./types").ActiveTool) | undefined;
34
+ bindingPreference?: "enabled" | "disabled" | undefined;
31
35
  preferredSelectionTool?: {
32
36
  type: "selection" | "lasso";
33
37
  initialized: boolean;
@@ -50,13 +54,12 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
50
54
  currentItemStartArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
51
55
  currentItemEndArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
52
56
  currentItemRoundness?: import("@excalidraw/element/types").StrokeRoundness | undefined;
53
- currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
54
57
  cursorButton?: "up" | "down" | undefined;
55
58
  scrolledOutside?: boolean | undefined;
56
59
  openMenu?: "canvas" | null | undefined;
57
60
  openSidebar?: {
58
- name: string;
59
- tab?: string | undefined;
61
+ name: import("./types").SidebarName;
62
+ tab?: import("./types").SidebarTabName;
60
63
  } | null | undefined;
61
64
  defaultSidebarDockedPreference?: boolean | undefined;
62
65
  lastPointerDownWith?: import("@excalidraw/element/types").PointerType | undefined;
@@ -69,7 +72,6 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
69
72
  open: boolean;
70
73
  panels: number;
71
74
  } | undefined;
72
- currentChartType?: import("@excalidraw/element/types").ChartType | undefined;
73
75
  objectsSnapModeEnabled?: boolean | undefined;
74
76
  lockedMultiSelections?: {
75
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;