@excalidraw/element 0.18.0-2b0e4c9 → 0.18.0-2b1c2a9

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 (193) hide show
  1. package/dist/dev/index.js +5650 -3215
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +19 -18
  4. package/dist/types/common/src/colors.d.ts +20 -1
  5. package/dist/types/common/src/constants.d.ts +12 -7
  6. package/dist/types/common/src/keys.d.ts +2 -0
  7. package/dist/types/common/src/points.d.ts +1 -1
  8. package/dist/types/common/src/utils.d.ts +1 -43
  9. package/dist/types/element/src/Scene.d.ts +6 -4
  10. package/dist/types/element/src/align.d.ts +2 -2
  11. package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
  12. package/dist/types/element/src/arrows/focus.d.ts +5 -2
  13. package/dist/types/element/src/binding.d.ts +17 -8
  14. package/dist/types/element/src/bounds.d.ts +22 -7
  15. package/dist/types/element/src/bucketFill.d.ts +110 -0
  16. package/dist/types/element/src/collision.d.ts +1 -1
  17. package/dist/types/element/src/comparisons.d.ts +5 -4
  18. package/dist/types/element/src/convertToShape.d.ts +23 -0
  19. package/dist/types/element/src/distribute.d.ts +2 -2
  20. package/dist/types/element/src/dragElements.d.ts +27 -0
  21. package/dist/types/element/src/duplicate.d.ts +4 -3
  22. package/dist/types/element/src/embeddable.d.ts +2 -2
  23. package/dist/types/element/src/flowchart.d.ts +7 -7
  24. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  25. package/dist/types/element/src/frame.d.ts +9 -8
  26. package/dist/types/element/src/groups.d.ts +9 -9
  27. package/dist/types/element/src/index.d.ts +4 -1
  28. package/dist/types/element/src/linearElementEditor.d.ts +27 -10
  29. package/dist/types/element/src/newElement.d.ts +15 -0
  30. package/dist/types/element/src/renderElement.d.ts +0 -3
  31. package/dist/types/element/src/resizeElements.d.ts +2 -2
  32. package/dist/types/element/src/selection.d.ts +11 -7
  33. package/dist/types/element/src/shape.d.ts +13 -1
  34. package/dist/types/element/src/sortElements.d.ts +10 -0
  35. package/dist/types/element/src/textElement.d.ts +14 -10
  36. package/dist/types/element/src/textWrapping.d.ts +26 -0
  37. package/dist/types/element/src/transform.d.ts +2 -2
  38. package/dist/types/element/src/typeChecks.d.ts +26 -25
  39. package/dist/types/element/src/types.d.ts +15 -1
  40. package/dist/types/element/src/utils.d.ts +7 -3
  41. package/dist/types/element/src/visualdebug.d.ts +1 -2
  42. package/dist/types/element/src/zindex.d.ts +2 -2
  43. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +48 -21
  44. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  45. package/dist/types/excalidraw/actions/actionBoundText.d.ts +33 -15
  46. package/dist/types/excalidraw/actions/actionCanvas.d.ts +174 -947
  47. package/dist/types/excalidraw/actions/actionClipboard.d.ts +32 -14
  48. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +16 -7
  49. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +50 -22
  50. package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionDeselect.d.ts} +30 -36
  51. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  52. package/dist/types/excalidraw/actions/actionElementLink.d.ts +16 -7
  53. package/dist/types/excalidraw/actions/actionElementLock.d.ts +33 -15
  54. package/dist/types/excalidraw/actions/actionExport.d.ts +34 -16
  55. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
  56. package/dist/types/excalidraw/actions/actionFrame.d.ts +61 -205
  57. package/dist/types/excalidraw/actions/actionGroup.d.ts +48 -30
  58. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +21 -9
  59. package/dist/types/excalidraw/actions/actionLink.d.ts +17 -8
  60. package/dist/types/excalidraw/actions/actionMenu.d.ts +16 -7
  61. package/dist/types/excalidraw/actions/actionProperties.d.ts +62 -32
  62. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +21 -12
  63. package/dist/types/excalidraw/actions/actionStyles.d.ts +17 -7
  64. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  65. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +17 -8
  66. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +20 -12
  67. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +17 -8
  68. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +17 -8
  69. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +20 -12
  70. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  71. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +17 -8
  72. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +18 -9
  73. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +17 -8
  74. package/dist/types/excalidraw/actions/index.d.ts +2 -2
  75. package/dist/types/excalidraw/actions/manager.d.ts +1 -0
  76. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  77. package/dist/types/excalidraw/actions/types.d.ts +8 -4
  78. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  79. package/dist/types/excalidraw/appState.d.ts +12 -5
  80. package/dist/types/excalidraw/components/Actions.d.ts +17 -12
  81. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  82. package/dist/types/excalidraw/components/App.arrowText.d.ts +104 -0
  83. package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
  84. package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
  85. package/dist/types/excalidraw/components/App.d.ts +391 -68
  86. package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
  87. package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
  88. package/dist/types/excalidraw/components/App.viewport.d.ts +73 -0
  89. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
  90. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
  91. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +3 -1
  92. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
  93. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
  94. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
  95. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
  96. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
  97. package/dist/types/excalidraw/components/ColorPicker/topPicksDnD.d.ts +31 -0
  98. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  99. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  100. package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
  101. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  102. package/dist/types/excalidraw/components/{ToolButton.d.ts → IconButton.d.ts} +16 -19
  103. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  104. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
  105. package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
  106. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  107. package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
  108. package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
  109. package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
  110. package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
  111. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  112. package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
  113. package/dist/types/excalidraw/components/Popover.d.ts +1 -3
  114. package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
  115. package/dist/types/excalidraw/components/Range.d.ts +10 -4
  116. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  117. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  118. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
  119. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  120. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  121. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  122. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  123. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  124. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  125. package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
  126. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  127. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
  128. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
  129. package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
  130. package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
  131. package/dist/types/excalidraw/components/Tools.d.ts +146 -0
  132. package/dist/types/excalidraw/components/UserList.d.ts +3 -2
  133. package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
  134. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -1
  135. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
  136. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  137. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
  138. package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
  139. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  140. package/dist/types/excalidraw/components/icons.d.ts +6 -1
  141. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +8 -4
  142. package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
  143. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
  144. package/dist/types/excalidraw/data/blob.d.ts +36 -18
  145. package/dist/types/excalidraw/data/index.d.ts +4 -4
  146. package/dist/types/excalidraw/data/json.d.ts +24 -15
  147. package/dist/types/excalidraw/data/library.d.ts +1 -1
  148. package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
  149. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  150. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
  151. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  152. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  153. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
  154. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  155. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  156. package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
  157. package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
  158. package/dist/types/excalidraw/renderer/helpers.d.ts +7 -0
  159. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -3
  160. package/dist/types/excalidraw/scene/Renderer.d.ts +427 -19
  161. package/dist/types/excalidraw/scene/export.d.ts +3 -3
  162. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  163. package/dist/types/excalidraw/scene/types.d.ts +4 -3
  164. package/dist/types/excalidraw/snapping.d.ts +7 -7
  165. package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
  166. package/dist/types/excalidraw/types.d.ts +436 -24
  167. package/dist/types/excalidraw/viewport.d.ts +275 -0
  168. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +6 -3
  169. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  170. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  171. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  172. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  173. package/dist/types/laser-pointer/src/state.d.ts +36 -0
  174. package/dist/types/math/src/constants.d.ts +0 -1
  175. package/dist/types/math/src/curve.d.ts +23 -13
  176. package/dist/types/math/src/index.d.ts +1 -0
  177. package/dist/types/math/src/pca.d.ts +79 -0
  178. package/dist/types/math/src/point.d.ts +2 -1
  179. package/dist/types/math/src/polygon.d.ts +25 -1
  180. package/dist/types/math/src/segment.d.ts +6 -0
  181. package/dist/types/utils/src/export.d.ts +3 -3
  182. package/dist/types/utils/src/index.d.ts +1 -2
  183. package/package.json +4 -3
  184. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  185. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
  186. package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
  187. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
  188. package/dist/types/excalidraw/components/shapes.d.ts +0 -263
  189. package/dist/types/excalidraw/cursor.d.ts +0 -5
  190. package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
  191. package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
  192. package/dist/types/utils/src/bbox.d.ts +0 -9
  193. package/dist/types/utils/src/withinBounds.d.ts +0 -19
