@excalidraw/element 0.18.0-9036812b6 → 0.18.0-9ba0f5d

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 (227) hide show
  1. package/dist/dev/index.js +3846 -2092
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +17 -17
  4. package/dist/types/common/src/bounds.d.ts +10 -0
  5. package/dist/types/common/src/colors.d.ts +59 -39
  6. package/dist/types/common/src/constants.d.ts +33 -26
  7. package/dist/types/common/src/editorInterface.d.ts +34 -0
  8. package/dist/types/common/src/font-metadata.d.ts +1 -3
  9. package/dist/types/common/src/index.d.ts +2 -0
  10. package/dist/types/common/src/keys.d.ts +1 -1
  11. package/dist/types/common/src/utility-types.d.ts +0 -1
  12. package/dist/types/common/src/utils.d.ts +49 -34
  13. package/dist/types/element/src/Scene.d.ts +9 -5
  14. package/dist/types/element/src/binding.d.ts +58 -44
  15. package/dist/types/element/src/bounds.d.ts +3 -11
  16. package/dist/types/element/src/collision.d.ts +6 -2
  17. package/dist/types/element/src/comparisons.d.ts +7 -7
  18. package/dist/types/element/src/delta.d.ts +6 -3
  19. package/dist/types/element/src/dragElements.d.ts +3 -3
  20. package/dist/types/element/src/duplicate.d.ts +3 -3
  21. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  22. package/dist/types/element/src/frame.d.ts +5 -1
  23. package/dist/types/element/src/heading.d.ts +2 -1
  24. package/dist/types/element/src/image.d.ts +1 -11
  25. package/dist/types/element/src/index.d.ts +2 -3
  26. package/dist/types/element/src/linearElementEditor.d.ts +16 -20
  27. package/dist/types/element/src/mutateElement.d.ts +3 -1
  28. package/dist/types/element/src/newElement.d.ts +6 -6
  29. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  30. package/dist/types/element/src/renderElement.d.ts +4 -7
  31. package/dist/types/element/src/resizeElements.d.ts +10 -10
  32. package/dist/types/element/src/resizeTest.d.ts +6 -5
  33. package/dist/types/element/src/selection.d.ts +3 -7
  34. package/dist/types/element/src/shape.d.ts +8 -7
  35. package/dist/types/element/src/store.d.ts +6 -1
  36. package/dist/types/element/src/textElement.d.ts +1 -1
  37. package/dist/types/element/src/textMeasurements.d.ts +1 -3
  38. package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
  39. package/dist/types/element/src/transformHandles.d.ts +8 -27
  40. package/dist/types/element/src/typeChecks.d.ts +4 -7
  41. package/dist/types/element/src/types.d.ts +7 -11
  42. package/dist/types/element/src/utils.d.ts +5 -2
  43. package/dist/types/element/src/visualdebug.d.ts +59 -0
  44. package/dist/types/element/src/zindex.d.ts +7 -1
  45. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +93 -136
  46. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
  47. package/dist/types/excalidraw/actions/actionBoundText.d.ts +67 -96
  48. package/dist/types/excalidraw/actions/actionCanvas.d.ts +402 -758
  49. package/dist/types/excalidraw/actions/actionClipboard.d.ts +86 -856
  50. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +32 -47
  51. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +110 -159
  52. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  53. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -3
  54. package/dist/types/excalidraw/actions/actionElementLink.d.ts +28 -45
  55. package/dist/types/excalidraw/actions/actionElementLock.d.ts +66 -95
  56. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +33 -48
  57. package/dist/types/excalidraw/actions/actionExport.d.ts +144 -1104
  58. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -394
  59. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
  60. package/dist/types/excalidraw/actions/actionFrame.d.ts +227 -322
  61. package/dist/types/excalidraw/actions/actionGroup.d.ts +70 -107
  62. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +140 -195
  63. package/dist/types/excalidraw/actions/actionLink.d.ts +30 -45
  64. package/dist/types/excalidraw/actions/actionMenu.d.ts +27 -410
  65. package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -359
  66. package/dist/types/excalidraw/actions/actionProperties.d.ts +129 -2488
  67. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +35 -54
  68. package/dist/types/excalidraw/actions/actionStyles.d.ts +32 -47
  69. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
  70. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +32 -47
  71. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +32 -47
  72. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +25 -42
  73. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  74. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +32 -47
  75. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +32 -47
  76. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +33 -48
  77. package/dist/types/excalidraw/actions/actionZindex.d.ts +2 -3
  78. package/dist/types/excalidraw/actions/index.d.ts +2 -2
  79. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  80. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  81. package/dist/types/excalidraw/appState.d.ts +12 -7
  82. package/dist/types/excalidraw/clipboard.d.ts +55 -16
  83. package/dist/types/excalidraw/components/Actions.d.ts +22 -5
  84. package/dist/types/excalidraw/components/App.d.ts +67 -65
  85. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  86. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  87. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
  88. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
  89. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
  90. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
  91. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
  92. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  93. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
  94. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -3
  95. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  96. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  97. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  98. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  99. package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
  100. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  101. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +1 -2
  102. package/dist/types/excalidraw/components/EyeDropper.d.ts +0 -1
  103. package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
  104. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  105. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
  106. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  107. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  108. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  109. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  110. package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
  111. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  112. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
  113. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
  114. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
  115. package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
  116. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
  117. package/dist/types/excalidraw/components/MobileToolBar.d.ts +10 -0
  118. package/dist/types/excalidraw/components/Modal.d.ts +0 -1
  119. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
  120. package/dist/types/excalidraw/components/Popover.d.ts +2 -1
  121. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -0
  122. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  123. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  124. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  125. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +15 -21
  126. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  127. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  128. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  129. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  130. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  131. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  132. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  133. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  134. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
  135. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  136. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  137. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  138. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +27 -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 +26 -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/MermaidToExcalidraw.d.ts +3 -2
  144. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  145. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +4 -25
  146. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +2 -2
  147. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  148. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  149. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  150. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  151. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +2 -3
  152. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  153. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +8 -0
  154. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  155. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  156. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  157. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
  158. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +91 -0
  159. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
  160. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +24 -0
  161. package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
  162. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
  163. package/dist/types/excalidraw/components/TextField.d.ts +1 -0
  164. package/dist/types/excalidraw/components/Toast.d.ts +3 -3
  165. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  166. package/dist/types/excalidraw/components/Trans.d.ts +2 -2
  167. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +6 -3
  168. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +30 -32
  169. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +6 -5
  170. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  171. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +10 -18
  172. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +3 -3
  173. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +0 -1
  174. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  175. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  176. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  177. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +1 -1
  178. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  179. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  180. package/dist/types/excalidraw/components/icons.d.ts +26 -12
  181. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +4 -3
  182. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +2 -2
  183. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +25 -30
  184. package/dist/types/excalidraw/components/shapes.d.ts +129 -1
  185. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +6 -6
  186. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +15 -16
  187. package/dist/types/excalidraw/data/blob.d.ts +324 -10
  188. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  189. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  190. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  191. package/dist/types/excalidraw/data/index.d.ts +3 -3
  192. package/dist/types/excalidraw/data/json.d.ts +159 -2
  193. package/dist/types/excalidraw/data/library.d.ts +24 -9
  194. package/dist/types/excalidraw/data/restore.d.ts +27 -7
  195. package/dist/types/excalidraw/data/types.d.ts +4 -1
  196. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  197. package/dist/types/excalidraw/errors.d.ts +14 -0
  198. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  199. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
  200. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  201. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  202. package/dist/types/excalidraw/i18n.d.ts +2 -2
  203. package/dist/types/excalidraw/index.d.ts +6 -7
  204. package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
  205. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
  206. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
  207. package/dist/types/excalidraw/scene/Renderer.d.ts +5 -2
  208. package/dist/types/excalidraw/scene/export.d.ts +2 -2
  209. package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
  210. package/dist/types/excalidraw/scene/types.d.ts +22 -5
  211. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  212. package/dist/types/excalidraw/snapping.d.ts +5 -5
  213. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  214. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  215. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  216. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  217. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  218. package/dist/types/excalidraw/types.d.ts +32 -20
  219. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -2
  220. package/dist/types/math/src/polygon.d.ts +2 -2
  221. package/dist/types/math/src/range.d.ts +1 -3
  222. package/dist/types/math/src/segment.d.ts +4 -3
  223. package/dist/types/utils/src/bbox.d.ts +1 -1
  224. package/dist/types/utils/src/export.d.ts +5 -5
  225. package/dist/types/utils/src/shape.d.ts +6 -6
  226. package/dist/types/utils/src/withinBounds.d.ts +2 -2
  227. 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,7 @@ 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: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
