@excalidraw/excalidraw 0.18.0-c4c0649 → 0.18.0-c6f8ef9

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 (130) hide show
  1. package/dist/dev/chunk-CP5DND7P.js +7 -0
  2. package/dist/dev/chunk-CP5DND7P.js.map +7 -0
  3. package/dist/dev/chunk-CRKRRBMD.js +5677 -0
  4. package/dist/dev/chunk-CRKRRBMD.js.map +7 -0
  5. package/dist/dev/{chunk-JCUIYZXF.js → chunk-QF5FRM6O.js} +6 -2
  6. package/dist/dev/chunk-QF5FRM6O.js.map +7 -0
  7. package/dist/dev/data/{image-SLEZBMLG.js → image-IWGLHPIX.js} +3 -3
  8. package/dist/dev/index.css +51 -20
  9. package/dist/dev/index.css.map +3 -3
  10. package/dist/dev/index.js +6874 -4280
  11. package/dist/dev/index.js.map +4 -4
  12. package/dist/dev/locales/{en-ZDTPSZNL.js → en-SMAPCEOQ.js} +2 -2
  13. package/dist/dev/subset-shared.chunk.js +1 -1
  14. package/dist/dev/subset-worker.chunk.js +1 -1
  15. package/dist/prod/chunk-A66AFZZU.js +7 -0
  16. package/dist/prod/chunk-HHV2PJKY.js +4 -0
  17. package/dist/prod/{chunk-GCFVWREF.js → chunk-I4UNSFV6.js} +4 -4
  18. package/dist/prod/data/image-4SM4COIL.js +1 -0
  19. package/dist/prod/index.css +1 -1
  20. package/dist/prod/index.js +25 -18
  21. package/dist/prod/locales/{en-MHZ26NAR.js → en-TYY6KWIJ.js} +1 -1
  22. package/dist/prod/subset-shared.chunk.js +1 -1
  23. package/dist/prod/subset-worker.chunk.js +1 -1
  24. package/dist/types/common/src/constants.d.ts +19 -3
  25. package/dist/types/common/src/utils.d.ts +3 -5
  26. package/dist/types/element/src/Scene.d.ts +7 -3
  27. package/dist/types/element/src/align.d.ts +2 -1
  28. package/dist/types/element/src/binding.d.ts +10 -7
  29. package/dist/types/element/src/bounds.d.ts +11 -3
  30. package/dist/types/element/src/collision.d.ts +18 -12
  31. package/dist/types/element/src/cropElement.d.ts +1 -1
  32. package/dist/types/element/src/delta.d.ts +42 -9
  33. package/dist/types/element/src/distance.d.ts +2 -2
  34. package/dist/types/element/src/distribute.d.ts +2 -1
  35. package/dist/types/element/src/fractionalIndex.d.ts +8 -2
  36. package/dist/types/element/src/frame.d.ts +2 -2
  37. package/dist/types/element/src/groups.d.ts +1 -0
  38. package/dist/types/element/src/index.d.ts +1 -3
  39. package/dist/types/element/src/linearElementEditor.d.ts +14 -23
  40. package/dist/types/element/src/mutateElement.d.ts +1 -1
  41. package/dist/types/element/src/newElement.d.ts +2 -1
  42. package/dist/types/element/src/resizeElements.d.ts +1 -0
  43. package/dist/types/element/src/selection.d.ts +1 -1
  44. package/dist/types/element/src/shape.d.ts +42 -0
  45. package/dist/types/element/src/sizeHelpers.d.ts +2 -1
  46. package/dist/types/element/src/store.d.ts +19 -9
  47. package/dist/types/element/src/transformHandles.d.ts +4 -4
  48. package/dist/types/element/src/typeChecks.d.ts +15 -1
  49. package/dist/types/element/src/types.d.ts +8 -3
  50. package/dist/types/element/src/utils.d.ts +16 -6
  51. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +21 -15
  52. package/dist/types/excalidraw/actions/actionAlign.d.ts +8 -8
  53. package/dist/types/excalidraw/actions/actionBoundText.d.ts +14 -10
  54. package/dist/types/excalidraw/actions/actionCanvas.d.ts +180 -154
  55. package/dist/types/excalidraw/actions/actionClipboard.d.ts +50 -36
  56. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +7 -5
  57. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +27 -20
  58. package/dist/types/excalidraw/actions/actionDistribute.d.ts +4 -4
  59. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -2
  60. package/dist/types/excalidraw/actions/actionElementLink.d.ts +6 -4
  61. package/dist/types/excalidraw/actions/actionElementLock.d.ts +29 -26
  62. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +7 -5
  63. package/dist/types/excalidraw/actions/actionExport.d.ts +147 -129
  64. package/dist/types/excalidraw/actions/actionFinalize.d.ts +65 -20
  65. package/dist/types/excalidraw/actions/actionFlip.d.ts +4 -4
  66. package/dist/types/excalidraw/actions/actionFrame.d.ts +78 -70
  67. package/dist/types/excalidraw/actions/actionGroup.d.ts +20 -16
  68. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +533 -7
  69. package/dist/types/excalidraw/actions/actionLink.d.ts +8 -6
  70. package/dist/types/excalidraw/actions/actionMenu.d.ts +22 -16
  71. package/dist/types/excalidraw/actions/actionNavigate.d.ts +14 -10
  72. package/dist/types/excalidraw/actions/actionProperties.d.ts +119 -81
  73. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +10 -8
  74. package/dist/types/excalidraw/actions/actionStyles.d.ts +11 -9
  75. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +9 -7
  76. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +9 -7
  77. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +8 -6
  78. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +9 -7
  79. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +9 -7
  80. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +9 -7
  81. package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -8
  82. package/dist/types/excalidraw/actions/types.d.ts +2 -1
  83. package/dist/types/excalidraw/appState.d.ts +29 -20
  84. package/dist/types/excalidraw/components/Actions.d.ts +0 -4
  85. package/dist/types/excalidraw/components/App.d.ts +15 -16
  86. package/dist/types/excalidraw/components/ButtonIcon.d.ts +1 -0
  87. package/dist/types/excalidraw/components/Ellipsify.d.ts +4 -0
  88. package/dist/types/excalidraw/components/{ButtonIconSelect.d.ts → RadioSelection.d.ts} +1 -1
  89. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +11 -1
  90. package/dist/types/excalidraw/components/UnlockPopup.d.ts +8 -0
  91. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -0
  92. package/dist/types/excalidraw/components/icons.d.ts +2 -0
  93. package/dist/types/excalidraw/components/shapes.d.ts +1 -1
  94. package/dist/types/excalidraw/data/blob.d.ts +1 -1
  95. package/dist/types/excalidraw/data/reconcile.d.ts +1 -0
  96. package/dist/types/excalidraw/data/restore.d.ts +6 -1
  97. package/dist/types/excalidraw/eraser/index.d.ts +0 -2
  98. package/dist/types/excalidraw/history.d.ts +21 -5
  99. package/dist/types/excalidraw/index.d.ts +2 -1
  100. package/dist/types/excalidraw/lasso/index.d.ts +1 -0
  101. package/dist/types/excalidraw/lasso/utils.d.ts +2 -1
  102. package/dist/types/excalidraw/renderer/helpers.d.ts +4 -4
  103. package/dist/types/excalidraw/renderer/staticScene.d.ts +4 -1
  104. package/dist/types/excalidraw/scene/Renderer.d.ts +0 -1
  105. package/dist/types/excalidraw/types.d.ts +15 -8
  106. package/dist/types/math/src/angle.d.ts +2 -0
  107. package/dist/types/math/src/constants.d.ts +3 -0
  108. package/dist/types/math/src/curve.d.ts +32 -0
  109. package/dist/types/math/src/index.d.ts +1 -0
  110. package/dist/types/math/src/point.d.ts +1 -1
  111. package/dist/types/math/src/rectangle.d.ts +2 -0
  112. package/dist/types/math/src/vector.d.ts +4 -2
  113. package/history.ts +107 -44
  114. package/package.json +12 -9
  115. package/dist/dev/chunk-HNRFOURL.js +0 -23482
  116. package/dist/dev/chunk-HNRFOURL.js.map +0 -7
  117. package/dist/dev/chunk-JCUIYZXF.js.map +0 -7
  118. package/dist/dev/chunk-VKWYDXFZ.js +0 -7
  119. package/dist/dev/chunk-VKWYDXFZ.js.map +0 -7
  120. package/dist/prod/chunk-G6SRO7HP.js +0 -7
  121. package/dist/prod/chunk-M3D5LUUK.js +0 -33
  122. package/dist/prod/data/image-PMKVN4IF.js +0 -1
  123. package/dist/types/element/src/Shape.d.ts +0 -17
  124. package/dist/types/element/src/ShapeCache.d.ts +0 -25
  125. package/dist/types/element/src/shapes.d.ts +0 -23
  126. package/dist/types/excalidraw/components/ButtonSelect.d.ts +0 -9
  127. package/dist/types/excalidraw/visualdebug.d.ts +0 -41
  128. package/dist/types/utils/src/collision.d.ts +0 -8
  129. /package/dist/dev/data/{image-SLEZBMLG.js.map → image-IWGLHPIX.js.map} +0 -0
  130. /package/dist/dev/locales/{en-ZDTPSZNL.js.map → en-SMAPCEOQ.js.map} +0 -0
