@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,4 @@
1
- /// <reference types="react" />
1
+ import { NonDeletedExcalidrawElement, Theme } from "../element/types";
2
2
  import "../components/ToolIcon.scss";
3
3
  export declare const actionChangeProjectName: {
4
4
  name: "changeProjectName";
@@ -6,29 +6,46 @@ export declare const actionChangeProjectName: {
6
6
  perform: (_elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any) => {
7
7
  appState: {
8
8
  name: any;
9
+ contextMenu: {
10
+ items: import("../components/ContextMenu").ContextMenuItems;
11
+ top: number;
12
+ left: number;
13
+ } | null;
9
14
  showWelcomeScreen: boolean;
10
15
  isLoading: boolean;
11
- errorMessage: string | null;
12
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
13
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
16
+ errorMessage: import("react").ReactNode;
17
+ activeEmbeddable: {
18
+ element: NonDeletedExcalidrawElement;
19
+ state: "active" | "hover";
20
+ } | null;
21
+ draggingElement: NonDeletedExcalidrawElement | null;
22
+ resizingElement: NonDeletedExcalidrawElement | null;
14
23
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
15
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
24
+ selectionElement: NonDeletedExcalidrawElement | null;
16
25
  isBindingEnabled: boolean;
17
26
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
18
27
  suggestedBindings: import("../element/binding").SuggestedBinding[];
19
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
28
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
29
+ frameRendering: {
30
+ enabled: boolean;
31
+ name: boolean;
32
+ outline: boolean;
33
+ clip: boolean;
34
+ };
35
+ editingFrame: string | null;
36
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
37
+ editingElement: NonDeletedExcalidrawElement | null;
20
38
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
21
39
  activeTool: {
22
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
23
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
40
+ lastActiveTool: import("../types").LastActiveTool;
24
41
  locked: boolean;
42
+ } & ({
43
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
25
44
  customType: null;
26
45
  } | {
27
46
  type: "custom";
28
47
  customType: string;
29
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
30
- locked: boolean;
31
- };
48
+ });
32
49
  penMode: boolean;
33
50
  penDetected: boolean;
34
51
  exportBackground: boolean;
@@ -45,10 +62,9 @@ export declare const actionChangeProjectName: {
45
62
  currentItemFontFamily: number;
46
63
  currentItemFontSize: number;
47
64
  currentItemTextAlign: string;
48
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
49
65
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
50
66
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
51
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
67
+ currentItemRoundness: import("../element/types").StrokeRoundness;
52
68
  viewBackgroundColor: string;
53
69
  scrollX: number;
54
70
  scrollY: number;
@@ -60,17 +76,21 @@ export declare const actionChangeProjectName: {
60
76
  value: import("../types").NormalizedZoomValue;
61
77
  }>;
62
78
  openMenu: "canvas" | "shape" | null;
63
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
64
- openSidebar: "library" | "customSidebar" | null;
65
- openDialog: "imageExport" | "help" | null;
66
- isSidebarDocked: boolean;
79
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
80
+ openSidebar: {
81
+ name: string;
82
+ tab?: string | undefined;
83
+ } | null;
84
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
85
+ defaultSidebarDockedPreference: boolean;
67
86
  lastPointerDownWith: import("../element/types").PointerType;
68
- selectedElementIds: {
69
- [id: string]: boolean;
70
- };
87
+ selectedElementIds: Readonly<{
88
+ [id: string]: true;
89
+ }>;
71
90
  previousSelectedElementIds: {
72
- [id: string]: boolean;
91
+ [id: string]: true;
73
92
  };
93
+ selectedElementsAreBeingDragged: boolean;
74
94
  shouldCacheIgnoreZoom: boolean;
75
95
  toast: {
76
96
  message: string;
@@ -78,7 +98,7 @@ export declare const actionChangeProjectName: {
78
98
  duration?: number | undefined;
79
99
  } | null;
80
100
  zenModeEnabled: boolean;
81
- theme: string;
101
+ theme: Theme;
82
102
  gridSize: number | null;
83
103
  viewModeEnabled: boolean;
84
104
  selectedGroupIds: {
@@ -101,14 +121,18 @@ export declare const actionChangeProjectName: {
101
121
  data: import("../charts").Spreadsheet;
102
122
  };
103
123
  pendingImageElementId: string | null;
104
- showHyperlinkPopup: false | "info" | "editor";
124
+ showHyperlinkPopup: false | "editor" | "info";
105
125
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
126
+ snapLines: import("../snapping").SnapLine[];
127
+ originSnapOffset: {
128
+ x: number;
129
+ y: number;
130
+ } | null;
131
+ objectsSnapModeEnabled: boolean;
106
132
  };
107
133
  commitToHistory: false;
108
134
  };
109
- PanelComponent: ({ appState, updateData, appProps }: import("./types").PanelComponentProps & {
110
- isInHamburgerMenu: boolean;
111
- }) => JSX.Element;
135
+ PanelComponent: ({ appState, updateData, appProps, data }: import("./types").PanelComponentProps) => JSX.Element;
112
136
  } & {
113
137
  keyTest?: undefined;
114
138
  };
@@ -121,29 +145,46 @@ export declare const actionChangeExportScale: {
121
145
  perform: (_elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any) => {
122
146
  appState: {
123
147
  exportScale: any;
148
+ contextMenu: {
149
+ items: import("../components/ContextMenu").ContextMenuItems;
150
+ top: number;
151
+ left: number;
152
+ } | null;
124
153
  showWelcomeScreen: boolean;
125
154
  isLoading: boolean;
126
- errorMessage: string | null;
127
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
128
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
155
+ errorMessage: import("react").ReactNode;
156
+ activeEmbeddable: {
157
+ element: NonDeletedExcalidrawElement;
158
+ state: "active" | "hover";
159
+ } | null;
160
+ draggingElement: NonDeletedExcalidrawElement | null;
161
+ resizingElement: NonDeletedExcalidrawElement | null;
129
162
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
130
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
163
+ selectionElement: NonDeletedExcalidrawElement | null;
131
164
  isBindingEnabled: boolean;
132
165
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
133
166
  suggestedBindings: import("../element/binding").SuggestedBinding[];
134
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
167
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
168
+ frameRendering: {
169
+ enabled: boolean;
170
+ name: boolean;
171
+ outline: boolean;
172
+ clip: boolean;
173
+ };
174
+ editingFrame: string | null;
175
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
176
+ editingElement: NonDeletedExcalidrawElement | null;
135
177
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
136
178
  activeTool: {
137
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
138
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
179
+ lastActiveTool: import("../types").LastActiveTool;
139
180
  locked: boolean;
181
+ } & ({
182
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
140
183
  customType: null;
141
184
  } | {
142
185
  type: "custom";
143
186
  customType: string;
144
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
145
- locked: boolean;
146
- };
187
+ });
147
188
  penMode: boolean;
148
189
  penDetected: boolean;
149
190
  exportBackground: boolean;
@@ -159,10 +200,9 @@ export declare const actionChangeExportScale: {
159
200
  currentItemFontFamily: number;
160
201
  currentItemFontSize: number;
161
202
  currentItemTextAlign: string;
162
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
163
203
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
164
204
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
165
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
205
+ currentItemRoundness: import("../element/types").StrokeRoundness;
166
206
  viewBackgroundColor: string;
167
207
  scrollX: number;
168
208
  scrollY: number;
@@ -175,17 +215,21 @@ export declare const actionChangeExportScale: {
175
215
  value: import("../types").NormalizedZoomValue;
176
216
  }>;
177
217
  openMenu: "canvas" | "shape" | null;
178
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
179
- openSidebar: "library" | "customSidebar" | null;
180
- openDialog: "imageExport" | "help" | null;
181
- isSidebarDocked: boolean;
218
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
219
+ openSidebar: {
220
+ name: string;
221
+ tab?: string | undefined;
222
+ } | null;
223
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
224
+ defaultSidebarDockedPreference: boolean;
182
225
  lastPointerDownWith: import("../element/types").PointerType;
183
- selectedElementIds: {
184
- [id: string]: boolean;
185
- };
226
+ selectedElementIds: Readonly<{
227
+ [id: string]: true;
228
+ }>;
186
229
  previousSelectedElementIds: {
187
- [id: string]: boolean;
230
+ [id: string]: true;
188
231
  };
232
+ selectedElementsAreBeingDragged: boolean;
189
233
  shouldCacheIgnoreZoom: boolean;
190
234
  toast: {
191
235
  message: string;
@@ -193,7 +237,7 @@ export declare const actionChangeExportScale: {
193
237
  duration?: number | undefined;
194
238
  } | null;
195
239
  zenModeEnabled: boolean;
196
- theme: string;
240
+ theme: Theme;
197
241
  gridSize: number | null;
198
242
  viewModeEnabled: boolean;
199
243
  selectedGroupIds: {
@@ -216,14 +260,18 @@ export declare const actionChangeExportScale: {
216
260
  data: import("../charts").Spreadsheet;
217
261
  };
218
262
  pendingImageElementId: string | null;
219
- showHyperlinkPopup: false | "info" | "editor";
263
+ showHyperlinkPopup: false | "editor" | "info";
220
264
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
265
+ snapLines: import("../snapping").SnapLine[];
266
+ originSnapOffset: {
267
+ x: number;
268
+ y: number;
269
+ } | null;
270
+ objectsSnapModeEnabled: boolean;
221
271
  };
222
272
  commitToHistory: false;
223
273
  };
224
- PanelComponent: ({ elements: allElements, appState, updateData }: import("./types").PanelComponentProps & {
225
- isInHamburgerMenu: boolean;
226
- }) => JSX.Element;
274
+ PanelComponent: ({ elements: allElements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
227
275
  } & {
228
276
  keyTest?: undefined;
229
277
  };
@@ -236,29 +284,46 @@ export declare const actionChangeExportBackground: {
236
284
  perform: (_elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any) => {
237
285
  appState: {
238
286
  exportBackground: any;
287
+ contextMenu: {
288
+ items: import("../components/ContextMenu").ContextMenuItems;
289
+ top: number;
290
+ left: number;
291
+ } | null;
239
292
  showWelcomeScreen: boolean;
240
293
  isLoading: boolean;
241
- errorMessage: string | null;
242
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
243
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
294
+ errorMessage: import("react").ReactNode;
295
+ activeEmbeddable: {
296
+ element: NonDeletedExcalidrawElement;
297
+ state: "active" | "hover";
298
+ } | null;
299
+ draggingElement: NonDeletedExcalidrawElement | null;
300
+ resizingElement: NonDeletedExcalidrawElement | null;
244
301
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
245
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
302
+ selectionElement: NonDeletedExcalidrawElement | null;
246
303
  isBindingEnabled: boolean;
247
304
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
248
305
  suggestedBindings: import("../element/binding").SuggestedBinding[];
249
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
306
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
307
+ frameRendering: {
308
+ enabled: boolean;
309
+ name: boolean;
310
+ outline: boolean;
311
+ clip: boolean;
312
+ };
313
+ editingFrame: string | null;
314
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
315
+ editingElement: NonDeletedExcalidrawElement | null;
250
316
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
251
317
  activeTool: {
252
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
253
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
318
+ lastActiveTool: import("../types").LastActiveTool;
254
319
  locked: boolean;
320
+ } & ({
321
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
255
322
  customType: null;
256
323
  } | {
257
324
  type: "custom";
258
325
  customType: string;
259
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
260
- locked: boolean;
261
- };
326
+ });
262
327
  penMode: boolean;
263
328
  penDetected: boolean;
264
329
  exportEmbedScene: boolean;
@@ -274,10 +339,9 @@ export declare const actionChangeExportBackground: {
274
339
  currentItemFontFamily: number;
275
340
  currentItemFontSize: number;
276
341
  currentItemTextAlign: string;
277
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
278
342
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
279
343
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
280
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
344
+ currentItemRoundness: import("../element/types").StrokeRoundness;
281
345
  viewBackgroundColor: string;
282
346
  scrollX: number;
283
347
  scrollY: number;
@@ -290,17 +354,21 @@ export declare const actionChangeExportBackground: {
290
354
  value: import("../types").NormalizedZoomValue;
291
355
  }>;
292
356
  openMenu: "canvas" | "shape" | null;
293
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
294
- openSidebar: "library" | "customSidebar" | null;
295
- openDialog: "imageExport" | "help" | null;
296
- isSidebarDocked: boolean;
357
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
358
+ openSidebar: {
359
+ name: string;
360
+ tab?: string | undefined;
361
+ } | null;
362
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
363
+ defaultSidebarDockedPreference: boolean;
297
364
  lastPointerDownWith: import("../element/types").PointerType;
298
- selectedElementIds: {
299
- [id: string]: boolean;
300
- };
365
+ selectedElementIds: Readonly<{
366
+ [id: string]: true;
367
+ }>;
301
368
  previousSelectedElementIds: {
302
- [id: string]: boolean;
369
+ [id: string]: true;
303
370
  };
371
+ selectedElementsAreBeingDragged: boolean;
304
372
  shouldCacheIgnoreZoom: boolean;
305
373
  toast: {
306
374
  message: string;
@@ -308,7 +376,7 @@ export declare const actionChangeExportBackground: {
308
376
  duration?: number | undefined;
309
377
  } | null;
310
378
  zenModeEnabled: boolean;
311
- theme: string;
379
+ theme: Theme;
312
380
  gridSize: number | null;
313
381
  viewModeEnabled: boolean;
314
382
  selectedGroupIds: {
@@ -331,14 +399,18 @@ export declare const actionChangeExportBackground: {
331
399
  data: import("../charts").Spreadsheet;
332
400
  };
333
401
  pendingImageElementId: string | null;
334
- showHyperlinkPopup: false | "info" | "editor";
402
+ showHyperlinkPopup: false | "editor" | "info";
335
403
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
404
+ snapLines: import("../snapping").SnapLine[];
405
+ originSnapOffset: {
406
+ x: number;
407
+ y: number;
408
+ } | null;
409
+ objectsSnapModeEnabled: boolean;
336
410
  };
337
411
  commitToHistory: false;
338
412
  };
339
- PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps & {
340
- isInHamburgerMenu: boolean;
341
- }) => JSX.Element;
413
+ PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
342
414
  } & {
343
415
  keyTest?: undefined;
344
416
  };
@@ -351,29 +423,46 @@ export declare const actionChangeExportEmbedScene: {
351
423
  perform: (_elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any) => {
352
424
  appState: {
353
425
  exportEmbedScene: any;
426
+ contextMenu: {
427
+ items: import("../components/ContextMenu").ContextMenuItems;
428
+ top: number;
429
+ left: number;
430
+ } | null;
354
431
  showWelcomeScreen: boolean;
355
432
  isLoading: boolean;
356
- errorMessage: string | null;
357
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
358
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
433
+ errorMessage: import("react").ReactNode;
434
+ activeEmbeddable: {
435
+ element: NonDeletedExcalidrawElement;
436
+ state: "active" | "hover";
437
+ } | null;
438
+ draggingElement: NonDeletedExcalidrawElement | null;
439
+ resizingElement: NonDeletedExcalidrawElement | null;
359
440
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
360
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
441
+ selectionElement: NonDeletedExcalidrawElement | null;
361
442
  isBindingEnabled: boolean;
362
443
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
363
444
  suggestedBindings: import("../element/binding").SuggestedBinding[];
364
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
445
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
446
+ frameRendering: {
447
+ enabled: boolean;
448
+ name: boolean;
449
+ outline: boolean;
450
+ clip: boolean;
451
+ };
452
+ editingFrame: string | null;
453
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
454
+ editingElement: NonDeletedExcalidrawElement | null;
365
455
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
366
456
  activeTool: {
367
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
368
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
457
+ lastActiveTool: import("../types").LastActiveTool;
369
458
  locked: boolean;
459
+ } & ({
460
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
370
461
  customType: null;
371
462
  } | {
372
463
  type: "custom";
373
464
  customType: string;
374
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
375
- locked: boolean;
376
- };
465
+ });
377
466
  penMode: boolean;
378
467
  penDetected: boolean;
379
468
  exportBackground: boolean;
@@ -389,10 +478,9 @@ export declare const actionChangeExportEmbedScene: {
389
478
  currentItemFontFamily: number;
390
479
  currentItemFontSize: number;
391
480
  currentItemTextAlign: string;
392
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
393
481
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
394
482
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
395
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
483
+ currentItemRoundness: import("../element/types").StrokeRoundness;
396
484
  viewBackgroundColor: string;
397
485
  scrollX: number;
398
486
  scrollY: number;
@@ -405,17 +493,21 @@ export declare const actionChangeExportEmbedScene: {
405
493
  value: import("../types").NormalizedZoomValue;
406
494
  }>;
407
495
  openMenu: "canvas" | "shape" | null;
408
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
409
- openSidebar: "library" | "customSidebar" | null;
410
- openDialog: "imageExport" | "help" | null;
411
- isSidebarDocked: boolean;
496
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
497
+ openSidebar: {
498
+ name: string;
499
+ tab?: string | undefined;
500
+ } | null;
501
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
502
+ defaultSidebarDockedPreference: boolean;
412
503
  lastPointerDownWith: import("../element/types").PointerType;
413
- selectedElementIds: {
414
- [id: string]: boolean;
415
- };
504
+ selectedElementIds: Readonly<{
505
+ [id: string]: true;
506
+ }>;
416
507
  previousSelectedElementIds: {
417
- [id: string]: boolean;
508
+ [id: string]: true;
418
509
  };
510
+ selectedElementsAreBeingDragged: boolean;
419
511
  shouldCacheIgnoreZoom: boolean;
420
512
  toast: {
421
513
  message: string;
@@ -423,7 +515,7 @@ export declare const actionChangeExportEmbedScene: {
423
515
  duration?: number | undefined;
424
516
  } | null;
425
517
  zenModeEnabled: boolean;
426
- theme: string;
518
+ theme: Theme;
427
519
  gridSize: number | null;
428
520
  viewModeEnabled: boolean;
429
521
  selectedGroupIds: {
@@ -446,14 +538,18 @@ export declare const actionChangeExportEmbedScene: {
446
538
  data: import("../charts").Spreadsheet;
447
539
  };
448
540
  pendingImageElementId: string | null;
449
- showHyperlinkPopup: false | "info" | "editor";
541
+ showHyperlinkPopup: false | "editor" | "info";
450
542
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
543
+ snapLines: import("../snapping").SnapLine[];
544
+ originSnapOffset: {
545
+ x: number;
546
+ y: number;
547
+ } | null;
548
+ objectsSnapModeEnabled: boolean;
451
549
  };
452
550
  commitToHistory: false;
453
551
  };
454
- PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps & {
455
- isInHamburgerMenu: boolean;
456
- }) => JSX.Element;
552
+ PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
457
553
  } & {
458
554
  keyTest?: undefined;
459
555
  };
@@ -462,6 +558,7 @@ export declare const actionSaveToActiveFile: {
462
558
  trackEvent: {
463
559
  category: "export";
464
560
  };
561
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, props: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
465
562
  perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any, app: import("../types").AppClassProperties) => Promise<{
466
563
  commitToHistory: false;
467
564
  appState: {
@@ -469,29 +566,46 @@ export declare const actionSaveToActiveFile: {
469
566
  toast: {
470
567
  message: string;
471
568
  } | null;
569
+ contextMenu: {
570
+ items: import("../components/ContextMenu").ContextMenuItems;
571
+ top: number;
572
+ left: number;
573
+ } | null;
472
574
  showWelcomeScreen: boolean;
473
575
  isLoading: boolean;
474
- errorMessage: string | null;
475
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
476
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
576
+ errorMessage: import("react").ReactNode;
577
+ activeEmbeddable: {
578
+ element: NonDeletedExcalidrawElement;
579
+ state: "active" | "hover";
580
+ } | null;
581
+ draggingElement: NonDeletedExcalidrawElement | null;
582
+ resizingElement: NonDeletedExcalidrawElement | null;
477
583
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
478
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
584
+ selectionElement: NonDeletedExcalidrawElement | null;
479
585
  isBindingEnabled: boolean;
480
586
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
481
587
  suggestedBindings: import("../element/binding").SuggestedBinding[];
482
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
588
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
589
+ frameRendering: {
590
+ enabled: boolean;
591
+ name: boolean;
592
+ outline: boolean;
593
+ clip: boolean;
594
+ };
595
+ editingFrame: string | null;
596
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
597
+ editingElement: NonDeletedExcalidrawElement | null;
483
598
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
484
599
  activeTool: {
485
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
486
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
600
+ lastActiveTool: import("../types").LastActiveTool;
487
601
  locked: boolean;
602
+ } & ({
603
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
488
604
  customType: null;
489
605
  } | {
490
606
  type: "custom";
491
607
  customType: string;
492
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
493
- locked: boolean;
494
- };
608
+ });
495
609
  penMode: boolean;
496
610
  penDetected: boolean;
497
611
  exportBackground: boolean;
@@ -508,10 +622,9 @@ export declare const actionSaveToActiveFile: {
508
622
  currentItemFontFamily: number;
509
623
  currentItemFontSize: number;
510
624
  currentItemTextAlign: string;
511
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
512
625
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
513
626
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
514
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
627
+ currentItemRoundness: import("../element/types").StrokeRoundness;
515
628
  viewBackgroundColor: string;
516
629
  scrollX: number;
517
630
  scrollY: number;
@@ -524,20 +637,24 @@ export declare const actionSaveToActiveFile: {
524
637
  value: import("../types").NormalizedZoomValue;
525
638
  }>;
526
639
  openMenu: "canvas" | "shape" | null;
527
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
528
- openSidebar: "library" | "customSidebar" | null;
529
- openDialog: "imageExport" | "help" | null;
530
- isSidebarDocked: boolean;
640
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
641
+ openSidebar: {
642
+ name: string;
643
+ tab?: string | undefined;
644
+ } | null;
645
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
646
+ defaultSidebarDockedPreference: boolean;
531
647
  lastPointerDownWith: import("../element/types").PointerType;
532
- selectedElementIds: {
533
- [id: string]: boolean;
534
- };
648
+ selectedElementIds: Readonly<{
649
+ [id: string]: true;
650
+ }>;
535
651
  previousSelectedElementIds: {
536
- [id: string]: boolean;
652
+ [id: string]: true;
537
653
  };
654
+ selectedElementsAreBeingDragged: boolean;
538
655
  shouldCacheIgnoreZoom: boolean;
539
656
  zenModeEnabled: boolean;
540
- theme: string;
657
+ theme: Theme;
541
658
  gridSize: number | null;
542
659
  viewModeEnabled: boolean;
543
660
  selectedGroupIds: {
@@ -559,22 +676,26 @@ export declare const actionSaveToActiveFile: {
559
676
  data: import("../charts").Spreadsheet;
560
677
  };
561
678
  pendingImageElementId: string | null;
562
- showHyperlinkPopup: false | "info" | "editor";
679
+ showHyperlinkPopup: false | "editor" | "info";
563
680
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
681
+ snapLines: import("../snapping").SnapLine[];
682
+ originSnapOffset: {
683
+ x: number;
684
+ y: number;
685
+ } | null;
686
+ objectsSnapModeEnabled: boolean;
564
687
  };
565
688
  } | {
566
689
  commitToHistory: false;
567
690
  appState?: undefined;
568
691
  }>;
569
692
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
570
- PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps & {
571
- isInHamburgerMenu: boolean;
572
- }) => JSX.Element;
573
693
  } & {
574
694
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
575
695
  };
576
696
  export declare const actionSaveFileToDisk: {
577
697
  name: "saveFileToDisk";
698
+ viewMode: true;
578
699
  trackEvent: {
579
700
  category: "export";
580
701
  };
@@ -582,29 +703,46 @@ export declare const actionSaveFileToDisk: {
582
703
  commitToHistory: false;
583
704
  appState: {
584
705
  fileHandle: import("browser-fs-access").FileSystemHandle | null;
706
+ contextMenu: {
707
+ items: import("../components/ContextMenu").ContextMenuItems;
708
+ top: number;
709
+ left: number;
710
+ } | null;
585
711
  showWelcomeScreen: boolean;
586
712
  isLoading: boolean;
587
- errorMessage: string | null;
588
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
589
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
713
+ errorMessage: import("react").ReactNode;
714
+ activeEmbeddable: {
715
+ element: NonDeletedExcalidrawElement;
716
+ state: "active" | "hover";
717
+ } | null;
718
+ draggingElement: NonDeletedExcalidrawElement | null;
719
+ resizingElement: NonDeletedExcalidrawElement | null;
590
720
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
591
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
721
+ selectionElement: NonDeletedExcalidrawElement | null;
592
722
  isBindingEnabled: boolean;
593
723
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
594
724
  suggestedBindings: import("../element/binding").SuggestedBinding[];
595
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
725
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
726
+ frameRendering: {
727
+ enabled: boolean;
728
+ name: boolean;
729
+ outline: boolean;
730
+ clip: boolean;
731
+ };
732
+ editingFrame: string | null;
733
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
734
+ editingElement: NonDeletedExcalidrawElement | null;
596
735
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
597
736
  activeTool: {
598
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
599
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
737
+ lastActiveTool: import("../types").LastActiveTool;
600
738
  locked: boolean;
739
+ } & ({
740
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
601
741
  customType: null;
602
742
  } | {
603
743
  type: "custom";
604
744
  customType: string;
605
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
606
- locked: boolean;
607
- };
745
+ });
608
746
  penMode: boolean;
609
747
  penDetected: boolean;
610
748
  exportBackground: boolean;
@@ -621,10 +759,9 @@ export declare const actionSaveFileToDisk: {
621
759
  currentItemFontFamily: number;
622
760
  currentItemFontSize: number;
623
761
  currentItemTextAlign: string;
624
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
625
762
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
626
763
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
627
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
764
+ currentItemRoundness: import("../element/types").StrokeRoundness;
628
765
  viewBackgroundColor: string;
629
766
  scrollX: number;
630
767
  scrollY: number;
@@ -637,17 +774,21 @@ export declare const actionSaveFileToDisk: {
637
774
  value: import("../types").NormalizedZoomValue;
638
775
  }>;
639
776
  openMenu: "canvas" | "shape" | null;
640
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
641
- openSidebar: "library" | "customSidebar" | null;
642
- openDialog: "imageExport" | "help" | null;
643
- isSidebarDocked: boolean;
777
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
778
+ openSidebar: {
779
+ name: string;
780
+ tab?: string | undefined;
781
+ } | null;
782
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
783
+ defaultSidebarDockedPreference: boolean;
644
784
  lastPointerDownWith: import("../element/types").PointerType;
645
- selectedElementIds: {
646
- [id: string]: boolean;
647
- };
785
+ selectedElementIds: Readonly<{
786
+ [id: string]: true;
787
+ }>;
648
788
  previousSelectedElementIds: {
649
- [id: string]: boolean;
789
+ [id: string]: true;
650
790
  };
791
+ selectedElementsAreBeingDragged: boolean;
651
792
  shouldCacheIgnoreZoom: boolean;
652
793
  toast: {
653
794
  message: string;
@@ -655,7 +796,7 @@ export declare const actionSaveFileToDisk: {
655
796
  duration?: number | undefined;
656
797
  } | null;
657
798
  zenModeEnabled: boolean;
658
- theme: string;
799
+ theme: Theme;
659
800
  gridSize: number | null;
660
801
  viewModeEnabled: boolean;
661
802
  selectedGroupIds: {
@@ -677,17 +818,21 @@ export declare const actionSaveFileToDisk: {
677
818
  data: import("../charts").Spreadsheet;
678
819
  };
679
820
  pendingImageElementId: string | null;
680
- showHyperlinkPopup: false | "info" | "editor";
821
+ showHyperlinkPopup: false | "editor" | "info";
681
822
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
823
+ snapLines: import("../snapping").SnapLine[];
824
+ originSnapOffset: {
825
+ x: number;
826
+ y: number;
827
+ } | null;
828
+ objectsSnapModeEnabled: boolean;
682
829
  };
683
830
  } | {
684
831
  commitToHistory: false;
685
832
  appState?: undefined;
686
833
  }>;
687
834
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
688
- PanelComponent: ({ updateData }: import("./types").PanelComponentProps & {
689
- isInHamburgerMenu: boolean;
690
- }) => JSX.Element;
835
+ PanelComponent: ({ updateData }: import("./types").PanelComponentProps) => JSX.Element;
691
836
  } & {
692
837
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
693
838
  };
@@ -696,35 +841,59 @@ export declare const actionLoadScene: {
696
841
  trackEvent: {
697
842
  category: "export";
698
843
  };
844
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, props: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
699
845
  perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => Promise<false | {
700
846
  elements: import("../element/types").ExcalidrawElement[];
701
847
  appState: {
702
- theme: string;
848
+ theme: Theme;
703
849
  name: string;
704
850
  activeTool: {
705
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
706
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
851
+ lastActiveTool: import("../types").LastActiveTool;
707
852
  locked: boolean;
853
+ } & ({
854
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
708
855
  customType: null;
709
856
  } | {
710
857
  type: "custom";
711
858
  customType: string;
712
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
713
- locked: boolean;
714
- };
859
+ });
860
+ toast: {
861
+ message: string;
862
+ closable?: boolean | undefined;
863
+ duration?: number | undefined;
864
+ } | null;
865
+ collaborators: Map<string, import("../types").Collaborator>;
866
+ penMode: boolean;
867
+ contextMenu: {
868
+ items: import("../components/ContextMenu").ContextMenuItems;
869
+ top: number;
870
+ left: number;
871
+ } | null;
715
872
  showWelcomeScreen: boolean;
716
873
  isLoading: boolean;
717
- errorMessage: string | null;
718
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
719
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
874
+ errorMessage: import("react").ReactNode;
875
+ activeEmbeddable: {
876
+ element: NonDeletedExcalidrawElement;
877
+ state: "active" | "hover";
878
+ } | null;
879
+ draggingElement: NonDeletedExcalidrawElement | null;
880
+ resizingElement: NonDeletedExcalidrawElement | null;
720
881
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
721
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
882
+ selectionElement: NonDeletedExcalidrawElement | null;
722
883
  isBindingEnabled: boolean;
723
884
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
724
885
  suggestedBindings: import("../element/binding").SuggestedBinding[];
725
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
886
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
887
+ frameRendering: {
888
+ enabled: boolean;
889
+ name: boolean;
890
+ outline: boolean;
891
+ clip: boolean;
892
+ };
893
+ editingFrame: string | null;
894
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
895
+ editingElement: NonDeletedExcalidrawElement | null;
726
896
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
727
- penMode: boolean;
728
897
  penDetected: boolean;
729
898
  exportBackground: boolean;
730
899
  exportEmbedScene: boolean;
@@ -740,10 +909,9 @@ export declare const actionLoadScene: {
740
909
  currentItemFontFamily: number;
741
910
  currentItemFontSize: number;
742
911
  currentItemTextAlign: string;
743
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
744
912
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
745
913
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
746
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
914
+ currentItemRoundness: import("../element/types").StrokeRoundness;
747
915
  viewBackgroundColor: string;
748
916
  scrollX: number;
749
917
  scrollY: number;
@@ -755,23 +923,22 @@ export declare const actionLoadScene: {
755
923
  value: import("../types").NormalizedZoomValue;
756
924
  }>;
757
925
  openMenu: "canvas" | "shape" | null;
758
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
759
- openSidebar: "library" | "customSidebar" | null;
760
- openDialog: "imageExport" | "help" | null;
761
- isSidebarDocked: boolean;
926
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
927
+ openSidebar: {
928
+ name: string;
929
+ tab?: string | undefined;
930
+ } | null;
931
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
932
+ defaultSidebarDockedPreference: boolean;
762
933
  lastPointerDownWith: import("../element/types").PointerType;
763
- selectedElementIds: {
764
- [id: string]: boolean;
765
- };
934
+ selectedElementIds: Readonly<{
935
+ [id: string]: true;
936
+ }>;
766
937
  previousSelectedElementIds: {
767
- [id: string]: boolean;
938
+ [id: string]: true;
768
939
  };
940
+ selectedElementsAreBeingDragged: boolean;
769
941
  shouldCacheIgnoreZoom: boolean;
770
- toast: {
771
- message: string;
772
- closable?: boolean | undefined;
773
- duration?: number | undefined;
774
- } | null;
775
942
  zenModeEnabled: boolean;
776
943
  gridSize: number | null;
777
944
  viewModeEnabled: boolean;
@@ -780,7 +947,6 @@ export declare const actionLoadScene: {
780
947
  };
781
948
  editingGroupId: string | null;
782
949
  fileHandle: import("browser-fs-access").FileSystemHandle | null;
783
- collaborators: Map<string, import("../types").Collaborator>;
784
950
  showStats: boolean;
785
951
  currentChartType: import("../element/types").ChartType;
786
952
  pasteDialog: {
@@ -791,8 +957,14 @@ export declare const actionLoadScene: {
791
957
  data: import("../charts").Spreadsheet;
792
958
  };
793
959
  pendingImageElementId: string | null;
794
- showHyperlinkPopup: false | "info" | "editor";
960
+ showHyperlinkPopup: false | "editor" | "info";
795
961
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
962
+ snapLines: import("../snapping").SnapLine[];
963
+ originSnapOffset: {
964
+ x: number;
965
+ y: number;
966
+ } | null;
967
+ objectsSnapModeEnabled: boolean;
796
968
  };
797
969
  files: import("../types").BinaryFiles;
798
970
  commitToHistory: true;
@@ -800,28 +972,45 @@ export declare const actionLoadScene: {
800
972
  elements: readonly import("../element/types").ExcalidrawElement[];
801
973
  appState: {
802
974
  errorMessage: any;
975
+ contextMenu: {
976
+ items: import("../components/ContextMenu").ContextMenuItems;
977
+ top: number;
978
+ left: number;
979
+ } | null;
803
980
  showWelcomeScreen: boolean;
804
981
  isLoading: boolean;
805
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
806
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
982
+ activeEmbeddable: {
983
+ element: NonDeletedExcalidrawElement;
984
+ state: "active" | "hover";
985
+ } | null;
986
+ draggingElement: NonDeletedExcalidrawElement | null;
987
+ resizingElement: NonDeletedExcalidrawElement | null;
807
988
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
808
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
989
+ selectionElement: NonDeletedExcalidrawElement | null;
809
990
  isBindingEnabled: boolean;
810
991
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
811
992
  suggestedBindings: import("../element/binding").SuggestedBinding[];
812
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
993
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
994
+ frameRendering: {
995
+ enabled: boolean;
996
+ name: boolean;
997
+ outline: boolean;
998
+ clip: boolean;
999
+ };
1000
+ editingFrame: string | null;
1001
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
1002
+ editingElement: NonDeletedExcalidrawElement | null;
813
1003
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
814
1004
  activeTool: {
815
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
816
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
1005
+ lastActiveTool: import("../types").LastActiveTool;
817
1006
  locked: boolean;
1007
+ } & ({
1008
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
818
1009
  customType: null;
819
1010
  } | {
820
1011
  type: "custom";
821
1012
  customType: string;
822
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
823
- locked: boolean;
824
- };
1013
+ });
825
1014
  penMode: boolean;
826
1015
  penDetected: boolean;
827
1016
  exportBackground: boolean;
@@ -838,10 +1027,9 @@ export declare const actionLoadScene: {
838
1027
  currentItemFontFamily: number;
839
1028
  currentItemFontSize: number;
840
1029
  currentItemTextAlign: string;
841
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
842
1030
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
843
1031
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
844
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
1032
+ currentItemRoundness: import("../element/types").StrokeRoundness;
845
1033
  viewBackgroundColor: string;
846
1034
  scrollX: number;
847
1035
  scrollY: number;
@@ -854,17 +1042,21 @@ export declare const actionLoadScene: {
854
1042
  value: import("../types").NormalizedZoomValue;
855
1043
  }>;
856
1044
  openMenu: "canvas" | "shape" | null;
857
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
858
- openSidebar: "library" | "customSidebar" | null;
859
- openDialog: "imageExport" | "help" | null;
860
- isSidebarDocked: boolean;
1045
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
1046
+ openSidebar: {
1047
+ name: string;
1048
+ tab?: string | undefined;
1049
+ } | null;
1050
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
1051
+ defaultSidebarDockedPreference: boolean;
861
1052
  lastPointerDownWith: import("../element/types").PointerType;
862
- selectedElementIds: {
863
- [id: string]: boolean;
864
- };
1053
+ selectedElementIds: Readonly<{
1054
+ [id: string]: true;
1055
+ }>;
865
1056
  previousSelectedElementIds: {
866
- [id: string]: boolean;
1057
+ [id: string]: true;
867
1058
  };
1059
+ selectedElementsAreBeingDragged: boolean;
868
1060
  shouldCacheIgnoreZoom: boolean;
869
1061
  toast: {
870
1062
  message: string;
@@ -872,7 +1064,7 @@ export declare const actionLoadScene: {
872
1064
  duration?: number | undefined;
873
1065
  } | null;
874
1066
  zenModeEnabled: boolean;
875
- theme: string;
1067
+ theme: Theme;
876
1068
  gridSize: number | null;
877
1069
  viewModeEnabled: boolean;
878
1070
  selectedGroupIds: {
@@ -895,16 +1087,19 @@ export declare const actionLoadScene: {
895
1087
  data: import("../charts").Spreadsheet;
896
1088
  };
897
1089
  pendingImageElementId: string | null;
898
- showHyperlinkPopup: false | "info" | "editor";
1090
+ showHyperlinkPopup: false | "editor" | "info";
899
1091
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
1092
+ snapLines: import("../snapping").SnapLine[];
1093
+ originSnapOffset: {
1094
+ x: number;
1095
+ y: number;
1096
+ } | null;
1097
+ objectsSnapModeEnabled: boolean;
900
1098
  };
901
1099
  files: import("../types").BinaryFiles;
902
1100
  commitToHistory: false;
903
1101
  }>;
904
1102
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
905
- PanelComponent: ({ updateData }: import("./types").PanelComponentProps & {
906
- isInHamburgerMenu: boolean;
907
- }) => JSX.Element;
908
1103
  } & {
909
1104
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
910
1105
  };
@@ -917,29 +1112,46 @@ export declare const actionExportWithDarkMode: {
917
1112
  perform: (_elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any) => {
918
1113
  appState: {
919
1114
  exportWithDarkMode: any;
1115
+ contextMenu: {
1116
+ items: import("../components/ContextMenu").ContextMenuItems;
1117
+ top: number;
1118
+ left: number;
1119
+ } | null;
920
1120
  showWelcomeScreen: boolean;
921
1121
  isLoading: boolean;
922
- errorMessage: string | null;
923
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
924
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
1122
+ errorMessage: import("react").ReactNode;
1123
+ activeEmbeddable: {
1124
+ element: NonDeletedExcalidrawElement;
1125
+ state: "active" | "hover";
1126
+ } | null;
1127
+ draggingElement: NonDeletedExcalidrawElement | null;
1128
+ resizingElement: NonDeletedExcalidrawElement | null;
925
1129
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
926
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
1130
+ selectionElement: NonDeletedExcalidrawElement | null;
927
1131
  isBindingEnabled: boolean;
928
1132
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
929
1133
  suggestedBindings: import("../element/binding").SuggestedBinding[];
930
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
1134
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
1135
+ frameRendering: {
1136
+ enabled: boolean;
1137
+ name: boolean;
1138
+ outline: boolean;
1139
+ clip: boolean;
1140
+ };
1141
+ editingFrame: string | null;
1142
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
1143
+ editingElement: NonDeletedExcalidrawElement | null;
931
1144
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
932
1145
  activeTool: {
933
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
934
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
1146
+ lastActiveTool: import("../types").LastActiveTool;
935
1147
  locked: boolean;
1148
+ } & ({
1149
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
936
1150
  customType: null;
937
1151
  } | {
938
1152
  type: "custom";
939
1153
  customType: string;
940
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
941
- locked: boolean;
942
- };
1154
+ });
943
1155
  penMode: boolean;
944
1156
  penDetected: boolean;
945
1157
  exportBackground: boolean;
@@ -955,10 +1167,9 @@ export declare const actionExportWithDarkMode: {
955
1167
  currentItemFontFamily: number;
956
1168
  currentItemFontSize: number;
957
1169
  currentItemTextAlign: string;
958
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
959
1170
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
960
1171
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
961
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
1172
+ currentItemRoundness: import("../element/types").StrokeRoundness;
962
1173
  viewBackgroundColor: string;
963
1174
  scrollX: number;
964
1175
  scrollY: number;
@@ -971,17 +1182,21 @@ export declare const actionExportWithDarkMode: {
971
1182
  value: import("../types").NormalizedZoomValue;
972
1183
  }>;
973
1184
  openMenu: "canvas" | "shape" | null;
974
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
975
- openSidebar: "library" | "customSidebar" | null;
976
- openDialog: "imageExport" | "help" | null;
977
- isSidebarDocked: boolean;
1185
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
1186
+ openSidebar: {
1187
+ name: string;
1188
+ tab?: string | undefined;
1189
+ } | null;
1190
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
1191
+ defaultSidebarDockedPreference: boolean;
978
1192
  lastPointerDownWith: import("../element/types").PointerType;
979
- selectedElementIds: {
980
- [id: string]: boolean;
981
- };
1193
+ selectedElementIds: Readonly<{
1194
+ [id: string]: true;
1195
+ }>;
982
1196
  previousSelectedElementIds: {
983
- [id: string]: boolean;
1197
+ [id: string]: true;
984
1198
  };
1199
+ selectedElementsAreBeingDragged: boolean;
985
1200
  shouldCacheIgnoreZoom: boolean;
986
1201
  toast: {
987
1202
  message: string;
@@ -989,7 +1204,7 @@ export declare const actionExportWithDarkMode: {
989
1204
  duration?: number | undefined;
990
1205
  } | null;
991
1206
  zenModeEnabled: boolean;
992
- theme: string;
1207
+ theme: Theme;
993
1208
  gridSize: number | null;
994
1209
  viewModeEnabled: boolean;
995
1210
  selectedGroupIds: {
@@ -1012,14 +1227,18 @@ export declare const actionExportWithDarkMode: {
1012
1227
  data: import("../charts").Spreadsheet;
1013
1228
  };
1014
1229
  pendingImageElementId: string | null;
1015
- showHyperlinkPopup: false | "info" | "editor";
1230
+ showHyperlinkPopup: false | "editor" | "info";
1016
1231
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
1232
+ snapLines: import("../snapping").SnapLine[];
1233
+ originSnapOffset: {
1234
+ x: number;
1235
+ y: number;
1236
+ } | null;
1237
+ objectsSnapModeEnabled: boolean;
1017
1238
  };
1018
1239
  commitToHistory: false;
1019
1240
  };
1020
- PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps & {
1021
- isInHamburgerMenu: boolean;
1022
- }) => JSX.Element;
1241
+ PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
1023
1242
  } & {
1024
1243
  keyTest?: undefined;
1025
1244
  };