@excalidraw/math 0.18.0-d2463f87d

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 (368) hide show
  1. package/README.md +19 -0
  2. package/dist/dev/index.js +907 -0
  3. package/dist/dev/index.js.map +7 -0
  4. package/dist/prod/index.js +1 -0
  5. package/dist/types/common/src/binary-heap.d.ts +12 -0
  6. package/dist/types/common/src/colors.d.ts +62 -0
  7. package/dist/types/common/src/constants.d.ts +343 -0
  8. package/dist/types/common/src/emitter.d.ts +16 -0
  9. package/dist/types/common/src/font-metadata.d.ts +48 -0
  10. package/dist/types/common/src/index.d.ts +12 -0
  11. package/dist/types/common/src/keys.d.ts +189 -0
  12. package/dist/types/common/src/points.d.ts +9 -0
  13. package/dist/types/common/src/promise-pool.d.ts +6 -0
  14. package/dist/types/common/src/queue.d.ts +9 -0
  15. package/dist/types/common/src/random.d.ts +3 -0
  16. package/dist/types/common/src/url.d.ts +7 -0
  17. package/dist/types/common/src/utility-types.d.ts +38 -0
  18. package/dist/types/common/src/utils.d.ts +267 -0
  19. package/dist/types/element/src/Scene.d.ts +76 -0
  20. package/dist/types/element/src/align.d.ts +7 -0
  21. package/dist/types/element/src/binding.d.ts +110 -0
  22. package/dist/types/element/src/bounds.d.ts +89 -0
  23. package/dist/types/element/src/collision.d.ts +32 -0
  24. package/dist/types/element/src/comparisons.d.ts +8 -0
  25. package/dist/types/element/src/containerCache.d.ts +11 -0
  26. package/dist/types/element/src/cropElement.d.ts +19 -0
  27. package/dist/types/element/src/delta.d.ts +216 -0
  28. package/dist/types/element/src/distance.d.ts +3 -0
  29. package/dist/types/element/src/distribute.d.ts +6 -0
  30. package/dist/types/element/src/dragElements.d.ts +33 -0
  31. package/dist/types/element/src/duplicate.d.ts +63 -0
  32. package/dist/types/element/src/elbowArrow.d.ts +17 -0
  33. package/dist/types/element/src/elementLink.d.ts +13 -0
  34. package/dist/types/element/src/embeddable.d.ts +10 -0
  35. package/dist/types/element/src/flowchart.d.ts +26 -0
  36. package/dist/types/element/src/fractionalIndex.d.ts +57 -0
  37. package/dist/types/element/src/frame.d.ts +70 -0
  38. package/dist/types/element/src/groups.d.ts +33 -0
  39. package/dist/types/element/src/heading.d.ts +15 -0
  40. package/dist/types/element/src/image.d.ts +32 -0
  41. package/dist/types/element/src/index.d.ts +57 -0
  42. package/dist/types/element/src/linearElementEditor.d.ts +116 -0
  43. package/dist/types/element/src/mutateElement.d.ts +21 -0
  44. package/dist/types/element/src/newElement.d.ts +62 -0
  45. package/dist/types/element/src/renderElement.d.ts +28 -0
  46. package/dist/types/element/src/resizeElements.d.ts +32 -0
  47. package/dist/types/element/src/resizeTest.d.ts +15 -0
  48. package/dist/types/element/src/selection.d.ts +38 -0
  49. package/dist/types/element/src/shape.d.ts +42 -0
  50. package/dist/types/element/src/showSelectedShapeActions.d.ts +3 -0
  51. package/dist/types/element/src/sizeHelpers.d.ts +35 -0
  52. package/dist/types/element/src/sortElements.d.ts +2 -0
  53. package/dist/types/element/src/store.d.ts +231 -0
  54. package/dist/types/element/src/textElement.d.ts +40 -0
  55. package/dist/types/element/src/textMeasurements.d.ts +41 -0
  56. package/dist/types/element/src/textWrapping.d.ts +13 -0
  57. package/dist/types/element/src/transformHandles.d.ts +55 -0
  58. package/dist/types/element/src/typeChecks.d.ts +57 -0
  59. package/dist/types/element/src/types.d.ts +295 -0
  60. package/dist/types/element/src/utils.d.ts +31 -0
  61. package/dist/types/element/src/zindex.d.ts +7 -0
  62. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +528 -0
  63. package/dist/types/excalidraw/actions/actionAlign.d.ts +110 -0
  64. package/dist/types/excalidraw/actions/actionBoundText.d.ts +389 -0
  65. package/dist/types/excalidraw/actions/actionCanvas.d.ts +2416 -0
  66. package/dist/types/excalidraw/actions/actionClipboard.d.ts +1172 -0
  67. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +189 -0
  68. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +568 -0
  69. package/dist/types/excalidraw/actions/actionDistribute.d.ts +35 -0
  70. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +18 -0
  71. package/dist/types/excalidraw/actions/actionElementLink.d.ts +211 -0
  72. package/dist/types/excalidraw/actions/actionElementLock.d.ts +375 -0
  73. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +186 -0
  74. package/dist/types/excalidraw/actions/actionExport.d.ts +1648 -0
  75. package/dist/types/excalidraw/actions/actionFinalize.d.ts +398 -0
  76. package/dist/types/excalidraw/actions/actionFlip.d.ts +35 -0
  77. package/dist/types/excalidraw/actions/actionFrame.d.ts +1245 -0
  78. package/dist/types/excalidraw/actions/actionGroup.d.ts +387 -0
  79. package/dist/types/excalidraw/actions/actionHistory.d.ts +6 -0
  80. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +683 -0
  81. package/dist/types/excalidraw/actions/actionLink.d.ts +190 -0
  82. package/dist/types/excalidraw/actions/actionMenu.d.ts +548 -0
  83. package/dist/types/excalidraw/actions/actionNavigate.d.ts +363 -0
  84. package/dist/types/excalidraw/actions/actionProperties.d.ts +2774 -0
  85. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +189 -0
  86. package/dist/types/excalidraw/actions/actionStyles.d.ts +203 -0
  87. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +17 -0
  88. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +192 -0
  89. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +190 -0
  90. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +183 -0
  91. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +19 -0
  92. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +189 -0
  93. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +190 -0
  94. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +190 -0
  95. package/dist/types/excalidraw/actions/actionZindex.d.ts +75 -0
  96. package/dist/types/excalidraw/actions/index.d.ts +28 -0
  97. package/dist/types/excalidraw/actions/manager.d.ts +21 -0
  98. package/dist/types/excalidraw/actions/register.d.ts +5 -0
  99. package/dist/types/excalidraw/actions/shortcuts.d.ts +4 -0
  100. package/dist/types/excalidraw/actions/types.d.ts +47 -0
  101. package/dist/types/excalidraw/analytics.d.ts +1 -0
  102. package/dist/types/excalidraw/animated-trail.d.ts +39 -0
  103. package/dist/types/excalidraw/animation-frame-handler.d.ts +16 -0
  104. package/dist/types/excalidraw/appState.d.ts +96 -0
  105. package/dist/types/excalidraw/charts.d.ts +27 -0
  106. package/dist/types/excalidraw/clients.d.ts +14 -0
  107. package/dist/types/excalidraw/clipboard.d.ts +66 -0
  108. package/dist/types/excalidraw/components/Actions.d.ts +34 -0
  109. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +4 -0
  110. package/dist/types/excalidraw/components/App.d.ts +559 -0
  111. package/dist/types/excalidraw/components/Avatar.d.ts +11 -0
  112. package/dist/types/excalidraw/components/BraveMeasureTextError.d.ts +2 -0
  113. package/dist/types/excalidraw/components/Button.d.ts +17 -0
  114. package/dist/types/excalidraw/components/ButtonIcon.d.ts +16 -0
  115. package/dist/types/excalidraw/components/ButtonSeparator.d.ts +1 -0
  116. package/dist/types/excalidraw/components/Card.d.ts +7 -0
  117. package/dist/types/excalidraw/components/CheckboxItem.d.ts +8 -0
  118. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +10 -0
  119. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +23 -0
  120. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +8 -0
  121. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +7 -0
  122. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +17 -0
  123. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -0
  124. package/dist/types/excalidraw/components/ColorPicker/PickerHeading.d.ts +5 -0
  125. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +8 -0
  126. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +9 -0
  127. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +21 -0
  128. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +21 -0
  129. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +18 -0
  130. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +2 -0
  131. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +26 -0
  132. package/dist/types/excalidraw/components/ConfirmDialog.d.ts +10 -0
  133. package/dist/types/excalidraw/components/ContextMenu.d.ts +16 -0
  134. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +23 -0
  135. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +7 -0
  136. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +31 -0
  137. package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +4 -0
  138. package/dist/types/excalidraw/components/Dialog.d.ts +13 -0
  139. package/dist/types/excalidraw/components/DialogActionButton.d.ts +10 -0
  140. package/dist/types/excalidraw/components/ElementCanvasButtons.d.ts +7 -0
  141. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +12 -0
  142. package/dist/types/excalidraw/components/ErrorDialog.d.ts +5 -0
  143. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +16 -0
  144. package/dist/types/excalidraw/components/EyeDropper.d.ts +28 -0
  145. package/dist/types/excalidraw/components/FilledButton.d.ts +18 -0
  146. package/dist/types/excalidraw/components/FixedSideContainer.d.ts +9 -0
  147. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +10 -0
  148. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +21 -0
  149. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +26 -0
  150. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +6 -0
  151. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +14 -0
  152. package/dist/types/excalidraw/components/HandButton.d.ts +10 -0
  153. package/dist/types/excalidraw/components/HelpButton.d.ts +7 -0
  154. package/dist/types/excalidraw/components/HelpDialog.d.ts +4 -0
  155. package/dist/types/excalidraw/components/HintViewer.d.ts +10 -0
  156. package/dist/types/excalidraw/components/IconPicker.d.ts +15 -0
  157. package/dist/types/excalidraw/components/ImageExportDialog.d.ts +14 -0
  158. package/dist/types/excalidraw/components/InitializeApp.d.ts +10 -0
  159. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -0
  160. package/dist/types/excalidraw/components/Island.d.ts +10 -0
  161. package/dist/types/excalidraw/components/JSONExportDialog.d.ts +15 -0
  162. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +10 -0
  163. package/dist/types/excalidraw/components/LayerUI.d.ts +31 -0
  164. package/dist/types/excalidraw/components/LibraryMenu.d.ts +10 -0
  165. package/dist/types/excalidraw/components/LibraryMenuBrowseButton.d.ts +7 -0
  166. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +9 -0
  167. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +18 -0
  168. package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +14 -0
  169. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +23 -0
  170. package/dist/types/excalidraw/components/LibraryUnit.d.ts +15 -0
  171. package/dist/types/excalidraw/components/LoadingMessage.d.ts +6 -0
  172. package/dist/types/excalidraw/components/LockButton.d.ts +10 -0
  173. package/dist/types/excalidraw/components/MagicButton.d.ts +10 -0
  174. package/dist/types/excalidraw/components/MobileMenu.d.ts +25 -0
  175. package/dist/types/excalidraw/components/Modal.d.ts +12 -0
  176. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
  177. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
  178. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
  179. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +8 -0
  180. package/dist/types/excalidraw/components/PenModeButton.d.ts +12 -0
  181. package/dist/types/excalidraw/components/Popover.d.ts +15 -0
  182. package/dist/types/excalidraw/components/ProjectName.d.ts +10 -0
  183. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +15 -0
  184. package/dist/types/excalidraw/components/PublishLibrary.d.ts +16 -0
  185. package/dist/types/excalidraw/components/QuickSearch.d.ts +9 -0
  186. package/dist/types/excalidraw/components/RadioGroup.d.ts +14 -0
  187. package/dist/types/excalidraw/components/RadioSelection.d.ts +20 -0
  188. package/dist/types/excalidraw/components/Range.d.ts +8 -0
  189. package/dist/types/excalidraw/components/SVGLayer.d.ts +7 -0
  190. package/dist/types/excalidraw/components/ScrollableList.d.ts +9 -0
  191. package/dist/types/excalidraw/components/SearchMenu.d.ts +5 -0
  192. package/dist/types/excalidraw/components/Section.d.ts +6 -0
  193. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +76 -0
  194. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +7 -0
  195. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +9 -0
  196. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +10 -0
  197. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +7 -0
  198. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +7 -0
  199. package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +6 -0
  200. package/dist/types/excalidraw/components/Sidebar/common.d.ts +34 -0
  201. package/dist/types/excalidraw/components/Spinner.d.ts +8 -0
  202. package/dist/types/excalidraw/components/Stack.d.ts +15 -0
  203. package/dist/types/excalidraw/components/Stats/Angle.d.ts +11 -0
  204. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +11 -0
  205. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +11 -0
  206. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +11 -0
  207. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +45 -0
  208. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +11 -0
  209. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +11 -0
  210. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +14 -0
  211. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +12 -0
  212. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +14 -0
  213. package/dist/types/excalidraw/components/Stats/Position.d.ts +12 -0
  214. package/dist/types/excalidraw/components/Stats/index.d.ts +36 -0
  215. package/dist/types/excalidraw/components/Stats/utils.d.ts +19 -0
  216. package/dist/types/excalidraw/components/Switch.d.ts +9 -0
  217. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +6 -0
  218. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +30 -0
  219. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +9 -0
  220. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +8 -0
  221. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +17 -0
  222. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +4 -0
  223. package/dist/types/excalidraw/components/TTDDialog/TTDDialogSubmitShortcut.d.ts +1 -0
  224. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +8 -0
  225. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +9 -0
  226. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +7 -0
  227. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +11 -0
  228. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +9 -0
  229. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +33 -0
  230. package/dist/types/excalidraw/components/TextField.d.ts +21 -0
  231. package/dist/types/excalidraw/components/Toast.d.ts +9 -0
  232. package/dist/types/excalidraw/components/ToolButton.d.ts +49 -0
  233. package/dist/types/excalidraw/components/Tooltip.d.ts +18 -0
  234. package/dist/types/excalidraw/components/Trans.d.ts +9 -0
  235. package/dist/types/excalidraw/components/UnlockPopup.d.ts +8 -0
  236. package/dist/types/excalidraw/components/UserList.d.ts +18 -0
  237. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +30 -0
  238. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +14 -0
  239. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +19 -0
  240. package/dist/types/excalidraw/components/canvases/index.d.ts +3 -0
  241. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +86 -0
  242. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +15 -0
  243. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
  244. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +46 -0
  245. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +8 -0
  246. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +18 -0
  247. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -0
  248. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +16 -0
  249. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
  250. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +11 -0
  251. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +6 -0
  252. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
  253. package/dist/types/excalidraw/components/footer/Footer.d.ts +12 -0
  254. package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +8 -0
  255. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +4 -0
  256. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +19 -0
  257. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +10 -0
  258. package/dist/types/excalidraw/components/icons.d.ts +225 -0
  259. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +10 -0
  260. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +64 -0
  261. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +83 -0
  262. package/dist/types/excalidraw/components/shapes.d.ts +62 -0
  263. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +58 -0
  264. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
  265. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +85 -0
  266. package/dist/types/excalidraw/context/tunnels.d.ts +21 -0
  267. package/dist/types/excalidraw/context/ui-appState.d.ts +4 -0
  268. package/dist/types/excalidraw/cursor.d.ts +5 -0
  269. package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +8 -0
  270. package/dist/types/excalidraw/data/blob.d.ts +53 -0
  271. package/dist/types/excalidraw/data/encode.d.ts +55 -0
  272. package/dist/types/excalidraw/data/encryption.d.ts +9 -0
  273. package/dist/types/excalidraw/data/filesystem.d.ts +21 -0
  274. package/dist/types/excalidraw/data/image.d.ts +9 -0
  275. package/dist/types/excalidraw/data/index.d.ts +22 -0
  276. package/dist/types/excalidraw/data/json.d.ts +16 -0
  277. package/dist/types/excalidraw/data/library.d.ts +112 -0
  278. package/dist/types/excalidraw/data/reconcile.d.ts +6 -0
  279. package/dist/types/excalidraw/data/resave.d.ts +5 -0
  280. package/dist/types/excalidraw/data/restore.d.ts +21 -0
  281. package/dist/types/excalidraw/data/transform.d.ts +81 -0
  282. package/dist/types/excalidraw/data/types.d.ts +45 -0
  283. package/dist/types/excalidraw/deburr.d.ts +1 -0
  284. package/dist/types/excalidraw/editor-jotai.d.ts +56 -0
  285. package/dist/types/excalidraw/eraser/index.d.ts +12 -0
  286. package/dist/types/excalidraw/errors.d.ts +29 -0
  287. package/dist/types/excalidraw/fonts/Cascadia/index.d.ts +2 -0
  288. package/dist/types/excalidraw/fonts/ComicShanns/index.d.ts +2 -0
  289. package/dist/types/excalidraw/fonts/Emoji/index.d.ts +2 -0
  290. package/dist/types/excalidraw/fonts/ExcalidrawFontFace.d.ts +25 -0
  291. package/dist/types/excalidraw/fonts/Excalifont/index.d.ts +2 -0
  292. package/dist/types/excalidraw/fonts/Fonts.d.ts +79 -0
  293. package/dist/types/excalidraw/fonts/Helvetica/index.d.ts +2 -0
  294. package/dist/types/excalidraw/fonts/Liberation/index.d.ts +2 -0
  295. package/dist/types/excalidraw/fonts/Lilita/index.d.ts +2 -0
  296. package/dist/types/excalidraw/fonts/Nunito/index.d.ts +2 -0
  297. package/dist/types/excalidraw/fonts/Virgil/index.d.ts +2 -0
  298. package/dist/types/excalidraw/fonts/Xiaolai/index.d.ts +8 -0
  299. package/dist/types/excalidraw/fonts/index.d.ts +1 -0
  300. package/dist/types/excalidraw/gesture.d.ts +6 -0
  301. package/dist/types/excalidraw/history.d.ts +48 -0
  302. package/dist/types/excalidraw/hooks/useCallbackRefState.d.ts +1 -0
  303. package/dist/types/excalidraw/hooks/useCopiedIndicator.d.ts +5 -0
  304. package/dist/types/excalidraw/hooks/useCreatePortalContainer.d.ts +4 -0
  305. package/dist/types/excalidraw/hooks/useEmitter.d.ts +2 -0
  306. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +11 -0
  307. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +20 -0
  308. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +2 -0
  309. package/dist/types/excalidraw/hooks/useStable.d.ts +1 -0
  310. package/dist/types/excalidraw/hooks/useStableCallback.d.ts +4 -0
  311. package/dist/types/excalidraw/hooks/useTransition.d.ts +2 -0
  312. package/dist/types/excalidraw/i18n.d.ts +24 -0
  313. package/dist/types/excalidraw/index.d.ts +46 -0
  314. package/dist/types/excalidraw/laser-trails.d.ts +20 -0
  315. package/dist/types/excalidraw/lasso/index.d.ts +16 -0
  316. package/dist/types/excalidraw/lasso/utils.d.ts +13 -0
  317. package/dist/types/excalidraw/mermaid.d.ts +2 -0
  318. package/dist/types/excalidraw/polyfill.d.ts +2 -0
  319. package/dist/types/excalidraw/reactUtils.d.ts +14 -0
  320. package/dist/types/excalidraw/renderer/helpers.d.ts +18 -0
  321. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +20 -0
  322. package/dist/types/excalidraw/renderer/renderNewElementScene.d.ts +7 -0
  323. package/dist/types/excalidraw/renderer/renderSnaps.d.ts +2 -0
  324. package/dist/types/excalidraw/renderer/roundRect.d.ts +11 -0
  325. package/dist/types/excalidraw/renderer/staticScene.d.ts +11 -0
  326. package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +5 -0
  327. package/dist/types/excalidraw/scene/Renderer.d.ts +27 -0
  328. package/dist/types/excalidraw/scene/export.d.ts +36 -0
  329. package/dist/types/excalidraw/scene/index.d.ts +4 -0
  330. package/dist/types/excalidraw/scene/normalize.d.ts +4 -0
  331. package/dist/types/excalidraw/scene/scroll.d.ts +23 -0
  332. package/dist/types/excalidraw/scene/scrollbars.d.ts +11 -0
  333. package/dist/types/excalidraw/scene/types.d.ts +120 -0
  334. package/dist/types/excalidraw/scene/zoom.d.ts +12 -0
  335. package/dist/types/excalidraw/snapping.d.ts +111 -0
  336. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +45 -0
  337. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +13 -0
  338. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +2 -0
  339. package/dist/types/excalidraw/subset/subset-main.d.ts +12 -0
  340. package/dist/types/excalidraw/subset/subset-shared.chunk.d.ts +32 -0
  341. package/dist/types/excalidraw/subset/subset-worker.chunk.d.ts +15 -0
  342. package/dist/types/excalidraw/subset/woff2/woff2-bindings.d.ts +31 -0
  343. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +14 -0
  344. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +2 -0
  345. package/dist/types/excalidraw/types.d.ts +706 -0
  346. package/dist/types/excalidraw/workers.d.ts +36 -0
  347. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +24 -0
  348. package/dist/types/math/src/angle.d.ts +19 -0
  349. package/dist/types/math/src/constants.d.ts +3 -0
  350. package/dist/types/math/src/curve.d.ts +74 -0
  351. package/dist/types/math/src/ellipse.d.ts +44 -0
  352. package/dist/types/math/src/index.d.ts +13 -0
  353. package/dist/types/math/src/line.d.ts +17 -0
  354. package/dist/types/math/src/point.d.ts +122 -0
  355. package/dist/types/math/src/polygon.d.ts +6 -0
  356. package/dist/types/math/src/range.d.ts +44 -0
  357. package/dist/types/math/src/rectangle.d.ts +5 -0
  358. package/dist/types/math/src/segment.d.ts +39 -0
  359. package/dist/types/math/src/triangle.d.ts +11 -0
  360. package/dist/types/math/src/types.d.ts +106 -0
  361. package/dist/types/math/src/utils.d.ts +7 -0
  362. package/dist/types/math/src/vector.d.ts +94 -0
  363. package/dist/types/utils/src/bbox.d.ts +9 -0
  364. package/dist/types/utils/src/export.d.ts +35 -0
  365. package/dist/types/utils/src/index.d.ts +4 -0
  366. package/dist/types/utils/src/shape.d.ts +58 -0
  367. package/dist/types/utils/src/withinBounds.d.ts +19 -0
  368. package/package.json +66 -0