@@ -1,38 +1,38 @@
1
1
  import type { ElementOrToolType } from "@excalidraw/excalidraw/types";
2
2
  import type { MarkNonNullable } from "@excalidraw/common/utility-types";
3
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;
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 isFrameElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawFrameElement;
11
+ export declare const isMagicFrameElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawMagicFrameElement;
12
+ export declare const isFrameLikeElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawFrameLikeElement;
13
+ export declare const isFreeDrawElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawFreeDrawElement;
14
14
  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;
15
+ export declare const isLinearElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawLinearElement;
16
+ export declare const isLineElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawLineElement;
17
+ export declare const isArrowElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawArrowElement;
18
+ export declare const isElbowArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawElbowArrowElement;
19
19
  /**
20
20
  * sharp or curved arrow, but not elbow
21
21
  */
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;
22
+ export declare const isSimpleArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawArrowElement;
23
+ export declare const isSharpArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawArrowElement;
24
+ export declare const isCurvedArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawArrowElement;
25
25
  export declare const isLinearElementType: (elementType: ElementOrToolType) => boolean;
26
- export declare const isBindingElement: (element?: ExcalidrawElement | null, includeLocked?: boolean) => element is ExcalidrawArrowElement;
26
+ export declare const isBindingElement: <T extends ExcalidrawElement>(element?: T | null, includeLocked?: boolean) => element is T & ExcalidrawArrowElement;
27
27
  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;
