@excalidraw/element 0.18.0-c141960 → 0.18.0-c1dbbdf

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 (233) hide show
  1. package/dist/dev/index.js +2698 -954
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +18 -18
  4. package/dist/types/common/debug.d.ts +21 -0
  5. package/dist/types/common/src/bounds.d.ts +10 -0
  6. package/dist/types/common/src/colors.d.ts +59 -39
  7. package/dist/types/common/src/constants.d.ts +17 -11
  8. package/dist/types/common/src/editorInterface.d.ts +1 -1
  9. package/dist/types/common/src/font-metadata.d.ts +1 -3
  10. package/dist/types/common/src/index.d.ts +2 -1
  11. package/dist/types/common/src/keys.d.ts +1 -1
  12. package/dist/types/common/src/utility-types.d.ts +0 -1
  13. package/dist/types/common/src/utils.d.ts +46 -38
  14. package/dist/types/element/src/Scene.d.ts +5 -3
  15. package/dist/types/element/src/arrows/focus.d.ts +27 -0
  16. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  17. package/dist/types/element/src/binding.d.ts +19 -12
  18. package/dist/types/element/src/bounds.d.ts +2 -10
  19. package/dist/types/element/src/collision.d.ts +4 -3
  20. package/dist/types/element/src/comparisons.d.ts +7 -7
  21. package/dist/types/element/src/distribute.d.ts +2 -1
  22. package/dist/types/element/src/dragElements.d.ts +3 -3
  23. package/dist/types/element/src/duplicate.d.ts +3 -3
  24. package/dist/types/element/src/elbowArrow.d.ts +2 -0
  25. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  26. package/dist/types/element/src/frame.d.ts +5 -1
  27. package/dist/types/element/src/heading.d.ts +2 -1
  28. package/dist/types/element/src/image.d.ts +1 -11
  29. package/dist/types/element/src/index.d.ts +3 -0
  30. package/dist/types/element/src/linearElementEditor.d.ts +6 -2
  31. package/dist/types/element/src/mutateElement.d.ts +5 -1
  32. package/dist/types/element/src/newElement.d.ts +6 -6
  33. package/dist/types/element/src/renderElement.d.ts +0 -6
  34. package/dist/types/element/src/resizeElements.d.ts +10 -10
  35. package/dist/types/element/src/resizeTest.d.ts +1 -1
  36. package/dist/types/element/src/selection.d.ts +3 -7
  37. package/dist/types/element/src/shape.d.ts +8 -7
  38. package/dist/types/element/src/textMeasurements.d.ts +1 -3
  39. package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
  40. package/dist/types/element/src/transformHandles.d.ts +3 -23
  41. package/dist/types/element/src/typeChecks.d.ts +2 -4
  42. package/dist/types/element/src/types.d.ts +1 -1
  43. package/dist/types/element/src/utils.d.ts +8 -4
  44. package/dist/types/{common → element}/src/visualdebug.d.ts +20 -2
  45. package/dist/types/element/src/zindex.d.ts +1 -1
  46. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +92 -153
  47. package/dist/types/excalidraw/actions/actionAlign.d.ts +0 -1
  48. package/dist/types/excalidraw/actions/actionBoundText.d.ts +64 -105
  49. package/dist/types/excalidraw/actions/actionCanvas.d.ts +383 -618
  50. package/dist/types/excalidraw/actions/actionClipboard.d.ts +64 -105
  51. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +31 -52
  52. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +106 -169
  53. package/dist/types/excalidraw/actions/actionDistribute.d.ts +0 -1
  54. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +0 -1
  55. package/dist/types/excalidraw/actions/actionElementLink.d.ts +24 -49
  56. package/dist/types/excalidraw/actions/actionElementLock.d.ts +65 -106
  57. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +32 -53
  58. package/dist/types/excalidraw/actions/actionExport.d.ts +126 -211
  59. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -2
  60. package/dist/types/excalidraw/actions/actionFlip.d.ts +0 -1
  61. package/dist/types/excalidraw/actions/actionFrame.d.ts +221 -338
  62. package/dist/types/excalidraw/actions/actionGroup.d.ts +68 -117
  63. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +134 -189
  64. package/dist/types/excalidraw/actions/actionLink.d.ts +32 -53
  65. package/dist/types/excalidraw/actions/actionMenu.d.ts +23 -48
  66. package/dist/types/excalidraw/actions/actionNavigate.d.ts +14 -17
  67. package/dist/types/excalidraw/actions/actionProperties.d.ts +79 -120
  68. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +34 -59
  69. package/dist/types/excalidraw/actions/actionStyles.d.ts +30 -51
  70. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +172 -0
  71. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +32 -53
  72. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +172 -0
  73. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +32 -53
  74. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +22 -47
  75. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +32 -53
  76. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +32 -53
  77. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +32 -53
  78. package/dist/types/excalidraw/actions/actionZindex.d.ts +0 -1
  79. package/dist/types/excalidraw/actions/index.d.ts +2 -0
  80. package/dist/types/excalidraw/actions/manager.d.ts +1 -1
  81. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  82. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  83. package/dist/types/excalidraw/actions/types.d.ts +1 -1
  84. package/dist/types/excalidraw/appState.d.ts +12 -10
  85. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  86. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  87. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  88. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  89. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  90. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  91. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  92. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  93. package/dist/types/excalidraw/clipboard.d.ts +11 -35
  94. package/dist/types/excalidraw/components/Actions.d.ts +1 -1
  95. package/dist/types/excalidraw/components/App.d.ts +43 -44
  96. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  97. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  98. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
  99. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
  100. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  101. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -2
  102. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  103. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  104. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  105. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  106. package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
  107. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  108. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -1
  109. package/dist/types/excalidraw/components/EyeDropper.d.ts +0 -1
  110. package/dist/types/excalidraw/components/FilledButton.d.ts +1 -0
  111. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  112. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  113. package/dist/types/excalidraw/components/InlineIcon.d.ts +2 -2
  114. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  115. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
  116. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
  117. package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
  118. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -1
  119. package/dist/types/excalidraw/components/Modal.d.ts +0 -1
  120. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
  121. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
  122. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  123. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  124. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  125. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  126. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +15 -21
  127. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  128. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  129. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  130. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  131. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  132. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  133. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  134. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  135. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
  136. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  137. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  138. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
  139. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
  140. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
  141. package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
  142. package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
  143. package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
  144. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
  145. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  146. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
  147. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
  148. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +5 -2
  149. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  150. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  151. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  152. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  153. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  154. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  155. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  156. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
  157. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  158. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  159. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  160. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
  161. package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
  162. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
  163. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
  164. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +24 -0
  165. package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
  166. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
  167. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
  168. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
  169. package/dist/types/excalidraw/components/Toast.d.ts +3 -3
  170. package/dist/types/excalidraw/components/Trans.d.ts +2 -2
  171. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +48 -38
  172. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -6
  173. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  174. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
  175. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  176. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
  177. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +0 -1
  178. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  179. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  180. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  181. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  182. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  183. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  184. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +2 -2
  185. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  186. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  187. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  188. package/dist/types/excalidraw/components/icons.d.ts +22 -13
  189. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +2 -13
  190. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +19 -2
  191. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -32
  192. package/dist/types/excalidraw/components/shapes.d.ts +74 -1
  193. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +6 -6
  194. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +15 -16
  195. package/dist/types/excalidraw/data/blob.d.ts +323 -3
  196. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  197. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  198. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  199. package/dist/types/excalidraw/data/index.d.ts +3 -3
  200. package/dist/types/excalidraw/data/json.d.ts +160 -2
  201. package/dist/types/excalidraw/data/library.d.ts +24 -9
  202. package/dist/types/excalidraw/data/restore.d.ts +25 -10
  203. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  204. package/dist/types/excalidraw/errors.d.ts +14 -0
  205. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +1 -2
  206. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  207. package/dist/types/excalidraw/i18n.d.ts +2 -2
  208. package/dist/types/excalidraw/index.d.ts +6 -4
  209. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -4
  210. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -6
  211. package/dist/types/excalidraw/scene/Renderer.d.ts +5 -2
  212. package/dist/types/excalidraw/scene/export.d.ts +2 -2
  213. package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
  214. package/dist/types/excalidraw/scene/types.d.ts +7 -2
  215. package/dist/types/excalidraw/snapping.d.ts +5 -5
  216. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  217. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  218. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  219. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  220. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  221. package/dist/types/excalidraw/types.d.ts +25 -14
  222. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -2
  223. package/dist/types/math/src/point.d.ts +6 -1
  224. package/dist/types/math/src/polygon.d.ts +2 -2
  225. package/dist/types/math/src/range.d.ts +1 -3
  226. package/dist/types/math/src/segment.d.ts +3 -3
  227. package/dist/types/math/src/types.d.ts +25 -1
  228. package/dist/types/utils/src/bbox.d.ts +1 -1
  229. package/dist/types/utils/src/export.d.ts +5 -5
  230. package/dist/types/utils/src/shape.d.ts +6 -6
  231. package/dist/types/utils/src/withinBounds.d.ts +2 -2
  232. package/package.json +9 -3
  233. package/dist/types/excalidraw/charts.d.ts +0 -27
