@dwelle/excalidraw 0.4.0-e80989b → 0.4.0-eadd4b9

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