@dwelle/excalidraw 0.4.0-e3bee83 → 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 (220) hide show
  1. package/CHANGELOG.md +525 -0
  2. package/README.md +18 -1820
  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 +3071 -1566
  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 +103 -55
  11. package/types/actions/actionAlign.d.ts +33 -28
  12. package/types/actions/actionBoundText.d.ts +175 -22
  13. package/types/actions/actionCanvas.d.ts +680 -170
  14. package/types/actions/actionClipboard.d.ts +174 -100
  15. package/types/actions/actionDeleteSelected.d.ts +102 -60
  16. package/types/actions/actionDistribute.d.ts +11 -12
  17. package/types/actions/actionDuplicateSelection.d.ts +3 -4
  18. package/types/actions/actionElementLock.d.ts +271 -0
  19. package/types/actions/actionExport.d.ts +363 -221
  20. package/types/actions/actionFinalize.d.ts +70 -42
  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 +250 -13
  24. package/types/actions/actionHistory.d.ts +1 -1
  25. package/types/actions/actionLinearEditor.d.ts +37 -21
  26. package/types/actions/actionMenu.d.ts +108 -62
  27. package/types/actions/actionNavigate.d.ts +1 -1
  28. package/types/actions/actionProperties.d.ts +465 -256
  29. package/types/actions/actionSelectAll.d.ts +123 -4
  30. package/types/actions/actionStyles.d.ts +39 -24
  31. package/types/actions/actionToggleGridMode.d.ts +37 -22
  32. package/types/actions/{actionToggleLock.d.ts → actionToggleObjectsSnapMode.d.ts} +49 -32
  33. package/types/actions/actionToggleStats.d.ts +37 -22
  34. package/types/actions/actionToggleViewMode.d.ts +37 -22
  35. package/types/actions/actionToggleZenMode.d.ts +37 -22
  36. package/types/actions/actionZindex.d.ts +12 -12
  37. package/types/actions/index.d.ts +2 -1
  38. package/types/actions/manager.d.ts +1 -1
  39. package/types/actions/shortcuts.d.ts +2 -1
  40. package/types/actions/types.d.ts +11 -9
  41. package/types/appState.d.ts +18 -18
  42. package/types/charts.d.ts +2 -2
  43. package/types/clients.d.ts +5 -6
  44. package/types/clipboard.d.ts +8 -7
  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 +93 -35
  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 +3 -2
  52. package/types/components/ButtonIconSelect.d.ts +11 -3
  53. package/types/components/Card.d.ts +0 -1
  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 +3 -3
  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 +5 -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 +9 -15
  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 -28
  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 +8 -11
  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/canvases/InteractiveCanvas.d.ts +27 -0
  120. package/types/components/canvases/StaticCanvas.d.ts +18 -0
  121. package/types/components/canvases/index.d.ts +3 -0
  122. package/types/components/dropdownMenu/DropdownMenu.d.ts +15 -9
  123. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +7 -3
  124. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +4 -4
  125. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -1
  126. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +4 -2
  127. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -2
  128. package/types/components/dropdownMenu/common.d.ts +6 -0
  129. package/types/components/footer/Footer.d.ts +4 -5
  130. package/types/components/hoc/withInternalFallback.d.ts +4 -0
  131. package/types/components/icons.d.ts +16 -1
  132. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -1
  133. package/types/components/main-menu/MainMenu.d.ts +22 -13
  134. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -1
  135. package/types/components/welcome-screen/WelcomeScreen.d.ts +2 -3
  136. package/types/constants.d.ts +94 -10
  137. package/types/context/tunnels.d.ts +19 -0
  138. package/types/context/ui-appState.d.ts +4 -0
  139. package/types/cursor.d.ts +5 -0
  140. package/types/data/blob.d.ts +5 -3
  141. package/types/data/encode.d.ts +1 -1
  142. package/types/data/filesystem.d.ts +2 -1
  143. package/types/data/library.d.ts +3 -45
  144. package/types/data/restore.d.ts +10 -4
  145. package/types/data/transform.d.ts +73 -0
  146. package/types/data/types.d.ts +3 -5
  147. package/types/data/url.d.ts +7 -0
  148. package/types/element/Hyperlink.d.ts +48 -29
  149. package/types/element/binding.d.ts +4 -3
  150. package/types/element/bounds.d.ts +40 -10
  151. package/types/element/collision.d.ts +7 -7
  152. package/types/element/dragElements.d.ts +12 -2
  153. package/types/element/embeddable.d.ts +153 -0
  154. package/types/element/image.d.ts +11 -1
  155. package/types/element/index.d.ts +3 -2
  156. package/types/element/linearElementEditor.d.ts +43 -27
  157. package/types/element/mutateElement.d.ts +3 -2
  158. package/types/element/newElement.d.ts +48 -15
  159. package/types/element/resizeElements.d.ts +3 -2
  160. package/types/element/resizeTest.d.ts +2 -1
  161. package/types/element/showSelectedShapeActions.d.ts +2 -2
  162. package/types/element/sizeHelpers.d.ts +8 -1
  163. package/types/element/sortElements.d.ts +2 -0
  164. package/types/element/textElement.d.ts +43 -17
  165. package/types/element/textWysiwyg.d.ts +1 -1
  166. package/types/element/transformHandles.d.ts +16 -8
  167. package/types/element/typeChecks.d.ts +5 -2
  168. package/types/element/types.d.ts +59 -35
  169. package/types/emitter.d.ts +1 -2
  170. package/types/errors.d.ts +1 -1
  171. package/types/frame.d.ts +46 -0
  172. package/types/ga.d.ts +5 -5
  173. package/types/groups.d.ts +15 -11
  174. package/types/history.d.ts +3 -3
  175. package/types/hooks/useCreatePortalContainer.d.ts +4 -0
  176. package/types/hooks/useLibraryItemSvg.d.ts +11 -0
  177. package/types/hooks/useOutsideClick.d.ts +19 -2
  178. package/types/hooks/useScrollPosition.d.ts +1 -0
  179. package/types/hooks/useStable.d.ts +1 -0
  180. package/types/hooks/useTransition.d.ts +2 -0
  181. package/types/i18n.d.ts +11 -2
  182. package/types/jotai.d.ts +20 -108
  183. package/types/keys.d.ts +5 -4
  184. package/types/math.d.ts +5 -0
  185. package/types/packages/bbox.d.ts +11 -0
  186. package/types/packages/excalidraw/example/App.d.ts +7 -1
  187. package/types/packages/excalidraw/example/initialData.d.ts +182 -64
  188. package/types/packages/excalidraw/index.d.ts +11 -4
  189. package/types/packages/excalidraw/main.d.ts +3 -1
  190. package/types/packages/excalidraw/webpack.dev.config.d.ts +5 -2
  191. package/types/packages/excalidraw/webpack.prod.config.d.ts +3 -0
  192. package/types/packages/utils.d.ts +11 -2
  193. package/types/packages/withinBounds.d.ts +19 -0
  194. package/types/renderer/renderElement.d.ts +12 -22
  195. package/types/renderer/renderScene.d.ts +19 -27
  196. package/types/renderer/renderSnaps.d.ts +2 -0
  197. package/types/renderer/roundRect.d.ts +1 -1
  198. package/types/scene/Renderer.d.ts +25 -0
  199. package/types/scene/Scene.d.ts +27 -5
  200. package/types/scene/Shape.d.ts +12 -0
  201. package/types/scene/ShapeCache.d.ts +20 -0
  202. package/types/scene/comparisons.d.ts +0 -1
  203. package/types/scene/export.d.ts +50 -11
  204. package/types/scene/index.d.ts +1 -1
  205. package/types/scene/scroll.d.ts +1 -1
  206. package/types/scene/scrollbars.d.ts +2 -6
  207. package/types/scene/selection.d.ts +27 -6
  208. package/types/scene/types.d.ts +70 -34
  209. package/types/snapping.d.ts +108 -0
  210. package/types/types.d.ts +200 -84
  211. package/types/utility-types.d.ts +24 -0
  212. package/types/utils.d.ts +73 -29
  213. package/types/zindex.d.ts +4 -4
  214. package/types/components/ColorPicker.d.ts +0 -14
  215. package/types/components/LibraryButton.d.ts +0 -8
  216. package/types/components/SingleLibraryItem.d.ts +0 -10
  217. package/types/components/hoc/withUpstreamOverride.d.ts +0 -10
  218. /package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js.LICENSE.txt → vendor-d415b28e9024dee4bb1b.js.LICENSE.txt} +0 -0
  219. /package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.d.ts → vendor-d415b28e9024dee4bb1b.d.ts} +0 -0
  220. /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
  import { ExcalidrawElement } from "../element/types";
