@excalidraw/element 0.18.0-508de2f3a → 0.18.0-54a9826

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 (231) hide show
  1. package/dist/dev/index.js +4778 -2478
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +17 -17
  4. package/dist/types/common/src/bounds.d.ts +10 -0
  5. package/dist/types/common/src/colors.d.ts +59 -39
  6. package/dist/types/common/src/constants.d.ts +36 -26
  7. package/dist/types/common/src/editorInterface.d.ts +34 -0
  8. package/dist/types/common/src/font-metadata.d.ts +1 -3
  9. package/dist/types/common/src/index.d.ts +2 -0
  10. package/dist/types/common/src/keys.d.ts +1 -1
  11. package/dist/types/common/src/utility-types.d.ts +0 -1
  12. package/dist/types/common/src/utils.d.ts +49 -34
  13. package/dist/types/element/src/Scene.d.ts +3 -3
  14. package/dist/types/element/src/arrows/focus.d.ts +27 -0
  15. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  16. package/dist/types/element/src/binding.d.ts +64 -45
  17. package/dist/types/element/src/bounds.d.ts +3 -11
  18. package/dist/types/element/src/collision.d.ts +7 -2
  19. package/dist/types/element/src/comparisons.d.ts +7 -7
  20. package/dist/types/element/src/delta.d.ts +4 -5
  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/fractionalIndex.d.ts +2 -2
  25. package/dist/types/element/src/frame.d.ts +5 -1
  26. package/dist/types/element/src/heading.d.ts +2 -1
  27. package/dist/types/element/src/image.d.ts +1 -11
  28. package/dist/types/element/src/index.d.ts +4 -3
  29. package/dist/types/element/src/linearElementEditor.d.ts +18 -20
  30. package/dist/types/element/src/mutateElement.d.ts +3 -2
  31. package/dist/types/element/src/newElement.d.ts +6 -6
  32. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  33. package/dist/types/element/src/renderElement.d.ts +4 -7
  34. package/dist/types/element/src/resizeElements.d.ts +10 -10
  35. package/dist/types/element/src/resizeTest.d.ts +6 -5
  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/store.d.ts +5 -0
  39. package/dist/types/element/src/textElement.d.ts +1 -1
  40. package/dist/types/element/src/textMeasurements.d.ts +1 -3
  41. package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
  42. package/dist/types/element/src/transformHandles.d.ts +8 -27
  43. package/dist/types/element/src/typeChecks.d.ts +4 -7
  44. package/dist/types/element/src/types.d.ts +7 -11
  45. package/dist/types/element/src/utils.d.ts +5 -2
  46. package/dist/types/element/src/visualdebug.d.ts +59 -0
  47. package/dist/types/element/src/zindex.d.ts +7 -1
  48. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +93 -136
  49. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
  50. package/dist/types/excalidraw/actions/actionBoundText.d.ts +67 -96
  51. package/dist/types/excalidraw/actions/actionCanvas.d.ts +402 -758
  52. package/dist/types/excalidraw/actions/actionClipboard.d.ts +86 -856
  53. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +32 -47
  54. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +112 -159
  55. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  56. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -3
  57. package/dist/types/excalidraw/actions/actionElementLink.d.ts +28 -45
  58. package/dist/types/excalidraw/actions/actionElementLock.d.ts +66 -95
  59. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +33 -48
  60. package/dist/types/excalidraw/actions/actionExport.d.ts +144 -1104
  61. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -394
  62. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
  63. package/dist/types/excalidraw/actions/actionFrame.d.ts +227 -322
  64. package/dist/types/excalidraw/actions/actionGroup.d.ts +70 -107
  65. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +142 -195
  66. package/dist/types/excalidraw/actions/actionLink.d.ts +30 -45
  67. package/dist/types/excalidraw/actions/actionMenu.d.ts +27 -410
  68. package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -359
  69. package/dist/types/excalidraw/actions/actionProperties.d.ts +129 -2488
  70. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +35 -54
  71. package/dist/types/excalidraw/actions/actionStyles.d.ts +32 -47
  72. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
  73. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +32 -47
  74. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +32 -47
  75. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +25 -42
  76. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  77. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +32 -47
  78. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +32 -47
  79. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +33 -48
  80. package/dist/types/excalidraw/actions/actionZindex.d.ts +2 -3
  81. package/dist/types/excalidraw/actions/index.d.ts +2 -2
  82. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  83. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  84. package/dist/types/excalidraw/appState.d.ts +12 -7
  85. package/dist/types/excalidraw/clipboard.d.ts +58 -17
  86. package/dist/types/excalidraw/components/Actions.d.ts +22 -5
  87. package/dist/types/excalidraw/components/App.d.ts +74 -67
  88. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  89. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  90. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
  91. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
  92. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
  93. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
  94. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
  95. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  96. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
  97. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -3
  98. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  99. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  100. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  101. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  102. package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
  103. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  104. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +1 -2
  105. package/dist/types/excalidraw/components/EyeDropper.d.ts +0 -1
  106. package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
  107. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  108. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
  109. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  110. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  111. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  112. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  113. package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
  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/LibraryMenuSection.d.ts +1 -1
  117. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
  118. package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
  119. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
  120. package/dist/types/excalidraw/components/MobileToolBar.d.ts +10 -0
  121. package/dist/types/excalidraw/components/Modal.d.ts +0 -1
  122. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
  123. package/dist/types/excalidraw/components/Popover.d.ts +2 -1
  124. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -0
  125. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  126. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  127. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  128. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +15 -21
  129. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  130. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  131. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  132. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  133. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  134. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  135. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  136. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  137. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
  138. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  139. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  140. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  141. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
  142. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
  143. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
  144. package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
  145. package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
  146. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
  147. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  148. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
  149. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +2 -2
  150. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  151. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  152. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  153. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  154. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +2 -3
  155. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  156. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  157. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
  158. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  159. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  160. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  161. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -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/mermaidValidation.d.ts +1 -0
  167. package/dist/types/excalidraw/components/TextField.d.ts +1 -0
  168. package/dist/types/excalidraw/components/Toast.d.ts +3 -3
  169. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  170. package/dist/types/excalidraw/components/Trans.d.ts +2 -2
  171. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +6 -3
  172. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +32 -33
  173. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +6 -5
  174. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  175. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +12 -19
  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/DropdownMenuTrigger.d.ts +3 -4
  181. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +1 -1
  182. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  183. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  184. package/dist/types/excalidraw/components/icons.d.ts +26 -12
  185. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +4 -3
  186. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +2 -2
  187. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +26 -32
  188. package/dist/types/excalidraw/components/shapes.d.ts +129 -1
  189. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +6 -6
  190. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +15 -16
  191. package/dist/types/excalidraw/data/blob.d.ts +324 -10
  192. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  193. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  194. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  195. package/dist/types/excalidraw/data/index.d.ts +3 -3
  196. package/dist/types/excalidraw/data/json.d.ts +159 -2
  197. package/dist/types/excalidraw/data/library.d.ts +24 -9
  198. package/dist/types/excalidraw/data/restore.d.ts +25 -10
  199. package/dist/types/excalidraw/data/types.d.ts +4 -1
  200. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  201. package/dist/types/excalidraw/errors.d.ts +14 -0
  202. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  203. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
  204. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  205. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  206. package/dist/types/excalidraw/i18n.d.ts +2 -2
  207. package/dist/types/excalidraw/index.d.ts +7 -7
  208. package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
  209. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
  210. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
  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 +22 -5
  215. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  216. package/dist/types/excalidraw/snapping.d.ts +5 -5
  217. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  218. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  219. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  220. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  221. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  222. package/dist/types/excalidraw/types.d.ts +32 -22
  223. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -2
  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 +4 -3
  227. package/dist/types/utils/src/bbox.d.ts +1 -1
  228. package/dist/types/utils/src/export.d.ts +5 -5
  229. package/dist/types/utils/src/shape.d.ts +6 -6
  230. package/dist/types/utils/src/withinBounds.d.ts +2 -2
  231. package/package.json +9 -3
