@excalidraw/math 0.18.0-4a5c9e9 → 0.18.0-4ce38fb

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 (217) hide show
  1. package/dist/dev/index.js +313 -115
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +1 -1
  4. package/dist/types/common/src/colors.d.ts +23 -1
  5. package/dist/types/common/src/constants.d.ts +66 -7
  6. package/dist/types/common/src/keys.d.ts +4 -0
  7. package/dist/types/common/src/points.d.ts +1 -1
  8. package/dist/types/common/src/random.d.ts +7 -0
  9. package/dist/types/common/src/utils.d.ts +6 -43
  10. package/dist/types/element/src/Scene.d.ts +7 -5
  11. package/dist/types/element/src/align.d.ts +2 -2
  12. package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
  13. package/dist/types/element/src/arrows/focus.d.ts +5 -2
  14. package/dist/types/element/src/binding.d.ts +28 -13
  15. package/dist/types/element/src/bounds.d.ts +22 -7
  16. package/dist/types/element/src/bucketFill.d.ts +110 -0
  17. package/dist/types/element/src/collision.d.ts +14 -5
  18. package/dist/types/element/src/comparisons.d.ts +8 -5
  19. package/dist/types/element/src/convertToShape.d.ts +23 -0
  20. package/dist/types/element/src/delta.d.ts +23 -1
  21. package/dist/types/element/src/distribute.d.ts +2 -2
  22. package/dist/types/element/src/dragElements.d.ts +27 -0
  23. package/dist/types/element/src/duplicate.d.ts +64 -3
  24. package/dist/types/element/src/embeddable.d.ts +2 -2
  25. package/dist/types/element/src/flowchart.d.ts +11 -7
  26. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  27. package/dist/types/element/src/frame.d.ts +11 -10
  28. package/dist/types/element/src/groups.d.ts +9 -9
  29. package/dist/types/element/src/index.d.ts +6 -1
  30. package/dist/types/element/src/linearElementEditor.d.ts +27 -10
  31. package/dist/types/element/src/listMarker.d.ts +34 -0
  32. package/dist/types/element/src/mutateElement.d.ts +1 -1
  33. package/dist/types/element/src/newElement.d.ts +53 -3
  34. package/dist/types/element/src/renderElement.d.ts +21 -7
  35. package/dist/types/element/src/resizeElements.d.ts +2 -2
  36. package/dist/types/element/src/selection.d.ts +6 -6
  37. package/dist/types/element/src/shape.d.ts +27 -1
  38. package/dist/types/element/src/sizeHelpers.d.ts +6 -0
  39. package/dist/types/element/src/sortElements.d.ts +10 -0
  40. package/dist/types/element/src/stickyNote.d.ts +183 -0
  41. package/dist/types/element/src/textElement.d.ts +20 -9
  42. package/dist/types/element/src/transform.d.ts +26 -7
  43. package/dist/types/element/src/typeChecks.d.ts +29 -27
  44. package/dist/types/element/src/types.d.ts +43 -7
  45. package/dist/types/element/src/utils.d.ts +15 -4
  46. package/dist/types/element/src/zindex.d.ts +2 -2
  47. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +87 -18
  48. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  49. package/dist/types/excalidraw/actions/actionBoundText.d.ts +58 -12
  50. package/dist/types/excalidraw/actions/actionCanvas.d.ts +265 -940
  51. package/dist/types/excalidraw/actions/actionClipboard.d.ts +58 -12
  52. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +29 -6
  53. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +89 -19
  54. package/dist/types/excalidraw/actions/actionDeselect.d.ts +30 -7
  55. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  56. package/dist/types/excalidraw/actions/actionElementLink.d.ts +29 -6
  57. package/dist/types/excalidraw/actions/actionElementLock.d.ts +59 -13
  58. package/dist/types/excalidraw/actions/actionExport.d.ts +60 -14
  59. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
  60. package/dist/types/excalidraw/actions/actionFrame.d.ts +150 -203
  61. package/dist/types/excalidraw/actions/actionGroup.d.ts +73 -27
  62. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +84 -9
  63. package/dist/types/excalidraw/actions/actionLink.d.ts +30 -7
  64. package/dist/types/excalidraw/actions/actionMenu.d.ts +29 -6
  65. package/dist/types/excalidraw/actions/actionProperties.d.ts +96 -34
  66. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +34 -11
  67. package/dist/types/excalidraw/actions/actionStyles.d.ts +30 -7
  68. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
  69. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +30 -7
  70. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +33 -11
  71. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +30 -7
  72. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +30 -7
  73. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +33 -11
  74. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  75. package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionToggleShowHints.d.ts} +45 -19
  76. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +30 -7
  77. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +31 -8
  78. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +30 -7
  79. package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
  80. package/dist/types/excalidraw/actions/index.d.ts +2 -2
  81. package/dist/types/excalidraw/actions/manager.d.ts +1 -0
  82. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  83. package/dist/types/excalidraw/actions/types.d.ts +8 -4
  84. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  85. package/dist/types/excalidraw/appState.d.ts +30 -6
  86. package/dist/types/excalidraw/components/Actions.d.ts +17 -12
  87. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  88. package/dist/types/excalidraw/components/App.arrowText.d.ts +70 -0
  89. package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
  90. package/dist/types/excalidraw/components/App.clipboard.d.ts +31 -0
  91. package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
  92. package/dist/types/excalidraw/components/App.d.ts +301 -93
  93. package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
  94. package/dist/types/excalidraw/components/App.duplicate.d.ts +101 -0
  95. package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
  96. package/dist/types/excalidraw/components/App.pan.d.ts +62 -0
  97. package/dist/types/excalidraw/components/App.text.d.ts +146 -0
  98. package/dist/types/excalidraw/components/App.textTool.d.ts +140 -0
  99. package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
  100. package/dist/types/excalidraw/components/App.viewport.d.ts +113 -0
  101. package/dist/types/excalidraw/components/App.wheel.d.ts +26 -0
  102. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
  103. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
  104. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +5 -1
  105. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
  106. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
  107. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
  108. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
  109. package/dist/types/excalidraw/components/ColorPicker/colorTopPicksDnD.d.ts +11 -0
  110. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
  111. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  112. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  113. package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
  114. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  115. package/dist/types/excalidraw/components/FileDropOverlay.d.ts +2 -0
  116. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +4 -1
  117. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +6 -1
  118. package/dist/types/excalidraw/components/FontPicker/fontTopPicksDnD.d.ts +12 -0
  119. package/dist/types/excalidraw/components/IconButton.d.ts +48 -0
  120. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  121. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
  122. package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
  123. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  124. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +6 -2
  125. package/dist/types/excalidraw/components/LibraryUnit.d.ts +7 -2
  126. package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
  127. package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
  128. package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
  129. package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
  130. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  131. package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
  132. package/dist/types/excalidraw/components/Popover.d.ts +1 -3
  133. package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
  134. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  135. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  136. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
  137. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  138. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  139. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  140. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  141. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  142. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  143. package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
  144. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  145. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
  146. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
  147. package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
  148. package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
  149. package/dist/types/excalidraw/components/Tools.d.ts +151 -0
  150. package/dist/types/excalidraw/components/Tooltip.d.ts +15 -1
  151. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksContextMenu.d.ts +14 -0
  152. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksTip.d.ts +11 -0
  153. package/dist/types/excalidraw/components/TopPicksDnD/topPicksDnD.d.ts +58 -0
  154. package/dist/types/excalidraw/components/UserList.d.ts +3 -2
  155. package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
  156. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +3 -1
  157. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +3 -0
  158. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  159. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
  160. package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
  161. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  162. package/dist/types/excalidraw/components/icons.d.ts +7 -1
  163. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +10 -4
  164. package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
  165. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
  166. package/dist/types/excalidraw/data/blob.d.ts +62 -16
  167. package/dist/types/excalidraw/data/index.d.ts +4 -4
  168. package/dist/types/excalidraw/data/json.d.ts +37 -14
  169. package/dist/types/excalidraw/data/library.d.ts +1 -1
  170. package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
  171. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  172. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
  173. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  174. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  175. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
  176. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  177. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  178. package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
  179. package/dist/types/excalidraw/renderOverrides.d.ts +9 -0
  180. package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
  181. package/dist/types/excalidraw/renderer/helpers.d.ts +25 -0
  182. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +2 -4
  183. package/dist/types/excalidraw/scene/Renderer.d.ts +489 -20
  184. package/dist/types/excalidraw/scene/export.d.ts +3 -3
  185. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  186. package/dist/types/excalidraw/scene/types.d.ts +7 -4
  187. package/dist/types/excalidraw/snapping.d.ts +7 -7
  188. package/dist/types/excalidraw/types.d.ts +531 -29
  189. package/dist/types/excalidraw/viewport.d.ts +302 -0
  190. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +13 -3
  191. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  192. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  193. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  194. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  195. package/dist/types/laser-pointer/src/state.d.ts +36 -0
  196. package/dist/types/math/src/constants.d.ts +0 -1
  197. package/dist/types/math/src/curve.d.ts +23 -13
  198. package/dist/types/math/src/index.d.ts +1 -0
  199. package/dist/types/math/src/pca.d.ts +79 -0
  200. package/dist/types/math/src/point.d.ts +1 -0
  201. package/dist/types/math/src/polygon.d.ts +25 -1
  202. package/dist/types/math/src/segment.d.ts +6 -0
  203. package/dist/types/utils/src/export.d.ts +4 -3
  204. package/dist/types/utils/src/index.d.ts +1 -2
  205. package/dist/types/utils/src/shape.d.ts +2 -2
  206. package/package.json +2 -2
  207. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  208. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
  209. package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
  210. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
  211. package/dist/types/excalidraw/components/ToolButton.d.ts +0 -49
  212. package/dist/types/excalidraw/components/shapes.d.ts +0 -263
  213. package/dist/types/excalidraw/cursor.d.ts +0 -5
  214. package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
  215. package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
  216. package/dist/types/utils/src/bbox.d.ts +0 -9
  217. package/dist/types/utils/src/withinBounds.d.ts +0 -19