28
+ export declare const isBindableElement: <T extends ExcalidrawElement>(element: T | null | undefined, includeLocked?: boolean) => element is T & ExcalidrawBindableElement;
29
+ export declare const isRectanguloidElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawBindableElement;
30
+ export declare const isRectangularElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawBindableElement;
31
+ export declare const isTextBindableContainer: <T extends ExcalidrawElement>(element: T | null, includeLocked?: boolean) => element is T & ExcalidrawTextContainer;
32
32
  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;
33
+ export declare const isFlowchartNodeElement: <T extends ExcalidrawElement>(element: T) => element is T & ExcalidrawFlowchartNodeElement;
34
+ export declare const hasBoundTextElement: <T extends ExcalidrawElement>(element: T | null) => element is T & MarkNonNullable<ExcalidrawBindableElement, "boundElements">;
35
+ export declare const isBoundToContainer: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawTextElementWithContainer;
36
36
  export declare const isArrowBoundToElement: (element: ExcalidrawArrowElement) => boolean;
37
37
  export declare const isUsingAdaptiveRadius: (type: string) => type is "rectangle" | "embeddable" | "iframe" | "image";
38
38
  export declare const isUsingProportionalRadius: (type: string) => type is "line" | "arrow" | "diamond";
@@ -52,3 +52,4 @@ export declare const getLinearElementSubType: (element: ExcalidrawLinearElement)
52
52
  */
53
53
  export declare const isValidPolygon: (points: ExcalidrawLineElement["points"]) => boolean;
54
54
  export declare const canBecomePolygon: (points: ExcalidrawLineElement["points"]) => boolean;
55
+ export declare const isEligibleFrameChildType: (type: ElementOrToolType) => boolean;
@@ -164,7 +164,7 @@ export type Ordered<TElement extends ExcalidrawElement> = TElement & {
164
164
  };
165
165
  export type OrderedExcalidrawElement = Ordered<ExcalidrawElement>;
166
166
  export type NonDeleted<TElement extends ExcalidrawElement> = TElement & {
167
- isDeleted: boolean;
167
+ isDeleted: false;
168
168
  };
169
169
  export type NonDeletedExcalidrawElement = NonDeleted<ExcalidrawElement>;
