@excalidraw/element 0.18.0-5fffc47 → 0.18.0-60b2758

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 (232) hide show
  1. package/dist/dev/index.js +4410 -2226
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +18 -18
  4. package/dist/types/common/debug.d.ts +21 -0
  5. package/dist/types/common/src/bounds.d.ts +10 -0
  6. package/dist/types/common/src/colors.d.ts +59 -39
  7. package/dist/types/common/src/constants.d.ts +19 -27
  8. package/dist/types/common/src/editorInterface.d.ts +34 -0
  9. package/dist/types/common/src/font-metadata.d.ts +1 -3
  10. package/dist/types/common/src/index.d.ts +3 -0
  11. package/dist/types/common/src/keys.d.ts +1 -1
  12. package/dist/types/common/src/utility-types.d.ts +0 -1
  13. package/dist/types/common/src/utils.d.ts +50 -39
  14. package/dist/types/element/src/Scene.d.ts +3 -3
  15. package/dist/types/element/src/arrows/focus.d.ts +27 -0
  16. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  17. package/dist/types/element/src/binding.d.ts +66 -46
  18. package/dist/types/element/src/bounds.d.ts +2 -10
  19. package/dist/types/element/src/collision.d.ts +7 -2
  20. package/dist/types/element/src/comparisons.d.ts +7 -7
  21. package/dist/types/element/src/distribute.d.ts +2 -1
  22. package/dist/types/element/src/dragElements.d.ts +3 -3
  23. package/dist/types/element/src/duplicate.d.ts +3 -3
  24. package/dist/types/element/src/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 +3 -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/renderElement.d.ts +1 -7
  33. package/dist/types/element/src/resizeElements.d.ts +10 -10
  34. package/dist/types/element/src/resizeTest.d.ts +6 -5
  35. package/dist/types/element/src/selection.d.ts +3 -7
  36. package/dist/types/element/src/shape.d.ts +8 -7
  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 +8 -12
  42. package/dist/types/element/src/utils.d.ts +8 -3
  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 +99 -160
  46. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
  47. package/dist/types/excalidraw/actions/actionBoundText.d.ts +71 -112
  48. package/dist/types/excalidraw/actions/actionCanvas.d.ts +424 -858
  49. package/dist/types/excalidraw/actions/actionClipboard.d.ts +90 -892
  50. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +34 -55
  51. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +118 -183
  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 +26 -53
  55. package/dist/types/excalidraw/actions/actionElementLock.d.ts +70 -111
  56. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +35 -56
  57. package/dist/types/excalidraw/actions/actionExport.d.ts +153 -1166
  58. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -404
  59. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
  60. package/dist/types/excalidraw/actions/actionFrame.d.ts +235 -354
  61. package/dist/types/excalidraw/actions/actionGroup.d.ts +74 -123
  62. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +143 -202
  63. package/dist/types/excalidraw/actions/actionLink.d.ts +33 -54
  64. package/dist/types/excalidraw/actions/actionMenu.d.ts +24 -51
  65. package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -369
  66. package/dist/types/excalidraw/actions/actionProperties.d.ts +131 -2576
  67. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +37 -62
  68. package/dist/types/excalidraw/actions/actionStyles.d.ts +34 -55
  69. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
  70. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +34 -55
  71. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +34 -55
  72. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +23 -50
  73. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  74. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +34 -55
  75. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +34 -55
  76. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +35 -56
  77. package/dist/types/excalidraw/actions/actionZindex.d.ts +2 -3
  78. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  79. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  80. package/dist/types/excalidraw/actions/types.d.ts +3 -3
  81. package/dist/types/excalidraw/appState.d.ts +13 -13
  82. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  83. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  84. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  85. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  86. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  87. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  88. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  89. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  90. package/dist/types/excalidraw/clipboard.d.ts +11 -35
  91. package/dist/types/excalidraw/components/Actions.d.ts +5 -2
  92. package/dist/types/excalidraw/components/App.d.ts +68 -60
  93. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  94. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  95. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -2
  96. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
  97. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  98. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +2 -4
  99. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  100. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  101. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  102. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  103. package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
  104. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  105. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -1
  106. package/dist/types/excalidraw/components/EyeDropper.d.ts +0 -1
  107. package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
  108. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  109. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  110. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  111. package/dist/types/excalidraw/components/InlineIcon.d.ts +2 -2
  112. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  113. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
  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 +1 -1
  117. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -1
  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/PasteChartDialog.d.ts +4 -5
  121. package/dist/types/excalidraw/components/Popover.d.ts +2 -1
  122. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  123. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  124. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  125. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  126. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +15 -21
  127. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  128. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  129. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  130. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  131. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  132. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  133. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  134. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  135. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
  136. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  137. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  138. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  139. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
  140. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
  141. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
  142. package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
  143. package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
  144. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
  145. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  146. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
  147. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +2 -2
  148. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  149. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  150. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  151. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  152. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  153. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  154. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  155. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
  156. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  157. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  158. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  159. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
  160. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
  161. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
  162. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +24 -0
  163. package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
  164. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
  165. package/dist/types/excalidraw/components/Toast.d.ts +3 -3
  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 +48 -38
  169. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -6
  170. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  171. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
  172. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  173. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
  174. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +0 -1
  175. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  176. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  177. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  178. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  179. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  180. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  181. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +2 -2
  182. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  183. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  184. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  185. package/dist/types/excalidraw/components/icons.d.ts +27 -13
  186. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +4 -3
  187. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +17 -2
  188. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -35
  189. package/dist/types/excalidraw/components/shapes.d.ts +74 -1
  190. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +6 -6
  191. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +15 -16
  192. package/dist/types/excalidraw/data/blob.d.ts +319 -3
  193. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  194. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  195. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  196. package/dist/types/excalidraw/data/index.d.ts +3 -3
  197. package/dist/types/excalidraw/data/json.d.ts +158 -2
  198. package/dist/types/excalidraw/data/library.d.ts +24 -9
  199. package/dist/types/excalidraw/data/restore.d.ts +25 -10
  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/useOutsideClick.d.ts +4 -3
  203. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  204. package/dist/types/excalidraw/i18n.d.ts +2 -2
  205. package/dist/types/excalidraw/index.d.ts +8 -7
  206. package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
  207. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
  208. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
  209. package/dist/types/excalidraw/scene/Renderer.d.ts +5 -2
  210. package/dist/types/excalidraw/scene/export.d.ts +2 -2
  211. package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
  212. package/dist/types/excalidraw/scene/types.d.ts +22 -5
  213. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  214. package/dist/types/excalidraw/snapping.d.ts +5 -5
  215. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  216. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  217. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  218. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  219. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  220. package/dist/types/excalidraw/types.d.ts +34 -29
  221. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -2
  222. package/dist/types/math/src/point.d.ts +6 -1
  223. package/dist/types/math/src/polygon.d.ts +2 -2
  224. package/dist/types/math/src/range.d.ts +1 -3
  225. package/dist/types/math/src/segment.d.ts +3 -3
  226. package/dist/types/math/src/types.d.ts +25 -1
  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
  232. package/dist/types/excalidraw/charts.d.ts +0 -27
