@dwelle/excalidraw 0.4.0-e1bdbb6 → 0.4.0-e587816

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 (240) hide show
  1. package/CHANGELOG.md +714 -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 +3257 -1444
  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 +124 -64
  11. package/types/actions/actionAlign.d.ts +33 -40
  12. package/types/actions/actionBoundText.d.ts +182 -25
  13. package/types/actions/actionCanvas.d.ts +754 -220
  14. package/types/actions/actionClipboard.d.ts +236 -115
  15. package/types/actions/actionDeleteSelected.d.ts +133 -72
  16. package/types/actions/actionDistribute.d.ts +11 -16
  17. package/types/actions/actionDuplicateSelection.d.ts +4 -7
  18. package/types/actions/actionElementLock.d.ts +271 -0
  19. package/types/actions/actionExport.d.ts +440 -277
  20. package/types/actions/actionFinalize.d.ts +85 -51
  21. package/types/actions/actionFlip.d.ts +8 -11
  22. package/types/actions/actionFrame.d.ts +423 -0
  23. package/types/actions/actionGroup.d.ts +252 -19
  24. package/types/actions/actionHistory.d.ts +1 -1
  25. package/types/actions/actionLinearEditor.d.ts +44 -24
  26. package/types/actions/actionMenu.d.ts +132 -79
  27. package/types/actions/actionNavigate.d.ts +2 -3
  28. package/types/actions/actionProperties.d.ts +569 -334
  29. package/types/actions/actionSelectAll.d.ts +123 -4
  30. package/types/actions/actionStyles.d.ts +46 -27
  31. package/types/actions/actionToggleGridMode.d.ts +46 -25
  32. package/types/actions/{actionToggleLock.d.ts → actionToggleObjectsSnapMode.d.ts} +56 -35
  33. package/types/actions/actionToggleStats.d.ts +45 -25
  34. package/types/actions/actionToggleViewMode.d.ts +46 -25
  35. package/types/actions/actionToggleZenMode.d.ts +46 -25
  36. package/types/actions/actionZindex.d.ts +16 -24
  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 +27 -28
  42. package/types/charts.d.ts +2 -2
  43. package/types/clients.d.ts +5 -6
  44. package/types/clipboard.d.ts +9 -3
  45. package/types/colors.d.ts +60 -5
  46. package/types/components/Actions.d.ts +7 -12
  47. package/types/components/ActiveConfirmDialog.d.ts +4 -0
  48. package/types/components/App.d.ts +102 -86
  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/LaserTool/LaserPathManager.d.ts +28 -0
  81. package/types/components/LaserTool/LaserPointerButton.d.ts +10 -0
  82. package/types/components/LaserTool/LaserTool.d.ts +7 -0
  83. package/types/components/LayerUI.d.ts +11 -19
  84. package/types/components/LibraryMenu.d.ts +13 -14
  85. package/types/components/LibraryMenuBrowseButton.d.ts +2 -2
  86. package/types/components/LibraryMenuControlButtons.d.ts +9 -0
  87. package/types/components/LibraryMenuHeaderContent.d.ts +10 -5
  88. package/types/components/LibraryMenuItems.d.ts +6 -7
  89. package/types/components/LibraryMenuSection.d.ts +22 -0
  90. package/types/components/LibraryUnit.d.ts +6 -3
  91. package/types/components/LoadingMessage.d.ts +0 -1
  92. package/types/components/LockButton.d.ts +1 -2
  93. package/types/components/MobileMenu.d.ts +9 -15
  94. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
  95. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
  96. package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
  97. package/types/components/PasteChartDialog.d.ts +4 -5
  98. package/types/components/PenModeButton.d.ts +1 -1
  99. package/types/components/Popover.d.ts +1 -1
  100. package/types/components/ProjectName.d.ts +2 -1
  101. package/types/components/PublishLibrary.d.ts +2 -2
  102. package/types/components/RadioGroup.d.ts +12 -0
  103. package/types/components/Section.d.ts +1 -1
  104. package/types/components/Sidebar/Sidebar.d.ts +66 -63
  105. package/types/components/Sidebar/SidebarHeader.d.ts +6 -19
  106. package/types/components/Sidebar/SidebarTab.d.ts +8 -0
  107. package/types/components/Sidebar/SidebarTabTrigger.d.ts +9 -0
  108. package/types/components/Sidebar/SidebarTabTriggers.d.ts +6 -0
  109. package/types/components/Sidebar/SidebarTabs.d.ts +6 -0
  110. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -0
  111. package/types/components/Sidebar/common.d.ts +24 -7
  112. package/types/components/Spinner.d.ts +2 -1
  113. package/types/components/Stack.d.ts +4 -3
  114. package/types/components/Stats.d.ts +3 -3
  115. package/types/components/Switch.d.ts +9 -0
  116. package/types/components/ToolButton.d.ts +6 -5
  117. package/types/components/Tooltip.d.ts +1 -1
  118. package/types/components/Trans.d.ts +9 -0
  119. package/types/components/UserList.d.ts +0 -2
  120. package/types/components/canvases/InteractiveCanvas.d.ts +27 -0
  121. package/types/components/canvases/StaticCanvas.d.ts +18 -0
  122. package/types/components/canvases/index.d.ts +3 -0
  123. package/types/components/dropdownMenu/DropdownMenu.d.ts +70 -0
  124. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +15 -0
  125. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
  126. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +13 -0
  127. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +6 -0
  128. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -0
  129. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +14 -0
  130. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
  131. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -0
  132. package/types/components/dropdownMenu/common.d.ts +6 -0
  133. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
  134. package/types/components/footer/Footer.d.ts +12 -0
  135. package/types/components/footer/FooterCenter.d.ts +8 -0
  136. package/types/components/hoc/withInternalFallback.d.ts +4 -0
  137. package/types/components/icons.d.ts +17 -2
  138. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -0
  139. package/types/components/main-menu/DefaultItems.d.ts +47 -0
  140. package/types/components/main-menu/MainMenu.d.ts +64 -0
  141. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +57 -0
  142. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
  143. package/types/components/welcome-screen/WelcomeScreen.d.ts +84 -0
  144. package/types/constants.d.ts +105 -18
  145. package/types/context/tunnels.d.ts +19 -0
  146. package/types/context/ui-appState.d.ts +4 -0
  147. package/types/cursor.d.ts +5 -0
  148. package/types/data/blob.d.ts +5 -3
  149. package/types/data/encode.d.ts +1 -1
  150. package/types/data/filesystem.d.ts +2 -1
  151. package/types/data/index.d.ts +1 -1
  152. package/types/data/library.d.ts +3 -45
  153. package/types/data/restore.d.ts +10 -4
  154. package/types/data/transform.d.ts +73 -0
  155. package/types/data/types.d.ts +3 -5
  156. package/types/data/url.d.ts +7 -0
  157. package/types/element/Hyperlink.d.ts +57 -36
  158. package/types/element/binding.d.ts +4 -3
  159. package/types/element/bounds.d.ts +41 -10
  160. package/types/element/collision.d.ts +7 -7
  161. package/types/element/dragElements.d.ts +12 -2
  162. package/types/element/embeddable.d.ts +153 -0
  163. package/types/element/image.d.ts +11 -1
  164. package/types/element/index.d.ts +3 -2
  165. package/types/element/linearElementEditor.d.ts +77 -30
  166. package/types/element/mutateElement.d.ts +3 -2
  167. package/types/element/newElement.d.ts +48 -15
  168. package/types/element/resizeElements.d.ts +3 -3
  169. package/types/element/resizeTest.d.ts +2 -1
  170. package/types/element/showSelectedShapeActions.d.ts +2 -2
  171. package/types/element/sizeHelpers.d.ts +8 -1
  172. package/types/element/sortElements.d.ts +2 -0
  173. package/types/element/textElement.d.ts +57 -9
  174. package/types/element/textWysiwyg.d.ts +7 -2
  175. package/types/element/transformHandles.d.ts +15 -8
  176. package/types/element/typeChecks.d.ts +14 -2
  177. package/types/element/types.d.ts +66 -35
  178. package/types/emitter.d.ts +1 -2
  179. package/types/errors.d.ts +1 -1
  180. package/types/frame.d.ts +46 -0
  181. package/types/ga.d.ts +5 -5
  182. package/types/groups.d.ts +15 -11
  183. package/types/history.d.ts +3 -3
  184. package/types/hooks/useCreatePortalContainer.d.ts +4 -0
  185. package/types/hooks/useLibraryItemSvg.d.ts +11 -0
  186. package/types/hooks/useOutsideClick.d.ts +19 -2
  187. package/types/hooks/useScrollPosition.d.ts +1 -0
  188. package/types/hooks/useStable.d.ts +1 -0
  189. package/types/hooks/useTransition.d.ts +2 -0
  190. package/types/i18n.d.ts +11 -2
  191. package/types/jotai.d.ts +20 -108
  192. package/types/keys.d.ts +7 -4
  193. package/types/math.d.ts +7 -1
  194. package/types/packages/bbox.d.ts +11 -0
  195. package/types/packages/excalidraw/example/App.d.ts +7 -1
  196. package/types/packages/excalidraw/example/CustomFooter.d.ts +5 -0
  197. package/types/packages/excalidraw/example/MobileFooter.d.ts +5 -0
  198. package/types/packages/excalidraw/example/initialData.d.ts +182 -64
  199. package/types/packages/excalidraw/index.d.ts +22 -4
  200. package/types/packages/excalidraw/main.d.ts +3 -1
  201. package/types/packages/excalidraw/webpack.dev.config.d.ts +5 -2
  202. package/types/packages/excalidraw/webpack.prod.config.d.ts +3 -0
  203. package/types/packages/utils.d.ts +30 -24
  204. package/types/packages/withinBounds.d.ts +19 -0
  205. package/types/renderer/renderElement.d.ts +13 -22
  206. package/types/renderer/renderScene.d.ts +19 -29
  207. package/types/renderer/renderSnaps.d.ts +2 -0
  208. package/types/renderer/roundRect.d.ts +1 -1
  209. package/types/scene/Fonts.d.ts +21 -0
  210. package/types/scene/Renderer.d.ts +25 -0
  211. package/types/scene/Scene.d.ts +42 -5
  212. package/types/scene/Shape.d.ts +12 -0
  213. package/types/scene/ShapeCache.d.ts +20 -0
  214. package/types/scene/comparisons.d.ts +2 -4
  215. package/types/scene/export.d.ts +183 -10
  216. package/types/scene/index.d.ts +1 -1
  217. package/types/scene/scroll.d.ts +1 -1
  218. package/types/scene/scrollbars.d.ts +2 -6
  219. package/types/scene/selection.d.ts +27 -6
  220. package/types/scene/types.d.ts +70 -26
  221. package/types/snapping.d.ts +108 -0
  222. package/types/types.d.ts +227 -91
  223. package/types/utility-types.d.ts +24 -0
  224. package/types/utils.d.ts +75 -14
  225. package/types/zindex.d.ts +4 -4
  226. package/types/components/ActiveFile.d.ts +0 -7
  227. package/types/components/ClearCanvas.d.ts +0 -4
  228. package/types/components/CollabButton.d.ts +0 -6
  229. package/types/components/ColorPicker.d.ts +0 -14
  230. package/types/components/Footer.d.ts +0 -10
  231. package/types/components/LibraryButton.d.ts +0 -8
  232. package/types/components/MenuItem.d.ts +0 -11
  233. package/types/components/MenuUtils.d.ts +0 -1
  234. package/types/components/SingleLibraryItem.d.ts +0 -10
  235. package/types/components/WelcomeScreen.d.ts +0 -10
  236. package/types/components/WelcomeScreenDecor.d.ts +0 -6
  237. package/types/components/hoc/withUpstreamOverride.d.ts +0 -10
  238. /package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js.LICENSE.txt → vendor-d415b28e9024dee4bb1b.js.LICENSE.txt} +0 -0
  239. /package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.d.ts → vendor-d415b28e9024dee4bb1b.d.ts} +0 -0
  240. /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,40 @@ 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;
