@excalidraw/element 0.18.0-9036812b6 → 0.18.0-9ba0f5d

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 (227) hide show
  1. package/dist/dev/index.js +3846 -2092
  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 +33 -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 +9 -5
  14. package/dist/types/element/src/binding.d.ts +58 -44
  15. package/dist/types/element/src/bounds.d.ts +3 -11
  16. package/dist/types/element/src/collision.d.ts +6 -2
  17. package/dist/types/element/src/comparisons.d.ts +7 -7
  18. package/dist/types/element/src/delta.d.ts +6 -3
  19. package/dist/types/element/src/dragElements.d.ts +3 -3
  20. package/dist/types/element/src/duplicate.d.ts +3 -3
  21. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  22. package/dist/types/element/src/frame.d.ts +5 -1
  23. package/dist/types/element/src/heading.d.ts +2 -1
  24. package/dist/types/element/src/image.d.ts +1 -11
  25. package/dist/types/element/src/index.d.ts +2 -3
  26. package/dist/types/element/src/linearElementEditor.d.ts +16 -20
  27. package/dist/types/element/src/mutateElement.d.ts +3 -1
  28. package/dist/types/element/src/newElement.d.ts +6 -6
  29. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  30. package/dist/types/element/src/renderElement.d.ts +4 -7
  31. package/dist/types/element/src/resizeElements.d.ts +10 -10
  32. package/dist/types/element/src/resizeTest.d.ts +6 -5
  33. package/dist/types/element/src/selection.d.ts +3 -7
  34. package/dist/types/element/src/shape.d.ts +8 -7
  35. package/dist/types/element/src/store.d.ts +6 -1
  36. package/dist/types/element/src/textElement.d.ts +1 -1
  37. package/dist/types/element/src/textMeasurements.d.ts +1 -3
  38. package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
  39. package/dist/types/element/src/transformHandles.d.ts +8 -27
  40. package/dist/types/element/src/typeChecks.d.ts +4 -7
  41. package/dist/types/element/src/types.d.ts +7 -11
  42. package/dist/types/element/src/utils.d.ts +5 -2
  43. package/dist/types/element/src/visualdebug.d.ts +59 -0
  44. package/dist/types/element/src/zindex.d.ts +7 -1
  45. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +93 -136
  46. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
  47. package/dist/types/excalidraw/actions/actionBoundText.d.ts +67 -96
  48. package/dist/types/excalidraw/actions/actionCanvas.d.ts +402 -758
  49. package/dist/types/excalidraw/actions/actionClipboard.d.ts +86 -856
  50. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +32 -47
  51. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +110 -159
  52. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  53. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -3
  54. package/dist/types/excalidraw/actions/actionElementLink.d.ts +28 -45
  55. package/dist/types/excalidraw/actions/actionElementLock.d.ts +66 -95
  56. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +33 -48
  57. package/dist/types/excalidraw/actions/actionExport.d.ts +144 -1104
  58. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -394
  59. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
  60. package/dist/types/excalidraw/actions/actionFrame.d.ts +227 -322
  61. package/dist/types/excalidraw/actions/actionGroup.d.ts +70 -107
  62. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +140 -195
  63. package/dist/types/excalidraw/actions/actionLink.d.ts +30 -45
  64. package/dist/types/excalidraw/actions/actionMenu.d.ts +27 -410
  65. package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -359
  66. package/dist/types/excalidraw/actions/actionProperties.d.ts +129 -2488
  67. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +35 -54
  68. package/dist/types/excalidraw/actions/actionStyles.d.ts +32 -47
  69. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
  70. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +32 -47
  71. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +32 -47
  72. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +25 -42
  73. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  74. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +32 -47
  75. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +32 -47
  76. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +33 -48
  77. package/dist/types/excalidraw/actions/actionZindex.d.ts +2 -3
  78. package/dist/types/excalidraw/actions/index.d.ts +2 -2
  79. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  80. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  81. package/dist/types/excalidraw/appState.d.ts +12 -7
  82. package/dist/types/excalidraw/clipboard.d.ts +55 -16
  83. package/dist/types/excalidraw/components/Actions.d.ts +22 -5
  84. package/dist/types/excalidraw/components/App.d.ts +67 -65
  85. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  86. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  87. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
  88. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
  89. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
  90. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
  91. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
  92. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  93. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
  94. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -3
  95. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  96. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  97. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  98. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  99. package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
  100. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  101. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +1 -2
  102. package/dist/types/excalidraw/components/EyeDropper.d.ts +0 -1
  103. package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
  104. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  105. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
  106. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  107. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  108. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  109. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  110. package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
  111. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  112. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
  113. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
  114. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
  115. package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
  116. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
  117. package/dist/types/excalidraw/components/MobileToolBar.d.ts +10 -0
  118. package/dist/types/excalidraw/components/Modal.d.ts +0 -1
  119. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
  120. package/dist/types/excalidraw/components/Popover.d.ts +2 -1
  121. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -0
  122. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  123. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  124. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  125. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +15 -21
  126. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  127. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  128. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  129. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  130. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  131. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  132. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  133. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  134. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
  135. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  136. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  137. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  138. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +27 -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 +26 -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/MermaidToExcalidraw.d.ts +3 -2
  144. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  145. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +4 -25
  146. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +2 -2
  147. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  148. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  149. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  150. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  151. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +2 -3
  152. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  153. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +8 -0
  154. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  155. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  156. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  157. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
  158. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +91 -0
  159. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
  160. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +24 -0
  161. package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
  162. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
  163. package/dist/types/excalidraw/components/TextField.d.ts +1 -0
  164. package/dist/types/excalidraw/components/Toast.d.ts +3 -3
  165. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  166. package/dist/types/excalidraw/components/Trans.d.ts +2 -2
  167. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +6 -3
  168. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +30 -32
  169. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +6 -5
  170. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  171. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +10 -18
  172. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +3 -3
  173. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +0 -1
  174. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  175. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  176. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  177. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +1 -1
  178. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  179. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  180. package/dist/types/excalidraw/components/icons.d.ts +26 -12
  181. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +4 -3
  182. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +2 -2
  183. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +25 -30
  184. package/dist/types/excalidraw/components/shapes.d.ts +129 -1
  185. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +6 -6
  186. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +15 -16
  187. package/dist/types/excalidraw/data/blob.d.ts +324 -10
  188. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  189. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  190. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  191. package/dist/types/excalidraw/data/index.d.ts +3 -3
  192. package/dist/types/excalidraw/data/json.d.ts +159 -2
  193. package/dist/types/excalidraw/data/library.d.ts +24 -9
  194. package/dist/types/excalidraw/data/restore.d.ts +27 -7
  195. package/dist/types/excalidraw/data/types.d.ts +4 -1
  196. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  197. package/dist/types/excalidraw/errors.d.ts +14 -0
  198. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  199. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
  200. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  201. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  202. package/dist/types/excalidraw/i18n.d.ts +2 -2
  203. package/dist/types/excalidraw/index.d.ts +6 -7
  204. package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
  205. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
  206. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
  207. package/dist/types/excalidraw/scene/Renderer.d.ts +5 -2
  208. package/dist/types/excalidraw/scene/export.d.ts +2 -2
  209. package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
  210. package/dist/types/excalidraw/scene/types.d.ts +22 -5
  211. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  212. package/dist/types/excalidraw/snapping.d.ts +5 -5
  213. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  214. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  215. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  216. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  217. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  218. package/dist/types/excalidraw/types.d.ts +32 -20
  219. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -2
  220. package/dist/types/math/src/polygon.d.ts +2 -2
  221. package/dist/types/math/src/range.d.ts +1 -3
  222. package/dist/types/math/src/segment.d.ts +4 -3
  223. package/dist/types/utils/src/bbox.d.ts +1 -1
  224. package/dist/types/utils/src/export.d.ts +5 -5
  225. package/dist/types/utils/src/shape.d.ts +6 -6
  226. package/dist/types/utils/src/withinBounds.d.ts +2 -2
  227. 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 { 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";
@@ -125,6 +124,7 @@ export type StaticCanvasAppState = Readonly<_CommonCanvasAppState & {
125
124
  frameRendering: AppState["frameRendering"];
126
125
  currentHoveredFontFamily: AppState["currentHoveredFontFamily"];
127
126
  hoveredElementIds: AppState["hoveredElementIds"];
127
+ suggestedBinding: AppState["suggestedBinding"];
128
128
  croppingElementId: AppState["croppingElementId"];
129
129
  }>;
130
130
  export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
@@ -133,8 +133,9 @@ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
133
133
  selectedGroupIds: AppState["selectedGroupIds"];
134
134
  selectedLinearElement: AppState["selectedLinearElement"];
135
135
  multiElement: AppState["multiElement"];
136
+ newElement: AppState["newElement"];
136
137
  isBindingEnabled: AppState["isBindingEnabled"];
137
- suggestedBindings: AppState["suggestedBindings"];
138
+ suggestedBinding: AppState["suggestedBinding"];
138
139
  isRotating: AppState["isRotating"];
139
140
  elementsToHighlight: AppState["elementsToHighlight"];
140
141
  collaborators: AppState["collaborators"];
@@ -145,6 +146,10 @@ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
145
146
  croppingElementId: AppState["croppingElementId"];
146
147
  searchMatches: AppState["searchMatches"];
147
148
  activeLockedId: AppState["activeLockedId"];
149
+ hoveredElementIds: AppState["hoveredElementIds"];
150
+ frameRendering: AppState["frameRendering"];
151
+ shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
152
+ exportScale: AppState["exportScale"];
148
153
  }>;