3
2
  import { AppState } from "../types";
4
3
  import { LinearElementEditor } from "../element/linearElementEditor";
@@ -19,7 +18,11 @@ export declare const actionDeleteSelected: {
19
18
  } | null;
20
19
  showWelcomeScreen: boolean;
21
20
  isLoading: boolean;
22
- errorMessage: string | null;
21
+ errorMessage: import("react").ReactNode;
22
+ activeEmbeddable: {
23
+ element: import("../element/types").NonDeletedExcalidrawElement;
24
+ state: "active" | "hover";
25
+ } | null;
23
26
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
24
27
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
25
28
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -27,18 +30,20 @@ export declare const actionDeleteSelected: {
27
30
  isBindingEnabled: boolean;
28
31
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
29
32
  suggestedBindings: import("../element/binding").SuggestedBinding[];
33
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
34
+ frameRendering: {
35
+ enabled: boolean;
36
+ name: boolean;
37
+ outline: boolean;
38
+ clip: boolean;
39
+ };
40
+ editingFrame: string | null;
41
+ elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
30
42
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
31
43
  activeTool: {
32
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
33
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
34
- locked: boolean;
35
- customType: null;
36
- } | {
37
- type: "custom";
38
- customType: string;
39
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
44
+ lastActiveTool: import("../types").ActiveTool | null;
40
45
  locked: boolean;
41
- };
46
+ } & import("../types").ActiveTool;
42
47
  penMode: boolean;