24
- locked: boolean;
25
- customType: null;
26
- } | {
27
- type: "custom";
28
- customType: string;
29
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
40
+ lastActiveTool: import("../types").ActiveTool | null;
30
41
  locked: boolean;
31
- };
42
+ } & import("../types").ActiveTool;
32
43
  penMode: boolean;
33
44
  penDetected: boolean;
34
45
  exportBackground: boolean;
@@ -45,10 +56,9 @@ export declare const actionChangeProjectName: {
45
56
  currentItemFontFamily: number;
46
57
  currentItemFontSize: number;
47
58
  currentItemTextAlign: string;
48
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
49
59
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
50
60
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
51
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
61
+ currentItemRoundness: import("../element/types").StrokeRoundness;
52
62
  viewBackgroundColor: string;
53
63
  scrollX: number;
54
64
  scrollY: number;
@@ -60,17 +70,21 @@ export declare const actionChangeProjectName: {
60
70
  value: import("../types").NormalizedZoomValue;
61
71
  }>;
62
72
  openMenu: "canvas" | "shape" | null;
63
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
64
- openSidebar: "library" | "customSidebar" | null;
65
- openDialog: "imageExport" | "help" | null;
66
- isSidebarDocked: boolean;
73
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
74
+ openSidebar: {
75
+ name: string;
76
+ tab?: string | undefined;
77
+ } | null;
78
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
79
+ defaultSidebarDockedPreference: boolean;
67
80
  lastPointerDownWith: import("../element/types").PointerType;
68
- selectedElementIds: {
69
- [id: string]: boolean;
70
- };
81
+ selectedElementIds: Readonly<{
82
+ [id: string]: true;
83
+ }>;
71
84
  previousSelectedElementIds: {
72
- [id: string]: boolean;
85
+ [id: string]: true;
73
86
  };
87
+ selectedElementsAreBeingDragged: boolean;
74
88
  shouldCacheIgnoreZoom: boolean;
75
89
  toast: {
76
90
  message: string;
@@ -78,7 +92,7 @@ export declare const actionChangeProjectName: {
78
92
  duration?: number | undefined;
79
93
  } | null;
80
94
  zenModeEnabled: boolean;
81
- theme: string;
95
+ theme: Theme;
82
96
  gridSize: number | null;
83
97
  viewModeEnabled: boolean;
84
98
  selectedGroupIds: {
@@ -101,14 +115,18 @@ export declare const actionChangeProjectName: {
101
115
  data: import("../charts").Spreadsheet;
102
116
  };
103
117
  pendingImageElementId: string | null;
104
- showHyperlinkPopup: false | "info" | "editor";
118
+ showHyperlinkPopup: false | "editor" | "info";
105
119
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
120
+ snapLines: readonly import("../snapping").SnapLine[];
121
+ originSnapOffset: {
122
+ x: number;
123
+ y: number;
124
+ } | null;
125
+ objectsSnapModeEnabled: boolean;
106
126
  };
107
127
  commitToHistory: false;
108
128
  };
109
- PanelComponent: ({ appState, updateData, appProps }: import("./types").PanelComponentProps & {
110
- isInHamburgerMenu: boolean;
111
- }) => JSX.Element;
129
+ PanelComponent: ({ appState, updateData, appProps, data }: import("./types").PanelComponentProps) => JSX.Element;
112
130
  } & {
113
131
  keyTest?: undefined;
114
132
  };