@@ -0,0 +1,20 @@
1
+ import { AnimatedTrail } from "./animated-trail";
2
+ import type { Trail } from "./animated-trail";
3
+ import type { AnimationFrameHandler } from "./animation-frame-handler";
4
+ import type App from "./components/App";
5
+ export declare class LaserTrails implements Trail {
6
+ private animationFrameHandler;
7
+ private app;
8
+ localTrail: AnimatedTrail;
9
+ private collabTrails;
10
+ private container?;
11
+ constructor(animationFrameHandler: AnimationFrameHandler, app: App);
12
+ private getTrailOptions;
13
+ startPath(x: number, y: number): void;
14
+ addPointToPath(x: number, y: number): void;
15
+ endPath(): void;
16
+ start(container: SVGSVGElement): void;
17
+ stop(): void;
18
+ onFrame(): void;
19
+ private updateCollabTrails;
20
+ }
@@ -0,0 +1,16 @@
1
+ import { type AnimationFrameHandler } from "../animation-frame-handler";
2
+ import { AnimatedTrail } from "../animated-trail";
3
+ import type App from "../components/App";
4
+ export declare class LassoTrail extends AnimatedTrail {
5
+ private intersectedElements;
6
+ private enclosedElements;
7
+ private elementsSegments;
8
+ private canvasTranslate;
9
+ private keepPreviousSelection;
10
+ constructor(animationFrameHandler: AnimationFrameHandler, app: App);
11
+ startPath(x: number, y: number, keepPreviousSelection?: boolean): void;
12
+ selectElementsFromIds: (ids: string[]) => void;
13
+ addPointToPath: (x: number, y: number, keepPreviousSelection?: boolean) => void;
14
+ private updateSelection;
15
+ endPath(): void;
16
+ }
@@ -0,0 +1,13 @@
1
+ import type { ElementsSegmentsMap, GlobalPoint } from "@excalidraw/math/types";
2
+ import type { ElementsMap, ExcalidrawElement } from "@excalidraw/element/types";
3
+ export declare const getLassoSelectedElementIds: (input: {
4
+ lassoPath: GlobalPoint[];
5
+ elements: readonly ExcalidrawElement[];
6
+ elementsMap: ElementsMap;
7
+ elementsSegments: ElementsSegmentsMap;
8
+ intersectedElements: Set<ExcalidrawElement["id"]>;
9
+ enclosedElements: Set<ExcalidrawElement["id"]>;
10
+ simplifyDistance?: number;
11
+ }) => {
12
+ selectedElementIds: string[];
13
+ };
@@ -0,0 +1,2 @@
1
+ /** heuristically checks whether the text may be a mermaid diagram definition */
2
+ export declare const isMaybeMermaidDefinition: (text: string) => boolean;
@@ -0,0 +1,2 @@
1
+ declare const polyfill: () => void;
2
+ export default polyfill;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @param func handler taking at most single parameter (event).
3
+ */
4
+ export declare const withBatchedUpdates: <TFunction extends ((event: any) => void) | (() => void)>(func: Parameters<TFunction>["length"] extends 0 | 1 ? TFunction : never) => TFunction;
5
+ /**
6
+ * barches React state updates and throttles the calls to a single call per
7
+ * animation frame
8
+ */
9
+ export declare const withBatchedUpdatesThrottled: <TFunction extends ((event: any) => void) | (() => void)>(func: Parameters<TFunction>["length"] extends 0 | 1 ? TFunction : never) => {
10
+ (...args: Parameters<TFunction>): void;
11
+ flush(): void;
12
+ cancel(): void;
13
+ };
14
+ export declare const isRenderThrottlingEnabled: () => boolean;
@@ -0,0 +1,18 @@
1
+ import type { ElementsMap, ExcalidrawDiamondElement, ExcalidrawRectanguloidElement } from "@excalidraw/element/types";
2
+ import type { StaticCanvasRenderConfig } from "../scene/types";
3
+ import type { AppState, StaticCanvasAppState } from "../types";
4
+ export declare const fillCircle: (context: CanvasRenderingContext2D, cx: number, cy: number, radius: number, stroke: boolean, fill?: boolean) => void;
5
+ export declare const getNormalizedCanvasDimensions: (canvas: HTMLCanvasElement, scale: number) => [number, number];
6
+ export declare const bootstrapCanvas: ({ canvas, scale, normalizedWidth, normalizedHeight, theme, isExporting, viewBackgroundColor, }: {
7
+ canvas: HTMLCanvasElement;
8
+ scale: number;
9
+ normalizedWidth: number;
10
+ normalizedHeight: number;
11
+ theme?: import("@excalidraw/element/types").Theme | undefined;
12
+ isExporting?: boolean | undefined;
13
+ viewBackgroundColor?: string | null | undefined;
14
+ }) => CanvasRenderingContext2D;
15
+ export declare const drawHighlightForRectWithRotation: (context: CanvasRenderingContext2D, element: ExcalidrawRectanguloidElement, elementsMap: ElementsMap, padding: number) => void;
16
+ export declare const strokeEllipseWithRotation: (context: CanvasRenderingContext2D, width: number, height: number, cx: number, cy: number, angle: number) => void;
17
+ export declare const strokeRectWithRotation: (context: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, cx: number, cy: number, angle: number, fill?: boolean, radius?: number) => void;
18
+ export declare const drawHighlightForDiamondWithRotation: (context: CanvasRenderingContext2D, padding: number, element: ExcalidrawDiamondElement, elementsMap: ElementsMap) => void;
@@ -0,0 +1,20 @@
1
+ import type { InteractiveSceneRenderConfig, RenderableElementsMap } from "../scene/types";
2
+ /** throttled to animation framerate */
3
+ export declare const renderInteractiveSceneThrottled: {
4
+ (config: InteractiveSceneRenderConfig): void;
5
+ flush(): void;
6
+ cancel(): void;
7
+ };
8
+ /**
9
+ * Interactive scene is the ui-canvas where we render bounding boxes, selections
10
+ * and other ui stuff.
11
+ */
12
+ export declare const renderInteractiveScene: <U extends ({ canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, device, }: InteractiveSceneRenderConfig) => {
13
+ atLeastOneVisibleElement: boolean;
14
+ elementsMap: RenderableElementsMap;
15
+ scrollBars?: undefined;
16
+ } | {
17
+ scrollBars: import("../scene/types").ScrollBars | undefined;
18
+ atLeastOneVisibleElement: boolean;
19
+ elementsMap: RenderableElementsMap;
20
+ }, T extends boolean = false>(renderConfig: InteractiveSceneRenderConfig, throttle?: T | undefined) => T extends true ? void : ReturnType<U>;
@@ -0,0 +1,7 @@
1
+ import type { NewElementSceneRenderConfig } from "../scene/types";
2
+ export declare const renderNewElementSceneThrottled: {
3
+ (config: NewElementSceneRenderConfig): void;
4
+ flush(): void;
5
+ cancel(): void;
6
+ };
7
+ export declare const renderNewElementScene: (renderConfig: NewElementSceneRenderConfig, throttle?: boolean) => void;
@@ -0,0 +1,2 @@
1
+ import type { InteractiveCanvasAppState } from "../types";
2
+ export declare const renderSnaps: (context: CanvasRenderingContext2D, appState: InteractiveCanvasAppState) => void;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * https://stackoverflow.com/a/3368118
3
+ * Draws a rounded rectangle using the current state of the canvas.
4
+ * @param {CanvasRenderingContext2D} context
5
+ * @param {Number} x The top left x coordinate
6
+ * @param {Number} y The top left y coordinate
7
+ * @param {Number} width The width of the rectangle
8
+ * @param {Number} height The height of the rectangle
9
+ * @param {Number} radius The corner radius
10
+ */
11
+ export declare const roundRect: (context: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, radius: number, strokeColor?: string) => void;
@@ -0,0 +1,11 @@
1
+ import type { StaticSceneRenderConfig } from "../scene/types";
2
+ /** throttled to animation framerate */
3
+ export declare const renderStaticSceneThrottled: {
4
+ (config: StaticSceneRenderConfig): void;
5
+ flush(): void;
6
+ cancel(): void;
7
+ };
8
+ /**
9
+ * Static scene is the non-ui canvas where we render elements.
10
+ */
11
+ export declare const renderStaticScene: (renderConfig: StaticSceneRenderConfig, throttle?: boolean) => void;
@@ -0,0 +1,5 @@
1
+ import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
2
+ import type { RenderableElementsMap, SVGRenderConfig } from "../scene/types";
3
+ import type { BinaryFiles } from "../types";
4
+ import type { RoughSVG } from "roughjs/bin/svg";
5
+ export declare const renderSceneToSvg: (elements: readonly NonDeletedExcalidrawElement[], elementsMap: RenderableElementsMap, rsvg: RoughSVG, svgRoot: SVGElement, files: BinaryFiles, renderConfig: SVGRenderConfig) => void;
@@ -0,0 +1,27 @@
1
+ import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
2
+ import type { Scene } from "@excalidraw/element";
3
+ import type { AppState } from "../types";
4
+ export declare class Renderer {
5
+ private scene;
6
+ constructor(scene: Scene);
7
+ getRenderableElements: ((opts: {
8
+ zoom: AppState["zoom"];
9
+ offsetLeft: AppState["offsetLeft"];
10
+ offsetTop: AppState["offsetTop"];
11
+ scrollX: AppState["scrollX"];
12
+ scrollY: AppState["scrollY"];
13
+ height: AppState["height"];
14
+ width: AppState["width"];
15
+ editingTextElement: AppState["editingTextElement"];
16
+ /** note: first render of newElement will always bust the cache
17
+ * (we'd have to prefilter elements outside of this function) */
18
+ newElementId: ExcalidrawElement["id"] | undefined;
19
+ sceneNonce: ReturnType<InstanceType<typeof Scene>["getSceneNonce"]>;
20
+ }) => {
21
+ elementsMap: Map<string, NonDeletedExcalidrawElement> & import("../../common/src/utility-types").MakeBrand<"NonDeletedElementsMap"> & import("../../common/src/utility-types").MakeBrand<"RenderableElementsMap">;
22
+ visibleElements: readonly NonDeletedExcalidrawElement[];
23
+ }) & {
24
+ clear: () => void;
25
+ };
26
+ destroy(): void;
27
+ }
@@ -0,0 +1,36 @@
1
+ import type { ExcalidrawFrameLikeElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
2
+ import type { AppState, BinaryFiles } from "../types";
3
+ export declare const exportToCanvas: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles, { exportBackground, exportPadding, viewBackgroundColor, exportingFrame, }: {
4
+ exportBackground: boolean;
5
+ exportPadding?: number | undefined;
6
+ viewBackgroundColor: string;
7
+ exportingFrame?: ExcalidrawFrameLikeElement | null | undefined;
8
+ }, createCanvas?: (width: number, height: number) => {
9
+ canvas: HTMLCanvasElement;
10
+ scale: number;
11
+ }, loadFonts?: () => Promise<void>) => Promise<HTMLCanvasElement>;
12
+ export declare const exportToSvg: (elements: readonly NonDeletedExcalidrawElement[], appState: {
13
+ exportBackground: boolean;
14
+ exportPadding?: number;
15
+ exportScale?: number;
16
+ viewBackgroundColor: string;
17
+ exportWithDarkMode?: boolean;
18
+ exportEmbedScene?: boolean;
19
+ frameRendering?: AppState["frameRendering"];
20
+ }, files: BinaryFiles | null, opts?: {
21
+ /**
22
+ * if true, all embeddables passed in will be rendered when possible.
23
+ */
24
+ renderEmbeddables?: boolean;
25
+ exportingFrame?: ExcalidrawFrameLikeElement | null;
26
+ skipInliningFonts?: true;
27
+ reuseImages?: boolean;
28
+ }) => Promise<SVGSVGElement>;
29
+ export declare const encodeSvgBase64Payload: ({ payload, metadataElement, }: {
30
+ payload: string;
31
+ metadataElement: SVGMetadataElement;
32
+ }) => void;
33
+ export declare const decodeSvgBase64Payload: ({ svg }: {
34
+ svg: string;
35
+ }) => string;
36
+ export declare const getExportSize: (elements: readonly NonDeletedExcalidrawElement[], exportPadding: number, scale: number) => [number, number];
@@ -0,0 +1,4 @@
1
+ export { isSomeElementSelected, getElementsWithinSelection, getSelectedElements, getTargetElements, } from "@excalidraw/element";
2
+ export { calculateScrollCenter } from "./scroll";
3
+ export { hasBackground, hasStrokeWidth, hasStrokeStyle, canHaveArrowheads, canChangeRoundness, } from "@excalidraw/element";
4
+ export { getNormalizedZoom, getNormalizedGridSize, getNormalizedGridStep, } from "./normalize";
@@ -0,0 +1,4 @@
1
+ import type { NormalizedZoomValue } from "../types";
2
+ export declare const getNormalizedZoom: (zoom: number) => NormalizedZoomValue;
3
+ export declare const getNormalizedGridSize: (gridStep: number) => number;
4
+ export declare const getNormalizedGridStep: (gridStep: number) => number;
@@ -0,0 +1,23 @@
1
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
2
+ import type { AppState, Offsets, PointerCoords, Zoom } from "../types";
3
+ export declare const centerScrollOn: ({ scenePoint, viewportDimensions, zoom, offsets, }: {
4
+ scenePoint: PointerCoords;
5
+ viewportDimensions: {
6
+ height: number;
7
+ width: number;
8
+ };
9
+ zoom: Zoom;
10
+ offsets?: Partial<{
11
+ top: number;
12
+ right: number;
13
+ bottom: number;
14
+ left: number;
15
+ }> | undefined;
16
+ }) => {
17
+ scrollX: number;
18
+ scrollY: number;
19
+ };
20
+ export declare const calculateScrollCenter: (elements: readonly ExcalidrawElement[], appState: AppState) => {
21
+ scrollX: number;
22
+ scrollY: number;
23
+ };
@@ -0,0 +1,11 @@
1
+ import type { InteractiveCanvasAppState } from "../types";
2
+ import type { RenderableElementsMap, ScrollBars } from "./types";
3
+ export declare const SCROLLBAR_MARGIN = 4;
4
+ export declare const SCROLLBAR_WIDTH = 6;
5
+ export declare const SCROLLBAR_COLOR = "rgba(0,0,0,0.3)";
6
+ export declare const getScrollBars: (elements: RenderableElementsMap, viewportWidth: number, viewportHeight: number, appState: InteractiveCanvasAppState) => ScrollBars;
7
+ export declare const isOverScrollBars: (scrollBars: ScrollBars, x: number, y: number) => {
8
+ isOverEither: boolean;
9
+ isOverHorizontal: boolean;
10
+ isOverVertical: boolean;
11
+ };
@@ -0,0 +1,120 @@
1
+ import type { UserIdleState } from "@excalidraw/common";
2
+ import type { ExcalidrawElement, NonDeletedElementsMap, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap } from "@excalidraw/element/types";
3
+ import type { MakeBrand } from "@excalidraw/common/utility-types";
4
+ import type { AppClassProperties, AppState, EmbedsValidationStatus, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId, Device, PendingExcalidrawElements } from "../types";
5
+ import type { RoughCanvas } from "roughjs/bin/canvas";
6
+ import type { Drawable } from "roughjs/bin/core";
7
+ export type RenderableElementsMap = NonDeletedElementsMap & MakeBrand<"RenderableElementsMap">;
8
+ export type StaticCanvasRenderConfig = {
9
+ canvasBackgroundColor: AppState["viewBackgroundColor"];
10
+ imageCache: AppClassProperties["imageCache"];
11
+ renderGrid: boolean;
12
+ /** when exporting the behavior is slightly different (e.g. we can't use
13
+ CSS filters), and we disable render optimizations for best output */
14
+ isExporting: boolean;
15
+ embedsValidationStatus: EmbedsValidationStatus;
16
+ elementsPendingErasure: ElementsPendingErasure;
17
+ pendingFlowchartNodes: PendingExcalidrawElements | null;
18
+ };
19
+ export type SVGRenderConfig = {
20
+ offsetX: number;
21
+ offsetY: number;
22
+ isExporting: boolean;
23
+ exportWithDarkMode: boolean;
24
+ renderEmbeddables: boolean;
25
+ frameRendering: AppState["frameRendering"];
26
+ canvasBackgroundColor: AppState["viewBackgroundColor"];
27
+ embedsValidationStatus: EmbedsValidationStatus;
28
+ /**
29
+ * whether to attempt to reuse images as much as possible through symbols
30
+ * (reduces SVG size, but may be incompoatible with some SVG renderers)
31
+ *
32
+ * @default true
33
+ */
34
+ reuseImages: boolean;
35
+ };
36
+ export type InteractiveCanvasRenderConfig = {
37
+ remoteSelectedElementIds: Map<ExcalidrawElement["id"], SocketId[]>;
38
+ remotePointerViewportCoords: Map<SocketId, {
39
+ x: number;
40
+ y: number;
41
+ }>;
42
+ remotePointerUserStates: Map<SocketId, UserIdleState>;
43
+ remotePointerUsernames: Map<SocketId, string>;
44
+ remotePointerButton: Map<SocketId, string | undefined>;
45
+ selectionColor: string;
46
+ renderScrollbars?: boolean;
47
+ };
48
+ export type RenderInteractiveSceneCallback = {
49
+ atLeastOneVisibleElement: boolean;
50
+ elementsMap: RenderableElementsMap;
51
+ scrollBars?: ScrollBars;
52
+ };
53
+ export type StaticSceneRenderConfig = {
54
+ canvas: HTMLCanvasElement;
55
+ rc: RoughCanvas;
56
+ elementsMap: RenderableElementsMap;
57
+ allElementsMap: NonDeletedSceneElementsMap;
58
+ visibleElements: readonly NonDeletedExcalidrawElement[];
59
+ scale: number;
60
+ appState: StaticCanvasAppState;
61
+ renderConfig: StaticCanvasRenderConfig;
62
+ };
63
+ export type InteractiveSceneRenderConfig = {
64
+ canvas: HTMLCanvasElement | null;
65
+ elementsMap: RenderableElementsMap;
66
+ visibleElements: readonly NonDeletedExcalidrawElement[];
67
+ selectedElements: readonly NonDeletedExcalidrawElement[];
68
+ allElementsMap: NonDeletedSceneElementsMap;
69
+ scale: number;
70
+ appState: InteractiveCanvasAppState;
71
+ renderConfig: InteractiveCanvasRenderConfig;
72
+ device: Device;
73
+ callback: (data: RenderInteractiveSceneCallback) => void;
74
+ };
75
+ export type NewElementSceneRenderConfig = {
76
+ canvas: HTMLCanvasElement | null;
77
+ rc: RoughCanvas;
78
+ newElement: ExcalidrawElement | null;
79
+ elementsMap: RenderableElementsMap;
80
+ allElementsMap: NonDeletedSceneElementsMap;
81
+ scale: number;
82
+ appState: AppState;
83
+ renderConfig: StaticCanvasRenderConfig;
84
+ };
85
+ export type SceneScroll = {
86
+ scrollX: number;
87
+ scrollY: number;
88
+ };
89
+ export type ExportType = "png" | "clipboard" | "clipboard-svg" | "backend" | "svg";
90
+ export type ScrollBars = {
91
+ horizontal: {
92
+ x: number;
93
+ y: number;
94
+ width: number;
95
+ height: number;
96
+ deltaMultiplier: number;
97
+ } | null;
98
+ vertical: {
99
+ x: number;
100
+ y: number;
101
+ width: number;
102
+ height: number;
103
+ deltaMultiplier: number;
104
+ } | null;
105
+ };
106
+ export type ElementShape = Drawable | Drawable[] | null;
107
+ export type ElementShapes = {
108
+ rectangle: Drawable;
109
+ ellipse: Drawable;
110
+ diamond: Drawable;
111
+ iframe: Drawable;
112
+ embeddable: Drawable;
113
+ freedraw: Drawable | null;
114
+ arrow: Drawable[];
115
+ line: Drawable[];
116
+ text: null;
117
+ image: null;
118
+ frame: null;
119
+ magicframe: null;
120
+ };
@@ -0,0 +1,12 @@
1
+ import type { AppState, NormalizedZoomValue } from "../types";
2
+ export declare const getStateForZoom: ({ viewportX, viewportY, nextZoom, }: {
3
+ viewportX: number;
4
+ viewportY: number;
5
+ nextZoom: NormalizedZoomValue;
6
+ }, appState: AppState) => {
7
+ scrollX: number;
8
+ scrollY: number;
9
+ zoom: {
10
+ value: NormalizedZoomValue;
11
+ };
12
+ };
@@ -0,0 +1,111 @@
1
+ import { type GlobalPoint } from "@excalidraw/math";
2
+ import type { InclusiveRange } from "@excalidraw/math";
3
+ import type { Bounds } from "@excalidraw/element";
4
+ import type { MaybeTransformHandleType } from "@excalidraw/element";
5
+ import type { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
6
+ import type { AppClassProperties, AppState, KeyboardModifiersObject } from "./types";
7
+ export declare const getSnapDistance: (zoomValue: number) => number;
8
+ type Vector2D = {
9
+ x: number;
10
+ y: number;
11
+ };
12
+ type PointPair = [GlobalPoint, GlobalPoint];
13
+ export type PointSnap = {
14
+ type: "point";
15
+ points: PointPair;
16
+ offset: number;
17
+ };
18
+ export type Gap = {
19
+ startBounds: Bounds;
20
+ endBounds: Bounds;
21
+ startSide: [GlobalPoint, GlobalPoint];
22
+ endSide: [GlobalPoint, GlobalPoint];
23
+ overlap: InclusiveRange;
24
+ length: number;
25
+ };
26
+ export type GapSnap = {
27
+ type: "gap";
28
+ direction: "center_horizontal" | "center_vertical" | "side_left" | "side_right" | "side_top" | "side_bottom";
29
+ gap: Gap;
30
+ offset: number;
31
+ };
32
+ export type GapSnaps = GapSnap[];
33
+ export type Snap = GapSnap | PointSnap;
34
+ export type Snaps = Snap[];
35
+ export type PointSnapLine = {
36
+ type: "points";
37
+ points: GlobalPoint[];
38
+ };
39
+ export type PointerSnapLine = {
40
+ type: "pointer";
41
+ points: PointPair;
42
+ direction: "horizontal" | "vertical";
43
+ };
44
+ export type GapSnapLine = {
45
+ type: "gap";
46
+ direction: "horizontal" | "vertical";
47
+ points: PointPair;
48
+ };
49
+ export type SnapLine = PointSnapLine | GapSnapLine | PointerSnapLine;
50
+ export declare class SnapCache {
51
+ private static referenceSnapPoints;
52
+ private static visibleGaps;
53
+ static setReferenceSnapPoints: (snapPoints: GlobalPoint[] | null) => void;
54
+ static getReferenceSnapPoints: () => GlobalPoint[] | null;
55
+ static setVisibleGaps: (gaps: {
56
+ verticalGaps: Gap[];
57
+ horizontalGaps: Gap[];
58
+ } | null) => void;
59
+ static getVisibleGaps: () => {
60
+ verticalGaps: Gap[];
61
+ horizontalGaps: Gap[];
62
+ } | null;
63
+ static destroy: () => void;
64
+ }
65
+ export declare const isGridModeEnabled: (app: AppClassProperties) => boolean;
66
+ export declare const isSnappingEnabled: ({ event, app, selectedElements, }: {
67
+ app: AppClassProperties;
68
+ event: KeyboardModifiersObject;
69
+ selectedElements: NonDeletedExcalidrawElement[];
70
+ }) => boolean;
71
+ export declare const areRoughlyEqual: (a: number, b: number, precision?: number) => boolean;
72
+ export declare const getElementsCorners: (elements: ExcalidrawElement[], elementsMap: ElementsMap, { omitCenter, boundingBoxCorners, dragOffset, }?: {
73
+ omitCenter?: boolean | undefined;
74
+ boundingBoxCorners?: boolean | undefined;
75
+ dragOffset?: Vector2D | undefined;
76
+ }) => GlobalPoint[];
77
+ export declare const getVisibleGaps: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => {
78
+ horizontalGaps: Gap[];
79
+ verticalGaps: Gap[];
80
+ };
81
+ export declare const getReferenceSnapPoints: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => GlobalPoint[];
82
+ export declare const snapDraggedElements: (elements: ExcalidrawElement[], dragOffset: Vector2D, app: AppClassProperties, event: KeyboardModifiersObject, elementsMap: ElementsMap) => {
83
+ snapOffset: {
84
+ x: number;
85
+ y: number;
86
+ };
87
+ snapLines: (PointSnapLine | GapSnapLine)[];
88
+ };
89
+ export declare const snapResizingElements: (selectedElements: ExcalidrawElement[], selectedOriginalElements: ExcalidrawElement[], app: AppClassProperties, event: KeyboardModifiersObject, dragOffset: Vector2D, transformHandle: MaybeTransformHandleType) => {
90
+ snapOffset: {
91
+ x: number;
92
+ y: number;
93
+ };
94
+ snapLines: PointSnapLine[];
95
+ };
96
+ export declare const snapNewElement: (newElement: ExcalidrawElement, app: AppClassProperties, event: KeyboardModifiersObject, origin: Vector2D, dragOffset: Vector2D, elementsMap: ElementsMap) => {
97
+ snapOffset: {
98
+ x: number;
99
+ y: number;
100
+ };
101
+ snapLines: PointSnapLine[];
102
+ };
103
+ export declare const getSnapLinesAtPointer: (elements: readonly ExcalidrawElement[], app: AppClassProperties, pointer: Vector2D, event: KeyboardModifiersObject, elementsMap: ElementsMap) => {
104
+ originOffset: {
105
+ x: number;
106
+ y: number;
107
+ };
108
+ snapLines: PointerSnapLine[];
109
+ };
110
+ export declare const isActiveToolNonLinearSnappable: (activeToolType: AppState["activeTool"]["type"]) => boolean;
111
+ export {};
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Modified version of hb-subset bindings from "subset-font" package https://github.com/papandreou/subset-font/blob/3f711c8aa29a426c7f22655861abfb976950f527/index.js
3
+ *
4
+ * CHANGELOG:
5
+ * - removed dependency on node APIs to work inside the browser
6
+ * - removed dependency on font fontverter for brotli compression
7
+ * - removed dependencies on lodash and p-limit
8
+ * - removed options for preserveNameIds, variationAxes, noLayoutClosure (not needed for now)
9
+ * - replaced text input with codepoints
10
+ * - rewritten in typescript and with esm modules
11
+
12
+ Copyright (c) 2012, Andreas Lind Petersen
13
+ All rights reserved.
14
+
15
+ Redistribution and use in source and binary forms, with or without
16
+ modification, are permitted provided that the following conditions are
17
+ met:
18
+
19
+ * Redistributions of source code must retain the above copyright
20
+ notice, this list of conditions and the following disclaimer.
21
+ * Redistributions in binary form must reproduce the above copyright
22
+ notice, this list of conditions and the following disclaimer in
23
+ the documentation and/or other materials provided with the
24
+ distribution.
25
+ * Neither the name of the author nor the names of contributors may
26
+ be used to endorse or promote products derived from this
27
+ software without specific prior written permission.
28
+
29
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
30
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
31
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
32
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
33
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
34
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
35
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
36
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40
+ */
41
+ declare function subset(hbSubsetWasm: any, heapu8: Uint8Array, font: ArrayBuffer, codePoints: ReadonlySet<number>): Uint8Array;
42
+ declare const _default: {
43
+ subset: typeof subset;
44
+ };
45
+ export default _default;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * DON'T depend on anything from the outside like `promiseTry`, as this module is part of a separate lazy-loaded chunk.
3
+ *
4
+ * Including anything from the main chunk would include the whole chunk by default.
5
+ * Even it it would be tree-shaken during build, it won't be tree-shaken in dev.
6
+ *
7
+ * In the future consider separating common utils into a separate shared chunk.
8
+ */
9
+ declare const load: () => Promise<{
10
+ subset: (fontBuffer: ArrayBuffer, codePoints: ReadonlySet<number>) => Uint8Array;
11
+ }>;
12
+ declare const _default: () => ReturnType<typeof load>;
13
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: Uint8Array;
2
+ export default _default;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Tries to subset glyphs in a font based on the used codepoints, returning the font as dataurl.
3
+ * Under the hood utilizes worker threads (Web Workers, if available), otherwise fallbacks to the main thread.
4
+ *
5
+ * Check the following diagram for details: link.excalidraw.com/readonly/MbbnWPSWXgadXdtmzgeO
6
+ *
7
+ * @param arrayBuffer font data buffer in the woff2 format
8
+ * @param codePoints codepoints used to subset the glyphs
9
+ *
10
+ * @returns font with subsetted glyphs (all glyphs in case of errors) converted into a dataurl
11
+ */
12
+ export declare const subsetWoff2GlyphsByCodepoints: (arrayBuffer: ArrayBuffer, codePoints: Array<number>) => Promise<string>;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * DON'T depend on anything from the outside like `promiseTry`, as this module is part of a separate lazy-loaded chunk.
3
+ *
4
+ * Including anything from the main chunk would include the whole chunk by default.
5
+ * Even it it would be tree-shaken during build, it won't be tree-shaken in dev.
6
+ *
7
+ * In the future consider separating common utils into a separate shared chunk.
8
+ */
9
+ /**
10
+ * Shared commands between the main thread and worker threads.
11
+ */
12
+ export declare const Commands: {
13
+ readonly Subset: "SUBSET";
14
+ };
15
+ /**
16
+ * Used by browser (main thread), node and jsdom, to subset the font based on the passed codepoints.
17
+ *
18
+ * @returns woff2 font as a base64 encoded string
19
+ */
20
+ export declare const subsetToBase64: (arrayBuffer: ArrayBuffer, codePoints: Array<number>) => Promise<string>;
21
+ /**
22
+ * Used by browser (worker thread) and as part of `subsetToBase64`, to subset the font based on the passed codepoints.
23
+ *
24
+ * @eturns woff2 font as an ArrayBuffer, to avoid copying large strings between worker threads and the main thread.
25
+ */
26
+ export declare const subsetToBinary: (arrayBuffer: ArrayBuffer, codePoints: Array<number>) => Promise<ArrayBuffer>;
27
+ /**
28
+ * Util for isomoprhic browser (main thread), node and jsdom usage.
29
+ *
30
+ * Isn't used inside the worker to avoid copying large binary strings (as dataurl) between worker threads and the main thread.
31
+ */
32
+ export declare const toBase64: (arrayBuffer: ArrayBuffer) => Promise<string>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * DON'T depend on anything from the outside like `promiseTry`, as this module is part of a separate lazy-loaded chunk.
3
+ *
4
+ * Including anything from the main chunk would include the whole chunk by default.
5
+ * Even it it would be tree-shaken during build, it won't be tree-shaken in dev.
6
+ *
7
+ * In the future consider separating common utils into a separate shared chunk.
8
+ */
9
+ /**
10
+ * Due to this export (and related dynamic import), this worker code will be included in the bundle automatically (as a separate chunk),
11
+ * without the need for esbuild / vite /rollup plugins and special browser / server treatment.
12
+ *
13
+ * `import.meta.url` is undefined in nodejs
14
+ */
15
+ export declare const WorkerUrl: URL | undefined;