@dwelle/excalidraw 0.4.0-e1bdbb6 → 0.4.0-e587816

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/CHANGELOG.md +714 -0
  2. package/README.md +18 -1422
  3. package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js → vendor-d415b28e9024dee4bb1b.js} +2 -2
  4. package/dist/excalidraw-assets-dev/{vendor-e6df8519da951026ff69.js → vendor-a14cd58fa2db417e42b2.js} +6 -6
  5. package/dist/excalidraw.development.js +3257 -1444
  6. package/dist/excalidraw.production.min.js +1 -1
  7. package/dist/excalidraw.production.min.js.LICENSE.txt +20 -0
  8. package/main.js +1 -8
  9. package/package.json +9 -4
  10. package/types/actions/actionAddToLibrary.d.ts +124 -64
  11. package/types/actions/actionAlign.d.ts +33 -40
  12. package/types/actions/actionBoundText.d.ts +182 -25
  13. package/types/actions/actionCanvas.d.ts +754 -220
  14. package/types/actions/actionClipboard.d.ts +236 -115
  15. package/types/actions/actionDeleteSelected.d.ts +133 -72
  16. package/types/actions/actionDistribute.d.ts +11 -16
  17. package/types/actions/actionDuplicateSelection.d.ts +4 -7
  18. package/types/actions/actionElementLock.d.ts +271 -0
  19. package/types/actions/actionExport.d.ts +440 -277
  20. package/types/actions/actionFinalize.d.ts +85 -51
  21. package/types/actions/actionFlip.d.ts +8 -11
  22. package/types/actions/actionFrame.d.ts +423 -0
  23. package/types/actions/actionGroup.d.ts +252 -19
  24. package/types/actions/actionHistory.d.ts +1 -1
  25. package/types/actions/actionLinearEditor.d.ts +44 -24
  26. package/types/actions/actionMenu.d.ts +132 -79
  27. package/types/actions/actionNavigate.d.ts +2 -3
  28. package/types/actions/actionProperties.d.ts +569 -334
  29. package/types/actions/actionSelectAll.d.ts +123 -4
  30. package/types/actions/actionStyles.d.ts +46 -27
  31. package/types/actions/actionToggleGridMode.d.ts +46 -25
  32. package/types/actions/{actionToggleLock.d.ts → actionToggleObjectsSnapMode.d.ts} +56 -35
  33. package/types/actions/actionToggleStats.d.ts +45 -25
  34. package/types/actions/actionToggleViewMode.d.ts +46 -25
  35. package/types/actions/actionToggleZenMode.d.ts +46 -25
  36. package/types/actions/actionZindex.d.ts +16 -24
  37. package/types/actions/index.d.ts +2 -1
  38. package/types/actions/manager.d.ts +3 -2
  39. package/types/actions/shortcuts.d.ts +2 -1
  40. package/types/actions/types.d.ts +16 -13
  41. package/types/appState.d.ts +27 -28
  42. package/types/charts.d.ts +2 -2
  43. package/types/clients.d.ts +5 -6
  44. package/types/clipboard.d.ts +9 -3
  45. package/types/colors.d.ts +60 -5
  46. package/types/components/Actions.d.ts +7 -12
  47. package/types/components/ActiveConfirmDialog.d.ts +4 -0
  48. package/types/components/App.d.ts +102 -86
  49. package/types/components/Avatar.d.ts +1 -2
  50. package/types/components/BraveMeasureTextError.d.ts +2 -0
  51. package/types/components/Button.d.ts +16 -0
  52. package/types/components/ButtonIconSelect.d.ts +11 -3
  53. package/types/components/Card.d.ts +6 -0
  54. package/types/components/ColorPicker/ColorInput.d.ts +9 -0
  55. package/types/components/ColorPicker/ColorPicker.d.ts +19 -0
  56. package/types/components/ColorPicker/CustomColorList.d.ts +8 -0
  57. package/types/components/ColorPicker/HotkeyLabel.d.ts +8 -0
  58. package/types/components/ColorPicker/Picker.d.ts +18 -0
  59. package/types/components/ColorPicker/PickerColorList.d.ts +10 -0
  60. package/types/components/ColorPicker/PickerHeading.d.ts +5 -0
  61. package/types/components/ColorPicker/ShadeList.d.ts +8 -0
  62. package/types/components/ColorPicker/TopPicks.d.ts +9 -0
  63. package/types/components/ColorPicker/colorPickerUtils.d.ts +21 -0
  64. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +20 -0
  65. package/types/components/ContextMenu.d.ts +9 -22
  66. package/types/components/DefaultSidebar.d.ts +29 -0
  67. package/types/components/Dialog.d.ts +3 -4
  68. package/types/components/ErrorDialog.d.ts +3 -2
  69. package/types/components/ExcalidrawLogo.d.ts +15 -0
  70. package/types/components/EyeDropper.d.ts +28 -0
  71. package/types/components/FilledButton.d.ts +17 -0
  72. package/types/components/FixedSideContainer.d.ts +1 -1
  73. package/types/components/HandButton.d.ts +10 -0
  74. package/types/components/HelpButton.d.ts +1 -2
  75. package/types/components/HintViewer.d.ts +4 -5
  76. package/types/components/HomeButton.d.ts +1 -1
  77. package/types/components/ImageExportDialog.d.ts +8 -13
  78. package/types/components/Island.d.ts +1 -1
  79. package/types/components/JSONExportDialog.d.ts +7 -5
  80. package/types/components/LaserTool/LaserPathManager.d.ts +28 -0
  81. package/types/components/LaserTool/LaserPointerButton.d.ts +10 -0
  82. package/types/components/LaserTool/LaserTool.d.ts +7 -0
  83. package/types/components/LayerUI.d.ts +11 -19
  84. package/types/components/LibraryMenu.d.ts +13 -14
  85. package/types/components/LibraryMenuBrowseButton.d.ts +2 -2
  86. package/types/components/LibraryMenuControlButtons.d.ts +9 -0
  87. package/types/components/LibraryMenuHeaderContent.d.ts +10 -5
  88. package/types/components/LibraryMenuItems.d.ts +6 -7
  89. package/types/components/LibraryMenuSection.d.ts +22 -0
  90. package/types/components/LibraryUnit.d.ts +6 -3
  91. package/types/components/LoadingMessage.d.ts +0 -1
  92. package/types/components/LockButton.d.ts +1 -2
  93. package/types/components/MobileMenu.d.ts +9 -15
  94. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
  95. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
  96. package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
  97. package/types/components/PasteChartDialog.d.ts +4 -5
  98. package/types/components/PenModeButton.d.ts +1 -1
  99. package/types/components/Popover.d.ts +1 -1
  100. package/types/components/ProjectName.d.ts +2 -1
  101. package/types/components/PublishLibrary.d.ts +2 -2
  102. package/types/components/RadioGroup.d.ts +12 -0
  103. package/types/components/Section.d.ts +1 -1
  104. package/types/components/Sidebar/Sidebar.d.ts +66 -63
  105. package/types/components/Sidebar/SidebarHeader.d.ts +6 -19
  106. package/types/components/Sidebar/SidebarTab.d.ts +8 -0
  107. package/types/components/Sidebar/SidebarTabTrigger.d.ts +9 -0
  108. package/types/components/Sidebar/SidebarTabTriggers.d.ts +6 -0
  109. package/types/components/Sidebar/SidebarTabs.d.ts +6 -0
  110. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -0
  111. package/types/components/Sidebar/common.d.ts +24 -7
  112. package/types/components/Spinner.d.ts +2 -1
  113. package/types/components/Stack.d.ts +4 -3
  114. package/types/components/Stats.d.ts +3 -3
  115. package/types/components/Switch.d.ts +9 -0
  116. package/types/components/ToolButton.d.ts +6 -5
  117. package/types/components/Tooltip.d.ts +1 -1
  118. package/types/components/Trans.d.ts +9 -0
  119. package/types/components/UserList.d.ts +0 -2
  120. package/types/components/canvases/InteractiveCanvas.d.ts +27 -0
  121. package/types/components/canvases/StaticCanvas.d.ts +18 -0
  122. package/types/components/canvases/index.d.ts +3 -0
  123. package/types/components/dropdownMenu/DropdownMenu.d.ts +70 -0
  124. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +15 -0
  125. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
  126. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +13 -0
  127. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +6 -0
  128. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -0
  129. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +14 -0
  130. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
  131. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -0
  132. package/types/components/dropdownMenu/common.d.ts +6 -0
  133. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
  134. package/types/components/footer/Footer.d.ts +12 -0
  135. package/types/components/footer/FooterCenter.d.ts +8 -0
  136. package/types/components/hoc/withInternalFallback.d.ts +4 -0
  137. package/types/components/icons.d.ts +17 -2
  138. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -0
  139. package/types/components/main-menu/DefaultItems.d.ts +47 -0
  140. package/types/components/main-menu/MainMenu.d.ts +64 -0
  141. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +57 -0
  142. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
  143. package/types/components/welcome-screen/WelcomeScreen.d.ts +84 -0
  144. package/types/constants.d.ts +105 -18
  145. package/types/context/tunnels.d.ts +19 -0
  146. package/types/context/ui-appState.d.ts +4 -0
  147. package/types/cursor.d.ts +5 -0
  148. package/types/data/blob.d.ts +5 -3
  149. package/types/data/encode.d.ts +1 -1
  150. package/types/data/filesystem.d.ts +2 -1
  151. package/types/data/index.d.ts +1 -1
  152. package/types/data/library.d.ts +3 -45
  153. package/types/data/restore.d.ts +10 -4
  154. package/types/data/transform.d.ts +73 -0
  155. package/types/data/types.d.ts +3 -5
  156. package/types/data/url.d.ts +7 -0
  157. package/types/element/Hyperlink.d.ts +57 -36
  158. package/types/element/binding.d.ts +4 -3
  159. package/types/element/bounds.d.ts +41 -10
  160. package/types/element/collision.d.ts +7 -7
  161. package/types/element/dragElements.d.ts +12 -2
  162. package/types/element/embeddable.d.ts +153 -0
  163. package/types/element/image.d.ts +11 -1
  164. package/types/element/index.d.ts +3 -2
  165. package/types/element/linearElementEditor.d.ts +77 -30
  166. package/types/element/mutateElement.d.ts +3 -2
  167. package/types/element/newElement.d.ts +48 -15
  168. package/types/element/resizeElements.d.ts +3 -3
  169. package/types/element/resizeTest.d.ts +2 -1
  170. package/types/element/showSelectedShapeActions.d.ts +2 -2
  171. package/types/element/sizeHelpers.d.ts +8 -1
  172. package/types/element/sortElements.d.ts +2 -0
  173. package/types/element/textElement.d.ts +57 -9
  174. package/types/element/textWysiwyg.d.ts +7 -2
  175. package/types/element/transformHandles.d.ts +15 -8
  176. package/types/element/typeChecks.d.ts +14 -2
  177. package/types/element/types.d.ts +66 -35
  178. package/types/emitter.d.ts +1 -2
  179. package/types/errors.d.ts +1 -1
  180. package/types/frame.d.ts +46 -0
  181. package/types/ga.d.ts +5 -5
  182. package/types/groups.d.ts +15 -11
  183. package/types/history.d.ts +3 -3
  184. package/types/hooks/useCreatePortalContainer.d.ts +4 -0
  185. package/types/hooks/useLibraryItemSvg.d.ts +11 -0
  186. package/types/hooks/useOutsideClick.d.ts +19 -2
  187. package/types/hooks/useScrollPosition.d.ts +1 -0
  188. package/types/hooks/useStable.d.ts +1 -0
  189. package/types/hooks/useTransition.d.ts +2 -0
  190. package/types/i18n.d.ts +11 -2
  191. package/types/jotai.d.ts +20 -108
  192. package/types/keys.d.ts +7 -4
  193. package/types/math.d.ts +7 -1
  194. package/types/packages/bbox.d.ts +11 -0
  195. package/types/packages/excalidraw/example/App.d.ts +7 -1
  196. package/types/packages/excalidraw/example/CustomFooter.d.ts +5 -0
  197. package/types/packages/excalidraw/example/MobileFooter.d.ts +5 -0
  198. package/types/packages/excalidraw/example/initialData.d.ts +182 -64
  199. package/types/packages/excalidraw/index.d.ts +22 -4
  200. package/types/packages/excalidraw/main.d.ts +3 -1
  201. package/types/packages/excalidraw/webpack.dev.config.d.ts +5 -2
  202. package/types/packages/excalidraw/webpack.prod.config.d.ts +3 -0
  203. package/types/packages/utils.d.ts +30 -24
  204. package/types/packages/withinBounds.d.ts +19 -0
  205. package/types/renderer/renderElement.d.ts +13 -22
  206. package/types/renderer/renderScene.d.ts +19 -29
  207. package/types/renderer/renderSnaps.d.ts +2 -0
  208. package/types/renderer/roundRect.d.ts +1 -1
  209. package/types/scene/Fonts.d.ts +21 -0
  210. package/types/scene/Renderer.d.ts +25 -0
  211. package/types/scene/Scene.d.ts +42 -5
  212. package/types/scene/Shape.d.ts +12 -0
  213. package/types/scene/ShapeCache.d.ts +20 -0
  214. package/types/scene/comparisons.d.ts +2 -4
  215. package/types/scene/export.d.ts +183 -10
  216. package/types/scene/index.d.ts +1 -1
  217. package/types/scene/scroll.d.ts +1 -1
  218. package/types/scene/scrollbars.d.ts +2 -6
  219. package/types/scene/selection.d.ts +27 -6
  220. package/types/scene/types.d.ts +70 -26
  221. package/types/snapping.d.ts +108 -0
  222. package/types/types.d.ts +227 -91
  223. package/types/utility-types.d.ts +24 -0
  224. package/types/utils.d.ts +75 -14
  225. package/types/zindex.d.ts +4 -4
  226. package/types/components/ActiveFile.d.ts +0 -7
  227. package/types/components/ClearCanvas.d.ts +0 -4
  228. package/types/components/CollabButton.d.ts +0 -6
  229. package/types/components/ColorPicker.d.ts +0 -14
  230. package/types/components/Footer.d.ts +0 -10
  231. package/types/components/LibraryButton.d.ts +0 -8
  232. package/types/components/MenuItem.d.ts +0 -11
  233. package/types/components/MenuUtils.d.ts +0 -1
  234. package/types/components/SingleLibraryItem.d.ts +0 -10
  235. package/types/components/WelcomeScreen.d.ts +0 -10
  236. package/types/components/WelcomeScreenDecor.d.ts +0 -6
  237. package/types/components/hoc/withUpstreamOverride.d.ts +0 -10
  238. /package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js.LICENSE.txt → vendor-d415b28e9024dee4bb1b.js.LICENSE.txt} +0 -0
  239. /package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.d.ts → vendor-d415b28e9024dee4bb1b.d.ts} +0 -0
  240. /package/types/packages/excalidraw/dist/excalidraw-assets-dev/{vendor-e6df8519da951026ff69.d.ts → vendor-a14cd58fa2db417e42b2.d.ts} +0 -0
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const actionCopy: {
3
2
  name: "copy";
4
3
  trackEvent: {
@@ -7,6 +6,21 @@ export declare const actionCopy: {
7
6
  perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => {
8
7
  commitToHistory: false;
9
8
  };
9
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
10
+ contextItemLabel: string;
11
+ keyTest: undefined;
12
+ } & {
13
+ keyTest?: undefined;
14
+ };
15
+ export declare const actionPaste: {
16
+ name: "paste";
17
+ trackEvent: {
18
+ category: "element";
19
+ };
20
+ perform: (elements: any, appStates: any, data: any, app: import("../types").AppClassProperties) => {
21
+ commitToHistory: false;
22
+ };
23
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
10
24
  contextItemLabel: string;
11
25
  keyTest: undefined;
12
26
  } & {
@@ -21,9 +35,18 @@ export declare const actionCut: {
21
35
  elements: import("../element/types").ExcalidrawElement[];
22
36
  appState: {
23
37
  editingLinearElement: null;
38
+ contextMenu: {
39
+ items: import("../components/ContextMenu").ContextMenuItems;
40
+ top: number;
41
+ left: number;
42
+ } | null;
24
43
  showWelcomeScreen: boolean;
25
44
  isLoading: boolean;
26
- errorMessage: string | null;
45
+ errorMessage: import("react").ReactNode;
46
+ activeEmbeddable: {
47
+ element: import("../element/types").NonDeletedExcalidrawElement;
48
+ state: "active" | "hover";
49
+ } | null;
27
50
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
28
51
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
29
52
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -31,18 +54,20 @@ export declare const actionCut: {
31
54
  isBindingEnabled: boolean;
32
55
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
33
56
  suggestedBindings: import("../element/binding").SuggestedBinding[];
57
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
58
+ frameRendering: {
59
+ enabled: boolean;
60
+ name: boolean;
61
+ outline: boolean;
62
+ clip: boolean;
63
+ };
64
+ editingFrame: string | null;
65
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
34
66
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
35
67
  activeTool: {
36
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
37
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
38
- locked: boolean;
39
- customType: null;
40
- } | {
41
- type: "custom";
42
- customType: string;
43
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
68
+ lastActiveTool: import("../types").ActiveTool | null;
44
69
  locked: boolean;
45
- };
70
+ } & import("../types").ActiveTool;
46
71
  penMode: boolean;
47
72
  penDetected: boolean;
48
73
  exportBackground: boolean;
@@ -59,10 +84,9 @@ export declare const actionCut: {
59
84
  currentItemFontFamily: number;
60
85
  currentItemFontSize: number;
61
86
  currentItemTextAlign: string;
62
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
63
87
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
64
88
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
65
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
89
+ currentItemRoundness: import("../element/types").StrokeRoundness;
66
90
  viewBackgroundColor: string;
67
91
  scrollX: number;
68
92
  scrollY: number;
@@ -75,17 +99,21 @@ export declare const actionCut: {
75
99
  value: import("../types").NormalizedZoomValue;
76
100
  }>;
77
101
  openMenu: "canvas" | "shape" | null;
78
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
79
- openSidebar: "library" | "customSidebar" | null;
80
- openDialog: "imageExport" | "help" | null;
81
- isSidebarDocked: boolean;
102
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
103
+ openSidebar: {
104
+ name: string;
105
+ tab?: string | undefined;
106
+ } | null;
107
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
108
+ defaultSidebarDockedPreference: boolean;
82
109
  lastPointerDownWith: import("../element/types").PointerType;
83
- selectedElementIds: {
84
- [id: string]: boolean;
85
- };
110
+ selectedElementIds: Readonly<{
111
+ [id: string]: true;
112
+ }>;
86
113
  previousSelectedElementIds: {
87
- [id: string]: boolean;
114
+ [id: string]: true;
88
115
  };
116
+ selectedElementsAreBeingDragged: boolean;
89
117
  shouldCacheIgnoreZoom: boolean;
90
118
  toast: {
91
119
  message: string;
@@ -93,7 +121,7 @@ export declare const actionCut: {
93
121
  duration?: number | undefined;
94
122
  } | null;
95
123
  zenModeEnabled: boolean;
96
- theme: string;
124
+ theme: import("../element/types").Theme;
97
125
  gridSize: number | null;
98
126
  viewModeEnabled: boolean;
99
127
  selectedGroupIds: {
@@ -116,8 +144,14 @@ export declare const actionCut: {
116
144
  data: import("../charts").Spreadsheet;
117
145
  };
118
146
  pendingImageElementId: string | null;
119
- showHyperlinkPopup: false | "info" | "editor";
147
+ showHyperlinkPopup: false | "editor" | "info";
120
148
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
149
+ snapLines: readonly import("../snapping").SnapLine[];
150
+ originSnapOffset: {
151
+ x: number;
152
+ y: number;
153
+ } | null;
154
+ objectsSnapModeEnabled: boolean;
121
155
  };
122
156
  commitToHistory: false;
123
157
  } | {
@@ -133,6 +167,15 @@ export declare const actionCut: {
133
167
  pointerDownState: Readonly<{
134
168
  prevSelectedPointsIndices: readonly number[] | null;
135
169
  lastClickedPoint: number;
170
+ origin: Readonly<{
171
+ x: number;
172
+ y: number;
173
+ }> | null;
174
+ segmentMidpoint: {
175
+ value: readonly [number, number] | null;
176
+ index: number | null;
177
+ added: boolean;
178
+ };
136
179
  }>;
137
180
  isDragging: boolean;
138
181
  lastUncommittedPoint: readonly [number, number] | null;
@@ -143,9 +186,18 @@ export declare const actionCut: {
143
186
  hoverPointIndex: number;
144
187
  segmentMidPointHoveredCoords: readonly [number, number] | null;
145
188
  };
189
+ contextMenu: {
190
+ items: import("../components/ContextMenu").ContextMenuItems;
191
+ top: number;
192
+ left: number;
193
+ } | null;
146
194
  showWelcomeScreen: boolean;
147
195
  isLoading: boolean;
148
- errorMessage: string | null;
196
+ errorMessage: import("react").ReactNode;
197
+ activeEmbeddable: {
198
+ element: import("../element/types").NonDeletedExcalidrawElement;
199
+ state: "active" | "hover";
200
+ } | null;
149
201
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
150
202
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
151
203
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -153,18 +205,20 @@ export declare const actionCut: {
153
205
  isBindingEnabled: boolean;
154
206
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
155
207
  suggestedBindings: import("../element/binding").SuggestedBinding[];
208
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
209
+ frameRendering: {
210
+ enabled: boolean;
211
+ name: boolean;
212
+ outline: boolean;
213
+ clip: boolean;
214
+ };
215
+ editingFrame: string | null;
216
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
156
217
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
157
218
  activeTool: {
158
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
159
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
219
+ lastActiveTool: import("../types").ActiveTool | null;
160
220
  locked: boolean;
161
- customType: null;
162
- } | {
163
- type: "custom";
164
- customType: string;
165
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
166
- locked: boolean;
167
- };
221
+ } & import("../types").ActiveTool;
168
222
  penMode: boolean;
169
223
  penDetected: boolean;
170
224
  exportBackground: boolean;
@@ -181,10 +235,9 @@ export declare const actionCut: {
181
235
  currentItemFontFamily: number;
182
236
  currentItemFontSize: number;
183
237
  currentItemTextAlign: string;
184
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
185
238
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
186
239
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
187
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
240
+ currentItemRoundness: import("../element/types").StrokeRoundness;
188
241
  viewBackgroundColor: string;
189
242
  scrollX: number;
190
243
  scrollY: number;
@@ -197,17 +250,21 @@ export declare const actionCut: {
197
250
  value: import("../types").NormalizedZoomValue;
198
251
  }>;
199
252
  openMenu: "canvas" | "shape" | null;
200
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
201
- openSidebar: "library" | "customSidebar" | null;
202
- openDialog: "imageExport" | "help" | null;
203
- isSidebarDocked: boolean;
253
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
254
+ openSidebar: {
255
+ name: string;
256
+ tab?: string | undefined;
257
+ } | null;
258
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
259
+ defaultSidebarDockedPreference: boolean;
204
260
  lastPointerDownWith: import("../element/types").PointerType;
205
- selectedElementIds: {
206
- [id: string]: boolean;
207
- };
261
+ selectedElementIds: Readonly<{
262
+ [id: string]: true;
263
+ }>;
208
264
  previousSelectedElementIds: {
209
- [id: string]: boolean;
265
+ [id: string]: true;
210
266
  };
267
+ selectedElementsAreBeingDragged: boolean;
211
268
  shouldCacheIgnoreZoom: boolean;
212
269
  toast: {
213
270
  message: string;
@@ -215,7 +272,7 @@ export declare const actionCut: {
215
272
  duration?: number | undefined;
216
273
  } | null;
217
274
  zenModeEnabled: boolean;
218
- theme: string;
275
+ theme: import("../element/types").Theme;
219
276
  gridSize: number | null;
220
277
  viewModeEnabled: boolean;
221
278
  selectedGroupIds: {
@@ -238,35 +295,50 @@ export declare const actionCut: {
238
295
  data: import("../charts").Spreadsheet;
239
296
  };
240
297
  pendingImageElementId: string | null;
241
- showHyperlinkPopup: false | "info" | "editor";
298
+ showHyperlinkPopup: false | "editor" | "info";
242
299
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
300
+ snapLines: readonly import("../snapping").SnapLine[];
301
+ originSnapOffset: {
302
+ x: number;
303
+ y: number;
304
+ } | null;
305
+ objectsSnapModeEnabled: boolean;
243
306
  };
244
307
  commitToHistory: true;
245
308
  } | {
246
309
  elements: import("../element/types").ExcalidrawElement[];
247
310
  appState: {
248
311
  activeTool: {
249
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
250
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
312
+ lastActiveTool: import("../types").ActiveTool | null;
251
313
  locked: boolean;
252
- customType: null;
253
- } | {
254
- type: "custom";
255
- customType: string;
256
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
257
- locked: boolean;
258
- };
314
+ } & import("../types").ActiveTool;
259
315
  multiElement: null;
316
+ activeEmbeddable: null;
260
317
  selectedElementIds: {};
318
+ selectedGroupIds: {};
319
+ contextMenu: {
320
+ items: import("../components/ContextMenu").ContextMenuItems;
321
+ top: number;
322
+ left: number;
323
+ } | null;
261
324
  showWelcomeScreen: boolean;
262
325
  isLoading: boolean;
263
- errorMessage: string | null;
326
+ errorMessage: import("react").ReactNode;
264
327
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
265
328
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
266
329
  selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
267
330
  isBindingEnabled: boolean;
268
331
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
269
332
  suggestedBindings: import("../element/binding").SuggestedBinding[];
333
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
334
+ frameRendering: {
335
+ enabled: boolean;
336
+ name: boolean;
337
+ outline: boolean;
338
+ clip: boolean;
339
+ };
340
+ editingFrame: string | null;
341
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
270
342
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
271
343
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
272
344
  penMode: boolean;
@@ -285,10 +357,9 @@ export declare const actionCut: {
285
357
  currentItemFontFamily: number;
286
358
  currentItemFontSize: number;
287
359
  currentItemTextAlign: string;
288
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
289
360
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
290
361
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
291
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
362
+ currentItemRoundness: import("../element/types").StrokeRoundness;
292
363
  viewBackgroundColor: string;
293
364
  scrollX: number;
294
365
  scrollY: number;
@@ -301,14 +372,18 @@ export declare const actionCut: {
301
372
  value: import("../types").NormalizedZoomValue;
302
373
  }>;
303
374
  openMenu: "canvas" | "shape" | null;
304
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
305
- openSidebar: "library" | "customSidebar" | null;
306
- openDialog: "imageExport" | "help" | null;
307
- isSidebarDocked: boolean;
375
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
376
+ openSidebar: {
377
+ name: string;
378
+ tab?: string | undefined;
379
+ } | null;
380
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
381
+ defaultSidebarDockedPreference: boolean;
308
382
  lastPointerDownWith: import("../element/types").PointerType;
309
383
  previousSelectedElementIds: {
310
- [id: string]: boolean;
384
+ [id: string]: true;
311
385
  };
386
+ selectedElementsAreBeingDragged: boolean;
312
387
  shouldCacheIgnoreZoom: boolean;
313
388
  toast: {
314
389
  message: string;
@@ -316,12 +391,9 @@ export declare const actionCut: {
316
391
  duration?: number | undefined;
317
392
  } | null;
318
393
  zenModeEnabled: boolean;
319
- theme: string;
394
+ theme: import("../element/types").Theme;
320
395
  gridSize: number | null;
321
396
  viewModeEnabled: boolean;
322
- selectedGroupIds: {
323
- [groupId: string]: boolean;
324
- };
325
397
  editingGroupId: string | null;
326
398
  width: number;
327
399
  height: number;
@@ -339,15 +411,22 @@ export declare const actionCut: {
339
411
  data: import("../charts").Spreadsheet;
340
412
  };
341
413
  pendingImageElementId: string | null;
342
- showHyperlinkPopup: false | "info" | "editor";
414
+ showHyperlinkPopup: false | "editor" | "info";
343
415
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
416
+ snapLines: readonly import("../snapping").SnapLine[];
417
+ originSnapOffset: {
418
+ x: number;
419
+ y: number;
420
+ } | null;
421
+ objectsSnapModeEnabled: boolean;
344
422
  };
345
423
  commitToHistory: boolean;
346
424
  };
425
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
347
426
  contextItemLabel: string;
348
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
427
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
349
428
  } & {
350
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
429
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
351
430
  };
352
431
  export declare const actionCopyAsSvg: {
353
432
  name: "copyAsSvg";
@@ -360,8 +439,17 @@ export declare const actionCopyAsSvg: {
360
439
  } | {
361
440
  appState: {
362
441
  errorMessage: any;
442
+ contextMenu: {
443
+ items: import("../components/ContextMenu").ContextMenuItems;
444
+ top: number;
445
+ left: number;
446
+ } | null;
363
447
  showWelcomeScreen: boolean;
364
448
  isLoading: boolean;
449
+ activeEmbeddable: {
450
+ element: import("../element/types").NonDeletedExcalidrawElement;
451
+ state: "active" | "hover";
452
+ } | null;
365
453
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
366
454
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
367
455
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -369,19 +457,21 @@ export declare const actionCopyAsSvg: {
369
457
  isBindingEnabled: boolean;
370
458
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
371
459
  suggestedBindings: import("../element/binding").SuggestedBinding[];
460
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
461
+ frameRendering: {
462
+ enabled: boolean;
463
+ name: boolean;
464
+ outline: boolean;
465
+ clip: boolean;
466
+ };
467
+ editingFrame: string | null;
468
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
372
469
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
373
470
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
374
471
  activeTool: {
375
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
376
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
472
+ lastActiveTool: import("../types").ActiveTool | null;
377
473
  locked: boolean;
378
- customType: null;
379
- } | {
380
- type: "custom";
381
- customType: string;
382
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
383
- locked: boolean;
384
- };
474
+ } & import("../types").ActiveTool;
385
475
  penMode: boolean;
386
476
  penDetected: boolean;
387
477
  exportBackground: boolean;
@@ -398,10 +488,9 @@ export declare const actionCopyAsSvg: {
398
488
  currentItemFontFamily: number;
399
489
  currentItemFontSize: number;
400
490
  currentItemTextAlign: string;
401
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
402
491
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
403
492
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
404
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
493
+ currentItemRoundness: import("../element/types").StrokeRoundness;
405
494
  viewBackgroundColor: string;
406
495
  scrollX: number;
407
496
  scrollY: number;
@@ -414,17 +503,21 @@ export declare const actionCopyAsSvg: {
414
503
  value: import("../types").NormalizedZoomValue;
415
504
  }>;
416
505
  openMenu: "canvas" | "shape" | null;
417
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
418
- openSidebar: "library" | "customSidebar" | null;
419
- openDialog: "imageExport" | "help" | null;
420
- isSidebarDocked: boolean;
506
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
507
+ openSidebar: {
508
+ name: string;
509
+ tab?: string | undefined;
510
+ } | null;
511
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
512
+ defaultSidebarDockedPreference: boolean;
421
513
  lastPointerDownWith: import("../element/types").PointerType;
422
- selectedElementIds: {
423
- [id: string]: boolean;
424
- };
514
+ selectedElementIds: Readonly<{
515
+ [id: string]: true;
516
+ }>;
425
517
  previousSelectedElementIds: {
426
- [id: string]: boolean;
518
+ [id: string]: true;
427
519
  };
520
+ selectedElementsAreBeingDragged: boolean;
428
521
  shouldCacheIgnoreZoom: boolean;
429
522
  toast: {
430
523
  message: string;
@@ -432,7 +525,7 @@ export declare const actionCopyAsSvg: {
432
525
  duration?: number | undefined;
433
526
  } | null;
434
527
  zenModeEnabled: boolean;
435
- theme: string;
528
+ theme: import("../element/types").Theme;
436
529
  gridSize: number | null;
437
530
  viewModeEnabled: boolean;
438
531
  selectedGroupIds: {
@@ -455,11 +548,18 @@ export declare const actionCopyAsSvg: {
455
548
  data: import("../charts").Spreadsheet;
456
549
  };
457
550
  pendingImageElementId: string | null;
458
- showHyperlinkPopup: false | "info" | "editor";
551
+ showHyperlinkPopup: false | "editor" | "info";
459
552
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
553
+ snapLines: readonly import("../snapping").SnapLine[];
554
+ originSnapOffset: {
555
+ x: number;
556
+ y: number;
557
+ } | null;
558
+ objectsSnapModeEnabled: boolean;
460
559
  };
461
560
  commitToHistory: false;
462
561
  }>;
562
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[]) => boolean;
463
563
  contextItemLabel: string;
464
564
  } & {
465
565
  keyTest?: undefined;
@@ -475,8 +575,17 @@ export declare const actionCopyAsPng: {
475
575
  } | {
476
576
  appState: {
477
577
  errorMessage: any;
578
+ contextMenu: {
579
+ items: import("../components/ContextMenu").ContextMenuItems;
580
+ top: number;
581
+ left: number;
582
+ } | null;
478
583
  showWelcomeScreen: boolean;
479
584
  isLoading: boolean;
585
+ activeEmbeddable: {
586
+ element: import("../element/types").NonDeletedExcalidrawElement;
587
+ state: "active" | "hover";
588
+ } | null;
480
589
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
481
590
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
482
591
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -484,19 +593,21 @@ export declare const actionCopyAsPng: {
484
593
  isBindingEnabled: boolean;
485
594
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
486
595
  suggestedBindings: import("../element/binding").SuggestedBinding[];
596
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
597
+ frameRendering: {
598
+ enabled: boolean;
599
+ name: boolean;
600
+ outline: boolean;
601
+ clip: boolean;
602
+ };
603
+ editingFrame: string | null;
604
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
487
605
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
488
606
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
489
607
  activeTool: {
490
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
491
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
608
+ lastActiveTool: import("../types").ActiveTool | null;
492
609
  locked: boolean;
493
- customType: null;
494
- } | {
495
- type: "custom";
496
- customType: string;
497
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
498
- locked: boolean;
499
- };
610
+ } & import("../types").ActiveTool;
500
611
  penMode: boolean;
501
612
  penDetected: boolean;
502
613
  exportBackground: boolean;
@@ -513,10 +624,9 @@ export declare const actionCopyAsPng: {
513
624
  currentItemFontFamily: number;
514
625
  currentItemFontSize: number;
515
626
  currentItemTextAlign: string;
516
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
517
627
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
518
628
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
519
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
629
+ currentItemRoundness: import("../element/types").StrokeRoundness;
520
630
  viewBackgroundColor: string;
521
631
  scrollX: number;
522
632
  scrollY: number;
@@ -529,17 +639,21 @@ export declare const actionCopyAsPng: {
529
639
  value: import("../types").NormalizedZoomValue;
530
640
  }>;
531
641
  openMenu: "canvas" | "shape" | null;
532
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
533
- openSidebar: "library" | "customSidebar" | null;
534
- openDialog: "imageExport" | "help" | null;
535
- isSidebarDocked: boolean;
642
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
643
+ openSidebar: {
644
+ name: string;
645
+ tab?: string | undefined;
646
+ } | null;
647
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
648
+ defaultSidebarDockedPreference: boolean;
536
649
  lastPointerDownWith: import("../element/types").PointerType;
537
- selectedElementIds: {
538
- [id: string]: boolean;
539
- };
650
+ selectedElementIds: Readonly<{
651
+ [id: string]: true;
652
+ }>;
540
653
  previousSelectedElementIds: {
541
- [id: string]: boolean;
654
+ [id: string]: true;
542
655
  };
656
+ selectedElementsAreBeingDragged: boolean;
543
657
  shouldCacheIgnoreZoom: boolean;
544
658
  toast: {
545
659
  message: string;
@@ -547,7 +661,7 @@ export declare const actionCopyAsPng: {
547
661
  duration?: number | undefined;
548
662
  } | null;
549
663
  zenModeEnabled: boolean;
550
- theme: string;
664
+ theme: import("../element/types").Theme;
551
665
  gridSize: number | null;
552
666
  viewModeEnabled: boolean;
553
667
  selectedGroupIds: {
@@ -570,25 +684,32 @@ export declare const actionCopyAsPng: {
570
684
  data: import("../charts").Spreadsheet;
571
685
  };
572
686
  pendingImageElementId: string | null;
573
- showHyperlinkPopup: false | "info" | "editor";
687
+ showHyperlinkPopup: false | "editor" | "info";
574
688
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
689
+ snapLines: readonly import("../snapping").SnapLine[];
690
+ originSnapOffset: {
691
+ x: number;
692
+ y: number;
693
+ } | null;
694
+ objectsSnapModeEnabled: boolean;
575
695
  };
576
696
  commitToHistory: false;
577
697
  }>;
698
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[]) => boolean;
578
699
  contextItemLabel: string;
579
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
700
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
580
701
  } & {
581
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
702
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
582
703
  };
583
704
  export declare const copyText: {
584
705
  name: "copyText";
585
706
  trackEvent: {
586
707
  category: "element";
587
708
  };
588
- perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
709
+ perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => {
589
710
  commitToHistory: false;
590
711
  };
591
- contextItemPredicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState) => boolean;
712
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, _: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
592
713
  contextItemLabel: string;
593
714
  } & {
594
715
  keyTest?: undefined;