@@ -121,29 +139,40 @@ export declare const actionChangeExportScale: {
121
139
  perform: (_elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any) => {
122
140
  appState: {
123
141
  exportScale: any;
142
+ contextMenu: {
143
+ items: import("../components/ContextMenu").ContextMenuItems;
144
+ top: number;
145
+ left: number;
146
+ } | null;
124
147
  showWelcomeScreen: boolean;
125
148
  isLoading: boolean;
126
- errorMessage: string | null;
127
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
128
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
149
+ errorMessage: import("react").ReactNode;
150
+ activeEmbeddable: {
151
+ element: NonDeletedExcalidrawElement;
152
+ state: "active" | "hover";
153
+ } | null;
154
+ draggingElement: NonDeletedExcalidrawElement | null;
155
+ resizingElement: NonDeletedExcalidrawElement | null;
129
156
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
130
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
157
+ selectionElement: NonDeletedExcalidrawElement | null;
131
158
  isBindingEnabled: boolean;
132
159
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
133
160
  suggestedBindings: import("../element/binding").SuggestedBinding[];
134
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
161
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
162
+ frameRendering: {
163
+ enabled: boolean;
164
+ name: boolean;
165
+ outline: boolean;
166
+ clip: boolean;
167
+ };
168
+ editingFrame: string | null;
169
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
170
+ editingElement: NonDeletedExcalidrawElement | null;
135
171
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
136
172
  activeTool: {
137
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
138
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
139
- locked: boolean;
140
- customType: null;
141
- } | {
142
- type: "custom";
143
- customType: string;
144
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
173
+ lastActiveTool: import("../types").ActiveTool | null;
145
174
  locked: boolean;
146
- };
175
+ } & import("../types").ActiveTool;
147
176
  penMode: boolean;
148
177
  penDetected: boolean;
149
178
  exportBackground: boolean;
@@ -159,10 +188,9 @@ export declare const actionChangeExportScale: {
159
188
  currentItemFontFamily: number;
160
189
  currentItemFontSize: number;
161
190
  currentItemTextAlign: string;
162
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
163
191
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
164
192
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
165
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
193
+ currentItemRoundness: import("../element/types").StrokeRoundness;
166
194
  viewBackgroundColor: string;
167
195
  scrollX: number;
168
196
  scrollY: number;
@@ -175,17 +203,21 @@ export declare const actionChangeExportScale: {
175
203
  value: import("../types").NormalizedZoomValue;
176
204
  }>;
177
205
  openMenu: "canvas" | "shape" | null;
178
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
179
- openSidebar: "library" | "customSidebar" | null;
180
- openDialog: "imageExport" | "help" | null;
181
- isSidebarDocked: boolean;
206
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
207
+ openSidebar: {
208
+ name: string;
209
+ tab?: string | undefined;
210
+ } | null;
211
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
212
+ defaultSidebarDockedPreference: boolean;
182
213
  lastPointerDownWith: import("../element/types").PointerType;
183
- selectedElementIds: {
184
- [id: string]: boolean;
185
- };
214
+ selectedElementIds: Readonly<{
215
+ [id: string]: true;
216
+ }>;
186
217
  previousSelectedElementIds: {
187
- [id: string]: boolean;
218
+ [id: string]: true;
188
219
  };
220
+ selectedElementsAreBeingDragged: boolean;
189
221
  shouldCacheIgnoreZoom: boolean;
190
222
  toast: {
191
223
  message: string;
@@ -193,7 +225,7 @@ export declare const actionChangeExportScale: {
193
225
  duration?: number | undefined;
194
226
  } | null;
195
227
  zenModeEnabled: boolean;
196
- theme: string;
228
+ theme: Theme;
197
229
  gridSize: number | null;
198
230
  viewModeEnabled: boolean;
199
231
  selectedGroupIds: {
@@ -216,14 +248,18 @@ export declare const actionChangeExportScale: {
216
248
  data: import("../charts").Spreadsheet;
217
249
  };
218
250
  pendingImageElementId: string | null;
219
- showHyperlinkPopup: false | "info" | "editor";
251
+ showHyperlinkPopup: false | "editor" | "info";
220
252
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
253
+ snapLines: readonly import("../snapping").SnapLine[];
254
+ originSnapOffset: {
255
+ x: number;
256
+ y: number;
257
+ } | null;
258
+ objectsSnapModeEnabled: boolean;
221
259
  };
222
260
  commitToHistory: false;
223
261
  };
224
- PanelComponent: ({ elements: allElements, appState, updateData }: import("./types").PanelComponentProps & {
225
- isInHamburgerMenu: boolean;
226
- }) => JSX.Element;
262
+ PanelComponent: ({ elements: allElements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
227
263
  } & {
228
264
  keyTest?: undefined;
229
265
  };
@@ -236,29 +272,40 @@ export declare const actionChangeExportBackground: {
236
272
  perform: (_elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any) => {
237
273
  appState: {
238
274
  exportBackground: any;
275
+ contextMenu: {
276
+ items: import("../components/ContextMenu").ContextMenuItems;
277
+ top: number;
278
+ left: number;
279
+ } | null;
239
280
  showWelcomeScreen: boolean;
240
281
  isLoading: boolean;
241
- errorMessage: string | null;
242
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
243
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
282
+ errorMessage: import("react").ReactNode;
283
+ activeEmbeddable: {
284
+ element: NonDeletedExcalidrawElement;
285
+ state: "active" | "hover";
286
+ } | null;
287
+ draggingElement: NonDeletedExcalidrawElement | null;
288
+ resizingElement: NonDeletedExcalidrawElement | null;
244
289
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
245
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
290
+ selectionElement: NonDeletedExcalidrawElement | null;
246
291
  isBindingEnabled: boolean;
247
292
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
248
293
  suggestedBindings: import("../element/binding").SuggestedBinding[];
249
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
294
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
295
+ frameRendering: {
296
+ enabled: boolean;
297
+ name: boolean;
298
+ outline: boolean;
299
+ clip: boolean;
300
+ };
301
+ editingFrame: string | null;
302
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
303
+ editingElement: NonDeletedExcalidrawElement | null;
250
304
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
251
305
  activeTool: {
252
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
253
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
254
- locked: boolean;
255
- customType: null;
256
- } | {
257
- type: "custom";
258
- customType: string;
259
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
306
+ lastActiveTool: import("../types").ActiveTool | null;
260
307
  locked: boolean;
261
- };
308
+ } & import("../types").ActiveTool;
262
309
  penMode: boolean;
263
310
  penDetected: boolean;
264
311
  exportEmbedScene: boolean;
@@ -274,10 +321,9 @@ export declare const actionChangeExportBackground: {
274
321
  currentItemFontFamily: number;
275
322
  currentItemFontSize: number;
276
323
  currentItemTextAlign: string;
277
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
278
324
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
279
325
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
280
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
326
+ currentItemRoundness: import("../element/types").StrokeRoundness;
281
327
  viewBackgroundColor: string;
282
328
  scrollX: number;
283
329
  scrollY: number;
@@ -290,17 +336,21 @@ export declare const actionChangeExportBackground: {
290
336
  value: import("../types").NormalizedZoomValue;
291
337
  }>;
292
338
  openMenu: "canvas" | "shape" | null;
293
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
294
- openSidebar: "library" | "customSidebar" | null;
295
- openDialog: "imageExport" | "help" | null;
296
- isSidebarDocked: boolean;
339
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
340
+ openSidebar: {
341
+ name: string;
342
+ tab?: string | undefined;
343
+ } | null;
344
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
345
+ defaultSidebarDockedPreference: boolean;
297
346
  lastPointerDownWith: import("../element/types").PointerType;
298
- selectedElementIds: {
299
- [id: string]: boolean;
300
- };
347
+ selectedElementIds: Readonly<{
348
+ [id: string]: true;
349
+ }>;
301
350
  previousSelectedElementIds: {
302
- [id: string]: boolean;
351
+ [id: string]: true;
303
352
  };
353
+ selectedElementsAreBeingDragged: boolean;
304
354
  shouldCacheIgnoreZoom: boolean;
305
355
  toast: {
306
356
  message: string;
@@ -308,7 +358,7 @@ export declare const actionChangeExportBackground: {
308
358
  duration?: number | undefined;
309
359
  } | null;
310
360
  zenModeEnabled: boolean;
311
- theme: string;
361
+ theme: Theme;
312
362
  gridSize: number | null;
313
363
  viewModeEnabled: boolean;
314
364
  selectedGroupIds: {
@@ -331,14 +381,18 @@ export declare const actionChangeExportBackground: {
331
381
  data: import("../charts").Spreadsheet;
332
382
  };
333
383
  pendingImageElementId: string | null;
334
- showHyperlinkPopup: false | "info" | "editor";
384
+ showHyperlinkPopup: false | "editor" | "info";
335
385
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
386
+ snapLines: readonly import("../snapping").SnapLine[];
387
+ originSnapOffset: {
388
+ x: number;
389
+ y: number;
390
+ } | null;
391
+ objectsSnapModeEnabled: boolean;
336
392
  };
337
393
  commitToHistory: false;
338
394
  };
339
- PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps & {
340
- isInHamburgerMenu: boolean;
341
- }) => JSX.Element;
395
+ PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
342
396
  } & {
343
397
  keyTest?: undefined;
344
398
  };
@@ -351,29 +405,40 @@ export declare const actionChangeExportEmbedScene: {
351
405
  perform: (_elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any) => {
352
406
  appState: {
353
407
  exportEmbedScene: any;
408
+ contextMenu: {
409
+ items: import("../components/ContextMenu").ContextMenuItems;
410
+ top: number;
411
+ left: number;
412
+ } | null;
354
413
  showWelcomeScreen: boolean;
355
414
  isLoading: boolean;
356
- errorMessage: string | null;
357
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
358
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
415
+ errorMessage: import("react").ReactNode;
416
+ activeEmbeddable: {
417
+ element: NonDeletedExcalidrawElement;
418
+ state: "active" | "hover";
419
+ } | null;
420
+ draggingElement: NonDeletedExcalidrawElement | null;
421
+ resizingElement: NonDeletedExcalidrawElement | null;
359
422
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
360
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
423
+ selectionElement: NonDeletedExcalidrawElement | null;
361
424
  isBindingEnabled: boolean;
362
425
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
363
426
  suggestedBindings: import("../element/binding").SuggestedBinding[];
364
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
427
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
428
+ frameRendering: {
429
+ enabled: boolean;
430
+ name: boolean;
431
+ outline: boolean;
432
+ clip: boolean;
433
+ };
434
+ editingFrame: string | null;
435
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
436
+ editingElement: NonDeletedExcalidrawElement | null;
365
437
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
366
438
  activeTool: {
367
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
368
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
439
+ lastActiveTool: import("../types").ActiveTool | null;
369
440
  locked: boolean;
370
- customType: null;
371
- } | {
372
- type: "custom";
373
- customType: string;
374
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
375
- locked: boolean;
376
- };
441
+ } & import("../types").ActiveTool;
377
442
  penMode: boolean;
378
443
  penDetected: boolean;
379
444
  exportBackground: boolean;
@@ -389,10 +454,9 @@ export declare const actionChangeExportEmbedScene: {
389
454
  currentItemFontFamily: number;
390
455
  currentItemFontSize: number;
391
456
  currentItemTextAlign: string;
392
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
393
457
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
394
458
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
395
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
459
+ currentItemRoundness: import("../element/types").StrokeRoundness;
396
460
  viewBackgroundColor: string;
397
461
  scrollX: number;
398
462
  scrollY: number;
@@ -405,17 +469,21 @@ export declare const actionChangeExportEmbedScene: {
405
469
  value: import("../types").NormalizedZoomValue;
406
470
  }>;
407
471
  openMenu: "canvas" | "shape" | null;
408
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
409
- openSidebar: "library" | "customSidebar" | null;
410
- openDialog: "imageExport" | "help" | null;
411
- isSidebarDocked: boolean;
472
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
473
+ openSidebar: {
474
+ name: string;
475
+ tab?: string | undefined;
476
+ } | null;
477
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
478
+ defaultSidebarDockedPreference: boolean;
412
479
  lastPointerDownWith: import("../element/types").PointerType;
413
- selectedElementIds: {
414
- [id: string]: boolean;
415
- };
480
+ selectedElementIds: Readonly<{
481
+ [id: string]: true;
482
+ }>;
416
483
  previousSelectedElementIds: {
417
- [id: string]: boolean;
484
+ [id: string]: true;
418
485
  };
486
+ selectedElementsAreBeingDragged: boolean;
419
487
  shouldCacheIgnoreZoom: boolean;
420
488
  toast: {
421
489
  message: string;
@@ -423,7 +491,7 @@ export declare const actionChangeExportEmbedScene: {
423
491
  duration?: number | undefined;
424
492
  } | null;
425
493
  zenModeEnabled: boolean;
426
- theme: string;
494
+ theme: Theme;
427
495
  gridSize: number | null;
428
496
  viewModeEnabled: boolean;
429
497
  selectedGroupIds: {
@@ -446,14 +514,18 @@ export declare const actionChangeExportEmbedScene: {
446
514
  data: import("../charts").Spreadsheet;
447
515
  };
448
516
  pendingImageElementId: string | null;
449
- showHyperlinkPopup: false | "info" | "editor";
517
+ showHyperlinkPopup: false | "editor" | "info";
450
518
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
519
+ snapLines: readonly import("../snapping").SnapLine[];
520
+ originSnapOffset: {
521
+ x: number;
522
+ y: number;
523
+ } | null;
524
+ objectsSnapModeEnabled: boolean;
451
525
  };
452
526
  commitToHistory: false;
453
527
  };
454
- PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps & {
455
- isInHamburgerMenu: boolean;
456
- }) => JSX.Element;
528
+ PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
457
529
  } & {
458
530
  keyTest?: undefined;
459
531
  };
@@ -462,6 +534,7 @@ export declare const actionSaveToActiveFile: {
462
534
  trackEvent: {
463
535
  category: "export";
464
536
  };
537
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, props: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
465
538
  perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any, app: import("../types").AppClassProperties) => Promise<{
466
539
  commitToHistory: false;
467
540
  appState: {
@@ -469,29 +542,40 @@ export declare const actionSaveToActiveFile: {
469
542
  toast: {
470
543
  message: string;
471
544
  } | null;
545
+ contextMenu: {
546
+ items: import("../components/ContextMenu").ContextMenuItems;
547
+ top: number;
548
+ left: number;
549
+ } | null;
472
550
  showWelcomeScreen: boolean;
473
551
  isLoading: boolean;
474
- errorMessage: string | null;
475
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
476
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
552
+ errorMessage: import("react").ReactNode;
553
+ activeEmbeddable: {
554
+ element: NonDeletedExcalidrawElement;
555
+ state: "active" | "hover";
556
+ } | null;
557
+ draggingElement: NonDeletedExcalidrawElement | null;
558
+ resizingElement: NonDeletedExcalidrawElement | null;
477
559
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
478
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
560
+ selectionElement: NonDeletedExcalidrawElement | null;
479
561
  isBindingEnabled: boolean;
480
562
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
481
563
  suggestedBindings: import("../element/binding").SuggestedBinding[];
482
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
564
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
565
+ frameRendering: {
566
+ enabled: boolean;
567
+ name: boolean;
568
+ outline: boolean;
569
+ clip: boolean;
570
+ };
571
+ editingFrame: string | null;
572
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
573
+ editingElement: NonDeletedExcalidrawElement | null;
483
574
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
484
575
  activeTool: {
485
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
486
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
576
+ lastActiveTool: import("../types").ActiveTool | null;
487
577
  locked: boolean;
488
- customType: null;
489
- } | {
490
- type: "custom";
491
- customType: string;
492
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
493
- locked: boolean;
494
- };
578
+ } & import("../types").ActiveTool;
495
579
  penMode: boolean;
496
580
  penDetected: boolean;
497
581
  exportBackground: boolean;
@@ -508,10 +592,9 @@ export declare const actionSaveToActiveFile: {
508
592
  currentItemFontFamily: number;
509
593
  currentItemFontSize: number;
510
594
  currentItemTextAlign: string;
511
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
512
595
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
513
596
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
514
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
597
+ currentItemRoundness: import("../element/types").StrokeRoundness;
515
598
  viewBackgroundColor: string;
516
599
  scrollX: number;
517
600
  scrollY: number;
@@ -524,20 +607,24 @@ export declare const actionSaveToActiveFile: {
524
607
  value: import("../types").NormalizedZoomValue;
525
608
  }>;
526
609
  openMenu: "canvas" | "shape" | null;
527
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
528
- openSidebar: "library" | "customSidebar" | null;
529
- openDialog: "imageExport" | "help" | null;
530
- isSidebarDocked: boolean;
610
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
611
+ openSidebar: {
612
+ name: string;
613
+ tab?: string | undefined;
614
+ } | null;
615
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
616
+ defaultSidebarDockedPreference: boolean;
531
617
  lastPointerDownWith: import("../element/types").PointerType;
532
- selectedElementIds: {
533
- [id: string]: boolean;
534
- };
618
+ selectedElementIds: Readonly<{
619
+ [id: string]: true;
620
+ }>;
535
621
  previousSelectedElementIds: {
536
- [id: string]: boolean;
622
+ [id: string]: true;
537
623
  };
624
+ selectedElementsAreBeingDragged: boolean;
538
625
  shouldCacheIgnoreZoom: boolean;
539
626
  zenModeEnabled: boolean;
540
- theme: string;
627
+ theme: Theme;
541
628
  gridSize: number | null;
542
629
  viewModeEnabled: boolean;
543
630
  selectedGroupIds: {
@@ -559,52 +646,71 @@ export declare const actionSaveToActiveFile: {
559
646
  data: import("../charts").Spreadsheet;
560
647
  };
561
648
  pendingImageElementId: string | null;
562
- showHyperlinkPopup: false | "info" | "editor";
649
+ showHyperlinkPopup: false | "editor" | "info";
563
650
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
651
+ snapLines: readonly import("../snapping").SnapLine[];
652
+ originSnapOffset: {
653
+ x: number;
654
+ y: number;
655
+ } | null;
656
+ objectsSnapModeEnabled: boolean;
564
657
  };
565
658
  } | {
566
659
  commitToHistory: false;
567
660
  appState?: undefined;
568
661
  }>;
569
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
570
- PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps & {
571
- isInHamburgerMenu: boolean;
572
- }) => JSX.Element;
662
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
573
663
  } & {
574
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
664
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
575
665
  };
576
666
  export declare const actionSaveFileToDisk: {
577
667
  name: "saveFileToDisk";
668
+ viewMode: true;
578
669
  trackEvent: {
579
670
  category: "export";
580
671
  };
581
672
  perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any, app: import("../types").AppClassProperties) => Promise<{
582
673
  commitToHistory: false;
583
674
  appState: {
675
+ openDialog: null;
584
676
  fileHandle: import("browser-fs-access").FileSystemHandle | null;
677
+ toast: {
678
+ message: string;
679
+ };
680
+ contextMenu: {
681
+ items: import("../components/ContextMenu").ContextMenuItems;
682
+ top: number;
683
+ left: number;
684
+ } | null;
585
685
  showWelcomeScreen: boolean;
586
686
  isLoading: boolean;
587
- errorMessage: string | null;
588
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
589
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
687
+ errorMessage: import("react").ReactNode;
688
+ activeEmbeddable: {
689
+ element: NonDeletedExcalidrawElement;
690
+ state: "active" | "hover";
691
+ } | null;
692
+ draggingElement: NonDeletedExcalidrawElement | null;
693
+ resizingElement: NonDeletedExcalidrawElement | null;
590
694
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
591
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
695
+ selectionElement: NonDeletedExcalidrawElement | null;
592
696
  isBindingEnabled: boolean;
593
697
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
594
698
  suggestedBindings: import("../element/binding").SuggestedBinding[];
595
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
699
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
700
+ frameRendering: {
701
+ enabled: boolean;
702
+ name: boolean;
703
+ outline: boolean;
704
+ clip: boolean;
705
+ };
706
+ editingFrame: string | null;
707
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
708
+ editingElement: NonDeletedExcalidrawElement | null;
596
709
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
597
710
  activeTool: {
598
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
599
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
600
- locked: boolean;
601
- customType: null;
602
- } | {
603
- type: "custom";
604
- customType: string;
605
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
711
+ lastActiveTool: import("../types").ActiveTool | null;
606
712
  locked: boolean;
607
- };
713
+ } & import("../types").ActiveTool;
608
714
  penMode: boolean;
609
715
  penDetected: boolean;
610
716
  exportBackground: boolean;
@@ -621,10 +727,9 @@ export declare const actionSaveFileToDisk: {
621
727
  currentItemFontFamily: number;
622
728
  currentItemFontSize: number;
623
729
  currentItemTextAlign: string;
624
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
625
730
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
626
731
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
627
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
732
+ currentItemRoundness: import("../element/types").StrokeRoundness;
628
733
  viewBackgroundColor: string;
629
734
  scrollX: number;
630
735
  scrollY: number;
@@ -637,25 +742,23 @@ export declare const actionSaveFileToDisk: {
637
742
  value: import("../types").NormalizedZoomValue;
638
743
  }>;
639
744
  openMenu: "canvas" | "shape" | null;
640
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
641
- openSidebar: "library" | "customSidebar" | null;
642
- openDialog: "imageExport" | "help" | null;
643
- isSidebarDocked: boolean;
745
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
746
+ openSidebar: {
747
+ name: string;
748
+ tab?: string | undefined;
749
+ } | null;
750
+ defaultSidebarDockedPreference: boolean;
644
751
  lastPointerDownWith: import("../element/types").PointerType;
645
- selectedElementIds: {
646
- [id: string]: boolean;
647
- };
752
+ selectedElementIds: Readonly<{
753
+ [id: string]: true;
754
+ }>;
648
755
  previousSelectedElementIds: {
649
- [id: string]: boolean;
756
+ [id: string]: true;
650
757
  };
758
+ selectedElementsAreBeingDragged: boolean;
651
759
  shouldCacheIgnoreZoom: boolean;
652
- toast: {
653
- message: string;
654
- closable?: boolean | undefined;
655
- duration?: number | undefined;
656
- } | null;
657
760
  zenModeEnabled: boolean;
658
- theme: string;
761
+ theme: Theme;
659
762
  gridSize: number | null;
660
763
  viewModeEnabled: boolean;
661
764
  selectedGroupIds: {
@@ -677,59 +780,67 @@ export declare const actionSaveFileToDisk: {
677
780
  data: import("../charts").Spreadsheet;
678
781
  };
679
782
  pendingImageElementId: string | null;
680
- showHyperlinkPopup: false | "info" | "editor";
783
+ showHyperlinkPopup: false | "editor" | "info";
681
784
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
785
+ snapLines: readonly import("../snapping").SnapLine[];
786
+ originSnapOffset: {
787
+ x: number;
788
+ y: number;
789
+ } | null;
790
+ objectsSnapModeEnabled: boolean;
682
791
  };
683
792
  } | {
684
793
  commitToHistory: false;
685
794
  appState?: undefined;
686
795
  }>;
687
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
688
- PanelComponent: ({ updateData }: import("./types").PanelComponentProps & {
689
- isInHamburgerMenu: boolean;
690
- }) => JSX.Element;
796
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
797
+ PanelComponent: ({ updateData }: import("./types").PanelComponentProps) => JSX.Element;
691
798
  } & {
692
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
799
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
693
800
  };
694
801
  export declare const actionLoadScene: {
695
802
  name: "loadScene";
696
803
  trackEvent: {
697
804
  category: "export";
698
805
  };
806
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, props: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
699
807
  perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => Promise<false | {
700
808
  elements: import("../element/types").ExcalidrawElement[];
701
809
  appState: {
702
- theme: string;
703
- name: string;
704
810
  activeTool: {
705
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
706
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
811
+ lastActiveTool: import("../types").ActiveTool | null;
707
812
  locked: boolean;
708
- customType: null;
709
- } | {
710
- type: "custom";
711
- customType: string;
712
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
713
- locked: boolean;
714
- };
715
- scrollX: number;
716
- scrollY: number;
717
- viewBackgroundColor: string;
718
- zoom: Readonly<{
719
- value: import("../types").NormalizedZoomValue;
720
- }>;
721
- shouldCacheIgnoreZoom: boolean;
813
+ } & import("../types").ActiveTool;
814
+ name: string;
815
+ contextMenu: {
816
+ items: import("../components/ContextMenu").ContextMenuItems;
817
+ top: number;
818
+ left: number;
819
+ } | null;
722
820
  showWelcomeScreen: boolean;
723
821
  isLoading: boolean;
724
- errorMessage: string | null;
725
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
726
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
822
+ errorMessage: import("react").ReactNode;
823
+ activeEmbeddable: {
824
+ element: NonDeletedExcalidrawElement;
825
+ state: "active" | "hover";
826
+ } | null;
827
+ draggingElement: NonDeletedExcalidrawElement | null;
828
+ resizingElement: NonDeletedExcalidrawElement | null;
727
829
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
728
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
830
+ selectionElement: NonDeletedExcalidrawElement | null;
729
831
  isBindingEnabled: boolean;
730
832
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
731
833
  suggestedBindings: import("../element/binding").SuggestedBinding[];
732
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
834
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
835
+ frameRendering: {
836
+ enabled: boolean;
837
+ name: boolean;
838
+ outline: boolean;
839
+ clip: boolean;
840
+ };
841
+ editingFrame: string | null;
842
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
843
+ editingElement: NonDeletedExcalidrawElement | null;
733
844
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
734
845
  penMode: boolean;
735
846
  penDetected: boolean;
@@ -747,32 +858,43 @@ export declare const actionLoadScene: {
747
858
  currentItemFontFamily: number;
748
859
  currentItemFontSize: number;
749
860
  currentItemTextAlign: string;
750
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
751
861
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
752
862
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
753
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
863
+ currentItemRoundness: import("../element/types").StrokeRoundness;
864
+ viewBackgroundColor: string;
865
+ scrollX: number;
866
+ scrollY: number;
754
867
  cursorButton: "up" | "down";
755
868
  scrolledOutside: boolean;
756
869
  isResizing: boolean;
757
870
  isRotating: boolean;
871
+ zoom: Readonly<{
872
+ value: import("../types").NormalizedZoomValue;
873
+ }>;
758
874
  openMenu: "canvas" | "shape" | null;
759
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
760
- openSidebar: "library" | "customSidebar" | null;
761
- openDialog: "imageExport" | "help" | null;
762
- isSidebarDocked: boolean;
875
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
876
+ openSidebar: {
877
+ name: string;
878
+ tab?: string | undefined;
879
+ } | null;
880
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
881
+ defaultSidebarDockedPreference: boolean;
763
882
  lastPointerDownWith: import("../element/types").PointerType;
764
- selectedElementIds: {
765
- [id: string]: boolean;
766
- };
883
+ selectedElementIds: Readonly<{
884
+ [id: string]: true;
885
+ }>;
767
886
  previousSelectedElementIds: {
768
- [id: string]: boolean;
887
+ [id: string]: true;
769
888
  };
889
+ selectedElementsAreBeingDragged: boolean;
890
+ shouldCacheIgnoreZoom: boolean;
770
891
  toast: {
771
892
  message: string;
772
893
  closable?: boolean | undefined;
773
894
  duration?: number | undefined;
774
895
  } | null;
775
896
  zenModeEnabled: boolean;
897
+ theme: Theme;
776
898
  gridSize: number | null;
777
899
  viewModeEnabled: boolean;
778
900
  selectedGroupIds: {
@@ -791,8 +913,14 @@ export declare const actionLoadScene: {
791
913
  data: import("../charts").Spreadsheet;
792
914
  };
793
915
  pendingImageElementId: string | null;
794
- showHyperlinkPopup: false | "info" | "editor";
916
+ showHyperlinkPopup: false | "editor" | "info";
795
917
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
918
+ snapLines: readonly import("../snapping").SnapLine[];
919
+ originSnapOffset: {
920
+ x: number;
921
+ y: number;
922
+ } | null;
923
+ objectsSnapModeEnabled: boolean;
796
924
  };
797
925
  files: import("../types").BinaryFiles;
798
926
  commitToHistory: true;
@@ -800,28 +928,39 @@ export declare const actionLoadScene: {
800
928
  elements: readonly import("../element/types").ExcalidrawElement[];
801
929
  appState: {
802
930
  errorMessage: any;
931
+ contextMenu: {
932
+ items: import("../components/ContextMenu").ContextMenuItems;
933
+ top: number;
934
+ left: number;
935
+ } | null;
803
936
  showWelcomeScreen: boolean;
804
937
  isLoading: boolean;
805
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
806
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
938
+ activeEmbeddable: {
939
+ element: NonDeletedExcalidrawElement;
940
+ state: "active" | "hover";
941
+ } | null;
942
+ draggingElement: NonDeletedExcalidrawElement | null;
943
+ resizingElement: NonDeletedExcalidrawElement | null;
807
944
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
808
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
945
+ selectionElement: NonDeletedExcalidrawElement | null;
809
946
  isBindingEnabled: boolean;
810
947
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
811
948
  suggestedBindings: import("../element/binding").SuggestedBinding[];
812
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
949
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
950
+ frameRendering: {
951
+ enabled: boolean;
952
+ name: boolean;
953
+ outline: boolean;
954
+ clip: boolean;
955
+ };
956
+ editingFrame: string | null;
957
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
958
+ editingElement: NonDeletedExcalidrawElement | null;
813
959
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
814
960
  activeTool: {
815
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
816
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
961
+ lastActiveTool: import("../types").ActiveTool | null;
817
962
  locked: boolean;
818
- customType: null;
819
- } | {
820
- type: "custom";
821
- customType: string;
822
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
823
- locked: boolean;
824
- };
963
+ } & import("../types").ActiveTool;
825
964
  penMode: boolean;
826
965
  penDetected: boolean;
827
966
  exportBackground: boolean;
@@ -838,10 +977,9 @@ export declare const actionLoadScene: {
838
977
  currentItemFontFamily: number;
839
978
  currentItemFontSize: number;
840
979
  currentItemTextAlign: string;
841
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
842
980
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
843
981
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
844
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
982
+ currentItemRoundness: import("../element/types").StrokeRoundness;
845
983
  viewBackgroundColor: string;
846
984
  scrollX: number;
847
985
  scrollY: number;
@@ -854,17 +992,21 @@ export declare const actionLoadScene: {
854
992
  value: import("../types").NormalizedZoomValue;
855
993
  }>;
856
994
  openMenu: "canvas" | "shape" | null;
857
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
858
- openSidebar: "library" | "customSidebar" | null;
859
- openDialog: "imageExport" | "help" | null;
860
- isSidebarDocked: boolean;
995
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
996
+ openSidebar: {
997
+ name: string;
998
+ tab?: string | undefined;
999
+ } | null;
1000
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
1001
+ defaultSidebarDockedPreference: boolean;
861
1002
  lastPointerDownWith: import("../element/types").PointerType;
862
- selectedElementIds: {
863
- [id: string]: boolean;
864
- };
1003
+ selectedElementIds: Readonly<{
1004
+ [id: string]: true;
1005
+ }>;
865
1006
  previousSelectedElementIds: {
866
- [id: string]: boolean;
1007
+ [id: string]: true;
867
1008
  };
1009
+ selectedElementsAreBeingDragged: boolean;
868
1010
  shouldCacheIgnoreZoom: boolean;
869
1011
  toast: {
870
1012
  message: string;
@@ -872,7 +1014,7 @@ export declare const actionLoadScene: {
872
1014
  duration?: number | undefined;
873
1015
  } | null;
874
1016
  zenModeEnabled: boolean;
875
- theme: string;
1017
+ theme: Theme;
876
1018
  gridSize: number | null;
877
1019
  viewModeEnabled: boolean;
878
1020
  selectedGroupIds: {
@@ -895,18 +1037,21 @@ export declare const actionLoadScene: {
895
1037
  data: import("../charts").Spreadsheet;
896
1038
  };
897
1039
  pendingImageElementId: string | null;
898
- showHyperlinkPopup: false | "info" | "editor";
1040
+ showHyperlinkPopup: false | "editor" | "info";
899
1041
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
1042
+ snapLines: readonly import("../snapping").SnapLine[];
1043
+ originSnapOffset: {
1044
+ x: number;
1045
+ y: number;
1046
+ } | null;
1047
+ objectsSnapModeEnabled: boolean;
900
1048
  };
901
1049
  files: import("../types").BinaryFiles;
902
1050
  commitToHistory: false;
903
1051
  }>;
904
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
905
- PanelComponent: ({ updateData }: import("./types").PanelComponentProps & {
906
- isInHamburgerMenu: boolean;
907
- }) => JSX.Element;
1052
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
908
1053
  } & {
909
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
1054
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
910
1055
  };
911
1056
  export declare const actionExportWithDarkMode: {
912
1057
  name: "exportWithDarkMode";
@@ -917,29 +1062,40 @@ export declare const actionExportWithDarkMode: {
917
1062
  perform: (_elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any) => {
918
1063
  appState: {
919
1064
  exportWithDarkMode: any;
1065
+ contextMenu: {
1066
+ items: import("../components/ContextMenu").ContextMenuItems;
1067
+ top: number;
1068
+ left: number;
1069
+ } | null;
920
1070
  showWelcomeScreen: boolean;
921
1071
  isLoading: boolean;
922
- errorMessage: string | null;
923
- draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
924
- resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
1072
+ errorMessage: import("react").ReactNode;
1073
+ activeEmbeddable: {
1074
+ element: NonDeletedExcalidrawElement;
1075
+ state: "active" | "hover";
1076
+ } | null;
1077
+ draggingElement: NonDeletedExcalidrawElement | null;
1078
+ resizingElement: NonDeletedExcalidrawElement | null;
925
1079
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
926
- selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
1080
+ selectionElement: NonDeletedExcalidrawElement | null;
927
1081
  isBindingEnabled: boolean;
928
1082
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
929
1083
  suggestedBindings: import("../element/binding").SuggestedBinding[];
930
- editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
1084
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
1085
+ frameRendering: {
1086
+ enabled: boolean;
1087
+ name: boolean;
1088
+ outline: boolean;
1089
+ clip: boolean;
1090
+ };
1091
+ editingFrame: string | null;
1092
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
1093
+ editingElement: NonDeletedExcalidrawElement | null;
931
1094
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
932
1095
  activeTool: {
933
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
934
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
1096
+ lastActiveTool: import("../types").ActiveTool | null;
935
1097
  locked: boolean;
936
- customType: null;
937
- } | {
938
- type: "custom";
939
- customType: string;
940
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
941
- locked: boolean;
942
- };
1098
+ } & import("../types").ActiveTool;
943
1099
  penMode: boolean;
944
1100
  penDetected: boolean;
945
1101
  exportBackground: boolean;
@@ -955,10 +1111,9 @@ export declare const actionExportWithDarkMode: {
955
1111
  currentItemFontFamily: number;
956
1112
  currentItemFontSize: number;
957
1113
  currentItemTextAlign: string;
958
- currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
959
1114
  currentItemStartArrowhead: import("../element/types").Arrowhead | null;
960
1115
  currentItemEndArrowhead: import("../element/types").Arrowhead | null;
961
- currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
1116
+ currentItemRoundness: import("../element/types").StrokeRoundness;
962
1117
  viewBackgroundColor: string;
963
1118
  scrollX: number;
964
1119
  scrollY: number;
@@ -971,17 +1126,21 @@ export declare const actionExportWithDarkMode: {
971
1126
  value: import("../types").NormalizedZoomValue;
972
1127
  }>;
973
1128
  openMenu: "canvas" | "shape" | null;
974
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
975
- openSidebar: "library" | "customSidebar" | null;
976
- openDialog: "imageExport" | "help" | null;
977
- isSidebarDocked: boolean;
1129
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
1130
+ openSidebar: {
1131
+ name: string;
1132
+ tab?: string | undefined;
1133
+ } | null;
1134
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
1135
+ defaultSidebarDockedPreference: boolean;
978
1136
  lastPointerDownWith: import("../element/types").PointerType;
979
- selectedElementIds: {
980
- [id: string]: boolean;
981
- };
1137
+ selectedElementIds: Readonly<{
1138
+ [id: string]: true;
1139
+ }>;
982
1140
  previousSelectedElementIds: {
983
- [id: string]: boolean;
1141
+ [id: string]: true;
984
1142
  };
1143
+ selectedElementsAreBeingDragged: boolean;
985
1144
  shouldCacheIgnoreZoom: boolean;
986
1145
  toast: {
987
1146
  message: string;
@@ -989,7 +1148,7 @@ export declare const actionExportWithDarkMode: {
989
1148
  duration?: number | undefined;
990
1149
  } | null;
991
1150
  zenModeEnabled: boolean;
992
- theme: string;
1151
+ theme: Theme;
993
1152
  gridSize: number | null;
994
1153
  viewModeEnabled: boolean;
995
1154
  selectedGroupIds: {
@@ -1012,14 +1171,18 @@ export declare const actionExportWithDarkMode: {
1012
1171
  data: import("../charts").Spreadsheet;
1013
1172
  };
1014
1173
  pendingImageElementId: string | null;
1015
- showHyperlinkPopup: false | "info" | "editor";
1174
+ showHyperlinkPopup: false | "editor" | "info";
1016
1175
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
1176
+ snapLines: readonly import("../snapping").SnapLine[];
1177
+ originSnapOffset: {
1178
+ x: number;
1179
+ y: number;
1180
+ } | null;
1181
+ objectsSnapModeEnabled: boolean;
1017
1182
  };
1018
1183
  commitToHistory: false;
1019
1184
  };
1020
- PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps & {
1021
- isInHamburgerMenu: boolean;
1022
- }) => JSX.Element;
1185
+ PanelComponent: ({ appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
1023
1186
  } & {
1024
1187
  keyTest?: undefined;
1025
1188
  };