@@ -12,13 +12,13 @@ export declare const actionSelectAll: {
12
12
  perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any, app: import("../types").AppClassProperties) => false | {
13
13
  appState: {
14
14
  selectedLinearElement: LinearElementEditor | null;
15
+ editingGroupId: string | null;
15
16
  selectedElementIds: Readonly<{
16
17
  [id: string]: true;
17
18
  }>;
18
19
  selectedGroupIds: {
19
20
  [groupId: string]: boolean;
20
21
  };
21
- editingGroupId: string | null;
22
22
  contextMenu: {
23
23
  items: import("../components/ContextMenu").ContextMenuItems;
24
24
  top: number;
@@ -29,7 +29,7 @@ export declare const actionSelectAll: {
29
29
  errorMessage: import("react").ReactNode;
30
30
  activeEmbeddable: {
31
31
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
32
- state: "hover" | "active";
32
+ state: "active" | "hover";
33
33
  } | null;
34
34
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
35
35
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -48,7 +48,6 @@ export declare const actionSelectAll: {
48
48
  editingFrame: string | null;
49
49
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
50
50
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
51
- editingLinearElement: LinearElementEditor | null;
52
51
  activeTool: {
53
52
  lastActiveTool: import("../types").ActiveTool | null;
54
53
  locked: boolean;
@@ -96,7 +95,7 @@ export declare const actionSelectAll: {
96
95
  name: "imageExport" | "help" | "jsonExport";
97
96
  } | {
98
97
  name: "ttd";
99
- tab: "text-to-diagram" | "mermaid";
98
+ tab: "mermaid" | "text-to-diagram";
100
99
  } | {
101
100
  name: "commandPalette";
102
101
  } | {
@@ -161,8 +160,7 @@ export declare const actionSelectAll: {
161
160
  shown: true;
162
161
  data: import("../charts").Spreadsheet;
163
162
  };
164
- pendingImageElementId: string | null;
165
- showHyperlinkPopup: false | "info" | "editor";
163
+ showHyperlinkPopup: false | "editor" | "info";
166
164
  snapLines: readonly import("../snapping").SnapLine[];
167
165
  originSnapOffset: {
168
166
  x: number;
@@ -177,10 +175,14 @@ export declare const actionSelectAll: {
177
175
  focusedId: string | null;
178
176
  matches: readonly import("../types").SearchMatch[];
179
177
  }> | null;
178
+ activeLockedId: string | null;
179
+ lockedMultiSelections: {
180
+ [groupId: string]: true;
181
+ };
180
182
  };
181
183
  captureUpdate: "IMMEDIATELY";
182
184
  };
183
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
185
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
184
186
  } & {
185
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
187
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
186
188
  };
@@ -22,7 +22,7 @@ export declare const actionCopyStyles: {
22
22
  errorMessage: import("react").ReactNode;
23
23
  activeEmbeddable: {
24
24
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
25
- state: "hover" | "active";
25
+ state: "active" | "hover";
26
26
  } | null;
27
27
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
28
28
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -41,7 +41,6 @@ export declare const actionCopyStyles: {
41
41
  editingFrame: string | null;
42
42
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
43
43
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
44
- editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
45
44
  activeTool: {
46
45
  lastActiveTool: import("../types").ActiveTool | null;
47
46
  locked: boolean;
@@ -89,7 +88,7 @@ export declare const actionCopyStyles: {
89
88
  name: "imageExport" | "help" | "jsonExport";
90
89
  } | {
91
90
  name: "ttd";
92
- tab: "text-to-diagram" | "mermaid";
91
+ tab: "mermaid" | "text-to-diagram";
93
92
  } | {
94
93
  name: "commandPalette";
95
94
  } | {
@@ -156,8 +155,7 @@ export declare const actionCopyStyles: {
156
155
  shown: true;
157
156
  data: import("../charts").Spreadsheet;
158
157
  };
159
- pendingImageElementId: string | null;
160
- showHyperlinkPopup: false | "info" | "editor";
158
+ showHyperlinkPopup: false | "editor" | "info";
161
159
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
162
160
  snapLines: readonly import("../snapping").SnapLine[];
163
161
  originSnapOffset: {
@@ -173,12 +171,16 @@ export declare const actionCopyStyles: {
173
171
  focusedId: string | null;
174
172
  matches: readonly import("../types").SearchMatch[];
175
173
  }> | null;
174
+ activeLockedId: string | null;
175
+ lockedMultiSelections: {
176
+ [groupId: string]: true;
177
+ };
176
178
  };
177
179
  captureUpdate: "EVENTUALLY";
178
180
  };
179
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
181
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
180
182
  } & {
181
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
183
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
182
184
  };
183
185
  export declare const actionPasteStyles: {
184
186
  name: "pasteStyles";
@@ -194,7 +196,7 @@ export declare const actionPasteStyles: {
194
196
  elements: import("@excalidraw/element/types").OrderedExcalidrawElement[];
195
197
  captureUpdate: "IMMEDIATELY";
196
198
  };
197
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
199
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
198
200
  } & {
199
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
201
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
200
202
  };
@@ -24,7 +24,7 @@ export declare const actionToggleGridMode: {
24
24
  errorMessage: import("react").ReactNode;
25
25
  activeEmbeddable: {
26
26
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
27
- state: "hover" | "active";
27
+ state: "active" | "hover";
28
28
  } | null;
29
29
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
30
30
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -43,7 +43,6 @@ export declare const actionToggleGridMode: {
43
43
  editingFrame: string | null;
44
44
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
45
45
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
46
- editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
47
46
  activeTool: {
48
47
  lastActiveTool: import("../types").ActiveTool | null;
49
48
  locked: boolean;
@@ -91,7 +90,7 @@ export declare const actionToggleGridMode: {
91
90
  name: "imageExport" | "help" | "jsonExport";
92
91
  } | {
93
92
  name: "ttd";
94
- tab: "text-to-diagram" | "mermaid";
93
+ tab: "mermaid" | "text-to-diagram";
95
94
  } | {
96
95
  name: "commandPalette";
97
96
  } | {
@@ -162,8 +161,7 @@ export declare const actionToggleGridMode: {
162
161
  shown: true;
163
162
  data: import("../charts").Spreadsheet;
164
163
  };
165
- pendingImageElementId: string | null;
166
- showHyperlinkPopup: false | "info" | "editor";
164
+ showHyperlinkPopup: false | "editor" | "info";
167
165
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
168
166
  snapLines: readonly import("../snapping").SnapLine[];
169
167
  originSnapOffset: {
@@ -178,12 +176,16 @@ export declare const actionToggleGridMode: {
178
176
  focusedId: string | null;
179
177
  matches: readonly import("../types").SearchMatch[];
180
178
  }> | null;
179
+ activeLockedId: string | null;
180
+ lockedMultiSelections: {
181
+ [groupId: string]: true;
182
+ };
181
183
  };
182
184
  captureUpdate: "EVENTUALLY";
183
185
  };
184
186
  checked: (appState: AppState) => boolean;
185
187
  predicate: (element: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: AppState, props: import("../types").ExcalidrawProps) => boolean;
186
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
188
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
187
189
  } & {
188
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
190
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
189
191
  };
@@ -22,7 +22,7 @@ export declare const actionToggleObjectsSnapMode: {
22
22
  errorMessage: import("react").ReactNode;
23
23
  activeEmbeddable: {
24
24
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
25
- state: "hover" | "active";
25
+ state: "active" | "hover";
26
26
  } | null;
27
27
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
28
28
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -41,7 +41,6 @@ export declare const actionToggleObjectsSnapMode: {
41
41
  editingFrame: string | null;
42
42
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
43
43
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
44
- editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
45
44
  activeTool: {
46
45
  lastActiveTool: import("../types").ActiveTool | null;
47
46
  locked: boolean;
@@ -89,7 +88,7 @@ export declare const actionToggleObjectsSnapMode: {
89
88
  name: "imageExport" | "help" | "jsonExport";
90
89
  } | {
91
90
  name: "ttd";
92
- tab: "text-to-diagram" | "mermaid";
91
+ tab: "mermaid" | "text-to-diagram";
93
92
  } | {
94
93
  name: "commandPalette";
95
94
  } | {
@@ -160,8 +159,7 @@ export declare const actionToggleObjectsSnapMode: {
160
159
  shown: true;
161
160
  data: import("../charts").Spreadsheet;
162
161
  };
163
- pendingImageElementId: string | null;
164
- showHyperlinkPopup: false | "info" | "editor";
162
+ showHyperlinkPopup: false | "editor" | "info";
165
163
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
166
164
  snapLines: readonly import("../snapping").SnapLine[];
167
165
  originSnapOffset: {
@@ -176,12 +174,16 @@ export declare const actionToggleObjectsSnapMode: {
176
174
  focusedId: string | null;
177
175
  matches: readonly import("../types").SearchMatch[];
178
176
  }> | null;
177
+ activeLockedId: string | null;
178
+ lockedMultiSelections: {
179
+ [groupId: string]: true;
180
+ };
179
181
  };
180
182
  captureUpdate: "EVENTUALLY";
181
183
  };
182
184
  checked: (appState: Readonly<import("../types").AppState>) => boolean;
183
185
  predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
184
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
186
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
185
187
  } & {
186
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
188
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
187
189
  };
@@ -28,7 +28,7 @@ export declare const actionToggleSearchMenu: {
28
28
  errorMessage: import("react").ReactNode;
29
29
  activeEmbeddable: {
30
30
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
31
- state: "hover" | "active";
31
+ state: "active" | "hover";
32
32
  } | null;
33
33
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
34
34
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -47,7 +47,6 @@ export declare const actionToggleSearchMenu: {
47
47
  editingFrame: string | null;
48
48
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
49
49
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
50
- editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
51
50
  activeTool: {
52
51
  lastActiveTool: import("../types").ActiveTool | null;
53
52
  locked: boolean;
@@ -152,8 +151,7 @@ export declare const actionToggleSearchMenu: {
152
151
  shown: true;
153
152
  data: import("../charts").Spreadsheet;
154
153
  };
155
- pendingImageElementId: string | null;
156
- showHyperlinkPopup: false | "info" | "editor";
154
+ showHyperlinkPopup: false | "editor" | "info";
157
155
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
158
156
  snapLines: readonly import("../snapping").SnapLine[];
159
157
  originSnapOffset: {
@@ -169,12 +167,16 @@ export declare const actionToggleSearchMenu: {
169
167
  focusedId: string | null;
170
168
  matches: readonly import("../types").SearchMatch[];
171
169
  }> | null;
170
+ activeLockedId: string | null;
171
+ lockedMultiSelections: {
172
+ [groupId: string]: true;
173
+ };
172
174
  };
173
175
  captureUpdate: "EVENTUALLY";
174
176
  };
175
177
  checked: (appState: AppState) => boolean;
176
178
  predicate: (element: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: AppState, props: import("../types").ExcalidrawProps) => boolean;
177
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
179
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
178
180
  } & {
179
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
181
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
180
182
  };
@@ -24,7 +24,7 @@ export declare const actionToggleStats: {
24
24
  errorMessage: import("react").ReactNode;
25
25
  activeEmbeddable: {
26
26
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
27
- state: "hover" | "active";
27
+ state: "active" | "hover";
28
28
  } | null;
29
29
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
30
30
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -43,7 +43,6 @@ export declare const actionToggleStats: {
43
43
  editingFrame: string | null;
44
44
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
45
45
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
46
- editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
47
46
  activeTool: {
48
47
  lastActiveTool: import("../types").ActiveTool | null;
49
48
  locked: boolean;
@@ -91,7 +90,7 @@ export declare const actionToggleStats: {
91
90
  name: "imageExport" | "help" | "jsonExport";
92
91
  } | {
93
92
  name: "ttd";
94
- tab: "text-to-diagram" | "mermaid";
93
+ tab: "mermaid" | "text-to-diagram";
95
94
  } | {
96
95
  name: "commandPalette";
97
96
  } | {
@@ -159,8 +158,7 @@ export declare const actionToggleStats: {
159
158
  shown: true;
160
159
  data: import("../charts").Spreadsheet;
161
160
  };
162
- pendingImageElementId: string | null;
163
- showHyperlinkPopup: false | "info" | "editor";
161
+ showHyperlinkPopup: false | "editor" | "info";
164
162
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
165
163
  snapLines: readonly import("../snapping").SnapLine[];
166
164
  originSnapOffset: {
@@ -176,11 +174,15 @@ export declare const actionToggleStats: {
176
174
  focusedId: string | null;
177
175
  matches: readonly import("../types").SearchMatch[];
178
176
  }> | null;
177
+ activeLockedId: string | null;
178
+ lockedMultiSelections: {
179
+ [groupId: string]: true;
180
+ };
179
181
  };
180
182
  captureUpdate: "EVENTUALLY";
181
183
  };
182
184
  checked: (appState: Readonly<import("../types").AppState>) => boolean;
183
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
185
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
184
186
  } & {
185
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
187
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
186
188
  };
@@ -21,7 +21,7 @@ export declare const actionToggleViewMode: {
21
21
  errorMessage: import("react").ReactNode;
22
22
  activeEmbeddable: {
23
23
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
24
- state: "hover" | "active";
24
+ state: "active" | "hover";
25
25
  } | null;
26
26
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
27
27
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -40,7 +40,6 @@ export declare const actionToggleViewMode: {
40
40
  editingFrame: string | null;
41
41
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
42
42
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
43
- editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
44
43
  activeTool: {
45
44
  lastActiveTool: import("../types").ActiveTool | null;
46
45
  locked: boolean;
@@ -88,7 +87,7 @@ export declare const actionToggleViewMode: {
88
87
  name: "imageExport" | "help" | "jsonExport";
89
88
  } | {
90
89
  name: "ttd";
91
- tab: "text-to-diagram" | "mermaid";
90
+ tab: "mermaid" | "text-to-diagram";
92
91
  } | {
93
92
  name: "commandPalette";
94
93
  } | {
@@ -159,8 +158,7 @@ export declare const actionToggleViewMode: {
159
158
  shown: true;
160
159
  data: import("../charts").Spreadsheet;
161
160
  };
162
- pendingImageElementId: string | null;
163
- showHyperlinkPopup: false | "info" | "editor";
161
+ showHyperlinkPopup: false | "editor" | "info";
164
162
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
165
163
  snapLines: readonly import("../snapping").SnapLine[];
166
164
  originSnapOffset: {
@@ -176,12 +174,16 @@ export declare const actionToggleViewMode: {
176
174
  focusedId: string | null;
177
175
  matches: readonly import("../types").SearchMatch[];
178
176
  }> | null;
177
+ activeLockedId: string | null;
178
+ lockedMultiSelections: {
179
+ [groupId: string]: true;
180
+ };
179
181
  };
180
182
  captureUpdate: "EVENTUALLY";
181
183
  };
182
184
  checked: (appState: Readonly<import("../types").AppState>) => boolean;
183
185
  predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
184
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
186
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
185
187
  } & {
186
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
188
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
187
189
  };
@@ -21,7 +21,7 @@ export declare const actionToggleZenMode: {
21
21
  errorMessage: import("react").ReactNode;
22
22
  activeEmbeddable: {
23
23
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
24
- state: "hover" | "active";
24
+ state: "active" | "hover";
25
25
  } | null;
26
26
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
27
27
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -40,7 +40,6 @@ export declare const actionToggleZenMode: {
40
40
  editingFrame: string | null;
41
41
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
42
42
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
43
- editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
44
43
  activeTool: {
45
44
  lastActiveTool: import("../types").ActiveTool | null;
46
45
  locked: boolean;
@@ -88,7 +87,7 @@ export declare const actionToggleZenMode: {
88
87
  name: "imageExport" | "help" | "jsonExport";
89
88
  } | {
90
89
  name: "ttd";
91
- tab: "text-to-diagram" | "mermaid";
90
+ tab: "mermaid" | "text-to-diagram";
92
91
  } | {
93
92
  name: "commandPalette";
94
93
  } | {
@@ -159,8 +158,7 @@ export declare const actionToggleZenMode: {
159
158
  shown: true;
160
159
  data: import("../charts").Spreadsheet;
161
160
  };
162
- pendingImageElementId: string | null;
163
- showHyperlinkPopup: false | "info" | "editor";
161
+ showHyperlinkPopup: false | "editor" | "info";
164
162
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
165
163
  snapLines: readonly import("../snapping").SnapLine[];
166
164
  originSnapOffset: {
@@ -176,12 +174,16 @@ export declare const actionToggleZenMode: {
176
174
  focusedId: string | null;
177
175
  matches: readonly import("../types").SearchMatch[];
178
176
  }> | null;
177
+ activeLockedId: string | null;
178
+ lockedMultiSelections: {
179
+ [groupId: string]: true;
180
+ };
179
181
  };
180
182
  captureUpdate: "EVENTUALLY";
181
183
  };
182
184
  checked: (appState: Readonly<import("../types").AppState>) => boolean;
183
185
  predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
184
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
186
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
185
187
  } & {
186
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
188
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
187
189
  };
@@ -13,10 +13,10 @@ export declare const actionSendBackward: {
13
13
  captureUpdate: "IMMEDIATELY";
14
14
  };
15
15
  keyPriority: number;
16
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
16
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
17
17
  PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
18
18
  } & {
19
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
19
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
20
20
  };
21
21
  export declare const actionBringForward: {
22
22
  name: "bringForward";
@@ -32,10 +32,10 @@ export declare const actionBringForward: {
32
32
  captureUpdate: "IMMEDIATELY";
33
33
  };
34
34
  keyPriority: number;
35
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
35
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
36
36
  PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
37
37
  } & {
38
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
38
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
39
39
  };
40
40
  export declare const actionSendToBack: {
41
41
  name: "sendToBack";
@@ -50,10 +50,10 @@ export declare const actionSendToBack: {
50
50
  appState: Readonly<import("../types").AppState>;
51
51
  captureUpdate: "IMMEDIATELY";
52
52
  };
53
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
53
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
54
54
  PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
55
55
  } & {
56
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
56
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
57
57
  };
58
58
  export declare const actionBringToFront: {
59
59
  name: "bringToFront";
@@ -68,8 +68,8 @@ export declare const actionBringToFront: {
68
68
  appState: Readonly<import("../types").AppState>;
69
69
  captureUpdate: "IMMEDIATELY";
70
70
  };
71
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
71
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
72
72
  PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
73
73
  } & {
74
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
74
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
75
75
  };
@@ -14,7 +14,7 @@ export type ActionResult = {
14
14
  type ActionFn = (elements: readonly OrderedExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
15
15
  export type UpdaterFn = (res: ActionResult) => void;
16
16
  export type ActionFilterFn = (action: Action) => void;
17
- export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor" | "wrapSelectionInFrame" | "toggleLassoTool" | "toggleShapeSwitch";
17
+ export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor" | "wrapSelectionInFrame" | "toggleLassoTool" | "toggleShapeSwitch" | "togglePolygon";
18
18
  export type PanelComponentProps = {
19
19
  elements: readonly ExcalidrawElement[];
20
20
  appState: AppState;
@@ -22,6 +22,7 @@ export type PanelComponentProps = {
22
22
  appProps: ExcalidrawProps;
23
23
  data?: Record<string, any>;
24
24
  app: AppClassProperties;
25
+ renderAction: (name: ActionName, data?: PanelComponentProps["data"]) => React.JSX.Element | null;
25
26
  };
26
27
  export interface Action {
27
28
  name: ActionName;
@@ -1,14 +1,23 @@
1
1
  import type { AppState, NormalizedZoomValue } from "./types";
2
2
  export declare const getDefaultAppState: () => Omit<AppState, "offsetTop" | "offsetLeft" | "width" | "height">;
3
3
  export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>) => {
4
- stats?: {
5
- open: boolean;
6
- panels: number;
7
- } | undefined;
8
- exportWithDarkMode?: boolean | undefined;
9
- cursorButton?: "up" | "down" | undefined;
4
+ viewBackgroundColor?: string | undefined;
5
+ name?: string | null | undefined;
6
+ zoom?: Readonly<{
7
+ value: NormalizedZoomValue;
8
+ }> | undefined;
10
9
  scrollX?: number | undefined;
11
10
  scrollY?: number | undefined;
11
+ editingGroupId?: string | null | undefined;
12
+ selectedElementIds?: Readonly<{
13
+ [id: string]: true;
14
+ }> | undefined;
15
+ theme?: import("@excalidraw/element/types").Theme | undefined;
16
+ selectedGroupIds?: {
17
+ [groupId: string]: boolean;
18
+ } | undefined;
19
+ selectedLinearElement?: import("@excalidraw/element").LinearElementEditor | null | undefined;
20
+ zenModeEnabled?: boolean | undefined;
12
21
  showWelcomeScreen?: boolean | undefined;
13
22
  activeTool?: ({
14
23
  lastActiveTool: import("./types").ActiveTool | null;
@@ -19,6 +28,7 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
19
28
  penDetected?: boolean | undefined;
20
29
  exportBackground?: boolean | undefined;
21
30
  exportEmbedScene?: boolean | undefined;
31
+ exportWithDarkMode?: boolean | undefined;
22
32
  exportScale?: number | undefined;
23
33
  currentItemStrokeColor?: string | undefined;
24
34
  currentItemBackgroundColor?: string | undefined;
@@ -34,12 +44,8 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
34
44
  currentItemEndArrowhead?: import("@excalidraw/element/types").Arrowhead | null | undefined;
35
45
  currentItemRoundness?: import("@excalidraw/element/types").StrokeRoundness | undefined;
36
46
  currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
37
- viewBackgroundColor?: string | undefined;
47
+ cursorButton?: "up" | "down" | undefined;
38
48
  scrolledOutside?: boolean | undefined;
39
- name?: string | null | undefined;
40
- zoom?: Readonly<{
41
- value: NormalizedZoomValue;
42
- }> | undefined;
43
49
  openMenu?: "canvas" | "shape" | null | undefined;
44
50
  openSidebar?: {
45
51
  name: string;
@@ -47,37 +53,40 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
47
53
  } | null | undefined;
48
54
  defaultSidebarDockedPreference?: boolean | undefined;
49
55
  lastPointerDownWith?: import("@excalidraw/element/types").PointerType | undefined;
50
- selectedElementIds?: Readonly<{
51
- [id: string]: true;
52
- }> | undefined;
53
56
  previousSelectedElementIds?: {
54
57
  [id: string]: true;
55
58
  } | undefined;
56
59
  shouldCacheIgnoreZoom?: boolean | undefined;
57
- zenModeEnabled?: boolean | undefined;
58
- theme?: import("@excalidraw/element/types").Theme | undefined;
59
60
  gridSize?: number | undefined;
60
61
  gridStep?: number | undefined;
61
62
  gridModeEnabled?: boolean | undefined;
62
- selectedGroupIds?: {
63
- [groupId: string]: boolean;
63
+ stats?: {
64
+ open: boolean;
65
+ panels: number;
64
66
  } | undefined;
65
- editingGroupId?: string | null | undefined;
66
67
  currentChartType?: import("@excalidraw/element/types").ChartType | undefined;
67
- selectedLinearElement?: import("@excalidraw/element").LinearElementEditor | null | undefined;
68
68
  objectsSnapModeEnabled?: boolean | undefined;
69
+ lockedMultiSelections?: {
70
+ [groupId: string]: true;
71
+ } | undefined;
69
72
  };
70
73
  export declare const cleanAppStateForExport: (appState: Partial<AppState>) => {
71
74
  viewBackgroundColor?: string | undefined;
72
75
  gridSize?: number | undefined;
73
76
  gridStep?: number | undefined;
74
77
  gridModeEnabled?: boolean | undefined;
78
+ lockedMultiSelections?: {
79
+ [groupId: string]: true;
80
+ } | undefined;
75
81
  };
76
82
  export declare const clearAppStateForDatabase: (appState: Partial<AppState>) => {
77
83
  viewBackgroundColor?: string | undefined;
78
84
  gridSize?: number | undefined;
79
85
  gridStep?: number | undefined;
80
86
  gridModeEnabled?: boolean | undefined;
87
+ lockedMultiSelections?: {
88
+ [groupId: string]: true;
89
+ } | undefined;
81
90
  };
82
91
  export declare const isEraserActive: ({ activeTool, }: {
83
92
  activeTool: AppState["activeTool"];
@@ -28,7 +28,3 @@ export declare const ExitZenModeAction: ({ actionManager, showExitZenModeBtn, }:
28
28
  actionManager: ActionManager;
29
29
  showExitZenModeBtn: boolean;
30
30
  }) => import("react/jsx-runtime").JSX.Element;
31
- export declare const FinalizeAction: ({ renderAction, className, }: {
32
- renderAction: ActionManager["renderAction"];
33
- className?: string | undefined;
34
- }) => import("react/jsx-runtime").JSX.Element;