@dwelle/excalidraw 0.5.0-ff7b5f2db → 0.5.0-ffade30

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 (171) hide show
  1. package/CHANGELOG.md +2385 -0
  2. package/dist/dev/{chunk-56C7N44U.js → chunk-CB6O5JO7.js} +16177 -10984
  3. package/dist/dev/chunk-CB6O5JO7.js.map +7 -0
  4. package/dist/dev/{chunk-DGCWVQGA.js → chunk-JB4JDZ66.js} +15 -4
  5. package/dist/dev/chunk-JB4JDZ66.js.map +7 -0
  6. package/dist/dev/chunk-QXVP5PAI.js +7 -0
  7. package/dist/dev/chunk-QXVP5PAI.js.map +7 -0
  8. package/dist/dev/data/{image-BLSI3C2P.js → image-JTJWA4BG.js} +3 -3
  9. package/dist/dev/index.css +143 -68
  10. package/dist/dev/index.css.map +3 -3
  11. package/dist/dev/index.js +3978 -6519
  12. package/dist/dev/index.js.map +4 -4
  13. package/dist/dev/locales/{en-AAITTNRF.js → en-PIB5PD3P.js} +2 -2
  14. package/dist/dev/subset-shared.chunk.js +1 -1
  15. package/dist/dev/subset-worker.chunk.js +1 -1
  16. package/dist/prod/chunk-JEM5OQGK.js +33 -0
  17. package/dist/prod/chunk-JH36RZFS.js +7 -0
  18. package/dist/prod/{chunk-OV23WS6X.js → chunk-KC3NX2DX.js} +4 -4
  19. package/dist/prod/data/image-UJJWHTZ6.js +1 -0
  20. package/dist/prod/index.css +1 -1
  21. package/dist/prod/index.js +22 -21
  22. package/dist/prod/locales/{en-YOZMX4VX.js → en-RKTHI3YA.js} +1 -1
  23. package/dist/prod/subset-shared.chunk.js +1 -1
  24. package/dist/prod/subset-worker.chunk.js +1 -1
  25. package/dist/types/common/src/colors.d.ts +1 -0
  26. package/dist/types/common/src/constants.d.ts +11 -1
  27. package/dist/types/{excalidraw → common/src}/emitter.d.ts +1 -1
  28. package/dist/types/common/src/font-metadata.d.ts +4 -2
  29. package/dist/types/common/src/index.d.ts +1 -0
  30. package/dist/types/common/src/utility-types.d.ts +5 -0
  31. package/dist/types/common/src/utils.d.ts +22 -5
  32. package/dist/types/{excalidraw/scene → element/src}/Scene.d.ts +11 -14
  33. package/dist/types/element/src/ShapeCache.d.ts +1 -1
  34. package/dist/types/element/src/align.d.ts +3 -3
  35. package/dist/types/element/src/binding.d.ts +19 -11
  36. package/dist/types/element/src/bounds.d.ts +7 -2
  37. package/dist/types/element/src/collision.d.ts +1 -1
  38. package/dist/types/{excalidraw/change.d.ts → element/src/delta.d.ts} +40 -35
  39. package/dist/types/element/src/dragElements.d.ts +3 -2
  40. package/dist/types/element/src/duplicate.d.ts +10 -13
  41. package/dist/types/element/src/elbowArrow.d.ts +1 -1
  42. package/dist/types/element/src/flowchart.d.ts +3 -2
  43. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  44. package/dist/types/element/src/frame.d.ts +5 -4
  45. package/dist/types/element/src/heading.d.ts +0 -1
  46. package/dist/types/element/src/index.d.ts +45 -2
  47. package/dist/types/element/src/linearElementEditor.d.ts +19 -31
  48. package/dist/types/element/src/mutateElement.d.ts +10 -2
  49. package/dist/types/element/src/newElement.d.ts +4 -3
  50. package/dist/types/element/src/resizeElements.d.ts +4 -4
  51. package/dist/types/element/src/selection.d.ts +11 -5
  52. package/dist/types/element/src/shapes.d.ts +5 -1
  53. package/dist/types/element/src/sizeHelpers.d.ts +1 -1
  54. package/dist/types/element/src/store.d.ts +227 -0
  55. package/dist/types/element/src/textElement.d.ts +5 -3
  56. package/dist/types/element/src/transformHandles.d.ts +4 -4
  57. package/dist/types/element/src/typeChecks.d.ts +15 -1
  58. package/dist/types/element/src/types.d.ts +14 -1
  59. package/dist/types/element/src/zindex.d.ts +1 -1
  60. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +42 -45
  61. package/dist/types/excalidraw/actions/actionAlign.d.ts +8 -8
  62. package/dist/types/excalidraw/actions/actionBoundText.d.ts +28 -30
  63. package/dist/types/excalidraw/actions/actionCanvas.d.ts +438 -275
  64. package/dist/types/excalidraw/actions/actionClipboard.d.ts +86 -92
  65. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +14 -15
  66. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +40 -43
  67. package/dist/types/excalidraw/actions/actionDistribute.d.ts +4 -4
  68. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -2
  69. package/dist/types/excalidraw/actions/actionElementLink.d.ts +14 -15
  70. package/dist/types/excalidraw/actions/actionElementLock.d.ts +43 -47
  71. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +14 -15
  72. package/dist/types/excalidraw/actions/actionExport.d.ts +219 -228
  73. package/dist/types/excalidraw/actions/actionFinalize.d.ts +73 -36
  74. package/dist/types/excalidraw/actions/actionFlip.d.ts +4 -4
  75. package/dist/types/excalidraw/actions/actionFrame.d.ts +100 -104
  76. package/dist/types/excalidraw/actions/actionGroup.d.ts +34 -36
  77. package/dist/types/excalidraw/actions/actionHistory.d.ts +1 -2
  78. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +506 -14
  79. package/dist/types/excalidraw/actions/actionLink.d.ts +14 -15
  80. package/dist/types/excalidraw/actions/actionMenu.d.ts +42 -45
  81. package/dist/types/excalidraw/actions/actionNavigate.d.ts +27 -29
  82. package/dist/types/excalidraw/actions/actionProperties.d.ts +207 -214
  83. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +16 -17
  84. package/dist/types/excalidraw/actions/actionStyles.d.ts +18 -19
  85. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +16 -17
  86. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +16 -17
  87. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +16 -189
  88. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +19 -0
  89. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +16 -18
  90. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +16 -18
  91. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +16 -18
  92. package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -8
  93. package/dist/types/excalidraw/actions/types.d.ts +4 -3
  94. package/dist/types/excalidraw/animated-trail.d.ts +7 -1
  95. package/dist/types/excalidraw/appState.d.ts +40 -30
  96. package/dist/types/excalidraw/components/App.d.ts +30 -12
  97. package/dist/types/excalidraw/components/ButtonIcon.d.ts +1 -0
  98. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -1
  99. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +5 -1
  100. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +1 -1
  101. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +1 -2
  102. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -3
  103. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -3
  104. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -2
  105. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +1 -1
  106. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +2 -2
  107. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +1 -1
  108. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +23 -0
  109. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +4 -3
  110. package/dist/types/excalidraw/components/{ButtonIconSelect.d.ts → RadioSelection.d.ts} +1 -1
  111. package/dist/types/excalidraw/components/Range.d.ts +3 -3
  112. package/dist/types/excalidraw/components/Stats/Angle.d.ts +1 -1
  113. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +1 -1
  114. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +2 -1
  115. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +1 -1
  116. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +1 -1
  117. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +1 -1
  118. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +1 -1
  119. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +1 -1
  120. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +1 -1
  121. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +1 -1
  122. package/dist/types/excalidraw/components/Stats/Position.d.ts +1 -1
  123. package/dist/types/excalidraw/components/Stats/utils.d.ts +4 -11
  124. package/dist/types/excalidraw/components/UnlockPopup.d.ts +8 -0
  125. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +1 -0
  126. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +3 -2
  127. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -1
  128. package/dist/types/excalidraw/components/icons.d.ts +4 -0
  129. package/dist/types/excalidraw/components/shapes.d.ts +1 -1
  130. package/dist/types/excalidraw/data/blob.d.ts +1 -1
  131. package/dist/types/excalidraw/data/transform.d.ts +1 -1
  132. package/dist/types/excalidraw/editor-jotai.d.ts +6 -6
  133. package/dist/types/excalidraw/eraser/index.d.ts +14 -0
  134. package/dist/types/excalidraw/fonts/Fonts.d.ts +1 -1
  135. package/dist/types/excalidraw/history.d.ts +14 -22
  136. package/dist/types/excalidraw/hooks/useEmitter.d.ts +1 -1
  137. package/dist/types/excalidraw/index.d.ts +9 -9
  138. package/dist/types/excalidraw/lasso/index.d.ts +16 -0
  139. package/dist/types/excalidraw/lasso/utils.d.ts +12 -0
  140. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -1
  141. package/dist/types/excalidraw/scene/Renderer.d.ts +1 -1
  142. package/dist/types/excalidraw/scene/export.d.ts +1 -1
  143. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  144. package/dist/types/excalidraw/scene/scrollbars.d.ts +2 -3
  145. package/dist/types/excalidraw/scene/types.d.ts +2 -0
  146. package/dist/types/excalidraw/snapping.d.ts +2 -2
  147. package/dist/types/excalidraw/types.d.ts +30 -7
  148. package/dist/types/excalidraw/visualdebug.d.ts +1 -1
  149. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +3 -1
  150. package/dist/types/math/src/curve.d.ts +2 -0
  151. package/dist/types/math/src/point.d.ts +1 -1
  152. package/dist/types/math/src/polygon.d.ts +1 -0
  153. package/dist/types/math/src/segment.d.ts +1 -1
  154. package/dist/types/math/src/types.d.ts +1 -0
  155. package/dist/types/math/src/vector.d.ts +4 -0
  156. package/dist/types/utils/src/bbox.d.ts +1 -1
  157. package/dist/types/utils/src/index.d.ts +1 -1
  158. package/dist/types/utils/src/withinBounds.d.ts +1 -1
  159. package/history.ts +186 -0
  160. package/package.json +9 -4
  161. package/dist/dev/chunk-56C7N44U.js.map +0 -7
  162. package/dist/dev/chunk-DGCWVQGA.js.map +0 -7
  163. package/dist/dev/chunk-HQHB2BE4.js +0 -7
  164. package/dist/dev/chunk-HQHB2BE4.js.map +0 -7
  165. package/dist/prod/chunk-BUJ2ENHZ.js +0 -31
  166. package/dist/prod/chunk-C3FOHAIA.js +0 -7
  167. package/dist/prod/data/image-MI7OQWUS.js +0 -1
  168. package/dist/types/excalidraw/components/ButtonSelect.d.ts +0 -9
  169. package/dist/types/excalidraw/store.d.ts +0 -129
  170. /package/dist/dev/data/{image-BLSI3C2P.js.map → image-JTJWA4BG.js.map} +0 -0
  171. /package/dist/dev/locales/{en-AAITTNRF.js.map → en-PIB5PD3P.js.map} +0 -0