@@ -1,41 +1,42 @@
1
1
  import type { ElementOrToolType } from "@excalidraw/excalidraw/types";
2
2
  import type { MarkNonNullable } from "@excalidraw/common/utility-types";
3
- import type { ExcalidrawElement, ExcalidrawTextElement, ExcalidrawEmbeddableElement, ExcalidrawLinearElement, ExcalidrawBindableElement, ExcalidrawFreeDrawElement, InitializedExcalidrawImageElement, ExcalidrawImageElement, ExcalidrawTextElementWithContainer, ExcalidrawTextContainer, ExcalidrawFrameElement, RoundnessType, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeElement, ExcalidrawIframeLikeElement, ExcalidrawMagicFrameElement, ExcalidrawArrowElement, ExcalidrawElbowArrowElement, ExcalidrawLineElement, ExcalidrawFlowchartNodeElement, ExcalidrawLinearElementSubType } from "./types";
4
- export declare const isInitializedImageElement: (element: ExcalidrawElement | null) => element is InitializedExcalidrawImageElement;
5
- export declare const isImageElement: (element: ExcalidrawElement | null) => element is ExcalidrawImageElement;
6
- export declare const isEmbeddableElement: (element: ExcalidrawElement | null | undefined) => element is ExcalidrawEmbeddableElement;
7
- export declare const isIframeElement: (element: ExcalidrawElement | null) => element is ExcalidrawIframeElement;
8
- export declare const isIframeLikeElement: (element: ExcalidrawElement | null) => element is ExcalidrawIframeLikeElement;
9
- export declare const isTextElement: (element: ExcalidrawElement | null) => element is ExcalidrawTextElement;
10
- export declare const isFrameElement: (element: ExcalidrawElement | null) => element is ExcalidrawFrameElement;
11
- export declare const isMagicFrameElement: (element: ExcalidrawElement | null) => element is ExcalidrawMagicFrameElement;
12
- export declare const isFrameLikeElement: (element: ExcalidrawElement | null) => element is ExcalidrawFrameLikeElement;
13
- export declare const isFreeDrawElement: (element?: ExcalidrawElement | null) => element is ExcalidrawFreeDrawElement;
3
+ import type { ExcalidrawElement, ExcalidrawTextElement, ExcalidrawEmbeddableElement, ExcalidrawLinearElement, ExcalidrawBindableElement, ExcalidrawFreeDrawElement, InitializedExcalidrawImageElement, ExcalidrawImageElement, ExcalidrawTextElementWithContainer, ExcalidrawTextContainer, ExcalidrawFrameElement, RoundnessType, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeElement, ExcalidrawIframeLikeElement, ExcalidrawMagicFrameElement, ExcalidrawArrowElement, ExcalidrawElbowArrowElement, ExcalidrawLineElement, ExcalidrawFlowchartNodeElement, ExcalidrawLinearElementSubType, ExcalidrawStickyNoteElement } from "./types";
4
+ export declare const isInitializedImageElement: <T extends ExcalidrawElement>(element: T | null) => element is T & InitializedExcalidrawImageElement;
5
+ export declare const isImageElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawImageElement;
6
+ export declare const isEmbeddableElement: <T extends ExcalidrawElement>(element: T | null | undefined) => element is T & ExcalidrawEmbeddableElement;
7
+ export declare const isIframeElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawIframeElement;
8
+ export declare const isIframeLikeElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawIframeLikeElement;
9
+ export declare const isTextElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawTextElement;
10
+ export declare const isStickyNoteElement: <T extends ExcalidrawElement>(element: T | null | undefined) => element is T & ExcalidrawStickyNoteElement;
11
+ export declare const isFrameElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawFrameElement;
12
+ export declare const isMagicFrameElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawMagicFrameElement;
13
+ export declare const isFrameLikeElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawFrameLikeElement;
14
+ export declare const isFreeDrawElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawFreeDrawElement;
14
15
  export declare const isFreeDrawElementType: (elementType: ExcalidrawElementType) => boolean;
