@dwelle/excalidraw 0.4.0-9db4535 → 0.4.0-9fa56da

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 (143) hide show
  1. package/CHANGELOG.md +255 -1
  2. package/README.md +4 -0
  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 +2123 -1783
  6. package/dist/excalidraw.production.min.js +1 -1
  7. package/package.json +7 -2
  8. package/types/actions/actionAddToLibrary.d.ts +84 -43
  9. package/types/actions/actionAlign.d.ts +33 -28
  10. package/types/actions/actionBoundText.d.ts +60 -32
  11. package/types/actions/actionCanvas.d.ts +436 -164
  12. package/types/actions/actionClipboard.d.ts +140 -74
  13. package/types/actions/actionDeleteSelected.d.ts +80 -42
  14. package/types/actions/actionDistribute.d.ts +11 -12
  15. package/types/actions/actionDuplicateSelection.d.ts +2 -3
  16. package/types/actions/actionElementLock.d.ts +58 -30
  17. package/types/actions/actionExport.d.ts +303 -177
  18. package/types/actions/actionFinalize.d.ts +56 -32
  19. package/types/actions/actionFlip.d.ts +8 -9
  20. package/types/actions/actionFrame.d.ts +423 -0
  21. package/types/actions/actionGroup.d.ts +250 -13
  22. package/types/actions/actionLinearEditor.d.ts +30 -17
  23. package/types/actions/actionMenu.d.ts +87 -47
  24. package/types/actions/actionNavigate.d.ts +1 -1
  25. package/types/actions/actionProperties.d.ts +370 -187
  26. package/types/actions/actionSelectAll.d.ts +123 -4
  27. package/types/actions/actionStyles.d.ts +32 -19
  28. package/types/actions/actionToggleGridMode.d.ts +30 -17
  29. package/types/actions/actionToggleObjectsSnapMode.d.ts +137 -0
  30. package/types/actions/actionToggleStats.d.ts +30 -17
  31. package/types/actions/actionToggleViewMode.d.ts +30 -17
  32. package/types/actions/actionToggleZenMode.d.ts +30 -17
  33. package/types/actions/actionZindex.d.ts +12 -12
  34. package/types/actions/index.d.ts +1 -0
  35. package/types/actions/shortcuts.d.ts +1 -1
  36. package/types/actions/types.d.ts +4 -3
  37. package/types/appState.d.ts +10 -15
  38. package/types/clients.d.ts +1 -5
  39. package/types/clipboard.d.ts +1 -0
  40. package/types/colors.d.ts +9 -9
  41. package/types/components/Actions.d.ts +4 -5
  42. package/types/components/App.d.ts +61 -28
  43. package/types/components/Avatar.d.ts +0 -1
  44. package/types/components/Button.d.ts +0 -1
  45. package/types/components/Card.d.ts +0 -1
  46. package/types/components/ColorPicker/ColorInput.d.ts +3 -1
  47. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  48. package/types/components/DefaultSidebar.d.ts +0 -1
  49. package/types/components/Dialog.d.ts +2 -1
  50. package/types/components/ExcalidrawLogo.d.ts +15 -0
  51. package/types/components/EyeDropper.d.ts +18 -8
  52. package/types/components/FilledButton.d.ts +2 -1
  53. package/types/components/HintViewer.d.ts +3 -4
  54. package/types/components/JSONExportDialog.d.ts +1 -1
  55. package/types/components/LaserTool/LaserPathManager.d.ts +28 -0
  56. package/types/components/LaserTool/LaserPointerButton.d.ts +10 -0
  57. package/types/components/LaserTool/LaserTool.d.ts +7 -0
  58. package/types/components/LayerUI.d.ts +6 -2
  59. package/types/components/LibraryMenuHeaderContent.d.ts +0 -1
  60. package/types/components/LibraryUnit.d.ts +0 -1
  61. package/types/components/LoadingMessage.d.ts +0 -1
  62. package/types/components/MobileMenu.d.ts +4 -3
  63. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
  64. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
  65. package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
  66. package/types/components/Section.d.ts +1 -1
  67. package/types/components/Sidebar/Sidebar.d.ts +1 -1
  68. package/types/components/Sidebar/SidebarTab.d.ts +0 -1
  69. package/types/components/Sidebar/SidebarTabTrigger.d.ts +0 -1
  70. package/types/components/Sidebar/SidebarTabTriggers.d.ts +0 -1
  71. package/types/components/Sidebar/SidebarTabs.d.ts +0 -1
  72. package/types/components/Stack.d.ts +2 -2
  73. package/types/components/ToolButton.d.ts +2 -1
  74. package/types/components/Trans.d.ts +2 -1
  75. package/types/components/canvases/InteractiveCanvas.d.ts +27 -0
  76. package/types/components/canvases/StaticCanvas.d.ts +18 -0
  77. package/types/components/canvases/index.d.ts +3 -0
  78. package/types/components/dropdownMenu/DropdownMenu.d.ts +9 -5
  79. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +2 -1
  80. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -1
  81. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +2 -1
  82. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -2
  83. package/types/components/dropdownMenu/common.d.ts +1 -1
  84. package/types/components/icons.d.ts +6 -0
  85. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -1
  86. package/types/components/main-menu/MainMenu.d.ts +9 -5
  87. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -1
  88. package/types/components/welcome-screen/WelcomeScreen.d.ts +0 -1
  89. package/types/constants.d.ts +35 -3
  90. package/types/context/tunnels.d.ts +1 -0
  91. package/types/data/transform.d.ts +71 -0
  92. package/types/data/url.d.ts +7 -0
  93. package/types/element/Hyperlink.d.ts +40 -23
  94. package/types/element/binding.d.ts +2 -1
  95. package/types/element/bounds.d.ts +30 -6
  96. package/types/element/collision.d.ts +7 -7
  97. package/types/element/dragElements.d.ts +12 -2
  98. package/types/element/embeddable.d.ts +153 -0
  99. package/types/element/index.d.ts +3 -2
  100. package/types/element/linearElementEditor.d.ts +33 -20
  101. package/types/element/newElement.d.ts +15 -6
  102. package/types/element/resizeElements.d.ts +2 -2
  103. package/types/element/sizeHelpers.d.ts +8 -1
  104. package/types/element/textElement.d.ts +5 -7
  105. package/types/element/textWysiwyg.d.ts +1 -1
  106. package/types/element/transformHandles.d.ts +10 -3
  107. package/types/element/typeChecks.d.ts +3 -1
  108. package/types/element/types.d.ts +19 -3
  109. package/types/frame.d.ts +40 -0
  110. package/types/groups.d.ts +15 -11
  111. package/types/history.d.ts +3 -3
  112. package/types/hooks/useOutsideClick.d.ts +0 -1
  113. package/types/hooks/useScrollPosition.d.ts +0 -1
  114. package/types/hooks/useStable.d.ts +1 -0
  115. package/types/i18n.d.ts +5 -2
  116. package/types/keys.d.ts +4 -0
  117. package/types/math.d.ts +3 -0
  118. package/types/packages/excalidraw/example/initialData.d.ts +182 -64
  119. package/types/packages/excalidraw/index.d.ts +3 -1
  120. package/types/packages/excalidraw/webpack.dev.config.d.ts +5 -2
  121. package/types/packages/excalidraw/webpack.prod.config.d.ts +3 -0
  122. package/types/packages/utils.d.ts +4 -1
  123. package/types/renderer/renderElement.d.ts +11 -22
  124. package/types/renderer/renderScene.d.ts +19 -27
  125. package/types/renderer/renderSnaps.d.ts +2 -0
  126. package/types/renderer/roundRect.d.ts +1 -1
  127. package/types/scene/Renderer.d.ts +25 -0
  128. package/types/scene/Scene.d.ts +23 -1
  129. package/types/scene/Shape.d.ts +12 -0
  130. package/types/scene/ShapeCache.d.ts +20 -0
  131. package/types/scene/export.d.ts +35 -9
  132. package/types/scene/scroll.d.ts +1 -1
  133. package/types/scene/scrollbars.d.ts +2 -6
  134. package/types/scene/selection.d.ts +26 -5
  135. package/types/scene/types.d.ts +66 -31
  136. package/types/snapping.d.ts +108 -0
  137. package/types/types.d.ts +130 -25
  138. package/types/utility-types.d.ts +3 -1
  139. package/types/utils.d.ts +60 -23
  140. package/types/zindex.d.ts +4 -4
  141. /package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js.LICENSE.txt → vendor-d415b28e9024dee4bb1b.js.LICENSE.txt} +0 -0
  142. /package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.d.ts → vendor-d415b28e9024dee4bb1b.d.ts} +0 -0
  143. /package/types/packages/excalidraw/dist/excalidraw-assets-dev/{vendor-e6df8519da951026ff69.d.ts → vendor-a14cd58fa2db417e42b2.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { NonDeletedExcalidrawElement, Theme } from "../element/types";
2
2
  import "../components/ToolIcon.scss";
3
3
  export declare const actionChangeProjectName: {
4
4
  name: "changeProjectName";
@@ -14,25 +14,32 @@ export declare const actionChangeProjectName: {
14
14
  showWelcomeScreen: boolean;
15
15
  isLoading: boolean;
16
16
  errorMessage: import("react").ReactNode;
17
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
18
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
17
+ activeEmbeddable: {
18
+ element: NonDeletedExcalidrawElement;
19
+ state: "active" | "hover";
20
+ } | null;
21
+ draggingElement: NonDeletedExcalidrawElement | null;
22
+ resizingElement: NonDeletedExcalidrawElement | null;
19
23
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
20
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
24
+ selectionElement: NonDeletedExcalidrawElement | null;
21
25
  isBindingEnabled: boolean;
22
26
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
23
27
  suggestedBindings: import("../element/binding").SuggestedBinding[];
24
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
28
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
29
+ frameRendering: {
30
+ enabled: boolean;
31
+ name: boolean;
32
+ outline: boolean;
33
+ clip: boolean;
34
+ };
35
+ editingFrame: string | null;
36
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
37
+ editingElement: NonDeletedExcalidrawElement | null;
25
38
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
26
39
  activeTool: {
27
- lastActiveTool: import("../types").LastActiveTool;
40
+ lastActiveTool: import("../types").ActiveTool | null;
28
41
  locked: boolean;
29
- } & ({
30
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
31
- customType: null;
32
- } | {
33
- type: "custom";
34
- customType: string;
35
- });
42
+ } & import("../types").ActiveTool;
36
43
  penMode: boolean;
37
44
  penDetected: boolean;
38
45
  exportBackground: boolean;
@@ -71,12 +78,13 @@ export declare const actionChangeProjectName: {
71
78
  openDialog: "imageExport" | "help" | "jsonExport" | null;
72
79
  defaultSidebarDockedPreference: boolean;
73
80
  lastPointerDownWith: import("../element/types").PointerType;
74
- selectedElementIds: {
75
- [id: string]: boolean;
76
- };
81
+ selectedElementIds: Readonly<{
82
+ [id: string]: true;
83
+ }>;
77
84
  previousSelectedElementIds: {
78
- [id: string]: boolean;
85
+ [id: string]: true;
79
86
  };
87
+ selectedElementsAreBeingDragged: boolean;
80
88
  shouldCacheIgnoreZoom: boolean;
81
89
  toast: {
82
90
  message: string;
@@ -84,7 +92,7 @@ export declare const actionChangeProjectName: {
84
92
  duration?: number | undefined;
85
93
  } | null;
86
94
  zenModeEnabled: boolean;
87
- theme: string;
95
+ theme: Theme;
88
96
  gridSize: number | null;
89
97
  viewModeEnabled: boolean;
90
98
  selectedGroupIds: {
@@ -107,8 +115,14 @@ export declare const actionChangeProjectName: {
107
115
  data: import("../charts").Spreadsheet;
108
116
  };
109
117
  pendingImageElementId: string | null;
110
- showHyperlinkPopup: false | "info" | "editor";
118
+ showHyperlinkPopup: false | "editor" | "info";
111
119
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
120
+ snapLines: readonly import("../snapping").SnapLine[];
121
+ originSnapOffset: {
122
+ x: number;
123
+ y: number;
124
+ } | null;
125
+ objectsSnapModeEnabled: boolean;
112
126
  };
113
127
  commitToHistory: false;
114
128
  };
@@ -133,25 +147,32 @@ export declare const actionChangeExportScale: {
133
147
  showWelcomeScreen: boolean;
134
148
  isLoading: boolean;
135
149
  errorMessage: import("react").ReactNode;
136
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
137
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
150
+ activeEmbeddable: {
151
+ element: NonDeletedExcalidrawElement;
152
+ state: "active" | "hover";
153
+ } | null;
154
+ draggingElement: NonDeletedExcalidrawElement | null;
155
+ resizingElement: NonDeletedExcalidrawElement | null;
138
156
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
139
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
157
+ selectionElement: NonDeletedExcalidrawElement | null;
140
158
  isBindingEnabled: boolean;
141
159
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
142
160
  suggestedBindings: import("../element/binding").SuggestedBinding[];
143
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
161
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
162
+ frameRendering: {
163
+ enabled: boolean;
164
+ name: boolean;
165
+ outline: boolean;
166
+ clip: boolean;
167
+ };
168
+ editingFrame: string | null;
169
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
170
+ editingElement: NonDeletedExcalidrawElement | null;
144
171
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
145
172
  activeTool: {
146
- lastActiveTool: import("../types").LastActiveTool;
173
+ lastActiveTool: import("../types").ActiveTool | null;
147
174
  locked: boolean;
148
- } & ({
149
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
150
- customType: null;
151
- } | {
152
- type: "custom";
153
- customType: string;
154
- });
175
+ } & import("../types").ActiveTool;
155
176
  penMode: boolean;
156
177
  penDetected: boolean;
157
178
  exportBackground: boolean;
@@ -190,12 +211,13 @@ export declare const actionChangeExportScale: {
190
211
  openDialog: "imageExport" | "help" | "jsonExport" | null;
191
212
  defaultSidebarDockedPreference: boolean;
192
213
  lastPointerDownWith: import("../element/types").PointerType;
193
- selectedElementIds: {
194
- [id: string]: boolean;
195
- };
214
+ selectedElementIds: Readonly<{
215
+ [id: string]: true;
216
+ }>;
196
217
  previousSelectedElementIds: {
197
- [id: string]: boolean;
218
+ [id: string]: true;
198
219
  };
220
+ selectedElementsAreBeingDragged: boolean;
199
221
  shouldCacheIgnoreZoom: boolean;
200
222
  toast: {
201
223
  message: string;
@@ -203,7 +225,7 @@ export declare const actionChangeExportScale: {
203
225
  duration?: number | undefined;
204
226
  } | null;
205
227
  zenModeEnabled: boolean;
206
- theme: string;
228
+ theme: Theme;
207
229
  gridSize: number | null;
208
230
  viewModeEnabled: boolean;
209
231
  selectedGroupIds: {
@@ -226,8 +248,14 @@ export declare const actionChangeExportScale: {
226
248
  data: import("../charts").Spreadsheet;
227
249
  };
228
250
  pendingImageElementId: string | null;
229
- showHyperlinkPopup: false | "info" | "editor";
251
+ showHyperlinkPopup: false | "editor" | "info";
230
252
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
253
+ snapLines: readonly import("../snapping").SnapLine[];
254
+ originSnapOffset: {
255
+ x: number;
256
+ y: number;
257
+ } | null;
258
+ objectsSnapModeEnabled: boolean;
231
259
  };
232
260
  commitToHistory: false;
233
261
  };
@@ -252,25 +280,32 @@ export declare const actionChangeExportBackground: {
252
280
  showWelcomeScreen: boolean;
253
281
  isLoading: boolean;
254
282
  errorMessage: import("react").ReactNode;
255
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
256
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
283
+ activeEmbeddable: {
284
+ element: NonDeletedExcalidrawElement;
285
+ state: "active" | "hover";
286
+ } | null;
287
+ draggingElement: NonDeletedExcalidrawElement | null;
288
+ resizingElement: NonDeletedExcalidrawElement | null;
257
289
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
258
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
290
+ selectionElement: NonDeletedExcalidrawElement | null;
259
291
  isBindingEnabled: boolean;
260
292
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
261
293
  suggestedBindings: import("../element/binding").SuggestedBinding[];
262
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
294
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
295
+ frameRendering: {
296
+ enabled: boolean;
297
+ name: boolean;
298
+ outline: boolean;
299
+ clip: boolean;
300
+ };
301
+ editingFrame: string | null;
302
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
303
+ editingElement: NonDeletedExcalidrawElement | null;
263
304
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
264
305
  activeTool: {
265
- lastActiveTool: import("../types").LastActiveTool;
306
+ lastActiveTool: import("../types").ActiveTool | null;
266
307
  locked: boolean;
267
- } & ({
268
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
269
- customType: null;
270
- } | {
271
- type: "custom";
272
- customType: string;
273
- });
308
+ } & import("../types").ActiveTool;
274
309
  penMode: boolean;
275
310
  penDetected: boolean;
276
311
  exportEmbedScene: boolean;
@@ -309,12 +344,13 @@ export declare const actionChangeExportBackground: {
309
344
  openDialog: "imageExport" | "help" | "jsonExport" | null;
310
345
  defaultSidebarDockedPreference: boolean;
311
346
  lastPointerDownWith: import("../element/types").PointerType;
312
- selectedElementIds: {
313
- [id: string]: boolean;
314
- };
347
+ selectedElementIds: Readonly<{
348
+ [id: string]: true;
349
+ }>;
315
350
  previousSelectedElementIds: {
316
- [id: string]: boolean;
351
+ [id: string]: true;
317
352
  };
353
+ selectedElementsAreBeingDragged: boolean;
318
354
  shouldCacheIgnoreZoom: boolean;
319
355
  toast: {
320
356
  message: string;
@@ -322,7 +358,7 @@ export declare const actionChangeExportBackground: {
322
358
  duration?: number | undefined;
323
359
  } | null;
324
360
  zenModeEnabled: boolean;
325
- theme: string;
361
+ theme: Theme;
326
362
  gridSize: number | null;
327
363
  viewModeEnabled: boolean;
328
364
  selectedGroupIds: {
@@ -345,8 +381,14 @@ export declare const actionChangeExportBackground: {
345
381
  data: import("../charts").Spreadsheet;
346
382
  };
347
383
  pendingImageElementId: string | null;
348
- showHyperlinkPopup: false | "info" | "editor";
384
+ showHyperlinkPopup: false | "editor" | "info";
349
385
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
386
+ snapLines: readonly import("../snapping").SnapLine[];
387
+ originSnapOffset: {
388
+ x: number;
389
+ y: number;
390
+ } | null;
391
+ objectsSnapModeEnabled: boolean;
350
392
  };
351
393
  commitToHistory: false;
352
394
  };
@@ -371,25 +413,32 @@ export declare const actionChangeExportEmbedScene: {
371
413
  showWelcomeScreen: boolean;
372
414
  isLoading: boolean;
373
415
  errorMessage: import("react").ReactNode;
374
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
375
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
416
+ activeEmbeddable: {
417
+ element: NonDeletedExcalidrawElement;
418
+ state: "active" | "hover";
419
+ } | null;
420
+ draggingElement: NonDeletedExcalidrawElement | null;
421
+ resizingElement: NonDeletedExcalidrawElement | null;
376
422
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
377
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
423
+ selectionElement: NonDeletedExcalidrawElement | null;
378
424
  isBindingEnabled: boolean;
379
425
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
380
426
  suggestedBindings: import("../element/binding").SuggestedBinding[];
381
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
427
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
428
+ frameRendering: {
429
+ enabled: boolean;
430
+ name: boolean;
431
+ outline: boolean;
432
+ clip: boolean;
433
+ };
434
+ editingFrame: string | null;
435
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
436
+ editingElement: NonDeletedExcalidrawElement | null;
382
437
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
383
438
  activeTool: {
384
- lastActiveTool: import("../types").LastActiveTool;
439
+ lastActiveTool: import("../types").ActiveTool | null;
385
440
  locked: boolean;
386
- } & ({
387
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
388
- customType: null;
389
- } | {
390
- type: "custom";
391
- customType: string;
392
- });
441
+ } & import("../types").ActiveTool;
393
442
  penMode: boolean;
394
443
  penDetected: boolean;
395
444
  exportBackground: boolean;
@@ -428,12 +477,13 @@ export declare const actionChangeExportEmbedScene: {
428
477
  openDialog: "imageExport" | "help" | "jsonExport" | null;
429
478
  defaultSidebarDockedPreference: boolean;
430
479
  lastPointerDownWith: import("../element/types").PointerType;
431
- selectedElementIds: {
432
- [id: string]: boolean;
433
- };
480
+ selectedElementIds: Readonly<{
481
+ [id: string]: true;
482
+ }>;
434
483
  previousSelectedElementIds: {
435
- [id: string]: boolean;
484
+ [id: string]: true;
436
485
  };
486
+ selectedElementsAreBeingDragged: boolean;
437
487
  shouldCacheIgnoreZoom: boolean;
438
488
  toast: {
439
489
  message: string;
@@ -441,7 +491,7 @@ export declare const actionChangeExportEmbedScene: {
441
491
  duration?: number | undefined;
442
492
  } | null;
443
493
  zenModeEnabled: boolean;
444
- theme: string;
494
+ theme: Theme;
445
495
  gridSize: number | null;
446
496
  viewModeEnabled: boolean;
447
497
  selectedGroupIds: {
@@ -464,8 +514,14 @@ export declare const actionChangeExportEmbedScene: {
464
514
  data: import("../charts").Spreadsheet;
465
515
  };
466
516
  pendingImageElementId: string | null;
467
- showHyperlinkPopup: false | "info" | "editor";
517
+ showHyperlinkPopup: false | "editor" | "info";
468
518
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
519
+ snapLines: readonly import("../snapping").SnapLine[];
520
+ originSnapOffset: {
521
+ x: number;
522
+ y: number;
523
+ } | null;
524
+ objectsSnapModeEnabled: boolean;
469
525
  };
470
526
  commitToHistory: false;
471
527
  };
@@ -494,25 +550,32 @@ export declare const actionSaveToActiveFile: {
494
550
  showWelcomeScreen: boolean;
495
551
  isLoading: boolean;
496
552
  errorMessage: import("react").ReactNode;
497
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
498
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
553
+ activeEmbeddable: {
554
+ element: NonDeletedExcalidrawElement;
555
+ state: "active" | "hover";
556
+ } | null;
557
+ draggingElement: NonDeletedExcalidrawElement | null;
558
+ resizingElement: NonDeletedExcalidrawElement | null;
499
559
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
500
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
560
+ selectionElement: NonDeletedExcalidrawElement | null;
501
561
  isBindingEnabled: boolean;
502
562
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
503
563
  suggestedBindings: import("../element/binding").SuggestedBinding[];
504
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
564
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
565
+ frameRendering: {
566
+ enabled: boolean;
567
+ name: boolean;
568
+ outline: boolean;
569
+ clip: boolean;
570
+ };
571
+ editingFrame: string | null;
572
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
573
+ editingElement: NonDeletedExcalidrawElement | null;
505
574
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
506
575
  activeTool: {
507
- lastActiveTool: import("../types").LastActiveTool;
576
+ lastActiveTool: import("../types").ActiveTool | null;
508
577
  locked: boolean;
509
- } & ({
510
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
511
- customType: null;
512
- } | {
513
- type: "custom";
514
- customType: string;
515
- });
578
+ } & import("../types").ActiveTool;
516
579
  penMode: boolean;
517
580
  penDetected: boolean;
518
581
  exportBackground: boolean;
@@ -552,15 +615,16 @@ export declare const actionSaveToActiveFile: {
552
615
  openDialog: "imageExport" | "help" | "jsonExport" | null;
553
616
  defaultSidebarDockedPreference: boolean;
554
617
  lastPointerDownWith: import("../element/types").PointerType;
555
- selectedElementIds: {
556
- [id: string]: boolean;
557
- };
618
+ selectedElementIds: Readonly<{
619
+ [id: string]: true;
620
+ }>;
558
621
  previousSelectedElementIds: {
559
- [id: string]: boolean;
622
+ [id: string]: true;
560
623
  };
624
+ selectedElementsAreBeingDragged: boolean;
561
625
  shouldCacheIgnoreZoom: boolean;
562
626
  zenModeEnabled: boolean;
563
- theme: string;
627
+ theme: Theme;
564
628
  gridSize: number | null;
565
629
  viewModeEnabled: boolean;
566
630
  selectedGroupIds: {
@@ -582,16 +646,22 @@ export declare const actionSaveToActiveFile: {
582
646
  data: import("../charts").Spreadsheet;
583
647
  };
584
648
  pendingImageElementId: string | null;
585
- showHyperlinkPopup: false | "info" | "editor";
649
+ showHyperlinkPopup: false | "editor" | "info";
586
650
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
651
+ snapLines: readonly import("../snapping").SnapLine[];
652
+ originSnapOffset: {
653
+ x: number;
654
+ y: number;
655
+ } | null;
656
+ objectsSnapModeEnabled: boolean;
587
657
  };
588
658
  } | {
589
659
  commitToHistory: false;
590
660
  appState?: undefined;
591
661
  }>;
592
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
662
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
593
663
  } & {
594
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
664
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
595
665
  };
596
666
  export declare const actionSaveFileToDisk: {
597
667
  name: "saveFileToDisk";
@@ -611,25 +681,32 @@ export declare const actionSaveFileToDisk: {
611
681
  showWelcomeScreen: boolean;
612
682
  isLoading: boolean;
613
683
  errorMessage: import("react").ReactNode;
614
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
615
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
684
+ activeEmbeddable: {
685
+ element: NonDeletedExcalidrawElement;
686
+ state: "active" | "hover";
687
+ } | null;
688
+ draggingElement: NonDeletedExcalidrawElement | null;
689
+ resizingElement: NonDeletedExcalidrawElement | null;
616
690
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
617
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
691
+ selectionElement: NonDeletedExcalidrawElement | null;
618
692
  isBindingEnabled: boolean;
619
693
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
620
694
  suggestedBindings: import("../element/binding").SuggestedBinding[];
621
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
695
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
696
+ frameRendering: {
697
+ enabled: boolean;
698
+ name: boolean;
699
+ outline: boolean;
700
+ clip: boolean;
701
+ };
702
+ editingFrame: string | null;
703
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
704
+ editingElement: NonDeletedExcalidrawElement | null;
622
705
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
623
706
  activeTool: {
624
- lastActiveTool: import("../types").LastActiveTool;
707
+ lastActiveTool: import("../types").ActiveTool | null;
625
708
  locked: boolean;
626
- } & ({
627
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
628
- customType: null;
629
- } | {
630
- type: "custom";
631
- customType: string;
632
- });
709
+ } & import("../types").ActiveTool;
633
710
  penMode: boolean;
634
711
  penDetected: boolean;
635
712
  exportBackground: boolean;
@@ -669,12 +746,13 @@ export declare const actionSaveFileToDisk: {
669
746
  openDialog: "imageExport" | "help" | "jsonExport" | null;
670
747
  defaultSidebarDockedPreference: boolean;
671
748
  lastPointerDownWith: import("../element/types").PointerType;
672
- selectedElementIds: {
673
- [id: string]: boolean;
674
- };
749
+ selectedElementIds: Readonly<{
750
+ [id: string]: true;
751
+ }>;
675
752
  previousSelectedElementIds: {
676
- [id: string]: boolean;
753
+ [id: string]: true;
677
754
  };
755
+ selectedElementsAreBeingDragged: boolean;
678
756
  shouldCacheIgnoreZoom: boolean;
679
757
  toast: {
680
758
  message: string;
@@ -682,7 +760,7 @@ export declare const actionSaveFileToDisk: {
682
760
  duration?: number | undefined;
683
761
  } | null;
684
762
  zenModeEnabled: boolean;
685
- theme: string;
763
+ theme: Theme;
686
764
  gridSize: number | null;
687
765
  viewModeEnabled: boolean;
688
766
  selectedGroupIds: {
@@ -704,17 +782,23 @@ export declare const actionSaveFileToDisk: {
704
782
  data: import("../charts").Spreadsheet;
705
783
  };
706
784
  pendingImageElementId: string | null;
707
- showHyperlinkPopup: false | "info" | "editor";
785
+ showHyperlinkPopup: false | "editor" | "info";
708
786
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
787
+ snapLines: readonly import("../snapping").SnapLine[];
788
+ originSnapOffset: {
789
+ x: number;
790
+ y: number;
791
+ } | null;
792
+ objectsSnapModeEnabled: boolean;
709
793
  };
710
794
  } | {
711
795
  commitToHistory: false;
712
796
  appState?: undefined;
713
797
  }>;
714
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
798
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
715
799
  PanelComponent: ({ updateData }: import("./types").PanelComponentProps) => JSX.Element;
716
800
  } & {
717
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
801
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
718
802
  };
719
803
  export declare const actionLoadScene: {
720
804
  name: "loadScene";
@@ -725,18 +809,18 @@ export declare const actionLoadScene: {
725
809
  perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => Promise<false | {
726
810
  elements: import("../element/types").ExcalidrawElement[];
727
811
  appState: {
728
- theme: string;
729
- name: string;
730
812
  activeTool: {
731
- lastActiveTool: import("../types").LastActiveTool;
813
+ lastActiveTool: import("../types").ActiveTool | null;
732
814
  locked: boolean;
733
- } & ({
734
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
735
- customType: null;
736
- } | {
737
- type: "custom";
738
- customType: string;
739
- });
815
+ } & import("../types").ActiveTool;
816
+ name: string;
817
+ toast: {
818
+ message: string;
819
+ closable?: boolean | undefined;
820
+ duration?: number | undefined;
821
+ } | null;
822
+ collaborators: Map<string, import("../types").Collaborator>;
823
+ penMode: boolean;
740
824
  contextMenu: {
741
825
  items: import("../components/ContextMenu").ContextMenuItems;
742
826
  top: number;
@@ -745,16 +829,28 @@ export declare const actionLoadScene: {
745
829
  showWelcomeScreen: boolean;
746
830
  isLoading: boolean;
747
831
  errorMessage: import("react").ReactNode;
748
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
749
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
832
+ activeEmbeddable: {
833
+ element: NonDeletedExcalidrawElement;
834
+ state: "active" | "hover";
835
+ } | null;
836
+ draggingElement: NonDeletedExcalidrawElement | null;
837
+ resizingElement: NonDeletedExcalidrawElement | null;
750
838
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
751
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
839
+ selectionElement: NonDeletedExcalidrawElement | null;
752
840
  isBindingEnabled: boolean;
753
841
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
754
842
  suggestedBindings: import("../element/binding").SuggestedBinding[];
755
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
843
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
844
+ frameRendering: {
845
+ enabled: boolean;
846
+ name: boolean;
847
+ outline: boolean;
848
+ clip: boolean;
849
+ };
850
+ editingFrame: string | null;
851
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
852
+ editingElement: NonDeletedExcalidrawElement | null;
756
853
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
757
- penMode: boolean;
758
854
  penDetected: boolean;
759
855
  exportBackground: boolean;
760
856
  exportEmbedScene: boolean;
@@ -792,19 +888,16 @@ export declare const actionLoadScene: {
792
888
  openDialog: "imageExport" | "help" | "jsonExport" | null;
793
889
  defaultSidebarDockedPreference: boolean;
794
890
  lastPointerDownWith: import("../element/types").PointerType;
795
- selectedElementIds: {
796
- [id: string]: boolean;
797
- };
891
+ selectedElementIds: Readonly<{
892
+ [id: string]: true;
893
+ }>;
798
894
  previousSelectedElementIds: {
799
- [id: string]: boolean;
895
+ [id: string]: true;
800
896
  };
897
+ selectedElementsAreBeingDragged: boolean;
801
898
  shouldCacheIgnoreZoom: boolean;
802
- toast: {
803
- message: string;
804
- closable?: boolean | undefined;
805
- duration?: number | undefined;
806
- } | null;
807
899
  zenModeEnabled: boolean;
900
+ theme: Theme;
808
901
  gridSize: number | null;
809
902
  viewModeEnabled: boolean;
810
903
  selectedGroupIds: {
@@ -812,7 +905,6 @@ export declare const actionLoadScene: {
812
905
  };
813
906
  editingGroupId: string | null;
814
907
  fileHandle: import("browser-fs-access").FileSystemHandle | null;
815
- collaborators: Map<string, import("../types").Collaborator>;
816
908
  showStats: boolean;
817
909
  currentChartType: import("../element/types").ChartType;
818
910
  pasteDialog: {
@@ -823,8 +915,14 @@ export declare const actionLoadScene: {
823
915
  data: import("../charts").Spreadsheet;
824
916
  };
825
917
  pendingImageElementId: string | null;
826
- showHyperlinkPopup: false | "info" | "editor";
918
+ showHyperlinkPopup: false | "editor" | "info";
827
919
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
920
+ snapLines: readonly import("../snapping").SnapLine[];
921
+ originSnapOffset: {
922
+ x: number;
923
+ y: number;
924
+ } | null;
925
+ objectsSnapModeEnabled: boolean;
828
926
  };
829
927
  files: import("../types").BinaryFiles;
830
928
  commitToHistory: true;
@@ -839,25 +937,32 @@ export declare const actionLoadScene: {
839
937
  } | null;
840
938
  showWelcomeScreen: boolean;
841
939
  isLoading: boolean;
842
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
843
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
940
+ activeEmbeddable: {
941
+ element: NonDeletedExcalidrawElement;
942
+ state: "active" | "hover";
943
+ } | null;
944
+ draggingElement: NonDeletedExcalidrawElement | null;
945
+ resizingElement: NonDeletedExcalidrawElement | null;
844
946
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
845
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
947
+ selectionElement: NonDeletedExcalidrawElement | null;
846
948
  isBindingEnabled: boolean;
847
949
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
848
950
  suggestedBindings: import("../element/binding").SuggestedBinding[];
849
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
951
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
952
+ frameRendering: {
953
+ enabled: boolean;
954
+ name: boolean;
955
+ outline: boolean;
956
+ clip: boolean;
957
+ };
958
+ editingFrame: string | null;
959
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
960
+ editingElement: NonDeletedExcalidrawElement | null;
850
961
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
851
962
  activeTool: {
852
- lastActiveTool: import("../types").LastActiveTool;
963
+ lastActiveTool: import("../types").ActiveTool | null;
853
964
  locked: boolean;
854
- } & ({
855
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
856
- customType: null;
857
- } | {
858
- type: "custom";
859
- customType: string;
860
- });
965
+ } & import("../types").ActiveTool;
861
966
  penMode: boolean;
862
967
  penDetected: boolean;
863
968
  exportBackground: boolean;
@@ -897,12 +1002,13 @@ export declare const actionLoadScene: {
897
1002
  openDialog: "imageExport" | "help" | "jsonExport" | null;
898
1003
  defaultSidebarDockedPreference: boolean;
899
1004
  lastPointerDownWith: import("../element/types").PointerType;
900
- selectedElementIds: {
901
- [id: string]: boolean;
902
- };
1005
+ selectedElementIds: Readonly<{
1006
+ [id: string]: true;
1007
+ }>;
903
1008
  previousSelectedElementIds: {
904
- [id: string]: boolean;
1009
+ [id: string]: true;
905
1010
  };
1011
+ selectedElementsAreBeingDragged: boolean;
906
1012
  shouldCacheIgnoreZoom: boolean;
907
1013
  toast: {
908
1014
  message: string;
@@ -910,7 +1016,7 @@ export declare const actionLoadScene: {
910
1016
  duration?: number | undefined;
911
1017
  } | null;
912
1018
  zenModeEnabled: boolean;
913
- theme: string;
1019
+ theme: Theme;
914
1020
  gridSize: number | null;
915
1021
  viewModeEnabled: boolean;
916
1022
  selectedGroupIds: {
@@ -933,15 +1039,21 @@ export declare const actionLoadScene: {
933
1039
  data: import("../charts").Spreadsheet;
934
1040
  };
935
1041
  pendingImageElementId: string | null;
936
- showHyperlinkPopup: false | "info" | "editor";
1042
+ showHyperlinkPopup: false | "editor" | "info";
937
1043
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
1044
+ snapLines: readonly import("../snapping").SnapLine[];
1045
+ originSnapOffset: {
1046
+ x: number;
1047
+ y: number;
1048
+ } | null;
1049
+ objectsSnapModeEnabled: boolean;
938
1050
  };
939
1051
  files: import("../types").BinaryFiles;
940
1052
  commitToHistory: false;
941
1053
  }>;
942
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
1054
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
943
1055
  } & {
944
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
1056
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
945
1057
  };
946
1058
  export declare const actionExportWithDarkMode: {
947
1059
  name: "exportWithDarkMode";
@@ -960,25 +1072,32 @@ export declare const actionExportWithDarkMode: {
960
1072
  showWelcomeScreen: boolean;
961
1073
  isLoading: boolean;
962
1074
  errorMessage: import("react").ReactNode;
963
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
964
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
1075
+ activeEmbeddable: {
1076
+ element: NonDeletedExcalidrawElement;
1077
+ state: "active" | "hover";
1078
+ } | null;
1079
+ draggingElement: NonDeletedExcalidrawElement | null;
1080
+ resizingElement: NonDeletedExcalidrawElement | null;
965
1081
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
966
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
1082
+ selectionElement: NonDeletedExcalidrawElement | null;
967
1083
  isBindingEnabled: boolean;
968
1084
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
969
1085
  suggestedBindings: import("../element/binding").SuggestedBinding[];
970
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
1086
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
1087
+ frameRendering: {
1088
+ enabled: boolean;
1089
+ name: boolean;
1090
+ outline: boolean;
1091
+ clip: boolean;
1092
+ };
1093
+ editingFrame: string | null;
1094
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
1095
+ editingElement: NonDeletedExcalidrawElement | null;
971
1096
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
972
1097
  activeTool: {
973
- lastActiveTool: import("../types").LastActiveTool;
1098
+ lastActiveTool: import("../types").ActiveTool | null;
974
1099
  locked: boolean;
975
- } & ({
976
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
977
- customType: null;
978
- } | {
979
- type: "custom";
980
- customType: string;
981
- });
1100
+ } & import("../types").ActiveTool;
982
1101
  penMode: boolean;
983
1102
  penDetected: boolean;
984
1103
  exportBackground: boolean;
@@ -1017,12 +1136,13 @@ export declare const actionExportWithDarkMode: {
1017
1136
  openDialog: "imageExport" | "help" | "jsonExport" | null;
1018
1137
  defaultSidebarDockedPreference: boolean;
1019
1138
  lastPointerDownWith: import("../element/types").PointerType;
1020
- selectedElementIds: {
1021
- [id: string]: boolean;
1022
- };
1139
+ selectedElementIds: Readonly<{
1140
+ [id: string]: true;
1141
+ }>;
1023
1142
  previousSelectedElementIds: {
1024
- [id: string]: boolean;
1143
+ [id: string]: true;
1025
1144
  };
1145
+ selectedElementsAreBeingDragged: boolean;
1026
1146
  shouldCacheIgnoreZoom: boolean;
1027
1147
  toast: {
1028
1148
  message: string;
@@ -1030,7 +1150,7 @@ export declare const actionExportWithDarkMode: {
1030
1150
  duration?: number | undefined;
1031
1151
  } | null;
1032
1152
  zenModeEnabled: boolean;
1033
- theme: string;
1153
+ theme: Theme;
1034
1154
  gridSize: number | null;
1035
1155
  viewModeEnabled: boolean;
1036
1156
  selectedGroupIds: {
@@ -1053,8 +1173,14 @@ export declare const actionExportWithDarkMode: {
1053
1173
  data: import("../charts").Spreadsheet;
1054
1174
  };
1055
1175
  pendingImageElementId: string | null;
1056
- showHyperlinkPopup: false | "info" | "editor";
1176
+ showHyperlinkPopup: false | "editor" | "info";
1057
1177
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
1178
+ snapLines: readonly import("../snapping").SnapLine[];
1179
+ originSnapOffset: {
1180
+ x: number;
1181
+ y: number;
1182
+ } | null;
1183
+ objectsSnapModeEnabled: boolean;
1058
1184
  };
1059
1185
  commitToHistory: false;
1060
1186
  };