170
170
  export type ExcalidrawTextElement = _ExcalidrawElementBase & Readonly<{
@@ -190,6 +190,13 @@ export type ExcalidrawTextElement = _ExcalidrawElementBase & Readonly<{
190
190
  lineHeight: number & {
191
191
  _brand: "unitlessLineHeight";
192
192
  };
193
+ /**
194
+ * Position of text bound to a linear element (such as an arrow),
195
+ * expressed as a normalized arc-length parameter (0–1) along the
196
+ * container's whole path. Independent of how the path is segmented,
197
+ * so it survives midpoint insertion and other geometry changes.
198
+ * */
199
+ labelPosition?: number | null;
193
200
  }>;
194
201
  export type ExcalidrawBindableElement = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement | ExcalidrawTextElement | ExcalidrawImageElement | ExcalidrawIframeElement | ExcalidrawEmbeddableElement | ExcalidrawFrameElement | ExcalidrawMagicFrameElement;
195
202
  export type ExcalidrawTextContainer = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement | ExcalidrawArrowElement;
@@ -255,11 +262,17 @@ export type ExcalidrawElbowArrowElement = Merge<ExcalidrawArrowElement, {
255
262
  */
256
263
  endIsSpecial: boolean | null;
257
264
  }>;
265
+ export type StrokeVariability = "variable" | "constant";
266
+ export type StrokeOptions = Readonly<{
267
+ variability: StrokeVariability;
268
+ streamline: number;
269
+ }>;
258
270
  export type ExcalidrawFreeDrawElement = _ExcalidrawElementBase & Readonly<{
259
271
  type: "freedraw";
260
272
  points: readonly LocalPoint[];
261
273
  pressures: readonly number[];
262
274
  simulatePressure: boolean;
275
+ strokeOptions: StrokeOptions;
263
276
  }>;
264
277
  export type FileId = string & {
265
278
  _brand: "FileId";
@@ -287,6 +300,7 @@ export type SceneElementsMap = Map<ExcalidrawElement["id"], Ordered<ExcalidrawEl
287
300
  */
288
301
  export type NonDeletedSceneElementsMap = Map<ExcalidrawElement["id"], Ordered<NonDeletedExcalidrawElement>> & MakeBrand<"NonDeletedSceneElementsMap">;
289
302
  export type ElementsMapOrArray = readonly ExcalidrawElement[] | Readonly<ElementsMap>;
303
+ export type NonDeletedElementsMapOrArray = readonly NonDeletedExcalidrawElement[] | Readonly<NonDeletedElementsMap | NonDeletedSceneElementsMap>;
290
304
  export type ExcalidrawLinearElementSubType = "line" | "sharpArrow" | "curvedArrow" | "elbowArrow";
291
305
  export type ConvertibleGenericTypes = "rectangle" | "diamond" | "ellipse";
292
306
  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): [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,11 @@ 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
38
  export declare const getSnapOutlineMidPoint: (point: GlobalPoint, element: ExcalidrawBindableElement, elementsMap: ElementsMap, zoom: AppState["zoom"]) => GlobalPoint | undefined;
36
39
  export declare const projectFixedPointOntoDiagonal: (arrow: ExcalidrawArrowElement, point: GlobalPoint, element: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap, zoom: AppState["zoom"], isMidpointSnappingEnabled?: boolean) => GlobalPoint | null;
40
+ export {};
@@ -1,8 +1,7 @@
1
- import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
1
+ import { type GlobalPoint, type LocalPoint, type LineSegment } from "@excalidraw/math";
2
2
  import { type Bounds } from "@excalidraw/common";
3
3
  import type { ElementsMap, ExcalidrawElement } from "@excalidraw/element/types";
4
4
  import type { Curve } from "@excalidraw/math";
5
- import type { LineSegment } from "@excalidraw/utils";
6
5
  declare global {
7
6
  interface Window {
8
7
  visualDebug?: {
@@ -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, hit?: 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,17 @@ 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
32
  suggestedBinding: {
33
33
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
34
34
  midPoint?: import("@excalidraw/math").GlobalPoint;
35
35
  } | null;
36
+ hoveredArrowTextAnchor: {
37
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
38
+ anchor: "start" | "end" | "label";
39
+ } | null;
36
40
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
37
41
  frameRendering: {
38
42
  enabled: boolean;
@@ -40,9 +44,9 @@ export declare const actionAddToLibrary: {
40
44
  outline: boolean;
41
45
  clip: boolean;
42
46
  };
43
- editingFrame: string | null;
44
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
45
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
47
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
48
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
49
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
46
50
  activeTool: {
47
51
  lastActiveTool: import("../types").ActiveTool | null;
48
52
  locked: boolean;
@@ -61,9 +65,10 @@ export declare const actionAddToLibrary: {
61
65
  currentItemStrokeColor: string;
62
66
  currentItemBackgroundColor: string;
63
67
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
64
- currentItemStrokeWidth: number;
68
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
65
69
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
66
70
  currentItemRoughness: number;
71
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
67
72
  currentItemOpacity: number;
68
73
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
69
74
  currentItemFontSize: number;
@@ -76,6 +81,7 @@ export declare const actionAddToLibrary: {
76
81
  viewBackgroundColor: string;
77
82
  scrollX: number;
78
83
  scrollY: number;
84
+ scrollConstraints: import("../types").ScrollConstraints | null;
79
85
  cursorButton: "up" | "down";
80
86
  scrolledOutside: boolean;
81
87
  name: string | null;
@@ -146,8 +152,6 @@ export declare const actionAddToLibrary: {
146
152
  y: number;
147
153
  } | null;
148
154
  objectsSnapModeEnabled: boolean;
149
- userToFollow: import("../types").UserToFollow | null;
150
- followedBy: Set<import("../types").SocketId>;
151
155
  isCropping: boolean;
152
156
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
153
157
  searchMatches: Readonly<{
@@ -159,6 +163,11 @@ export declare const actionAddToLibrary: {
159
163
  [groupId: string]: true;
160
164
  };
161
165
  bindMode: import("@excalidraw/element/types").BindMode;
166
+ colorTopPicks: {
167
+ elementStroke: readonly string[] | null;
168
+ elementBackground: readonly string[] | null;
169
+ bucketFill: readonly string[] | null;
170
+ };
162
171
  };
163
172
  } | {
164
173
  captureUpdate: "EVENTUALLY";
@@ -180,13 +189,17 @@ export declare const actionAddToLibrary: {
180
189
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
181
190
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
182
191
  isBindingEnabled: boolean;
192
+ boxSelectionMode: import("../types").BoxSelectionMode;
183
193
  bindingPreference: "enabled" | "disabled";
184
194
  isMidpointSnappingEnabled: boolean;
185
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
186
195
  suggestedBinding: {
187
196
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
188
197
  midPoint?: import("@excalidraw/math").GlobalPoint;
189
198
  } | null;
199
+ hoveredArrowTextAnchor: {
200
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
201
+ anchor: "start" | "end" | "label";
202
+ } | null;
190
203
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
191
204
  frameRendering: {
192
205
  enabled: boolean;
@@ -194,9 +207,9 @@ export declare const actionAddToLibrary: {
194
207
  outline: boolean;
195
208
  clip: boolean;
196
209
  };
197
- editingFrame: string | null;
198
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
199
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
210
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
211
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
212
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
200
213
  activeTool: {
201
214
  lastActiveTool: import("../types").ActiveTool | null;
202
215
  locked: boolean;
@@ -215,9 +228,10 @@ export declare const actionAddToLibrary: {
215
228
  currentItemStrokeColor: string;
216
229
  currentItemBackgroundColor: string;
217
230
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
218
- currentItemStrokeWidth: number;
231
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
219
232
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
220
233
  currentItemRoughness: number;
234
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
221
235
  currentItemOpacity: number;
222
236
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
223
237
  currentItemFontSize: number;
@@ -230,6 +244,7 @@ export declare const actionAddToLibrary: {
230
244
  viewBackgroundColor: string;
231
245
  scrollX: number;
232
246
  scrollY: number;
247
+ scrollConstraints: import("../types").ScrollConstraints | null;
233
248
  cursorButton: "up" | "down";
234
249
  scrolledOutside: boolean;
235
250
  name: string | null;
@@ -305,8 +320,6 @@ export declare const actionAddToLibrary: {
305
320
  y: number;
306
321
  } | null;
307
322
  objectsSnapModeEnabled: boolean;
308
- userToFollow: import("../types").UserToFollow | null;
309
- followedBy: Set<import("../types").SocketId>;
310
323
  isCropping: boolean;
311
324
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
312
325
  searchMatches: Readonly<{
@@ -318,6 +331,11 @@ export declare const actionAddToLibrary: {
318
331
  [groupId: string]: true;
319
332
  };
320
333
  bindMode: import("@excalidraw/element/types").BindMode;
334
+ colorTopPicks: {
335
+ elementStroke: readonly string[] | null;
336
+ elementBackground: readonly string[] | null;
337
+ bucketFill: readonly string[] | null;
338
+ };
321
339
  };
322
340
  }> | {
323
341
  captureUpdate: "EVENTUALLY";
@@ -339,13 +357,17 @@ export declare const actionAddToLibrary: {
339
357
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
340
358
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
341
359
  isBindingEnabled: boolean;
360
+ boxSelectionMode: import("../types").BoxSelectionMode;
342
361
  bindingPreference: "enabled" | "disabled";
343
362
  isMidpointSnappingEnabled: boolean;
344
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
345
363
  suggestedBinding: {
346
364
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
347
365
  midPoint?: import("@excalidraw/math").GlobalPoint;
348
366
  } | null;
367
+ hoveredArrowTextAnchor: {
368
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
369
+ anchor: "start" | "end" | "label";
370
+ } | null;
349
371
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
350
372
  frameRendering: {
351
373
  enabled: boolean;
@@ -353,9 +375,9 @@ export declare const actionAddToLibrary: {
353
375
  outline: boolean;
354
376
  clip: boolean;
355
377
  };
356
- editingFrame: string | null;
357
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
358
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
378
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
379
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
380
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
359
381
  activeTool: {
360
382
  lastActiveTool: import("../types").ActiveTool | null;
361
383
  locked: boolean;
@@ -374,9 +396,10 @@ export declare const actionAddToLibrary: {
374
396
  currentItemStrokeColor: string;
375
397
  currentItemBackgroundColor: string;
376
398
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
377
- currentItemStrokeWidth: number;
399
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
378
400
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
379
401
  currentItemRoughness: number;
402
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
380
403
  currentItemOpacity: number;
381
404
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
382
405
  currentItemFontSize: number;
@@ -389,6 +412,7 @@ export declare const actionAddToLibrary: {
389
412
  viewBackgroundColor: string;
390
413
  scrollX: number;
391
414
  scrollY: number;
415
+ scrollConstraints: import("../types").ScrollConstraints | null;
392
416
  cursorButton: "up" | "down";
393
417
  scrolledOutside: boolean;
394
418
  name: string | null;
@@ -464,8 +488,6 @@ export declare const actionAddToLibrary: {
464
488
  y: number;
465
489
  } | null;
466
490
  objectsSnapModeEnabled: boolean;
467
- userToFollow: import("../types").UserToFollow | null;
468
- followedBy: Set<import("../types").SocketId>;
469
491
  isCropping: boolean;
470
492
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
471
493
  searchMatches: Readonly<{
@@ -477,6 +499,11 @@ export declare const actionAddToLibrary: {
477
499
  [groupId: string]: true;
478
500
  };
479
501
  bindMode: import("@excalidraw/element/types").BindMode;
502
+ colorTopPicks: {
503
+ elementStroke: readonly string[] | null;
504
+ elementBackground: readonly string[] | null;
505
+ bucketFill: readonly string[] | null;
506
+ };
480
507
  };
481
508
  };
482
509
  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").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").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").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").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").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").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;
@@ -1,4 +1,4 @@
1
- import type { ExcalidrawElement, ExcalidrawLinearElement } from "@excalidraw/element/types";
1
+ import type { ExcalidrawElement, ExcalidrawLinearElement, ExcalidrawTextElement } from "@excalidraw/element/types";
2
2
  import type { Mutable } from "@excalidraw/common/utility-types";
3
3
  import type { AppState } from "../types";
4
4
  export declare const actionUnbindText: {
@@ -46,13 +46,17 @@ export declare const actionBindText: {
46
46
  multiElement: import("@excalidraw/element/types").NonDeleted<ExcalidrawLinearElement> | null;
47
47
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
48
48
  isBindingEnabled: boolean;
49
+ boxSelectionMode: import("../types").BoxSelectionMode;
49
50
  bindingPreference: "enabled" | "disabled";
50
51
  isMidpointSnappingEnabled: boolean;
51
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
52
52
  suggestedBinding: {
53
53
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
54
54
  midPoint?: import("@excalidraw/math").GlobalPoint;
55
55
  } | null;
56
+ hoveredArrowTextAnchor: {
57
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
58
+ anchor: "start" | "end" | "label";
59
+ } | null;
56
60
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
57
61
  frameRendering: {
58
62
  enabled: boolean;
@@ -60,9 +64,9 @@ export declare const actionBindText: {
60
64
  outline: boolean;
61
65
  clip: boolean;
62
66
  };
63
- editingFrame: string | null;
64
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
65
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
67
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
68
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
69
+ editingTextElement: ExcalidrawTextElement | null;
66
70
  activeTool: {
67
71
  lastActiveTool: import("../types").ActiveTool | null;
68
72
  locked: boolean;
@@ -81,9 +85,10 @@ export declare const actionBindText: {
81
85
  currentItemStrokeColor: string;
82
86
  currentItemBackgroundColor: string;
83
87
  currentItemFillStyle: ExcalidrawElement["fillStyle"];
84
- currentItemStrokeWidth: number;
88
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
85
89
  currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
86
90
  currentItemRoughness: number;
91
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
87
92
  currentItemOpacity: number;
88
93
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
89
94
  currentItemFontSize: number;
@@ -96,6 +101,7 @@ export declare const actionBindText: {
96
101
  viewBackgroundColor: string;
97
102
  scrollX: number;
98
103
  scrollY: number;
104
+ scrollConstraints: import("../types").ScrollConstraints | null;
99
105
  cursorButton: "up" | "down";
100
106
  scrolledOutside: boolean;
101
107
  name: string | null;
@@ -168,8 +174,6 @@ export declare const actionBindText: {
168
174
  y: number;
169
175
  } | null;
170
176
  objectsSnapModeEnabled: boolean;
171
- userToFollow: import("../types").UserToFollow | null;
172
- followedBy: Set<import("../types").SocketId>;
173
177
  isCropping: boolean;
174
178
  croppingElementId: ExcalidrawElement["id"] | null;
175
179
  searchMatches: Readonly<{
@@ -181,6 +185,11 @@ export declare const actionBindText: {
181
185
  [groupId: string]: true;
182
186
  };
183
187
  bindMode: import("@excalidraw/element/types").BindMode;
188
+ colorTopPicks: {
189
+ elementStroke: readonly string[] | null;
190
+ elementBackground: readonly string[] | null;
191
+ bucketFill: readonly string[] | null;
192
+ };
184
193
  };
185
194
  captureUpdate: "IMMEDIATELY";
186
195
  };
@@ -217,13 +226,17 @@ export declare const actionWrapTextInContainer: {
217
226
  multiElement: import("@excalidraw/element/types").NonDeleted<ExcalidrawLinearElement> | null;
218
227
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
219
228
  isBindingEnabled: boolean;
229
+ boxSelectionMode: import("../types").BoxSelectionMode;
220
230
  bindingPreference: "enabled" | "disabled";
221
231
  isMidpointSnappingEnabled: boolean;
222
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
223
232
  suggestedBinding: {
224
233
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
225
234
  midPoint?: import("@excalidraw/math").GlobalPoint;
226
235
  } | null;
236
+ hoveredArrowTextAnchor: {
237
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
238
+ anchor: "start" | "end" | "label";
239
+ } | null;
227
240
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
228
241
  frameRendering: {
229
242
  enabled: boolean;
@@ -231,9 +244,9 @@ export declare const actionWrapTextInContainer: {
231
244
  outline: boolean;
232
245
  clip: boolean;
233
246
  };
234
- editingFrame: string | null;
235
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
236
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
247
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
248
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
249
+ editingTextElement: ExcalidrawTextElement | null;
237
250
  activeTool: {
238
251
  lastActiveTool: import("../types").ActiveTool | null;
239
252
  locked: boolean;
@@ -252,9 +265,10 @@ export declare const actionWrapTextInContainer: {
252
265
  currentItemStrokeColor: string;
253
266
  currentItemBackgroundColor: string;
254
267
  currentItemFillStyle: ExcalidrawElement["fillStyle"];
255
- currentItemStrokeWidth: number;
268
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
256
269
  currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
257
270
  currentItemRoughness: number;
271
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
258
272
  currentItemOpacity: number;
259
273
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
260
274
  currentItemFontSize: number;
@@ -267,6 +281,7 @@ export declare const actionWrapTextInContainer: {
267
281
  viewBackgroundColor: string;
268
282
  scrollX: number;
269
283
  scrollY: number;
284
+ scrollConstraints: import("../types").ScrollConstraints | null;
270
285
  cursorButton: "up" | "down";
271
286
  scrolledOutside: boolean;
272
287
  name: string | null;
@@ -339,8 +354,6 @@ export declare const actionWrapTextInContainer: {
339
354
  y: number;
340
355
  } | null;
341
356
  objectsSnapModeEnabled: boolean;
342
- userToFollow: import("../types").UserToFollow | null;
343
- followedBy: Set<import("../types").SocketId>;
344
357
  isCropping: boolean;
345
358
  croppingElementId: ExcalidrawElement["id"] | null;
346
359
  searchMatches: Readonly<{
@@ -352,6 +365,11 @@ export declare const actionWrapTextInContainer: {
352
365
  [groupId: string]: true;
353
366
  };
354
367
  bindMode: import("@excalidraw/element/types").BindMode;
368
+ colorTopPicks: {
369
+ elementStroke: readonly string[] | null;
370
+ elementBackground: readonly string[] | null;
371
+ bucketFill: readonly string[] | null;
372
+ };
355
373
  };
356
374
  captureUpdate: "IMMEDIATELY";
357
375
  };