@@ -1,8 +1,7 @@
1
- import type { IMAGE_MIME_TYPES, UserIdleState, throttleRAF, MIME_TYPES } from "@excalidraw/common";
2
- import type { ApplyToOptions, SuggestedBinding } from "@excalidraw/element";
1
+ import type { IMAGE_MIME_TYPES, UserIdleState, throttleRAF, MIME_TYPES, EditorInterface } from "@excalidraw/common";
3
2
  import type { LinearElementEditor } from "@excalidraw/element";
4
3
  import type { MaybeTransformHandleType } from "@excalidraw/element";
5
- import type { PointerType, ExcalidrawLinearElement, NonDeletedExcalidrawElement, NonDeleted, TextAlign, ExcalidrawElement, GroupId, ExcalidrawBindableElement, Arrowhead, ChartType, FontFamilyValues, FileId, Theme, StrokeRoundness, ExcalidrawEmbeddableElement, ExcalidrawMagicFrameElement, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeLikeElement, OrderedExcalidrawElement, ExcalidrawNonSelectionElement } from "@excalidraw/element/types";
4
+ import type { PointerType, ExcalidrawLinearElement, NonDeletedExcalidrawElement, NonDeleted, TextAlign, ExcalidrawElement, GroupId, ExcalidrawBindableElement, Arrowhead, ChartType, FontFamilyValues, FileId, Theme, StrokeRoundness, ExcalidrawEmbeddableElement, ExcalidrawMagicFrameElement, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeLikeElement, OrderedExcalidrawElement, ExcalidrawNonSelectionElement, BindMode } from "@excalidraw/element/types";
6
5
  import type { Merge, MaybePromise, ValueOf, MakeBrand } from "@excalidraw/common/utility-types";
