@zsviczian/excalidraw 0.15.2-obsidian-10 → 0.15.2-obsidian-12

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 (280) hide show
  1. package/dist/excalidraw.development.js +1710 -1849
  2. package/dist/excalidraw.production.min.js +1 -1
  3. package/package.json +2 -1
  4. package/types/actions/actionAddToLibrary.d.ts +440 -441
  5. package/types/actions/actionAlign.d.ts +96 -97
  6. package/types/actions/actionBoundText.d.ts +330 -331
  7. package/types/actions/actionCanvas.d.ts +1844 -1845
  8. package/types/actions/actionClipboard.d.ts +828 -829
  9. package/types/actions/actionDeleteSelected.d.ts +474 -475
  10. package/types/actions/actionDistribute.d.ts +32 -33
  11. package/types/actions/actionDuplicateSelection.d.ts +21 -22
  12. package/types/actions/actionElementLock.d.ts +315 -316
  13. package/types/actions/actionExport.d.ts +1388 -1389
  14. package/types/actions/actionFinalize.d.ts +298 -299
  15. package/types/actions/actionFlip.d.ts +32 -33
  16. package/types/actions/actionFrame.d.ts +489 -490
  17. package/types/actions/actionGroup.d.ts +44 -45
  18. package/types/actions/actionHistory.d.ts +6 -6
  19. package/types/actions/actionLinearEditor.d.ts +157 -158
  20. package/types/actions/actionMenu.d.ts +478 -479
  21. package/types/actions/actionNavigate.d.ts +14 -14
  22. package/types/actions/actionProperties.d.ts +2012 -2013
  23. package/types/actions/actionSelectAll.d.ts +15 -16
  24. package/types/actions/actionStyles.d.ts +171 -172
  25. package/types/actions/actionToggleGridMode.d.ts +160 -161
  26. package/types/actions/actionToggleLock.d.ts +139 -135
  27. package/types/actions/actionToggleStats.d.ts +157 -158
  28. package/types/actions/actionToggleViewMode.d.ts +159 -160
  29. package/types/actions/actionToggleZenMode.d.ts +159 -160
  30. package/types/actions/actionZindex.d.ts +67 -67
  31. package/types/actions/index.d.ts +24 -24
  32. package/types/actions/manager.d.ts +21 -21
  33. package/types/actions/register.d.ts +5 -5
  34. package/types/actions/shortcuts.d.ts +4 -4
  35. package/types/actions/types.d.ts +45 -45
  36. package/types/align.d.ts +6 -6
  37. package/types/analytics.d.ts +1 -1
  38. package/types/appState.d.ts +81 -81
  39. package/types/bug-issue-template.d.ts +2 -0
  40. package/types/charts.d.ts +27 -27
  41. package/types/clients.d.ts +5 -5
  42. package/types/clipboard.d.ts +25 -25
  43. package/types/colors.d.ts +61 -61
  44. package/types/components/Actions.d.ts +36 -36
  45. package/types/components/ActiveConfirmDialog.d.ts +4 -4
  46. package/types/components/ActiveFile.d.ts +7 -0
  47. package/types/components/App.d.ts +288 -288
  48. package/types/components/Avatar.d.ts +10 -10
  49. package/types/components/BackgroundPickerAndDarkModeToggle.d.ts +4 -0
  50. package/types/components/BraveMeasureTextError.d.ts +2 -2
  51. package/types/components/Button.d.ts +16 -17
  52. package/types/components/ButtonIconSelect.d.ts +19 -19
  53. package/types/components/Card.d.ts +6 -7
  54. package/types/components/CheckboxItem.d.ts +8 -8
  55. package/types/components/ClearCanvas.d.ts +4 -0
  56. package/types/components/CollabButton.d.ts +7 -0
  57. package/types/components/ColorPicker/ColorInput.d.ts +7 -7
  58. package/types/components/ColorPicker/ColorPicker.d.ts +19 -19
  59. package/types/components/ColorPicker/CustomColorList.d.ts +8 -8
  60. package/types/components/ColorPicker/HotkeyLabel.d.ts +8 -8
  61. package/types/components/ColorPicker/Picker.d.ts +18 -18
  62. package/types/components/ColorPicker/PickerColorList.d.ts +10 -10
  63. package/types/components/ColorPicker/PickerHeading.d.ts +5 -5
  64. package/types/components/ColorPicker/ShadeList.d.ts +8 -8
  65. package/types/components/ColorPicker/TopPicks.d.ts +9 -9
  66. package/types/components/ColorPicker/colorPickerUtils.d.ts +21 -21
  67. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +20 -21
  68. package/types/components/ColorPicker.d.ts +19 -19
  69. package/types/components/ConfirmDialog.d.ts +10 -10
  70. package/types/components/ContextMenu.d.ts +15 -15
  71. package/types/components/DarkModeToggle.d.ts +7 -7
  72. package/types/components/DefaultSidebar.d.ts +29 -30
  73. package/types/components/Dialog.d.ts +13 -13
  74. package/types/components/DialogActionButton.d.ts +10 -10
  75. package/types/components/EncryptedIcon.d.ts +2 -0
  76. package/types/components/ErrorDialog.d.ts +5 -5
  77. package/types/components/EyeDropper.d.ts +17 -18
  78. package/types/components/FilledButton.d.ts +17 -17
  79. package/types/components/FixedSideContainer.d.ts +9 -9
  80. package/types/components/Footer.d.ts +10 -0
  81. package/types/components/HandButton.d.ts +10 -10
  82. package/types/components/HelpButton.d.ts +7 -7
  83. package/types/components/HelpDialog.d.ts +4 -4
  84. package/types/components/HelpIcon.d.ts +8 -0
  85. package/types/components/HintViewer.d.ts +10 -10
  86. package/types/components/IconPicker.d.ts +13 -13
  87. package/types/components/ImageExportDialog.d.ts +13 -13
  88. package/types/components/InitializeApp.d.ts +10 -10
  89. package/types/components/Island.d.ts +10 -10
  90. package/types/components/JSONExportDialog.d.ts +15 -15
  91. package/types/components/LayerUI.d.ts +32 -32
  92. package/types/components/LibraryButton.d.ts +8 -8
  93. package/types/components/LibraryMenu.d.ts +24 -24
  94. package/types/components/LibraryMenuBrowseButton.d.ts +7 -7
  95. package/types/components/LibraryMenuControlButtons.d.ts +9 -9
  96. package/types/components/LibraryMenuHeaderContent.d.ts +17 -18
  97. package/types/components/LibraryMenuItems.d.ts +14 -14
  98. package/types/components/LibraryMenuSection.d.ts +22 -22
  99. package/types/components/LibraryUnit.d.ts +14 -15
  100. package/types/components/LoadingMessage.d.ts +5 -6
  101. package/types/components/LockButton.d.ts +10 -10
  102. package/types/components/MenuItem.d.ts +11 -0
  103. package/types/components/MenuUtils.d.ts +2 -0
  104. package/types/components/MobileMenu.d.ts +27 -27
  105. package/types/components/Modal.d.ts +13 -13
  106. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -17
  107. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -17
  108. package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -22
  109. package/types/components/PasteChartDialog.d.ts +8 -8
  110. package/types/components/PenModeButton.d.ts +12 -12
  111. package/types/components/Popover.d.ts +15 -15
  112. package/types/components/ProjectName.d.ts +11 -11
  113. package/types/components/PublishLibrary.d.ts +16 -16
  114. package/types/components/RadioGroup.d.ts +12 -12
  115. package/types/components/Section.d.ts +6 -6
  116. package/types/components/Sidebar/Sidebar.d.ts +76 -76
  117. package/types/components/Sidebar/SidebarHeader.d.ts +7 -7
  118. package/types/components/Sidebar/SidebarTab.d.ts +8 -9
  119. package/types/components/Sidebar/SidebarTabTrigger.d.ts +9 -10
  120. package/types/components/Sidebar/SidebarTabTriggers.d.ts +6 -7
  121. package/types/components/Sidebar/SidebarTabs.d.ts +6 -7
  122. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -6
  123. package/types/components/Sidebar/common.d.ts +33 -33
  124. package/types/components/SidebarLockButton.d.ts +8 -0
  125. package/types/components/SingleLibraryItem.d.ts +10 -10
  126. package/types/components/Spinner.d.ts +7 -7
  127. package/types/components/Stack.d.ts +16 -16
  128. package/types/components/Stats.d.ts +11 -11
  129. package/types/components/Switch.d.ts +9 -9
  130. package/types/components/Toast.d.ts +7 -7
  131. package/types/components/ToolButton.d.ts +47 -47
  132. package/types/components/Tooltip.d.ts +17 -17
  133. package/types/components/TopErrorBoundary.d.ts +15 -0
  134. package/types/components/Trans.d.ts +9 -9
  135. package/types/components/UserList.d.ts +8 -8
  136. package/types/components/WelcomeScreen.d.ts +8 -0
  137. package/types/components/WelcomeScreenDecor.d.ts +6 -0
  138. package/types/components/context/tunnels.d.ts +16 -16
  139. package/types/components/dropdownMenu/DropdownMenu.d.ts +67 -67
  140. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +15 -15
  141. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -11
  142. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +12 -12
  143. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +6 -6
  144. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +6 -6
  145. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +13 -13
  146. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -5
  147. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -11
  148. package/types/components/dropdownMenu/common.d.ts +6 -6
  149. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -3
  150. package/types/components/footer/Footer.d.ts +12 -12
  151. package/types/components/footer/FooterCenter.d.ts +8 -8
  152. package/types/components/hoc/withInternalFallback.d.ts +4 -4
  153. package/types/components/hoc/withUpstreamOverride.d.ts +10 -10
  154. package/types/components/icons.d.ts +154 -154
  155. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -10
  156. package/types/components/main-menu/DefaultItems.d.ts +44 -44
  157. package/types/components/main-menu/MainMenu.d.ts +61 -61
  158. package/types/components/mainMenu/DefaultItems.d.ts +44 -0
  159. package/types/components/mainMenu/MainMenu.d.ts +63 -0
  160. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +57 -58
  161. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -19
  162. package/types/components/welcome-screen/WelcomeScreen.d.ts +84 -85
  163. package/types/constants.d.ts +229 -226
  164. package/types/context/tunnels.d.ts +19 -19
  165. package/types/context/ui-appState.d.ts +4 -4
  166. package/types/data/blob.d.ts +48 -48
  167. package/types/data/encode.d.ts +53 -53
  168. package/types/data/encryption.d.ts +9 -9
  169. package/types/data/filesystem.d.ts +19 -19
  170. package/types/data/image.d.ts +15 -15
  171. package/types/data/index.d.ts +13 -13
  172. package/types/data/json.d.ts +16 -16
  173. package/types/data/library.d.ts +54 -54
  174. package/types/data/resave.d.ts +5 -5
  175. package/types/data/restore.d.ts +21 -21
  176. package/types/data/types.d.ts +45 -45
  177. package/types/data/url.d.ts +7 -7
  178. package/types/distribute.d.ts +6 -6
  179. package/types/element/Hyperlink.d.ts +181 -182
  180. package/types/element/binding.d.ts +33 -33
  181. package/types/element/bounds.d.ts +53 -53
  182. package/types/element/collision.d.ts +21 -21
  183. package/types/element/dragElements.d.ts +6 -6
  184. package/types/element/embeddable.d.ts +175 -176
  185. package/types/element/iframe.d.ts +167 -0
  186. package/types/element/image.d.ts +32 -32
  187. package/types/element/index.d.ts +21 -21
  188. package/types/element/linearElementEditor.d.ts +292 -293
  189. package/types/element/mutateElement.d.ts +12 -12
  190. package/types/element/newElement.d.ts +95 -95
  191. package/types/element/resizeElements.d.ts +9 -9
  192. package/types/element/resizeTest.d.ts +13 -13
  193. package/types/element/showSelectedShapeActions.d.ts +3 -3
  194. package/types/element/sizeHelpers.d.ts +21 -21
  195. package/types/element/sortElements.d.ts +2 -2
  196. package/types/element/textElement.d.ts +76 -80
  197. package/types/element/textWysiwyg.d.ts +21 -21
  198. package/types/element/transformHandles.d.ts +35 -35
  199. package/types/element/typeChecks.d.ts +29 -29
  200. package/types/element/types.d.ts +166 -166
  201. package/types/errors.d.ts +8 -8
  202. package/types/excalidraw-app/CustomStats.d.ts +9 -0
  203. package/types/excalidraw-app/app_constants.d.ts +32 -0
  204. package/types/excalidraw-app/collab/Collab.d.ts +163 -0
  205. package/types/excalidraw-app/collab/Portal.d.ts +28 -0
  206. package/types/excalidraw-app/collab/RoomDialog.d.ts +13 -0
  207. package/types/excalidraw-app/collab/reconciliation.d.ts +10 -0
  208. package/types/excalidraw-app/components/ExportToExcalidrawPlus.d.ts +9 -0
  209. package/types/excalidraw-app/components/LanguageList.d.ts +4 -0
  210. package/types/excalidraw-app/components/icons.d.ts +1 -0
  211. package/types/excalidraw-app/data/FileManager.d.ts +66 -0
  212. package/types/excalidraw-app/data/LocalData.d.ts +32 -0
  213. package/types/excalidraw-app/data/Locker.d.ts +8 -0
  214. package/types/excalidraw-app/data/firebase.d.ts +25 -0
  215. package/types/excalidraw-app/data/index.d.ts +190 -0
  216. package/types/excalidraw-app/data/localStorage.d.ts +116 -0
  217. package/types/excalidraw-app/data/tabSync.d.ts +9 -0
  218. package/types/excalidraw-app/index.d.ts +26 -0
  219. package/types/frame.d.ts +40 -40
  220. package/types/ga.d.ts +63 -63
  221. package/types/gadirections.d.ts +8 -8
  222. package/types/galines.d.ts +22 -22
  223. package/types/gapoints.d.ts +7 -7
  224. package/types/gatransforms.d.ts +10 -10
  225. package/types/gesture.d.ts +6 -6
  226. package/types/groups.d.ts +31 -31
  227. package/types/history.d.ts +52 -52
  228. package/types/hooks/useCallbackRefState.d.ts +1 -1
  229. package/types/hooks/useCreatePortalContainer.d.ts +5 -5
  230. package/types/hooks/useLibraryItemSvg.d.ts +11 -11
  231. package/types/hooks/useOutsideClick.d.ts +19 -20
  232. package/types/hooks/useScrollPosition.d.ts +1 -2
  233. package/types/hooks/useTransition.d.ts +2 -2
  234. package/types/i18n.d.ts +24 -24
  235. package/types/jotai.d.ts +34 -34
  236. package/types/keys.d.ts +80 -80
  237. package/types/math.d.ts +30 -30
  238. package/types/packages/common.webpack.dev.config.d.ts +72 -72
  239. package/types/packages/common.webpack.prod.config.d.ts +84 -84
  240. package/types/packages/excalidraw/dist/excalidraw.development.d.ts +2 -4
  241. package/types/packages/excalidraw/dist/excalidraw.production.min.d.ts +1 -1
  242. package/types/packages/excalidraw/entry.d.ts +1 -1
  243. package/types/packages/excalidraw/env.d.ts +1 -1
  244. package/types/packages/excalidraw/example/App.d.ts +14 -14
  245. package/types/packages/excalidraw/example/CustomFooter.d.ts +5 -5
  246. package/types/packages/excalidraw/example/MobileFooter.d.ts +5 -5
  247. package/types/packages/excalidraw/example/index.d.ts +1 -1
  248. package/types/packages/excalidraw/example/initialData.d.ts +178 -178
  249. package/types/packages/excalidraw/example/sidebar/ExampleSidebar.d.ts +5 -5
  250. package/types/packages/excalidraw/example/sidebar/Sidebar.d.ts +5 -0
  251. package/types/packages/excalidraw/index.d.ts +38 -37
  252. package/types/packages/excalidraw/main.d.ts +2 -2
  253. package/types/packages/excalidraw/publicPath.d.ts +1 -1
  254. package/types/packages/excalidraw/webpack.dev-server.config.d.ts +19 -19
  255. package/types/packages/excalidraw/webpack.dev.config.d.ts +80 -69
  256. package/types/packages/excalidraw/webpack.prod.config.d.ts +95 -78
  257. package/types/packages/utils.d.ts +43 -43
  258. package/types/points.d.ts +7 -7
  259. package/types/polyfill.d.ts +2 -2
  260. package/types/random.d.ts +4 -4
  261. package/types/renderer/easingFunctions.d.ts +6 -6
  262. package/types/renderer/renderElement.d.ts +37 -37
  263. package/types/renderer/renderScene.d.ts +51 -51
  264. package/types/renderer/roundRect.d.ts +11 -11
  265. package/types/scene/Fonts.d.ts +21 -21
  266. package/types/scene/Scene.d.ts +60 -60
  267. package/types/scene/comparisons.d.ts +10 -10
  268. package/types/scene/export.d.ts +25 -25
  269. package/types/scene/index.d.ts +5 -5
  270. package/types/scene/scroll.d.ts +17 -17
  271. package/types/scene/scrollbars.d.ts +16 -16
  272. package/types/scene/selection.d.ts +31 -31
  273. package/types/scene/types.d.ts +59 -59
  274. package/types/scene/zoom.d.ts +13 -13
  275. package/types/shapes.d.ts +62 -62
  276. package/types/types.d.ts +501 -501
  277. package/types/utility-types.d.ts +24 -25
  278. package/types/utils.d.ts +192 -192
  279. package/types/zindex.d.ts +6 -6
  280. package/types/.DS_Store +0 -0
