@zsviczian/excalidraw 0.18.0-3 → 0.18.0-30

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 (400) hide show
  1. package/dist/excalidraw.development.js +2137 -2280
  2. package/dist/excalidraw.production.min.js +1 -1
  3. package/dist/styles.development.css +152 -71
  4. package/dist/styles.production.css +12 -10
  5. package/package.json +25 -3
  6. package/types/{excalidraw/binaryheap.d.ts → common/src/binary-heap.d.ts} +12 -12
  7. package/types/{excalidraw → common/src}/colors.d.ts +62 -61
  8. package/types/{excalidraw → common/src}/constants.d.ts +354 -333
  9. package/types/{excalidraw → common/src}/emitter.d.ts +16 -16
  10. package/types/{excalidraw/fonts/FontMetadata.d.ts → common/src/font-metadata.d.ts} +48 -38
  11. package/types/common/src/index.d.ts +12 -0
  12. package/types/{excalidraw → common/src}/keys.d.ts +189 -189
  13. package/types/{excalidraw → common/src}/points.d.ts +9 -7
  14. package/types/common/src/promise-pool.d.ts +6 -0
  15. package/types/{excalidraw → common/src}/queue.d.ts +9 -9
  16. package/types/{excalidraw → common/src}/random.d.ts +4 -4
  17. package/types/{excalidraw/data → common/src}/url.d.ts +7 -7
  18. package/types/{excalidraw → common/src}/utility-types.d.ts +37 -32
  19. package/types/{excalidraw → common/src}/utils.d.ts +267 -256
  20. package/types/{excalidraw/scene → element/src}/Scene.d.ts +76 -79
  21. package/types/element/src/align.d.ts +8 -0
  22. package/types/{excalidraw/element → element/src}/binding.d.ts +111 -100
  23. package/types/{excalidraw/element → element/src}/bounds.d.ts +89 -76
  24. package/types/element/src/collision.d.ts +32 -0
  25. package/types/{excalidraw/scene → element/src}/comparisons.d.ts +8 -8
  26. package/types/{excalidraw/element → element/src}/containerCache.d.ts +11 -11
  27. package/types/{excalidraw/element → element/src}/cropElement.d.ts +19 -19
  28. package/types/{excalidraw/change.d.ts → element/src/delta.d.ts} +225 -191
  29. package/types/element/src/distance.d.ts +3 -0
  30. package/types/{excalidraw → element/src}/distribute.d.ts +7 -6
  31. package/types/{excalidraw/element → element/src}/dragElements.d.ts +33 -32
  32. package/types/element/src/duplicate.d.ts +63 -0
  33. package/types/{excalidraw/renderer → element/src}/easingFunctions.d.ts +6 -6
  34. package/types/{excalidraw/element → element/src}/elbowArrow.d.ts +17 -17
  35. package/types/{excalidraw/element → element/src}/elementLink.d.ts +13 -13
  36. package/types/element/src/embeddable.d.ts +10 -0
  37. package/types/{excalidraw/element → element/src}/flowchart.d.ts +26 -25
  38. package/types/{excalidraw → element/src}/fractionalIndex.d.ts +57 -48
  39. package/types/{excalidraw → element/src}/frame.d.ts +70 -69
  40. package/types/{excalidraw → element/src}/groups.d.ts +34 -33
  41. package/types/{excalidraw/element → element/src}/heading.d.ts +15 -16
  42. package/types/{excalidraw/element → element/src}/image.d.ts +32 -32
  43. package/types/element/src/index.d.ts +57 -0
  44. package/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +116 -129
  45. package/types/element/src/mutateElement.d.ts +21 -0
  46. package/types/{excalidraw/element → element/src}/newElement.d.ts +63 -102
  47. package/types/{excalidraw/renderer → element/src}/renderElement.d.ts +28 -28
  48. package/types/{excalidraw/element → element/src}/resizeElements.d.ts +39 -38
  49. package/types/{excalidraw/element → element/src}/resizeTest.d.ts +15 -15
  50. package/types/{excalidraw/scene → element/src}/selection.d.ts +38 -32
  51. package/types/element/src/shape.d.ts +42 -0
  52. package/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +3 -3
  53. package/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +35 -35
  54. package/types/{excalidraw/element → element/src}/sortElements.d.ts +2 -2
  55. package/types/element/src/store.d.ts +232 -0
  56. package/types/{excalidraw/element → element/src}/textElement.d.ts +40 -39
  57. package/types/{excalidraw/element → element/src}/textMeasurements.d.ts +41 -41
  58. package/types/{excalidraw/element → element/src}/textWrapping.d.ts +13 -13
  59. package/types/{excalidraw/element → element/src}/transformHandles.d.ts +55 -55
  60. package/types/{excalidraw/element → element/src}/typeChecks.d.ts +57 -39
  61. package/types/{excalidraw/element → element/src}/types.d.ts +298 -285
  62. package/types/element/src/utils.d.ts +31 -0
  63. package/types/{excalidraw → element/src}/zindex.d.ts +7 -6
  64. package/types/excalidraw/actions/actionAddToLibrary.d.ts +632 -629
  65. package/types/excalidraw/actions/actionAlign.d.ts +109 -109
  66. package/types/excalidraw/actions/actionBoundText.d.ts +458 -456
  67. package/types/excalidraw/actions/actionCanvas.d.ts +3293 -3070
  68. package/types/excalidraw/actions/actionClipboard.d.ts +1382 -1374
  69. package/types/excalidraw/actions/actionCropEditor.d.ts +223 -222
  70. package/types/excalidraw/actions/actionDeleteSelected.d.ts +672 -668
  71. package/types/excalidraw/actions/actionDistribute.d.ts +34 -34
  72. package/types/excalidraw/actions/actionDuplicateSelection.d.ts +17 -21
  73. package/types/excalidraw/actions/actionElementLink.d.ts +245 -244
  74. package/types/excalidraw/actions/actionElementLock.d.ts +444 -444
  75. package/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +220 -229
  76. package/types/excalidraw/actions/actionExport.d.ts +1962 -1953
  77. package/types/excalidraw/actions/actionFinalize.d.ts +670 -425
  78. package/types/excalidraw/actions/actionFlip.d.ts +34 -34
  79. package/types/excalidraw/actions/actionFrame.d.ts +1388 -1384
  80. package/types/excalidraw/actions/actionGroup.d.ts +456 -454
  81. package/types/excalidraw/actions/actionHistory.d.ts +6 -7
  82. package/types/excalidraw/actions/actionLinearEditor.d.ts +751 -223
  83. package/types/excalidraw/actions/actionLink.d.ts +224 -223
  84. package/types/excalidraw/actions/actionMenu.d.ts +652 -649
  85. package/types/excalidraw/actions/actionNavigate.d.ts +432 -430
  86. package/types/excalidraw/actions/actionProperties.d.ts +3299 -3276
  87. package/types/excalidraw/actions/actionSelectAll.d.ts +223 -222
  88. package/types/excalidraw/actions/actionStyles.d.ts +237 -236
  89. package/types/excalidraw/actions/actionTextAutoResize.d.ts +17 -17
  90. package/types/excalidraw/actions/actionToggleGridMode.d.ts +226 -225
  91. package/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +224 -223
  92. package/types/excalidraw/actions/actionToggleSearchMenu.d.ts +217 -420
  93. package/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +19 -0
  94. package/types/excalidraw/actions/actionToggleStats.d.ts +223 -223
  95. package/types/excalidraw/actions/actionToggleViewMode.d.ts +224 -224
  96. package/types/excalidraw/actions/actionToggleZenMode.d.ts +224 -224
  97. package/types/excalidraw/actions/actionZindex.d.ts +74 -74
  98. package/types/excalidraw/actions/index.d.ts +28 -27
  99. package/types/excalidraw/actions/manager.d.ts +21 -21
  100. package/types/excalidraw/actions/register.d.ts +5 -5
  101. package/types/excalidraw/actions/shortcuts.d.ts +4 -4
  102. package/types/excalidraw/actions/types.d.ts +47 -46
  103. package/types/excalidraw/analytics.d.ts +1 -1
  104. package/types/excalidraw/animated-trail.d.ts +39 -33
  105. package/types/excalidraw/animation-frame-handler.d.ts +16 -16
  106. package/types/excalidraw/appState.d.ts +99 -89
  107. package/types/excalidraw/charts.d.ts +27 -27
  108. package/types/excalidraw/clients.d.ts +14 -14
  109. package/types/excalidraw/clipboard.d.ts +66 -66
  110. package/types/excalidraw/components/Actions.d.ts +31 -35
  111. package/types/excalidraw/components/ActiveConfirmDialog.d.ts +4 -4
  112. package/types/excalidraw/components/App.d.ts +565 -561
  113. package/types/excalidraw/components/Avatar.d.ts +11 -11
  114. package/types/excalidraw/components/BraveMeasureTextError.d.ts +2 -2
  115. package/types/excalidraw/components/Button.d.ts +17 -17
  116. package/types/excalidraw/components/ButtonIcon.d.ts +16 -15
  117. package/types/excalidraw/components/ButtonIconCycle.d.ts +11 -11
  118. package/types/excalidraw/components/ButtonSeparator.d.ts +1 -1
  119. package/types/excalidraw/components/Card.d.ts +6 -6
  120. package/types/excalidraw/components/CheckboxItem.d.ts +8 -8
  121. package/types/excalidraw/components/ColorPicker/ColorInput.d.ts +10 -9
  122. package/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +23 -19
  123. package/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +8 -8
  124. package/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +7 -8
  125. package/types/excalidraw/components/ColorPicker/Picker.d.ts +17 -18
  126. package/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -10
  127. package/types/excalidraw/components/ColorPicker/PickerHeading.d.ts +5 -5
  128. package/types/excalidraw/components/ColorPicker/ShadeList.d.ts +8 -8
  129. package/types/excalidraw/components/ColorPicker/TopPicks.d.ts +9 -9
  130. package/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +21 -21
  131. package/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +20 -20
  132. package/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +18 -18
  133. package/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +2 -2
  134. package/types/excalidraw/components/CommandPalette/types.d.ts +25 -25
  135. package/types/excalidraw/components/ConfirmDialog.d.ts +10 -10
  136. package/types/excalidraw/components/ContextMenu.d.ts +16 -16
  137. package/types/excalidraw/components/ConvertElementTypePopup.d.ts +23 -0
  138. package/types/excalidraw/components/DarkModeToggle.d.ts +7 -7
  139. package/types/excalidraw/components/DefaultSidebar.d.ts +30 -30
  140. package/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +4 -4
  141. package/types/excalidraw/components/Dialog.d.ts +13 -13
  142. package/types/excalidraw/components/DialogActionButton.d.ts +10 -10
  143. package/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +7 -7
  144. package/types/excalidraw/components/ElementLinkDialog.d.ts +12 -11
  145. package/types/excalidraw/components/Ellipsify.d.ts +3 -0
  146. package/types/excalidraw/components/ErrorDialog.d.ts +5 -5
  147. package/types/excalidraw/components/ExcalidrawLogo.d.ts +15 -15
  148. package/types/excalidraw/components/EyeDropper.d.ts +27 -27
  149. package/types/excalidraw/components/FilledButton.d.ts +18 -18
  150. package/types/excalidraw/components/FixedSideContainer.d.ts +9 -9
  151. package/types/excalidraw/components/FollowMode/FollowMode.d.ts +10 -10
  152. package/types/excalidraw/components/FontPicker/FontPicker.d.ts +21 -21
  153. package/types/excalidraw/components/FontPicker/FontPickerList.d.ts +26 -26
  154. package/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +6 -6
  155. package/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +13 -13
  156. package/types/excalidraw/components/HandButton.d.ts +10 -10
  157. package/types/excalidraw/components/HelpButton.d.ts +7 -7
  158. package/types/excalidraw/components/HelpDialog.d.ts +4 -4
  159. package/types/excalidraw/components/HintViewer.d.ts +10 -10
  160. package/types/excalidraw/components/IconPicker.d.ts +15 -15
  161. package/types/excalidraw/components/ImageExportDialog.d.ts +14 -14
  162. package/types/excalidraw/components/InitializeApp.d.ts +10 -10
  163. package/types/excalidraw/components/InlineIcon.d.ts +3 -3
  164. package/types/excalidraw/components/Island.d.ts +10 -10
  165. package/types/excalidraw/components/JSONExportDialog.d.ts +15 -15
  166. package/types/excalidraw/components/LaserPointerButton.d.ts +10 -10
  167. package/types/excalidraw/components/LayerUI.d.ts +31 -31
  168. package/types/excalidraw/components/LibraryMenu.d.ts +10 -10
  169. package/types/excalidraw/components/LibraryMenuBrowseButton.d.ts +7 -7
  170. package/types/excalidraw/components/LibraryMenuControlButtons.d.ts +9 -9
  171. package/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +17 -17
  172. package/types/excalidraw/components/LibraryMenuItems.d.ts +14 -14
  173. package/types/excalidraw/components/LibraryMenuSection.d.ts +23 -23
  174. package/types/excalidraw/components/LibraryUnit.d.ts +14 -14
  175. package/types/excalidraw/components/LoadingMessage.d.ts +5 -5
  176. package/types/excalidraw/components/LockButton.d.ts +10 -10
  177. package/types/excalidraw/components/MagicButton.d.ts +10 -10
  178. package/types/excalidraw/components/MobileMenu.d.ts +25 -25
  179. package/types/excalidraw/components/Modal.d.ts +14 -14
  180. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -17
  181. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -17
  182. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -22
  183. package/types/excalidraw/components/Paragraph.d.ts +4 -4
  184. package/types/excalidraw/components/PasteChartDialog.d.ts +8 -8
  185. package/types/excalidraw/components/PenModeButton.d.ts +12 -12
  186. package/types/excalidraw/components/Popover.d.ts +15 -15
  187. package/types/excalidraw/components/ProjectName.d.ts +10 -10
  188. package/types/excalidraw/components/PropertiesPopover.d.ts +15 -15
  189. package/types/excalidraw/components/PublishLibrary.d.ts +16 -16
  190. package/types/excalidraw/components/QuickSearch.d.ts +9 -9
  191. package/types/excalidraw/components/RadioGroup.d.ts +13 -13
  192. package/types/excalidraw/components/{ButtonIconSelect.d.ts → RadioSelection.d.ts} +20 -20
  193. package/types/excalidraw/components/Range.d.ts +8 -8
  194. package/types/excalidraw/components/SVGLayer.d.ts +7 -7
  195. package/types/excalidraw/components/ScrollableList.d.ts +8 -8
  196. package/types/excalidraw/components/SearchMenu.d.ts +5 -5
  197. package/types/excalidraw/components/Section.d.ts +6 -6
  198. package/types/excalidraw/components/ShareableLinkDialog.d.ts +7 -7
  199. package/types/excalidraw/components/Sidebar/Sidebar.d.ts +76 -76
  200. package/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +7 -7
  201. package/types/excalidraw/components/Sidebar/SidebarTab.d.ts +8 -8
  202. package/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +9 -9
  203. package/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +6 -6
  204. package/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +6 -6
  205. package/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +6 -6
  206. package/types/excalidraw/components/Sidebar/common.d.ts +34 -34
  207. package/types/excalidraw/components/Spinner.d.ts +8 -8
  208. package/types/excalidraw/components/Stack.d.ts +15 -15
  209. package/types/excalidraw/components/Stats/Angle.d.ts +11 -11
  210. package/types/excalidraw/components/Stats/CanvasGrid.d.ts +10 -10
  211. package/types/excalidraw/components/Stats/CanvasGridSize.d.ts +10 -10
  212. package/types/excalidraw/components/Stats/Collapsible.d.ts +10 -9
  213. package/types/excalidraw/components/Stats/Dimension.d.ts +11 -11
  214. package/types/excalidraw/components/Stats/DragInput.d.ts +44 -34
  215. package/types/excalidraw/components/Stats/FontSize.d.ts +11 -11
  216. package/types/excalidraw/components/Stats/MultiAngle.d.ts +11 -11
  217. package/types/excalidraw/components/Stats/MultiDimension.d.ts +14 -14
  218. package/types/excalidraw/components/Stats/MultiFontSize.d.ts +12 -12
  219. package/types/excalidraw/components/Stats/MultiPosition.d.ts +14 -14
  220. package/types/excalidraw/components/Stats/Position.d.ts +12 -12
  221. package/types/excalidraw/components/Stats/index.d.ts +35 -35
  222. package/types/excalidraw/components/Stats/utils.d.ts +19 -26
  223. package/types/excalidraw/components/Switch.d.ts +9 -9
  224. package/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +8 -8
  225. package/types/excalidraw/components/TTDDialog/MermaidToExcalidrawLib.d.ts +10 -10
  226. package/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +29 -29
  227. package/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +9 -9
  228. package/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +7 -7
  229. package/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +17 -17
  230. package/types/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +4 -4
  231. package/types/excalidraw/components/TTDDialog/TTDDialogSubmitShortcut.d.ts +1 -1
  232. package/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +7 -7
  233. package/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +8 -8
  234. package/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +6 -6
  235. package/types/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +11 -11
  236. package/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +9 -9
  237. package/types/excalidraw/components/TTDDialog/common.d.ts +32 -32
  238. package/types/excalidraw/components/TextField.d.ts +21 -21
  239. package/types/excalidraw/components/Toast.d.ts +9 -9
  240. package/types/excalidraw/components/ToolButton.d.ts +49 -49
  241. package/types/excalidraw/components/Tooltip.d.ts +18 -18
  242. package/types/excalidraw/components/Trans.d.ts +9 -9
  243. package/types/excalidraw/components/UnlockPopup.d.ts +8 -0
  244. package/types/excalidraw/components/UserList.d.ts +18 -18
  245. package/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +30 -29
  246. package/types/excalidraw/components/canvases/NewElementCanvas.d.ts +14 -14
  247. package/types/excalidraw/components/canvases/StaticCanvas.d.ts +19 -19
  248. package/types/excalidraw/components/canvases/index.d.ts +3 -3
  249. package/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +86 -86
  250. package/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +15 -15
  251. package/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -11
  252. package/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +46 -46
  253. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +8 -8
  254. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +17 -17
  255. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -7
  256. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +16 -16
  257. package/types/excalidraw/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -5
  258. package/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -10
  259. package/types/excalidraw/components/dropdownMenu/common.d.ts +6 -6
  260. package/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -3
  261. package/types/excalidraw/components/footer/Footer.d.ts +12 -12
  262. package/types/excalidraw/components/footer/FooterCenter.d.ts +8 -8
  263. package/types/excalidraw/components/hoc/withInternalFallback.d.ts +4 -4
  264. package/types/excalidraw/components/hyperlink/Hyperlink.d.ts +19 -18
  265. package/types/excalidraw/components/hyperlink/helpers.d.ts +10 -9
  266. package/types/excalidraw/components/icons.d.ts +227 -223
  267. package/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -9
  268. package/types/excalidraw/components/main-menu/DefaultItems.d.ts +64 -64
  269. package/types/excalidraw/components/main-menu/MainMenu.d.ts +83 -80
  270. package/types/excalidraw/{shapes.d.ts → components/shapes.d.ts} +62 -85
  271. package/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +60 -60
  272. package/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -19
  273. package/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +86 -86
  274. package/types/excalidraw/context/tunnels.d.ts +21 -21
  275. package/types/excalidraw/context/ui-appState.d.ts +4 -4
  276. package/types/excalidraw/cursor.d.ts +6 -6
  277. package/types/excalidraw/data/EditorLocalStorage.d.ts +8 -8
  278. package/types/excalidraw/data/ai/types.d.ts +242 -242
  279. package/types/excalidraw/data/blob.d.ts +53 -53
  280. package/types/excalidraw/data/encode.d.ts +55 -55
  281. package/types/excalidraw/data/encryption.d.ts +9 -9
  282. package/types/excalidraw/data/filesystem.d.ts +21 -21
  283. package/types/excalidraw/data/image.d.ts +9 -9
  284. package/types/excalidraw/data/index.d.ts +22 -22
  285. package/types/excalidraw/data/json.d.ts +16 -16
  286. package/types/excalidraw/data/library.d.ts +112 -112
  287. package/types/excalidraw/data/reconcile.d.ts +7 -6
  288. package/types/excalidraw/data/resave.d.ts +5 -5
  289. package/types/excalidraw/data/restore.d.ts +21 -21
  290. package/types/excalidraw/data/transform.d.ts +81 -81
  291. package/types/excalidraw/data/types.d.ts +45 -45
  292. package/types/excalidraw/deburr.d.ts +1 -1
  293. package/types/excalidraw/dist/excalidraw.development.d.ts +2 -2
  294. package/types/excalidraw/dist/excalidraw.production.min.d.ts +3 -3
  295. package/types/excalidraw/editor-jotai.d.ts +56 -56
  296. package/types/excalidraw/entry.d.ts +1 -1
  297. package/types/excalidraw/env.d.cts +1 -1
  298. package/types/excalidraw/env.d.ts +1 -1
  299. package/types/excalidraw/eraser/index.d.ts +12 -0
  300. package/types/excalidraw/errors.d.ts +29 -32
  301. package/types/excalidraw/fonts/Cascadia/index.d.ts +2 -2
  302. package/types/excalidraw/fonts/ComicShanns/index.d.ts +2 -2
  303. package/types/excalidraw/fonts/Emoji/index.d.ts +2 -2
  304. package/types/excalidraw/fonts/ExcalidrawFontFace.d.ts +29 -29
  305. package/types/excalidraw/fonts/Excalifont/index.d.ts +2 -2
  306. package/types/excalidraw/fonts/Fonts.d.ts +90 -100
  307. package/types/excalidraw/fonts/Helvetica/index.d.ts +2 -2
  308. package/types/excalidraw/fonts/Liberation/index.d.ts +2 -2
  309. package/types/excalidraw/fonts/Lilita/index.d.ts +2 -2
  310. package/types/excalidraw/fonts/Nunito/index.d.ts +2 -2
  311. package/types/excalidraw/fonts/Virgil/index.d.ts +2 -2
  312. package/types/excalidraw/fonts/Xiaolai/index.d.ts +8 -8
  313. package/types/excalidraw/fonts/index.d.ts +1 -1
  314. package/types/excalidraw/gesture.d.ts +6 -6
  315. package/types/excalidraw/history.d.ts +48 -40
  316. package/types/excalidraw/hooks/useCallbackRefState.d.ts +1 -1
  317. package/types/excalidraw/hooks/useCopiedIndicator.d.ts +5 -5
  318. package/types/excalidraw/hooks/useCreatePortalContainer.d.ts +7 -7
  319. package/types/excalidraw/hooks/useEmitter.d.ts +2 -2
  320. package/types/excalidraw/hooks/useLibraryItemSvg.d.ts +11 -11
  321. package/types/excalidraw/hooks/useOutsideClick.d.ts +19 -19
  322. package/types/excalidraw/hooks/useScrollPosition.d.ts +1 -1
  323. package/types/excalidraw/hooks/useStable.d.ts +1 -1
  324. package/types/excalidraw/hooks/useStableCallback.d.ts +4 -4
  325. package/types/excalidraw/hooks/useTransition.d.ts +2 -2
  326. package/types/excalidraw/i18n.d.ts +24 -24
  327. package/types/excalidraw/index-node.d.ts +1 -1
  328. package/types/excalidraw/index.d.ts +61 -65
  329. package/types/excalidraw/laser-trails.d.ts +20 -20
  330. package/types/excalidraw/lasso/index.d.ts +16 -0
  331. package/types/excalidraw/lasso/utils.d.ts +13 -0
  332. package/types/excalidraw/main.d.ts +2 -2
  333. package/types/excalidraw/mermaid.d.ts +2 -2
  334. package/types/excalidraw/obsidianUtils.d.ts +40 -28
  335. package/types/excalidraw/polyfill.d.ts +2 -2
  336. package/types/excalidraw/publicPath.d.ts +1 -1
  337. package/types/excalidraw/reactUtils.d.ts +14 -14
  338. package/types/excalidraw/renderer/helpers.d.ts +18 -13
  339. package/types/excalidraw/renderer/interactiveScene.d.ts +20 -20
  340. package/types/excalidraw/renderer/renderNewElementScene.d.ts +7 -7
  341. package/types/excalidraw/renderer/renderSnaps.d.ts +2 -2
  342. package/types/excalidraw/renderer/roundRect.d.ts +11 -11
  343. package/types/excalidraw/renderer/staticScene.d.ts +14 -11
  344. package/types/excalidraw/renderer/staticSvgScene.d.ts +5 -5
  345. package/types/excalidraw/scene/Renderer.d.ts +27 -28
  346. package/types/excalidraw/scene/export.d.ts +37 -37
  347. package/types/excalidraw/scene/index.d.ts +4 -4
  348. package/types/excalidraw/scene/normalize.d.ts +4 -4
  349. package/types/excalidraw/scene/scroll.d.ts +23 -23
  350. package/types/excalidraw/scene/scrollbars.d.ts +11 -12
  351. package/types/excalidraw/scene/types.d.ts +122 -120
  352. package/types/excalidraw/scene/zoom.d.ts +12 -12
  353. package/types/excalidraw/snapping.d.ts +111 -112
  354. package/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +45 -45
  355. package/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +13 -13
  356. package/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +2 -2
  357. package/types/excalidraw/subset/subset-main.d.ts +12 -12
  358. package/types/excalidraw/subset/subset-shared.chunk.d.ts +32 -32
  359. package/types/excalidraw/subset/subset-worker.chunk.d.ts +15 -15
  360. package/types/excalidraw/subset/woff2/woff2-bindings.d.ts +31 -31
  361. package/types/excalidraw/subset/woff2/woff2-loader.d.ts +14 -14
  362. package/types/excalidraw/subset/woff2/woff2-wasm.d.ts +2 -2
  363. package/types/excalidraw/types.d.ts +778 -753
  364. package/types/excalidraw/webpack.dev.config.d.ts +114 -112
  365. package/types/excalidraw/webpack.prod.config.d.ts +128 -126
  366. package/types/excalidraw/workers.d.ts +36 -36
  367. package/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +24 -22
  368. package/types/math/{angle.d.ts → src/angle.d.ts} +19 -17
  369. package/types/math/src/constants.d.ts +3 -0
  370. package/types/math/src/curve.d.ts +74 -0
  371. package/types/math/{ellipse.d.ts → src/ellipse.d.ts} +44 -44
  372. package/types/math/{index.d.ts → src/index.d.ts} +13 -12
  373. package/types/math/{line.d.ts → src/line.d.ts} +17 -17
  374. package/types/math/{point.d.ts → src/point.d.ts} +122 -122
  375. package/types/math/{polygon.d.ts → src/polygon.d.ts} +6 -5
  376. package/types/math/{range.d.ts → src/range.d.ts} +44 -44
  377. package/types/math/{rectangle.d.ts → src/rectangle.d.ts} +5 -3
  378. package/types/math/{segment.d.ts → src/segment.d.ts} +39 -39
  379. package/types/math/{triangle.d.ts → src/triangle.d.ts} +11 -11
  380. package/types/math/{types.d.ts → src/types.d.ts} +106 -105
  381. package/types/math/{utils.d.ts → src/utils.d.ts} +7 -7
  382. package/types/math/{vector.d.ts → src/vector.d.ts} +94 -88
  383. package/types/utils/{bbox.d.ts → src/bbox.d.ts} +9 -9
  384. package/types/utils/{export.d.ts → src/export.d.ts} +35 -45
  385. package/types/utils/{index.d.ts → src/index.d.ts} +4 -4
  386. package/types/utils/{geometry → src}/shape.d.ts +58 -71
  387. package/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +19 -19
  388. package/types/excalidraw/align.d.ts +0 -7
  389. package/types/excalidraw/components/ButtonSelect.d.ts +0 -9
  390. package/types/excalidraw/element/collision.d.ts +0 -26
  391. package/types/excalidraw/element/distance.d.ts +0 -3
  392. package/types/excalidraw/element/index.d.ts +0 -26
  393. package/types/excalidraw/element/mutateElement.d.ts +0 -13
  394. package/types/excalidraw/element/utils.d.ts +0 -21
  395. package/types/excalidraw/scene/Shape.d.ts +0 -17
  396. package/types/excalidraw/scene/ShapeCache.d.ts +0 -25
  397. package/types/excalidraw/store.d.ts +0 -129
  398. package/types/excalidraw/visualdebug.d.ts +0 -41
  399. package/types/math/curve.d.ts +0 -40
  400. package/types/utils/collision.d.ts +0 -9
