@dwelle/excalidraw 0.4.0-d8d86cf → 0.4.0-da7ef3e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/CHANGELOG.md +706 -0
  2. package/README.md +18 -1422
  3. package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js → vendor-d415b28e9024dee4bb1b.js} +2 -2
  4. package/dist/excalidraw-assets-dev/{vendor-e6df8519da951026ff69.js → vendor-a14cd58fa2db417e42b2.js} +6 -6
  5. package/dist/excalidraw.development.js +3035 -1464
  6. package/dist/excalidraw.production.min.js +1 -1
  7. package/dist/excalidraw.production.min.js.LICENSE.txt +20 -0
  8. package/main.js +1 -8
  9. package/package.json +9 -4
  10. package/types/actions/actionAddToLibrary.d.ts +130 -52
  11. package/types/actions/actionAlign.d.ts +25 -32
  12. package/types/actions/actionBoundText.d.ts +191 -22
  13. package/types/actions/actionCanvas.d.ts +774 -174
  14. package/types/actions/actionClipboard.d.ts +232 -88
  15. package/types/actions/actionDeleteSelected.d.ts +129 -57
  16. package/types/actions/actionDistribute.d.ts +7 -12
  17. package/types/actions/actionDuplicateSelection.d.ts +2 -5
  18. package/types/actions/actionElementLock.d.ts +283 -0
  19. package/types/actions/actionExport.d.ts +448 -229
  20. package/types/actions/actionFinalize.d.ts +87 -41
  21. package/types/actions/actionFlip.d.ts +4 -7
  22. package/types/actions/actionFrame.d.ts +441 -0
  23. package/types/actions/actionGroup.d.ts +260 -15
  24. package/types/actions/actionHistory.d.ts +1 -1
  25. package/types/actions/actionLinearEditor.d.ts +46 -20
  26. package/types/actions/actionMenu.d.ts +136 -65
  27. package/types/actions/actionNavigate.d.ts +2 -3
  28. package/types/actions/actionProperties.d.ts +590 -277
  29. package/types/actions/actionSelectAll.d.ts +127 -2
  30. package/types/actions/actionStyles.d.ts +44 -19
  31. package/types/actions/actionToggleGridMode.d.ts +46 -19
  32. package/types/actions/{actionToggleLock.d.ts → actionToggleObjectsSnapMode.d.ts} +58 -31
  33. package/types/actions/actionToggleStats.d.ts +45 -19
  34. package/types/actions/actionToggleViewMode.d.ts +46 -19
  35. package/types/actions/actionToggleZenMode.d.ts +46 -19
  36. package/types/actions/actionZindex.d.ts +8 -16
  37. package/types/actions/index.d.ts +2 -1
  38. package/types/actions/manager.d.ts +3 -2
  39. package/types/actions/shortcuts.d.ts +2 -1
  40. package/types/actions/types.d.ts +16 -13
  41. package/types/appState.d.ts +23 -18
  42. package/types/charts.d.ts +2 -2
  43. package/types/clients.d.ts +5 -6
  44. package/types/clipboard.d.ts +3 -2
  45. package/types/colors.d.ts +60 -5
  46. package/types/components/Actions.d.ts +7 -7
  47. package/types/components/ActiveConfirmDialog.d.ts +4 -0
  48. package/types/components/App.d.ts +88 -74
  49. package/types/components/Avatar.d.ts +1 -2
  50. package/types/components/BraveMeasureTextError.d.ts +2 -0
  51. package/types/components/Button.d.ts +16 -0
  52. package/types/components/ButtonIconSelect.d.ts +11 -3
  53. package/types/components/Card.d.ts +6 -0
  54. package/types/components/ColorPicker/ColorInput.d.ts +9 -0
  55. package/types/components/ColorPicker/ColorPicker.d.ts +19 -0
  56. package/types/components/ColorPicker/CustomColorList.d.ts +8 -0
  57. package/types/components/ColorPicker/HotkeyLabel.d.ts +8 -0
  58. package/types/components/ColorPicker/Picker.d.ts +18 -0
  59. package/types/components/ColorPicker/PickerColorList.d.ts +10 -0
  60. package/types/components/ColorPicker/PickerHeading.d.ts +5 -0
  61. package/types/components/ColorPicker/ShadeList.d.ts +8 -0
  62. package/types/components/ColorPicker/TopPicks.d.ts +9 -0
  63. package/types/components/ColorPicker/colorPickerUtils.d.ts +21 -0
  64. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +20 -0
  65. package/types/components/ContextMenu.d.ts +9 -22
  66. package/types/components/DefaultSidebar.d.ts +29 -0
  67. package/types/components/Dialog.d.ts +3 -4
  68. package/types/components/ErrorDialog.d.ts +3 -2
  69. package/types/components/ExcalidrawLogo.d.ts +15 -0
  70. package/types/components/EyeDropper.d.ts +28 -0
  71. package/types/components/FilledButton.d.ts +17 -0
  72. package/types/components/FixedSideContainer.d.ts +1 -1
  73. package/types/components/HandButton.d.ts +10 -0
  74. package/types/components/HelpButton.d.ts +1 -2
  75. package/types/components/HintViewer.d.ts +4 -5
  76. package/types/components/HomeButton.d.ts +1 -1
  77. package/types/components/ImageExportDialog.d.ts +8 -13
  78. package/types/components/Island.d.ts +1 -1
  79. package/types/components/JSONExportDialog.d.ts +7 -5
  80. package/types/components/LayerUI.d.ts +10 -16
  81. package/types/components/LibraryMenu.d.ts +13 -14
  82. package/types/components/LibraryMenuBrowseButton.d.ts +2 -2
  83. package/types/components/LibraryMenuControlButtons.d.ts +9 -0
  84. package/types/components/LibraryMenuHeaderContent.d.ts +10 -5
  85. package/types/components/LibraryMenuItems.d.ts +6 -7
  86. package/types/components/LibraryMenuSection.d.ts +22 -0
  87. package/types/components/LibraryUnit.d.ts +6 -3
  88. package/types/components/LoadingMessage.d.ts +0 -1
  89. package/types/components/LockButton.d.ts +1 -2
  90. package/types/components/MobileMenu.d.ts +10 -12
  91. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
  92. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
  93. package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
  94. package/types/components/PasteChartDialog.d.ts +4 -5
  95. package/types/components/PenModeButton.d.ts +1 -1
  96. package/types/components/Popover.d.ts +1 -1
  97. package/types/components/ProjectName.d.ts +2 -1
  98. package/types/components/PublishLibrary.d.ts +2 -2
  99. package/types/components/RadioGroup.d.ts +12 -0
  100. package/types/components/Section.d.ts +1 -1
  101. package/types/components/Sidebar/Sidebar.d.ts +66 -63
  102. package/types/components/Sidebar/SidebarHeader.d.ts +6 -19
  103. package/types/components/Sidebar/SidebarTab.d.ts +8 -0
  104. package/types/components/Sidebar/SidebarTabTrigger.d.ts +9 -0
  105. package/types/components/Sidebar/SidebarTabTriggers.d.ts +6 -0
  106. package/types/components/Sidebar/SidebarTabs.d.ts +6 -0
  107. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -0
  108. package/types/components/Sidebar/common.d.ts +24 -7
  109. package/types/components/Spinner.d.ts +2 -1
  110. package/types/components/Stack.d.ts +4 -3
  111. package/types/components/Stats.d.ts +3 -3
  112. package/types/components/Switch.d.ts +9 -0
  113. package/types/components/ToolButton.d.ts +6 -5
  114. package/types/components/Tooltip.d.ts +1 -1
  115. package/types/components/Trans.d.ts +9 -0
  116. package/types/components/UserList.d.ts +0 -2
  117. package/types/components/canvases/InteractiveCanvas.d.ts +27 -0
  118. package/types/components/canvases/StaticCanvas.d.ts +18 -0
  119. package/types/components/canvases/index.d.ts +3 -0
  120. package/types/components/dropdownMenu/DropdownMenu.d.ts +67 -0
  121. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +15 -0
  122. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
  123. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +12 -0
  124. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +6 -0
  125. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +6 -0
  126. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +13 -0
  127. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
  128. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -0
  129. package/types/components/dropdownMenu/common.d.ts +6 -0
  130. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
  131. package/types/components/footer/Footer.d.ts +12 -0
  132. package/types/components/footer/FooterCenter.d.ts +8 -0
  133. package/types/components/hoc/withInternalFallback.d.ts +4 -0
  134. package/types/components/icons.d.ts +15 -2
  135. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -0
  136. package/types/components/main-menu/DefaultItems.d.ts +47 -0
  137. package/types/components/main-menu/MainMenu.d.ts +61 -0
  138. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +57 -0
  139. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
  140. package/types/components/welcome-screen/WelcomeScreen.d.ts +84 -0
  141. package/types/constants.d.ts +94 -18
  142. package/types/context/tunnels.d.ts +19 -0
  143. package/types/context/ui-appState.d.ts +4 -0
  144. package/types/data/blob.d.ts +3 -2
  145. package/types/data/encode.d.ts +1 -1
  146. package/types/data/filesystem.d.ts +2 -1
  147. package/types/data/index.d.ts +1 -1
  148. package/types/data/library.d.ts +3 -45
  149. package/types/data/restore.d.ts +10 -4
  150. package/types/data/transform.d.ts +71 -0
  151. package/types/data/types.d.ts +3 -5
  152. package/types/data/url.d.ts +7 -0
  153. package/types/element/Hyperlink.d.ts +57 -30
  154. package/types/element/binding.d.ts +4 -3
  155. package/types/element/bounds.d.ts +31 -7
  156. package/types/element/collision.d.ts +7 -7
  157. package/types/element/dragElements.d.ts +12 -2
  158. package/types/element/embeddable.d.ts +159 -0
  159. package/types/element/image.d.ts +11 -1
  160. package/types/element/index.d.ts +3 -2
  161. package/types/element/linearElementEditor.d.ts +49 -24
  162. package/types/element/mutateElement.d.ts +2 -1
  163. package/types/element/newElement.d.ts +48 -15
  164. package/types/element/resizeElements.d.ts +3 -2
  165. package/types/element/showSelectedShapeActions.d.ts +2 -2
  166. package/types/element/sizeHelpers.d.ts +8 -1
  167. package/types/element/sortElements.d.ts +2 -0
  168. package/types/element/textElement.d.ts +44 -11
  169. package/types/element/textWysiwyg.d.ts +7 -2
  170. package/types/element/transformHandles.d.ts +15 -8
  171. package/types/element/typeChecks.d.ts +13 -2
  172. package/types/element/types.d.ts +64 -36
  173. package/types/emitter.d.ts +1 -1
  174. package/types/errors.d.ts +1 -1
  175. package/types/frame.d.ts +40 -0
  176. package/types/ga.d.ts +5 -5
  177. package/types/groups.d.ts +15 -11
  178. package/types/history.d.ts +3 -3
  179. package/types/hooks/useCreatePortalContainer.d.ts +4 -0
  180. package/types/hooks/useLibraryItemSvg.d.ts +11 -0
  181. package/types/hooks/useOutsideClick.d.ts +19 -2
  182. package/types/hooks/useScrollPosition.d.ts +1 -0
  183. package/types/hooks/useStable.d.ts +1 -0
  184. package/types/hooks/useTransition.d.ts +2 -0
  185. package/types/i18n.d.ts +11 -2
  186. package/types/jotai.d.ts +20 -108
  187. package/types/keys.d.ts +7 -4
  188. package/types/math.d.ts +6 -1
  189. package/types/packages/excalidraw/example/App.d.ts +7 -1
  190. package/types/packages/excalidraw/example/CustomFooter.d.ts +5 -0
  191. package/types/packages/excalidraw/example/MobileFooter.d.ts +5 -0
  192. package/types/packages/excalidraw/example/initialData.d.ts +182 -64
  193. package/types/packages/excalidraw/index.d.ts +19 -3
  194. package/types/packages/excalidraw/main.d.ts +3 -1
  195. package/types/packages/excalidraw/webpack.dev.config.d.ts +5 -2
  196. package/types/packages/excalidraw/webpack.prod.config.d.ts +3 -0
  197. package/types/packages/utils.d.ts +28 -24
  198. package/types/renderer/renderElement.d.ts +12 -22
  199. package/types/renderer/renderScene.d.ts +19 -29
  200. package/types/renderer/renderSnaps.d.ts +2 -0
  201. package/types/renderer/roundRect.d.ts +1 -1
  202. package/types/scene/Renderer.d.ts +25 -0
  203. package/types/scene/Scene.d.ts +27 -5
  204. package/types/scene/Shape.d.ts +12 -0
  205. package/types/scene/ShapeCache.d.ts +20 -0
  206. package/types/scene/comparisons.d.ts +1 -1
  207. package/types/scene/export.d.ts +182 -10
  208. package/types/scene/index.d.ts +1 -1
  209. package/types/scene/scroll.d.ts +1 -1
  210. package/types/scene/scrollbars.d.ts +2 -6
  211. package/types/scene/selection.d.ts +27 -6
  212. package/types/scene/types.d.ts +69 -26
  213. package/types/snapping.d.ts +108 -0
  214. package/types/types.d.ts +196 -81
  215. package/types/utility-types.d.ts +24 -0
  216. package/types/utils.d.ts +78 -12
  217. package/types/zindex.d.ts +4 -4
  218. package/types/components/ActiveFile.d.ts +0 -7
  219. package/types/components/ClearCanvas.d.ts +0 -4
  220. package/types/components/CollabButton.d.ts +0 -6
  221. package/types/components/ColorPicker.d.ts +0 -14
  222. package/types/components/Footer.d.ts +0 -10
  223. package/types/components/LibraryButton.d.ts +0 -8
  224. package/types/components/MenuItem.d.ts +0 -11
  225. package/types/components/MenuUtils.d.ts +0 -1
  226. package/types/components/SingleLibraryItem.d.ts +0 -10
  227. package/types/components/WelcomeScreen.d.ts +0 -10
  228. package/types/components/WelcomeScreenDecor.d.ts +0 -6
  229. package/types/components/hoc/withUpstreamOverride.d.ts +0 -10
  230. /package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js.LICENSE.txt → vendor-d415b28e9024dee4bb1b.js.LICENSE.txt} +0 -0
  231. /package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.d.ts → vendor-d415b28e9024dee4bb1b.d.ts} +0 -0
  232. /package/types/packages/excalidraw/dist/excalidraw-assets-dev/{vendor-e6df8519da951026ff69.d.ts → vendor-a14cd58fa2db417e42b2.d.ts} +0 -0
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const actionCopy: {
3
2
  name: "copy";
4
3
  trackEvent: {
@@ -7,6 +6,21 @@ export declare const actionCopy: {
7
6
  perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => {
8
7
  commitToHistory: false;
9
8
  };
9
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
10
+ contextItemLabel: string;
11
+ keyTest: undefined;
12
+ } & {
13
+ keyTest?: undefined;
14
+ };
15
+ export declare const actionPaste: {
16
+ name: "paste";
17
+ trackEvent: {
18
+ category: "element";
19
+ };
20
+ perform: (elements: any, appStates: any, data: any, app: import("../types").AppClassProperties) => {
21
+ commitToHistory: false;
22
+ };
23
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
10
24
  contextItemLabel: string;
11
25
  keyTest: undefined;
12
26
  } & {
@@ -21,9 +35,18 @@ export declare const actionCut: {
21
35
  elements: import("../element/types").ExcalidrawElement[];
22
36
  appState: {
23
37
  editingLinearElement: null;
38
+ contextMenu: {
39
+ items: import("../components/ContextMenu").ContextMenuItems;
40
+ top: number;
41
+ left: number;
42
+ } | null;
24
43
  showWelcomeScreen: boolean;
25
44
  isLoading: boolean;
26
- errorMessage: string | null;
45
+ errorMessage: import("react").ReactNode;
46
+ activeEmbeddable: {
47
+ element: import("../element/types").NonDeletedExcalidrawElement;
48
+ state: "active" | "hover";
49
+ } | null;
27
50
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
28
51
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
29
52
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -31,18 +54,26 @@ export declare const actionCut: {
31
54
  isBindingEnabled: boolean;
32
55
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
33
56
  suggestedBindings: import("../element/binding").SuggestedBinding[];
57
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
58
+ frameRendering: {
59
+ enabled: boolean;
60
+ name: boolean;
61
+ outline: boolean;
62
+ clip: boolean;
63
+ };
64
+ editingFrame: string | null;
65
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
34
66
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
35
67
  activeTool: {
36
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
37
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
68
+ lastActiveTool: import("../types").LastActiveTool;
38
69
  locked: boolean;
70
+ } & ({
71
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
39
72
  customType: null;
40
73
  } | {
41
74
  type: "custom";
42
75
  customType: string;
43
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
44
- locked: boolean;
45
- };
76
+ });
46
77
  penMode: boolean;
47
78
  penDetected: boolean;
48
79
  exportBackground: boolean;
@@ -59,10 +90,9 @@ export declare const actionCut: {
59
90
  currentItemFontFamily: number;
60
91
  currentItemFontSize: number;
61
92
  currentItemTextAlign: string;
62
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
63
93
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
64
94
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
65
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
95
+ currentItemRoundness: import("../element/types").StrokeRoundness;
66
96
  viewBackgroundColor: string;
67
97
  scrollX: number;
68
98
  scrollY: number;
@@ -75,17 +105,21 @@ export declare const actionCut: {
75
105
  value: import("../types").NormalizedZoomValue;
76
106
  }>;
77
107
  openMenu: "canvas" | "shape" | null;
78
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
79
- openSidebar: "library" | "customSidebar" | null;
80
- openDialog: "imageExport" | "help" | null;
81
- isSidebarDocked: boolean;
108
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
109
+ openSidebar: {
110
+ name: string;
111
+ tab?: string | undefined;
112
+ } | null;
113
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
114
+ defaultSidebarDockedPreference: boolean;
82
115
  lastPointerDownWith: import("../element/types").PointerType;
83
- selectedElementIds: {
84
- [id: string]: boolean;
85
- };
116
+ selectedElementIds: Readonly<{
117
+ [id: string]: true;
118
+ }>;
86
119
  previousSelectedElementIds: {
87
- [id: string]: boolean;
120
+ [id: string]: true;
88
121
  };
122
+ selectedElementsAreBeingDragged: boolean;
89
123
  shouldCacheIgnoreZoom: boolean;
90
124
  toast: {
91
125
  message: string;
@@ -93,7 +127,7 @@ export declare const actionCut: {
93
127
  duration?: number | undefined;
94
128
  } | null;
95
129
  zenModeEnabled: boolean;
96
- theme: string;
130
+ theme: import("../element/types").Theme;
97
131
  gridSize: number | null;
98
132
  viewModeEnabled: boolean;
99
133
  selectedGroupIds: {
@@ -116,8 +150,14 @@ export declare const actionCut: {
116
150
  data: import("../charts").Spreadsheet;
117
151
  };
118
152
  pendingImageElementId: string | null;
119
- showHyperlinkPopup: false | "info" | "editor";
153
+ showHyperlinkPopup: false | "editor" | "info";
120
154
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
155
+ snapLines: import("../snapping").SnapLine[];
156
+ originSnapOffset: {
157
+ x: number;
158
+ y: number;
159
+ } | null;
160
+ objectsSnapModeEnabled: boolean;
121
161
  };
122
162
  commitToHistory: false;
123
163
  } | {
@@ -152,9 +192,18 @@ export declare const actionCut: {
152
192
  hoverPointIndex: number;
153
193
  segmentMidPointHoveredCoords: readonly [number, number] | null;
154
194
  };
195
+ contextMenu: {
196
+ items: import("../components/ContextMenu").ContextMenuItems;
197
+ top: number;
198
+ left: number;
199
+ } | null;
155
200
  showWelcomeScreen: boolean;
156
201
  isLoading: boolean;
157
- errorMessage: string | null;
202
+ errorMessage: import("react").ReactNode;
203
+ activeEmbeddable: {
204
+ element: import("../element/types").NonDeletedExcalidrawElement;
205
+ state: "active" | "hover";
206
+ } | null;
158
207
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
159
208
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
160
209
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -162,18 +211,26 @@ export declare const actionCut: {
162
211
  isBindingEnabled: boolean;
163
212
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
164
213
  suggestedBindings: import("../element/binding").SuggestedBinding[];
214
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
215
+ frameRendering: {
216
+ enabled: boolean;
217
+ name: boolean;
218
+ outline: boolean;
219
+ clip: boolean;
220
+ };
221
+ editingFrame: string | null;
222
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
165
223
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
166
224
  activeTool: {
167
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
168
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
225
+ lastActiveTool: import("../types").LastActiveTool;
169
226
  locked: boolean;
227
+ } & ({
228
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
170
229
  customType: null;
171
230
  } | {
172
231
  type: "custom";
173
232
  customType: string;
174
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
175
- locked: boolean;
176
- };
233
+ });
177
234
  penMode: boolean;
178
235
  penDetected: boolean;
179
236
  exportBackground: boolean;
@@ -190,10 +247,9 @@ export declare const actionCut: {
190
247
  currentItemFontFamily: number;
191
248
  currentItemFontSize: number;
192
249
  currentItemTextAlign: string;
193
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
194
250
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
195
251
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
196
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
252
+ currentItemRoundness: import("../element/types").StrokeRoundness;
197
253
  viewBackgroundColor: string;
198
254
  scrollX: number;
199
255
  scrollY: number;
@@ -206,17 +262,21 @@ export declare const actionCut: {
206
262
  value: import("../types").NormalizedZoomValue;
207
263
  }>;
208
264
  openMenu: "canvas" | "shape" | null;
209
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
210
- openSidebar: "library" | "customSidebar" | null;
211
- openDialog: "imageExport" | "help" | null;
212
- isSidebarDocked: boolean;
265
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
266
+ openSidebar: {
267
+ name: string;
268
+ tab?: string | undefined;
269
+ } | null;
270
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
271
+ defaultSidebarDockedPreference: boolean;
213
272
  lastPointerDownWith: import("../element/types").PointerType;
214
- selectedElementIds: {
215
- [id: string]: boolean;
216
- };
273
+ selectedElementIds: Readonly<{
274
+ [id: string]: true;
275
+ }>;
217
276
  previousSelectedElementIds: {
218
- [id: string]: boolean;
277
+ [id: string]: true;
219
278
  };
279
+ selectedElementsAreBeingDragged: boolean;
220
280
  shouldCacheIgnoreZoom: boolean;
221
281
  toast: {
222
282
  message: string;
@@ -224,7 +284,7 @@ export declare const actionCut: {
224
284
  duration?: number | undefined;
225
285
  } | null;
226
286
  zenModeEnabled: boolean;
227
- theme: string;
287
+ theme: import("../element/types").Theme;
228
288
  gridSize: number | null;
229
289
  viewModeEnabled: boolean;
230
290
  selectedGroupIds: {
@@ -247,35 +307,55 @@ export declare const actionCut: {
247
307
  data: import("../charts").Spreadsheet;
248
308
  };
249
309
  pendingImageElementId: string | null;
250
- showHyperlinkPopup: false | "info" | "editor";
310
+ showHyperlinkPopup: false | "editor" | "info";
251
311
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
312
+ snapLines: import("../snapping").SnapLine[];
313
+ originSnapOffset: {
314
+ x: number;
315
+ y: number;
316
+ } | null;
317
+ objectsSnapModeEnabled: boolean;
252
318
  };
253
319
  commitToHistory: true;
254
320
  } | {
255
321
  elements: import("../element/types").ExcalidrawElement[];
256
322
  appState: {
257
323
  activeTool: {
258
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
259
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
324
+ lastActiveTool: import("../types").LastActiveTool;
260
325
  locked: boolean;
326
+ } & ({
327
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
261
328
  customType: null;
262
329
  } | {
263
330
  type: "custom";
264
331
  customType: string;
265
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
266
- locked: boolean;
267
- };
332
+ });
268
333
  multiElement: null;
334
+ activeEmbeddable: null;
269
335
  selectedElementIds: {};
336
+ contextMenu: {
337
+ items: import("../components/ContextMenu").ContextMenuItems;
338
+ top: number;
339
+ left: number;
340
+ } | null;
270
341
  showWelcomeScreen: boolean;
271
342
  isLoading: boolean;
272
- errorMessage: string | null;
343
+ errorMessage: import("react").ReactNode;
273
344
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
274
345
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
275
346
  selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
276
347
  isBindingEnabled: boolean;
277
348
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
278
349
  suggestedBindings: import("../element/binding").SuggestedBinding[];
350
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
351
+ frameRendering: {
352
+ enabled: boolean;
353
+ name: boolean;
354
+ outline: boolean;
355
+ clip: boolean;
356
+ };
357
+ editingFrame: string | null;
358
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
279
359
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
280
360
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
281
361
  penMode: boolean;
@@ -294,10 +374,9 @@ export declare const actionCut: {
294
374
  currentItemFontFamily: number;
295
375
  currentItemFontSize: number;
296
376
  currentItemTextAlign: string;
297
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
298
377
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
299
378
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
300
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
379
+ currentItemRoundness: import("../element/types").StrokeRoundness;
301
380
  viewBackgroundColor: string;
302
381
  scrollX: number;
303
382
  scrollY: number;
@@ -310,14 +389,18 @@ export declare const actionCut: {
310
389
  value: import("../types").NormalizedZoomValue;
311
390
  }>;
312
391
  openMenu: "canvas" | "shape" | null;
313
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
314
- openSidebar: "library" | "customSidebar" | null;
315
- openDialog: "imageExport" | "help" | null;
316
- isSidebarDocked: boolean;
392
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
393
+ openSidebar: {
394
+ name: string;
395
+ tab?: string | undefined;
396
+ } | null;
397
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
398
+ defaultSidebarDockedPreference: boolean;
317
399
  lastPointerDownWith: import("../element/types").PointerType;
318
400
  previousSelectedElementIds: {
319
- [id: string]: boolean;
401
+ [id: string]: true;
320
402
  };
403
+ selectedElementsAreBeingDragged: boolean;
321
404
  shouldCacheIgnoreZoom: boolean;
322
405
  toast: {
323
406
  message: string;
@@ -325,7 +408,7 @@ export declare const actionCut: {
325
408
  duration?: number | undefined;
326
409
  } | null;
327
410
  zenModeEnabled: boolean;
328
- theme: string;
411
+ theme: import("../element/types").Theme;
329
412
  gridSize: number | null;
330
413
  viewModeEnabled: boolean;
331
414
  selectedGroupIds: {
@@ -348,11 +431,18 @@ export declare const actionCut: {
348
431
  data: import("../charts").Spreadsheet;
349
432
  };
350
433
  pendingImageElementId: string | null;
351
- showHyperlinkPopup: false | "info" | "editor";
434
+ showHyperlinkPopup: false | "editor" | "info";
352
435
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
436
+ snapLines: import("../snapping").SnapLine[];
437
+ originSnapOffset: {
438
+ x: number;
439
+ y: number;
440
+ } | null;
441
+ objectsSnapModeEnabled: boolean;
353
442
  };
354
443
  commitToHistory: boolean;
355
444
  };
445
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
356
446
  contextItemLabel: string;
357
447
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
358
448
  } & {
@@ -369,8 +459,17 @@ export declare const actionCopyAsSvg: {
369
459
  } | {
370
460
  appState: {
371
461
  errorMessage: any;
462
+ contextMenu: {
463
+ items: import("../components/ContextMenu").ContextMenuItems;
464
+ top: number;
465
+ left: number;
466
+ } | null;
372
467
  showWelcomeScreen: boolean;
373
468
  isLoading: boolean;
469
+ activeEmbeddable: {
470
+ element: import("../element/types").NonDeletedExcalidrawElement;
471
+ state: "active" | "hover";
472
+ } | null;
374
473
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
375
474
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
376
475
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -378,19 +477,27 @@ export declare const actionCopyAsSvg: {
378
477
  isBindingEnabled: boolean;
379
478
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
380
479
  suggestedBindings: import("../element/binding").SuggestedBinding[];
480
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
481
+ frameRendering: {
482
+ enabled: boolean;
483
+ name: boolean;
484
+ outline: boolean;
485
+ clip: boolean;
486
+ };
487
+ editingFrame: string | null;
488
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
381
489
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
382
490
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
383
491
  activeTool: {
384
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
385
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
492
+ lastActiveTool: import("../types").LastActiveTool;
386
493
  locked: boolean;
494
+ } & ({
495
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
387
496
  customType: null;
388
497
  } | {
389
498
  type: "custom";
390
499
  customType: string;
391
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
392
- locked: boolean;
393
- };
500
+ });
394
501
  penMode: boolean;
395
502
  penDetected: boolean;
396
503
  exportBackground: boolean;
@@ -407,10 +514,9 @@ export declare const actionCopyAsSvg: {
407
514
  currentItemFontFamily: number;
408
515
  currentItemFontSize: number;
409
516
  currentItemTextAlign: string;
410
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
411
517
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
412
518
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
413
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
519
+ currentItemRoundness: import("../element/types").StrokeRoundness;
414
520
  viewBackgroundColor: string;
415
521
  scrollX: number;
416
522
  scrollY: number;
@@ -423,17 +529,21 @@ export declare const actionCopyAsSvg: {
423
529
  value: import("../types").NormalizedZoomValue;
424
530
  }>;
425
531
  openMenu: "canvas" | "shape" | null;
426
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
427
- openSidebar: "library" | "customSidebar" | null;
428
- openDialog: "imageExport" | "help" | null;
429
- isSidebarDocked: boolean;
532
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
533
+ openSidebar: {
534
+ name: string;
535
+ tab?: string | undefined;
536
+ } | null;
537
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
538
+ defaultSidebarDockedPreference: boolean;
430
539
  lastPointerDownWith: import("../element/types").PointerType;
431
- selectedElementIds: {
432
- [id: string]: boolean;
433
- };
540
+ selectedElementIds: Readonly<{
541
+ [id: string]: true;
542
+ }>;
434
543
  previousSelectedElementIds: {
435
- [id: string]: boolean;
544
+ [id: string]: true;
436
545
  };
546
+ selectedElementsAreBeingDragged: boolean;
437
547
  shouldCacheIgnoreZoom: boolean;
438
548
  toast: {
439
549
  message: string;
@@ -441,7 +551,7 @@ export declare const actionCopyAsSvg: {
441
551
  duration?: number | undefined;
442
552
  } | null;
443
553
  zenModeEnabled: boolean;
444
- theme: string;
554
+ theme: import("../element/types").Theme;
445
555
  gridSize: number | null;
446
556
  viewModeEnabled: boolean;
447
557
  selectedGroupIds: {
@@ -464,11 +574,18 @@ export declare const actionCopyAsSvg: {
464
574
  data: import("../charts").Spreadsheet;
465
575
  };
466
576
  pendingImageElementId: string | null;
467
- showHyperlinkPopup: false | "info" | "editor";
577
+ showHyperlinkPopup: false | "editor" | "info";
468
578
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
579
+ snapLines: import("../snapping").SnapLine[];
580
+ originSnapOffset: {
581
+ x: number;
582
+ y: number;
583
+ } | null;
584
+ objectsSnapModeEnabled: boolean;
469
585
  };
470
586
  commitToHistory: false;
471
587
  }>;
588
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[]) => boolean;
472
589
  contextItemLabel: string;
473
590
  } & {
474
591
  keyTest?: undefined;
@@ -484,8 +601,17 @@ export declare const actionCopyAsPng: {
484
601
  } | {
485
602
  appState: {
486
603
  errorMessage: any;
604
+ contextMenu: {
605
+ items: import("../components/ContextMenu").ContextMenuItems;
606
+ top: number;
607
+ left: number;
608
+ } | null;
487
609
  showWelcomeScreen: boolean;
488
610
  isLoading: boolean;
611
+ activeEmbeddable: {
612
+ element: import("../element/types").NonDeletedExcalidrawElement;
613
+ state: "active" | "hover";
614
+ } | null;
489
615
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
490
616
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
491
617
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -493,19 +619,27 @@ export declare const actionCopyAsPng: {
493
619
  isBindingEnabled: boolean;
494
620
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
495
621
  suggestedBindings: import("../element/binding").SuggestedBinding[];
622
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
623
+ frameRendering: {
624
+ enabled: boolean;
625
+ name: boolean;
626
+ outline: boolean;
627
+ clip: boolean;
628
+ };
629
+ editingFrame: string | null;
630
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
496
631
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
497
632
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
498
633
  activeTool: {
499
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
500
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
634
+ lastActiveTool: import("../types").LastActiveTool;
501
635
  locked: boolean;
636
+ } & ({
637
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
502
638
  customType: null;
503
639
  } | {
504
640
  type: "custom";
505
641
  customType: string;
506
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
507
- locked: boolean;
508
- };
642
+ });
509
643
  penMode: boolean;
510
644
  penDetected: boolean;
511
645
  exportBackground: boolean;
@@ -522,10 +656,9 @@ export declare const actionCopyAsPng: {
522
656
  currentItemFontFamily: number;
523
657
  currentItemFontSize: number;
524
658
  currentItemTextAlign: string;
525
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
526
659
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
527
660
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
528
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
661
+ currentItemRoundness: import("../element/types").StrokeRoundness;
529
662
  viewBackgroundColor: string;
530
663
  scrollX: number;
531
664
  scrollY: number;
@@ -538,17 +671,21 @@ export declare const actionCopyAsPng: {
538
671
  value: import("../types").NormalizedZoomValue;
539
672
  }>;
540
673
  openMenu: "canvas" | "shape" | null;
541
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
542
- openSidebar: "library" | "customSidebar" | null;
543
- openDialog: "imageExport" | "help" | null;
544
- isSidebarDocked: boolean;
674
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
675
+ openSidebar: {
676
+ name: string;
677
+ tab?: string | undefined;
678
+ } | null;
679
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
680
+ defaultSidebarDockedPreference: boolean;
545
681
  lastPointerDownWith: import("../element/types").PointerType;
546
- selectedElementIds: {
547
- [id: string]: boolean;
548
- };
682
+ selectedElementIds: Readonly<{
683
+ [id: string]: true;
684
+ }>;
549
685
  previousSelectedElementIds: {
550
- [id: string]: boolean;
686
+ [id: string]: true;
551
687
  };
688
+ selectedElementsAreBeingDragged: boolean;
552
689
  shouldCacheIgnoreZoom: boolean;
553
690
  toast: {
554
691
  message: string;
@@ -556,7 +693,7 @@ export declare const actionCopyAsPng: {
556
693
  duration?: number | undefined;
557
694
  } | null;
558
695
  zenModeEnabled: boolean;
559
- theme: string;
696
+ theme: import("../element/types").Theme;
560
697
  gridSize: number | null;
561
698
  viewModeEnabled: boolean;
562
699
  selectedGroupIds: {
@@ -579,11 +716,18 @@ export declare const actionCopyAsPng: {
579
716
  data: import("../charts").Spreadsheet;
580
717
  };
581
718
  pendingImageElementId: string | null;
582
- showHyperlinkPopup: false | "info" | "editor";
719
+ showHyperlinkPopup: false | "editor" | "info";
583
720
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
721
+ snapLines: import("../snapping").SnapLine[];
722
+ originSnapOffset: {
723
+ x: number;
724
+ y: number;
725
+ } | null;
726
+ objectsSnapModeEnabled: boolean;
584
727
  };
585
728
  commitToHistory: false;
586
729
  }>;
730
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[]) => boolean;
587
731
  contextItemLabel: string;
588
732
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
589
733
  } & {
@@ -594,10 +738,10 @@ export declare const copyText: {
594
738
  trackEvent: {
595
739
  category: "element";
596
740
  };
597
- perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
741
+ perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => {
598
742
  commitToHistory: false;
599
743
  };
600
- contextItemPredicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState) => boolean;
744
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, _: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
601
745
  contextItemLabel: string;
602
746
  } & {
603
747
  keyTest?: undefined;