@@ -1,11 +1,11 @@
1
- /**
2
- * https://stackoverflow.com/a/3368118
3
- * Draws a rounded rectangle using the current state of the canvas.
4
- * @param {CanvasRenderingContext2D} context
5
- * @param {Number} x The top left x coordinate
6
- * @param {Number} y The top left y coordinate
7
- * @param {Number} width The width of the rectangle
8
- * @param {Number} height The height of the rectangle
9
- * @param {Number} radius The corner radius
10
- */
11
- export declare const roundRect: (context: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, radius: number, strokeColor?: string) => void;
1
+ /**
2
+ * https://stackoverflow.com/a/3368118
3
+ * Draws a rounded rectangle using the current state of the canvas.
4
+ * @param {CanvasRenderingContext2D} context
5
+ * @param {Number} x The top left x coordinate
6
+ * @param {Number} y The top left y coordinate
7
+ * @param {Number} width The width of the rectangle
8
+ * @param {Number} height The height of the rectangle
9
+ * @param {Number} radius The corner radius
10
+ */
11
+ export declare const roundRect: (context: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, radius: number, strokeColor?: string) => void;
@@ -1,21 +1,21 @@
1
- import { ExcalidrawElement } from "../element/types";
2
- import type Scene from "./Scene";
3
- export declare class Fonts {
4
- private scene;
5
- private onSceneUpdated;
6
- constructor({ scene, onSceneUpdated, }: {
7
- scene: Scene;
8
- onSceneUpdated: () => void;
9
- });
10
- private static loadedFontFaces;
11
- /**
12
- * if we load a (new) font, it's likely that text elements using it have
13
- * already been rendered using a fallback font. Thus, we want invalidate
14
- * their shapes and rerender. See #637.
15
- *
16
- * Invalidates text elements and rerenders scene, provided that at least one
17
- * of the supplied fontFaces has not already been processed.
18
- */
19
- onFontsLoaded: (fontFaces: readonly FontFace[]) => false | undefined;
20
- loadFontsForElements: (elements: readonly ExcalidrawElement[]) => Promise<void>;
21
- }
1
+ import { ExcalidrawElement } from "../element/types";
2
+ import type Scene from "./Scene";
3
+ export declare class Fonts {
4
+ private scene;
5
+ private onSceneUpdated;
6
+ constructor({ scene, onSceneUpdated, }: {
7
+ scene: Scene;
8
+ onSceneUpdated: () => void;
9
+ });
10
+ private static loadedFontFaces;
11
+ /**
12
+ * if we load a (new) font, it's likely that text elements using it have
13
+ * already been rendered using a fallback font. Thus, we want invalidate
14
+ * their shapes and rerender. See #637.
15
+ *
16
+ * Invalidates text elements and rerenders scene, provided that at least one
17
+ * of the supplied fontFaces has not already been processed.
18
+ */
19
+ onFontsLoaded: (fontFaces: readonly FontFace[]) => false | undefined;
20
+ loadFontsForElements: (elements: readonly ExcalidrawElement[]) => Promise<void>;
21
+ }
@@ -1,60 +1,60 @@
1
- import { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameElement } from "../element/types";
2
- import { LinearElementEditor } from "../element/linearElementEditor";
3
- import { AppState } from "../types";
4
- type ElementIdKey = InstanceType<typeof LinearElementEditor>["elementId"];
5
- type ElementKey = ExcalidrawElement | ElementIdKey;
6
- type SceneStateCallback = () => void;
7
- type SceneStateCallbackRemover = () => void;
8
- export type ExcalidrawElementsIncludingDeleted = readonly ExcalidrawElement[];
9
- declare class Scene {
10
- private static sceneMapByElement;
11
- private static sceneMapById;
12
- static mapElementToScene(elementKey: ElementKey, scene: Scene): void;
13
- static getScene(elementKey: ElementKey): Scene | null;
14
- private callbacks;
15
- private nonDeletedElements;
16
- private elements;
17
- private nonDeletedFrames;
18
- private frames;
19
- private elementsMap;
20
- private selectedElementsCache;
21
- getElementsIncludingDeleted(): readonly ExcalidrawElement[];
22
- getNonDeletedElements(): readonly NonDeletedExcalidrawElement[];
23
- getFramesIncludingDeleted(): readonly ExcalidrawFrameElement[];
24
- getSelectedElements(opts: {
25
- selectedElementIds: AppState["selectedElementIds"];
26
- /**
27
- * for specific cases where you need to use elements not from current
28
- * scene state. This in effect will likely result in cache-miss, and
29
- * the cache won't be updated in this case.
30
- */
31
- elements?: readonly ExcalidrawElement[];
32
- includeBoundTextElement?: boolean;
33
- includeElementsInFrames?: boolean;
34
- }): NonDeleted<ExcalidrawElement>[];
35
- getNonDeletedFrames(): readonly NonDeleted<ExcalidrawFrameElement>[];
36
- getElement<T extends ExcalidrawElement>(id: T["id"]): T | null;
37
- getNonDeletedElement(id: ExcalidrawElement["id"]): NonDeleted<ExcalidrawElement> | null;
38
- /**
39
- * A utility method to help with updating all scene elements, with the added
40
- * performance optimization of not renewing the array if no change is made.
41
- *
42
- * Maps all current excalidraw elements, invoking the callback for each
43
- * element. The callback should either return a new mapped element, or the
44
- * original element if no changes are made. If no changes are made to any
45
- * element, this results in a no-op. Otherwise, the newly mapped elements
46
- * are set as the next scene's elements.
47
- *
48
- * @returns whether a change was made
49
- */
50
- mapElements(iteratee: (element: ExcalidrawElement) => ExcalidrawElement): boolean;
51
- replaceAllElements(nextElements: readonly ExcalidrawElement[]): void;
52
- informMutation(): void;
53
- addCallback(cb: SceneStateCallback): SceneStateCallbackRemover;
54
- destroy(): void;
55
- insertElementAtIndex(element: ExcalidrawElement, index: number): void;
56
- insertElementsAtIndex(elements: ExcalidrawElement[], index: number): void;
57
- addNewElement: (element: ExcalidrawElement) => void;
58
- getElementIndex(elementId: string): number;
59
- }
60
- export default Scene;
1
+ import { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameElement } from "../element/types";
2
+ import { LinearElementEditor } from "../element/linearElementEditor";
3
+ import { AppState } from "../types";
4
+ type ElementIdKey = InstanceType<typeof LinearElementEditor>["elementId"];
5
+ type ElementKey = ExcalidrawElement | ElementIdKey;
6
+ type SceneStateCallback = () => void;
7
+ type SceneStateCallbackRemover = () => void;
8
+ export type ExcalidrawElementsIncludingDeleted = readonly ExcalidrawElement[];
9
+ declare class Scene {
10
+ private static sceneMapByElement;
11
+ private static sceneMapById;
12
+ static mapElementToScene(elementKey: ElementKey, scene: Scene): void;
13
+ static getScene(elementKey: ElementKey): Scene | null;
14
+ private callbacks;
15
+ private nonDeletedElements;
16
+ private elements;
17
+ private nonDeletedFrames;
18
+ private frames;
19
+ private elementsMap;
20
+ private selectedElementsCache;
21
+ getElementsIncludingDeleted(): readonly ExcalidrawElement[];
22
+ getNonDeletedElements(): readonly NonDeletedExcalidrawElement[];
23
+ getFramesIncludingDeleted(): readonly ExcalidrawFrameElement[];
24
+ getSelectedElements(opts: {
25
+ selectedElementIds: AppState["selectedElementIds"];
26
+ /**
27
+ * for specific cases where you need to use elements not from current
28
+ * scene state. This in effect will likely result in cache-miss, and
29
+ * the cache won't be updated in this case.
30
+ */
31
+ elements?: readonly ExcalidrawElement[];
32
+ includeBoundTextElement?: boolean;
33
+ includeElementsInFrames?: boolean;
34
+ }): NonDeleted<ExcalidrawElement>[];
35
+ getNonDeletedFrames(): readonly NonDeleted<ExcalidrawFrameElement>[];
36
+ getElement<T extends ExcalidrawElement>(id: T["id"]): T | null;
37
+ getNonDeletedElement(id: ExcalidrawElement["id"]): NonDeleted<ExcalidrawElement> | null;
38
+ /**
39
+ * A utility method to help with updating all scene elements, with the added
40
+ * performance optimization of not renewing the array if no change is made.
41
+ *
42
+ * Maps all current excalidraw elements, invoking the callback for each
43
+ * element. The callback should either return a new mapped element, or the
44
+ * original element if no changes are made. If no changes are made to any
45
+ * element, this results in a no-op. Otherwise, the newly mapped elements
46
+ * are set as the next scene's elements.
47
+ *
48
+ * @returns whether a change was made
49
+ */
50
+ mapElements(iteratee: (element: ExcalidrawElement) => ExcalidrawElement): boolean;
51
+ replaceAllElements(nextElements: readonly ExcalidrawElement[]): void;
52
+ informMutation(): void;
53
+ addCallback(cb: SceneStateCallback): SceneStateCallbackRemover;
54
+ destroy(): void;
55
+ insertElementAtIndex(element: ExcalidrawElement, index: number): void;
56
+ insertElementsAtIndex(elements: ExcalidrawElement[], index: number): void;
57
+ addNewElement: (element: ExcalidrawElement) => void;
58
+ getElementIndex(elementId: string): number;
59
+ }
60
+ export default Scene;
@@ -1,10 +1,10 @@
1
- import { NonDeletedExcalidrawElement } from "../element/types";
2
- export declare const hasBackground: (type: string) => boolean;
3
- export declare const hasStrokeColor: (type: string) => boolean;
4
- export declare const hasStrokeWidth: (type: string) => boolean;
5
- export declare const hasStrokeStyle: (type: string) => boolean;
6
- export declare const canChangeRoundness: (type: string) => boolean;
7
- export declare const hasText: (type: string) => boolean;
8
- export declare const canHaveArrowheads: (type: string) => boolean;
9
- export declare const getElementAtPosition: (elements: readonly NonDeletedExcalidrawElement[], isAtPositionFn: (element: NonDeletedExcalidrawElement) => boolean) => NonDeletedExcalidrawElement | null;
10
- export declare const getElementsAtPosition: (elements: readonly NonDeletedExcalidrawElement[], isAtPositionFn: (element: NonDeletedExcalidrawElement) => boolean) => NonDeletedExcalidrawElement[];
1
+ import { NonDeletedExcalidrawElement } from "../element/types";
2
+ export declare const hasBackground: (type: string) => boolean;
3
+ export declare const hasStrokeColor: (type: string) => boolean;
4
+ export declare const hasStrokeWidth: (type: string) => boolean;
5
+ export declare const hasStrokeStyle: (type: string) => boolean;
6
+ export declare const canChangeRoundness: (type: string) => boolean;
7
+ export declare const hasText: (type: string) => boolean;
8
+ export declare const canHaveArrowheads: (type: string) => boolean;
9
+ export declare const getElementAtPosition: (elements: readonly NonDeletedExcalidrawElement[], isAtPositionFn: (element: NonDeletedExcalidrawElement) => boolean) => NonDeletedExcalidrawElement | null;
10
+ export declare const getElementsAtPosition: (elements: readonly NonDeletedExcalidrawElement[], isAtPositionFn: (element: NonDeletedExcalidrawElement) => boolean) => NonDeletedExcalidrawElement[];
@@ -1,25 +1,25 @@
1
- import { NonDeletedExcalidrawElement } from "../element/types";
2
- import { AppState, BinaryFiles } from "../types";
3
- import { serializeAsJSON } from "../data/json";
4
- export declare const SVG_EXPORT_TAG = "<!-- svg-source:excalidraw -->";
5
- export declare const exportToCanvas: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles, { exportBackground, exportPadding, viewBackgroundColor, }: {
6
- exportBackground: boolean;
7
- exportPadding?: number | undefined;
8
- viewBackgroundColor: string;
9
- }, createCanvas?: (width: number, height: number) => {
10
- canvas: HTMLCanvasElement;
11
- scale: number;
12
- }) => Promise<HTMLCanvasElement>;
13
- export declare const exportToSvg: (elements: readonly NonDeletedExcalidrawElement[], appState: {
14
- exportBackground: boolean;
15
- exportPadding?: number;
16
- exportScale?: number;
17
- viewBackgroundColor: string;
18
- exportWithDarkMode?: boolean;
19
- exportEmbedScene?: boolean;
20
- renderFrame?: boolean;
21
- }, files: BinaryFiles | null, opts?: {
22
- serializeAsJSON?: () => string;
23
- renderEmbeddables?: boolean;
24
- }) => Promise<SVGSVGElement>;
25
- export declare const getExportSize: (elements: readonly NonDeletedExcalidrawElement[], exportPadding: number, scale: number) => [number, number];
1
+ import { NonDeletedExcalidrawElement } from "../element/types";
2
+ import { AppState, BinaryFiles } from "../types";
3
+ import { serializeAsJSON } from "../data/json";
4
+ export declare const SVG_EXPORT_TAG = "<!-- svg-source:excalidraw -->";
5
+ export declare const exportToCanvas: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles, { exportBackground, exportPadding, viewBackgroundColor, }: {
6
+ exportBackground: boolean;
7
+ exportPadding?: number | undefined;
8
+ viewBackgroundColor: string;
9
+ }, createCanvas?: (width: number, height: number) => {
10
+ canvas: HTMLCanvasElement;
11
+ scale: number;
12
+ }) => Promise<HTMLCanvasElement>;
13
+ export declare const exportToSvg: (elements: readonly NonDeletedExcalidrawElement[], appState: {
14
+ exportBackground: boolean;
15
+ exportPadding?: number;
16
+ exportScale?: number;
17
+ viewBackgroundColor: string;
18
+ exportWithDarkMode?: boolean;
19
+ exportEmbedScene?: boolean;
20
+ renderFrame?: boolean;
21
+ }, files: BinaryFiles | null, opts?: {
22
+ serializeAsJSON?: () => string;
23
+ renderEmbeddables?: boolean;
24
+ }) => Promise<SVGSVGElement>;
25
+ export declare const getExportSize: (elements: readonly NonDeletedExcalidrawElement[], exportPadding: number, scale: number) => [number, number];
@@ -1,5 +1,5 @@
1
- export { isOverScrollBars } from "./scrollbars";
2
- export { isSomeElementSelected, getElementsWithinSelection, getCommonAttributeOfSelectedElements, getSelectedElements, getTargetElements, } from "./selection";
3
- export { calculateScrollCenter } from "./scroll";
4
- export { hasBackground, hasStrokeWidth, hasStrokeStyle, canHaveArrowheads, canChangeRoundness, getElementAtPosition, hasText, getElementsAtPosition, } from "./comparisons";
5
- export { getNormalizedZoom } from "./zoom";
1
+ export { isOverScrollBars } from "./scrollbars";
2
+ export { isSomeElementSelected, getElementsWithinSelection, getCommonAttributeOfSelectedElements, getSelectedElements, getTargetElements, } from "./selection";
3
+ export { calculateScrollCenter } from "./scroll";
4
+ export { hasBackground, hasStrokeWidth, hasStrokeStyle, canHaveArrowheads, canChangeRoundness, getElementAtPosition, hasText, getElementsAtPosition, } from "./comparisons";
5
+ export { getNormalizedZoom } from "./zoom";
@@ -1,17 +1,17 @@
1
- import { AppState, PointerCoords, Zoom } from "../types";
2
- import { ExcalidrawElement } from "../element/types";
3
- export declare const centerScrollOn: ({ scenePoint, viewportDimensions, zoom, }: {
4
- scenePoint: PointerCoords;
5
- viewportDimensions: {
6
- height: number;
7
- width: number;
8
- };
9
- zoom: Zoom;
10
- }) => {
11
- scrollX: number;
12
- scrollY: number;
13
- };
14
- export declare const calculateScrollCenter: (elements: readonly ExcalidrawElement[], appState: AppState, canvas: HTMLCanvasElement | null) => {
15
- scrollX: number;
16
- scrollY: number;
17
- };
1
+ import { AppState, PointerCoords, Zoom } from "../types";
2
+ import { ExcalidrawElement } from "../element/types";
3
+ export declare const centerScrollOn: ({ scenePoint, viewportDimensions, zoom, }: {
4
+ scenePoint: PointerCoords;
5
+ viewportDimensions: {
6
+ height: number;
7
+ width: number;
8
+ };
9
+ zoom: Zoom;
10
+ }) => {
11
+ scrollX: number;
12
+ scrollY: number;
13
+ };
14
+ export declare const calculateScrollCenter: (elements: readonly ExcalidrawElement[], appState: AppState, canvas: HTMLCanvasElement | null) => {
15
+ scrollX: number;
16
+ scrollY: number;
17
+ };
@@ -1,16 +1,16 @@
1
- import { ExcalidrawElement } from "../element/types";
2
- import { Zoom } from "../types";
3
- import { ScrollBars } from "./types";
4
- export declare const SCROLLBAR_MARGIN = 4;
5
- export declare const SCROLLBAR_WIDTH = 6;
6
- export declare const SCROLLBAR_COLOR = "rgba(128,128,128,0.3)";
7
- export declare const getScrollBars: (elements: readonly ExcalidrawElement[], viewportWidth: number, viewportHeight: number, { scrollX, scrollY, zoom, }: {
8
- scrollX: number;
9
- scrollY: number;
10
- zoom: Zoom;
11
- }) => ScrollBars;
12
- export declare const isOverScrollBars: (scrollBars: ScrollBars, x: number, y: number) => {
13
- isOverEither: boolean;
14
- isOverHorizontal: boolean;
15
- isOverVertical: boolean;
16
- };
1
+ import { ExcalidrawElement } from "../element/types";
2
+ import { Zoom } from "../types";
3
+ import { ScrollBars } from "./types";
4
+ export declare const SCROLLBAR_MARGIN = 4;
5
+ export declare const SCROLLBAR_WIDTH = 6;
6
+ export declare const SCROLLBAR_COLOR = "rgba(128,128,128,0.3)";
7
+ export declare const getScrollBars: (elements: readonly ExcalidrawElement[], viewportWidth: number, viewportHeight: number, { scrollX, scrollY, zoom, }: {
8
+ scrollX: number;
9
+ scrollY: number;
10
+ zoom: Zoom;
11
+ }) => ScrollBars;
12
+ export declare const isOverScrollBars: (scrollBars: ScrollBars, x: number, y: number) => {
13
+ isOverEither: boolean;
14
+ isOverHorizontal: boolean;
15
+ isOverVertical: boolean;
16
+ };
@@ -1,31 +1,31 @@
1
- import { ExcalidrawElement, NonDeletedExcalidrawElement } from "../element/types";
2
- import { AppState } from "../types";
3
- /**
4
- * Frames and their containing elements are not to be selected at the same time.
5
- * Given an array of selected elements, if there are frames and their containing elements
6
- * we only keep the frames.
7
- * @param selectedElements
8
- */
9
- export declare const excludeElementsInFramesFromSelection: <T extends ExcalidrawElement>(selectedElements: readonly T[]) => T[];
10
- export declare const getElementsWithinSelection: (elements: readonly NonDeletedExcalidrawElement[], selection: NonDeletedExcalidrawElement, excludeElementsInFrames?: boolean) => NonDeletedExcalidrawElement[];
11
- export declare const isSomeElementSelected: {
12
- (elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds">): boolean;
13
- clearCache(): void;
14
- };
15
- /**
16
- * Returns common attribute (picked by `getAttribute` callback) of selected
17
- * elements. If elements don't share the same value, returns `null`.
18
- */
19
- export declare const getCommonAttributeOfSelectedElements: <T>(elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds">, getAttribute: (element: ExcalidrawElement) => T) => T | null;
20
- export declare const getSelectedElements: (elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds">, opts?: {
21
- includeBoundTextElement?: boolean;
22
- includeElementsInFrames?: boolean;
23
- }) => ExcalidrawElement[];
24
- export declare const getTargetElements: (elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds" | "editingElement">) => ExcalidrawElement[];
25
- /**
26
- * returns prevState's selectedElementids if no change from previous, so as to
27
- * retain reference identity for memoization
28
- */
29
- export declare const makeNextSelectedElementIds: (nextSelectedElementIds: AppState["selectedElementIds"], prevState: Pick<AppState, "selectedElementIds">) => Readonly<{
30
- [id: string]: true;
31
- }>;
1
+ import { ExcalidrawElement, NonDeletedExcalidrawElement } from "../element/types";
2
+ import { AppState } from "../types";
3
+ /**
4
+ * Frames and their containing elements are not to be selected at the same time.
5
+ * Given an array of selected elements, if there are frames and their containing elements
6
+ * we only keep the frames.
7
+ * @param selectedElements
8
+ */
9
+ export declare const excludeElementsInFramesFromSelection: <T extends ExcalidrawElement>(selectedElements: readonly T[]) => T[];
10
+ export declare const getElementsWithinSelection: (elements: readonly NonDeletedExcalidrawElement[], selection: NonDeletedExcalidrawElement, excludeElementsInFrames?: boolean) => NonDeletedExcalidrawElement[];
11
+ export declare const isSomeElementSelected: {
12
+ (elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds">): boolean;
13
+ clearCache(): void;
14
+ };
15
+ /**
16
+ * Returns common attribute (picked by `getAttribute` callback) of selected
17
+ * elements. If elements don't share the same value, returns `null`.
18
+ */
19
+ export declare const getCommonAttributeOfSelectedElements: <T>(elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds">, getAttribute: (element: ExcalidrawElement) => T) => T | null;
20
+ export declare const getSelectedElements: (elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds">, opts?: {
21
+ includeBoundTextElement?: boolean;
22
+ includeElementsInFrames?: boolean;
23
+ }) => ExcalidrawElement[];
24
+ export declare const getTargetElements: (elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds" | "editingElement">) => ExcalidrawElement[];
25
+ /**
26
+ * returns prevState's selectedElementids if no change from previous, so as to
27
+ * retain reference identity for memoization
28
+ */
29
+ export declare const makeNextSelectedElementIds: (nextSelectedElementIds: AppState["selectedElementIds"], prevState: Pick<AppState, "selectedElementIds">) => Readonly<{
30
+ [id: string]: true;
31
+ }>;
@@ -1,59 +1,59 @@
1
- import { ExcalidrawTextElement } from "../element/types";
2
- import { AppClassProperties, AppState } from "../types";
3
- export type RenderConfig = {
4
- scrollX: AppState["scrollX"];
5
- scrollY: AppState["scrollY"];
6
- /** null indicates transparent bg */
7
- viewBackgroundColor: AppState["viewBackgroundColor"] | null;
8
- zoom: AppState["zoom"];
9
- shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
10
- theme: AppState["theme"];
11
- remotePointerViewportCoords: {
12
- [id: string]: {
13
- x: number;
14
- y: number;
15
- };
16
- };
17
- remotePointerButton?: {
18
- [id: string]: string | undefined;
19
- };
20
- remoteSelectedElementIds: {
21
- [elementId: string]: string[];
22
- };
23
- remotePointerUsernames: {
24
- [id: string]: string;
25
- };
26
- remotePointerUserStates: {
27
- [id: string]: string;
28
- };
29
- imageCache: AppClassProperties["imageCache"];
30
- renderScrollbars?: boolean;
31
- renderSelection?: boolean;
32
- renderGrid?: boolean;
33
- /** when exporting the behavior is slightly different (e.g. we can't use
34
- CSS filters), and we disable render optimizations for best output */
35
- isExporting: boolean;
36
- selectionColor?: string;
37
- };
38
- export type SceneScroll = {
39
- scrollX: number;
40
- scrollY: number;
41
- };
42
- export interface Scene {
43
- elements: ExcalidrawTextElement[];
44
- }
45
- export type ExportType = "png" | "clipboard" | "clipboard-svg" | "backend" | "svg";
46
- export type ScrollBars = {
47
- horizontal: {
48
- x: number;
49
- y: number;
50
- width: number;
51
- height: number;
52
- } | null;
53
- vertical: {
54
- x: number;
55
- y: number;
56
- width: number;
57
- height: number;
58
- } | null;
59
- };
1
+ import { ExcalidrawTextElement } from "../element/types";
2
+ import { AppClassProperties, AppState } from "../types";
3
+ export type RenderConfig = {
4
+ scrollX: AppState["scrollX"];
5
+ scrollY: AppState["scrollY"];
6
+ /** null indicates transparent bg */
7
+ viewBackgroundColor: AppState["viewBackgroundColor"] | null;
8
+ zoom: AppState["zoom"];
9
+ shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
10
+ theme: AppState["theme"];
11
+ remotePointerViewportCoords: {
12
+ [id: string]: {
13
+ x: number;
14
+ y: number;
15
+ };
16
+ };
17
+ remotePointerButton?: {
18
+ [id: string]: string | undefined;
19
+ };
20
+ remoteSelectedElementIds: {
21
+ [elementId: string]: string[];
22
+ };
23
+ remotePointerUsernames: {
24
+ [id: string]: string;
25
+ };
26
+ remotePointerUserStates: {
27
+ [id: string]: string;
28
+ };
29
+ imageCache: AppClassProperties["imageCache"];
30
+ renderScrollbars?: boolean;
31
+ renderSelection?: boolean;
32
+ renderGrid?: boolean;
33
+ /** when exporting the behavior is slightly different (e.g. we can't use
34
+ CSS filters), and we disable render optimizations for best output */
35
+ isExporting: boolean;
36
+ selectionColor?: string;
37
+ };
38
+ export type SceneScroll = {
39
+ scrollX: number;
40
+ scrollY: number;
41
+ };
42
+ export interface Scene {
43
+ elements: ExcalidrawTextElement[];
44
+ }
45
+ export type ExportType = "png" | "clipboard" | "clipboard-svg" | "backend" | "svg";
46
+ export type ScrollBars = {
47
+ horizontal: {
48
+ x: number;
49
+ y: number;
50
+ width: number;
51
+ height: number;
52
+ } | null;
53
+ vertical: {
54
+ x: number;
55
+ y: number;
56
+ width: number;
57
+ height: number;
58
+ } | null;
59
+ };
@@ -1,13 +1,13 @@
1
- import { AppState, NormalizedZoomValue } from "../types";
2
- export declare const getNormalizedZoom: (zoom: number) => NormalizedZoomValue;
3
- export declare const getStateForZoom: ({ viewportX, viewportY, nextZoom, }: {
4
- viewportX: number;
5
- viewportY: number;
6
- nextZoom: NormalizedZoomValue;
7
- }, appState: AppState) => {
8
- scrollX: number;
9
- scrollY: number;
10
- zoom: {
11
- value: NormalizedZoomValue;
12
- };
13
- };
1
+ import { AppState, NormalizedZoomValue } from "../types";
2
+ export declare const getNormalizedZoom: (zoom: number) => NormalizedZoomValue;
3
+ export declare const getStateForZoom: ({ viewportX, viewportY, nextZoom, }: {
4
+ viewportX: number;
5
+ viewportY: number;
6
+ nextZoom: NormalizedZoomValue;
7
+ }, appState: AppState) => {
8
+ scrollX: number;
9
+ scrollY: number;
10
+ zoom: {
11
+ value: NormalizedZoomValue;
12
+ };
13
+ };