15
- export declare const isLinearElement: (element?: ExcalidrawElement | null) => element is ExcalidrawLinearElement;
16
- export declare const isLineElement: (element?: ExcalidrawElement | null) => element is ExcalidrawLineElement;
17
- export declare const isArrowElement: (element?: ExcalidrawElement | null) => element is ExcalidrawArrowElement;
18
- export declare const isElbowArrow: (element?: ExcalidrawElement) => element is ExcalidrawElbowArrowElement;
16
+ export declare const isLinearElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawLinearElement;
17
+ export declare const isLineElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawLineElement;
18
+ export declare const isArrowElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawArrowElement;
19
+ export declare const isElbowArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawElbowArrowElement;
19
20
  /**
20
21
  * sharp or curved arrow, but not elbow
21
22
  */
22
- export declare const isSimpleArrow: (element?: ExcalidrawElement) => element is ExcalidrawArrowElement;
23
- export declare const isSharpArrow: (element?: ExcalidrawElement) => element is ExcalidrawArrowElement;
24
- export declare const isCurvedArrow: (element?: ExcalidrawElement) => element is ExcalidrawArrowElement;
23
+ export declare const isSimpleArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawArrowElement;
24
+ export declare const isSharpArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawArrowElement;
25
+ export declare const isCurvedArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawArrowElement;
25
26
  export declare const isLinearElementType: (elementType: ElementOrToolType) => boolean;
26
- export declare const isBindingElement: (element?: ExcalidrawElement | null, includeLocked?: boolean) => element is ExcalidrawArrowElement;
27
+ export declare const isBindingElement: <T extends ExcalidrawElement>(element?: T | null, includeLocked?: boolean) => element is T & ExcalidrawArrowElement;
27
28
  export declare const isBindingElementType: (elementType: ElementOrToolType) => boolean;
28
- export declare const isBindableElement: (element: ExcalidrawElement | null | undefined, includeLocked?: boolean) => element is ExcalidrawBindableElement;
29
- export declare const isRectanguloidElement: (element?: ExcalidrawElement | null) => element is ExcalidrawBindableElement;
30
- export declare const isRectangularElement: (element?: ExcalidrawElement | null) => element is ExcalidrawBindableElement;
31
- export declare const isTextBindableContainer: (element: ExcalidrawElement | null, includeLocked?: boolean) => element is ExcalidrawTextContainer;
29
+ export declare const isBindableElement: <T extends ExcalidrawElement>(element: T | null | undefined, includeLocked?: boolean) => element is T & ExcalidrawBindableElement;
30
+ export declare const isRectanguloidElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawBindableElement;
31
+ export declare const isRectangularElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawBindableElement;
32
+ export declare const isTextBindableContainer: <T extends ExcalidrawElement>(element: T | null, includeLocked?: boolean) => element is T & ExcalidrawTextContainer;
32
33
  export declare const isExcalidrawElement: (element: any) => element is ExcalidrawElement;
33
- export declare const isFlowchartNodeElement: (element: ExcalidrawElement) => element is ExcalidrawFlowchartNodeElement;
34
- export declare const hasBoundTextElement: (element: ExcalidrawElement | null) => element is MarkNonNullable<ExcalidrawBindableElement, "boundElements">;
35
- export declare const isBoundToContainer: (element: ExcalidrawElement | null) => element is ExcalidrawTextElementWithContainer;
34
+ export declare const isFlowchartNodeElement: <T extends ExcalidrawElement>(element: T) => element is T & ExcalidrawFlowchartNodeElement;
35
+ export declare const hasBoundTextElement: <T extends ExcalidrawElement>(element: T | null) => element is T & MarkNonNullable<ExcalidrawBindableElement, "boundElements">;
36
+ export declare const isBoundToContainer: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawTextElementWithContainer;
36
37
  export declare const isArrowBoundToElement: (element: ExcalidrawArrowElement) => boolean;