@@ -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, 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,16 +126,19 @@ 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
+ activeTool: AppState["activeTool"];
131
134
  activeEmbeddable: AppState["activeEmbeddable"];
132
135
  selectionElement: AppState["selectionElement"];
133
136
  selectedGroupIds: AppState["selectedGroupIds"];
134
137
  selectedLinearElement: AppState["selectedLinearElement"];
135
138
  multiElement: AppState["multiElement"];
139
+ newElement: AppState["newElement"];
136
140
  isBindingEnabled: AppState["isBindingEnabled"];
137
- suggestedBindings: AppState["suggestedBindings"];
141
+ suggestedBinding: AppState["suggestedBinding"];
138
142
  isRotating: AppState["isRotating"];
139
143
  elementsToHighlight: AppState["elementsToHighlight"];
140
144
  collaborators: AppState["collaborators"];
@@ -145,6 +149,11 @@ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
145
149
  croppingElementId: AppState["croppingElementId"];
146
150
  searchMatches: AppState["searchMatches"];
147
151
  activeLockedId: AppState["activeLockedId"];
152
+ hoveredElementIds: AppState["hoveredElementIds"];
153
+ frameRendering: AppState["frameRendering"];
154
+ shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
155
+ exportScale: AppState["exportScale"];
156
+ currentItemArrowType: AppState["currentItemArrowType"];
148
157
  }>;
149
158
  export type ObservedAppState = ObservedStandaloneAppState & ObservedElementsAppState;
