@dwelle/excalidraw 0.4.0-e80989b → 0.4.0-eadd4b9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/CHANGELOG.md +458 -0
  2. package/README.md +16 -1424
  3. package/dist/excalidraw.development.js +1829 -500
  4. package/dist/excalidraw.production.min.js +1 -1
  5. package/dist/excalidraw.production.min.js.LICENSE.txt +20 -0
  6. package/package.json +3 -3
  7. package/types/actions/actionAddToLibrary.d.ts +68 -34
  8. package/types/actions/actionAlign.d.ts +12 -18
  9. package/types/actions/actionBoundText.d.ts +158 -19
  10. package/types/actions/actionCanvas.d.ts +430 -118
  11. package/types/actions/actionClipboard.d.ts +132 -59
  12. package/types/actions/actionDeleteSelected.d.ts +72 -41
  13. package/types/actions/actionDistribute.d.ts +2 -6
  14. package/types/actions/actionDuplicateSelection.d.ts +2 -4
  15. package/types/actions/actionElementLock.d.ts +254 -0
  16. package/types/actions/actionExport.d.ts +215 -131
  17. package/types/actions/actionFinalize.d.ts +47 -27
  18. package/types/actions/actionFlip.d.ts +2 -4
  19. package/types/actions/actionFrame.d.ts +397 -0
  20. package/types/actions/actionGroup.d.ts +6 -10
  21. package/types/actions/actionHistory.d.ts +1 -1
  22. package/types/actions/actionLinearEditor.d.ts +25 -13
  23. package/types/actions/actionMenu.d.ts +73 -46
  24. package/types/actions/actionNavigate.d.ts +2 -3
  25. package/types/actions/actionProperties.d.ts +315 -198
  26. package/types/actions/actionStyles.d.ts +23 -12
  27. package/types/actions/actionToggleGridMode.d.ts +25 -12
  28. package/types/actions/actionToggleStats.d.ts +24 -12
  29. package/types/actions/actionToggleViewMode.d.ts +25 -12
  30. package/types/actions/actionToggleZenMode.d.ts +25 -12
  31. package/types/actions/actionZindex.d.ts +8 -16
  32. package/types/actions/index.d.ts +1 -1
  33. package/types/actions/manager.d.ts +3 -2
  34. package/types/actions/shortcuts.d.ts +2 -1
  35. package/types/actions/types.d.ts +13 -11
  36. package/types/appState.d.ts +16 -12
  37. package/types/charts.d.ts +2 -2
  38. package/types/clients.d.ts +5 -6
  39. package/types/clipboard.d.ts +2 -2
  40. package/types/colors.d.ts +60 -5
  41. package/types/components/Actions.d.ts +5 -5
  42. package/types/components/ActiveConfirmDialog.d.ts +4 -0
  43. package/types/components/App.d.ts +52 -68
  44. package/types/components/Avatar.d.ts +1 -2
  45. package/types/components/BraveMeasureTextError.d.ts +2 -0
  46. package/types/components/Button.d.ts +17 -0
  47. package/types/components/ButtonIconSelect.d.ts +11 -3
  48. package/types/components/Card.d.ts +7 -0
  49. package/types/components/ColorPicker/ColorInput.d.ts +7 -0
  50. package/types/components/ColorPicker/ColorPicker.d.ts +19 -0
  51. package/types/components/ColorPicker/CustomColorList.d.ts +8 -0
  52. package/types/components/ColorPicker/HotkeyLabel.d.ts +8 -0
  53. package/types/components/ColorPicker/Picker.d.ts +18 -0
  54. package/types/components/ColorPicker/PickerColorList.d.ts +10 -0
  55. package/types/components/ColorPicker/PickerHeading.d.ts +5 -0
  56. package/types/components/ColorPicker/ShadeList.d.ts +8 -0
  57. package/types/components/ColorPicker/TopPicks.d.ts +9 -0
  58. package/types/components/ColorPicker/colorPickerUtils.d.ts +21 -0
  59. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +21 -0
  60. package/types/components/ContextMenu.d.ts +9 -22
  61. package/types/components/DefaultSidebar.d.ts +30 -0
  62. package/types/components/Dialog.d.ts +2 -4
  63. package/types/components/ErrorDialog.d.ts +3 -2
  64. package/types/components/EyeDropper.d.ts +18 -0
  65. package/types/components/FilledButton.d.ts +16 -0
  66. package/types/components/FixedSideContainer.d.ts +1 -1
  67. package/types/components/HandButton.d.ts +10 -0
  68. package/types/components/HelpButton.d.ts +1 -2
  69. package/types/components/HintViewer.d.ts +2 -2
  70. package/types/components/HomeButton.d.ts +1 -1
  71. package/types/components/ImageExportDialog.d.ts +8 -13
  72. package/types/components/Island.d.ts +1 -1
  73. package/types/components/JSONExportDialog.d.ts +6 -4
  74. package/types/components/LayerUI.d.ts +7 -15
  75. package/types/components/LibraryMenu.d.ts +13 -14
  76. package/types/components/LibraryMenuBrowseButton.d.ts +2 -2
  77. package/types/components/LibraryMenuControlButtons.d.ts +9 -0
  78. package/types/components/LibraryMenuHeaderContent.d.ts +11 -5
  79. package/types/components/LibraryMenuItems.d.ts +6 -7
  80. package/types/components/LibraryMenuSection.d.ts +22 -0
  81. package/types/components/LibraryUnit.d.ts +7 -3
  82. package/types/components/LockButton.d.ts +1 -2
  83. package/types/components/MobileMenu.d.ts +8 -11
  84. package/types/components/PasteChartDialog.d.ts +4 -5
  85. package/types/components/PenModeButton.d.ts +1 -1
  86. package/types/components/Popover.d.ts +1 -1
  87. package/types/components/ProjectName.d.ts +2 -1
  88. package/types/components/PublishLibrary.d.ts +2 -2
  89. package/types/components/RadioGroup.d.ts +12 -0
  90. package/types/components/Sidebar/Sidebar.d.ts +66 -63
  91. package/types/components/Sidebar/SidebarHeader.d.ts +6 -19
  92. package/types/components/Sidebar/SidebarTab.d.ts +9 -0
  93. package/types/components/Sidebar/SidebarTabTrigger.d.ts +10 -0
  94. package/types/components/Sidebar/SidebarTabTriggers.d.ts +7 -0
  95. package/types/components/Sidebar/SidebarTabs.d.ts +7 -0
  96. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -0
  97. package/types/components/Sidebar/common.d.ts +24 -7
  98. package/types/components/Spinner.d.ts +2 -1
  99. package/types/components/Stack.d.ts +4 -3
  100. package/types/components/Stats.d.ts +3 -3
  101. package/types/components/Switch.d.ts +9 -0
  102. package/types/components/ToolButton.d.ts +6 -5
  103. package/types/components/Tooltip.d.ts +1 -1
  104. package/types/components/Trans.d.ts +8 -0
  105. package/types/components/UserList.d.ts +0 -2
  106. package/types/components/dropdownMenu/DropdownMenu.d.ts +67 -0
  107. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +15 -0
  108. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
  109. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +12 -0
  110. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +6 -0
  111. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +6 -0
  112. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +13 -0
  113. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
  114. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +11 -0
  115. package/types/components/dropdownMenu/common.d.ts +6 -0
  116. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
  117. package/types/components/footer/Footer.d.ts +12 -0
  118. package/types/components/footer/FooterCenter.d.ts +8 -0
  119. package/types/components/hoc/withInternalFallback.d.ts +4 -0
  120. package/types/components/icons.d.ts +13 -2
  121. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +10 -0
  122. package/types/components/main-menu/DefaultItems.d.ts +47 -0
  123. package/types/components/main-menu/MainMenu.d.ts +61 -0
  124. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +58 -0
  125. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
  126. package/types/components/welcome-screen/WelcomeScreen.d.ts +85 -0
  127. package/types/constants.d.ts +73 -16
  128. package/types/context/tunnels.d.ts +18 -0
  129. package/types/context/ui-appState.d.ts +4 -0
  130. package/types/data/blob.d.ts +3 -2
  131. package/types/data/encode.d.ts +1 -1
  132. package/types/data/filesystem.d.ts +2 -1
  133. package/types/data/index.d.ts +1 -1
  134. package/types/data/library.d.ts +3 -45
  135. package/types/data/restore.d.ts +10 -4
  136. package/types/data/types.d.ts +3 -5
  137. package/types/element/Hyperlink.d.ts +27 -18
  138. package/types/element/binding.d.ts +3 -3
  139. package/types/element/bounds.d.ts +32 -7
  140. package/types/element/collision.d.ts +7 -7
  141. package/types/element/dragElements.d.ts +2 -1
  142. package/types/element/image.d.ts +11 -1
  143. package/types/element/index.d.ts +3 -2
  144. package/types/element/linearElementEditor.d.ts +24 -13
  145. package/types/element/mutateElement.d.ts +2 -1
  146. package/types/element/newElement.d.ts +37 -11
  147. package/types/element/resizeElements.d.ts +1 -0
  148. package/types/element/showSelectedShapeActions.d.ts +2 -2
  149. package/types/element/sortElements.d.ts +2 -0
  150. package/types/element/textElement.d.ts +40 -5
  151. package/types/element/textWysiwyg.d.ts +6 -1
  152. package/types/element/transformHandles.d.ts +12 -5
  153. package/types/element/typeChecks.d.ts +12 -2
  154. package/types/element/types.d.ts +53 -36
  155. package/types/emitter.d.ts +1 -1
  156. package/types/errors.d.ts +1 -1
  157. package/types/frame.d.ts +40 -0
  158. package/types/ga.d.ts +5 -5
  159. package/types/groups.d.ts +4 -0
  160. package/types/hooks/useCreatePortalContainer.d.ts +4 -0
  161. package/types/hooks/useLibraryItemSvg.d.ts +11 -0
  162. package/types/hooks/useOutsideClick.d.ts +19 -1
  163. package/types/hooks/useScrollPosition.d.ts +2 -0
  164. package/types/hooks/useTransition.d.ts +2 -0
  165. package/types/i18n.d.ts +7 -1
  166. package/types/jotai.d.ts +20 -108
  167. package/types/keys.d.ts +4 -4
  168. package/types/math.d.ts +4 -1
  169. package/types/packages/excalidraw/example/App.d.ts +7 -1
  170. package/types/packages/excalidraw/example/CustomFooter.d.ts +5 -0
  171. package/types/packages/excalidraw/example/MobileFooter.d.ts +5 -0
  172. package/types/packages/excalidraw/example/initialData.d.ts +6 -0
  173. package/types/packages/excalidraw/index.d.ts +17 -3
  174. package/types/packages/utils.d.ts +26 -25
  175. package/types/renderer/renderElement.d.ts +7 -5
  176. package/types/renderer/renderScene.d.ts +13 -6
  177. package/types/renderer/roundRect.d.ts +1 -1
  178. package/types/scene/Scene.d.ts +12 -5
  179. package/types/scene/comparisons.d.ts +1 -1
  180. package/types/scene/export.d.ts +157 -10
  181. package/types/scene/index.d.ts +1 -1
  182. package/types/scene/selection.d.ts +15 -5
  183. package/types/scene/types.d.ts +13 -5
  184. package/types/types.d.ts +126 -77
  185. package/types/utility-types.d.ts +22 -0
  186. package/types/utils.d.ts +40 -9
  187. package/types/zindex.d.ts +4 -4
  188. package/types/actions/actionToggleLock.d.ts +0 -116
  189. package/types/components/ActiveFile.d.ts +0 -7
  190. package/types/components/ClearCanvas.d.ts +0 -4
  191. package/types/components/CollabButton.d.ts +0 -6
  192. package/types/components/ColorPicker.d.ts +0 -14
  193. package/types/components/Footer.d.ts +0 -10
  194. package/types/components/LibraryButton.d.ts +0 -8
  195. package/types/components/MenuItem.d.ts +0 -11
  196. package/types/components/MenuUtils.d.ts +0 -1
  197. package/types/components/SingleLibraryItem.d.ts +0 -10
  198. package/types/components/WelcomeScreen.d.ts +0 -10
  199. package/types/components/WelcomeScreenDecor.d.ts +0 -6
  200. package/types/components/hoc/withUpstreamOverride.d.ts +0 -10
