@excalidraw/math 0.18.0-f87f6d086 → 0.18.0-ffcb67b

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 (236) hide show
  1. package/dist/dev/index.js +58 -61
  2. package/dist/dev/index.js.map +3 -3
  3. package/dist/prod/index.js +1 -1
  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 +37 -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 +66 -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 +2 -2
  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 -1
  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 +3 -2
  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 +8 -3
  46. package/dist/types/element/src/zindex.d.ts +7 -1
  47. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +147 -181
  48. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
  49. package/dist/types/excalidraw/actions/actionBoundText.d.ts +73 -96
  50. package/dist/types/excalidraw/actions/actionCanvas.d.ts +438 -758
  51. package/dist/types/excalidraw/actions/actionClipboard.d.ts +109 -873
  52. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +35 -47
  53. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +118 -156
  54. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  55. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +3 -4
  56. package/dist/types/excalidraw/actions/actionElementLink.d.ts +50 -64
  57. package/dist/types/excalidraw/actions/actionElementLock.d.ts +72 -95
  58. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +52 -64
  59. package/dist/types/excalidraw/actions/actionExport.d.ts +156 -1104
  60. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -394
  61. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
  62. package/dist/types/excalidraw/actions/actionFrame.d.ts +225 -308
  63. package/dist/types/excalidraw/actions/actionGroup.d.ts +76 -107
  64. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +128 -178
  65. package/dist/types/excalidraw/actions/actionLink.d.ts +52 -64
  66. package/dist/types/excalidraw/actions/actionMenu.d.ts +45 -425
  67. package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -359
  68. package/dist/types/excalidraw/actions/actionProperties.d.ts +135 -2488
  69. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +38 -54
  70. package/dist/types/excalidraw/actions/actionStyles.d.ts +35 -47
  71. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  72. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +52 -64
  73. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +52 -64
  74. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +44 -58
  75. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  76. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +51 -63
  77. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +52 -64
  78. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +52 -64
  79. package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -9
  80. package/dist/types/excalidraw/actions/index.d.ts +2 -2
  81. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  82. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  83. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  84. package/dist/types/excalidraw/appState.d.ts +20 -15
  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 +73 -66
  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 +2 -1
  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 +47 -35
  173. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -5
  174. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  175. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
  176. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  177. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
  178. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +0 -1
  179. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  180. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  181. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  182. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  183. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  184. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  185. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +2 -2
  186. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  187. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  188. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  189. package/dist/types/excalidraw/components/icons.d.ts +29 -12
  190. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +4 -3
  191. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +17 -2
  192. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -35
  193. package/dist/types/excalidraw/components/shapes.d.ts +129 -1
  194. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +6 -6
  195. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +15 -16
  196. package/dist/types/excalidraw/data/blob.d.ts +330 -10
  197. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  198. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  199. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  200. package/dist/types/excalidraw/data/index.d.ts +3 -3
  201. package/dist/types/excalidraw/data/json.d.ts +162 -2
  202. package/dist/types/excalidraw/data/library.d.ts +24 -9
  203. package/dist/types/excalidraw/data/restore.d.ts +25 -10
  204. package/dist/types/excalidraw/data/types.d.ts +4 -1
  205. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  206. package/dist/types/excalidraw/errors.d.ts +14 -0
  207. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  208. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
  209. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  210. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  211. package/dist/types/excalidraw/i18n.d.ts +2 -2
  212. package/dist/types/excalidraw/index.d.ts +7 -7
  213. package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
  214. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
  215. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
  216. package/dist/types/excalidraw/scene/Renderer.d.ts +5 -2
  217. package/dist/types/excalidraw/scene/export.d.ts +2 -2
  218. package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
  219. package/dist/types/excalidraw/scene/types.d.ts +22 -5
  220. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  221. package/dist/types/excalidraw/snapping.d.ts +5 -5
  222. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  223. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  224. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  225. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  226. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  227. package/dist/types/excalidraw/types.d.ts +37 -21
  228. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -2
  229. package/dist/types/math/src/polygon.d.ts +2 -2
  230. package/dist/types/math/src/range.d.ts +1 -3
  231. package/dist/types/math/src/segment.d.ts +4 -3
  232. package/dist/types/utils/src/bbox.d.ts +1 -1
  233. package/dist/types/utils/src/export.d.ts +5 -5
  234. package/dist/types/utils/src/shape.d.ts +6 -6
  235. package/dist/types/utils/src/withinBounds.d.ts +2 -2
  236. package/package.json +2 -2