37
38
  export declare const isUsingAdaptiveRadius: (type: string) => type is "rectangle" | "embeddable" | "iframe" | "image";
38
- export declare const isUsingProportionalRadius: (type: string) => type is "line" | "arrow" | "diamond";
39
+ export declare const isUsingProportionalRadius: (type: string) => type is "line" | "arrow" | "stickynote" | "diamond";
39
40
  export declare const canApplyRoundnessTypeToElement: (roundnessType: RoundnessType, element: ExcalidrawElement) => boolean;
40
41
  export declare const getDefaultRoundnessTypeForElement: (element: ExcalidrawElement) => {
41
42
  type: 2;
@@ -52,3 +53,4 @@ export declare const getLinearElementSubType: (element: ExcalidrawLinearElement)
52
53
  */
53
54
  export declare const isValidPolygon: (points: ExcalidrawLineElement["points"]) => boolean;
54
55
  export declare const canBecomePolygon: (points: ExcalidrawLineElement["points"]) => boolean;
56
+ export declare const isEligibleFrameChildType: (type: ElementOrToolType) => boolean;
@@ -66,6 +66,11 @@ type _ExcalidrawElementBase = Readonly<{
66
66
  boundElements: readonly BoundElement[] | null;
67
67
  /** epoch (ms) timestamp of last element update */
68
68
  updated: number;
69
+ /** Client wall-clock creation time in epoch milliseconds; null if unknown.
70
+ Preserved for this element's lifetime, including edits and undo/redo,
71
+ and excluded from `ElementUpdate` (mutateElement / newElementWith).
72
+ Duplicating an element starts a new lifetime. Not an ordering clock. */
73
+ created: number | null;
69
74
  link: string | null;
70
75
  locked: boolean;
71
76
  customData?: Record<string, any>;
@@ -76,6 +81,14 @@ export type ExcalidrawSelectionElement = _ExcalidrawElementBase & {
76
81
  export type ExcalidrawRectangleElement = _ExcalidrawElementBase & {
77
82
  type: "rectangle";
78
83
  };
84
+ export type ExcalidrawStickyNoteElement = _ExcalidrawElementBase & Readonly<{
85
+ type: "stickynote";
86
+ /**
87
+ * The height the user set, from which the layout derives `height`: the
88
+ * note grows above it to fit its label and never shrinks below it
89
+ */
90
+ baseHeight: number;
91
+ }>;
79
92
  export type ExcalidrawDiamondElement = _ExcalidrawElementBase & {
80
93
  type: "diamond";
81
94
  };
@@ -150,31 +163,40 @@ export type ExcalidrawFrameLikeElement = ExcalidrawFrameElement | ExcalidrawMagi
150
163
  * These are elements that don't have any additional properties.
151
164
  */
152
165
  export type ExcalidrawGenericElement = ExcalidrawSelectionElement | ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement;
153
- export type ExcalidrawFlowchartNodeElement = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement;
154
- export type ExcalidrawRectanguloidElement = ExcalidrawRectangleElement | ExcalidrawImageElement | ExcalidrawTextElement | ExcalidrawFreeDrawElement | ExcalidrawIframeLikeElement | ExcalidrawFrameLikeElement | ExcalidrawEmbeddableElement | ExcalidrawSelectionElement;
166
+ export type ExcalidrawFlowchartNodeElement = ExcalidrawRectangleElement | ExcalidrawStickyNoteElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement;
167
+ export type ExcalidrawRectanguloidElement = ExcalidrawRectangleElement | ExcalidrawStickyNoteElement | ExcalidrawImageElement | ExcalidrawTextElement | ExcalidrawFreeDrawElement | ExcalidrawIframeLikeElement | ExcalidrawFrameLikeElement | ExcalidrawEmbeddableElement | ExcalidrawSelectionElement;
155
168
  /**
156
169
  * ExcalidrawElement should be JSON serializable and (eventually) contain
157
170
  * no computed data. The list of all ExcalidrawElements should be shareable
158
171
  * between peers and contain no state local to the peer.
159
172
  */
160
- export type ExcalidrawElement = ExcalidrawGenericElement | ExcalidrawTextElement | ExcalidrawLinearElement | ExcalidrawArrowElement | ExcalidrawFreeDrawElement | ExcalidrawImageElement | ExcalidrawFrameElement | ExcalidrawMagicFrameElement | ExcalidrawIframeElement | ExcalidrawEmbeddableElement;
173
+ export type ExcalidrawElement = ExcalidrawGenericElement | ExcalidrawStickyNoteElement | ExcalidrawTextElement | ExcalidrawLinearElement | ExcalidrawArrowElement | ExcalidrawFreeDrawElement | ExcalidrawImageElement | ExcalidrawFrameElement | ExcalidrawMagicFrameElement | ExcalidrawIframeElement | ExcalidrawEmbeddableElement;
161
174
  export type ExcalidrawNonSelectionElement = Exclude<ExcalidrawElement, ExcalidrawSelectionElement>;
162
175
  export type Ordered<TElement extends ExcalidrawElement> = TElement & {
163
176
  index: FractionalIndex;
164
177
  };
165
178
  export type OrderedExcalidrawElement = Ordered<ExcalidrawElement>;
166
179
  export type NonDeleted<TElement extends ExcalidrawElement> = TElement & {
167
- isDeleted: boolean;
180
+ isDeleted: false;
168
181
  };
169
182
  export type NonDeletedExcalidrawElement = NonDeleted<ExcalidrawElement>;
170
183
  export type ExcalidrawTextElement = _ExcalidrawElementBase & Readonly<{
171
184
  type: "text";
172
185
  fontSize: number;
173
186
  fontFamily: FontFamilyValues;
187
+ /**
188
+ * The font size the user picked, from which the layout derives `fontSize`.
189
+ * Today only sticky note labels have one: the auto-fit shrinks below it
190
+ * and never above it (compare `baseHeight`, which the note grows above).
191
+ * `null` for every other text. Read it through `getBaseFontSize` —
192
+ * generic binding repair can detach a label without clearing this, so
193
+ * the container decides its meaning.
194
+ */
195
+ baseFontSize: number | null;
174
196
  text: string;
175
197
  textAlign: TextAlign;
176
198
  verticalAlign: VerticalAlign;
177
- containerId: ExcalidrawGenericElement["id"] | null;
199
+ containerId: ExcalidrawTextContainer["id"] | null;
178
200
  originalText: string;
179
201
  /**
180
202
  * If `true` the width will fit the text. If `false`, the text will
@@ -190,9 +212,16 @@ export type ExcalidrawTextElement = _ExcalidrawElementBase & Readonly<{
190
212
  lineHeight: number & {
191
213
  _brand: "unitlessLineHeight";
192
214
  };
215
+ /**
216
+ * Position of text bound to a linear element (such as an arrow),
217
+ * expressed as a normalized arc-length parameter (0–1) along the
218
+ * container's whole path. Independent of how the path is segmented,
219
+ * so it survives midpoint insertion and other geometry changes.
220
+ * */
221
+ labelPosition?: number | null;
193
222
  }>;
194
- export type ExcalidrawBindableElement = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement | ExcalidrawTextElement | ExcalidrawImageElement | ExcalidrawIframeElement | ExcalidrawEmbeddableElement | ExcalidrawFrameElement | ExcalidrawMagicFrameElement;
195
- export type ExcalidrawTextContainer = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement | ExcalidrawArrowElement;
223
+ export type ExcalidrawBindableElement = ExcalidrawRectangleElement | ExcalidrawStickyNoteElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement | ExcalidrawTextElement | ExcalidrawImageElement | ExcalidrawIframeElement | ExcalidrawEmbeddableElement | ExcalidrawFrameElement | ExcalidrawMagicFrameElement;
224
+ export type ExcalidrawTextContainer = ExcalidrawRectangleElement | ExcalidrawStickyNoteElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement | ExcalidrawArrowElement;
196
225
  export type ExcalidrawTextElementWithContainer = {
197
226
  containerId: ExcalidrawTextContainer["id"];
198
227
  } & ExcalidrawTextElement;
@@ -255,11 +284,17 @@ export type ExcalidrawElbowArrowElement = Merge<ExcalidrawArrowElement, {
255
284
  */
256
285
  endIsSpecial: boolean | null;
257
286
  }>;
287
+ export type StrokeVariability = "variable" | "constant";
288
+ export type StrokeOptions = Readonly<{
289
+ variability: StrokeVariability;
290
+ streamline: number;
291
+ }>;
258
292
  export type ExcalidrawFreeDrawElement = _ExcalidrawElementBase & Readonly<{
259
293
  type: "freedraw";
260
294
  points: readonly LocalPoint[];
261
295
  pressures: readonly number[];
262
296
  simulatePressure: boolean;
297
+ strokeOptions: StrokeOptions;
263
298
  }>;
264
299
  export type FileId = string & {
265
300
  _brand: "FileId";
@@ -287,6 +322,7 @@ export type SceneElementsMap = Map<ExcalidrawElement["id"], Ordered<ExcalidrawEl
287
322
  */
288
323
  export type NonDeletedSceneElementsMap = Map<ExcalidrawElement["id"], Ordered<NonDeletedExcalidrawElement>> & MakeBrand<"NonDeletedSceneElementsMap">;
289
324
  export type ElementsMapOrArray = readonly ExcalidrawElement[] | Readonly<ElementsMap>;
325
+ export type NonDeletedElementsMapOrArray = readonly NonDeletedExcalidrawElement[] | Readonly<NonDeletedElementsMap | NonDeletedSceneElementsMap>;
290
326
  export type ExcalidrawLinearElementSubType = "line" | "sharpArrow" | "curvedArrow" | "elbowArrow";
291
327
  export type ConvertibleGenericTypes = "rectangle" | "diamond" | "ellipse";
292
328
  export type ConvertibleLinearTypes = ExcalidrawLinearElementSubType;
@@ -2,13 +2,16 @@ import { type GlobalPoint } from "@excalidraw/math";
2
2
  import type { Curve, LineSegment } from "@excalidraw/math";
3
3
  import type { AppState, Zoom } from "@excalidraw/excalidraw/types";
4
4
  import type { ElementsMap, ExcalidrawArrowElement, ExcalidrawBindableElement, ExcalidrawDiamondElement, ExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawLinearElement, ExcalidrawRectanguloidElement } from "./types";
5
+ export type LinearPathSegment = LineSegment<GlobalPoint> | Curve<GlobalPoint>;
6
+ type ElementShape = [LineSegment<GlobalPoint>[], Curve<GlobalPoint>[]];
5
7
  /**
6
8
  * Returns the **rotated** components of freedraw, line or arrow elements.
7
9
  *
8
10
  * @param element The linear element to deconstruct
9
11
  * @returns The rotated in components.
10
12
  */
11
- export declare function deconstructLinearOrFreeDrawElement(element: ExcalidrawLinearElement | ExcalidrawFreeDrawElement, elementsMap: ElementsMap): [LineSegment<GlobalPoint>[], Curve<GlobalPoint>[]];
13
+ export declare function deconstructLinearOrFreeDrawElement(element: ExcalidrawLinearElement | ExcalidrawFreeDrawElement, elementsMap: ElementsMap): ElementShape;
14
+ export declare function getLinearElementPathSegments(element: ExcalidrawLinearElement | ExcalidrawFreeDrawElement, elementsMap: ElementsMap): LinearPathSegment[];
12
15
  /**
13
16
  * Get the building components of a rectanguloid element in the form of
14
17
  * line segments and curves **unrotated**.
@@ -17,7 +20,7 @@ export declare function deconstructLinearOrFreeDrawElement(element: ExcalidrawLi
17
20
  * @param offset Optional offset to expand the rectanguloid shape
18
21
  * @returns Tuple of **unrotated** line segments (0) and curves (1)
19
22
  */
20
- export declare function deconstructRectanguloidElement(element: ExcalidrawRectanguloidElement, offset?: number): [LineSegment<GlobalPoint>[], Curve<GlobalPoint>[]];
23
+ export declare function deconstructRectanguloidElement(element: ExcalidrawRectanguloidElement, offset?: number): ElementShape;
21
24
  export declare function getDiamondBaseCorners(element: ExcalidrawDiamondElement, offset?: number): Curve<GlobalPoint>[];
22
25
  /**
23
26
  * Get the **unrotated** building components of a diamond element
@@ -27,10 +30,18 @@ export declare function getDiamondBaseCorners(element: ExcalidrawDiamondElement,
27
30
  * @param offset An optional offset
28
31
  * @returns Tuple of line **unrotated** segments (0) and curves (1)
29
32
  */
30
- export declare function deconstructDiamondElement(element: ExcalidrawDiamondElement, offset?: number): [LineSegment<GlobalPoint>[], Curve<GlobalPoint>[]];
33
+ export declare function deconstructDiamondElement(element: ExcalidrawDiamondElement, offset?: number): ElementShape;
31
34
  export declare const isPathALoop: (points: ExcalidrawLinearElement["points"],
32
35
  /** supply if you want the loop detection to account for current zoom */
33
36
  zoomValue?: Zoom["value"]) => boolean;
34
37
  export declare const getCornerRadius: (x: number, element: ExcalidrawElement) => number;
35
- export declare const getSnapOutlineMidPoint: (point: GlobalPoint, element: ExcalidrawBindableElement, elementsMap: ElementsMap, zoom: AppState["zoom"]) => GlobalPoint | undefined;
38
+ export declare const getAllMidpoints: (element: ExcalidrawBindableElement, elementsMap: ElementsMap) => GlobalPoint[];
39
+ export declare const getElbowArrowSnapMidPoint: (point: GlobalPoint, element: ExcalidrawBindableElement, elementsMap: ElementsMap, zoom: AppState["zoom"]) => {
40
+ point: GlobalPoint;
41
+ onAxis: boolean;
42
+ } | undefined;
43
+ export declare const getSnapOutlineMidPoint: (point: GlobalPoint, element: ExcalidrawBindableElement, elementsMap: ElementsMap, zoom: AppState["zoom"], arrow: {
44
+ elbowed: boolean;
45
+ }) => GlobalPoint | undefined;
36
46
  export declare const projectFixedPointOntoDiagonal: (arrow: ExcalidrawArrowElement, point: GlobalPoint, element: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap, zoom: AppState["zoom"], isMidpointSnappingEnabled?: boolean) => GlobalPoint | null;
47
+ export {};
@@ -1,12 +1,12 @@
1
1
  import type { AppState } from "@excalidraw/excalidraw/types";
2
2
  import type { GlobalPoint } from "@excalidraw/math";
3
3
  import type { Scene } from "./Scene";
4
- import type { ExcalidrawArrowElement, ExcalidrawElement, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap, Ordered, OrderedExcalidrawElement } from "./types";
4
+ import type { ExcalidrawArrowElement, ExcalidrawElement, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap, OrderedExcalidrawElement } from "./types";
5
5
  /**
6
6
  * Moves the arrow element above any bindable elements it intersects with or
7
7
  * hovers over.
8
8
  */
9
- export declare const moveArrowAboveBindable: (point: GlobalPoint, arrow: ExcalidrawArrowElement, elements: readonly Ordered<NonDeletedExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, scene: Scene, hit?: NonDeletedExcalidrawElement) => readonly OrderedExcalidrawElement[];
9
+ export declare const moveArrowAboveBindable: (point: GlobalPoint, arrow: ExcalidrawArrowElement, elements: readonly OrderedExcalidrawElement[], elementsMap: NonDeletedSceneElementsMap, scene: Scene, hoveredElement: NonDeletedExcalidrawElement) => readonly OrderedExcalidrawElement[];
10
10
  export declare const moveOneLeft: (allElements: readonly ExcalidrawElement[], appState: AppState, scene: Scene) => readonly ExcalidrawElement[];
11
11
  export declare const moveOneRight: (allElements: readonly ExcalidrawElement[], appState: AppState, scene: Scene) => readonly ExcalidrawElement[];
12
12
  export declare const moveAllLeft: (allElements: readonly ExcalidrawElement[], appState: AppState) => readonly ExcalidrawElement[] | ExcalidrawElement[];
@@ -26,13 +26,26 @@ export declare const actionAddToLibrary: {
26
26
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
27
27
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
28
28
  isBindingEnabled: boolean;
29
+ boxSelectionMode: import("../types").BoxSelectionMode;
29
30
  bindingPreference: "enabled" | "disabled";
30
31
  isMidpointSnappingEnabled: boolean;
31
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
32
+ showHints: boolean;
33
+ inputDevice: import("../types").InputDevice;
32
34
  suggestedBinding: {
33
35
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
34
36
  midPoint?: import("@excalidraw/math").GlobalPoint;
35
37
  } | null;
38
+ textToolHover: {
39
+ type: "text";
40
+ elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
41
+ } | {
42
+ type: "container";
43
+ elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
44
+ } | {
45
+ type: "arrow";
46
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
47
+ anchor: "start" | "end" | "label";
48
+ } | null;
36
49
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
37
50
  frameRendering: {
38
51
  enabled: boolean;
@@ -40,8 +53,8 @@ export declare const actionAddToLibrary: {
40
53
  outline: boolean;
41
54
  clip: boolean;
42
55
  };
43
- editingFrame: string | null;
44
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
56
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
57
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
45
58
  editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
46
59
  activeTool: {
47
60
  lastActiveTool: import("../types").ActiveTool | null;
@@ -59,11 +72,14 @@ export declare const actionAddToLibrary: {
59
72
  exportWithDarkMode: boolean;
60
73
  exportScale: number;
61
74
  currentItemStrokeColor: string;
75
+ currentItemStickynoteStrokeColor: string;
76
+ currentItemStickynoteBackgroundColor: string;
62
77
  currentItemBackgroundColor: string;
63
78
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
64
- currentItemStrokeWidth: number;
79
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
65
80
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
66
81
  currentItemRoughness: number;
82
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
67
83
  currentItemOpacity: number;
68
84
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
69
85
  currentItemFontSize: number;
@@ -76,6 +92,7 @@ export declare const actionAddToLibrary: {
76
92
  viewBackgroundColor: string;
77
93
  scrollX: number;
78
94
  scrollY: number;
95
+ scrollConstraints: import("../types").ScrollConstraints | null;
79
96
  cursorButton: "up" | "down";
80
97
  scrolledOutside: boolean;
81
98
  name: string | null;
@@ -146,8 +163,6 @@ export declare const actionAddToLibrary: {
146
163
  y: number;
147
164
  } | null;
148
165
  objectsSnapModeEnabled: boolean;
149
- userToFollow: import("../types").UserToFollow | null;
150
- followedBy: Set<import("../types").SocketId>;
151
166
  isCropping: boolean;
152
167
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
153
168
  searchMatches: Readonly<{
@@ -159,6 +174,14 @@ export declare const actionAddToLibrary: {
159
174
  [groupId: string]: true;
160
175
  };
161
176
  bindMode: import("@excalidraw/element/types").BindMode;
177
+ colorTopPicks: {
178
+ elementStroke: readonly string[] | null;
179
+ elementBackground: readonly string[] | null;
180
+ bucketFill: readonly string[] | null;
181
+ stickyNoteStroke: readonly string[] | null;
182
+ stickyNoteBackground: readonly string[] | null;
183
+ };
184
+ fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
162
185
  };
163
186
  } | {
164
187
  captureUpdate: "EVENTUALLY";
@@ -180,13 +203,26 @@ export declare const actionAddToLibrary: {
180
203
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
181
204
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
182
205
  isBindingEnabled: boolean;
206
+ boxSelectionMode: import("../types").BoxSelectionMode;
183
207
  bindingPreference: "enabled" | "disabled";
184
208
  isMidpointSnappingEnabled: boolean;
185
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
209
+ showHints: boolean;
210
+ inputDevice: import("../types").InputDevice;
186
211
  suggestedBinding: {
187
212
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
188
213
  midPoint?: import("@excalidraw/math").GlobalPoint;
189
214
  } | null;
215
+ textToolHover: {
216
+ type: "text";
217
+ elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
218
+ } | {
219
+ type: "container";
220
+ elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
221
+ } | {
222
+ type: "arrow";
223
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
224
+ anchor: "start" | "end" | "label";
225
+ } | null;
190
226
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
191
227
  frameRendering: {
192
228
  enabled: boolean;
@@ -194,8 +230,8 @@ export declare const actionAddToLibrary: {
194
230
  outline: boolean;
195
231
  clip: boolean;
196
232
  };
197
- editingFrame: string | null;
198
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
233
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
234
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
199
235
  editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
200
236
  activeTool: {
201
237
  lastActiveTool: import("../types").ActiveTool | null;
@@ -213,11 +249,14 @@ export declare const actionAddToLibrary: {
213
249
  exportWithDarkMode: boolean;
214
250
  exportScale: number;
215
251
  currentItemStrokeColor: string;
252
+ currentItemStickynoteStrokeColor: string;
253
+ currentItemStickynoteBackgroundColor: string;
216
254
  currentItemBackgroundColor: string;
217
255
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
218
- currentItemStrokeWidth: number;
256
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
219
257
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
220
258
  currentItemRoughness: number;
259
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
221
260
  currentItemOpacity: number;
222
261
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
223
262
  currentItemFontSize: number;
@@ -230,6 +269,7 @@ export declare const actionAddToLibrary: {
230
269
  viewBackgroundColor: string;
231
270
  scrollX: number;
232
271
  scrollY: number;
272
+ scrollConstraints: import("../types").ScrollConstraints | null;
233
273
  cursorButton: "up" | "down";
234
274
  scrolledOutside: boolean;
235
275
  name: string | null;
@@ -305,8 +345,6 @@ export declare const actionAddToLibrary: {
305
345
  y: number;
306
346
  } | null;
307
347
  objectsSnapModeEnabled: boolean;
308
- userToFollow: import("../types").UserToFollow | null;
309
- followedBy: Set<import("../types").SocketId>;
310
348
  isCropping: boolean;
311
349
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
312
350
  searchMatches: Readonly<{
@@ -318,6 +356,14 @@ export declare const actionAddToLibrary: {
318
356
  [groupId: string]: true;
319
357
  };
320
358
  bindMode: import("@excalidraw/element/types").BindMode;
359
+ colorTopPicks: {
360
+ elementStroke: readonly string[] | null;
361
+ elementBackground: readonly string[] | null;
362
+ bucketFill: readonly string[] | null;
363
+ stickyNoteStroke: readonly string[] | null;
364
+ stickyNoteBackground: readonly string[] | null;
365
+ };
366
+ fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
321
367
  };
322
368
  }> | {
323
369
  captureUpdate: "EVENTUALLY";
@@ -339,13 +385,26 @@ export declare const actionAddToLibrary: {
339
385
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
340
386
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
341
387
  isBindingEnabled: boolean;
388
+ boxSelectionMode: import("../types").BoxSelectionMode;
342
389
  bindingPreference: "enabled" | "disabled";
343
390
  isMidpointSnappingEnabled: boolean;
344
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
391
+ showHints: boolean;
392
+ inputDevice: import("../types").InputDevice;
345
393
  suggestedBinding: {
346
394
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
347
395
  midPoint?: import("@excalidraw/math").GlobalPoint;
348
396
  } | null;
397
+ textToolHover: {
398
+ type: "text";
399
+ elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
400
+ } | {
401
+ type: "container";
402
+ elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
403
+ } | {
404
+ type: "arrow";
405
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
406
+ anchor: "start" | "end" | "label";
407
+ } | null;
349
408
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
350
409
  frameRendering: {
351
410
  enabled: boolean;
@@ -353,8 +412,8 @@ export declare const actionAddToLibrary: {
353
412
  outline: boolean;
354
413
  clip: boolean;
355
414
  };
356
- editingFrame: string | null;
357
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
415
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
416
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
358
417
  editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
359
418
  activeTool: {
360
419
  lastActiveTool: import("../types").ActiveTool | null;
@@ -372,11 +431,14 @@ export declare const actionAddToLibrary: {
372
431
  exportWithDarkMode: boolean;
373
432
  exportScale: number;
374
433
  currentItemStrokeColor: string;
434
+ currentItemStickynoteStrokeColor: string;
435
+ currentItemStickynoteBackgroundColor: string;
375
436
  currentItemBackgroundColor: string;
376
437
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
377
- currentItemStrokeWidth: number;
438
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
378
439
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
379
440
  currentItemRoughness: number;
441
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
380
442
  currentItemOpacity: number;
381
443
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
382
444
  currentItemFontSize: number;
@@ -389,6 +451,7 @@ export declare const actionAddToLibrary: {
389
451
  viewBackgroundColor: string;
390
452
  scrollX: number;
391
453
  scrollY: number;
454
+ scrollConstraints: import("../types").ScrollConstraints | null;
392
455
  cursorButton: "up" | "down";
393
456
  scrolledOutside: boolean;
394
457
  name: string | null;
@@ -464,8 +527,6 @@ export declare const actionAddToLibrary: {
464
527
  y: number;
465
528
  } | null;
466
529
  objectsSnapModeEnabled: boolean;
467
- userToFollow: import("../types").UserToFollow | null;
468
- followedBy: Set<import("../types").SocketId>;
469
530
  isCropping: boolean;
470
531
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
471
532
  searchMatches: Readonly<{
@@ -477,6 +538,14 @@ export declare const actionAddToLibrary: {
477
538
  [groupId: string]: true;
478
539
  };
479
540
  bindMode: import("@excalidraw/element/types").BindMode;
541
+ colorTopPicks: {
542
+ elementStroke: readonly string[] | null;
543
+ elementBackground: readonly string[] | null;
544
+ bucketFill: readonly string[] | null;
545
+ stickyNoteStroke: readonly string[] | null;
546
+ stickyNoteBackground: readonly string[] | null;
547
+ };
548
+ fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
480
549
  };
481
550
  };
482
551
  label: string;
@@ -11,7 +11,7 @@ export declare const actionAlignTop: {
11
11
  predicate: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: import("../types").ExcalidrawProps, app: AppClassProperties) => boolean;
12
12
  perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: unknown, app: AppClassProperties) => {
13
13
  appState: Readonly<AppState>;
14
- elements: ExcalidrawElement[];
14
+ elements: (import("@excalidraw/element/types").ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawSelectionElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawStickyNoteElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | import("@excalidraw/element/types").ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement)[];
15
15
  captureUpdate: "IMMEDIATELY";
16
16
  };
17
17
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
@@ -29,7 +29,7 @@ export declare const actionAlignBottom: {
29
29
  predicate: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: import("../types").ExcalidrawProps, app: AppClassProperties) => boolean;
30
30
  perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: unknown, app: AppClassProperties) => {
31
31
  appState: Readonly<AppState>;
32
- elements: ExcalidrawElement[];
32
+ elements: (import("@excalidraw/element/types").ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawSelectionElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawStickyNoteElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | import("@excalidraw/element/types").ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement)[];
33
33
  captureUpdate: "IMMEDIATELY";
34
34
  };
35
35
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
@@ -47,7 +47,7 @@ export declare const actionAlignLeft: {
47
47
  predicate: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: import("../types").ExcalidrawProps, app: AppClassProperties) => boolean;
48
48
  perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: unknown, app: AppClassProperties) => {
49
49
  appState: Readonly<AppState>;
50
- elements: ExcalidrawElement[];
50
+ elements: (import("@excalidraw/element/types").ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawSelectionElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawStickyNoteElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | import("@excalidraw/element/types").ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement)[];
51
51
  captureUpdate: "IMMEDIATELY";
52
52
  };
53
53
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
@@ -65,7 +65,7 @@ export declare const actionAlignRight: {
65
65
  predicate: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: import("../types").ExcalidrawProps, app: AppClassProperties) => boolean;
66
66
  perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: unknown, app: AppClassProperties) => {
67
67
  appState: Readonly<AppState>;
68
- elements: ExcalidrawElement[];
68
+ elements: (import("@excalidraw/element/types").ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawSelectionElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawStickyNoteElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | import("@excalidraw/element/types").ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement)[];
69
69
  captureUpdate: "IMMEDIATELY";
70
70
  };
71
71
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
@@ -83,7 +83,7 @@ export declare const actionAlignVerticallyCentered: {
83
83
  predicate: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: import("../types").ExcalidrawProps, app: AppClassProperties) => boolean;
84
84
  perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: unknown, app: AppClassProperties) => {
85
85
  appState: Readonly<AppState>;
86
- elements: ExcalidrawElement[];
86
+ elements: (import("@excalidraw/element/types").ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawSelectionElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawStickyNoteElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | import("@excalidraw/element/types").ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement)[];
87
87
  captureUpdate: "IMMEDIATELY";
88
88
  };
89
89
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
@@ -100,7 +100,7 @@ export declare const actionAlignHorizontallyCentered: {
100
100
  predicate: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: import("../types").ExcalidrawProps, app: AppClassProperties) => boolean;
101
101
  perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: unknown, app: AppClassProperties) => {
102
102
  appState: Readonly<AppState>;
103
- elements: ExcalidrawElement[];
103
+ elements: (import("@excalidraw/element/types").ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawSelectionElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawStickyNoteElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | import("@excalidraw/element/types").ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement)[];
104
104
  captureUpdate: "IMMEDIATELY";
105
105
  };
106
106
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;