@dwelle/excalidraw 0.4.0-d68dd48 → 0.4.0-da7ef3e

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