@@ -1,10 +1,10 @@
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";
7
+ import type { GlobalPoint } from "@excalidraw/math";
8
8
  import type { Action } from "./actions/types";
9
9
  import type { Spreadsheet } from "./charts";
10
10
  import type { ClipboardData } from "./clipboard";
@@ -18,6 +18,7 @@ import type { Language } from "./i18n";
18
18
  import type { isOverScrollBars } from "./scene/scrollbars";
19
19
  import type React from "react";
20
20
  import type { JSX } from "react";
21
+ export type { App };
21
22
  export type SocketId = string & {
22
23
  _brand: "SocketId";
23
24
  };
@@ -125,6 +126,7 @@ export type StaticCanvasAppState = Readonly<_CommonCanvasAppState & {
125
126
  frameRendering: AppState["frameRendering"];
126
127
  currentHoveredFontFamily: AppState["currentHoveredFontFamily"];
127
128
  hoveredElementIds: AppState["hoveredElementIds"];
129
+ suggestedBinding: AppState["suggestedBinding"];
128
130
  croppingElementId: AppState["croppingElementId"];
129
131
  }>;
130
132
  export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
@@ -133,8 +135,9 @@ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
133
135
  selectedGroupIds: AppState["selectedGroupIds"];
134
136
  selectedLinearElement: AppState["selectedLinearElement"];
135
137
  multiElement: AppState["multiElement"];
138
+ newElement: AppState["newElement"];
136
139
  isBindingEnabled: AppState["isBindingEnabled"];
137
- suggestedBindings: AppState["suggestedBindings"];
140
+ suggestedBinding: AppState["suggestedBinding"];
138
141
  isRotating: AppState["isRotating"];
139
142
  elementsToHighlight: AppState["elementsToHighlight"];
140
143
  collaborators: AppState["collaborators"];
@@ -145,6 +148,10 @@ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
145
148
  croppingElementId: AppState["croppingElementId"];
146
149
  searchMatches: AppState["searchMatches"];
147
150
  activeLockedId: AppState["activeLockedId"];
151
+ hoveredElementIds: AppState["hoveredElementIds"];
152
+ frameRendering: AppState["frameRendering"];
153
+ shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
154
+ exportScale: AppState["exportScale"];
148
155
  }>;
149
156
  export type ObservedAppState = ObservedStandaloneAppState & ObservedElementsAppState;
