@excalidraw/element 0.18.0-200a6bd94 → 0.18.0-2a82821

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 (295) hide show
  1. package/dist/dev/index.js +8373 -5210
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +20 -19
  4. package/dist/types/common/debug.d.ts +21 -0
  5. package/dist/types/common/src/appEventBus.d.ts +27 -0
  6. package/dist/types/common/src/bounds.d.ts +10 -0
  7. package/dist/types/common/src/colors.d.ts +59 -39
  8. package/dist/types/common/src/constants.d.ts +46 -33
  9. package/dist/types/common/src/editorInterface.d.ts +34 -0
  10. package/dist/types/common/src/font-metadata.d.ts +1 -3
  11. package/dist/types/common/src/index.d.ts +5 -0
  12. package/dist/types/common/src/keys.d.ts +1 -1
  13. package/dist/types/common/src/utility-types.d.ts +0 -1
  14. package/dist/types/common/src/utils.d.ts +53 -41
  15. package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
  16. package/dist/types/element/src/Scene.d.ts +16 -8
  17. package/dist/types/element/src/arrowheads.d.ts +3 -0
  18. package/dist/types/element/src/arrows/focus.d.ts +27 -0
  19. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  20. package/dist/types/element/src/binding.d.ts +67 -48
  21. package/dist/types/element/src/bounds.d.ts +25 -14
  22. package/dist/types/element/src/collision.d.ts +7 -2
  23. package/dist/types/element/src/comparisons.d.ts +8 -7
  24. package/dist/types/element/src/delta.d.ts +6 -4
  25. package/dist/types/element/src/distribute.d.ts +2 -1
  26. package/dist/types/element/src/dragElements.d.ts +3 -3
  27. package/dist/types/element/src/duplicate.d.ts +4 -3
  28. package/dist/types/element/src/elbowArrow.d.ts +2 -0
  29. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  30. package/dist/types/element/src/frame.d.ts +12 -7
  31. package/dist/types/element/src/heading.d.ts +2 -1
  32. package/dist/types/element/src/image.d.ts +1 -11
  33. package/dist/types/element/src/index.d.ts +5 -3
  34. package/dist/types/element/src/linearElementEditor.d.ts +23 -22
  35. package/dist/types/element/src/mutateElement.d.ts +5 -1
  36. package/dist/types/element/src/newElement.d.ts +7 -6
  37. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  38. package/dist/types/element/src/renderElement.d.ts +4 -7
  39. package/dist/types/element/src/resizeElements.d.ts +10 -10
  40. package/dist/types/element/src/resizeTest.d.ts +6 -5
  41. package/dist/types/element/src/selection.d.ts +10 -10
  42. package/dist/types/element/src/shape.d.ts +9 -8
  43. package/dist/types/element/src/store.d.ts +6 -1
  44. package/dist/types/element/src/textElement.d.ts +2 -2
  45. package/dist/types/element/src/textMeasurements.d.ts +1 -3
  46. package/dist/types/element/src/textWrapping.d.ts +26 -0
  47. package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
  48. package/dist/types/element/src/transformHandles.d.ts +8 -27
  49. package/dist/types/element/src/typeChecks.d.ts +5 -7
  50. package/dist/types/element/src/types.d.ts +18 -13
  51. package/dist/types/element/src/utils.d.ts +9 -4
  52. package/dist/types/element/src/visualdebug.d.ts +58 -0
  53. package/dist/types/element/src/zindex.d.ts +7 -1
  54. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +137 -174
  55. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
  56. package/dist/types/excalidraw/actions/actionBoundText.d.ts +98 -123
  57. package/dist/types/excalidraw/actions/actionCanvas.d.ts +581 -913
  58. package/dist/types/excalidraw/actions/actionClipboard.d.ts +100 -866
  59. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +47 -60
  60. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +157 -198
  61. package/dist/types/excalidraw/actions/actionDeselect.d.ts +160 -0
  62. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  63. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -3
  64. package/dist/types/excalidraw/actions/actionElementLink.d.ts +39 -58
  65. package/dist/types/excalidraw/actions/actionElementLock.d.ts +96 -121
  66. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +48 -61
  67. package/dist/types/excalidraw/actions/actionExport.d.ts +177 -1407
  68. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -394
  69. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
  70. package/dist/types/excalidraw/actions/actionFrame.d.ts +288 -374
  71. package/dist/types/excalidraw/actions/actionGroup.d.ts +101 -134
  72. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +158 -208
  73. package/dist/types/excalidraw/actions/actionLink.d.ts +45 -58
  74. package/dist/types/excalidraw/actions/actionMenu.d.ts +38 -423
  75. package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -359
  76. package/dist/types/excalidraw/actions/actionProperties.d.ts +164 -2510
  77. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +50 -67
  78. package/dist/types/excalidraw/actions/actionStyles.d.ts +47 -59
  79. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  80. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +173 -0
  81. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +47 -60
  82. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +173 -0
  83. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +47 -60
  84. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +36 -55
  85. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  86. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +47 -60
  87. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +47 -60
  88. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +48 -61
  89. package/dist/types/excalidraw/actions/actionZindex.d.ts +2 -3
  90. package/dist/types/excalidraw/actions/index.d.ts +5 -2
  91. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  92. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  93. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  94. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  95. package/dist/types/excalidraw/appState.d.ts +24 -15
  96. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  97. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  98. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  99. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  100. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  101. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  102. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  103. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  104. package/dist/types/excalidraw/clipboard.d.ts +57 -19
  105. package/dist/types/excalidraw/components/Actions.d.ts +22 -5
  106. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  107. package/dist/types/excalidraw/components/App.d.ts +129 -79
  108. package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
  109. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  110. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  111. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
  112. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
  113. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
  114. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
  115. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -2
  116. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  117. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
  118. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  119. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +2 -4
  120. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +3 -3
  121. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  122. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  123. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  124. package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
  125. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  126. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -2
  127. package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
  128. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  129. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
  130. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  131. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  132. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  133. package/dist/types/excalidraw/components/IconPicker.d.ts +14 -9
  134. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  135. package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
  136. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  137. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  138. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
  139. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
  140. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
  141. package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
  142. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
  143. package/dist/types/excalidraw/components/MobileToolBar.d.ts +10 -0
  144. package/dist/types/excalidraw/components/Modal.d.ts +0 -1
  145. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
  146. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  147. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
  148. package/dist/types/excalidraw/components/Popover.d.ts +2 -1
  149. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +2 -1
  150. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  151. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  152. package/dist/types/excalidraw/components/Range.d.ts +10 -4
  153. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  154. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  155. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  156. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +16 -22
  157. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  158. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  159. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  160. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  161. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  162. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  163. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  164. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  165. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
  166. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  167. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  168. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  169. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
  170. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
  171. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
  172. package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
  173. package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
  174. package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
  175. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
  176. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  177. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
  178. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
  179. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +5 -2
  180. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  181. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  182. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  183. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  184. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  185. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  186. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
  187. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  188. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  189. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  190. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
  191. package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
  192. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
  193. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
  194. package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
  195. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
  196. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
  197. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
  198. package/dist/types/excalidraw/components/TextField.d.ts +1 -0
  199. package/dist/types/excalidraw/components/Toast.d.ts +11 -7
  200. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  201. package/dist/types/excalidraw/components/Trans.d.ts +2 -2
  202. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +8 -4
  203. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
  204. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  205. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +47 -35
  206. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -5
  207. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  208. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
  209. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  210. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
  211. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -2
  212. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  213. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  214. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  215. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  216. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  217. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  218. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +2 -2
  219. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  220. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  221. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  222. package/dist/types/excalidraw/components/icons.d.ts +51 -21
  223. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +24 -3
  224. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -35
  225. package/dist/types/excalidraw/components/shapes.d.ts +209 -1
  226. package/dist/types/excalidraw/data/blob.d.ts +329 -12
  227. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  228. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  229. package/dist/types/excalidraw/data/filesystem.d.ts +5 -7
  230. package/dist/types/excalidraw/data/index.d.ts +4 -5
  231. package/dist/types/excalidraw/data/json.d.ts +171 -4
  232. package/dist/types/excalidraw/data/library.d.ts +25 -10
  233. package/dist/types/excalidraw/data/resave.d.ts +7 -2
  234. package/dist/types/excalidraw/data/restore.d.ts +27 -7
  235. package/dist/types/excalidraw/data/types.d.ts +4 -1
  236. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  237. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  238. package/dist/types/excalidraw/errors.d.ts +14 -0
  239. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +2 -2
  240. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
  241. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  242. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  243. package/dist/types/excalidraw/i18n.d.ts +2 -2
  244. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  245. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  246. package/dist/types/excalidraw/renderer/animation.d.ts +15 -0
  247. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
  248. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
  249. package/dist/types/excalidraw/scene/Renderer.d.ts +428 -18
  250. package/dist/types/excalidraw/scene/export.d.ts +2 -2
  251. package/dist/types/excalidraw/scene/index.d.ts +1 -1
  252. package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
  253. package/dist/types/excalidraw/scene/types.d.ts +22 -5
  254. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  255. package/dist/types/excalidraw/snapping.d.ts +5 -5
  256. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  257. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  258. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  259. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  260. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  261. package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
  262. package/dist/types/excalidraw/types.d.ts +149 -38
  263. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +7 -3
  264. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  265. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  266. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  267. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  268. package/dist/types/laser-pointer/src/state.d.ts +35 -0
  269. package/dist/types/math/src/constants.d.ts +0 -1
  270. package/dist/types/math/src/curve.d.ts +4 -1
  271. package/dist/types/math/src/point.d.ts +8 -2
  272. package/dist/types/math/src/polygon.d.ts +2 -2
  273. package/dist/types/math/src/range.d.ts +1 -3
  274. package/dist/types/math/src/segment.d.ts +4 -3
  275. package/dist/types/math/src/types.d.ts +25 -1
  276. package/dist/types/utils/src/export.d.ts +5 -5
  277. package/dist/types/utils/src/index.d.ts +1 -2
  278. package/dist/types/utils/src/shape.d.ts +6 -6
  279. package/package.json +10 -3
  280. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  281. package/dist/types/excalidraw/charts.d.ts +0 -27
  282. package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
  283. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -16
  284. package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
  285. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -9
  286. package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
  287. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -10
  288. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -58
  289. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -19
  290. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +0 -85
  291. package/dist/types/excalidraw/data/reconcile.d.ts +0 -7
  292. package/dist/types/excalidraw/index.d.ts +0 -47
  293. package/dist/types/excalidraw/polyfill.d.ts +0 -2
  294. package/dist/types/utils/src/bbox.d.ts +0 -9
  295. package/dist/types/utils/src/withinBounds.d.ts +0 -19