@@ -9,3 +9,23 @@
9
9
  * This source code is licensed under the MIT license found in the
10
10
  * LICENSE file in the root directory of this source tree.
11
11
  */
12
+
13
+ /**
14
+ * @license React
15
+ * use-sync-external-store-shim.production.min.js
16
+ *
17
+ * Copyright (c) Facebook, Inc. and its affiliates.
18
+ *
19
+ * This source code is licensed under the MIT license found in the
20
+ * LICENSE file in the root directory of this source tree.
21
+ */
22
+
23
+ /**
24
+ * @license React
25
+ * use-sync-external-store-shim/with-selector.production.min.js
26
+ *
27
+ * Copyright (c) Facebook, Inc. and its affiliates.
28
+ *
29
+ * This source code is licensed under the MIT license found in the
30
+ * LICENSE file in the root directory of this source tree.
31
+ */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dwelle/excalidraw",
3
- "version": "0.4.0-e80989b",
3
+ "version": "0.4.0-eadd4b9",
4
4
  "main": "main.js",
5
5
  "types": "types/packages/excalidraw/index.d.ts",
6
6
  "files": [
@@ -56,8 +56,8 @@
56
56
  "sass-loader": "13.0.2",
57
57
  "terser-webpack-plugin": "5.3.3",
58
58
  "ts-loader": "9.3.1",
59
- "typescript": "4.7.4",
60
- "webpack": "5.73.0",
59
+ "typescript": "4.9.4",
60
+ "webpack": "5.76.0",
61
61
  "webpack-bundle-analyzer": "4.5.0",
62
62
  "webpack-cli": "4.10.0",
63
63
  "webpack-dev-server": "4.9.3",
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare const actionAddToLibrary: {
2
3
  name: "addToLibrary";
3
4
  trackEvent: {
@@ -9,9 +10,14 @@ export declare const actionAddToLibrary: {
9
10
  toast: {
10
11
  message: string;
11
12
  };
13
+ contextMenu: {
14
+ items: import("../components/ContextMenu").ContextMenuItems;
15
+ top: number;
16
+ left: number;
17
+ } | null;
12
18
  showWelcomeScreen: boolean;
13
19
  isLoading: boolean;
14
- errorMessage: string | null;
20
+ errorMessage: import("react").ReactNode;
15
21
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
16
22
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
17
23
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -19,19 +25,22 @@ export declare const actionAddToLibrary: {
19
25
  isBindingEnabled: boolean;
20
26
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
21
27
  suggestedBindings: import("../element/binding").SuggestedBinding[];
28
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
29
+ shouldRenderFrames: boolean;
30
+ editingFrame: string | null;
31
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
22
32
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
23
33
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
24
34
  activeTool: {
25
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
26
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
35
+ lastActiveTool: import("../types").LastActiveTool;
27
36
  locked: boolean;
37
+ } & ({
38
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "frame" | "freedraw" | "eraser" | "hand";
28
39
  customType: null;
29
40
  } | {
30
41
  type: "custom";
31
42
  customType: string;
32
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
33
- locked: boolean;
34
- };
43
+ });
35
44
  penMode: boolean;
36
45
  penDetected: boolean;
37
46
  exportBackground: boolean;
@@ -48,10 +57,9 @@ export declare const actionAddToLibrary: {
48
57
  currentItemFontFamily: number;
49
58
  currentItemFontSize: number;
50
59
  currentItemTextAlign: string;
51
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
52
60
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
53
61
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
54
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
62
+ currentItemRoundness: import("../element/types").StrokeRoundness;
55
63
  viewBackgroundColor: string;
56
64
  scrollX: number;
57
65
  scrollY: number;
@@ -64,10 +72,13 @@ export declare const actionAddToLibrary: {
64
72
  value: import("../types").NormalizedZoomValue;
65
73
  }>;
66
74
  openMenu: "canvas" | "shape" | null;
67
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
68
- openSidebar: "library" | "customSidebar" | null;
69
- openDialog: "imageExport" | "help" | null;
70
- isSidebarDocked: boolean;
75
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
76
+ openSidebar: {
77
+ name: string;
78
+ tab?: string | undefined;
79
+ } | null;
80
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
81
+ defaultSidebarDockedPreference: boolean;
71
82
  lastPointerDownWith: import("../element/types").PointerType;
72
83
  selectedElementIds: {
73
84
  [id: string]: boolean;
@@ -75,6 +86,7 @@ export declare const actionAddToLibrary: {
75
86
  previousSelectedElementIds: {
76
87
  [id: string]: boolean;
77
88
  };
89
+ selectedElementsAreBeingDragged: boolean;
78
90
  shouldCacheIgnoreZoom: boolean;
79
91
  zenModeEnabled: boolean;
80
92
  theme: string;
@@ -107,6 +119,11 @@ export declare const actionAddToLibrary: {
107
119
  commitToHistory: false;
108
120
  appState: {
109
121
  errorMessage: any;
122
+ contextMenu: {
123
+ items: import("../components/ContextMenu").ContextMenuItems;
124
+ top: number;
125
+ left: number;
126
+ } | null;
110
127
  showWelcomeScreen: boolean;
111
128
  isLoading: boolean;
112
129
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
@@ -116,19 +133,22 @@ export declare const actionAddToLibrary: {
116
133
  isBindingEnabled: boolean;
117
134
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
118
135
  suggestedBindings: import("../element/binding").SuggestedBinding[];
136
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
137
+ shouldRenderFrames: boolean;
138
+ editingFrame: string | null;
139
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
119
140
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
120
141
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
121
142
  activeTool: {
122
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
123
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
143
+ lastActiveTool: import("../types").LastActiveTool;
124
144
  locked: boolean;
145
+ } & ({
146
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "frame" | "freedraw" | "eraser" | "hand";
125
147
  customType: null;
126
148
  } | {
127
149
  type: "custom";
128
150
  customType: string;
129
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
130
- locked: boolean;
131
- };
151
+ });
132
152
  penMode: boolean;
133
153
  penDetected: boolean;
134
154
  exportBackground: boolean;
@@ -145,10 +165,9 @@ export declare const actionAddToLibrary: {
145
165
  currentItemFontFamily: number;
146
166
  currentItemFontSize: number;
147
167
  currentItemTextAlign: string;
148
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
149
168
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
150
169
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
151
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
170
+ currentItemRoundness: import("../element/types").StrokeRoundness;
152
171
  viewBackgroundColor: string;
153
172
  scrollX: number;
154
173
  scrollY: number;
@@ -161,10 +180,13 @@ export declare const actionAddToLibrary: {
161
180
  value: import("../types").NormalizedZoomValue;
162
181
  }>;
163
182
  openMenu: "canvas" | "shape" | null;
164
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
165
- openSidebar: "library" | "customSidebar" | null;
166
- openDialog: "imageExport" | "help" | null;
167
- isSidebarDocked: boolean;
183
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
184
+ openSidebar: {
185
+ name: string;
186
+ tab?: string | undefined;
187
+ } | null;
188
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
189
+ defaultSidebarDockedPreference: boolean;
168
190
  lastPointerDownWith: import("../element/types").PointerType;
169
191
  selectedElementIds: {
170
192
  [id: string]: boolean;
@@ -172,6 +194,7 @@ export declare const actionAddToLibrary: {
172
194
  previousSelectedElementIds: {
173
195
  [id: string]: boolean;
174
196
  };
197
+ selectedElementsAreBeingDragged: boolean;
175
198
  shouldCacheIgnoreZoom: boolean;
176
199
  toast: {
177
200
  message: string;
@@ -209,6 +232,11 @@ export declare const actionAddToLibrary: {
209
232
  commitToHistory: false;
210
233
  appState: {
211
234
  errorMessage: string;
235
+ contextMenu: {
236
+ items: import("../components/ContextMenu").ContextMenuItems;
237
+ top: number;
238
+ left: number;
239
+ } | null;
212
240
  showWelcomeScreen: boolean;
213
241
  isLoading: boolean;
214
242
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
@@ -218,19 +246,22 @@ export declare const actionAddToLibrary: {
218
246
  isBindingEnabled: boolean;
219
247
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
220
248
  suggestedBindings: import("../element/binding").SuggestedBinding[];
249
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
250
+ shouldRenderFrames: boolean;
251
+ editingFrame: string | null;
252
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
221
253
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
222
254
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
223
255
  activeTool: {
224
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
225
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
256
+ lastActiveTool: import("../types").LastActiveTool;
226
257
  locked: boolean;
258
+ } & ({
259
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "frame" | "freedraw" | "eraser" | "hand";
227
260
  customType: null;
228
261
  } | {
229
262
  type: "custom";
230
263
  customType: string;
231
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
232
- locked: boolean;
233
- };
264
+ });
234
265
  penMode: boolean;
235
266
  penDetected: boolean;
236
267
  exportBackground: boolean;
@@ -247,10 +278,9 @@ export declare const actionAddToLibrary: {
247
278
  currentItemFontFamily: number;
248
279
  currentItemFontSize: number;
249
280
  currentItemTextAlign: string;
250
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
251
281
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
252
282
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
253
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
283
+ currentItemRoundness: import("../element/types").StrokeRoundness;
254
284
  viewBackgroundColor: string;
255
285
  scrollX: number;
256
286
  scrollY: number;
@@ -263,10 +293,13 @@ export declare const actionAddToLibrary: {
263
293
  value: import("../types").NormalizedZoomValue;
264
294
  }>;
265
295
  openMenu: "canvas" | "shape" | null;
266
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
267
- openSidebar: "library" | "customSidebar" | null;
268
- openDialog: "imageExport" | "help" | null;
269
- isSidebarDocked: boolean;
296
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
297
+ openSidebar: {
298
+ name: string;
299
+ tab?: string | undefined;
300
+ } | null;
301
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
302
+ defaultSidebarDockedPreference: boolean;
270
303
  lastPointerDownWith: import("../element/types").PointerType;
271
304
  selectedElementIds: {
272
305
  [id: string]: boolean;
@@ -274,6 +307,7 @@ export declare const actionAddToLibrary: {
274
307
  previousSelectedElementIds: {
275
308
  [id: string]: boolean;
276
309
  };
310
+ selectedElementsAreBeingDragged: boolean;
277
311
  shouldCacheIgnoreZoom: boolean;
278
312
  toast: {
279
313
  message: string;
@@ -6,15 +6,14 @@ export declare const actionAlignTop: {
6
6
  trackEvent: {
7
7
  category: "element";
8
8
  };
9
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
9
10
  perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
10
11
  appState: Readonly<AppState>;
11
12
  elements: ExcalidrawElement[];
12
13
  commitToHistory: true;
13
14
  };
14
15
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
15
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps & {
16
- isInHamburgerMenu: boolean;
17
- }) => JSX.Element;
16
+ PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
18
17
  } & {
19
18
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
20
19
  };
@@ -23,15 +22,14 @@ export declare const actionAlignBottom: {
23
22
  trackEvent: {
24
23
  category: "element";
25
24
  };
25
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
26
26
  perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
27
27
  appState: Readonly<AppState>;
28
28
  elements: ExcalidrawElement[];
29
29
  commitToHistory: true;
30
30
  };
31
31
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
32
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps & {
33
- isInHamburgerMenu: boolean;
34
- }) => JSX.Element;
32
+ PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
35
33
  } & {
36
34
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
37
35
  };
@@ -40,15 +38,14 @@ export declare const actionAlignLeft: {
40
38
  trackEvent: {
41
39
  category: "element";
42
40
  };
41
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
43
42
  perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
44
43
  appState: Readonly<AppState>;
45
44
  elements: ExcalidrawElement[];
46
45
  commitToHistory: true;
47
46
  };
48
47
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
49
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps & {
50
- isInHamburgerMenu: boolean;
51
- }) => JSX.Element;
48
+ PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
52
49
  } & {
53
50
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
54
51
  };
@@ -57,15 +54,14 @@ export declare const actionAlignRight: {
57
54
  trackEvent: {
58
55
  category: "element";
59
56
  };
57
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
60
58
  perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
61
59
  appState: Readonly<AppState>;
62
60
  elements: ExcalidrawElement[];
63
61
  commitToHistory: true;
64
62
  };
65
63
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
66
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps & {
67
- isInHamburgerMenu: boolean;
68
- }) => JSX.Element;
64
+ PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
69
65
  } & {
70
66
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
71
67
  };
@@ -74,14 +70,13 @@ export declare const actionAlignVerticallyCentered: {
74
70
  trackEvent: {
75
71
  category: "element";
76
72
  };
73
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
77
74
  perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
78
75
  appState: Readonly<AppState>;
79
76
  elements: ExcalidrawElement[];
80
77
  commitToHistory: true;
81
78
  };
82
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps & {
83
- isInHamburgerMenu: boolean;
84
- }) => JSX.Element;
79
+ PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
85
80
  } & {
86
81
  keyTest?: undefined;
87
82
  };
@@ -90,14 +85,13 @@ export declare const actionAlignHorizontallyCentered: {
90
85
  trackEvent: {
91
86
  category: "element";
92
87
  };
88
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
93
89
  perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
94
90
  appState: Readonly<AppState>;
95
91
  elements: ExcalidrawElement[];
96
92
  commitToHistory: true;
97
93
  };
98
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps & {
99
- isInHamburgerMenu: boolean;
100
- }) => JSX.Element;
94
+ PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
101
95
  } & {
102
96
  keyTest?: undefined;
103
97
  };
@@ -1,13 +1,16 @@
1
+ /// <reference types="react" />
2
+ import { ExcalidrawElement, ExcalidrawLinearElement } from "../element/types";
3
+ import { AppState } from "../types";
1
4
  export declare const actionUnbindText: {
2
5
  name: "unbindText";
3
6
  contextItemLabel: string;
4
7
  trackEvent: {
5
8
  category: "element";
6
9
  };
7
- contextItemPredicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState) => boolean;
8
- perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
9
- elements: readonly import("../element/types").ExcalidrawElement[];
10
- appState: Readonly<import("../types").AppState>;
10
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
11
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
12
+ elements: readonly ExcalidrawElement[];
13
+ appState: Readonly<AppState>;
11
14
  commitToHistory: true;
12
15
  };
13
16
  } & {
@@ -19,36 +22,169 @@ export declare const actionBindText: {
19
22
  trackEvent: {
20
23
  category: "element";
21
24
  };
22
- contextItemPredicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState) => boolean;
23
- perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
24
- elements: import("../element/types").ExcalidrawElement[];
25
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
26
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
27
+ elements: ExcalidrawElement[];
25
28
  appState: {
26
29
  selectedElementIds: {
27
30
  [x: string]: true;
28
31
  };
32
+ contextMenu: {
33
+ items: import("../components/ContextMenu").ContextMenuItems;
34
+ top: number;
35
+ left: number;
36
+ } | null;
29
37
  showWelcomeScreen: boolean;
30
38
  isLoading: boolean;
31
- errorMessage: string | null;
39
+ errorMessage: import("react").ReactNode;
32
40
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
33
41
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
34
- multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
42
+ multiElement: import("../element/types").NonDeleted<ExcalidrawLinearElement> | null;
35
43
  selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
36
44
  isBindingEnabled: boolean;
37
45
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
38
46
  suggestedBindings: import("../element/binding").SuggestedBinding[];
47
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
48
+ shouldRenderFrames: boolean;
49
+ editingFrame: string | null;
50
+ elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
39
51
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
40
52
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
41
53
  activeTool: {
42
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
43
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
54
+ lastActiveTool: import("../types").LastActiveTool;
44
55
  locked: boolean;
56
+ } & ({
57
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "frame" | "freedraw" | "eraser" | "hand";
45
58
  customType: null;
46
59
  } | {
47
60
  type: "custom";
48
61
  customType: string;
49
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
50
- locked: boolean;
62
+ });
63
+ penMode: boolean;
64
+ penDetected: boolean;
65
+ exportBackground: boolean;
66
+ exportEmbedScene: boolean;
67
+ exportWithDarkMode: boolean;
68
+ exportScale: number;
69
+ currentItemStrokeColor: string;
70
+ currentItemBackgroundColor: string;
71
+ currentItemFillStyle: import("../element/types").FillStyle;
72
+ currentItemStrokeWidth: number;
73
+ currentItemStrokeStyle: import("../element/types").StrokeStyle;
74
+ currentItemRoughness: number;
75
+ currentItemOpacity: number;
76
+ currentItemFontFamily: number;
77
+ currentItemFontSize: number;
78
+ currentItemTextAlign: string;
79
+ currentItemStartArrowhead: import("../element/types").Arrowhead | null;
80
+ currentItemEndArrowhead: import("../element/types").Arrowhead | null;
81
+ currentItemRoundness: import("../element/types").StrokeRoundness;
82
+ viewBackgroundColor: string;
83
+ scrollX: number;
84
+ scrollY: number;
85
+ cursorButton: "up" | "down";
86
+ scrolledOutside: boolean;
87
+ name: string;
88
+ isResizing: boolean;
89
+ isRotating: boolean;
90
+ zoom: Readonly<{
91
+ value: import("../types").NormalizedZoomValue;
92
+ }>;
93
+ openMenu: "canvas" | "shape" | null;
94
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
95
+ openSidebar: {
96
+ name: string;
97
+ tab?: string | undefined;
98
+ } | null;
99
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
100
+ defaultSidebarDockedPreference: boolean;
101
+ lastPointerDownWith: import("../element/types").PointerType;
102
+ previousSelectedElementIds: {
103
+ [id: string]: boolean;
104
+ };
105
+ selectedElementsAreBeingDragged: boolean;
106
+ shouldCacheIgnoreZoom: boolean;
107
+ toast: {
108
+ message: string;
109
+ closable?: boolean | undefined;
110
+ duration?: number | undefined;
111
+ } | null;
112
+ zenModeEnabled: boolean;
113
+ theme: string;
114
+ gridSize: number | null;
115
+ viewModeEnabled: boolean;
116
+ selectedGroupIds: {
117
+ [groupId: string]: boolean;
118
+ };
119
+ editingGroupId: string | null;
120
+ width: number;
121
+ height: number;
122
+ offsetTop: number;
123
+ offsetLeft: number;
124
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
125
+ collaborators: Map<string, import("../types").Collaborator>;
126
+ showStats: boolean;
127
+ currentChartType: import("../element/types").ChartType;
128
+ pasteDialog: {
129
+ shown: false;
130
+ data: null;
131
+ } | {
132
+ shown: true;
133
+ data: import("../charts").Spreadsheet;
134
+ };
135
+ pendingImageElementId: string | null;
136
+ showHyperlinkPopup: false | "info" | "editor";
137
+ selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
138
+ };
139
+ commitToHistory: true;
140
+ };
141
+ } & {
142
+ keyTest?: undefined;
143
+ };
144
+ export declare const actionWrapTextInContainer: {
145
+ name: "wrapTextInContainer";
146
+ contextItemLabel: string;
147
+ trackEvent: {
148
+ category: "element";
149
+ };
150
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
151
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
152
+ elements: readonly ExcalidrawElement[];
153
+ appState: {
154
+ selectedElementIds: {
155
+ [id: string]: boolean;
51
156
  };
157
+ contextMenu: {
158
+ items: import("../components/ContextMenu").ContextMenuItems;
159
+ top: number;
160
+ left: number;
161
+ } | null;
162
+ showWelcomeScreen: boolean;
163
+ isLoading: boolean;
164
+ errorMessage: import("react").ReactNode;
165
+ draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
166
+ resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
167
+ multiElement: import("../element/types").NonDeleted<ExcalidrawLinearElement> | null;
168
+ selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
169
+ isBindingEnabled: boolean;
170
+ startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
171
+ suggestedBindings: import("../element/binding").SuggestedBinding[];
172
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
173
+ shouldRenderFrames: boolean;
174
+ editingFrame: string | null;
175
+ elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
176
+ editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
177
+ editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
178
+ activeTool: {
179
+ lastActiveTool: import("../types").LastActiveTool;
180
+ locked: boolean;
181
+ } & ({
182
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "frame" | "freedraw" | "eraser" | "hand";
183
+ customType: null;
184
+ } | {
185
+ type: "custom";
186
+ customType: string;
187
+ });
52
188
  penMode: boolean;
53
189
  penDetected: boolean;
54
190
  exportBackground: boolean;
@@ -65,10 +201,9 @@ export declare const actionBindText: {
65
201
  currentItemFontFamily: number;
66
202
  currentItemFontSize: number;
67
203
  currentItemTextAlign: string;
68
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
69
204
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
70
205
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
71
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
206
+ currentItemRoundness: import("../element/types").StrokeRoundness;
72
207
  viewBackgroundColor: string;
73
208
  scrollX: number;
74
209
  scrollY: number;
@@ -81,14 +216,18 @@ export declare const actionBindText: {
81
216
  value: import("../types").NormalizedZoomValue;
82
217
  }>;
83
218
  openMenu: "canvas" | "shape" | null;
84
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
85
- openSidebar: "library" | "customSidebar" | null;
86
- openDialog: "imageExport" | "help" | null;
87
- isSidebarDocked: boolean;
219
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
220
+ openSidebar: {
221
+ name: string;
222
+ tab?: string | undefined;
223
+ } | null;
224
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
225
+ defaultSidebarDockedPreference: boolean;
88
226
  lastPointerDownWith: import("../element/types").PointerType;
89
227
  previousSelectedElementIds: {
90
228
  [id: string]: boolean;
91
229
  };
230
+ selectedElementsAreBeingDragged: boolean;
92
231
  shouldCacheIgnoreZoom: boolean;
93
232
  toast: {
94
233
  message: string;