150
157
  export type ObservedStandaloneAppState = {
@@ -198,7 +205,10 @@ export interface AppState {
198
205
  selectionElement: NonDeletedExcalidrawElement | null;
199
206
  isBindingEnabled: boolean;
200
207
  startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
201
- suggestedBindings: SuggestedBinding[];
208
+ suggestedBinding: {
209
+ element: NonDeleted<ExcalidrawBindableElement>;
210
+ midPoint?: GlobalPoint;
211
+ } | null;
202
212
  frameToHighlight: NonDeleted<ExcalidrawFrameLikeElement> | null;
203
213
  frameRendering: {
204
214
  enabled: boolean;
@@ -221,6 +231,10 @@ export interface AppState {
221
231
  locked: boolean;
222
232
  fromSelection: boolean;
223
233
  } & ActiveTool;
234
+ preferredSelectionTool: {
235
+ type: "selection" | "lasso";
236
+ initialized: boolean;
237
+ };
224
238
  penMode: boolean;
225
239
  penDetected: boolean;
226
240
  exportBackground: boolean;
@@ -251,8 +265,8 @@ export interface AppState {
251
265
  isResizing: boolean;
252
266
  isRotating: boolean;
253
267
  zoom: Zoom;
254
- openMenu: "canvas" | "shape" | null;
255
- openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | null;
268
+ openMenu: "canvas" | null;
269
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
256
270
  openSidebar: {
257
271
  name: SidebarName;
258
272
  tab?: SidebarTabName;
@@ -264,6 +278,8 @@ export interface AppState {
264
278
  tab: "text-to-diagram" | "mermaid";
265
279
  } | {
266
280
  name: "commandPalette";
281
+ } | {
282
+ name: "settings";
267
283
  } | {
268
284
  name: "elementLinkSelector";
269
285
  sourceElementId: ExcalidrawElement["id"];
@@ -351,6 +367,7 @@ export interface AppState {
351
367
  lockedMultiSelections: {
352
368
  [groupId: string]: true;
353
369
  };
370
+ bindMode: BindMode;
354
371
  }
355
372
  export type SearchMatch = {
356
373
  id: string;
@@ -363,7 +380,7 @@ export type SearchMatch = {
363
380
  showOnCanvas: boolean;
364
381
  }[];
365
382
  };
366
- export type UIAppState = Omit<AppState, "suggestedBindings" | "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
383
+ export type UIAppState = Omit<AppState, "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
367
384
  export type NormalizedZoomValue = number & {
368
385
  _brand: "normalizedZoom";
369
386
  };
@@ -441,6 +458,7 @@ export interface ExcalidrawProps {
441
458
  onDuplicate?: (nextElements: readonly ExcalidrawElement[],
442
459
  /** excludes the duplicated elements */
443
460
  prevElements: readonly ExcalidrawElement[]) => ExcalidrawElement[] | void;
461
+ renderTopLeftUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
444
462
  renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
445
463
  langCode?: Language["code"];
446
464
  viewModeEnabled?: boolean;
@@ -498,6 +516,11 @@ export type UIOptions = Partial<{
498
516
  tools: {
499
517
  image: boolean;
500
518
  };
519
+ /**
520
+ * Optionally control the editor form factor and desktop UI mode from the host app.
521
+ * If not provided, we will take care of it internally.
522
+ */
523
+ getFormFactor?: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
501
524
  /** @deprecated does nothing. Will be removed in 0.15 */
502
525
  welcomeScreen?: boolean;
503
526
  }>;
@@ -528,7 +551,7 @@ export type AppClassProperties = {
528
551
  mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
529
552
  }>;
530
553
  files: BinaryFiles;
531
- device: App["device"];
554
+ editorInterface: App["editorInterface"];
532
555
  scene: App["scene"];
533
556
  syncActionResult: App["syncActionResult"];
534
557
  fonts: App["fonts"];
@@ -557,6 +580,9 @@ export type AppClassProperties = {
557
580
  excalidrawContainerValue: App["excalidrawContainerValue"];
558
581
  onPointerUpEmitter: App["onPointerUpEmitter"];
559
582
  updateEditorAtom: App["updateEditorAtom"];
583
+ onPointerDownEmitter: App["onPointerDownEmitter"];
584
+ lastPointerMoveCoords: App["lastPointerMoveCoords"];
585
+ bindModeHandler: App["bindModeHandler"];
560
586
  };
561
587
  export type PointerDownState = Readonly<{
562
588
  origin: Readonly<{
@@ -604,6 +630,7 @@ export type PointerDownState = Readonly<{
604
630
  x: number;
605
631
  y: number;
606
632
  };
633
+ blockDragging: boolean;
607
634
  };
608
635
  eventListeners: {
609
636
  onMove: null | ReturnType<typeof throttleRAF>;
@@ -641,6 +668,7 @@ export interface ExcalidrawImperativeAPI {
641
668
  setCursor: InstanceType<typeof App>["setCursor"];
642
669
  resetCursor: InstanceType<typeof App>["resetCursor"];
643
670
  toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
671
+ getEditorInterface: () => EditorInterface;
644
672
  /**
645
673
  * Disables rendering of frames (including element clipping), but currently
646
674
  * the frames are still interactive in edit mode. As such, this API should be
@@ -654,17 +682,6 @@ export interface ExcalidrawImperativeAPI {
654
682
  onScrollChange: (callback: (scrollX: number, scrollY: number, zoom: Zoom) => void) => UnsubscribeCallback;
655
683
  onUserFollow: (callback: (payload: OnUserFollowedPayload) => void) => UnsubscribeCallback;
656
684
  }
657
- export type Device = Readonly<{
658
- viewport: {
659
- isMobile: boolean;
660
- isLandscape: boolean;
661
- };
662
- editor: {
663
- isMobile: boolean;
664
- canFitSidebar: boolean;
665
- };
666
- isTouchScreen: boolean;
667
- }>;
668
685
  export type FrameNameBounds = {
669
686
  x: number;
670
687
  y: number;
@@ -704,4 +721,3 @@ export type Offsets = Partial<{
704
721
  bottom: number;
705
722
  left: number;
706
723
  }>;
707
- 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/math",
3
- "version": "0.18.0-f87f6d086",
3
+ "version": "0.18.0-ffcb67b",
4
4
  "type": "module",
5
5
  "types": "./dist/types/math/src/index.d.ts",
6
6
  "main": "./dist/prod/index.js",
@@ -61,6 +61,6 @@
61
61
  "build:esm": "rimraf dist && node ../../scripts/buildBase.js && yarn gen:types"
62
62
  },
63
63
  "dependencies": {
64
- "@excalidraw/common": "0.18.0-f87f6d086"
64
+ "@excalidraw/common": "0.18.0-ffcb67b"
65
65
  }
66
66
  }