@@ -1,16 +1,15 @@
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, StrokeWidthKey } 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, ExcalidrawTextElement, StrokeVariability } 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";
11
11
  import type App from "./components/App";
12
12
  import type Library from "./data/library";
13
- import type { FileSystemHandle } from "./data/filesystem";
14
13
  import type { ContextMenuItems } from "./components/ContextMenu";
15
14
  import type { SnapLine } from "./snapping";
16
15
  import type { ImportedDataState } from "./data/types";
@@ -18,6 +17,7 @@ import type { Language } from "./i18n";
18
17
  import type { isOverScrollBars } from "./scene/scrollbars";
19
18
  import type React from "react";
20
19
  import type { JSX } from "react";
20
+ export type { App };
21
21
  export type SocketId = string & {
22
22
  _brand: "SocketId";
23
23
  };
@@ -125,16 +125,20 @@ export type StaticCanvasAppState = Readonly<_CommonCanvasAppState & {
125
125
  frameRendering: AppState["frameRendering"];
126
126
  currentHoveredFontFamily: AppState["currentHoveredFontFamily"];
127
127
  hoveredElementIds: AppState["hoveredElementIds"];
128
+ suggestedBinding: AppState["suggestedBinding"];
128
129
  croppingElementId: AppState["croppingElementId"];
129
130
  }>;