149
154
  export type ObservedAppState = ObservedStandaloneAppState & ObservedElementsAppState;
150
155
  export type ObservedStandaloneAppState = {
@@ -198,7 +203,7 @@ export interface AppState {
198
203
  selectionElement: NonDeletedExcalidrawElement | null;
199
204
  isBindingEnabled: boolean;
200
205
  startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
201
- suggestedBindings: SuggestedBinding[];
206
+ suggestedBinding: NonDeleted<ExcalidrawBindableElement> | null;
202
207
  frameToHighlight: NonDeleted<ExcalidrawFrameLikeElement> | null;
203
208
  frameRendering: {
204
209
  enabled: boolean;
@@ -221,6 +226,10 @@ export interface AppState {
221
226
  locked: boolean;
222
227
  fromSelection: boolean;
223
228
  } & ActiveTool;
229
+ preferredSelectionTool: {
230
+ type: "selection" | "lasso";
231
+ initialized: boolean;
232
+ };
224
233
  penMode: boolean;
225
234
  penDetected: boolean;
226
235
  exportBackground: boolean;
@@ -251,8 +260,8 @@ export interface AppState {
251
260
  isResizing: boolean;
252
261
  isRotating: boolean;
253
262
  zoom: Zoom;
254
- openMenu: "canvas" | "shape" | null;
255
- openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | null;
263
+ openMenu: "canvas" | null;
264
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
256
265
  openSidebar: {
257
266
  name: SidebarName;
258
267
  tab?: SidebarTabName;
@@ -264,6 +273,8 @@ export interface AppState {
264
273
  tab: "text-to-diagram" | "mermaid";
265
274
  } | {
266
275
  name: "commandPalette";
276
+ } | {
277
+ name: "settings";
267
278
  } | {
268
279
  name: "elementLinkSelector";
269
280
  sourceElementId: ExcalidrawElement["id"];
@@ -351,6 +362,7 @@ export interface AppState {
351
362
  lockedMultiSelections: {
352
363
  [groupId: string]: true;
353
364
  };
365
+ bindMode: BindMode;
354
366
  }
355
367
  export type SearchMatch = {
356
368
  id: string;
@@ -363,7 +375,7 @@ export type SearchMatch = {
363
375
  showOnCanvas: boolean;
364
376
  }[];
365
377
  };
366
- export type UIAppState = Omit<AppState, "suggestedBindings" | "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
378
+ export type UIAppState = Omit<AppState, "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
367
379
  export type NormalizedZoomValue = number & {
368
380
  _brand: "normalizedZoom";
369
381
  };
@@ -441,6 +453,7 @@ export interface ExcalidrawProps {
441
453
  onDuplicate?: (nextElements: readonly ExcalidrawElement[],
442
454
  /** excludes the duplicated elements */
443
455
  prevElements: readonly ExcalidrawElement[]) => ExcalidrawElement[] | void;
456
+ renderTopLeftUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
444
457
  renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
445
458
  langCode?: Language["code"];
446
459
  viewModeEnabled?: boolean;
@@ -498,6 +511,11 @@ export type UIOptions = Partial<{
498
511
  tools: {
499
512
  image: boolean;
500
513
  };
514
+ /**
515
+ * Optionally control the editor form factor and desktop UI mode from the host app.
516
+ * If not provided, we will take care of it internally.
517
+ */
518
+ getFormFactor?: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
501
519
  /** @deprecated does nothing. Will be removed in 0.15 */
502
520
  welcomeScreen?: boolean;
503
521
  }>;
@@ -528,7 +546,7 @@ export type AppClassProperties = {
528
546
  mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
529
547
  }>;
530
548
  files: BinaryFiles;
531
- device: App["device"];
549
+ editorInterface: App["editorInterface"];
532
550
  scene: App["scene"];
533
551
  syncActionResult: App["syncActionResult"];
534
552
  fonts: App["fonts"];
@@ -557,6 +575,8 @@ export type AppClassProperties = {
557
575
  excalidrawContainerValue: App["excalidrawContainerValue"];
558
576
  onPointerUpEmitter: App["onPointerUpEmitter"];
559
577
  updateEditorAtom: App["updateEditorAtom"];
578
+ onPointerDownEmitter: App["onPointerDownEmitter"];
579
+ bindModeHandler: App["bindModeHandler"];
560
580
  };
561
581
  export type PointerDownState = Readonly<{
562
582
  origin: Readonly<{
@@ -604,6 +624,7 @@ export type PointerDownState = Readonly<{
604
624
  x: number;
605
625
  y: number;
606
626
  };
627
+ blockDragging: boolean;
607
628
  };
608
629
  eventListeners: {
609
630
  onMove: null | ReturnType<typeof throttleRAF>;
@@ -618,6 +639,7 @@ export type PointerDownState = Readonly<{
618
639
  export type UnsubscribeCallback = () => void;
619
640
  export interface ExcalidrawImperativeAPI {
620
641
  updateScene: InstanceType<typeof App>["updateScene"];
642
+ applyDeltas: InstanceType<typeof App>["applyDeltas"];
621
643
  mutateElement: InstanceType<typeof App>["mutateElement"];
622
644
  updateLibrary: InstanceType<typeof Library>["updateLibrary"];
623
645
  resetScene: InstanceType<typeof App>["resetScene"];
@@ -640,6 +662,7 @@ export interface ExcalidrawImperativeAPI {
640
662
  setCursor: InstanceType<typeof App>["setCursor"];
641
663
  resetCursor: InstanceType<typeof App>["resetCursor"];
642
664
  toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
665
+ getEditorInterface: () => EditorInterface;
643
666
  /**
644
667
  * Disables rendering of frames (including element clipping), but currently
645
668
  * the frames are still interactive in edit mode. As such, this API should be
@@ -653,17 +676,6 @@ export interface ExcalidrawImperativeAPI {
653
676
  onScrollChange: (callback: (scrollX: number, scrollY: number, zoom: Zoom) => void) => UnsubscribeCallback;
654
677
  onUserFollow: (callback: (payload: OnUserFollowedPayload) => void) => UnsubscribeCallback;
655
678
  }
656
- export type Device = Readonly<{
657
- viewport: {
658
- isMobile: boolean;
659
- isLandscape: boolean;
660
- };
661
- editor: {
662
- isMobile: boolean;
663
- canFitSidebar: boolean;
664
- };
665
- isTouchScreen: boolean;
666
- }>;
667
679
  export type FrameNameBounds = {
668
680
  x: number;
669
681
  y: number;
@@ -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-9036812b6",
3
+ "version": "0.18.0-9ba0f5d",
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-9036812b6",
61
- "@excalidraw/math": "0.18.0-9036812b6"
66
+ "@excalidraw/common": "0.18.0-9ba0f5d",
67
+ "@excalidraw/math": "0.18.0-9ba0f5d"
62
68
  }
63
69
  }