150
159
  export type ObservedStandaloneAppState = {
@@ -198,7 +207,10 @@ export interface AppState {
198
207
  selectionElement: NonDeletedExcalidrawElement | null;
199
208
  isBindingEnabled: boolean;
200
209
  startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
201
- suggestedBindings: SuggestedBinding[];
210
+ suggestedBinding: {
211
+ element: NonDeleted<ExcalidrawBindableElement>;
212
+ midPoint?: GlobalPoint;
213
+ } | null;
202
214
  frameToHighlight: NonDeleted<ExcalidrawFrameLikeElement> | null;
203
215
  frameRendering: {
204
216
  enabled: boolean;
@@ -268,9 +280,15 @@ export interface AppState {
268
280
  tab: "text-to-diagram" | "mermaid";
269
281
  } | {
270
282
  name: "commandPalette";
283
+ } | {
284
+ name: "settings";
271
285
  } | {
272
286
  name: "elementLinkSelector";
273
287
  sourceElementId: ExcalidrawElement["id"];
288
+ } | {
289
+ name: "charts";
290
+ data: Spreadsheet;
291
+ rawText: string;
274
292
  };
275
293
  /**
276
294
  * Reflects user preference for whether the default sidebar should be docked.
@@ -322,14 +340,6 @@ export interface AppState {
322
340
  /** bitmap. Use `STATS_PANELS` bit values */
323
341
  panels: number;
324
342
  };
325
- currentChartType: ChartType;
326
- pasteDialog: {
327
- shown: false;
328
- data: null;
329
- } | {
330
- shown: true;
331
- data: Spreadsheet;
332
- };
333
343
  showHyperlinkPopup: false | "info" | "editor";
334
344
  selectedLinearElement: LinearElementEditor | null;
335
345
  snapLines: readonly SnapLine[];
@@ -355,8 +365,7 @@ export interface AppState {
355
365
  lockedMultiSelections: {
356
366
  [groupId: string]: true;
357
367
  };
358
- /** properties sidebar mode - determines whether to show compact or complete sidebar */
359
- stylesPanelMode: "compact" | "full" | "mobile";
368
+ bindMode: BindMode;
360
369
  }
361
370
  export type SearchMatch = {
362
371
  id: string;
@@ -369,7 +378,7 @@ export type SearchMatch = {
369
378
  showOnCanvas: boolean;
370
379
  }[];
371
380
  };
372
- export type UIAppState = Omit<AppState, "suggestedBindings" | "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
381
+ export type UIAppState = Omit<AppState, "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
373
382
  export type NormalizedZoomValue = number & {
374
383
  _brand: "normalizedZoom";
375
384
  };
@@ -505,6 +514,11 @@ export type UIOptions = Partial<{
505
514
  tools: {
506
515
  image: boolean;
507
516
  };
517
+ /**
518
+ * Optionally control the editor form factor and desktop UI mode from the host app.
519
+ * If not provided, we will take care of it internally.
520
+ */
521
+ getFormFactor?: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
508
522
  /** @deprecated does nothing. Will be removed in 0.15 */
509
523
  welcomeScreen?: boolean;
510
524
  }>;
@@ -535,7 +549,7 @@ export type AppClassProperties = {
535
549
  mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
536
550
  }>;
537
551
  files: BinaryFiles;
538
- device: App["device"];
552
+ editorInterface: App["editorInterface"];
539
553
  scene: App["scene"];
540
554
  syncActionResult: App["syncActionResult"];
541
555
  fonts: App["fonts"];
@@ -565,6 +579,8 @@ export type AppClassProperties = {
565
579
  onPointerUpEmitter: App["onPointerUpEmitter"];
566
580
  updateEditorAtom: App["updateEditorAtom"];
567
581
  onPointerDownEmitter: App["onPointerDownEmitter"];
582
+ lastPointerMoveCoords: App["lastPointerMoveCoords"];
583
+ bindModeHandler: App["bindModeHandler"];
568
584
  };
569
585
  export type PointerDownState = Readonly<{
570
586
  origin: Readonly<{
@@ -650,6 +666,7 @@ export interface ExcalidrawImperativeAPI {
650
666
  setCursor: InstanceType<typeof App>["setCursor"];
651
667
  resetCursor: InstanceType<typeof App>["resetCursor"];
652
668
  toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
669
+ getEditorInterface: () => EditorInterface;
653
670
  /**
654
671
  * Disables rendering of frames (including element clipping), but currently
655
672
  * the frames are still interactive in edit mode. As such, this API should be
@@ -663,17 +680,6 @@ export interface ExcalidrawImperativeAPI {
663
680
  onScrollChange: (callback: (scrollX: number, scrollY: number, zoom: Zoom) => void) => UnsubscribeCallback;
664
681
  onUserFollow: (callback: (payload: OnUserFollowedPayload) => void) => UnsubscribeCallback;
665
682
  }
666
- export type Device = Readonly<{
667
- viewport: {
668
- isMobile: boolean;
669
- isLandscape: boolean;
670
- };
671
- editor: {
672
- isMobile: boolean;
673
- canFitSidebar: boolean;
674
- };
675
- isTouchScreen: boolean;
676
- }>;
677
683
  export type FrameNameBounds = {
678
684
  x: number;
679
685
  y: number;
@@ -713,4 +719,3 @@ export type Offsets = Partial<{
713
719
  bottom: number;
714
720
  left: number;
715
721
  }>;
716
- 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,4 +1,4 @@
1
- import type { LocalPoint, GlobalPoint, Radians, Degrees, Vector } from "./types";
1
+ import type { LocalPoint, GlobalPoint, Radians, Degrees, Vector, GlobalCoord, LocalCoord } from "./types";
2
2
  /**
3
3
  * Create a properly typed Point instance from the X and Y coordinates.
4
4
  *
@@ -7,6 +7,11 @@ import type { LocalPoint, GlobalPoint, Radians, Degrees, Vector } from "./types"
7
7
  * @returns The branded and created point
8
8
  */
9
9
  export declare function pointFrom<Point extends GlobalPoint | LocalPoint>(x: number, y: number): Point;
10
+ export declare function pointFrom<Coord extends GlobalCoord | LocalCoord>(coords: Coord): Coord extends GlobalCoord ? GlobalPoint : LocalPoint;
11
+ export declare function pointFrom<Point extends GlobalPoint | LocalPoint>(coords: {
12
+ x: number;
13
+ y: number;
14
+ }): Point;
10
15
  /**
11
16
  * Converts and remaps an array containing a pair of numbers to Point.
12
17
  *
@@ -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
  *
@@ -19,12 +19,24 @@ export type InclusiveRange = [number, number] & {
19
19
  _brand: "excalimath_degree";
20
20
  };
21
21
  /**
22
- * Represents a 2D position in world or canvas space. A
22
+ * Represents a 2D position in world/canvas/scene space. A
23
23
  * global coordinate.
24
24
  */
25
25
  export type GlobalPoint = [x: number, y: number] & {
26
26
  _brand: "excalimath__globalpoint";
27
27
  };
28
+ /**
29
+ * Represents a 2D position in world/canvas/scene space. A
30
+ * global coordinate.
31
+ *
32
+ * TODO remove this once we migrate the codebase to use Point tuples everywhere
33
+ */
34
+ export type GlobalCoord = {
35
+ x: number;
36
+ y: number;
37
+ } & {
38
+ _brand: "excalimath__globalcoord";
39
+ };
28
40
  /**
29
41
  * Represents a 2D position in whatever local space it's
30
42
  * needed. A local coordinate.
@@ -32,6 +44,18 @@ export type GlobalPoint = [x: number, y: number] & {
32
44
  export type LocalPoint = [x: number, y: number] & {
33
45
  _brand: "excalimath__localpoint";
34
46
  };
47
+ /**
48
+ * Represents a 2D position in whatever local space it's needed.
49
+ * A local coordinate.
50
+ *
51
+ * TODO remove this once we migrate the codebase to use Point tuples everywhere
52
+ */
53
+ export type LocalCoord = {
54
+ x: number;
55
+ y: number;
56
+ } & {
57
+ _brand: "excalimath__localcoord";
58
+ };
35
59
  /**
36
60
  * A line is an infinitely long object with no width, depth, or curvature.
37
61
  */
@@ -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-5fffc47",
3
+ "version": "0.18.0-60b2758",
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-5fffc47",
61
- "@excalidraw/math": "0.18.0-5fffc47"
66
+ "@excalidraw/common": "0.18.0-60b2758",
67
+ "@excalidraw/math": "0.18.0-60b2758"
62
68
  }
63
69
  }
@@ -1,27 +0,0 @@
1
- import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
2
- export type ChartElements = readonly NonDeletedExcalidrawElement[];
3
- export interface Spreadsheet {
4
- title: string | null;
5
- labels: string[] | null;
6
- values: number[];
7
- }
8
- export declare const NOT_SPREADSHEET = "NOT_SPREADSHEET";
9
- export declare const VALID_SPREADSHEET = "VALID_SPREADSHEET";
10
- type ParseSpreadsheetResult = {
11
- type: typeof NOT_SPREADSHEET;
12
- reason: string;
13
- } | {
14
- type: typeof VALID_SPREADSHEET;
15
- spreadsheet: Spreadsheet;
16
- };
17
- /**
18
- * @private exported for testing
19
- */
20
- export declare const tryParseNumber: (s: string) => number | null;
21
- /**
22
- * @private exported for testing
23
- */
24
- export declare const tryParseCells: (cells: string[][]) => ParseSpreadsheetResult;
25
- export declare const tryParseSpreadsheet: (text: string) => ParseSpreadsheetResult;
26
- export declare const renderSpreadsheet: (chartType: string, spreadsheet: Spreadsheet, x: number, y: number) => ChartElements;
27
- export {};