@excalidraw/common 0.18.0-9ba0f5d → 0.18.0-a52cd20

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 (278) hide show
  1. package/dist/dev/index.js +518 -105
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +3 -3
  4. package/dist/types/common/debug.d.ts +21 -0
  5. package/dist/types/common/src/appEventBus.d.ts +27 -0
  6. package/dist/types/common/src/colors.d.ts +36 -14
  7. package/dist/types/common/src/constants.d.ts +70 -7
  8. package/dist/types/common/src/index.d.ts +3 -0
  9. package/dist/types/common/src/keys.d.ts +4 -0
  10. package/dist/types/common/src/points.d.ts +1 -1
  11. package/dist/types/common/src/random.d.ts +7 -0
  12. package/dist/types/common/src/utils.d.ts +10 -50
  13. package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
  14. package/dist/types/element/src/Scene.d.ts +9 -5
  15. package/dist/types/element/src/align.d.ts +2 -2
  16. package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
  17. package/dist/types/element/src/arrowheads.d.ts +3 -0
  18. package/dist/types/element/src/arrows/focus.d.ts +30 -0
  19. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  20. package/dist/types/element/src/binding.d.ts +37 -17
  21. package/dist/types/element/src/bounds.d.ts +23 -8
  22. package/dist/types/element/src/bucketFill.d.ts +110 -0
  23. package/dist/types/element/src/collision.d.ts +7 -3
  24. package/dist/types/element/src/comparisons.d.ts +8 -5
  25. package/dist/types/element/src/convertToShape.d.ts +23 -0
  26. package/dist/types/element/src/delta.d.ts +23 -1
  27. package/dist/types/element/src/distribute.d.ts +3 -2
  28. package/dist/types/element/src/dragElements.d.ts +27 -0
  29. package/dist/types/element/src/duplicate.d.ts +64 -3
  30. package/dist/types/element/src/elbowArrow.d.ts +2 -0
  31. package/dist/types/element/src/embeddable.d.ts +2 -2
  32. package/dist/types/element/src/flowchart.d.ts +11 -7
  33. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  34. package/dist/types/element/src/frame.d.ts +11 -10
  35. package/dist/types/element/src/groups.d.ts +9 -9
  36. package/dist/types/element/src/index.d.ts +8 -1
  37. package/dist/types/element/src/linearElementEditor.d.ts +32 -10
  38. package/dist/types/element/src/mutateElement.d.ts +3 -1
  39. package/dist/types/element/src/newElement.d.ts +53 -3
  40. package/dist/types/element/src/renderElement.d.ts +21 -7
  41. package/dist/types/element/src/resizeElements.d.ts +2 -2
  42. package/dist/types/element/src/selection.d.ts +12 -8
  43. package/dist/types/element/src/shape.d.ts +28 -2
  44. package/dist/types/element/src/sizeHelpers.d.ts +6 -0
  45. package/dist/types/element/src/sortElements.d.ts +10 -0
  46. package/dist/types/element/src/stickyNote.d.ts +183 -0
  47. package/dist/types/element/src/textElement.d.ts +21 -10
  48. package/dist/types/element/src/textWrapping.d.ts +26 -0
  49. package/dist/types/element/src/transform.d.ts +26 -7
  50. package/dist/types/element/src/typeChecks.d.ts +29 -27
  51. package/dist/types/element/src/types.d.ts +48 -9
  52. package/dist/types/element/src/utils.d.ts +19 -6
  53. package/dist/types/element/src/zindex.d.ts +2 -2
  54. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +125 -53
  55. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  56. package/dist/types/excalidraw/actions/actionBoundText.d.ts +85 -37
  57. package/dist/types/excalidraw/actions/actionCanvas.d.ts +410 -1073
  58. package/dist/types/excalidraw/actions/actionClipboard.d.ts +84 -36
  59. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +42 -18
  60. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +131 -56
  61. package/dist/types/excalidraw/actions/actionDeselect.d.ts +182 -0
  62. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  63. package/dist/types/excalidraw/actions/actionElementLink.d.ts +38 -18
  64. package/dist/types/excalidraw/actions/actionElementLock.d.ts +85 -37
  65. package/dist/types/excalidraw/actions/actionExport.d.ts +171 -397
  66. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
  67. package/dist/types/excalidraw/actions/actionFrame.d.ts +187 -236
  68. package/dist/types/excalidraw/actions/actionGroup.d.ts +100 -52
  69. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +99 -21
  70. package/dist/types/excalidraw/actions/actionLink.d.ts +43 -19
  71. package/dist/types/excalidraw/actions/actionMenu.d.ts +38 -18
  72. package/dist/types/excalidraw/actions/actionProperties.d.ts +120 -56
  73. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +47 -23
  74. package/dist/types/excalidraw/actions/actionStyles.d.ts +43 -18
  75. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  76. package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionToggleArrowBinding.d.ts} +57 -32
  77. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +46 -23
  78. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +195 -0
  79. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +43 -19
  80. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +42 -23
  81. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  82. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +43 -19
  83. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +44 -20
  84. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +43 -19
  85. package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
  86. package/dist/types/excalidraw/actions/index.d.ts +4 -2
  87. package/dist/types/excalidraw/actions/manager.d.ts +1 -0
  88. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  89. package/dist/types/excalidraw/actions/types.d.ts +8 -4
  90. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  91. package/dist/types/excalidraw/appState.d.ts +55 -29
  92. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  93. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  94. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  95. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  96. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  97. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  98. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  99. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  100. package/dist/types/excalidraw/clipboard.d.ts +8 -9
  101. package/dist/types/excalidraw/components/Actions.d.ts +17 -12
  102. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  103. package/dist/types/excalidraw/components/App.arrowText.d.ts +70 -0
  104. package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
  105. package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
  106. package/dist/types/excalidraw/components/App.d.ts +604 -89
  107. package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
  108. package/dist/types/excalidraw/components/App.duplicate.d.ts +51 -0
  109. package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
  110. package/dist/types/excalidraw/components/App.pan.d.ts +62 -0
  111. package/dist/types/excalidraw/components/App.textTool.d.ts +140 -0
  112. package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
  113. package/dist/types/excalidraw/components/App.viewport.d.ts +113 -0
  114. package/dist/types/excalidraw/components/App.wheel.d.ts +26 -0
  115. package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
  116. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
  117. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
  118. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +5 -1
  119. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
  120. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
  121. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
  122. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
  123. package/dist/types/excalidraw/components/ColorPicker/colorTopPicksDnD.d.ts +11 -0
  124. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
  125. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  126. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -1
  127. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  128. package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
  129. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  130. package/dist/types/excalidraw/components/FileDropOverlay.d.ts +2 -0
  131. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +4 -1
  132. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +6 -1
  133. package/dist/types/excalidraw/components/FontPicker/fontTopPicksDnD.d.ts +12 -0
  134. package/dist/types/excalidraw/components/IconButton.d.ts +48 -0
  135. package/dist/types/excalidraw/components/IconPicker.d.ts +14 -9
  136. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  137. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
  138. package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
  139. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  140. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +6 -2
  141. package/dist/types/excalidraw/components/LibraryUnit.d.ts +7 -2
  142. package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
  143. package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
  144. package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
  145. package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
  146. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  147. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
  148. package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
  149. package/dist/types/excalidraw/components/Popover.d.ts +1 -3
  150. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  151. package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
  152. package/dist/types/excalidraw/components/Range.d.ts +10 -4
  153. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  154. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  155. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
  156. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  157. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  158. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  159. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  160. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  161. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  162. package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
  163. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  164. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +2 -6
  165. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +2 -1
  166. package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
  167. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
  168. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +11 -7
  169. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
  170. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +4 -1
  171. package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
  172. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +2 -1
  173. package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
  174. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +4 -0
  175. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
  176. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
  177. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
  178. package/dist/types/excalidraw/components/Toast.d.ts +8 -4
  179. package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
  180. package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
  181. package/dist/types/excalidraw/components/Tools.d.ts +151 -0
  182. package/dist/types/excalidraw/components/Tooltip.d.ts +15 -1
  183. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksContextMenu.d.ts +14 -0
  184. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksTip.d.ts +11 -0
  185. package/dist/types/excalidraw/components/TopPicksDnD/topPicksDnD.d.ts +58 -0
  186. package/dist/types/excalidraw/components/UserList.d.ts +3 -2
  187. package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
  188. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -1
  189. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +3 -0
  190. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  191. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +30 -16
  192. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +3 -2
  193. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +11 -12
  194. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  195. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +2 -1
  196. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
  197. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  198. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  199. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  200. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +1 -1
  201. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  202. package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
  203. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  204. package/dist/types/excalidraw/components/icons.d.ts +30 -10
  205. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +26 -3
  206. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +23 -14
  207. package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
  208. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
  209. package/dist/types/excalidraw/data/blob.d.ts +221 -174
  210. package/dist/types/excalidraw/data/filesystem.d.ts +3 -5
  211. package/dist/types/excalidraw/data/index.d.ts +6 -7
  212. package/dist/types/excalidraw/data/json.d.ts +119 -87
  213. package/dist/types/excalidraw/data/library.d.ts +1 -1
  214. package/dist/types/excalidraw/data/resave.d.ts +7 -2
  215. package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
  216. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  217. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
  218. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  219. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  220. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
  221. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  222. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  223. package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
  224. package/dist/types/excalidraw/renderOverrides.d.ts +9 -0
  225. package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
  226. package/dist/types/excalidraw/renderer/helpers.d.ts +25 -0
  227. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +2 -4
  228. package/dist/types/excalidraw/scene/Renderer.d.ts +489 -20
  229. package/dist/types/excalidraw/scene/export.d.ts +3 -3
  230. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  231. package/dist/types/excalidraw/scene/types.d.ts +7 -4
  232. package/dist/types/excalidraw/snapping.d.ts +7 -7
  233. package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
  234. package/dist/types/excalidraw/types.d.ts +619 -42
  235. package/dist/types/excalidraw/viewport.d.ts +302 -0
  236. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +12 -3
  237. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  238. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  239. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  240. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  241. package/dist/types/laser-pointer/src/state.d.ts +36 -0
  242. package/dist/types/math/src/constants.d.ts +0 -1
  243. package/dist/types/math/src/curve.d.ts +23 -13
  244. package/dist/types/math/src/index.d.ts +1 -0
  245. package/dist/types/math/src/pca.d.ts +79 -0
  246. package/dist/types/math/src/point.d.ts +8 -2
  247. package/dist/types/math/src/polygon.d.ts +25 -1
  248. package/dist/types/math/src/segment.d.ts +6 -0
  249. package/dist/types/math/src/types.d.ts +25 -1
  250. package/dist/types/utils/src/export.d.ts +4 -3
  251. package/dist/types/utils/src/index.d.ts +1 -2
  252. package/dist/types/utils/src/shape.d.ts +2 -2
  253. package/package.json +1 -1
  254. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  255. package/dist/types/excalidraw/charts.d.ts +0 -27
  256. package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
  257. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -15
  258. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
  259. package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
  260. package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
  261. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
  262. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -8
  263. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +0 -24
  264. package/dist/types/excalidraw/components/ToolButton.d.ts +0 -49
  265. package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
  266. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -11
  267. package/dist/types/excalidraw/components/shapes.d.ts +0 -190
  268. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -58
  269. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -19
  270. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +0 -84
  271. package/dist/types/excalidraw/cursor.d.ts +0 -5
  272. package/dist/types/excalidraw/data/reconcile.d.ts +0 -7
  273. package/dist/types/excalidraw/index.d.ts +0 -46
  274. package/dist/types/excalidraw/polyfill.d.ts +0 -2
  275. package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
  276. package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
  277. package/dist/types/utils/src/bbox.d.ts +0 -9
  278. package/dist/types/utils/src/withinBounds.d.ts +0 -19
