@excalidraw/element 0.18.0-7b8a5f54c → 0.18.0-7ea3229

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