43
48
  penDetected: boolean;
44
49
  exportBackground: boolean;
@@ -70,17 +75,21 @@ export declare const actionDeleteSelected: {
70
75
  value: import("../types").NormalizedZoomValue;
71
76
  }>;
72
77
  openMenu: "canvas" | "shape" | null;
73
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
74
- openSidebar: "library" | "customSidebar" | null;
78
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
79
+ openSidebar: {
80
+ name: string;
81
+ tab?: string | undefined;
82
+ } | null;
75
83
  openDialog: "imageExport" | "help" | "jsonExport" | null;
76
- isSidebarDocked: boolean;
84
+ defaultSidebarDockedPreference: boolean;
77
85
  lastPointerDownWith: import("../element/types").PointerType;
78
- selectedElementIds: {
79
- [id: string]: boolean;
80
- };
86
+ selectedElementIds: Readonly<{
87
+ [id: string]: true;
88
+ }>;
81
89
  previousSelectedElementIds: {
82
- [id: string]: boolean;
90
+ [id: string]: true;
83
91
  };
92
+ selectedElementsAreBeingDragged: boolean;
84
93
  shouldCacheIgnoreZoom: boolean;
85
94
  toast: {
86
95
  message: string;
@@ -88,7 +97,7 @@ export declare const actionDeleteSelected: {
88
97
  duration?: number | undefined;
89
98
  } | null;
90
99
  zenModeEnabled: boolean;
91
- theme: string;
100
+ theme: import("../element/types").Theme;
92
101
  gridSize: number | null;
93
102
  viewModeEnabled: boolean;
94
103
  selectedGroupIds: {
@@ -111,8 +120,14 @@ export declare const actionDeleteSelected: {
111
120
  data: import("../charts").Spreadsheet;
112
121
  };
113
122
  pendingImageElementId: string | null;
114
- showHyperlinkPopup: false | "info" | "editor";
123
+ showHyperlinkPopup: false | "editor" | "info";
115
124
  selectedLinearElement: LinearElementEditor | null;
125
+ snapLines: readonly import("../snapping").SnapLine[];
126
+ originSnapOffset: {
127
+ x: number;
128
+ y: number;
129
+ } | null;
130
+ objectsSnapModeEnabled: boolean;
116
131
  };
117
132
  commitToHistory: false;
118
133
  } | {
@@ -154,7 +169,11 @@ export declare const actionDeleteSelected: {
154
169
  } | null;
155
170
  showWelcomeScreen: boolean;
156
171
  isLoading: boolean;
157
- errorMessage: string | null;
172
+ errorMessage: import("react").ReactNode;
173
+ activeEmbeddable: {
174
+ element: import("../element/types").NonDeletedExcalidrawElement;
175
+ state: "active" | "hover";
176
+ } | null;
158
177
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
159
178
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
160
179
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -162,18 +181,20 @@ export declare const actionDeleteSelected: {
162
181
  isBindingEnabled: boolean;
163
182
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
164
183
  suggestedBindings: import("../element/binding").SuggestedBinding[];
184
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
185
+ frameRendering: {
186
+ enabled: boolean;
187
+ name: boolean;
188
+ outline: boolean;
189
+ clip: boolean;
190
+ };
191
+ editingFrame: string | null;
192
+ elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
165
193
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
166
194
  activeTool: {
167
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
168
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
195
+ lastActiveTool: import("../types").ActiveTool | null;
169
196
  locked: boolean;
170
- customType: null;
171
- } | {
172
- type: "custom";
173
- customType: string;
174
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
175
- locked: boolean;
176
- };
197
+ } & import("../types").ActiveTool;
177
198
  penMode: boolean;
178
199
  penDetected: boolean;
179
200
  exportBackground: boolean;
@@ -205,17 +226,21 @@ export declare const actionDeleteSelected: {
205
226
  value: import("../types").NormalizedZoomValue;
206
227
  }>;
207
228
  openMenu: "canvas" | "shape" | null;
208
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
209
- openSidebar: "library" | "customSidebar" | null;
229
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
230
+ openSidebar: {
231
+ name: string;
232
+ tab?: string | undefined;
233
+ } | null;
210
234
  openDialog: "imageExport" | "help" | "jsonExport" | null;
211
- isSidebarDocked: boolean;
235
+ defaultSidebarDockedPreference: boolean;
212
236
  lastPointerDownWith: import("../element/types").PointerType;
213
- selectedElementIds: {
214
- [id: string]: boolean;
215
- };
237
+ selectedElementIds: Readonly<{
238
+ [id: string]: true;
239
+ }>;
216
240
  previousSelectedElementIds: {
217
- [id: string]: boolean;
241
+ [id: string]: true;
218
242
  };
243
+ selectedElementsAreBeingDragged: boolean;
219
244
  shouldCacheIgnoreZoom: boolean;
220
245
  toast: {
221
246
  message: string;
@@ -223,7 +248,7 @@ export declare const actionDeleteSelected: {
223
248
  duration?: number | undefined;
224
249
  } | null;
225
250
  zenModeEnabled: boolean;
226
- theme: string;
251
+ theme: import("../element/types").Theme;
227
252
  gridSize: number | null;
228
253
  viewModeEnabled: boolean;
229
254
  selectedGroupIds: {
@@ -246,26 +271,27 @@ export declare const actionDeleteSelected: {
246
271
  data: import("../charts").Spreadsheet;
247
272
  };
248
273
  pendingImageElementId: string | null;
249
- showHyperlinkPopup: false | "info" | "editor";
274
+ showHyperlinkPopup: false | "editor" | "info";
250
275
  selectedLinearElement: LinearElementEditor | null;
276
+ snapLines: readonly import("../snapping").SnapLine[];
277
+ originSnapOffset: {
278
+ x: number;
279
+ y: number;
280
+ } | null;
281
+ objectsSnapModeEnabled: boolean;
251
282
  };
252
283
  commitToHistory: true;
253
284
  } | {
254
285
  elements: ExcalidrawElement[];
255
286
  appState: {
256
287
  activeTool: {
257
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
258
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
288
+ lastActiveTool: import("../types").ActiveTool | null;
259
289
  locked: boolean;
260
- customType: null;
261
- } | {
262
- type: "custom";
263
- customType: string;
264
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
265
- locked: boolean;
266
- };
290
+ } & import("../types").ActiveTool;
267
291
  multiElement: null;
292
+ activeEmbeddable: null;
268
293
  selectedElementIds: {};
294
+ selectedGroupIds: {};
269
295
  contextMenu: {
270
296
  items: import("../components/ContextMenu").ContextMenuItems;
271
297
  top: number;
@@ -273,13 +299,22 @@ export declare const actionDeleteSelected: {
273
299
  } | null;
274
300
  showWelcomeScreen: boolean;
275
301
  isLoading: boolean;
276
- errorMessage: string | null;
302
+ errorMessage: import("react").ReactNode;
277
303
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
278
304
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
279
305
  selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
280
306
  isBindingEnabled: boolean;
281
307
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
282
308
  suggestedBindings: import("../element/binding").SuggestedBinding[];
309
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
310
+ frameRendering: {
311
+ enabled: boolean;
312
+ name: boolean;
313
+ outline: boolean;
314
+ clip: boolean;
315
+ };
316
+ editingFrame: string | null;
317
+ elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
283
318
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
284
319
  editingLinearElement: LinearElementEditor | null;
285
320
  penMode: boolean;
@@ -313,14 +348,18 @@ export declare const actionDeleteSelected: {
313
348
  value: import("../types").NormalizedZoomValue;
314
349
  }>;
315
350
  openMenu: "canvas" | "shape" | null;
316
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
317
- openSidebar: "library" | "customSidebar" | null;
351
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
352
+ openSidebar: {
353
+ name: string;
354
+ tab?: string | undefined;
355
+ } | null;
318
356
  openDialog: "imageExport" | "help" | "jsonExport" | null;
319
- isSidebarDocked: boolean;
357
+ defaultSidebarDockedPreference: boolean;
320
358
  lastPointerDownWith: import("../element/types").PointerType;
321
359
  previousSelectedElementIds: {
322
- [id: string]: boolean;
360
+ [id: string]: true;
323
361
  };
362
+ selectedElementsAreBeingDragged: boolean;
324
363
  shouldCacheIgnoreZoom: boolean;
325
364
  toast: {
326
365
  message: string;
@@ -328,12 +367,9 @@ export declare const actionDeleteSelected: {
328
367
  duration?: number | undefined;
329
368
  } | null;
330
369
  zenModeEnabled: boolean;
331
- theme: string;
370
+ theme: import("../element/types").Theme;
332
371
  gridSize: number | null;
333
372
  viewModeEnabled: boolean;
334
- selectedGroupIds: {
335
- [groupId: string]: boolean;
336
- };
337
373
  editingGroupId: string | null;
338
374
  width: number;
339
375
  height: number;
@@ -351,14 +387,20 @@ export declare const actionDeleteSelected: {
351
387
  data: import("../charts").Spreadsheet;
352
388
  };
353
389
  pendingImageElementId: string | null;
354
- showHyperlinkPopup: false | "info" | "editor";
390
+ showHyperlinkPopup: false | "editor" | "info";
355
391
  selectedLinearElement: LinearElementEditor | null;
392
+ snapLines: readonly import("../snapping").SnapLine[];
393
+ originSnapOffset: {
394
+ x: number;
395
+ y: number;
396
+ } | null;
397
+ objectsSnapModeEnabled: boolean;
356
398
  };
357
399
  commitToHistory: boolean;
358
400
  };
359
401
  contextItemLabel: string;
360
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
402
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean;
361
403
  PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
362
404
  } & {
363
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
405
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean) | undefined;
364
406
  };