@@ -1,11 +1,10 @@
1
1
  /// <reference types="react" />
2
- import { type SceneBounds } from "@excalidraw/element/bounds";
2
+ import { type SceneBounds } from "@excalidraw/element";
3
3
  import type { ExcalidrawElement } from "@excalidraw/element/types";
4
4
  import type { AppState, Offsets } from "../types";
5
5
  export declare const actionChangeViewBackgroundColor: {
6
6
  name: "changeViewBackgroundColor";
7
7
  label: string;
8
- paletteName: string;
9
8
  trackEvent: false;
10
9
  predicate: (elements: readonly ExcalidrawElement[], appState: AppState, props: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
11
10
  perform: (_: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, value: any) => {
@@ -19,7 +18,6 @@ export declare const actionChangeViewBackgroundColor: {
19
18
  export declare const actionClearCanvas: {
20
19
  name: "clearCanvas";
21
20
  label: string;
22
- paletteName: string;
23
21
  icon: import("react/jsx-runtime").JSX.Element;
24
22
  trackEvent: {
25
23
  category: "canvas";
@@ -51,21 +49,72 @@ export declare const actionClearCanvas: {
51
49
  activeTool: {
52
50
  lastActiveTool: import("../types").ActiveTool | null;
53
51
  locked: boolean;
52
+ fromSelection: boolean;
54
53
  } & import("../types").ActiveTool;
54
+ contextMenu: {
55
+ items: import("../components/ContextMenu").ContextMenuItems;
56
+ top: number;
57
+ left: number;
58
+ } | null;
59
+ exportWithDarkMode: boolean;
60
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
61
+ startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
62
+ cursorButton: "up" | "down";
63
+ scrollX: number;
64
+ scrollY: number;
65
+ showWelcomeScreen: boolean;
66
+ isLoading: boolean;
67
+ errorMessage: import("react").ReactNode;
68
+ activeEmbeddable: {
69
+ element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
70
+ state: "hover" | "active";
71
+ } | null;
72
+ newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
73
+ resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
74
+ multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
75
+ selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
76
+ isBindingEnabled: boolean;
77
+ frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
55
78
  frameRendering: {
56
79
  enabled: boolean;
57
80
  name: boolean;
58
81
  outline: boolean;
59
82
  clip: boolean;
60
83
  };
84
+ editingFrame: string | null;
85
+ elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
86
+ editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
87
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
88
+ exportScale: number;
89
+ currentItemStrokeColor: string;
90
+ currentItemBackgroundColor: string;
91
+ currentItemFillStyle: import("@excalidraw/element/types").FillStyle;
92
+ currentItemStrokeWidth: number;
93
+ currentItemStrokeStyle: import("@excalidraw/element/types").StrokeStyle;
94
+ currentItemRoughness: number;
95
+ currentItemOpacity: number;
96
+ currentItemFontFamily: number;
97
+ currentItemFontSize: number;
98
+ currentItemTextAlign: string;
99
+ currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
100
+ currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
101
+ currentHoveredFontFamily: number | null;
102
+ currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
103
+ currentItemArrowType: "round" | "sharp" | "elbow";
61
104
  viewBackgroundColor: string;
105
+ scrolledOutside: boolean;
62
106
  name: string | null;
107
+ isResizing: boolean;
108
+ isRotating: boolean;
63
109
  zoom: Readonly<{
64
110
  value: import("../types").NormalizedZoomValue;
65
111
  }>;
66
- scrollX: number;
67
- scrollY: number;
68
- viewModeEnabled: boolean;
112
+ openMenu: "canvas" | "shape" | null;
113
+ openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
114
+ openSidebar: {
115
+ name: string;
116
+ tab?: string | undefined;
117
+ } | null;
69
118
  openDialog: {
70
119
  name: "imageExport" | "help" | "jsonExport";
71
120
  } | {
@@ -77,27 +126,31 @@ export declare const actionClearCanvas: {
77
126
  name: "elementLinkSelector";
78
127
  sourceElementId: string;
79
128
  } | null;
80
- editingGroupId: string | null;
129
+ defaultSidebarDockedPreference: boolean;
130
+ lastPointerDownWith: import("@excalidraw/element/types").PointerType;
81
131
  selectedElementIds: Readonly<{
82
132
  [id: string]: true;
83
133
  }>;
84
- frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
85
- pendingImageElementId: string | null;
86
- activeEmbeddable: {
87
- element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
88
- state: "hover" | "active";
134
+ hoveredElementIds: Readonly<{
135
+ [id: string]: true;
136
+ }>;
137
+ previousSelectedElementIds: {
138
+ [id: string]: true;
139
+ };
140
+ selectedElementsAreBeingDragged: boolean;
141
+ shouldCacheIgnoreZoom: boolean;
142
+ toast: {
143
+ message: string;
144
+ closable?: boolean | undefined;
145
+ duration?: number | undefined;
89
146
  } | null;
90
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
91
- selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
147
+ zenModeEnabled: boolean;
148
+ viewModeEnabled: boolean;
92
149
  selectedGroupIds: {
93
150
  [groupId: string]: boolean;
94
151
  };
95
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
96
- multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
97
- isBindingEnabled: boolean;
98
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
99
- isRotating: boolean;
100
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
152
+ editingGroupId: string | null;
153
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
101
154
  collaborators: Map<import("../types").SocketId, Readonly<{
102
155
  pointer?: import("../types").CollaboratorPointer | undefined;
103
156
  button?: "up" | "down" | undefined;
@@ -118,84 +171,28 @@ export declare const actionClearCanvas: {
118
171
  isSpeaking?: boolean | undefined;
119
172
  isMuted?: boolean | undefined;
120
173
  }>>;
121
- snapLines: readonly import("../snapping").SnapLine[];
122
- zenModeEnabled: boolean;
123
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
124
- isCropping: boolean;
125
- croppingElementId: string | null;
126
- searchMatches: readonly {
127
- id: string;
128
- focus: boolean;
129
- matchedLines: {
130
- offsetX: number;
131
- offsetY: number;
132
- width: number;
133
- height: number;
134
- }[];
135
- }[];
136
- objectsSnapModeEnabled: boolean;
137
- shouldCacheIgnoreZoom: boolean;
138
- exportScale: number;
139
- selectedElementsAreBeingDragged: boolean;
140
- currentHoveredFontFamily: number | null;
141
- hoveredElementIds: Readonly<{
142
- [id: string]: true;
143
- }>;
144
- contextMenu: {
145
- items: import("../components/ContextMenu").ContextMenuItems;
146
- top: number;
147
- left: number;
148
- } | null;
149
- showWelcomeScreen: boolean;
150
- isLoading: boolean;
151
- errorMessage: import("react").ReactNode;
152
- newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
153
- resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
154
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
155
- editingFrame: string | null;
156
- exportWithDarkMode: boolean;
157
- currentItemStrokeColor: string;
158
- currentItemBackgroundColor: string;
159
- currentItemFillStyle: import("@excalidraw/element/types").FillStyle;
160
- currentItemStrokeWidth: number;
161
- currentItemStrokeStyle: import("@excalidraw/element/types").StrokeStyle;
162
- currentItemRoughness: number;
163
- currentItemOpacity: number;
164
- currentItemFontFamily: number;
165
- currentItemFontSize: number;
166
- currentItemTextAlign: string;
167
- currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
168
- currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
169
- currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
170
- currentItemArrowType: "round" | "sharp" | "elbow";
171
- cursorButton: "up" | "down";
172
- scrolledOutside: boolean;
173
- isResizing: boolean;
174
- openMenu: "shape" | "canvas" | null;
175
- openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
176
- openSidebar: {
177
- name: string;
178
- tab?: string | undefined;
179
- } | null;
180
- defaultSidebarDockedPreference: boolean;
181
- lastPointerDownWith: import("@excalidraw/element/types").PointerType;
182
- previousSelectedElementIds: {
183
- [id: string]: true;
184
- };
185
- toast: {
186
- message: string;
187
- closable?: boolean | undefined;
188
- duration?: number | undefined;
189
- } | null;
190
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
191
174
  currentChartType: import("@excalidraw/element/types").ChartType;
192
- showHyperlinkPopup: false | "editor" | "info";
175
+ pendingImageElementId: string | null;
176
+ showHyperlinkPopup: false | "info" | "editor";
177
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
178
+ snapLines: readonly import("../snapping").SnapLine[];
193
179
  originSnapOffset: {
194
180
  x: number;
195
181
  y: number;
196
182
  } | null;
183
+ objectsSnapModeEnabled: boolean;
197
184
  userToFollow: import("../types").UserToFollow | null;
198
185
  followedBy: Set<import("../types").SocketId>;
186
+ isCropping: boolean;
187
+ croppingElementId: string | null;
188
+ searchMatches: Readonly<{
189
+ focusedId: string | null;
190
+ matches: readonly import("../types").SearchMatch[];
191
+ }> | null;
192
+ activeLockedId: string | null;
193
+ lockedMultiSelections: {
194
+ [groupId: string]: true;
195
+ };
199
196
  };
200
197
  captureUpdate: "IMMEDIATELY";
201
198
  };
@@ -236,7 +233,7 @@ export declare const actionZoomIn: {
236
233
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
237
234
  isBindingEnabled: boolean;
238
235
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
239
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
236
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
240
237
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
241
238
  frameRendering: {
242
239
  enabled: boolean;
@@ -247,10 +244,11 @@ export declare const actionZoomIn: {
247
244
  editingFrame: string | null;
248
245
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
249
246
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
250
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
247
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
251
248
  activeTool: {
252
249
  lastActiveTool: import("../types").ActiveTool | null;
253
250
  locked: boolean;
251
+ fromSelection: boolean;
254
252
  } & import("../types").ActiveTool;
255
253
  penMode: boolean;
256
254
  penDetected: boolean;
@@ -279,7 +277,7 @@ export declare const actionZoomIn: {
279
277
  name: string | null;
280
278
  isResizing: boolean;
281
279
  isRotating: boolean;
282
- openMenu: "shape" | "canvas" | null;
280
+ openMenu: "canvas" | "shape" | null;
283
281
  openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
284
282
  openSidebar: {
285
283
  name: string;
@@ -362,8 +360,8 @@ export declare const actionZoomIn: {
362
360
  data: import("../charts").Spreadsheet;
363
361
  };
364
362
  pendingImageElementId: string | null;
365
- showHyperlinkPopup: false | "editor" | "info";
366
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
363
+ showHyperlinkPopup: false | "info" | "editor";
364
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
367
365
  snapLines: readonly import("../snapping").SnapLine[];
368
366
  originSnapOffset: {
369
367
  x: number;
@@ -373,23 +371,21 @@ export declare const actionZoomIn: {
373
371
  followedBy: Set<import("../types").SocketId>;
374
372
  isCropping: boolean;
375
373
  croppingElementId: string | null;
376
- searchMatches: readonly {
377
- id: string;
378
- focus: boolean;
379
- matchedLines: {
380
- offsetX: number;
381
- offsetY: number;
382
- width: number;
383
- height: number;
384
- }[];
385
- }[];
374
+ searchMatches: Readonly<{
375
+ focusedId: string | null;
376
+ matches: readonly import("../types").SearchMatch[];
377
+ }> | null;
378
+ activeLockedId: string | null;
379
+ lockedMultiSelections: {
380
+ [groupId: string]: true;
381
+ };
386
382
  };
387
383
  captureUpdate: "EVENTUALLY";
388
384
  };
389
385
  PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
390
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
386
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
391
387
  } & {
392
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
388
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
393
389
  };
394
390
  export declare const actionZoomOut: {
395
391
  name: "zoomOut";
@@ -425,7 +421,7 @@ export declare const actionZoomOut: {
425
421
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
426
422
  isBindingEnabled: boolean;
427
423
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
428
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
424
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
429
425
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
430
426
  frameRendering: {
431
427
  enabled: boolean;
@@ -436,10 +432,11 @@ export declare const actionZoomOut: {
436
432
  editingFrame: string | null;
437
433
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
438
434
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
439
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
435
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
440
436
  activeTool: {
441
437
  lastActiveTool: import("../types").ActiveTool | null;
442
438
  locked: boolean;
439
+ fromSelection: boolean;
443
440
  } & import("../types").ActiveTool;
444
441
  penMode: boolean;
445
442
  penDetected: boolean;
@@ -468,7 +465,7 @@ export declare const actionZoomOut: {
468
465
  name: string | null;
469
466
  isResizing: boolean;
470
467
  isRotating: boolean;
471
- openMenu: "shape" | "canvas" | null;
468
+ openMenu: "canvas" | "shape" | null;
472
469
  openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
473
470
  openSidebar: {
474
471
  name: string;
@@ -551,8 +548,8 @@ export declare const actionZoomOut: {
551
548
  data: import("../charts").Spreadsheet;
552
549
  };
553
550
  pendingImageElementId: string | null;
554
- showHyperlinkPopup: false | "editor" | "info";
555
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
551
+ showHyperlinkPopup: false | "info" | "editor";
552
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
556
553
  snapLines: readonly import("../snapping").SnapLine[];
557
554
  originSnapOffset: {
558
555
  x: number;
@@ -562,23 +559,21 @@ export declare const actionZoomOut: {
562
559
  followedBy: Set<import("../types").SocketId>;
563
560
  isCropping: boolean;
564
561
  croppingElementId: string | null;
565
- searchMatches: readonly {
566
- id: string;
567
- focus: boolean;
568
- matchedLines: {
569
- offsetX: number;
570
- offsetY: number;
571
- width: number;
572
- height: number;
573
- }[];
574
- }[];
562
+ searchMatches: Readonly<{
563
+ focusedId: string | null;
564
+ matches: readonly import("../types").SearchMatch[];
565
+ }> | null;
566
+ activeLockedId: string | null;
567
+ lockedMultiSelections: {
568
+ [groupId: string]: true;
569
+ };
575
570
  };
576
571
  captureUpdate: "EVENTUALLY";
577
572
  };
578
573
  PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
579
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
574
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
580
575
  } & {
581
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
576
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
582
577
  };
583
578
  export declare const actionResetZoom: {
584
579
  name: "resetZoom";
@@ -614,7 +609,7 @@ export declare const actionResetZoom: {
614
609
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
615
610
  isBindingEnabled: boolean;
616
611
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
617
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
612
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
618
613
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
619
614
  frameRendering: {
620
615
  enabled: boolean;
@@ -625,10 +620,11 @@ export declare const actionResetZoom: {
625
620
  editingFrame: string | null;
626
621
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
627
622
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
628
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
623
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
629
624
  activeTool: {
630
625
  lastActiveTool: import("../types").ActiveTool | null;
631
626
  locked: boolean;
627
+ fromSelection: boolean;
632
628
  } & import("../types").ActiveTool;
633
629
  penMode: boolean;
634
630
  penDetected: boolean;
@@ -657,7 +653,7 @@ export declare const actionResetZoom: {
657
653
  name: string | null;
658
654
  isResizing: boolean;
659
655
  isRotating: boolean;
660
- openMenu: "shape" | "canvas" | null;
656
+ openMenu: "canvas" | "shape" | null;
661
657
  openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
662
658
  openSidebar: {
663
659
  name: string;
@@ -740,8 +736,8 @@ export declare const actionResetZoom: {
740
736
  data: import("../charts").Spreadsheet;
741
737
  };
742
738
  pendingImageElementId: string | null;
743
- showHyperlinkPopup: false | "editor" | "info";
744
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
739
+ showHyperlinkPopup: false | "info" | "editor";
740
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
745
741
  snapLines: readonly import("../snapping").SnapLine[];
746
742
  originSnapOffset: {
747
743
  x: number;
@@ -751,23 +747,21 @@ export declare const actionResetZoom: {
751
747
  followedBy: Set<import("../types").SocketId>;
752
748
  isCropping: boolean;
753
749
  croppingElementId: string | null;
754
- searchMatches: readonly {
755
- id: string;
756
- focus: boolean;
757
- matchedLines: {
758
- offsetX: number;
759
- offsetY: number;
760
- width: number;
761
- height: number;
762
- }[];
763
- }[];
750
+ searchMatches: Readonly<{
751
+ focusedId: string | null;
752
+ matches: readonly import("../types").SearchMatch[];
753
+ }> | null;
754
+ activeLockedId: string | null;
755
+ lockedMultiSelections: {
756
+ [groupId: string]: true;
757
+ };
764
758
  };
765
759
  captureUpdate: "EVENTUALLY";
766
760
  };
767
761
  PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
768
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
762
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
769
763
  } & {
770
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
764
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
771
765
  };
772
766
  export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToViewport, viewportZoomFactor, minZoom, maxZoom, }: {
773
767
  bounds: SceneBounds;
@@ -809,7 +803,7 @@ export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToV
809
803
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
810
804
  isBindingEnabled: boolean;
811
805
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
812
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
806
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
813
807
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
814
808
  frameRendering: {
815
809
  enabled: boolean;
@@ -820,10 +814,11 @@ export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToV
820
814
  editingFrame: string | null;
821
815
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
822
816
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
823
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
817
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
824
818
  activeTool: {
825
819
  lastActiveTool: import("../types").ActiveTool | null;
826
820
  locked: boolean;
821
+ fromSelection: boolean;
827
822
  } & import("../types").ActiveTool;
828
823
  penMode: boolean;
829
824
  penDetected: boolean;
@@ -852,7 +847,7 @@ export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToV
852
847
  name: string | null;
853
848
  isResizing: boolean;
854
849
  isRotating: boolean;
855
- openMenu: "shape" | "canvas" | null;
850
+ openMenu: "canvas" | "shape" | null;
856
851
  openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
857
852
  openSidebar: {
858
853
  name: string;
@@ -935,8 +930,8 @@ export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToV
935
930
  data: import("../charts").Spreadsheet;
936
931
  };
937
932
  pendingImageElementId: string | null;
938
- showHyperlinkPopup: false | "editor" | "info";
939
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
933
+ showHyperlinkPopup: false | "info" | "editor";
934
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
940
935
  snapLines: readonly import("../snapping").SnapLine[];
941
936
  originSnapOffset: {
942
937
  x: number;
@@ -947,16 +942,14 @@ export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToV
947
942
  followedBy: Set<import("../types").SocketId>;
948
943
  isCropping: boolean;
949
944
  croppingElementId: string | null;
950
- searchMatches: readonly {
951
- id: string;
952
- focus: boolean;
953
- matchedLines: {
954
- offsetX: number;
955
- offsetY: number;
956
- width: number;
957
- height: number;
958
- }[];
959
- }[];
945
+ searchMatches: Readonly<{
946
+ focusedId: string | null;
947
+ matches: readonly import("../types").SearchMatch[];
948
+ }> | null;
949
+ activeLockedId: string | null;
950
+ lockedMultiSelections: {
951
+ [groupId: string]: true;
952
+ };
960
953
  };
961
954
  captureUpdate: "EVENTUALLY";
962
955
  };
@@ -1000,7 +993,7 @@ export declare const zoomToFit: ({ canvasOffsets, targetElements, appState, fitT
1000
993
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1001
994
  isBindingEnabled: boolean;
1002
995
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
1003
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
996
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
1004
997
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
1005
998
  frameRendering: {
1006
999
  enabled: boolean;
@@ -1011,10 +1004,11 @@ export declare const zoomToFit: ({ canvasOffsets, targetElements, appState, fitT
1011
1004
  editingFrame: string | null;
1012
1005
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
1013
1006
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1014
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
1007
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1015
1008
  activeTool: {
1016
1009
  lastActiveTool: import("../types").ActiveTool | null;
1017
1010
  locked: boolean;
1011
+ fromSelection: boolean;
1018
1012
  } & import("../types").ActiveTool;
1019
1013
  penMode: boolean;
1020
1014
  penDetected: boolean;
@@ -1043,7 +1037,7 @@ export declare const zoomToFit: ({ canvasOffsets, targetElements, appState, fitT
1043
1037
  name: string | null;
1044
1038
  isResizing: boolean;
1045
1039
  isRotating: boolean;
1046
- openMenu: "shape" | "canvas" | null;
1040
+ openMenu: "canvas" | "shape" | null;
1047
1041
  openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
1048
1042
  openSidebar: {
1049
1043
  name: string;
@@ -1126,8 +1120,8 @@ export declare const zoomToFit: ({ canvasOffsets, targetElements, appState, fitT
1126
1120
  data: import("../charts").Spreadsheet;
1127
1121
  };
1128
1122
  pendingImageElementId: string | null;
1129
- showHyperlinkPopup: false | "editor" | "info";
1130
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
1123
+ showHyperlinkPopup: false | "info" | "editor";
1124
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1131
1125
  snapLines: readonly import("../snapping").SnapLine[];
1132
1126
  originSnapOffset: {
1133
1127
  x: number;
@@ -1138,16 +1132,14 @@ export declare const zoomToFit: ({ canvasOffsets, targetElements, appState, fitT
1138
1132
  followedBy: Set<import("../types").SocketId>;
1139
1133
  isCropping: boolean;
1140
1134
  croppingElementId: string | null;
1141
- searchMatches: readonly {
1142
- id: string;
1143
- focus: boolean;
1144
- matchedLines: {
1145
- offsetX: number;
1146
- offsetY: number;
1147
- width: number;
1148
- height: number;
1149
- }[];
1150
- }[];
1135
+ searchMatches: Readonly<{
1136
+ focusedId: string | null;
1137
+ matches: readonly import("../types").SearchMatch[];
1138
+ }> | null;
1139
+ activeLockedId: string | null;
1140
+ lockedMultiSelections: {
1141
+ [groupId: string]: true;
1142
+ };
1151
1143
  };
1152
1144
  captureUpdate: "EVENTUALLY";
1153
1145
  };
@@ -1183,7 +1175,7 @@ export declare const actionZoomToFitSelectionInViewport: {
1183
1175
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1184
1176
  isBindingEnabled: boolean;
1185
1177
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
1186
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
1178
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
1187
1179
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
1188
1180
  frameRendering: {
1189
1181
  enabled: boolean;
@@ -1194,10 +1186,11 @@ export declare const actionZoomToFitSelectionInViewport: {
1194
1186
  editingFrame: string | null;
1195
1187
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
1196
1188
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1197
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
1189
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1198
1190
  activeTool: {
1199
1191
  lastActiveTool: import("../types").ActiveTool | null;
1200
1192
  locked: boolean;
1193
+ fromSelection: boolean;
1201
1194
  } & import("../types").ActiveTool;
1202
1195
  penMode: boolean;
1203
1196
  penDetected: boolean;
@@ -1226,7 +1219,7 @@ export declare const actionZoomToFitSelectionInViewport: {
1226
1219
  name: string | null;
1227
1220
  isResizing: boolean;
1228
1221
  isRotating: boolean;
1229
- openMenu: "shape" | "canvas" | null;
1222
+ openMenu: "canvas" | "shape" | null;
1230
1223
  openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
1231
1224
  openSidebar: {
1232
1225
  name: string;
@@ -1309,8 +1302,8 @@ export declare const actionZoomToFitSelectionInViewport: {
1309
1302
  data: import("../charts").Spreadsheet;
1310
1303
  };
1311
1304
  pendingImageElementId: string | null;
1312
- showHyperlinkPopup: false | "editor" | "info";
1313
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
1305
+ showHyperlinkPopup: false | "info" | "editor";
1306
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1314
1307
  snapLines: readonly import("../snapping").SnapLine[];
1315
1308
  originSnapOffset: {
1316
1309
  x: number;
@@ -1321,22 +1314,20 @@ export declare const actionZoomToFitSelectionInViewport: {
1321
1314
  followedBy: Set<import("../types").SocketId>;
1322
1315
  isCropping: boolean;
1323
1316
  croppingElementId: string | null;
1324
- searchMatches: readonly {
1325
- id: string;
1326
- focus: boolean;
1327
- matchedLines: {
1328
- offsetX: number;
1329
- offsetY: number;
1330
- width: number;
1331
- height: number;
1332
- }[];
1333
- }[];
1317
+ searchMatches: Readonly<{
1318
+ focusedId: string | null;
1319
+ matches: readonly import("../types").SearchMatch[];
1320
+ }> | null;
1321
+ activeLockedId: string | null;
1322
+ lockedMultiSelections: {
1323
+ [groupId: string]: true;
1324
+ };
1334
1325
  };
1335
1326
  captureUpdate: "EVENTUALLY";
1336
1327
  };
1337
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
1328
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
1338
1329
  } & {
1339
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
1330
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
1340
1331
  };
1341
1332
  export declare const actionZoomToFitSelection: {
1342
1333
  name: "zoomToFitSelection";
@@ -1370,7 +1361,7 @@ export declare const actionZoomToFitSelection: {
1370
1361
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1371
1362
  isBindingEnabled: boolean;
1372
1363
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
1373
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
1364
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
1374
1365
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
1375
1366
  frameRendering: {
1376
1367
  enabled: boolean;
@@ -1381,10 +1372,11 @@ export declare const actionZoomToFitSelection: {
1381
1372
  editingFrame: string | null;
1382
1373
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
1383
1374
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1384
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
1375
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1385
1376
  activeTool: {
1386
1377
  lastActiveTool: import("../types").ActiveTool | null;
1387
1378
  locked: boolean;
1379
+ fromSelection: boolean;
1388
1380
  } & import("../types").ActiveTool;
1389
1381
  penMode: boolean;
1390
1382
  penDetected: boolean;
@@ -1413,7 +1405,7 @@ export declare const actionZoomToFitSelection: {
1413
1405
  name: string | null;
1414
1406
  isResizing: boolean;
1415
1407
  isRotating: boolean;
1416
- openMenu: "shape" | "canvas" | null;
1408
+ openMenu: "canvas" | "shape" | null;
1417
1409
  openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
1418
1410
  openSidebar: {
1419
1411
  name: string;
@@ -1496,8 +1488,8 @@ export declare const actionZoomToFitSelection: {
1496
1488
  data: import("../charts").Spreadsheet;
1497
1489
  };
1498
1490
  pendingImageElementId: string | null;
1499
- showHyperlinkPopup: false | "editor" | "info";
1500
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
1491
+ showHyperlinkPopup: false | "info" | "editor";
1492
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1501
1493
  snapLines: readonly import("../snapping").SnapLine[];
1502
1494
  originSnapOffset: {
1503
1495
  x: number;
@@ -1508,22 +1500,20 @@ export declare const actionZoomToFitSelection: {
1508
1500
  followedBy: Set<import("../types").SocketId>;
1509
1501
  isCropping: boolean;
1510
1502
  croppingElementId: string | null;
1511
- searchMatches: readonly {
1512
- id: string;
1513
- focus: boolean;
1514
- matchedLines: {
1515
- offsetX: number;
1516
- offsetY: number;
1517
- width: number;
1518
- height: number;
1519
- }[];
1520
- }[];
1503
+ searchMatches: Readonly<{
1504
+ focusedId: string | null;
1505
+ matches: readonly import("../types").SearchMatch[];
1506
+ }> | null;
1507
+ activeLockedId: string | null;
1508
+ lockedMultiSelections: {
1509
+ [groupId: string]: true;
1510
+ };
1521
1511
  };
1522
1512
  captureUpdate: "EVENTUALLY";
1523
1513
  };
1524
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
1514
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
1525
1515
  } & {
1526
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
1516
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
1527
1517
  };
1528
1518
  export declare const actionZoomToFit: {
1529
1519
  name: "zoomToFit";
@@ -1558,7 +1548,7 @@ export declare const actionZoomToFit: {
1558
1548
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1559
1549
  isBindingEnabled: boolean;
1560
1550
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
1561
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
1551
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
1562
1552
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
1563
1553
  frameRendering: {
1564
1554
  enabled: boolean;
@@ -1569,10 +1559,11 @@ export declare const actionZoomToFit: {
1569
1559
  editingFrame: string | null;
1570
1560
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
1571
1561
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1572
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
1562
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1573
1563
  activeTool: {
1574
1564
  lastActiveTool: import("../types").ActiveTool | null;
1575
1565
  locked: boolean;
1566
+ fromSelection: boolean;
1576
1567
  } & import("../types").ActiveTool;
1577
1568
  penMode: boolean;
1578
1569
  penDetected: boolean;
@@ -1601,7 +1592,7 @@ export declare const actionZoomToFit: {
1601
1592
  name: string | null;
1602
1593
  isResizing: boolean;
1603
1594
  isRotating: boolean;
1604
- openMenu: "shape" | "canvas" | null;
1595
+ openMenu: "canvas" | "shape" | null;
1605
1596
  openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
1606
1597
  openSidebar: {
1607
1598
  name: string;
@@ -1684,8 +1675,8 @@ export declare const actionZoomToFit: {
1684
1675
  data: import("../charts").Spreadsheet;
1685
1676
  };
1686
1677
  pendingImageElementId: string | null;
1687
- showHyperlinkPopup: false | "editor" | "info";
1688
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
1678
+ showHyperlinkPopup: false | "info" | "editor";
1679
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1689
1680
  snapLines: readonly import("../snapping").SnapLine[];
1690
1681
  originSnapOffset: {
1691
1682
  x: number;
@@ -1696,22 +1687,20 @@ export declare const actionZoomToFit: {
1696
1687
  followedBy: Set<import("../types").SocketId>;
1697
1688
  isCropping: boolean;
1698
1689
  croppingElementId: string | null;
1699
- searchMatches: readonly {
1700
- id: string;
1701
- focus: boolean;
1702
- matchedLines: {
1703
- offsetX: number;
1704
- offsetY: number;
1705
- width: number;
1706
- height: number;
1707
- }[];
1708
- }[];
1690
+ searchMatches: Readonly<{
1691
+ focusedId: string | null;
1692
+ matches: readonly import("../types").SearchMatch[];
1693
+ }> | null;
1694
+ activeLockedId: string | null;
1695
+ lockedMultiSelections: {
1696
+ [groupId: string]: true;
1697
+ };
1709
1698
  };
1710
1699
  captureUpdate: "EVENTUALLY";
1711
1700
  };
1712
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
1701
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
1713
1702
  } & {
1714
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
1703
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
1715
1704
  };
1716
1705
  export declare const actionToggleTheme: {
1717
1706
  name: "toggleTheme";
@@ -1743,7 +1732,7 @@ export declare const actionToggleTheme: {
1743
1732
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1744
1733
  isBindingEnabled: boolean;
1745
1734
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
1746
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
1735
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
1747
1736
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
1748
1737
  frameRendering: {
1749
1738
  enabled: boolean;
@@ -1754,10 +1743,11 @@ export declare const actionToggleTheme: {
1754
1743
  editingFrame: string | null;
1755
1744
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
1756
1745
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1757
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
1746
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1758
1747
  activeTool: {
1759
1748
  lastActiveTool: import("../types").ActiveTool | null;
1760
1749
  locked: boolean;
1750
+ fromSelection: boolean;
1761
1751
  } & import("../types").ActiveTool;
1762
1752
  penMode: boolean;
1763
1753
  penDetected: boolean;
@@ -1791,7 +1781,7 @@ export declare const actionToggleTheme: {
1791
1781
  zoom: Readonly<{
1792
1782
  value: import("../types").NormalizedZoomValue;
1793
1783
  }>;
1794
- openMenu: "shape" | "canvas" | null;
1784
+ openMenu: "canvas" | "shape" | null;
1795
1785
  openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
1796
1786
  openSidebar: {
1797
1787
  name: string;
@@ -1873,8 +1863,8 @@ export declare const actionToggleTheme: {
1873
1863
  data: import("../charts").Spreadsheet;
1874
1864
  };
1875
1865
  pendingImageElementId: string | null;
1876
- showHyperlinkPopup: false | "editor" | "info";
1877
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
1866
+ showHyperlinkPopup: false | "info" | "editor";
1867
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1878
1868
  snapLines: readonly import("../snapping").SnapLine[];
1879
1869
  originSnapOffset: {
1880
1870
  x: number;
@@ -1885,23 +1875,21 @@ export declare const actionToggleTheme: {
1885
1875
  followedBy: Set<import("../types").SocketId>;
1886
1876
  isCropping: boolean;
1887
1877
  croppingElementId: string | null;
1888
- searchMatches: readonly {
1889
- id: string;
1890
- focus: boolean;
1891
- matchedLines: {
1892
- offsetX: number;
1893
- offsetY: number;
1894
- width: number;
1895
- height: number;
1896
- }[];
1897
- }[];
1878
+ searchMatches: Readonly<{
1879
+ focusedId: string | null;
1880
+ matches: readonly import("../types").SearchMatch[];
1881
+ }> | null;
1882
+ activeLockedId: string | null;
1883
+ lockedMultiSelections: {
1884
+ [groupId: string]: true;
1885
+ };
1898
1886
  };
1899
1887
  captureUpdate: "EVENTUALLY";
1900
1888
  };
1901
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
1889
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
1902
1890
  predicate: (elements: readonly ExcalidrawElement[], appState: AppState, props: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
1903
1891
  } & {
1904
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
1892
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
1905
1893
  };
1906
1894
  export declare const actionToggleEraserTool: {
1907
1895
  name: "toggleEraserTool";
@@ -1917,6 +1905,7 @@ export declare const actionToggleEraserTool: {
1917
1905
  activeTool: {
1918
1906
  lastActiveTool: import("../types").ActiveTool | null;
1919
1907
  locked: boolean;
1908
+ fromSelection: boolean;
1920
1909
  } & import("../types").ActiveTool;
1921
1910
  contextMenu: {
1922
1911
  items: import("../components/ContextMenu").ContextMenuItems;
@@ -1932,7 +1921,7 @@ export declare const actionToggleEraserTool: {
1932
1921
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1933
1922
  isBindingEnabled: boolean;
1934
1923
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
1935
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
1924
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
1936
1925
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
1937
1926
  frameRendering: {
1938
1927
  enabled: boolean;
@@ -1943,7 +1932,7 @@ export declare const actionToggleEraserTool: {
1943
1932
  editingFrame: string | null;
1944
1933
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
1945
1934
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1946
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
1935
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1947
1936
  penMode: boolean;
1948
1937
  penDetected: boolean;
1949
1938
  exportBackground: boolean;
@@ -1976,7 +1965,7 @@ export declare const actionToggleEraserTool: {
1976
1965
  zoom: Readonly<{
1977
1966
  value: import("../types").NormalizedZoomValue;
1978
1967
  }>;
1979
- openMenu: "shape" | "canvas" | null;
1968
+ openMenu: "canvas" | "shape" | null;
1980
1969
  openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
1981
1970
  openSidebar: {
1982
1971
  name: string;
@@ -2053,8 +2042,8 @@ export declare const actionToggleEraserTool: {
2053
2042
  data: import("../charts").Spreadsheet;
2054
2043
  };
2055
2044
  pendingImageElementId: string | null;
2056
- showHyperlinkPopup: false | "editor" | "info";
2057
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
2045
+ showHyperlinkPopup: false | "info" | "editor";
2046
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
2058
2047
  snapLines: readonly import("../snapping").SnapLine[];
2059
2048
  originSnapOffset: {
2060
2049
  x: number;
@@ -2065,27 +2054,202 @@ export declare const actionToggleEraserTool: {
2065
2054
  followedBy: Set<import("../types").SocketId>;
2066
2055
  isCropping: boolean;
2067
2056
  croppingElementId: string | null;
2068
- searchMatches: readonly {
2069
- id: string;
2070
- focus: boolean;
2071
- matchedLines: {
2072
- offsetX: number;
2073
- offsetY: number;
2074
- width: number;
2075
- height: number;
2076
- }[];
2077
- }[];
2057
+ searchMatches: Readonly<{
2058
+ focusedId: string | null;
2059
+ matches: readonly import("../types").SearchMatch[];
2060
+ }> | null;
2061
+ activeLockedId: string | null;
2062
+ lockedMultiSelections: {
2063
+ [groupId: string]: true;
2064
+ };
2078
2065
  };
2079
2066
  captureUpdate: "IMMEDIATELY";
2080
2067
  };
2081
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
2068
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
2069
+ } & {
2070
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
2071
+ };
2072
+ export declare const actionToggleLassoTool: {
2073
+ name: "toggleLassoTool";
2074
+ label: string;
2075
+ icon: import("react/jsx-runtime").JSX.Element;
2076
+ trackEvent: {
2077
+ category: "toolbar";
2078
+ };
2079
+ perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: any, app: import("../types").AppClassProperties) => {
2080
+ appState: {
2081
+ selectedElementIds: {};
2082
+ selectedGroupIds: {};
2083
+ activeEmbeddable: null;
2084
+ activeTool: {
2085
+ lastActiveTool: import("../types").ActiveTool | null;
2086
+ locked: boolean;
2087
+ fromSelection: boolean;
2088
+ } & import("../types").ActiveTool;
2089
+ contextMenu: {
2090
+ items: import("../components/ContextMenu").ContextMenuItems;
2091
+ top: number;
2092
+ left: number;
2093
+ } | null;
2094
+ showWelcomeScreen: boolean;
2095
+ isLoading: boolean;
2096
+ errorMessage: import("react").ReactNode;
2097
+ newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
2098
+ resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
2099
+ multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
2100
+ selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
2101
+ isBindingEnabled: boolean;
2102
+ startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
2103
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
2104
+ frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
2105
+ frameRendering: {
2106
+ enabled: boolean;
2107
+ name: boolean;
2108
+ outline: boolean;
2109
+ clip: boolean;
2110
+ };
2111
+ editingFrame: string | null;
2112
+ elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
2113
+ editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
2114
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
2115
+ penMode: boolean;
2116
+ penDetected: boolean;
2117
+ exportBackground: boolean;
2118
+ exportEmbedScene: boolean;
2119
+ exportWithDarkMode: boolean;
2120
+ exportScale: number;
2121
+ currentItemStrokeColor: string;
2122
+ currentItemBackgroundColor: string;
2123
+ currentItemFillStyle: import("@excalidraw/element/types").FillStyle;
2124
+ currentItemStrokeWidth: number;
2125
+ currentItemStrokeStyle: import("@excalidraw/element/types").StrokeStyle;
2126
+ currentItemRoughness: number;
2127
+ currentItemOpacity: number;
2128
+ currentItemFontFamily: number;
2129
+ currentItemFontSize: number;
2130
+ currentItemTextAlign: string;
2131
+ currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
2132
+ currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
2133
+ currentHoveredFontFamily: number | null;
2134
+ currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
2135
+ currentItemArrowType: "round" | "sharp" | "elbow";
2136
+ viewBackgroundColor: string;
2137
+ scrollX: number;
2138
+ scrollY: number;
2139
+ cursorButton: "up" | "down";
2140
+ scrolledOutside: boolean;
2141
+ name: string | null;
2142
+ isResizing: boolean;
2143
+ isRotating: boolean;
2144
+ zoom: Readonly<{
2145
+ value: import("../types").NormalizedZoomValue;
2146
+ }>;
2147
+ openMenu: "canvas" | "shape" | null;
2148
+ openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
2149
+ openSidebar: {
2150
+ name: string;
2151
+ tab?: string | undefined;
2152
+ } | null;
2153
+ openDialog: {
2154
+ name: "imageExport" | "help" | "jsonExport";
2155
+ } | {
2156
+ name: "ttd";
2157
+ tab: "text-to-diagram" | "mermaid";
2158
+ } | {
2159
+ name: "commandPalette";
2160
+ } | {
2161
+ name: "elementLinkSelector";
2162
+ sourceElementId: string;
2163
+ } | null;
2164
+ defaultSidebarDockedPreference: boolean;
2165
+ lastPointerDownWith: import("@excalidraw/element/types").PointerType;
2166
+ hoveredElementIds: Readonly<{
2167
+ [id: string]: true;
2168
+ }>;
2169
+ previousSelectedElementIds: {
2170
+ [id: string]: true;
2171
+ };
2172
+ selectedElementsAreBeingDragged: boolean;
2173
+ shouldCacheIgnoreZoom: boolean;
2174
+ toast: {
2175
+ message: string;
2176
+ closable?: boolean | undefined;
2177
+ duration?: number | undefined;
2178
+ } | null;
2179
+ zenModeEnabled: boolean;
2180
+ theme: import("@excalidraw/element/types").Theme;
2181
+ gridSize: number;
2182
+ gridStep: number;
2183
+ gridModeEnabled: boolean;
2184
+ viewModeEnabled: boolean;
2185
+ editingGroupId: string | null;
2186
+ width: number;
2187
+ height: number;
2188
+ offsetTop: number;
2189
+ offsetLeft: number;
2190
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
2191
+ collaborators: Map<import("../types").SocketId, Readonly<{
2192
+ pointer?: import("../types").CollaboratorPointer | undefined;
2193
+ button?: "up" | "down" | undefined;
2194
+ selectedElementIds?: Readonly<{
2195
+ [id: string]: true;
2196
+ }> | undefined;
2197
+ username?: string | null | undefined;
2198
+ userState?: import("@excalidraw/common").UserIdleState | undefined;
2199
+ color?: {
2200
+ background: string;
2201
+ stroke: string;
2202
+ } | undefined;
2203
+ avatarUrl?: string | undefined;
2204
+ id?: string | undefined;
2205
+ socketId?: import("../types").SocketId | undefined;
2206
+ isCurrentUser?: boolean | undefined;
2207
+ isInCall?: boolean | undefined;
2208
+ isSpeaking?: boolean | undefined;
2209
+ isMuted?: boolean | undefined;
2210
+ }>>;
2211
+ stats: {
2212
+ open: boolean;
2213
+ panels: number;
2214
+ };
2215
+ currentChartType: import("@excalidraw/element/types").ChartType;
2216
+ pasteDialog: {
2217
+ shown: false;
2218
+ data: null;
2219
+ } | {
2220
+ shown: true;
2221
+ data: import("../charts").Spreadsheet;
2222
+ };
2223
+ pendingImageElementId: string | null;
2224
+ showHyperlinkPopup: false | "info" | "editor";
2225
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
2226
+ snapLines: readonly import("../snapping").SnapLine[];
2227
+ originSnapOffset: {
2228
+ x: number;
2229
+ y: number;
2230
+ } | null;
2231
+ objectsSnapModeEnabled: boolean;
2232
+ userToFollow: import("../types").UserToFollow | null;
2233
+ followedBy: Set<import("../types").SocketId>;
2234
+ isCropping: boolean;
2235
+ croppingElementId: string | null;
2236
+ searchMatches: Readonly<{
2237
+ focusedId: string | null;
2238
+ matches: readonly import("../types").SearchMatch[];
2239
+ }> | null;
2240
+ activeLockedId: string | null;
2241
+ lockedMultiSelections: {
2242
+ [groupId: string]: true;
2243
+ };
2244
+ };
2245
+ captureUpdate: "NEVER";
2246
+ };
2082
2247
  } & {
2083
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
2248
+ keyTest?: undefined;
2084
2249
  };
2085
2250
  export declare const actionToggleHandTool: {
2086
2251
  name: "toggleHandTool";
2087
2252
  label: string;
2088
- paletteName: string;
2089
2253
  trackEvent: {
2090
2254
  category: "toolbar";
2091
2255
  };
@@ -2099,6 +2263,7 @@ export declare const actionToggleHandTool: {
2099
2263
  activeTool: {
2100
2264
  lastActiveTool: import("../types").ActiveTool | null;
2101
2265
  locked: boolean;
2266
+ fromSelection: boolean;
2102
2267
  } & import("../types").ActiveTool;
2103
2268
  contextMenu: {
2104
2269
  items: import("../components/ContextMenu").ContextMenuItems;
@@ -2114,7 +2279,7 @@ export declare const actionToggleHandTool: {
2114
2279
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
2115
2280
  isBindingEnabled: boolean;
2116
2281
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
2117
- suggestedBindings: import("@excalidraw/element/binding").SuggestedBinding[];
2282
+ suggestedBindings: import("@excalidraw/element").SuggestedBinding[];
2118
2283
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
2119
2284
  frameRendering: {
2120
2285
  enabled: boolean;
@@ -2125,7 +2290,7 @@ export declare const actionToggleHandTool: {
2125
2290
  editingFrame: string | null;
2126
2291
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
2127
2292
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
2128
- editingLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
2293
+ editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
2129
2294
  penMode: boolean;
2130
2295
  penDetected: boolean;
2131
2296
  exportBackground: boolean;
@@ -2158,7 +2323,7 @@ export declare const actionToggleHandTool: {
2158
2323
  zoom: Readonly<{
2159
2324
  value: import("../types").NormalizedZoomValue;
2160
2325
  }>;
2161
- openMenu: "shape" | "canvas" | null;
2326
+ openMenu: "canvas" | "shape" | null;
2162
2327
  openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
2163
2328
  openSidebar: {
2164
2329
  name: string;
@@ -2235,8 +2400,8 @@ export declare const actionToggleHandTool: {
2235
2400
  data: import("../charts").Spreadsheet;
2236
2401
  };
2237
2402
  pendingImageElementId: string | null;
2238
- showHyperlinkPopup: false | "editor" | "info";
2239
- selectedLinearElement: import("@excalidraw/element/linearElementEditor").LinearElementEditor | null;
2403
+ showHyperlinkPopup: false | "info" | "editor";
2404
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
2240
2405
  snapLines: readonly import("../snapping").SnapLine[];
2241
2406
  originSnapOffset: {
2242
2407
  x: number;
@@ -2247,20 +2412,18 @@ export declare const actionToggleHandTool: {
2247
2412
  followedBy: Set<import("../types").SocketId>;
2248
2413
  isCropping: boolean;
2249
2414
  croppingElementId: string | null;
2250
- searchMatches: readonly {
2251
- id: string;
2252
- focus: boolean;
2253
- matchedLines: {
2254
- offsetX: number;
2255
- offsetY: number;
2256
- width: number;
2257
- height: number;
2258
- }[];
2259
- }[];
2415
+ searchMatches: Readonly<{
2416
+ focusedId: string | null;
2417
+ matches: readonly import("../types").SearchMatch[];
2418
+ }> | null;
2419
+ activeLockedId: string | null;
2420
+ lockedMultiSelections: {
2421
+ [groupId: string]: true;
2422
+ };
2260
2423
  };
2261
2424
  captureUpdate: "IMMEDIATELY";
2262
2425
  };
2263
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
2426
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
2264
2427
  } & {
2265
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
2428
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
2266
2429
  };