7
6
  import type { CaptureUpdateActionType, DurableIncrement, EphemeralIncrement } from "@excalidraw/element";
8
7
  import type { Action } from "./actions/types";
@@ -18,6 +17,7 @@ import type { Language } from "./i18n";
18
17
  import type { isOverScrollBars } from "./scene/scrollbars";
19
18
  import type React from "react";
20
19
  import type { JSX } from "react";
20
+ export type { App };
21
21
  export type SocketId = string & {
22
22
  _brand: "SocketId";
23
23
  };
@@ -125,6 +125,7 @@ export type StaticCanvasAppState = Readonly<_CommonCanvasAppState & {
125
125
  frameRendering: AppState["frameRendering"];
126
126
  currentHoveredFontFamily: AppState["currentHoveredFontFamily"];
127
127
  hoveredElementIds: AppState["hoveredElementIds"];
128
+ suggestedBinding: AppState["suggestedBinding"];
128
129
  croppingElementId: AppState["croppingElementId"];
129
130
  }>;
130
131
  export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
@@ -133,8 +134,9 @@ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
133
134
  selectedGroupIds: AppState["selectedGroupIds"];
134
135
  selectedLinearElement: AppState["selectedLinearElement"];
135
136
  multiElement: AppState["multiElement"];
137
+ newElement: AppState["newElement"];
136
138
  isBindingEnabled: AppState["isBindingEnabled"];
137
- suggestedBindings: AppState["suggestedBindings"];
139
+ suggestedBinding: AppState["suggestedBinding"];
138
140
  isRotating: AppState["isRotating"];
139
141
  elementsToHighlight: AppState["elementsToHighlight"];
140
142
  collaborators: AppState["collaborators"];
@@ -145,6 +147,10 @@ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
145
147
  croppingElementId: AppState["croppingElementId"];
146
148
  searchMatches: AppState["searchMatches"];
147
149
  activeLockedId: AppState["activeLockedId"];
150
+ hoveredElementIds: AppState["hoveredElementIds"];
151
+ frameRendering: AppState["frameRendering"];
152
+ shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
153
+ exportScale: AppState["exportScale"];
148
154
  }>;
149
155
  export type ObservedAppState = ObservedStandaloneAppState & ObservedElementsAppState;