@@ -1,33 +1,32 @@
1
- /// <reference types="react" />
2
1
  import { ExcalidrawElement } from "../element/types";
3
- import { AppState } from "../types";
2
+ import { AppClassProperties, AppState } from "../types";
4
3
  export declare const distributeHorizontally: {
5
4
  name: "distributeHorizontally";
6
5
  trackEvent: {
7
6
  category: "element";
8
7
  };
9
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
8
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
10
9
  appState: Readonly<AppState>;
11
- elements: ExcalidrawElement[];
10
+ elements: import("../scene/Scene").ExcalidrawElementsIncludingDeleted;
12
11
  commitToHistory: true;
13
12
  };
14
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
15
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
13
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
14
+ PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
16
15
  } & {
17
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
16
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
18
17
  };
19
18
  export declare const distributeVertically: {
20
19
  name: "distributeVertically";
21
20
  trackEvent: {
22
21
  category: "element";
23
22
  };
24
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
23
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
25
24
  appState: Readonly<AppState>;
26
- elements: ExcalidrawElement[];
25
+ elements: import("../scene/Scene").ExcalidrawElementsIncludingDeleted;
27
26
  commitToHistory: true;
28
27
  };
29
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
30
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
28
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
29
+ PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
31
30
  } & {
32
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
31
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
33
32
  };
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ExcalidrawElement } from "../element/types";
3
2
  import { AppState } from "../types";