33
32
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
34
33
  frameRendering: {
35
34
  enabled: boolean;
@@ -45,6 +44,10 @@ export declare const actionToggleViewMode: {
45
44
  locked: boolean;
46
45
  fromSelection: boolean;
47
46
  } & import("../types").ActiveTool;
47
+ preferredSelectionTool: {
48
+ type: "selection" | "lasso";
49
+ initialized: boolean;
50
+ };
48
51
  penMode: boolean;
49
52
  penDetected: boolean;
50
53
  exportBackground: boolean;
@@ -53,19 +56,19 @@ export declare const actionToggleViewMode: {
53
56
  exportScale: number;
54
57
  currentItemStrokeColor: string;
55
58
  currentItemBackgroundColor: string;
56
- currentItemFillStyle: import("@excalidraw/element/types").FillStyle;
59
+ currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
57
60
  currentItemStrokeWidth: number;
58
- currentItemStrokeStyle: import("@excalidraw/element/types").StrokeStyle;
61
+ currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
59
62
  currentItemRoughness: number;
60
63
  currentItemOpacity: number;
61
- currentItemFontFamily: number;
64
+ currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
62
65
  currentItemFontSize: number;
63
- currentItemTextAlign: string;
66
+ currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
64
67
  currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
65
68
  currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
66
- currentHoveredFontFamily: number | null;
69
+ currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
67
70
  currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
68
- currentItemArrowType: "round" | "sharp" | "elbow";
71
+ currentItemArrowType: "sharp" | "round" | "elbow";
69
72
  viewBackgroundColor: string;
70
73
  scrollX: number;
71
74
  scrollY: number;
@@ -74,26 +77,26 @@ export declare const actionToggleViewMode: {
74
77
  name: string | null;
75
78
  isResizing: boolean;
76
79
  isRotating: boolean;
77
- zoom: Readonly<{
78
- value: import("../types").NormalizedZoomValue;
79
- }>;
80
- openMenu: "canvas" | "shape" | null;
81
- openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
80
+ zoom: import("../types").Zoom;
81
+ openMenu: "canvas" | null;
82
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
82
83
  openSidebar: {
83
- name: string;
84
- tab?: string | undefined;
84
+ name: import("../types").SidebarName;
85
+ tab?: import("../types").SidebarTabName;
85
86
  } | null;
86
- openDialog: {
87
+ openDialog: null | {
87
88
  name: "imageExport" | "help" | "jsonExport";
88
89
  } | {
89
90
  name: "ttd";
90
- tab: "mermaid" | "text-to-diagram";
91
+ tab: "text-to-diagram" | "mermaid";
91
92
  } | {
92
93
  name: "commandPalette";
94
+ } | {
95
+ name: "settings";
93
96
  } | {
94
97
  name: "elementLinkSelector";
95
- sourceElementId: string;
96
- } | null;
98
+ sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
99
+ };
97
100
  defaultSidebarDockedPreference: boolean;
98
101
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
99
102
  selectedElementIds: Readonly<{
@@ -109,8 +112,8 @@ export declare const actionToggleViewMode: {
109
112
  shouldCacheIgnoreZoom: boolean;
110
113
  toast: {
111
114
  message: string;
112
- closable?: boolean | undefined;
113
- duration?: number | undefined;
115
+ closable?: boolean;
116
+ duration?: number;
114
117
  } | null;
115
118
  zenModeEnabled: boolean;
116
119
  theme: import("@excalidraw/element/types").Theme;
@@ -120,32 +123,13 @@ export declare const actionToggleViewMode: {
120
123
  selectedGroupIds: {
121
124
  [groupId: string]: boolean;
122
125
  };
123
- editingGroupId: string | null;
126
+ editingGroupId: import("@excalidraw/element/types").GroupId | null;
124
127
  width: number;
125
128
  height: number;
126
129
  offsetTop: number;
127
130
  offsetLeft: number;
128
131
  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
- }>>;
132
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
149
133
  stats: {
150
134
  open: boolean;
151
135
  panels: number;
@@ -158,7 +142,7 @@ export declare const actionToggleViewMode: {
158
142
  shown: true;
159
143
  data: import("../charts").Spreadsheet;
160
144
  };
161
- showHyperlinkPopup: false | "editor" | "info";
145
+ showHyperlinkPopup: false | "info" | "editor";
162
146
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
163
147
  snapLines: readonly import("../snapping").SnapLine[];
164
148
  originSnapOffset: {
@@ -169,15 +153,16 @@ export declare const actionToggleViewMode: {
169
153
  userToFollow: import("../types").UserToFollow | null;
170
154
  followedBy: Set<import("../types").SocketId>;
171
155
  isCropping: boolean;
172
- croppingElementId: string | null;
156
+ croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
173
157
  searchMatches: Readonly<{
174
- focusedId: string | null;
158
+ focusedId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
175
159
  matches: readonly import("../types").SearchMatch[];
176
160
  }> | null;
177
161
  activeLockedId: string | null;
178
162
  lockedMultiSelections: {
179
163
  [groupId: string]: true;
180
164
  };
165
+ bindMode: import("@excalidraw/element/types").BindMode;
181
166
  };
182
167
  captureUpdate: "EVENTUALLY";
183
168
  };
@@ -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,7 @@ 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: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
33
32
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
34
33
  frameRendering: {
35
34
  enabled: boolean;
@@ -45,6 +44,10 @@ export declare const actionToggleZenMode: {
45
44
  locked: boolean;
46
45
  fromSelection: boolean;
47
46
  } & import("../types").ActiveTool;
47
+ preferredSelectionTool: {
48
+ type: "selection" | "lasso";
49
+ initialized: boolean;
50
+ };
48
51
  penMode: boolean;
49
52
  penDetected: boolean;
50
53
  exportBackground: boolean;
@@ -53,19 +56,19 @@ export declare const actionToggleZenMode: {
53
56
  exportScale: number;
54
57
  currentItemStrokeColor: string;
55
58
  currentItemBackgroundColor: string;
56
- currentItemFillStyle: import("@excalidraw/element/types").FillStyle;
59
+ currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
57
60
  currentItemStrokeWidth: number;
58
- currentItemStrokeStyle: import("@excalidraw/element/types").StrokeStyle;
61
+ currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
59
62
  currentItemRoughness: number;
60
63
  currentItemOpacity: number;
61
- currentItemFontFamily: number;
64
+ currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
62
65
  currentItemFontSize: number;
63
- currentItemTextAlign: string;
66
+ currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
64
67
  currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
65
68
  currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
66
- currentHoveredFontFamily: number | null;
69
+ currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
67
70
  currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
68
- currentItemArrowType: "round" | "sharp" | "elbow";
71
+ currentItemArrowType: "sharp" | "round" | "elbow";
69
72
  viewBackgroundColor: string;
70
73
  scrollX: number;
71
74
  scrollY: number;
@@ -74,26 +77,26 @@ export declare const actionToggleZenMode: {
74
77
  name: string | null;
75
78
  isResizing: boolean;
76
79
  isRotating: boolean;
77
- zoom: Readonly<{
78
- value: import("../types").NormalizedZoomValue;
79
- }>;
80
- openMenu: "canvas" | "shape" | null;
81
- openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
80
+ zoom: import("../types").Zoom;
81
+ openMenu: "canvas" | null;
82
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
82
83
  openSidebar: {
83
- name: string;
84
- tab?: string | undefined;
84
+ name: import("../types").SidebarName;
85
+ tab?: import("../types").SidebarTabName;
85
86
  } | null;
86
- openDialog: {
87
+ openDialog: null | {
87
88
  name: "imageExport" | "help" | "jsonExport";
88
89
  } | {
89
90
  name: "ttd";
90
- tab: "mermaid" | "text-to-diagram";
91
+ tab: "text-to-diagram" | "mermaid";
91
92
  } | {
92
93
  name: "commandPalette";
94
+ } | {
95
+ name: "settings";
93
96
  } | {
94
97
  name: "elementLinkSelector";
95
- sourceElementId: string;
96
- } | null;
98
+ sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
99
+ };
97
100
  defaultSidebarDockedPreference: boolean;
98
101
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
99
102
  selectedElementIds: Readonly<{
@@ -109,8 +112,8 @@ export declare const actionToggleZenMode: {
109
112
  shouldCacheIgnoreZoom: boolean;
110
113
  toast: {
111
114
  message: string;
112
- closable?: boolean | undefined;
113
- duration?: number | undefined;
115
+ closable?: boolean;
116
+ duration?: number;
114
117
  } | null;
115
118
  theme: import("@excalidraw/element/types").Theme;
116
119
  gridSize: number;
@@ -120,32 +123,13 @@ export declare const actionToggleZenMode: {
120
123
  selectedGroupIds: {
121
124
  [groupId: string]: boolean;
122
125
  };
123
- editingGroupId: string | null;
126
+ editingGroupId: import("@excalidraw/element/types").GroupId | null;
124
127
  width: number;
125
128
  height: number;
126
129
  offsetTop: number;
127
130
  offsetLeft: number;
128
131
  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
- }>>;
132
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
149
133
  stats: {
150
134
  open: boolean;
151
135
  panels: number;
@@ -158,7 +142,7 @@ export declare const actionToggleZenMode: {
158
142
  shown: true;
159
143
  data: import("../charts").Spreadsheet;
160
144
  };
161
- showHyperlinkPopup: false | "editor" | "info";
145
+ showHyperlinkPopup: false | "info" | "editor";
162
146
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
163
147
  snapLines: readonly import("../snapping").SnapLine[];
164
148
  originSnapOffset: {
@@ -169,20 +153,21 @@ export declare const actionToggleZenMode: {
169
153
  userToFollow: import("../types").UserToFollow | null;
170
154
  followedBy: Set<import("../types").SocketId>;
171
155
  isCropping: boolean;
172
- croppingElementId: string | null;
156
+ croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
173
157
  searchMatches: Readonly<{
174
- focusedId: string | null;
158
+ focusedId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
175
159
  matches: readonly import("../types").SearchMatch[];
176
160
  }> | null;
177
161
  activeLockedId: string | null;
178
162
  lockedMultiSelections: {
179
163
  [groupId: string]: true;
180
164
  };
165
+ bindMode: import("@excalidraw/element/types").BindMode;
181
166
  };
182
167
  captureUpdate: "EVENTUALLY";
183
168
  };
184
169
  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;
170
+ predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
186
171
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
187
172
  } & {
188
173
  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
  };
@@ -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
16
  selectedGroupIds?: {
17
17
  [groupId: string]: boolean;
18
18
  } | undefined;
19
19
  selectedLinearElement?: import("@excalidraw/element").LinearElementEditor | null | undefined;
20
20
  zenModeEnabled?: boolean | undefined;
21
+ shouldCacheIgnoreZoom?: boolean | undefined;
22
+ exportScale?: number | undefined;
23
+ bindMode?: import("@excalidraw/element/types").BindMode | undefined;
24
+ gridSize?: number | undefined;
21
25
  showWelcomeScreen?: boolean | undefined;
22
26
  activeTool?: ({
23
27
  lastActiveTool: import("./types").ActiveTool | null;
24
28
  locked: boolean;
25
29
  fromSelection: boolean;
26
30
  } & 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,56 @@ 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
+ 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
+ export declare const parseDataTransferEvent: (event: ClipboardEvent | DragEvent | React.DragEvent<HTMLDivElement>) => Promise<ParsedDataTranferList>;
60
98
  /**
61
99
  * Attempts to parse clipboard event.
62
100
  */
63
- export declare const parseClipboard: (event: ClipboardEvent, isPlainPaste?: boolean) => Promise<ClipboardData>;
101
+ export declare const parseClipboard: (dataList: ParsedDataTranferList, isPlainPaste?: boolean) => Promise<ClipboardData>;
64
102
  export declare const copyBlobToClipboardAsPng: (blob: Blob | Promise<Blob>) => Promise<void>;
65
103
  export declare const copyTextToSystemClipboard: (text: string | null, clipboardEvent?: ClipboardEvent | null) => Promise<void>;
104
+ export declare const isClipboardEvent: (event: React.SyntheticEvent | Event) => event is ClipboardEvent;
66
105
  export {};