@@ -12,14 +12,334 @@ export declare const isSupportedImageFileType: (type: string | null | undefined)
12
12
  export declare const isSupportedImageFile: (blob: Blob | null | undefined) => blob is Blob & {
13
13
  type: ValueOf<typeof IMAGE_MIME_TYPES>;
14
14
  };
15
- export declare const loadSceneOrLibraryFromBlob: (blob: Blob | File, localAppState: AppState | null, localElements: readonly ExcalidrawElement[] | null, fileHandle?: FileSystemHandle | null) => Promise<{
15
+ export declare const loadSceneOrLibraryFromBlob: (blob: Blob | File,
16
+ /** @see restore.localAppState */
17
+ localAppState: AppState | null, localElements: readonly ExcalidrawElement[] | null,
18
+ /** FileSystemHandle. Defaults to `blob.handle` if defined, otherwise null. */
19
+ fileHandle?: FileSystemHandle | null) => Promise<{
16
20
  type: "application/vnd.excalidraw+json";
17
- data: import("./restore").RestoredDataState;
21
+ data: {
22
+ elements: import("@excalidraw/element/types").OrderedExcalidrawElement[];
23
+ appState: {
24
+ viewBackgroundColor: string;
25
+ theme: import("@excalidraw/element/types").Theme;
26
+ frameRendering: {
27
+ enabled: boolean;
28
+ name: boolean;
29
+ outline: boolean;
30
+ clip: boolean;
31
+ };
32
+ name: string | null;
33
+ zoom: import("../types").Zoom;
34
+ scrollX: number;
35
+ scrollY: number;
36
+ viewModeEnabled: boolean;
37
+ openDialog: null | {
38
+ name: "imageExport" | "help" | "jsonExport";
39
+ } | {
40
+ name: "ttd";
41
+ tab: "text-to-diagram" | "mermaid";
42
+ } | {
43
+ name: "commandPalette";
44
+ } | {
45
+ name: "settings";
46
+ } | {
47
+ name: "elementLinkSelector";
48
+ sourceElementId: ExcalidrawElement["id"];
49
+ } | {
50
+ name: "charts";
51
+ data: import("../charts").Spreadsheet;
52
+ rawText: string;
53
+ };
54
+ editingGroupId: import("@excalidraw/element/types").GroupId | null;
55
+ selectedElementIds: Readonly<{
56
+ [id: string]: true;
57
+ }>;
58
+ frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
59
+ activeTool: {
60
+ lastActiveTool: import("../types").ActiveTool | null;
61
+ locked: boolean;
62
+ fromSelection: boolean;
63
+ } & import("../types").ActiveTool;
64
+ activeEmbeddable: {
65
+ element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
66
+ state: "hover" | "active";
67
+ } | null;
68
+ selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
69
+ selectedGroupIds: {
70
+ [groupId: string]: boolean;
71
+ };
72
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
73
+ multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
74
+ newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
75
+ isBindingEnabled: boolean;
76
+ isMidpointSnappingEnabled: boolean;
77
+ suggestedBinding: {
78
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
79
+ midPoint?: import("@excalidraw/math").GlobalPoint;
80
+ } | null;
81
+ isRotating: boolean;
82
+ elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
83
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
84
+ snapLines: readonly import("../snapping").SnapLine[];
85
+ zenModeEnabled: boolean;
86
+ editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
87
+ isCropping: boolean;
88
+ croppingElementId: ExcalidrawElement["id"] | null;
89
+ searchMatches: Readonly<{
90
+ focusedId: ExcalidrawElement["id"] | null;
91
+ matches: readonly import("../types").SearchMatch[];
92
+ }> | null;
93
+ activeLockedId: string | null;
94
+ hoveredElementIds: Readonly<{
95
+ [id: string]: true;
96
+ }>;
97
+ shouldCacheIgnoreZoom: boolean;
98
+ exportScale: number;
99
+ currentItemArrowType: "sharp" | "round" | "elbow";
100
+ bindMode: import("@excalidraw/element/types").BindMode;
101
+ gridSize: number;
102
+ contextMenu: {
103
+ items: import("../components/ContextMenu").ContextMenuItems;
104
+ top: number;
105
+ left: number;
106
+ } | null;
107
+ showWelcomeScreen: boolean;
108
+ isLoading: boolean;
109
+ errorMessage: React.ReactNode;
110
+ resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
111
+ bindingPreference: "enabled" | "disabled";
112
+ startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
113
+ editingFrame: string | null;
114
+ preferredSelectionTool: {
115
+ type: "selection" | "lasso";
116
+ initialized: boolean;
117
+ };
118
+ penMode: boolean;
119
+ penDetected: boolean;
120
+ exportBackground: boolean;
121
+ exportEmbedScene: boolean;
122
+ exportWithDarkMode: boolean;
123
+ currentItemStrokeColor: string;
124
+ currentItemBackgroundColor: string;
125
+ currentItemFillStyle: ExcalidrawElement["fillStyle"];
126
+ currentItemStrokeWidth: number;
127
+ currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
128
+ currentItemRoughness: number;
129
+ currentItemOpacity: number;
130
+ currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
131
+ currentItemFontSize: number;
132
+ currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
133
+ currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
134
+ currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
135
+ currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
136
+ currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
137
+ cursorButton: "up" | "down";
138
+ scrolledOutside: boolean;
139
+ isResizing: boolean;
140
+ openMenu: "canvas" | null;
141
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
142
+ openSidebar: {
143
+ name: import("../types").SidebarName;
144
+ tab?: import("../types").SidebarTabName;
145
+ } | null;
146
+ defaultSidebarDockedPreference: boolean;
147
+ lastPointerDownWith: import("@excalidraw/element/types").PointerType;
148
+ previousSelectedElementIds: {
149
+ [id: string]: true;
150
+ };
151
+ selectedElementsAreBeingDragged: boolean;
152
+ toast: {
153
+ message: string;
154
+ closable?: boolean;
155
+ duration?: number;
156
+ } | null;
157
+ gridStep: number;
158
+ gridModeEnabled: boolean;
159
+ fileHandle: FileSystemHandle | null;
160
+ stats: {
161
+ open: boolean;
162
+ panels: number;
163
+ };
164
+ showHyperlinkPopup: false | "info" | "editor";
165
+ originSnapOffset: {
166
+ x: number;
167
+ y: number;
168
+ } | null;
169
+ objectsSnapModeEnabled: boolean;
170
+ userToFollow: import("../types").UserToFollow | null;
171
+ followedBy: Set<import("../types").SocketId>;
172
+ lockedMultiSelections: {
173
+ [groupId: string]: true;
174
+ };
175
+ };
176
+ files: import("../types").BinaryFiles;
177
+ };
18
178
  } | {
19
179
  type: "application/vnd.excalidrawlib+json";
20
180
  data: ImportedLibraryData;
21
181
  }>;
22
- export declare const loadFromBlob: (blob: Blob, localAppState: AppState | null, localElements: readonly ExcalidrawElement[] | null, fileHandle?: FileSystemHandle | null) => Promise<import("./restore").RestoredDataState>;
182
+ export declare const loadFromBlob: (blob: Blob,
183
+ /** @see restore.localAppState */
184
+ localAppState: AppState | null, localElements: readonly ExcalidrawElement[] | null,
185
+ /** FileSystemHandle. Defaults to `blob.handle` if defined, otherwise null. */
186
+ fileHandle?: FileSystemHandle | null) => Promise<{
187
+ elements: import("@excalidraw/element/types").OrderedExcalidrawElement[];
188
+ appState: {
189
+ viewBackgroundColor: string;
190
+ theme: import("@excalidraw/element/types").Theme;
191
+ frameRendering: {
192
+ enabled: boolean;
193
+ name: boolean;
194
+ outline: boolean;
195
+ clip: boolean;
196
+ };
197
+ name: string | null;
198
+ zoom: import("../types").Zoom;
199
+ scrollX: number;
200
+ scrollY: number;
201
+ viewModeEnabled: boolean;
202
+ openDialog: null | {
203
+ name: "imageExport" | "help" | "jsonExport";
204
+ } | {
205
+ name: "ttd";
206
+ tab: "text-to-diagram" | "mermaid";
207
+ } | {
208
+ name: "commandPalette";
209
+ } | {
210
+ name: "settings";
211
+ } | {
212
+ name: "elementLinkSelector";
213
+ sourceElementId: ExcalidrawElement["id"];
214
+ } | {
215
+ name: "charts";
216
+ data: import("../charts").Spreadsheet;
217
+ rawText: string;
218
+ };
219
+ editingGroupId: import("@excalidraw/element/types").GroupId | null;
220
+ selectedElementIds: Readonly<{
221
+ [id: string]: true;
222
+ }>;
223
+ frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
224
+ activeTool: {
225
+ lastActiveTool: import("../types").ActiveTool | null;
226
+ locked: boolean;
227
+ fromSelection: boolean;
228
+ } & import("../types").ActiveTool;
229
+ activeEmbeddable: {
230
+ element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
231
+ state: "hover" | "active";
232
+ } | null;
233
+ selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
234
+ selectedGroupIds: {
235
+ [groupId: string]: boolean;
236
+ };
237
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
238
+ multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
239
+ newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
240
+ isBindingEnabled: boolean;
241
+ isMidpointSnappingEnabled: boolean;
242
+ suggestedBinding: {
243
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
244
+ midPoint?: import("@excalidraw/math").GlobalPoint;
245
+ } | null;
246
+ isRotating: boolean;
247
+ elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
248
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
249
+ snapLines: readonly import("../snapping").SnapLine[];
250
+ zenModeEnabled: boolean;
251
+ editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
252
+ isCropping: boolean;
253
+ croppingElementId: ExcalidrawElement["id"] | null;
254
+ searchMatches: Readonly<{
255
+ focusedId: ExcalidrawElement["id"] | null;
256
+ matches: readonly import("../types").SearchMatch[];
257
+ }> | null;
258
+ activeLockedId: string | null;
259
+ hoveredElementIds: Readonly<{
260
+ [id: string]: true;
261
+ }>;
262
+ shouldCacheIgnoreZoom: boolean;
263
+ exportScale: number;
264
+ currentItemArrowType: "sharp" | "round" | "elbow";
265
+ bindMode: import("@excalidraw/element/types").BindMode;
266
+ gridSize: number;
267
+ contextMenu: {
268
+ items: import("../components/ContextMenu").ContextMenuItems;
269
+ top: number;
270
+ left: number;
271
+ } | null;
272
+ showWelcomeScreen: boolean;
273
+ isLoading: boolean;
274
+ errorMessage: React.ReactNode;
275
+ resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
276
+ bindingPreference: "enabled" | "disabled";
277
+ startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
278
+ editingFrame: string | null;
279
+ preferredSelectionTool: {
280
+ type: "selection" | "lasso";
281
+ initialized: boolean;
282
+ };
283
+ penMode: boolean;
284
+ penDetected: boolean;
285
+ exportBackground: boolean;
286
+ exportEmbedScene: boolean;
287
+ exportWithDarkMode: boolean;
288
+ currentItemStrokeColor: string;
289
+ currentItemBackgroundColor: string;
290
+ currentItemFillStyle: ExcalidrawElement["fillStyle"];
291
+ currentItemStrokeWidth: number;
292
+ currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
293
+ currentItemRoughness: number;
294
+ currentItemOpacity: number;
295
+ currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
296
+ currentItemFontSize: number;
297
+ currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
298
+ currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
299
+ currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
300
+ currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
301
+ currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
302
+ cursorButton: "up" | "down";
303
+ scrolledOutside: boolean;
304
+ isResizing: boolean;
305
+ openMenu: "canvas" | null;
306
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
307
+ openSidebar: {
308
+ name: import("../types").SidebarName;
309
+ tab?: import("../types").SidebarTabName;
310
+ } | null;
311
+ defaultSidebarDockedPreference: boolean;
312
+ lastPointerDownWith: import("@excalidraw/element/types").PointerType;
313
+ previousSelectedElementIds: {
314
+ [id: string]: true;
315
+ };
316
+ selectedElementsAreBeingDragged: boolean;
317
+ toast: {
318
+ message: string;
319
+ closable?: boolean;
320
+ duration?: number;
321
+ } | null;
322
+ gridStep: number;
323
+ gridModeEnabled: boolean;
324
+ fileHandle: FileSystemHandle | null;
325
+ stats: {
326
+ open: boolean;
327
+ panels: number;
328
+ };
329
+ showHyperlinkPopup: false | "info" | "editor";
330
+ originSnapOffset: {
331
+ x: number;
332
+ y: number;
333
+ } | null;
334
+ objectsSnapModeEnabled: boolean;
335
+ userToFollow: import("../types").UserToFollow | null;
336
+ followedBy: Set<import("../types").SocketId>;
337
+ lockedMultiSelections: {
338
+ [groupId: string]: true;
339
+ };
340
+ };
341
+ files: import("../types").BinaryFiles;
342
+ }>;
23
343
  export declare const parseLibraryJSON: (json: string, defaultStatus?: LibraryItem["status"]) => LibraryItem[];
24
344
  export declare const loadLibraryFromBlob: (blob: Blob, defaultStatus?: LibraryItem["status"]) => Promise<LibraryItem[]>;
25
345
  export declare const canvasToBlob: (canvas: HTMLCanvasElement | Promise<HTMLCanvasElement>) => Promise<Blob>;
@@ -21,7 +21,7 @@ type EncodedData = {
21
21
  export declare const encode: ({ text, compress, }: {
22
22
  text: string;
23
23
  /** defaults to `true`. If compression fails, falls back to bstring alone. */
24
- compress?: boolean | undefined;
24
+ compress?: boolean;
25
25
  }) => EncodedData;
26
26
  export declare const decode: (data: EncodedData) => string;
27
27
  /**
@@ -40,16 +40,16 @@ export declare const decode: (data: EncodedData) => string;
40
40
  export declare const compressData: <T extends Record<string, any> = never>(dataBuffer: Uint8Array, options: {
41
41
  encryptionKey: string;
42
42
  } & ([T] extends [never] ? {
43
- metadata?: T | undefined;
43
+ metadata?: T;
44
44
  } : {
45
45
  metadata: T;
46
- })) => Promise<Uint8Array>;
46
+ })) => Promise<Uint8Array<ArrayBuffer>>;
47
47
  export declare const decompressData: <T extends Record<string, any>>(bufferView: Uint8Array, options: {
48
48
  decryptionKey: string;
49
49
  }) => Promise<{
50
50
  /** metadata source is always JSON so we can decode it here */
51
51
  metadata: T;
52
52
  /** data can be anything so the caller must decode it */
53
- data: Uint8Array;
53
+ data: Uint8Array<ArrayBuffer>;
54
54
  }>;
55
55
  export {};
@@ -1,9 +1,9 @@
1
1
  export declare const IV_LENGTH_BYTES = 12;
2
- export declare const createIV: () => Uint8Array;
3
- export declare const generateEncryptionKey: <T extends "string" | "cryptoKey" = "string">(returnAs?: T | undefined) => Promise<T extends "cryptoKey" ? CryptoKey : string>;
2
+ export declare const createIV: () => Uint8Array<ArrayBuffer>;
3
+ export declare const generateEncryptionKey: <T extends "string" | "cryptoKey" = "string">(returnAs?: T) => Promise<T extends "cryptoKey" ? CryptoKey : string>;
4
4
  export declare const getCryptoKey: (key: string, usage: KeyUsage) => Promise<CryptoKey>;
5
- export declare const encryptData: (key: string | CryptoKey, data: Uint8Array | ArrayBuffer | Blob | File | string) => Promise<{
5
+ export declare const encryptData: (key: string | CryptoKey, data: Uint8Array<ArrayBuffer> | ArrayBuffer | Blob | File | string) => Promise<{
6
6
  encryptedBuffer: ArrayBuffer;
7
- iv: Uint8Array;
7
+ iv: Uint8Array<ArrayBuffer>;
8
8
  }>;
9
- export declare const decryptData: (iv: Uint8Array, encrypted: Uint8Array | ArrayBuffer, privateKey: string) => Promise<ArrayBuffer>;
9
+ export declare const decryptData: (iv: Uint8Array<ArrayBuffer>, encrypted: Uint8Array<ArrayBuffer> | ArrayBuffer, privateKey: string) => Promise<ArrayBuffer>;
@@ -3,9 +3,9 @@ import { MIME_TYPES } from "@excalidraw/common";
3
3
  import type { FileSystemHandle } from "browser-fs-access";
4
4
  type FILE_EXTENSION = Exclude<keyof typeof MIME_TYPES, "binary">;
5
5
  export declare const fileOpen: <M extends boolean | undefined = false>(opts: {
6
- extensions?: FILE_EXTENSION[] | undefined;
6
+ extensions?: FILE_EXTENSION[];
7
7
  description: string;
8
- multiple?: M | undefined;
8
+ multiple?: M;
9
9
  }) => Promise<M extends false | undefined ? File : File[]>;
10
10
  export declare const fileSave: (blob: Blob | Promise<Blob>, opts: {
11
11
  /** supply without the extension */
@@ -13,10 +13,10 @@ export declare const prepareElementsForExport: (elements: readonly ExcalidrawEle
13
13
  };
14
14
  export declare const exportCanvas: (type: Omit<ExportType, "backend">, elements: ExportedElements, appState: AppState, files: BinaryFiles, { exportBackground, exportPadding, viewBackgroundColor, name, fileHandle, exportingFrame, }: {
15
15
  exportBackground: boolean;
16
- exportPadding?: number | undefined;
16
+ exportPadding?: number;
17
17
  viewBackgroundColor: string;
18
18
  /** filename, if applicable */
19
- name?: string | undefined;
20
- fileHandle?: FileSystemHandle | null | undefined;
19
+ name?: string;
20
+ fileHandle?: FileSystemHandle | null;
21
21
  exportingFrame: ExcalidrawFrameLikeElement | null;
22
22
  }) => Promise<FileSystemHandle | null | undefined>;
@@ -2,10 +2,168 @@ import type { ExcalidrawElement } from "@excalidraw/element/types";
2
2
  import type { AppState, BinaryFiles, LibraryItems } from "../types";
3
3
  import type { ImportedDataState, ImportedLibraryData } from "./types";
4
4
  export declare const serializeAsJSON: (elements: readonly ExcalidrawElement[], appState: Partial<AppState>, files: BinaryFiles, type: "local" | "database") => string;
5
- export declare const saveAsJSON: (elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles, name?: string) => Promise<{
5
+ export declare const saveAsJSON: (elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles,
6
+ /** filename */
7
+ name?: string) => Promise<{
6
8
  fileHandle: import("browser-fs-access").FileSystemHandle | null;
7
9
  }>;
8
- export declare const loadFromJSON: (localAppState: AppState, localElements: readonly ExcalidrawElement[] | null) => Promise<import("./restore").RestoredDataState>;
10
+ export declare const loadFromJSON: (localAppState: AppState, localElements: readonly ExcalidrawElement[] | null) => Promise<{
11
+ elements: import("@excalidraw/element/types").OrderedExcalidrawElement[];
12
+ appState: {
13
+ viewBackgroundColor: string;
14
+ theme: import("@excalidraw/element/types").Theme;
15
+ frameRendering: {
16
+ enabled: boolean;
17
+ name: boolean;
18
+ outline: boolean;
19
+ clip: boolean;
20
+ };
21
+ name: string | null;
22
+ zoom: import("../types").Zoom;
23
+ scrollX: number;
24
+ scrollY: number;
25
+ viewModeEnabled: boolean;
26
+ openDialog: null | {
27
+ name: "imageExport" | "help" | "jsonExport";
28
+ } | {
29
+ name: "ttd";
30
+ tab: "text-to-diagram" | "mermaid";
31
+ } | {
32
+ name: "commandPalette";
33
+ } | {
34
+ name: "settings";
35
+ } | {
36
+ name: "elementLinkSelector";
37
+ sourceElementId: ExcalidrawElement["id"];
38
+ } | {
39
+ name: "charts";
40
+ data: import("../charts").Spreadsheet;
41
+ rawText: string;
42
+ };
43
+ editingGroupId: import("@excalidraw/element/types").GroupId | null;
44
+ selectedElementIds: Readonly<{
45
+ [id: string]: true;
46
+ }>;
47
+ frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
48
+ activeTool: {
49
+ lastActiveTool: import("../types").ActiveTool | null;
50
+ locked: boolean;
51
+ fromSelection: boolean;
52
+ } & import("../types").ActiveTool;
53
+ activeEmbeddable: {
54
+ element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
55
+ state: "hover" | "active";
56
+ } | null;
57
+ selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
58
+ selectedGroupIds: {
59
+ [groupId: string]: boolean;
60
+ };
61
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
62
+ multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
63
+ newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
64
+ isBindingEnabled: boolean;
65
+ isMidpointSnappingEnabled: boolean;
66
+ suggestedBinding: {
67
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
68
+ midPoint?: import("@excalidraw/math").GlobalPoint;
69
+ } | null;
70
+ isRotating: boolean;
71
+ elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
72
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
73
+ snapLines: readonly import("../snapping").SnapLine[];
74
+ zenModeEnabled: boolean;
75
+ editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
76
+ isCropping: boolean;
77
+ croppingElementId: ExcalidrawElement["id"] | null;
78
+ searchMatches: Readonly<{
79
+ focusedId: ExcalidrawElement["id"] | null;
80
+ matches: readonly import("../types").SearchMatch[];
81
+ }> | null;
82
+ activeLockedId: string | null;
83
+ hoveredElementIds: Readonly<{
84
+ [id: string]: true;
85
+ }>;
86
+ shouldCacheIgnoreZoom: boolean;
87
+ exportScale: number;
88
+ currentItemArrowType: "sharp" | "round" | "elbow";
89
+ bindMode: import("@excalidraw/element/types").BindMode;
90
+ gridSize: number;
91
+ contextMenu: {
92
+ items: import("../components/ContextMenu").ContextMenuItems;
93
+ top: number;
94
+ left: number;
95
+ } | null;
96
+ showWelcomeScreen: boolean;
97
+ isLoading: boolean;
98
+ errorMessage: React.ReactNode;
99
+ resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
100
+ bindingPreference: "enabled" | "disabled";
101
+ startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
102
+ editingFrame: string | null;
103
+ preferredSelectionTool: {
104
+ type: "selection" | "lasso";
105
+ initialized: boolean;
106
+ };
107
+ penMode: boolean;
108
+ penDetected: boolean;
109
+ exportBackground: boolean;
110
+ exportEmbedScene: boolean;
111
+ exportWithDarkMode: boolean;
112
+ currentItemStrokeColor: string;
113
+ currentItemBackgroundColor: string;
114
+ currentItemFillStyle: ExcalidrawElement["fillStyle"];
115
+ currentItemStrokeWidth: number;
116
+ currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
117
+ currentItemRoughness: number;
118
+ currentItemOpacity: number;
119
+ currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
120
+ currentItemFontSize: number;
121
+ currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
122
+ currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
123
+ currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
124
+ currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
125
+ currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
126
+ cursorButton: "up" | "down";
127
+ scrolledOutside: boolean;
128
+ isResizing: boolean;
129
+ openMenu: "canvas" | null;
130
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
131
+ openSidebar: {
132
+ name: import("../types").SidebarName;
133
+ tab?: import("../types").SidebarTabName;
134
+ } | null;
135
+ defaultSidebarDockedPreference: boolean;
136
+ lastPointerDownWith: import("@excalidraw/element/types").PointerType;
137
+ previousSelectedElementIds: {
138
+ [id: string]: true;
139
+ };
140
+ selectedElementsAreBeingDragged: boolean;
141
+ toast: {
142
+ message: string;
143
+ closable?: boolean;
144
+ duration?: number;
145
+ } | null;
146
+ gridStep: number;
147
+ gridModeEnabled: boolean;
148
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
149
+ stats: {
150
+ open: boolean;
151
+ panels: number;
152
+ };
153
+ showHyperlinkPopup: false | "info" | "editor";
154
+ originSnapOffset: {
155
+ x: number;
156
+ y: number;
157
+ } | null;
158
+ objectsSnapModeEnabled: boolean;
159
+ userToFollow: import("../types").UserToFollow | null;
160
+ followedBy: Set<import("../types").SocketId>;
161
+ lockedMultiSelections: {
162
+ [groupId: string]: true;
163
+ };
164
+ };
165
+ files: BinaryFiles;
166
+ }>;
9
167
  export declare const isValidExcalidrawData: (data?: {
10
168
  type?: any;
11
169
  elements?: any;
@@ -74,16 +74,31 @@ declare class Library {
74
74
  getLatestLibrary: () => Promise<LibraryItems>;
75
75
  updateLibrary: ({ libraryItems, prompt, merge, openLibraryMenu, defaultStatus, }: {
76
76
  libraryItems: LibraryItemsSource;
77
- merge?: boolean | undefined;
78
- prompt?: boolean | undefined;
79
- openLibraryMenu?: boolean | undefined;
80
- defaultStatus?: "published" | "unpublished" | undefined;
77
+ merge?: boolean;
78
+ prompt?: boolean;
79
+ openLibraryMenu?: boolean;
80
+ defaultStatus?: "unpublished" | "published";
81
81
  }) => Promise<LibraryItems>;
82
- setLibrary: (libraryItems: LibraryItems | Promise<LibraryItems> | ((latestLibraryItems: LibraryItems) => LibraryItems | Promise<LibraryItems>)) => Promise<LibraryItems>;
82
+ setLibrary: (
83
+ /**
84
+ * LibraryItems that will replace current items. Can be a function which
85
+ * will be invoked after all previous tasks are resolved
86
+ * (this is the prefered way to update the library to avoid race conditions,
87
+ * but you'll want to manually merge the library items in the callback
88
+ * - which is what we're doing in Library.importLibrary()).
89
+ *
90
+ * If supplied promise is rejected with AbortError, we swallow it and
91
+ * do not update the library.
92
+ */
93
+ libraryItems: LibraryItems | Promise<LibraryItems> | ((latestLibraryItems: LibraryItems) => LibraryItems | Promise<LibraryItems>)) => Promise<LibraryItems>;
83
94
  }
84
95
  export default Library;
85
96
  export declare const distributeLibraryItemsOnSquareGrid: (libraryItems: LibraryItems) => ExcalidrawElement[];
86
- export declare const validateLibraryUrl: (libraryUrl: string, validator?: string[] | ((libraryUrl: string) => boolean)) => true;
97
+ export declare const validateLibraryUrl: (libraryUrl: string,
98
+ /**
99
+ * @returns `true` if the URL is valid, throws otherwise.
100
+ */
101
+ validator?: ((libraryUrl: string) => boolean) | string[]) => true;
87
102
  export declare const parseLibraryTokensFromUrl: () => {
88
103
  libraryUrl: string;
89
104
  idToken: string | null;
@@ -95,10 +110,10 @@ export declare const useHandleLibrary: (opts: {
95
110
  * Return `true` if the library install url should be allowed.
96
111
  * If not supplied, only the excalidraw.com base domain is allowed.
97
112
  */
98
- validateLibraryUrl?: ((libraryUrl: string) => boolean) | undefined;
113
+ validateLibraryUrl?: (libraryUrl: string) => boolean;
99
114
  } & ({
100
115
  /** @deprecated we recommend using `opts.adapter` instead */
101
- getInitialLibraryItems?: (() => MaybePromise<LibraryItemsSource>) | undefined;
116
+ getInitialLibraryItems?: () => MaybePromise<LibraryItemsSource>;
102
117
  } | {
103
118
  adapter: LibraryPersistenceAdapter;
104
119
  /**
@@ -108,5 +123,5 @@ export declare const useHandleLibrary: (opts: {
108
123
  *
109
124
  * Can be a different LibraryPersistenceAdapter.
110
125
  */
111
- migrationAdapter?: LibraryMigrationAdapter | undefined;
126
+ migrationAdapter?: LibraryMigrationAdapter;
112
127
  })) => void;