@@ -1,71 +1,58 @@
1
- /**
2
- * this file defines pure geometric shapes
3
- *
4
- * for instance, a cubic bezier curve is specified by its four control points and
5
- * an ellipse is defined by its center, angle, semi major axis and semi minor axis
6
- * (but in semi-width and semi-height so it's more relevant to Excalidraw)
7
- *
8
- * the idea with pure shapes is so that we can provide collision and other geoemtric methods not depending on
9
- * the specifics of roughjs or elements in Excalidraw; instead, we can focus on the pure shapes themselves
10
- *
11
- * also included in this file are methods for converting an Excalidraw element or a Drawable from roughjs
12
- * to pure shapes
13
- */
14
- import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
15
- import type { ElementsMap, ExcalidrawBindableElement, ExcalidrawDiamondElement, ExcalidrawElement, ExcalidrawEllipseElement, ExcalidrawEmbeddableElement, ExcalidrawFrameLikeElement, ExcalidrawFreeDrawElement, ExcalidrawIframeElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawRectangleElement, ExcalidrawSelectionElement, ExcalidrawTextElement } from "@excalidraw/excalidraw/element/types";
16
- import type { Curve, LineSegment, Polygon, Radians } from "@excalidraw/math";
17
- import type { Drawable, Op } from "roughjs/bin/core";
18
- export type Polyline<Point extends GlobalPoint | LocalPoint> = LineSegment<Point>[];
19
- export type Polycurve<Point extends GlobalPoint | LocalPoint> = Curve<Point>[];
20
- export type Ellipse<Point extends GlobalPoint | LocalPoint> = {
21
- center: Point;
22
- angle: Radians;
23
- halfWidth: number;
24
- halfHeight: number;
25
- };
26
- export type GeometricShape<Point extends GlobalPoint | LocalPoint> = {
27
- type: "line";
28
- data: LineSegment<Point>;
29
- } | {
30
- type: "polygon";
31
- data: Polygon<Point>;
32
- } | {
33
- type: "curve";
34
- data: Curve<Point>;
35
- } | {
36
- type: "ellipse";
37
- data: Ellipse<Point>;
38
- } | {
39
- type: "polyline";
40
- data: Polyline<Point>;
41
- } | {
42
- type: "polycurve";
43
- data: Polycurve<Point>;
44
- };
45
- type RectangularElement = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawFrameLikeElement | ExcalidrawEmbeddableElement | ExcalidrawImageElement | ExcalidrawIframeElement | ExcalidrawTextElement | ExcalidrawSelectionElement;
46
- export declare const getPolygonShape: <Point extends GlobalPoint | LocalPoint>(element: RectangularElement) => GeometricShape<Point>;
47
- export declare const getSelectionBoxShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap, padding?: number) => GeometricShape<Point>;
48
- export declare const getEllipseShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawEllipseElement) => GeometricShape<Point>;
49
- export declare const getCurvePathOps: (shape: Drawable) => Op[];
50
- export declare const getCurveShape: <Point extends GlobalPoint | LocalPoint>(roughShape: Drawable, startingPoint: Point | undefined, angleInRadian: Radians, center: Point) => GeometricShape<Point>;
51
- export declare const getFreedrawShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawFreeDrawElement, center: Point, isClosed?: boolean) => GeometricShape<Point>;
52
- export declare const getClosedCurveShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawLinearElement, roughShape: Drawable, startingPoint: Point | undefined, angleInRadian: Radians, center: Point) => GeometricShape<Point>;
53
- /**
54
- * Determine intersection of a rectangular shaped element and a
55
- * line segment.
56
- *
57
- * @param element The rectangular element to test against
58
- * @param segment The segment intersecting the element
59
- * @param gap Optional value to inflate the shape before testing
60
- * @returns An array of intersections
61
- */
62
- export declare const segmentIntersectRectangleElement: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawBindableElement, segment: LineSegment<Point>, gap?: number) => Point[];
63
- export declare const pointOnEllipse: <Point extends GlobalPoint | LocalPoint>(point: Point, ellipse: Ellipse<Point>, threshold?: number) => boolean;
64
- export declare const pointInEllipse: <Point extends GlobalPoint | LocalPoint>(p: Point, ellipse: Ellipse<Point>) => boolean;
65
- export declare const ellipseAxes: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => {
66
- majorAxis: number;
67
- minorAxis: number;
68
- };
69
- export declare const ellipseFocusToCenter: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => number;
70
- export declare const ellipseExtremes: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => import("@excalidraw/math").Vector[];
71
- export {};
1
+ import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
2
+ import type { ElementsMap, ExcalidrawBindableElement, ExcalidrawDiamondElement, ExcalidrawElement, ExcalidrawEllipseElement, ExcalidrawEmbeddableElement, ExcalidrawFrameLikeElement, ExcalidrawFreeDrawElement, ExcalidrawIframeElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawRectangleElement, ExcalidrawSelectionElement, ExcalidrawTextElement } from "@excalidraw/element/types";
3
+ import type { Curve, LineSegment, Polygon, Radians } from "@excalidraw/math";
4
+ import type { Drawable, Op } from "roughjs/bin/core";
5
+ export type Polyline<Point extends GlobalPoint | LocalPoint> = LineSegment<Point>[];
6
+ export type Polycurve<Point extends GlobalPoint | LocalPoint> = Curve<Point>[];
7
+ export type Ellipse<Point extends GlobalPoint | LocalPoint> = {
8
+ center: Point;
9
+ angle: Radians;
10
+ halfWidth: number;
11
+ halfHeight: number;
12
+ };
13
+ export type GeometricShape<Point extends GlobalPoint | LocalPoint> = {
14
+ type: "line";
15
+ data: LineSegment<Point>;
16
+ } | {
17
+ type: "polygon";
18
+ data: Polygon<Point>;
19
+ } | {
20
+ type: "curve";
21
+ data: Curve<Point>;
22
+ } | {
23
+ type: "ellipse";
24
+ data: Ellipse<Point>;
25
+ } | {
26
+ type: "polyline";
27
+ data: Polyline<Point>;
28
+ } | {
29
+ type: "polycurve";
30
+ data: Polycurve<Point>;
31
+ };
32
+ type RectangularElement = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawFrameLikeElement | ExcalidrawEmbeddableElement | ExcalidrawImageElement | ExcalidrawIframeElement | ExcalidrawTextElement | ExcalidrawSelectionElement;
33
+ export declare const getPolygonShape: <Point extends GlobalPoint | LocalPoint>(element: RectangularElement) => GeometricShape<Point>;
34
+ export declare const getSelectionBoxShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap, padding?: number) => GeometricShape<Point>;
35
+ export declare const getEllipseShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawEllipseElement) => GeometricShape<Point>;
36
+ export declare const getCurvePathOps: (shape: Drawable) => Op[];
37
+ export declare const getCurveShape: <Point extends GlobalPoint | LocalPoint>(roughShape: Drawable, startingPoint: Point | undefined, angleInRadian: Radians, center: Point) => GeometricShape<Point>;
38
+ export declare const getFreedrawShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawFreeDrawElement, center: Point, isClosed?: boolean) => GeometricShape<Point>;
39
+ export declare const getClosedCurveShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawLinearElement, roughShape: Drawable, startingPoint: Point | undefined, angleInRadian: Radians, center: Point) => GeometricShape<Point>;
40
+ /**
41
+ * Determine intersection of a rectangular shaped element and a
42
+ * line segment.
43
+ *
44
+ * @param element The rectangular element to test against
45
+ * @param segment The segment intersecting the element
46
+ * @param gap Optional value to inflate the shape before testing
47
+ * @returns An array of intersections
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>) => {
53
+ majorAxis: number;
54
+ minorAxis: number;
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[];
58
+ export {};
@@ -1,19 +1,19 @@
1
- import type { Bounds } from "@excalidraw/excalidraw/element/bounds";
2
- import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/excalidraw/element/types";
3
- type Element = NonDeletedExcalidrawElement;
4
- type Elements = readonly NonDeletedExcalidrawElement[];
5
- export declare const isElementInsideBBox: (element: Element, bbox: Bounds, eitherDirection?: boolean) => boolean;
6
- export declare const elementPartiallyOverlapsWithOrContainsBBox: (element: Element, bbox: Bounds) => boolean;
7
- export declare const elementsOverlappingBBox: ({ elements, bounds, type, errorMargin, }: {
8
- elements: Elements;
9
- bounds: Bounds | ExcalidrawElement;
10
- /** safety offset. Defaults to 0. */
11
- errorMargin?: number | undefined;
12
- /**
13
- * - overlap: elements overlapping or inside bounds
14
- * - contain: elements inside bounds or bounds inside elements
15
- * - inside: elements inside bounds
16
- **/
17
- type: "overlap" | "contain" | "inside";
18
- }) => NonDeletedExcalidrawElement[];
19
- export {};
1
+ import type { Bounds } from "@excalidraw/element";
2
+ import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
3
+ type Element = NonDeletedExcalidrawElement;
4
+ type Elements = readonly NonDeletedExcalidrawElement[];
5
+ export declare const isElementInsideBBox: (element: Element, bbox: Bounds, eitherDirection?: boolean) => boolean;
6
+ export declare const elementPartiallyOverlapsWithOrContainsBBox: (element: Element, bbox: Bounds) => boolean;
7
+ export declare const elementsOverlappingBBox: ({ elements, bounds, type, errorMargin, }: {
8
+ elements: Elements;
9
+ bounds: Bounds | ExcalidrawElement;
10
+ /** safety offset. Defaults to 0. */
11
+ errorMargin?: number | undefined;
12
+ /**
13
+ * - overlap: elements overlapping or inside bounds
14
+ * - contain: elements inside bounds or bounds inside elements
15
+ * - inside: elements inside bounds
16
+ **/
17
+ type: "overlap" | "contain" | "inside";
18
+ }) => NonDeletedExcalidrawElement[];
19
+ export {};
@@ -1,7 +0,0 @@
1
- import type { ElementsMap, ExcalidrawElement } from "./element/types";
2
- import type Scene from "./scene/Scene";
3
- export interface Alignment {
4
- position: "start" | "center" | "end";
5
- axis: "x" | "y";
6
- }
7
- export declare const alignElements: (selectedElements: ExcalidrawElement[], elementsMap: ElementsMap, alignment: Alignment, scene: Scene) => ExcalidrawElement[];
@@ -1,9 +0,0 @@
1
- export declare const ButtonSelect: <T extends Object>({ options, value, onChange, group, }: {
2
- options: {
3
- value: T;
4
- text: string;
5
- }[];
6
- value: T | null;
7
- onChange: (value: T) => void;
8
- group: string;
9
- }) => import("react/jsx-runtime").JSX.Element;
@@ -1,26 +0,0 @@
1
- import type { GlobalPoint, LineSegment, LocalPoint } from "@excalidraw/math";
2
- import type { GeometricShape } from "@excalidraw/utils/geometry/shape";
3
- import type { ElementsMap, ExcalidrawElement } from "./types";
4
- import type { FrameNameBounds } from "../types";
5
- export declare const shouldTestInside: (element: ExcalidrawElement) => boolean;
6
- export type HitTestArgs<Point extends GlobalPoint | LocalPoint> = {
7
- x: number;
8
- y: number;
9
- element: ExcalidrawElement;
10
- shape: GeometricShape<Point>;
11
- threshold?: number;
12
- frameNameBound?: FrameNameBounds | null;
13
- };
14
- export declare const hitElementItself: <Point extends GlobalPoint | LocalPoint>({ x, y, element, shape, threshold, frameNameBound, }: HitTestArgs<Point>) => boolean;
15
- export declare const hitElementBoundingBox: (x: number, y: number, element: ExcalidrawElement, elementsMap: ElementsMap, tolerance?: number) => boolean;
16
- export declare const hitElementBoundingBoxOnly: <Point extends GlobalPoint | LocalPoint>(hitArgs: HitTestArgs<Point>, elementsMap: ElementsMap) => boolean;
17
- export declare const hitElementBoundText: <Point extends GlobalPoint | LocalPoint>(x: number, y: number, textShape: GeometricShape<Point> | null) => boolean;
18
- /**
19
- * Intersect a line with an element for binding test
20
- *
21
- * @param element
22
- * @param line
23
- * @param offset
24
- * @returns
25
- */
26
- export declare const intersectElementWithLineSegment: (element: ExcalidrawElement, line: LineSegment<GlobalPoint>, offset?: number) => GlobalPoint[];
@@ -1,3 +0,0 @@
1
- import type { GlobalPoint } from "@excalidraw/math";
2
- import type { ExcalidrawBindableElement } from "./types";
3
- export declare const distanceToBindableElement: (element: ExcalidrawBindableElement, p: GlobalPoint) => number;
@@ -1,26 +0,0 @@
1
- import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted } from "./types";
2
- export { newElement, newTextElement, refreshTextDimensions, newLinearElement, newArrowElement, newImageElement, duplicateElement, } from "./newElement";
3
- export { getElementAbsoluteCoords, getElementBounds, getCommonBounds, getDiamondPoints, getArrowheadPoints, getClosestElementBounds, } from "./bounds";
4
- export { OMIT_SIDES_FOR_MULTIPLE_ELEMENTS, getTransformHandlesFromCoords, getTransformHandles, } from "./transformHandles";
5
- export { resizeTest, getCursorForResizingElement, getElementWithTransformHandleType, getTransformHandleTypeFromCoords, } from "./resizeTest";
6
- export { transformElements, getResizeOffsetXY, getResizeArrowDirection, } from "./resizeElements";
7
- export { dragSelectedElements, getDragOffsetXY, dragNewElement, } from "./dragElements";
8
- export { isTextElement, isExcalidrawElement } from "./typeChecks";
9
- export { redrawTextBoundingBox, getTextFromElements } from "./textElement";
10
- export { getPerfectElementSize, getLockedLinearCursorAlignSize, isInvisiblySmallElement, resizePerfectLineForNWHandler, getNormalizedDimensions, } from "./sizeHelpers";
11
- export { showSelectedShapeActions } from "./showSelectedShapeActions";
12
- /**
13
- * @deprecated unsafe, use hashElementsVersion instead
14
- */
15
- export declare const getSceneVersion: (elements: readonly ExcalidrawElement[]) => number;
16
- /**
17
- * Hashes elements' versionNonce (using djb2 algo). Order of elements matters.
18
- */
19
- export declare const hashElementsVersion: (elements: readonly ExcalidrawElement[]) => number;
20
- export declare const hashString: (s: string) => number;
21
- export declare const getVisibleElements: (elements: readonly ExcalidrawElement[]) => readonly NonDeletedExcalidrawElement[];
22
- export declare const getNonDeletedElements: <T extends ExcalidrawElement>(elements: readonly T[]) => readonly NonDeleted<T>[];
23
- export declare const isNonDeletedElement: <T extends ExcalidrawElement>(element: T) => element is NonDeleted<T>;
24
- export declare const clearElementsForDatabase: (elements: readonly ExcalidrawElement[]) => ExcalidrawElement[];
25
- export declare const clearElementsForExport: (elements: readonly ExcalidrawElement[]) => ExcalidrawElement[];
26
- export declare const clearElementsForLocalStorage: (elements: readonly ExcalidrawElement[]) => ExcalidrawElement[];
@@ -1,13 +0,0 @@
1
- import type { ExcalidrawElement } from "./types";
2
- import type { Mutable } from "../utility-types";
3
- export type ElementUpdate<TElement extends ExcalidrawElement> = Omit<Partial<TElement>, "id" | "version" | "versionNonce" | "updated">;
4
- export declare const mutateElement: <TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, informMutation?: boolean, options?: {
5
- isDragging?: boolean;
6
- }) => TElement;
7
- export declare const newElementWith: <TElement extends ExcalidrawElement>(element: TElement, updates: ElementUpdate<TElement>, force?: boolean) => TElement;
8
- /**
9
- * Mutates element, bumping `version`, `versionNonce`, and `updated`.
10
- *
11
- * NOTE: does not trigger re-render.
12
- */
13
- export declare const bumpVersion: <T extends Mutable<ExcalidrawElement>>(element: T, version?: ExcalidrawElement["version"]) => T;
@@ -1,21 +0,0 @@
1
- import { type GlobalPoint } from "@excalidraw/math";
2
- import type { Curve, LineSegment } from "@excalidraw/math";
3
- import type { ExcalidrawDiamondElement, ExcalidrawRectanguloidElement } from "./types";
4
- /**
5
- * Get the building components of a rectanguloid element in the form of
6
- * line segments and curves.
7
- *
8
- * @param element Target rectanguloid element
9
- * @param offset Optional offset to expand the rectanguloid shape
10
- * @returns Tuple of line segments (0) and curves (1)
11
- */
12
- export declare function deconstructRectanguloidElement(element: ExcalidrawRectanguloidElement, offset?: number): [LineSegment<GlobalPoint>[], Curve<GlobalPoint>[]];
13
- /**
14
- * Get the building components of a diamond element in the form of
15
- * line segments and curves as a tuple, in this order.
16
- *
17
- * @param element The element to deconstruct
18
- * @param offset An optional offset
19
- * @returns Tuple of line segments (0) and curves (1)
20
- */
21
- export declare function deconstructDiamondElement(element: ExcalidrawDiamondElement, offset?: number): [LineSegment<GlobalPoint>[], Curve<GlobalPoint>[]];
@@ -1,17 +0,0 @@
1
- import type { ExcalidrawElement, NonDeletedExcalidrawElement, ExcalidrawSelectionElement } from "../element/types";
2
- import type { EmbedsValidationStatus } from "../types";
3
- import type { Drawable, Options } from "roughjs/bin/core";
4
- import type { RoughGenerator } from "roughjs/bin/generator";
5
- export declare const generateRoughOptions: (element: ExcalidrawElement, continuousPath?: boolean) => Options;
6
- /**
7
- * Generates the roughjs shape for given element.
8
- *
9
- * Low-level. Use `ShapeCache.generateElementShape` instead.
10
- *
11
- * @private
12
- */
13
- export declare const _generateElementShape: (element: Exclude<NonDeletedExcalidrawElement, ExcalidrawSelectionElement>, generator: RoughGenerator, { isExporting, canvasBackgroundColor, embedsValidationStatus, }: {
14
- isExporting: boolean;
15
- canvasBackgroundColor: string;
16
- embedsValidationStatus: EmbedsValidationStatus | null;
17
- }) => Drawable | Drawable[] | null;
@@ -1,25 +0,0 @@
1
- import type { ExcalidrawElement } from "../element/types";
2
- import type { AppState, EmbedsValidationStatus } from "../types";
3
- import type { ElementShape, ElementShapes } from "./types";
4
- import type { Drawable } from "roughjs/bin/core";
5
- export declare class ShapeCache {
6
- private static rg;
7
- private static cache;
8
- /**
9
- * Retrieves shape from cache if available. Use this only if shape
10
- * is optional and you have a fallback in case it's not cached.
11
- */
12
- static get: <T extends ExcalidrawElement>(element: T) => T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] | undefined : ElementShape | undefined;
13
- static set: <T extends ExcalidrawElement>(element: T, shape: T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] : Drawable) => WeakMap<ExcalidrawElement, ElementShape>;
14
- static delete: (element: ExcalidrawElement) => boolean;
15
- static destroy: () => void;
16
- /**
17
- * Generates & caches shape for element if not already cached, otherwise
18
- * returns cached shape.
19
- */
20
- static generateElementShape: <T extends import("../element/types").ExcalidrawLinearElement | import("../element/types").ExcalidrawRectangleElement | import("../element/types").ExcalidrawDiamondElement | import("../element/types").ExcalidrawEllipseElement | import("../element/types").ExcalidrawEmbeddableElement | import("../element/types").ExcalidrawIframeElement | import("../element/types").ExcalidrawImageElement | import("../element/types").ExcalidrawFrameElement | import("../element/types").ExcalidrawMagicFrameElement | import("../element/types").ExcalidrawTextElement | import("../element/types").ExcalidrawFreeDrawElement | import("../element/types").ExcalidrawArrowElement>(element: T, renderConfig: {
21
- isExporting: boolean;
22
- canvasBackgroundColor: AppState["viewBackgroundColor"];
23
- embedsValidationStatus: EmbedsValidationStatus;
24
- } | null) => ((T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] | undefined : ElementShape | undefined) & ({} | null)) | (T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] : Drawable | null);
25
- }
@@ -1,129 +0,0 @@
1
- import { AppStateChange, ElementsChange } from "./change";
2
- import { Emitter } from "./emitter";
3
- import type { OrderedExcalidrawElement } from "./element/types";
4
- import type { AppState, ObservedAppState } from "./types";
5
- import type { ValueOf } from "./utility-types";
6
- export declare const getObservedAppState: (appState: AppState) => ObservedAppState;
7
- export declare const CaptureUpdateAction: {
8
- /**
9
- * Immediately undoable.
10
- *
11
- * Use for updates which should be captured.
12
- * Should be used for most of the local updates.
13
- *
14
- * These updates will _immediately_ make it to the local undo / redo stacks.
15
- */
16
- readonly IMMEDIATELY: "IMMEDIATELY";
17
- /**
18
- * Never undoable.
19
- *
20
- * Use for updates which should never be recorded, such as remote updates
21
- * or scene initialization.
22
- *
23
- * These updates will _never_ make it to the local undo / redo stacks.
24
- */
25
- readonly NEVER: "NEVER";
26
- /**
27
- * Eventually undoable.
28
- *
29
- * Use for updates which should not be captured immediately - likely
30
- * exceptions which are part of some async multi-step process. Otherwise, all
31
- * such updates would end up being captured with the next
32
- * `CaptureUpdateAction.IMMEDIATELY` - triggered either by the next `updateScene`
33
- * or internally by the editor.
34
- *
35
- * These updates will _eventually_ make it to the local undo / redo stacks.
36
- */
37
- readonly EVENTUALLY: "EVENTUALLY";
38
- };
39
- export type CaptureUpdateActionType = ValueOf<typeof CaptureUpdateAction>;
40
- /**
41
- * Represent an increment to the Store.
42
- */
43
- declare class StoreIncrementEvent {
44
- readonly elementsChange: ElementsChange;
45
- readonly appStateChange: AppStateChange;
46
- constructor(elementsChange: ElementsChange, appStateChange: AppStateChange);
47
- }
48
- /**
49
- * Store which captures the observed changes and emits them as `StoreIncrementEvent` events.
50
- *
51
- * @experimental this interface is experimental and subject to change.
52
- */
53
- export interface IStore {
54
- onStoreIncrementEmitter: Emitter<[StoreIncrementEvent]>;
55
- get snapshot(): Snapshot;
56
- set snapshot(snapshot: Snapshot);
57
- /**
58
- * Use to schedule update of the snapshot, useful on updates for which we don't need to calculate increments (i.e. remote updates).
59
- */
60
- shouldUpdateSnapshot(): void;
61
- /**
62
- * Use to schedule calculation of a store increment.
63
- */
64
- shouldCaptureIncrement(): void;
65
- /**
66
- * Based on the scheduled operation, either only updates store snapshot or also calculates increment and emits the result as a `StoreIncrementEvent`.
67
- *
68
- * @emits StoreIncrementEvent when increment is calculated.
69
- */
70
- commit(elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined): void;
71
- /**
72
- * Clears the store instance.
73
- */
74
- clear(): void;
75
- /**
76
- * Filters out yet uncomitted elements from `nextElements`, which are part of in-progress local async actions (ephemerals) and thus were not yet commited to the snapshot.
77
- *
78
- * This is necessary in updates in which we receive reconciled elements, already containing elements which were not yet captured by the local store (i.e. collab).
79
- */
80
- filterUncomittedElements(prevElements: Map<string, OrderedExcalidrawElement>, nextElements: Map<string, OrderedExcalidrawElement>): Map<string, OrderedExcalidrawElement>;
81
- }
82
- export declare class Store implements IStore {
83
- readonly onStoreIncrementEmitter: Emitter<[StoreIncrementEvent]>;
84
- private scheduledActions;
85
- private _snapshot;
86
- get snapshot(): Snapshot;
87
- set snapshot(snapshot: Snapshot);
88
- shouldCaptureIncrement: () => void;
89
- shouldUpdateSnapshot: () => void;
90
- private scheduleAction;
91
- commit: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
92
- captureIncrement: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
93
- updateSnapshot: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
94
- filterUncomittedElements: (prevElements: Map<string, OrderedExcalidrawElement>, nextElements: Map<string, OrderedExcalidrawElement>) => Map<string, OrderedExcalidrawElement>;
95
- clear: () => void;
96
- private satisfiesScheduledActionsInvariant;
97
- }
98
- export declare class Snapshot {
99
- readonly elements: Map<string, OrderedExcalidrawElement>;
100
- readonly appState: ObservedAppState;
101
- readonly meta: {
102
- didElementsChange: boolean;
103
- didAppStateChange: boolean;
104
- isEmpty?: boolean;
105
- };
106
- private constructor();
107
- static empty(): Snapshot;
108
- isEmpty(): boolean | undefined;
109
- /**
110
- * Efficiently clone the existing snapshot, only if we detected changes.
111
- *
112
- * @returns same instance if there are no changes detected, new instance otherwise.
113
- */
114
- maybeClone(elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined): Snapshot;
115
- private maybeCreateAppStateSnapshot;
116
- private detectChangedAppState;
117
- private maybeCreateElementsSnapshot;
118
- /**
119
- * Detect if there any changed elements.
120
- *
121
- * NOTE: we shouldn't just use `sceneVersionNonce` instead, as we need to call this before the scene updates.
122
- */
123
- private detectChangedElements;
124
- /**
125
- * Perform structural clone, cloning only elements that changed.
126
- */
127
- private createElementsSnapshot;
128
- }
129
- export {};
@@ -1,41 +0,0 @@
1
- import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
2
- import type { Curve } from "@excalidraw/math";
3
- import type { LineSegment } from "@excalidraw/utils";
4
- import type { Bounds } from "./element/bounds";
5
- declare global {
6
- interface Window {
7
- visualDebug?: {
8
- data: DebugElement[][];
9
- currentFrame?: number;
10
- };
11
- }
12
- }
13
- export type DebugElement = {
14
- color: string;
15
- data: LineSegment<GlobalPoint> | Curve<GlobalPoint>;
16
- permanent: boolean;
17
- };
18
- export declare const debugDrawCubicBezier: (c: Curve<GlobalPoint>, opts?: {
19
- color?: string;
20
- permanent?: boolean;
21
- }) => void;
22
- export declare const debugDrawLine: (segment: LineSegment<GlobalPoint> | LineSegment<GlobalPoint>[], opts?: {
23
- color?: string;
24
- permanent?: boolean;
25
- }) => void;
26
- export declare const debugDrawPoint: (p: GlobalPoint, opts?: {
27
- color?: string;
28
- permanent?: boolean;
29
- fuzzy?: boolean;
30
- }) => void;
31
- export declare const debugDrawBounds: (box: Bounds | Bounds[], opts?: {
32
- color?: string;
33
- permanent?: boolean;
34
- }) => void;
35
- export declare const debugDrawPoints: ({ x, y, points, }: {
36
- x: number;
37
- y: number;
38
- points: LocalPoint[];
39
- }, options?: any) => void;
40
- export declare const debugCloseFrame: () => void;
41
- export declare const debugClear: () => void;
@@ -1,40 +0,0 @@
1
- import type { Curve, GlobalPoint, LineSegment, LocalPoint } from "./types";
2
- /**
3
- *
4
- * @param a
5
- * @param b
6
- * @param c
7
- * @param d
8
- * @returns
9
- */
10
- export declare function curve<Point extends GlobalPoint | LocalPoint>(a: Point, b: Point, c: Point, d: Point): Curve<Point>;
11
- /**
12
- * Computes the intersection between a cubic spline and a line segment.
13
- */
14
- export declare function curveIntersectLineSegment<Point extends GlobalPoint | LocalPoint>(c: Curve<Point>, l: LineSegment<Point>): Point[];
15
- /**
16
- * Finds the closest point on the Bezier curve from another point
17
- *
18
- * @param x
19
- * @param y
20
- * @param P0
21
- * @param P1
22
- * @param P2
23
- * @param P3
24
- * @param tolerance
25
- * @param maxLevel
26
- * @returns
27
- */
28
- export declare function curveClosestPoint<Point extends GlobalPoint | LocalPoint>(c: Curve<Point>, p: Point, tolerance?: number): Point | null;
29
- /**
30
- * Determines the distance between a point and the closest point on the
31
- * Bezier curve.
32
- *
33
- * @param c The curve to test
34
- * @param p The point to measure from
35
- */
36
- export declare function curvePointDistance<Point extends GlobalPoint | LocalPoint>(c: Curve<Point>, p: Point): number;
37
- /**
38
- * Determines if the parameter is a Curve
39
- */
40
- export declare function isCurve<P extends GlobalPoint | LocalPoint>(v: unknown): v is Curve<P>;
@@ -1,9 +0,0 @@
1
- import { type GlobalPoint, type LocalPoint, type Polygon } from "@excalidraw/math";
2
- import type { Curve } from "@excalidraw/math";
3
- import { type GeometricShape } from "./geometry/shape";
4
- import type { Polyline } from "./geometry/shape";
5
- export declare const isPointOnShape: <Point extends GlobalPoint | LocalPoint>(point: Point, shape: GeometricShape<Point>, tolerance?: number) => boolean;
6
- export declare const isPointInShape: <Point extends GlobalPoint | LocalPoint>(point: Point, shape: GeometricShape<Point>) => boolean;
7
- export declare const isPointInBounds: <Point extends GlobalPoint | LocalPoint>(point: Point, bounds: Polygon<Point>) => boolean;
8
- export declare const pointOnCurve: <Point extends GlobalPoint | LocalPoint>(point: Point, curve: Curve<Point>, threshold: number) => boolean;
9
- export declare const pointOnPolyline: <Point extends GlobalPoint | LocalPoint>(point: Point, polyline: Polyline<Point>, threshold?: number) => boolean;