4
3
  export declare const actionDuplicateSelection: {
@@ -9,14 +8,14 @@ export declare const actionDuplicateSelection: {
9
8
  perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => false | {
10
9
  commitToHistory: true;
11
10
  elements?: readonly ExcalidrawElement[] | null | undefined;
12
- appState?: MarkOptional<AppState, "width" | "height" | "offsetTop" | "offsetLeft"> | null | undefined;
11
+ appState?: import("../utility-types").MarkOptional<AppState, "width" | "height" | "offsetTop" | "offsetLeft"> | null | undefined;
13
12
  files?: import("../types").BinaryFiles | null | undefined;
14
13
  syncHistory?: boolean | undefined;
15
14
  replaceFiles?: boolean | undefined;
16
15
  };
17
16
  contextItemLabel: string;
18
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
17
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
19
18
  PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
20
19
  } & {
21
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
20
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
22
21
  };
@@ -0,0 +1,271 @@
1
+ import { ExcalidrawElement } from "../element/types";
2
+ export declare const actionToggleElementLock: {
3
+ name: "toggleElementLock";
4
+ trackEvent: {
5
+ category: "element";
6
+ };
7
+ predicate: (elements: readonly ExcalidrawElement[], appState: import("../types").AppState, _: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
8
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => false | {
9
+ elements: ExcalidrawElement[];
10
+ appState: {
11
+ selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
12
+ contextMenu: {
13
+ items: import("../components/ContextMenu").ContextMenuItems;
14
+ top: number;
15
+ left: number;
16
+ } | null;
17
+ showWelcomeScreen: boolean;
18
+ isLoading: boolean;
19
+ errorMessage: import("react").ReactNode;
20
+ activeEmbeddable: {
21
+ element: import("../element/types").NonDeletedExcalidrawElement;
22
+ state: "active" | "hover";
23
+ } | null;
24
+ draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
25
+ resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
26
+ multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
27
+ selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
28
+ isBindingEnabled: boolean;
29
+ startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
30
+ suggestedBindings: import("../element/binding").SuggestedBinding[];
31
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
32
+ frameRendering: {
33
+ enabled: boolean;
34
+ name: boolean;
35
+ outline: boolean;
36
+ clip: boolean;
37
+ };
38
+ editingFrame: string | null;
39
+ elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
40
+ editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
41
+ editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
42
+ activeTool: {
43
+ lastActiveTool: import("../types").ActiveTool | null;
44
+ locked: boolean;
45
+ } & import("../types").ActiveTool;
46
+ penMode: boolean;
47
+ penDetected: boolean;
48
+ exportBackground: boolean;
49
+ exportEmbedScene: boolean;
50
+ exportWithDarkMode: boolean;
51
+ exportScale: number;
52
+ currentItemStrokeColor: string;
53
+ currentItemBackgroundColor: string;
54
+ currentItemFillStyle: import("../element/types").FillStyle;
55
+ currentItemStrokeWidth: number;
56
+ currentItemStrokeStyle: import("../element/types").StrokeStyle;
57
+ currentItemRoughness: number;
58
+ currentItemOpacity: number;
59
+ currentItemFontFamily: number;
60
+ currentItemFontSize: number;
61
+ currentItemTextAlign: string;
62
+ currentItemStartArrowhead: import("../element/types").Arrowhead | null;
63
+ currentItemEndArrowhead: import("../element/types").Arrowhead | null;
64
+ currentItemRoundness: import("../element/types").StrokeRoundness;
65
+ viewBackgroundColor: string;
66
+ scrollX: number;
67
+ scrollY: number;
68
+ cursorButton: "up" | "down";
69
+ scrolledOutside: boolean;
70
+ name: string;
71
+ isResizing: boolean;
72
+ isRotating: boolean;
73
+ zoom: Readonly<{
74
+ value: import("../types").NormalizedZoomValue;
75
+ }>;
76
+ openMenu: "canvas" | "shape" | null;
77
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
78
+ openSidebar: {
79
+ name: string;
80
+ tab?: string | undefined;
81
+ } | null;
82
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
83
+ defaultSidebarDockedPreference: boolean;
84
+ lastPointerDownWith: import("../element/types").PointerType;
85
+ selectedElementIds: Readonly<{
86
+ [id: string]: true;
87
+ }>;
88
+ previousSelectedElementIds: {
89
+ [id: string]: true;
90
+ };
91
+ selectedElementsAreBeingDragged: boolean;
92
+ shouldCacheIgnoreZoom: boolean;
93
+ toast: {
94
+ message: string;
95
+ closable?: boolean | undefined;
96
+ duration?: number | undefined;
97
+ } | null;
98
+ zenModeEnabled: boolean;
99
+ theme: import("../element/types").Theme;
100
+ gridSize: number | null;
101
+ viewModeEnabled: boolean;
102
+ selectedGroupIds: {
103
+ [groupId: string]: boolean;
104
+ };
105
+ editingGroupId: string | null;
106
+ width: number;
107
+ height: number;
108
+ offsetTop: number;
109
+ offsetLeft: number;
110
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
111
+ collaborators: Map<string, import("../types").Collaborator>;
112
+ showStats: boolean;
113
+ currentChartType: import("../element/types").ChartType;
114
+ pasteDialog: {
115
+ shown: false;
116
+ data: null;
117
+ } | {
118
+ shown: true;
119
+ data: import("../charts").Spreadsheet;
120
+ };
121
+ pendingImageElementId: string | null;
122
+ showHyperlinkPopup: false | "editor" | "info";
123
+ snapLines: readonly import("../snapping").SnapLine[];
124
+ originSnapOffset: {
125
+ x: number;
126
+ y: number;
127
+ } | null;
128
+ objectsSnapModeEnabled: boolean;
129
+ };
130
+ commitToHistory: true;
131
+ };
132
+ contextItemLabel: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").AppState>, app: import("../types").AppClassProperties) => "labels.elementLock.unlock" | "labels.elementLock.lock" | "labels.elementLock.lockAll" | "labels.elementLock.unlockAll";
133
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean;
134
+ } & {
135
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean) | undefined;
136
+ };
137
+ export declare const actionUnlockAllElements: {
138
+ name: "unlockAllElements";
139
+ trackEvent: {
140
+ category: "canvas";
141
+ };
142
+ viewMode: false;
143
+ predicate: (elements: readonly ExcalidrawElement[]) => boolean;
144
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
145
+ elements: ExcalidrawElement[];
146
+ appState: {
147
+ selectedElementIds: {
148
+ [k: string]: true;
149
+ };
150
+ contextMenu: {
151
+ items: import("../components/ContextMenu").ContextMenuItems;
152
+ top: number;
153
+ left: number;
154
+ } | null;
155
+ showWelcomeScreen: boolean;
156
+ isLoading: boolean;
157
+ errorMessage: import("react").ReactNode;
158
+ activeEmbeddable: {
159
+ element: import("../element/types").NonDeletedExcalidrawElement;
160
+ state: "active" | "hover";
161
+ } | null;
162
+ draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
163
+ resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
164
+ multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
165
+ selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
166
+ isBindingEnabled: boolean;
167
+ startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
168
+ suggestedBindings: import("../element/binding").SuggestedBinding[];
169
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
170
+ frameRendering: {
171
+ enabled: boolean;
172
+ name: boolean;
173
+ outline: boolean;
174
+ clip: boolean;
175
+ };
176
+ editingFrame: string | null;
177
+ elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
178
+ editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
179
+ editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
180
+ activeTool: {
181
+ lastActiveTool: import("../types").ActiveTool | null;
182
+ locked: boolean;
183
+ } & import("../types").ActiveTool;
184
+ penMode: boolean;
185
+ penDetected: boolean;
186
+ exportBackground: boolean;
187
+ exportEmbedScene: boolean;
188
+ exportWithDarkMode: boolean;
189
+ exportScale: number;
190
+ currentItemStrokeColor: string;
191
+ currentItemBackgroundColor: string;
192
+ currentItemFillStyle: import("../element/types").FillStyle;
193
+ currentItemStrokeWidth: number;
194
+ currentItemStrokeStyle: import("../element/types").StrokeStyle;
195
+ currentItemRoughness: number;
196
+ currentItemOpacity: number;
197
+ currentItemFontFamily: number;
198
+ currentItemFontSize: number;
199
+ currentItemTextAlign: string;
200
+ currentItemStartArrowhead: import("../element/types").Arrowhead | null;
201
+ currentItemEndArrowhead: import("../element/types").Arrowhead | null;
202
+ currentItemRoundness: import("../element/types").StrokeRoundness;
203
+ viewBackgroundColor: string;
204
+ scrollX: number;
205
+ scrollY: number;
206
+ cursorButton: "up" | "down";
207
+ scrolledOutside: boolean;
208
+ name: string;
209
+ isResizing: boolean;
210
+ isRotating: boolean;
211
+ zoom: Readonly<{
212
+ value: import("../types").NormalizedZoomValue;
213
+ }>;
214
+ openMenu: "canvas" | "shape" | null;
215
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
216
+ openSidebar: {
217
+ name: string;
218
+ tab?: string | undefined;
219
+ } | null;
220
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
221
+ defaultSidebarDockedPreference: boolean;
222
+ lastPointerDownWith: import("../element/types").PointerType;
223
+ previousSelectedElementIds: {
224
+ [id: string]: true;
225
+ };
226
+ selectedElementsAreBeingDragged: boolean;
227
+ shouldCacheIgnoreZoom: boolean;
228
+ toast: {
229
+ message: string;
230
+ closable?: boolean | undefined;
231
+ duration?: number | undefined;
232
+ } | null;
233
+ zenModeEnabled: boolean;
234
+ theme: import("../element/types").Theme;
235
+ gridSize: number | null;
236
+ viewModeEnabled: boolean;
237
+ selectedGroupIds: {
238
+ [groupId: string]: boolean;
239
+ };
240
+ editingGroupId: string | null;
241
+ width: number;
242
+ height: number;
243
+ offsetTop: number;
244
+ offsetLeft: number;
245
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
246
+ collaborators: Map<string, import("../types").Collaborator>;
247
+ showStats: boolean;
248
+ currentChartType: import("../element/types").ChartType;
249
+ pasteDialog: {
250
+ shown: false;
251
+ data: null;
252
+ } | {
253
+ shown: true;
254
+ data: import("../charts").Spreadsheet;
255
+ };
256
+ pendingImageElementId: string | null;
257
+ showHyperlinkPopup: false | "editor" | "info";
258
+ selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
259
+ snapLines: readonly import("../snapping").SnapLine[];
260
+ originSnapOffset: {
261
+ x: number;
262
+ y: number;
263
+ } | null;
264
+ objectsSnapModeEnabled: boolean;
265
+ };
266
+ commitToHistory: true;
267
+ };
268
+ contextItemLabel: string;
269
+ } & {
270
+ keyTest?: undefined;
271
+ };