150
156
  export type ObservedStandaloneAppState = {
@@ -198,7 +204,7 @@ export interface AppState {
198
204
  selectionElement: NonDeletedExcalidrawElement | null;
199
205
  isBindingEnabled: boolean;
200
206
  startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
201
- suggestedBindings: SuggestedBinding[];
207
+ suggestedBinding: NonDeleted<ExcalidrawBindableElement> | null;
202
208
  frameToHighlight: NonDeleted<ExcalidrawFrameLikeElement> | null;
203
209
  frameRendering: {
204
210
  enabled: boolean;
@@ -221,6 +227,10 @@ export interface AppState {
221
227
  locked: boolean;
222
228
  fromSelection: boolean;
223
229
  } & ActiveTool;
230
+ preferredSelectionTool: {
231
+ type: "selection" | "lasso";
232
+ initialized: boolean;
233
+ };
224
234
  penMode: boolean;
225
235
  penDetected: boolean;
226
236
  exportBackground: boolean;
@@ -251,8 +261,8 @@ export interface AppState {
251
261
  isResizing: boolean;
252
262
  isRotating: boolean;
253
263
  zoom: Zoom;
254
- openMenu: "canvas" | "shape" | null;
255
- openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | null;
264
+ openMenu: "canvas" | null;
265
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
256
266
  openSidebar: {
257
267
  name: SidebarName;
258
268
  tab?: SidebarTabName;
@@ -264,6 +274,8 @@ export interface AppState {
264
274
  tab: "text-to-diagram" | "mermaid";
265
275
  } | {
266
276
  name: "commandPalette";
277
+ } | {
278
+ name: "settings";
267
279
  } | {
268
280
  name: "elementLinkSelector";
269
281
  sourceElementId: ExcalidrawElement["id"];
@@ -351,6 +363,7 @@ export interface AppState {
351
363
  lockedMultiSelections: {
352
364
  [groupId: string]: true;
353
365
  };
366
+ bindMode: BindMode;
354
367
  }
355
368
  export type SearchMatch = {
356
369
  id: string;
@@ -363,7 +376,7 @@ export type SearchMatch = {
363
376
  showOnCanvas: boolean;
364
377
  }[];
365
378
  };
366
- export type UIAppState = Omit<AppState, "suggestedBindings" | "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
379
+ export type UIAppState = Omit<AppState, "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
367
380
  export type NormalizedZoomValue = number & {
368
381
  _brand: "normalizedZoom";
369
382
  };
@@ -441,6 +454,7 @@ export interface ExcalidrawProps {
441
454
  onDuplicate?: (nextElements: readonly ExcalidrawElement[],
442
455
  /** excludes the duplicated elements */
443
456
  prevElements: readonly ExcalidrawElement[]) => ExcalidrawElement[] | void;
457
+ renderTopLeftUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
444
458
  renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
445
459
  langCode?: Language["code"];
446
460
  viewModeEnabled?: boolean;
@@ -478,7 +492,6 @@ export type SceneData = {
478
492
  collaborators?: Map<SocketId, Collaborator>;
479
493
  captureUpdate?: CaptureUpdateActionType;
480
494
  };
481
- export type ApplyDeltasOptions = Omit<ApplyToOptions, "skipRedraw">;
482
495
  export type ExportOpts = {
483
496
  saveFileToDisk?: boolean;
484
497
  onExportToBackend?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: UIAppState, files: BinaryFiles) => void;
@@ -499,6 +512,11 @@ export type UIOptions = Partial<{
499
512
  tools: {
500
513
  image: boolean;
501
514
  };
515
+ /**
516
+ * Optionally control the editor form factor and desktop UI mode from the host app.
517
+ * If not provided, we will take care of it internally.
518
+ */
519
+ getFormFactor?: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
502
520
  /** @deprecated does nothing. Will be removed in 0.15 */
503
521
  welcomeScreen?: boolean;
504
522
  }>;
@@ -529,7 +547,7 @@ export type AppClassProperties = {
529
547
  mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
530
548
  }>;
531
549
  files: BinaryFiles;
532
- device: App["device"];
550
+ editorInterface: App["editorInterface"];
533
551
  scene: App["scene"];
534
552
  syncActionResult: App["syncActionResult"];
535
553
  fonts: App["fonts"];
@@ -558,6 +576,8 @@ export type AppClassProperties = {
558
576
  excalidrawContainerValue: App["excalidrawContainerValue"];
559
577
  onPointerUpEmitter: App["onPointerUpEmitter"];
560
578
  updateEditorAtom: App["updateEditorAtom"];
579
+ onPointerDownEmitter: App["onPointerDownEmitter"];
580
+ bindModeHandler: App["bindModeHandler"];
561
581
  };
562
582
  export type PointerDownState = Readonly<{
563
583
  origin: Readonly<{
@@ -605,6 +625,7 @@ export type PointerDownState = Readonly<{
605
625
  x: number;
606
626
  y: number;
607
627
  };
628
+ blockDragging: boolean;
608
629
  };
609
630
  eventListeners: {
610
631
  onMove: null | ReturnType<typeof throttleRAF>;
@@ -642,6 +663,7 @@ export interface ExcalidrawImperativeAPI {
642
663
  setCursor: InstanceType<typeof App>["setCursor"];
643
664
  resetCursor: InstanceType<typeof App>["resetCursor"];
644
665
  toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
666
+ getEditorInterface: () => EditorInterface;
645
667
  /**
646
668
  * Disables rendering of frames (including element clipping), but currently
647
669
  * the frames are still interactive in edit mode. As such, this API should be
@@ -655,17 +677,6 @@ export interface ExcalidrawImperativeAPI {
655
677
  onScrollChange: (callback: (scrollX: number, scrollY: number, zoom: Zoom) => void) => UnsubscribeCallback;
656
678
  onUserFollow: (callback: (payload: OnUserFollowedPayload) => void) => UnsubscribeCallback;
657
679
  }
658
- export type Device = Readonly<{
659
- viewport: {
660
- isMobile: boolean;
661
- isLandscape: boolean;
662
- };
663
- editor: {
664
- isMobile: boolean;
665
- canFitSidebar: boolean;
666
- };
667
- isTouchScreen: boolean;
668
- }>;
669
680
  export type FrameNameBounds = {
670
681
  x: number;
671
682
  y: number;
@@ -705,4 +716,3 @@ export type Offsets = Partial<{
705
716
  bottom: number;
706
717
  left: number;
707
718
  }>;
708
- export {};
@@ -9,7 +9,7 @@ export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords,
9
9
  * Note: `text`, which can be wrapped and therefore different from `originalText`,
10
10
  * is derived from `originalText`
11
11
  */
12
- onChange?: ((nextOriginalText: string) => void) | undefined;
12
+ onChange?: (nextOriginalText: string) => void;
13
13
  onSubmit: (data: {
14
14
  viaKeyboard: boolean;
15
15
  nextOriginalText: string;
@@ -19,6 +19,6 @@ export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords,
19
19
  canvas: HTMLCanvasElement;
20
20
  excalidrawContainer: HTMLDivElement | null;
21
21
  app: App;
22
- autoSelect?: boolean | undefined;
22
+ autoSelect?: boolean;
23
23
  }) => SubmitHandler;
24
24
  export {};
@@ -1,6 +1,6 @@
1
1
  import type { GlobalPoint, LocalPoint, Polygon } from "./types";
2
2
  export declare function polygon<Point extends GlobalPoint | LocalPoint>(...points: Point[]): Polygon<Point>;
3
3
  export declare function polygonFromPoints<Point extends GlobalPoint | LocalPoint>(points: Point[]): Polygon<Point>;
4
- export declare const polygonIncludesPoint: <Point extends GlobalPoint | LocalPoint>(point: Point, polygon: Polygon<Point>) => boolean;
4
+ export declare const polygonIncludesPoint: <Point extends LocalPoint | GlobalPoint>(point: Point, polygon: Polygon<Point>) => boolean;
5
5
  export declare const polygonIncludesPointNonZero: <Point extends [number, number]>(point: Point, polygon: Point[]) => boolean;
6
- export declare const pointOnPolygon: <Point extends GlobalPoint | LocalPoint>(p: Point, poly: Polygon<Point>, threshold?: number) => boolean;
6
+ export declare const pointOnPolygon: <Point extends LocalPoint | GlobalPoint>(p: Point, poly: Polygon<Point>, threshold?: number) => boolean;
@@ -13,9 +13,7 @@ export declare function rangeInclusive(start: number, end: number): InclusiveRan
13
13
  * @param pair The number pair to convert to an inclusive range
14
14
  * @returns The new inclusive range
15
15
  */
16
- export declare function rangeInclusiveFromPair(pair: [start: number, end: number]): [number, number] & {
17
- _brand: "excalimath_degree";
18
- };
16
+ export declare function rangeInclusiveFromPair(pair: [start: number, end: number]): InclusiveRange;
19
17
  /**
20
18
  * Given two ranges, return if the two ranges overlap with each other e.g.
21
19
  * [1, 3] overlaps with [2, 4] while [1, 3] does not overlap with [4, 5].
@@ -21,14 +21,14 @@ export declare const isLineSegment: <Point extends GlobalPoint | LocalPoint>(seg
21
21
  * @param origin
22
22
  * @returns
23
23
  */
24
- export declare const lineSegmentRotate: <Point extends GlobalPoint | LocalPoint>(l: LineSegment<Point>, angle: Radians, origin?: Point | undefined) => LineSegment<Point>;
24
+ export declare const lineSegmentRotate: <Point extends LocalPoint | GlobalPoint>(l: LineSegment<Point>, angle: Radians, origin?: Point) => LineSegment<Point>;
25
25
  /**
26
26
  * Calculates the point two line segments with a definite start and end point
27
27
  * intersect at.
28
28
  */
29
29
  export declare const segmentsIntersectAt: <Point extends GlobalPoint | LocalPoint>(a: Readonly<LineSegment<Point>>, b: Readonly<LineSegment<Point>>) => Point | null;
30
- export declare const pointOnLineSegment: <Point extends GlobalPoint | LocalPoint>(point: Point, line: LineSegment<Point>, threshold?: number) => boolean;
31
- export declare const distanceToLineSegment: <Point extends GlobalPoint | LocalPoint>(point: Point, line: LineSegment<Point>) => number;
30
+ export declare const pointOnLineSegment: <Point extends LocalPoint | GlobalPoint>(point: Point, line: LineSegment<Point>, threshold?: number) => boolean;
31
+ export declare const distanceToLineSegment: <Point extends LocalPoint | GlobalPoint>(point: Point, line: LineSegment<Point>) => number;
32
32
  /**
33
33
  * Returns the intersection point of a segment and a line
34
34
  *
@@ -37,3 +37,4 @@ export declare const distanceToLineSegment: <Point extends GlobalPoint | LocalPo
37
37
  * @returns
38
38
  */
39
39
  export declare function lineSegmentIntersectionPoints<Point extends GlobalPoint | LocalPoint>(l: LineSegment<Point>, s: LineSegment<Point>, threshold?: number): Point | null;
40
+ export declare function lineSegmentsDistance<Point extends GlobalPoint | LocalPoint>(s1: LineSegment<Point>, s2: LineSegment<Point>): number;
@@ -1,5 +1,5 @@
1
1
  import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
2
- import type { Bounds } from "@excalidraw/element";
2
+ import type { Bounds } from "@excalidraw/common";
3
3
  export type LineSegment<P extends LocalPoint | GlobalPoint> = [P, P];
4
4
  export declare function getBBox<P extends LocalPoint | GlobalPoint>(line: LineSegment<P>): Bounds;
5
5
  export declare function doBBoxesIntersect(a: Bounds, b: Bounds): boolean;
@@ -15,7 +15,7 @@ type ExportOpts = {
15
15
  };
16
16
  };
17
17
  export declare const exportToCanvas: ({ elements, appState, files, maxWidthOrHeight, getDimensions, exportPadding, exportingFrame, }: ExportOpts & {
18
- exportPadding?: number | undefined;
18
+ exportPadding?: number;
19
19
  }) => Promise<HTMLCanvasElement>;
20
20
  export declare const exportToBlob: (opts: ExportOpts & {
21
21
  mimeType?: string;
@@ -23,10 +23,10 @@ export declare const exportToBlob: (opts: ExportOpts & {
23
23
  exportPadding?: number;
24
24
  }) => Promise<Blob>;
25
25
  export declare const exportToSvg: ({ elements, appState, files, exportPadding, renderEmbeddables, exportingFrame, skipInliningFonts, reuseImages, }: Omit<ExportOpts, "getDimensions"> & {
26
- exportPadding?: number | undefined;
27
- renderEmbeddables?: boolean | undefined;
28
- skipInliningFonts?: true | undefined;
29
- reuseImages?: boolean | undefined;
26
+ exportPadding?: number;
27
+ renderEmbeddables?: boolean;
28
+ skipInliningFonts?: true;
29
+ reuseImages?: boolean;
30
30
  }) => Promise<SVGSVGElement>;
31
31
  export declare const exportToClipboard: (opts: ExportOpts & {
32
32
  mimeType?: string;
@@ -46,13 +46,13 @@ export declare const getClosedCurveShape: <Point extends GlobalPoint | LocalPoin
46
46
  * @param gap Optional value to inflate the shape before testing
47
47
  * @returns An array of intersections
48
48
  */
49
- export declare const segmentIntersectRectangleElement: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawBindableElement, segment: LineSegment<Point>, gap?: number) => Point[];
50
- export declare const pointOnEllipse: <Point extends GlobalPoint | LocalPoint>(point: Point, ellipse: Ellipse<Point>, threshold?: number) => boolean;
51
- export declare const pointInEllipse: <Point extends GlobalPoint | LocalPoint>(p: Point, ellipse: Ellipse<Point>) => boolean;
52
- export declare const ellipseAxes: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => {
49
+ export declare const segmentIntersectRectangleElement: <Point extends LocalPoint | GlobalPoint>(element: ExcalidrawBindableElement, segment: LineSegment<Point>, gap?: number) => Point[];
50
+ export declare const pointOnEllipse: <Point extends LocalPoint | GlobalPoint>(point: Point, ellipse: Ellipse<Point>, threshold?: number) => boolean;
51
+ export declare const pointInEllipse: <Point extends LocalPoint | GlobalPoint>(p: Point, ellipse: Ellipse<Point>) => boolean;
52
+ export declare const ellipseAxes: <Point extends LocalPoint | GlobalPoint>(ellipse: Ellipse<Point>) => {
53
53
  majorAxis: number;
54
54
  minorAxis: number;
55
55
  };
56
- export declare const ellipseFocusToCenter: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => number;
57
- export declare const ellipseExtremes: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => import("@excalidraw/math").Vector[];
56
+ export declare const ellipseFocusToCenter: <Point extends LocalPoint | GlobalPoint>(ellipse: Ellipse<Point>) => number;
57
+ export declare const ellipseExtremes: <Point extends LocalPoint | GlobalPoint>(ellipse: Ellipse<Point>) => import("@excalidraw/math").Vector[];
58
58
  export {};
@@ -1,4 +1,4 @@
1
- import type { Bounds } from "@excalidraw/element";
1
+ import { type Bounds } from "@excalidraw/common";
2
2
  import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
3
3
  type Element = NonDeletedExcalidrawElement;
4
4
  type Elements = readonly NonDeletedExcalidrawElement[];
@@ -8,7 +8,7 @@ export declare const elementsOverlappingBBox: ({ elements, bounds, type, errorMa
8
8
  elements: Elements;
9
9
  bounds: Bounds | ExcalidrawElement;
10
10
  /** safety offset. Defaults to 0. */
11
- errorMargin?: number | undefined;
11
+ errorMargin?: number;
12
12
  /**
13
13
  * - overlap: elements overlapping or inside bounds
14
14
  * - contain: elements inside bounds or bounds inside elements
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@excalidraw/element",
3
- "version": "0.18.0-508de2f3a",
3
+ "version": "0.18.0-54a9826",
4
4
  "type": "module",
5
5
  "types": "./dist/types/element/src/index.d.ts",
6
6
  "main": "./dist/prod/index.js",
@@ -17,6 +17,12 @@
17
17
  "development": "./dist/dev/index.js",
18
18
  "production": "./dist/prod/index.js",
19
19
  "default": "./dist/prod/index.js"
20
+ },
21
+ "./visualdebug": {
22
+ "types": "./dist/types/element/src/visualdebug.d.ts",
23
+ "development": "./dist/dev/visualdebug.js",
24
+ "production": "./dist/prod/visualdebug.js",
25
+ "default": "./dist/prod/visualdebug.js"
20
26
  }
21
27
  },
22
28
  "files": [
@@ -57,7 +63,7 @@
57
63
  "build:esm": "rimraf dist && node ../../scripts/buildBase.js && yarn gen:types"
58
64
  },
59
65
  "dependencies": {
60
- "@excalidraw/common": "0.18.0-508de2f3a",
61
- "@excalidraw/math": "0.18.0-508de2f3a"
66
+ "@excalidraw/common": "0.18.0-54a9826",
67
+ "@excalidraw/math": "0.18.0-54a9826"
62
68
  }
63
69
  }