@@ -1,78 +1,36 @@
1
1
  import type { ExcalidrawElement } from "@excalidraw/element/types";
2
+ import type { MaybePromise } from "@excalidraw/common/utility-types";
2
3
  import type { AppState, BinaryFiles, LibraryItems } from "../types";
3
4
  import type { ImportedDataState, ImportedLibraryData } from "./types";
5
+ export type JSONExportData = {
6
+ elements: readonly ExcalidrawElement[];
7
+ appState: AppState;
8
+ files: BinaryFiles;
9
+ };
4
10
  export declare const serializeAsJSON: (elements: readonly ExcalidrawElement[], appState: Partial<AppState>, files: BinaryFiles, type: "local" | "database") => string;
5
- export declare const saveAsJSON: (elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles,
6
- /** filename */
7
- name?: string) => Promise<{
8
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
11
+ export declare const saveAsJSON: ({ data, filename, fileHandle, }: {
12
+ data: MaybePromise<JSONExportData>;
13
+ filename: string;
14
+ fileHandle: AppState["fileHandle"];
15
+ }) => Promise<{
16
+ fileHandle: FileSystemFileHandle | null;
9
17
  }>;
10
18
  export declare const loadFromJSON: (localAppState: AppState, localElements: readonly ExcalidrawElement[] | null) => Promise<{
11
19
  elements: import("@excalidraw/element/types").OrderedExcalidrawElement[];
12
20
  appState: {
13
- viewBackgroundColor: string;
14
- theme: import("@excalidraw/element/types").Theme;
15
- frameRendering: {
16
- enabled: boolean;
17
- name: boolean;
18
- outline: boolean;
19
- clip: boolean;
20
- };
21
- name: string | null;
22
21
  zoom: import("../types").Zoom;
23
- scrollX: number;
24
- scrollY: number;
25
22
  viewModeEnabled: boolean;
26
- openDialog: null | {
27
- name: "imageExport" | "help" | "jsonExport";
28
- } | {
29
- name: "ttd";
30
- tab: "text-to-diagram" | "mermaid";
31
- } | {
32
- name: "commandPalette";
33
- } | {
34
- name: "settings";
35
- } | {
36
- name: "elementLinkSelector";
37
- sourceElementId: ExcalidrawElement["id"];
38
- };
39
- editingGroupId: import("@excalidraw/element/types").GroupId | null;
40
- selectedElementIds: Readonly<{
41
- [id: string]: true;
42
- }>;
43
- frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
44
- activeEmbeddable: {
45
- element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
46
- state: "hover" | "active";
47
- } | null;
48
- selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
49
- selectedGroupIds: {
50
- [groupId: string]: boolean;
51
- };
52
- selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
53
- multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
54
- newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
55
- isBindingEnabled: boolean;
56
- suggestedBinding: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
57
- isRotating: boolean;
58
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
59
- collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
60
- snapLines: readonly import("../snapping").SnapLine[];
23
+ activeTool: {
24
+ lastActiveTool: import("../types").ActiveTool | null;
25
+ locked: boolean;
26
+ fromSelection: boolean;
27
+ } & import("../types").ActiveTool;
61
28
  zenModeEnabled: boolean;
62
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
63
- isCropping: boolean;
64
- croppingElementId: ExcalidrawElement["id"] | null;
65
- searchMatches: Readonly<{
66
- focusedId: ExcalidrawElement["id"] | null;
67
- matches: readonly import("../types").SearchMatch[];
68
- }> | null;
69
- activeLockedId: string | null;
70
- hoveredElementIds: Readonly<{
71
- [id: string]: true;
72
- }>;
73
- shouldCacheIgnoreZoom: boolean;
74
- exportScale: number;
75
- bindMode: import("@excalidraw/element/types").BindMode;
29
+ gridModeEnabled: boolean;
30
+ objectsSnapModeEnabled: boolean;
31
+ theme: import("@excalidraw/element/types").Theme;
32
+ name: string | null;
33
+ currentItemArrowType: "sharp" | "round" | "elbow";
76
34
  gridSize: number;
77
35
  contextMenu: {
78
36
  items: import("../components/ContextMenu").ContextMenuItems;
@@ -82,14 +40,45 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
82
40
  showWelcomeScreen: boolean;
83
41
  isLoading: boolean;
84
42
  errorMessage: React.ReactNode;
43
+ activeEmbeddable: {
44
+ element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
45
+ state: "hover" | "active";
46
+ } | null;
47
+ newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
85
48
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
86
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
87
- editingFrame: string | null;
88
- activeTool: {
89
- lastActiveTool: import("../types").ActiveTool | null;
90
- locked: boolean;
91
- fromSelection: boolean;
92
- } & import("../types").ActiveTool;
49
+ multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
50
+ selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
51
+ isBindingEnabled: boolean;
52
+ boxSelectionMode: import("../types").BoxSelectionMode;
53
+ bindingPreference: "enabled" | "disabled";
54
+ isMidpointSnappingEnabled: boolean;
55
+ showHints: boolean;
56
+ inputDevice: import("../types").InputDevice;
57
+ suggestedBinding: {
58
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
59
+ midPoint?: import("@excalidraw/math").GlobalPoint;
60
+ } | null;
61
+ textToolHover: {
62
+ type: "text";
63
+ elementId: ExcalidrawElement["id"];
64
+ } | {
65
+ type: "container";
66
+ elementId: ExcalidrawElement["id"];
67
+ } | {
68
+ type: "arrow";
69
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
70
+ anchor: "start" | "end" | "label";
71
+ } | null;
72
+ frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
73
+ frameRendering: {
74
+ enabled: boolean;
75
+ name: boolean;
76
+ outline: boolean;
77
+ clip: boolean;
78
+ };
79
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
80
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
81
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
93
82
  preferredSelectionTool: {
94
83
  type: "selection" | "lasso";
95
84
  initialized: boolean;
@@ -99,12 +88,16 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
99
88
  exportBackground: boolean;
100
89
  exportEmbedScene: boolean;
101
90
  exportWithDarkMode: boolean;
91
+ exportScale: number;
102
92
  currentItemStrokeColor: string;
93
+ currentItemStickynoteStrokeColor: string;
94
+ currentItemStickynoteBackgroundColor: string;
103
95
  currentItemBackgroundColor: string;
104
96
  currentItemFillStyle: ExcalidrawElement["fillStyle"];
105
- currentItemStrokeWidth: number;
97
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
106
98
  currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
107
99
  currentItemRoughness: number;
100
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
108
101
  currentItemOpacity: number;
109
102
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
110
103
  currentItemFontSize: number;
@@ -113,53 +106,92 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
113
106
  currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
114
107
  currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
115
108
  currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
116
- currentItemArrowType: "sharp" | "round" | "elbow";
109
+ viewBackgroundColor: string;
110
+ scrollX: number;
111
+ scrollY: number;
112
+ scrollConstraints: import("../types").ScrollConstraints | null;
117
113
  cursorButton: "up" | "down";
118
114
  scrolledOutside: boolean;
119
115
  isResizing: boolean;
116
+ isRotating: boolean;
120
117
  openMenu: "canvas" | null;
121
118
  openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
122
119
  openSidebar: {
123
120
  name: import("../types").SidebarName;
124
121
  tab?: import("../types").SidebarTabName;
125
122
  } | null;
123
+ openDialog: null | {
124
+ name: "imageExport" | "help" | "jsonExport";
125
+ } | {
126
+ name: "ttd";
127
+ tab: "text-to-diagram" | "mermaid";
128
+ } | {
129
+ name: "commandPalette";
130
+ } | {
131
+ name: "settings";
132
+ } | {
133
+ name: "elementLinkSelector";
134
+ sourceElementId: ExcalidrawElement["id"];
135
+ } | {
136
+ name: "charts";
137
+ data: import("../charts").Spreadsheet;
138
+ rawText: string;
139
+ };
126
140
  defaultSidebarDockedPreference: boolean;
127
141
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
142
+ selectedElementIds: Readonly<{
143
+ [id: string]: true;
144
+ }>;
145
+ hoveredElementIds: Readonly<{
146
+ [id: string]: true;
147
+ }>;
128
148
  previousSelectedElementIds: {
129
149
  [id: string]: true;
130
150
  };
131
151
  selectedElementsAreBeingDragged: boolean;
152
+ shouldCacheIgnoreZoom: boolean;
132
153
  toast: {
133
- message: string;
154
+ message: React.ReactNode;
134
155
  closable?: boolean;
135
156
  duration?: number;
136
157
  } | null;
137
158
  gridStep: number;
138
- gridModeEnabled: boolean;
139
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
159
+ selectedGroupIds: {
160
+ [groupId: string]: boolean;
161
+ };
162
+ editingGroupId: import("@excalidraw/element/types").GroupId | null;
163
+ fileHandle: FileSystemFileHandle | null;
164
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
140
165
  stats: {
141
166
  open: boolean;
142
167
  panels: number;
143
168
  };
144
- currentChartType: import("@excalidraw/element/types").ChartType;
145
- pasteDialog: {
146
- shown: false;
147
- data: null;
148
- } | {
149
- shown: true;
150
- data: import("../charts").Spreadsheet;
151
- };
152
169
  showHyperlinkPopup: false | "info" | "editor";
170
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
171
+ snapLines: readonly import("../snapping").SnapLine[];
153
172
  originSnapOffset: {
154
173
  x: number;
155
174
  y: number;
156
175
  } | null;
157
- objectsSnapModeEnabled: boolean;
158
- userToFollow: import("../types").UserToFollow | null;
159
- followedBy: Set<import("../types").SocketId>;
176
+ isCropping: boolean;
177
+ croppingElementId: ExcalidrawElement["id"] | null;
178
+ searchMatches: Readonly<{
179
+ focusedId: ExcalidrawElement["id"] | null;
180
+ matches: readonly import("../types").SearchMatch[];
181
+ }> | null;
182
+ activeLockedId: string | null;
160
183
  lockedMultiSelections: {
161
184
  [groupId: string]: true;
162
185
  };
186
+ bindMode: import("@excalidraw/element/types").BindMode;
187
+ colorTopPicks: {
188
+ elementStroke: readonly string[] | null;
189
+ elementBackground: readonly string[] | null;
190
+ bucketFill: readonly string[] | null;
191
+ stickyNoteStroke: readonly string[] | null;
192
+ stickyNoteBackground: readonly string[] | null;
193
+ };
194
+ fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
163
195
  };
164
196
  files: BinaryFiles;
165
197
  }>;
@@ -37,7 +37,7 @@ export interface LibraryMigrationAdapter {
37
37
  /** clears entire storage afterwards */
38
38
  clear(): MaybePromise<void>;
39
39
  }
40
- export declare const libraryItemsAtom: import("jotai/vanilla/atom").PrimitiveAtom<{
40
+ export declare const libraryItemsAtom: import("jotai").PrimitiveAtom<{
41
41
  status: "loading" | "loaded";
42
42
  /** indicates whether library is initialized with library items (has gone
43
43
  * through at least one update). Used in UI. Specific to this atom only. */
@@ -1,5 +1,10 @@
1
+ import type { MaybePromise } from "@excalidraw/common/utility-types";
1
2
  import type { ExcalidrawElement } from "@excalidraw/element/types";
2
3
  import type { AppState, BinaryFiles } from "../types";
3
- export declare const resaveAsImageWithScene: (elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles, name: string) => Promise<{
4
- fileHandle: import("browser-fs-access").FileSystemHandle;
4
+ export declare const resaveAsImageWithScene: (data: MaybePromise<{
5
+ elements: readonly ExcalidrawElement[];
6
+ appState: AppState;
7
+ files: BinaryFiles;
8
+ }>, fileHandle: FileSystemFileHandle, filename: string) => Promise<{
9
+ fileHandle: FileSystemFileHandle;
5
10
  }>;
@@ -0,0 +1,16 @@
1
+ import type { GlobalPoint } from "@excalidraw/math";
2
+ import type App from "./components/App";
3
+ import type { Trail } from "./animatedTrail";
4
+ export declare class DrawShapeTrail implements Trail {
5
+ private app;
6
+ private trail;
7
+ constructor(app: App);
8
+ private getTrailOptions;
9
+ startPath(x: number, y: number): void;
10
+ addPointToPath(x: number, y: number): void;
11
+ endPath(): void;
12
+ clearTrails(): void;
13
+ getCurrentPoints(): GlobalPoint[];
14
+ start(container: SVGSVGElement): void;
15
+ stop(): void;
16
+ }
@@ -1,10 +1,9 @@
1
- import { AnimatedTrail } from "../animated-trail";
2
- import type { AnimationFrameHandler } from "../animation-frame-handler";
1
+ import { AnimatedTrail } from "../animatedTrail";
3
2
  import type App from "../components/App";
4
3
  export declare class EraserTrail extends AnimatedTrail {
5
4
  private elementsToErase;
6
5
  private groupsToErase;
7
- constructor(animationFrameHandler: AnimationFrameHandler, app: App);
6
+ constructor(app: App);
8
7
  startPath(x: number, y: number): void;
9
8
  addPointToPath(x: number, y: number, restore?: boolean): string[];
10
9
  private updateElementsToBeErased;
@@ -15,7 +15,8 @@ export declare class Fonts {
15
15
  fontFaces: ExcalidrawFontFace[];
16
16
  }>;
17
17
  private readonly scene;
18
- constructor(scene: Scene);
18
+ private readonly ownerDocument;
19
+ constructor(scene: Scene, ownerDocument?: Document);
19
20
  /**
20
21
  * Get all the font families for the given scene.
21
22
  */
@@ -36,7 +37,7 @@ export declare class Fonts {
36
37
  /**
37
38
  * Load font faces for passed elements - use when the scene is unavailable (i.e. export).
38
39
  */
39
- static loadElementsFonts: (elements: readonly ExcalidrawElement[]) => Promise<FontFace[]>;
40
+ static loadElementsFonts: (elements: readonly ExcalidrawElement[], ownerDocument?: Document) => Promise<FontFace[]>;
40
41
  /**
41
42
  * Generate CSS @font-face declarations for the given elements.
42
43
  */
@@ -0,0 +1,29 @@
1
+ import type { AppState } from "../types";
2
+ /**
3
+ * Subscribes to specific appState changes. The component re-renders
4
+ * only when the specified prop(s) change — not on every appState update.
5
+ *
6
+ * Works both inside and outside the <Excalidraw> tree, as long as
7
+ * ExcalidrawAPIContext.Provider is an ancestor (automatically provided
8
+ * inside <Excalidraw>, or manually by the host app).
9
+ *
10
+ * Returns the narrowed value depending on prop form:
11
+ * - `keyof AppState` → `AppState[K]`
12
+ * - `(keyof AppState)[]` → whole `AppState`
13
+ * - selector function → selector's return type `T`
14
+ *
15
+ * If excalidrawAPI is not ready yet (host apps), hook is rerendered with latest
16
+ * value once available.
17
+ */
18
+ export declare function useAppStateValue<K extends keyof AppState>(prop: K, _internal?: boolean): AppState[K];
19
+ export declare function useAppStateValue(props: (keyof AppState)[], _internal?: boolean): AppState;
20
+ export declare function useAppStateValue<T>(selector: (appState: AppState) => T, _internal?: boolean): T;
21
+ /**
22
+ * Subscribes to specific appState changes without causing component rerenders.
23
+ *
24
+ * The callback is called on every matching change, but also on initial render
25
+ * so you can initialize your state.
26
+ */
27
+ export declare function useOnAppStateChange<K extends keyof AppState>(prop: K, callback: (value: AppState[K], appState: AppState) => void): undefined;
28
+ export declare function useOnAppStateChange(props: (keyof AppState)[], callback: (props: AppState, appState: AppState) => void): undefined;
29
+ export declare function useOnAppStateChange<T>(selector: (appState: AppState) => T, callback: (value: T, appState: AppState) => void): undefined;
@@ -1,6 +1,6 @@
1
1
  import type { LibraryItem } from "../types";
2
2
  export type SvgCache = Map<LibraryItem["id"], SVGSVGElement>;
3
- export declare const libraryItemSvgsCache: import("jotai/vanilla/atom").PrimitiveAtom<SvgCache> & {
3
+ export declare const libraryItemSvgsCache: import("jotai").PrimitiveAtom<SvgCache> & {
4
4
  init: SvgCache;
5
5
  };
6
6
  export declare const useLibraryItemSvg: (id: LibraryItem["id"] | null, elements: LibraryItem["elements"] | undefined, svgCache: SvgCache, ref: React.RefObject<HTMLDivElement | null>) => SVGSVGElement | undefined;
@@ -2,13 +2,13 @@ export type CaretPosition = {
2
2
  start: number;
3
3
  end: number;
4
4
  };
5
- export declare const saveCaretPosition: () => CaretPosition | null;
6
- export declare const restoreCaretPosition: (position: CaretPosition | null) => void;
7
- export declare const withCaretPositionPreservation: (callback: () => void, isCompactMode: boolean, isEditingText: boolean, onPreventClose?: () => void) => void;
8
- export declare const useTextEditorFocus: () => {
5
+ export declare const saveCaretPosition: (ownerDocument?: Document) => CaretPosition | null;
6
+ export declare const restoreCaretPosition: (position: CaretPosition | null, ownerDocument?: Document) => void;
7
+ export declare const withCaretPositionPreservation: (callback: () => void, isCompactMode: boolean, isEditingText: boolean, onPreventClose?: () => void, ownerDocument?: Document) => void;
8
+ export declare const useTextEditorFocus: (ownerDocument?: Document) => {
9
9
  saveCaretPosition: () => void;
10
10
  restoreCaretPosition: () => void;
11
11
  clearSavedPosition: () => void;
12
12
  hasSavedPosition: boolean;
13
13
  };
14
- export declare const temporarilyDisableTextEditorBlur: (duration?: number) => void;
14
+ export declare const temporarilyDisableTextEditorBlur: (ownerDocument?: Document, duration?: number) => void;
@@ -1,20 +1,18 @@
1
- import { AnimatedTrail } from "./animated-trail";
2
- import type { Trail } from "./animated-trail";
3
- import type { AnimationFrameHandler } from "./animation-frame-handler";
1
+ import { AnimatedTrail } from "./animatedTrail";
2
+ import type { Trail } from "./animatedTrail";
4
3
  import type App from "./components/App";
5
4
  export declare class LaserTrails implements Trail {
6
- private animationFrameHandler;
7
5
  private app;
8
6
  localTrail: AnimatedTrail;
9
7
  private collabTrails;
10
8
  private container?;
11
- constructor(animationFrameHandler: AnimationFrameHandler, app: App);
9
+ constructor(app: App);
12
10
  private getTrailOptions;
13
11
  startPath(x: number, y: number): void;
14
12
  addPointToPath(x: number, y: number): void;
15
13
  endPath(): void;
16
14
  start(container: SVGSVGElement): void;
17
15
  stop(): void;
18
- onFrame(): void;
19
- private updateCollabTrails;
16
+ private stopCollabTrails;
17
+ updateCollabTrails(collaborators: App["state"]["collaborators"]): void;
20
18
  }
@@ -1,5 +1,4 @@
1
- import { type AnimationFrameHandler } from "../animation-frame-handler";
2
- import { AnimatedTrail } from "../animated-trail";
1
+ import { AnimatedTrail } from "../animatedTrail";
3
2
  import type App from "../components/App";
4
3
  export declare class LassoTrail extends AnimatedTrail {
5
4
  private intersectedElements;
@@ -7,7 +6,7 @@ export declare class LassoTrail extends AnimatedTrail {
7
6
  private elementsSegments;
8
7
  private canvasTranslate;
9
8
  private keepPreviousSelection;
10
- constructor(animationFrameHandler: AnimationFrameHandler, app: App);
9
+ constructor(app: App);
11
10
  startPath(x: number, y: number, keepPreviousSelection?: boolean): void;
12
11
  selectElementsFromIds: (ids: string[]) => void;
13
12
  addPointToPath: (x: number, y: number, keepPreviousSelection?: boolean) => void;
@@ -1,5 +1,6 @@
1
1
  import type { ElementsSegmentsMap, GlobalPoint } from "@excalidraw/math/types";
2
2
  import type { ElementsMap, ExcalidrawElement } from "@excalidraw/element/types";
3
+ import type { BoxSelectionMode } from "../types";
3
4
  export declare const getLassoSelectedElementIds: (input: {
4
5
  lassoPath: GlobalPoint[];
5
6
  elements: readonly ExcalidrawElement[];
@@ -8,6 +9,7 @@ export declare const getLassoSelectedElementIds: (input: {
8
9
  intersectedElements: Set<ExcalidrawElement["id"]>;
9
10
  enclosedElements: Set<ExcalidrawElement["id"]>;
10
11
  simplifyDistance?: number;
12
+ mode?: BoxSelectionMode;
11
13
  }) => {
12
14
  selectedElementIds: string[];
13
15
  };
@@ -0,0 +1,9 @@
1
+ import type { ElementRenderOffsets, ElementRenderOverrides } from "./types";
2
+ /** Validate and copy before publishing, so a rejected snapshot changes nothing. */
3
+ export declare const copyElementRenderOverrides: (overrides: ElementRenderOverrides | null) => ElementRenderOverrides;
4
+ /**
5
+ * Extracts the offsets of a snapshot, returning `previous` when they are the
6
+ * same. Visibility is memoized on this map's identity, so a snapshot that only
7
+ * changes opacities (a fade) never re-runs viewport geometry.
8
+ */
9
+ export declare const getElementRenderOffsets: (overrides: ElementRenderOverrides, previous: ElementRenderOffsets) => ElementRenderOffsets;
@@ -3,10 +3,14 @@ export type Animation<R extends object> = (params: {
3
3
  state?: R;
4
4
  }) => R | null | undefined;
5
5
  export declare class AnimationController {
6
- private static isRunning;
6
+ private static scheduledFrame;
7
7
  private static animations;
8
8
  static start<R extends object>(key: string, animation: Animation<R>): void;
9
+ private static scheduleNextFrame;
10
+ private static cancelScheduledFrame;
11
+ private static cancelScheduledFrameIfIdle;
9
12
  private static tick;
10
13
  static running(key: string): boolean;
11
14
  static cancel(key: string): void;
15
+ static reset(): void;
12
16
  }
@@ -1,6 +1,31 @@
1
1
  import type { StaticCanvasRenderConfig } from "../scene/types";
2
2
  import type { AppState, StaticCanvasAppState } from "../types";
3
+ export declare const DEFAULT_SELECTION_COLOR = "#6965db";
4
+ /**
5
+ * Returns the theme's selection color (`--color-selection`), read from the
6
+ * computed style of any element inside the editor container so that host
7
+ * overrides are respected. Falls back to the default when unavailable.
8
+ */
9
+ export declare const getSelectionColor: (element: Element | null | undefined) => string;
3
10
  export declare const fillCircle: (context: CanvasRenderingContext2D, cx: number, cy: number, radius: number, stroke: boolean, fill?: boolean) => void;
11
+ /**
12
+ * The scroll the renderers draw at: the real one, rounded to whole device
13
+ * pixels. Panning writes a fractional scroll (pointer delta ÷ zoom), and an
14
+ * element's cached bitmap blitted at a fractional device offset gets
15
+ * resampled — so as the fraction drifts under a pan, every element pulses
16
+ * between crisp and soft. A whole-pixel scroll moves the scene the way a
17
+ * browser scrolls a page: each element keeps its own, constant sub-pixel
18
+ * phase and a pan never changes how anything is filtered. The difference
19
+ * stays under half a device pixel, so hit-testing and DOM overlays keep
20
+ * using the real scroll. Identity when nothing needs to change.
21
+ */
22
+ export declare const snapScrollToDevicePixels: <T extends {
23
+ scrollX: number;
24
+ scrollY: number;
25
+ zoom: {
26
+ value: number;
27
+ };
28
+ }>(appState: T, scale: number) => T;
4
29
  export declare const getNormalizedCanvasDimensions: (canvas: HTMLCanvasElement, scale: number) => [number, number];
5
30
  export declare const bootstrapCanvas: ({ canvas, scale, normalizedWidth, normalizedHeight, theme, isExporting, viewBackgroundColor, }: {
6
31
  canvas: HTMLCanvasElement;
@@ -1,9 +1,7 @@
1
1
  import { getScrollBars } from "../scene/scrollbars";
2
- import type { InteractiveSceneRenderConfig, RenderableElementsMap } from "../scene/types";
3
- declare const _renderInteractiveScene: ({ app, canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, editorInterface, animationState, deltaTime, }: InteractiveSceneRenderConfig) => {
2
+ import type { InteractiveSceneRenderConfig } from "../scene/types";
3
+ declare const _renderInteractiveScene: ({ app, canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState: unsnappedAppState, renderConfig, editorInterface, animationState, deltaTime, }: InteractiveSceneRenderConfig) => {
4
4
  scrollBars?: ReturnType<typeof getScrollBars>;
5
- atLeastOneVisibleElement: boolean;
6
- elementsMap: RenderableElementsMap;
7
5
  animationState?: typeof animationState;
8
6
  };
9
7
  /**