130
131
  export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
132
+ activeTool: AppState["activeTool"];
131
133
  activeEmbeddable: AppState["activeEmbeddable"];
132
134
  selectionElement: AppState["selectionElement"];
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
+ isMidpointSnappingEnabled: AppState["isMidpointSnappingEnabled"];
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 = {
@@ -155,14 +164,15 @@ export type ObservedElementsAppState = {
155
164
  editingGroupId: AppState["editingGroupId"];
156
165
  selectedElementIds: AppState["selectedElementIds"];
157
166
  selectedGroupIds: AppState["selectedGroupIds"];
158
- activeLinearElement: {
159
- id: LinearElementEditor["elementId"];
167
+ selectedLinearElement: {
168
+ elementId: LinearElementEditor["elementId"];
160
169
  isEditing: boolean;
161
170
  } | null;
162
171
  croppingElementId: AppState["croppingElementId"];
163
172
  lockedMultiSelections: AppState["lockedMultiSelections"];
164
173
  activeLockedId: AppState["activeLockedId"];
165
174
  };
175
+ export type BoxSelectionMode = "contain" | "overlap";
166
176
  export interface AppState {
167
177
  contextMenu: {
168
178
  items: ContextMenuItems;
@@ -196,9 +206,25 @@ export interface AppState {
196
206
  * - set on pointer down, updated during pointer move
197
207
  */
198
208
  selectionElement: NonDeletedExcalidrawElement | null;
209
+ /**
210
+ * tracking current arrow binding editor state (takes into account
211
+ * `bindingPreference` and keyboard modifiers (ctrl/alt)
212
+ */
199
213
  isBindingEnabled: boolean;
200
- startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
201
- suggestedBindings: SuggestedBinding[];
214
+ /** user box selection preference; defaults to "contain" when unset */
215
+ boxSelectionMode: BoxSelectionMode;
216
+ /** user arrow binding preference */
217
+ bindingPreference: "enabled" | "disabled";
218
+ /** user preference whether arrow snap to midpoints while binding */
219
+ isMidpointSnappingEnabled: boolean;
220
+ /**
221
+ * The bindable element the UI highlights for the user when an arrow is
222
+ * dragged or otherwise its endpoint being close to said element.
223
+ */
224
+ suggestedBinding: {
225
+ element: NonDeleted<ExcalidrawBindableElement>;
226
+ midPoint?: GlobalPoint;
227
+ } | null;
202
228
  frameToHighlight: NonDeleted<ExcalidrawFrameLikeElement> | null;
203
229
  frameRendering: {
204
230
  enabled: boolean;
@@ -211,7 +237,7 @@ export interface AppState {
211
237
  /**
212
238
  * set when a new text is created or when an existing text is being edited
213
239
  */
214
- editingTextElement: NonDeletedExcalidrawElement | null;
240
+ editingTextElement: ExcalidrawTextElement | null;
215
241
  activeTool: {
216
242
  /**
217
243
  * indicates a previous tool we should revert back to if we deselect the
@@ -221,6 +247,10 @@ export interface AppState {
221
247
  locked: boolean;
222
248
  fromSelection: boolean;
223
249
  } & ActiveTool;
250
+ preferredSelectionTool: {
251
+ type: "selection" | "lasso";
252
+ initialized: boolean;
253
+ };
224
254
  penMode: boolean;
225
255
  penDetected: boolean;
226
256
  exportBackground: boolean;
@@ -230,9 +260,10 @@ export interface AppState {
230
260
  currentItemStrokeColor: string;
231
261
  currentItemBackgroundColor: string;
232
262
  currentItemFillStyle: ExcalidrawElement["fillStyle"];
233
- currentItemStrokeWidth: number;
263
+ currentItemStrokeWidthKey: StrokeWidthKey;
234
264
  currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
235
265
  currentItemRoughness: number;
266
+ currentItemStrokeVariability: StrokeVariability;
236
267
  currentItemOpacity: number;
237
268
  currentItemFontFamily: FontFamilyValues;
238
269
  currentItemFontSize: number;
@@ -251,8 +282,8 @@ export interface AppState {
251
282
  isResizing: boolean;
252
283
  isRotating: boolean;
253
284
  zoom: Zoom;
254
- openMenu: "canvas" | "shape" | null;
255
- openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | null;
285
+ openMenu: "canvas" | null;
286
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
256
287
  openSidebar: {
257
288
  name: SidebarName;
258
289
  tab?: SidebarTabName;
@@ -264,9 +295,15 @@ export interface AppState {
264
295
  tab: "text-to-diagram" | "mermaid";
265
296
  } | {
266
297
  name: "commandPalette";
298
+ } | {
299
+ name: "settings";
267
300
  } | {
268
301
  name: "elementLinkSelector";
269
302
  sourceElementId: ExcalidrawElement["id"];
303
+ } | {
304
+ name: "charts";
305
+ data: Spreadsheet;
306
+ rawText: string;
270
307
  };
271
308
  /**
272
309
  * Reflects user preference for whether the default sidebar should be docked.
@@ -289,7 +326,7 @@ export interface AppState {
289
326
  selectedElementsAreBeingDragged: boolean;
290
327
  shouldCacheIgnoreZoom: boolean;
291
328
  toast: {
292
- message: string;
329
+ message: React.ReactNode;
293
330
  closable?: boolean;
294
331
  duration?: number;
295
332
  } | null;
@@ -311,21 +348,13 @@ export interface AppState {
311
348
  height: number;
312
349
  offsetTop: number;
313
350
  offsetLeft: number;
314
- fileHandle: FileSystemHandle | null;
351
+ fileHandle: FileSystemFileHandle | null;
315
352
  collaborators: Map<SocketId, Collaborator>;
316
353
  stats: {
317
354
  open: boolean;
318
355
  /** bitmap. Use `STATS_PANELS` bit values */
319
356
  panels: number;
320
357
  };
321
- currentChartType: ChartType;
322
- pasteDialog: {
323
- shown: false;
324
- data: null;
325
- } | {
326
- shown: true;
327
- data: Spreadsheet;
328
- };
329
358
  showHyperlinkPopup: false | "info" | "editor";
330
359
  selectedLinearElement: LinearElementEditor | null;
331
360
  snapLines: readonly SnapLine[];
@@ -351,6 +380,7 @@ export interface AppState {
351
380
  lockedMultiSelections: {
352
381
  [groupId: string]: true;
353
382
  };
383
+ bindMode: BindMode;
354
384
  }
355
385
  export type SearchMatch = {
356
386
  id: string;
@@ -363,7 +393,7 @@ export type SearchMatch = {
363
393
  showOnCanvas: boolean;
364
394
  }[];
365
395
  };
366
- export type UIAppState = Omit<AppState, "suggestedBindings" | "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
396
+ export type UIAppState = Omit<AppState, "cursorButton" | "scrollX" | "scrollY">;
367
397
  export type NormalizedZoomValue = number & {
368
398
  _brand: "normalizedZoom";
369
399
  };
@@ -411,11 +441,37 @@ export type OnUserFollowedPayload = {
411
441
  userToFollow: UserToFollow;
412
442
  action: "FOLLOW" | "UNFOLLOW";
413
443
  };
444
+ export type OnExportProgress = {
445
+ type: "progress";
446
+ message?: React.ReactNode;
447
+ /** 0-1 range */
448
+ progress?: number;
449
+ };
414
450
  export interface ExcalidrawProps {
415
451
  onChange?: (elements: readonly OrderedExcalidrawElement[], appState: AppState, files: BinaryFiles) => void;
452
+ onThemeChange?: (theme: Theme | "system") => void;
453
+ /**
454
+ * note: only subscribes if the props.onIncrement is defined on initial render
455
+ */
416
456
  onIncrement?: (event: DurableIncrement | EphemeralIncrement) => void;
417
457
  initialData?: (() => MaybePromise<ExcalidrawInitialDataState | null>) | MaybePromise<ExcalidrawInitialDataState | null>;
418
- excalidrawAPI?: (api: ExcalidrawImperativeAPI) => void;
458
+ /**
459
+ * Invoked as soon as the Excalidraw API is available
460
+ * NOTE editor is not yet mounted, and state is not yet initialized
461
+ */
462
+ onExcalidrawAPI?: (api: ExcalidrawImperativeAPI | null) => void;
463
+ /**
464
+ * Invoked once the editor root is mounted.
465
+ */
466
+ onMount?: (payload: ExcalidrawMountPayload) => void;
467
+ /**
468
+ * Invoked when the editor root is unmounted.
469
+ */
470
+ onUnmount?: () => void;
471
+ /**
472
+ * Invoked once the initial scene is loaded.
473
+ */
474
+ onInitialize?: (api: ExcalidrawImperativeAPI) => void;
419
475
  isCollaborating?: boolean;
420
476
  onPointerUpdate?: (payload: {
421
477
  pointer: {
@@ -441,6 +497,7 @@ export interface ExcalidrawProps {
441
497
  onDuplicate?: (nextElements: readonly ExcalidrawElement[],
442
498
  /** excludes the duplicated elements */
443
499
  prevElements: readonly ExcalidrawElement[]) => ExcalidrawElement[] | void;
500
+ renderTopLeftUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
444
501
  renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
445
502
  langCode?: Language["code"];
446
503
  viewModeEnabled?: boolean;
@@ -452,6 +509,10 @@ export interface ExcalidrawProps {
452
509
  name?: string;
453
510
  renderCustomStats?: (elements: readonly NonDeletedExcalidrawElement[], appState: UIAppState) => JSX.Element;
454
511
  UIOptions?: Partial<UIOptions>;
512
+ /**
513
+ * dimensions and size constraints for inserted images
514
+ */
515
+ imageOptions?: ImageOptions;
455
516
  detectScroll?: boolean;
456
517
  handleKeyboardGlobally?: boolean;
457
518
  onLibraryChange?: (libraryItems: LibraryItems) => void | Promise<any>;
@@ -471,6 +532,29 @@ export interface ExcalidrawProps {
471
532
  aiEnabled?: boolean;
472
533
  showDeprecatedFonts?: boolean;
473
534
  renderScrollbars?: boolean;
535
+ /**
536
+ * Called before exporting to a file.
537
+ *
538
+ * Allows the host app to intercept and delay saving until async operations
539
+ * (e.g., images are loaded) complete.
540
+ *
541
+ * If Promise/AsyncGenerator is returned, a progress toast will be shown
542
+ * until the operation completes. Generator can yield progress updates.
543
+ */
544
+ onExport?: (
545
+ /** type of export. Currently we only call for JSON exports or
546
+ * JSON-embedded PNG (which is also identified as `json` type here)*/
547
+ type: "json", data: {
548
+ elements: readonly ExcalidrawElement[];
549
+ appState: AppState;
550
+ files: BinaryFiles;
551
+ }, options: {
552
+ /** signal that gets aborted if user cancels the export (e.g. closes
553
+ * the native file picker dialog). In that case, you can either
554
+ * return immediately, or throw AbortError.
555
+ */
556
+ signal: AbortSignal;
557
+ }) => MaybePromise<void> | AsyncGenerator<OnExportProgress, void>;
474
558
  }
475
559
  export type SceneData = {
476
560
  elements?: ImportedDataState["elements"];
@@ -483,12 +567,21 @@ export type ExportOpts = {
483
567
  onExportToBackend?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: UIAppState, files: BinaryFiles) => void;
484
568
  renderCustomUI?: (exportedElements: readonly NonDeletedExcalidrawElement[], appState: UIAppState, files: BinaryFiles, canvas: HTMLCanvasElement) => JSX.Element;
485
569
  };
570
+ export type ImageOptions = Partial<{
571
+ maxWidthOrHeight: number;
572
+ maxFileSizeBytes: number;
573
+ }>;
486
574
  export type CanvasActions = Partial<{
487
575
  changeViewBackgroundColor: boolean;
488
576
  clearCanvas: boolean;
489
577
  export: false | ExportOpts;
490
578
  loadScene: boolean;
491
579
  saveToActiveFile: boolean;
580
+ /**
581
+ * defaults to true if `props.theme` is omitted or `props.onThemeChange`
582
+ * is supplied (at which point the theme is considered as host-app controlled),
583
+ * else default to false
584
+ * */
492
585
  toggleTheme: boolean | null;
493
586
  saveAsImage: boolean;
494
587
  }>;
@@ -498,6 +591,11 @@ export type UIOptions = Partial<{
498
591
  tools: {
499
592
  image: boolean;
500
593
  };
594
+ /**
595
+ * Optionally control the editor form factor and desktop UI mode from the host app.
596
+ * If not provided, we will take care of it internally.
597
+ */
598
+ getFormFactor?: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
501
599
  /** @deprecated does nothing. Will be removed in 0.15 */
502
600
  welcomeScreen?: boolean;
503
601
  }>;
@@ -507,6 +605,7 @@ export type AppProps = Merge<ExcalidrawProps, {
507
605
  export: ExportOpts;
508
606
  };
509
607
  }>;
608
+ imageOptions: Required<ImageOptions>;
510
609
  detectScroll: boolean;
511
610
  handleKeyboardGlobally: boolean;
512
611
  isCollaborating: boolean;
@@ -518,6 +617,8 @@ export type AppProps = Merge<ExcalidrawProps, {
518
617
  export type AppClassProperties = {
519
618
  props: AppProps;
520
619
  state: AppState;
620
+ api: App["api"];
621
+ sessionExportThemeOverride: App["sessionExportThemeOverride"];
521
622
  interactiveCanvas: HTMLCanvasElement | null;
522
623
  /** static canvas */
523
624
  canvas: HTMLCanvasElement;
@@ -528,7 +629,7 @@ export type AppClassProperties = {
528
629
  mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
529
630
  }>;
530
631
  files: BinaryFiles;
531
- device: App["device"];
632
+ editorInterface: App["editorInterface"];
532
633
  scene: App["scene"];
533
634
  syncActionResult: App["syncActionResult"];
534
635
  fonts: App["fonts"];
@@ -557,6 +658,12 @@ export type AppClassProperties = {
557
658
  excalidrawContainerValue: App["excalidrawContainerValue"];
558
659
  onPointerUpEmitter: App["onPointerUpEmitter"];
559
660
  updateEditorAtom: App["updateEditorAtom"];
661
+ onPointerDownEmitter: App["onPointerDownEmitter"];
662
+ onEvent: App["onEvent"];
663
+ onStateChange: App["onStateChange"];
664
+ lastPointerMoveCoords: App["lastPointerMoveCoords"];
665
+ bindModeHandler: App["bindModeHandler"];
666
+ setAppState: App["setAppState"];
560
667
  };
561
668
  export type PointerDownState = Readonly<{
562
669
  origin: Readonly<{
@@ -604,6 +711,7 @@ export type PointerDownState = Readonly<{
604
711
  x: number;
605
712
  y: number;
606
713
  };
714
+ blockDragging: boolean;
607
715
  };
608
716
  eventListeners: {
609
717
  onMove: null | ReturnType<typeof throttleRAF>;
@@ -616,8 +724,20 @@ export type PointerDownState = Readonly<{
616
724
  };
617
725
  }>;
618
726
  export type UnsubscribeCallback = () => void;
727
+ export type ExcalidrawMountPayload = {
728
+ excalidrawAPI: ExcalidrawImperativeAPI;
729
+ container: HTMLDivElement | null;
730
+ };
731
+ export type ExcalidrawImperativeAPIEventMap = {
732
+ "editor:mount": [payload: ExcalidrawMountPayload];
733
+ "editor:initialize": [api: ExcalidrawImperativeAPI];
734
+ "editor:unmount": [];
735
+ };
619
736
  export interface ExcalidrawImperativeAPI {
737
+ /** Whether the editor has been unmounted and the API is no longer usable. */
738
+ isDestroyed: boolean;
620
739
  updateScene: InstanceType<typeof App>["updateScene"];
740
+ applyDeltas: InstanceType<typeof App>["applyDeltas"];
621
741
  mutateElement: InstanceType<typeof App>["mutateElement"];
622
742
  updateLibrary: InstanceType<typeof Library>["updateLibrary"];
623
743
  resetScene: InstanceType<typeof App>["resetScene"];
@@ -640,6 +760,7 @@ export interface ExcalidrawImperativeAPI {
640
760
  setCursor: InstanceType<typeof App>["setCursor"];
641
761
  resetCursor: InstanceType<typeof App>["resetCursor"];
642
762
  toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
763
+ getEditorInterface: () => EditorInterface;
643
764
  /**
644
765
  * Disables rendering of frames (including element clipping), but currently
645
766
  * the frames are still interactive in edit mode. As such, this API should be
@@ -652,18 +773,9 @@ export interface ExcalidrawImperativeAPI {
652
773
  onPointerUp: (callback: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState, event: PointerEvent) => void) => UnsubscribeCallback;
653
774
  onScrollChange: (callback: (scrollX: number, scrollY: number, zoom: Zoom) => void) => UnsubscribeCallback;
654
775
  onUserFollow: (callback: (payload: OnUserFollowedPayload) => void) => UnsubscribeCallback;
776
+ onStateChange: InstanceType<typeof App>["onStateChange"];
777
+ onEvent: InstanceType<typeof App>["onEvent"];
655
778
  }
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
779
  export type FrameNameBounds = {
668
780
  x: number;
669
781
  y: number;
@@ -703,4 +815,3 @@ export type Offsets = Partial<{
703
815
  bottom: number;
704
816
  left: number;
705
817
  }>;
706
- export {};
@@ -1,7 +1,7 @@
1
1
  import type { ExcalidrawElement, ExcalidrawTextElement } from "@excalidraw/element/types";
2
2
  import type App from "../components/App";
3
3
  type SubmitHandler = () => void;
4
- export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords, element, canvas, excalidrawContainer, app, autoSelect, }: {
4
+ export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords, element, canvas, excalidrawContainer, app, autoSelect, initialCaretSceneCoords, }: {
5
5
  id: ExcalidrawElement["id"];
6
6
  /**
7
7
  * textWysiwyg only deals with `originalText`
@@ -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,10 @@ 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
+ initialCaretSceneCoords?: {
24
+ x: number;
25
+ y: number;
26
+ } | null;
23
27
  }) => SubmitHandler;
24
28
  export {};
@@ -0,0 +1,29 @@
1
+ export declare const BASE_62_DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
2
+ /**
3
+ * @param {string} key
4
+ * @param {string} digits
5
+ * @return {void}
6
+ */
7
+ export declare function validateOrderKey(key: string, digits?: string): void;
8
+ /**
9
+ * @param {string | null | undefined} a
10
+ * @param {string | null | undefined} b
11
+ * @param {string=} digits
12
+ * @return {string}
13
+ */
14
+ export declare function generateKeyBetween(a: string | null | undefined, b: string | null | undefined, digits?: string): string;
15
+ /**
16
+ * same preconditions as generateKeysBetween.
17
+ * n >= 0.
18
+ * Returns an array of n distinct keys in sorted order.
19
+ * If a and b are both null, returns [a0, a1, ...]
20
+ * If one or the other is null, returns consecutive "integer"
21
+ * keys. Otherwise, returns relatively short keys between
22
+ * a and b.
23
+ * @param {string | null | undefined} a
24
+ * @param {string | null | undefined} b
25
+ * @param {number} n
26
+ * @param {string} digits
27
+ * @return {string[]}
28
+ */
29
+ export declare function generateNKeysBetween(a: string | null | undefined, b: string | null | undefined, n: number, digits?: string): string[];
@@ -0,0 +1,2 @@
1
+ export * from "./state";
2
+ export type { Point } from "./math";
@@ -0,0 +1,16 @@
1
+ export type Point = [x: number, y: number, r: number];
2
+ export declare function add([ax, ay, ar]: Point, [bx, by, br]: Point): Point;
3
+ export declare function sub([ax, ay, ar]: Point, [bx, by, br]: Point): Point;
4
+ export declare function smul([x, y, r]: Point, s: number): Point;
5
+ export declare function norm([x, y, r]: Point): Point;
6
+ export declare function rot([x, y, r]: Point, rad: number): Point;
7
+ export declare function plerp(a: Point, b: Point, t: number): Point;
8
+ export declare function lerp(a: number, b: number, t: number): number;
9
+ export declare function angle(p: Point, p1: Point, p2: Point): number;
10
+ export declare function normAngle(a: number): number;
11
+ export declare function mag([x, y]: Point): number;
12
+ export declare function dist([ax, ay]: Point, [bx, by]: Point): number;
13
+ export declare function getCircleAndPerpendicularLineIntersectionsAtPoint(point: Point, direction: Point, radius: number): [Point, Point];
14
+ export declare function runLength(ps: Point[]): number;
15
+ export declare const clamp: (v: number, min: number, max: number) => number;
16
+ export declare function distancePointToSegment(p3: Point, p1: Point, p2: Point): number;
@@ -0,0 +1,2 @@
1
+ import { type Point } from "./math";
2
+ export declare function douglasPeucker(points: Point[], epsilon: number): Point[];
@@ -0,0 +1,35 @@
1
+ import type { Point } from "./math";
2
+ export type SizeMappingDetails = {
3
+ pressure: number;
4
+ runningLength: number;
5
+ currentIndex: number;
6
+ totalLength: number;
7
+ };
8
+ export type LaserPointerOptions = {
9
+ size: number;
10
+ streamline: number;
11
+ simplify: number;
12
+ simplifyPhase: "tail" | "output" | "input";
13
+ keepHead: boolean;
14
+ sizeMapping: (details: SizeMappingDetails) => number;
15
+ };
16
+ export declare class LaserPointer {
17
+ static defaults: LaserPointerOptions;
18
+ static constants: {
19
+ cornerDetectionMaxAngle: number;
20
+ cornerDetectionVariance: (s: number) => 1 | 0.5;
21
+ maxTailLength: number;
22
+ };
23
+ options: LaserPointerOptions;
24
+ constructor(options: Partial<LaserPointerOptions>);
25
+ originalPoints: Point[];
26
+ private stablePoints;
27
+ private tailPoints;
28
+ private isFresh;
29
+ private get lastPoint();
30
+ addPoint(point: Point): void;
31
+ close(): void;
32
+ stabilizeTail(): void;
33
+ private getSize;
34
+ getStrokeOutline(sizeOverride?: number | undefined): Point[];
35
+ }
@@ -1,3 +1,2 @@
1
- export declare const PRECISION = 0.0001;
2
1
  export declare const LegendreGaussN24TValues: number[];
3
2
  export declare const LegendreGaussN24CValues: number[];
@@ -12,7 +12,10 @@ export declare const bezierEquation: <Point extends GlobalPoint | LocalPoint>(c:
12
12
  /**
13
13
  * Computes the intersection between a cubic spline and a line segment.
14
14
  */
15
- export declare function curveIntersectLineSegment<Point extends GlobalPoint | LocalPoint>(c: Curve<Point>, l: LineSegment<Point>): Point[];
15
+ export declare function curveIntersectLineSegment<Point extends GlobalPoint | LocalPoint>(c: Curve<Point>, l: LineSegment<Point>, opts?: {
16
+ tolerance?: number;
17
+ iterLimit?: number;
18
+ }): Point[];
16
19
  /**
17
20
  * Finds the closest point on the Bezier curve from another point
18
21
  *
@@ -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
  *
@@ -52,7 +57,7 @@ export declare function pointsEqual<Point extends GlobalPoint | LocalPoint>(a: P
52
57
  * @param angle The radians to rotate the point by
53
58
  * @returns The rotated point
54
59
  */
55
- export declare function pointRotateRads<Point extends GlobalPoint | LocalPoint>([x, y]: Point, [cx, cy]: Point, angle: Radians): Point;
60
+ export declare function pointRotateRads<Point extends GlobalPoint | LocalPoint>(point: Point, center: Point, angle: Radians): Point;
56
61
  /**
57
62
  * Rotate a point by [angle] degree.
58
63
  *
@@ -120,3 +125,4 @@ export declare const pointScaleFromOrigin: <P extends GlobalPoint | LocalPoint>(
120
125
  * @returns TRUE if q is indeed between p and r
121
126
  */
122
127
  export declare const isPointWithinBounds: <P extends GlobalPoint | LocalPoint>(p: P, q: P, r: P) => boolean;
128
+ export declare const isValidPoint: (point: unknown) => point is LocalPoint;
@@ -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;