@dwelle/excalidraw 0.5.0-8cb033d → 0.5.0-90f2d4e

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 (141) hide show
  1. package/dist/dev/{chunk-C6WW3IWU.js → chunk-BIYCCCC4.js} +14 -4
  2. package/dist/dev/chunk-BIYCCCC4.js.map +7 -0
  3. package/dist/dev/chunk-QW2KPMGE.js +7 -0
  4. package/dist/dev/chunk-QW2KPMGE.js.map +7 -0
  5. package/dist/dev/{chunk-2LNRWI74.js → chunk-VPDGV5DO.js} +9679 -8756
  6. package/dist/dev/chunk-VPDGV5DO.js.map +7 -0
  7. package/dist/dev/data/{image-7QZI7GM4.js → image-RC4Z3PZK.js} +3 -3
  8. package/dist/dev/index.css +695 -506
  9. package/dist/dev/index.css.map +3 -3
  10. package/dist/dev/index.js +4223 -2821
  11. package/dist/dev/index.js.map +4 -4
  12. package/dist/dev/locales/{en-VFJV7E2V.js → en-XLJO5VTH.js} +2 -2
  13. package/dist/dev/subset-shared.chunk.js +1 -1
  14. package/dist/dev/subset-worker.chunk.js +1 -1
  15. package/dist/prod/chunk-DUG5AXRR.js +33 -0
  16. package/dist/prod/chunk-M2OFWNPH.js +7 -0
  17. package/dist/prod/{chunk-O65DDAOS.js → chunk-SPUFWQ3U.js} +4 -4
  18. package/dist/prod/data/image-W7J67QSB.js +1 -0
  19. package/dist/prod/index.css +1 -1
  20. package/dist/prod/index.js +20 -20
  21. package/dist/prod/locales/{en-UUHXMMMY.js → en-DMU2KFKH.js} +1 -1
  22. package/dist/prod/subset-shared.chunk.js +1 -1
  23. package/dist/prod/subset-worker.chunk.js +1 -1
  24. package/dist/types/common/src/constants.d.ts +38 -6
  25. package/dist/types/common/src/utils.d.ts +6 -5
  26. package/dist/types/element/src/Scene.d.ts +7 -3
  27. package/dist/types/element/src/align.d.ts +2 -1
  28. package/dist/types/element/src/binding.d.ts +10 -7
  29. package/dist/types/element/src/bounds.d.ts +12 -4
  30. package/dist/types/element/src/collision.d.ts +18 -12
  31. package/dist/types/element/src/cropElement.d.ts +1 -1
  32. package/dist/types/element/src/delta.d.ts +41 -9
  33. package/dist/types/element/src/distance.d.ts +2 -2
  34. package/dist/types/element/src/distribute.d.ts +2 -1
  35. package/dist/types/element/src/fractionalIndex.d.ts +8 -2
  36. package/dist/types/element/src/frame.d.ts +2 -2
  37. package/dist/types/element/src/groups.d.ts +1 -0
  38. package/dist/types/element/src/index.d.ts +2 -3
  39. package/dist/types/element/src/linearElementEditor.d.ts +13 -15
  40. package/dist/types/element/src/mutateElement.d.ts +1 -1
  41. package/dist/types/element/src/newElement.d.ts +2 -1
  42. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  43. package/dist/types/element/src/renderElement.d.ts +4 -1
  44. package/dist/types/element/src/resizeElements.d.ts +1 -0
  45. package/dist/types/element/src/selection.d.ts +1 -1
  46. package/dist/types/element/src/shape.d.ts +42 -0
  47. package/dist/types/element/src/sizeHelpers.d.ts +2 -1
  48. package/dist/types/element/src/store.d.ts +19 -9
  49. package/dist/types/element/src/textElement.d.ts +1 -1
  50. package/dist/types/element/src/transformHandles.d.ts +4 -4
  51. package/dist/types/element/src/typeChecks.d.ts +15 -1
  52. package/dist/types/element/src/types.d.ts +8 -3
  53. package/dist/types/element/src/utils.d.ts +16 -6
  54. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +15 -18
  55. package/dist/types/excalidraw/actions/actionAlign.d.ts +8 -8
  56. package/dist/types/excalidraw/actions/actionBoundText.d.ts +10 -12
  57. package/dist/types/excalidraw/actions/actionCanvas.d.ts +158 -170
  58. package/dist/types/excalidraw/actions/actionClipboard.d.ts +38 -42
  59. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +5 -6
  60. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +21 -23
  61. package/dist/types/excalidraw/actions/actionDistribute.d.ts +4 -4
  62. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -2
  63. package/dist/types/excalidraw/actions/actionElementLink.d.ts +4 -5
  64. package/dist/types/excalidraw/actions/actionElementLock.d.ts +12 -14
  65. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +5 -6
  66. package/dist/types/excalidraw/actions/actionExport.d.ts +130 -139
  67. package/dist/types/excalidraw/actions/actionFinalize.d.ts +61 -22
  68. package/dist/types/excalidraw/actions/actionFlip.d.ts +4 -4
  69. package/dist/types/excalidraw/actions/actionFrame.d.ts +70 -74
  70. package/dist/types/excalidraw/actions/actionGroup.d.ts +16 -18
  71. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +532 -9
  72. package/dist/types/excalidraw/actions/actionLink.d.ts +6 -7
  73. package/dist/types/excalidraw/actions/actionMenu.d.ts +16 -19
  74. package/dist/types/excalidraw/actions/actionNavigate.d.ts +10 -12
  75. package/dist/types/excalidraw/actions/actionProperties.d.ts +107 -105
  76. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +8 -9
  77. package/dist/types/excalidraw/actions/actionStyles.d.ts +9 -10
  78. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +7 -8
  79. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +7 -8
  80. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +6 -7
  81. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +7 -8
  82. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +7 -8
  83. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +7 -8
  84. package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -8
  85. package/dist/types/excalidraw/actions/index.d.ts +1 -1
  86. package/dist/types/excalidraw/actions/types.d.ts +2 -1
  87. package/dist/types/excalidraw/appState.d.ts +21 -20
  88. package/dist/types/excalidraw/clipboard.d.ts +64 -1
  89. package/dist/types/excalidraw/components/Actions.d.ts +8 -5
  90. package/dist/types/excalidraw/components/App.d.ts +21 -27
  91. package/dist/types/excalidraw/components/ButtonIcon.d.ts +1 -0
  92. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +2 -1
  93. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
  94. package/dist/types/excalidraw/components/Ellipsify.d.ts +4 -0
  95. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  96. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +2 -1
  97. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  98. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
  99. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -0
  100. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +11 -1
  101. package/dist/types/excalidraw/components/TextField.d.ts +1 -0
  102. package/dist/types/excalidraw/components/icons.d.ts +7 -0
  103. package/dist/types/excalidraw/components/shapes.d.ts +129 -1
  104. package/dist/types/excalidraw/data/blob.d.ts +4 -8
  105. package/dist/types/excalidraw/data/reconcile.d.ts +1 -0
  106. package/dist/types/excalidraw/data/restore.d.ts +6 -1
  107. package/dist/types/excalidraw/data/types.d.ts +4 -1
  108. package/dist/types/excalidraw/eraser/index.d.ts +0 -2
  109. package/dist/types/excalidraw/history.d.ts +21 -5
  110. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  111. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  112. package/dist/types/excalidraw/index.d.ts +2 -1
  113. package/dist/types/excalidraw/lasso/utils.d.ts +2 -1
  114. package/dist/types/excalidraw/renderer/helpers.d.ts +4 -4
  115. package/dist/types/excalidraw/renderer/staticScene.d.ts +4 -1
  116. package/dist/types/excalidraw/scene/Renderer.d.ts +0 -1
  117. package/dist/types/excalidraw/types.d.ts +12 -9
  118. package/dist/types/math/src/angle.d.ts +2 -0
  119. package/dist/types/math/src/constants.d.ts +3 -0
  120. package/dist/types/math/src/curve.d.ts +32 -0
  121. package/dist/types/math/src/index.d.ts +1 -0
  122. package/dist/types/math/src/point.d.ts +1 -1
  123. package/dist/types/math/src/rectangle.d.ts +2 -0
  124. package/dist/types/math/src/segment.d.ts +1 -0
  125. package/dist/types/math/src/vector.d.ts +4 -2
  126. package/history.ts +107 -44
  127. package/package.json +9 -9
  128. package/dist/dev/chunk-2LNRWI74.js.map +0 -7
  129. package/dist/dev/chunk-C6WW3IWU.js.map +0 -7
  130. package/dist/dev/chunk-NR24AOHB.js +0 -7
  131. package/dist/dev/chunk-NR24AOHB.js.map +0 -7
  132. package/dist/prod/chunk-JUZ2P6ZK.js +0 -33
  133. package/dist/prod/chunk-ZSOIT5RG.js +0 -7
  134. package/dist/prod/data/image-RPTD4VCP.js +0 -1
  135. package/dist/types/element/src/Shape.d.ts +0 -17
  136. package/dist/types/element/src/ShapeCache.d.ts +0 -25
  137. package/dist/types/element/src/shapes.d.ts +0 -23
  138. package/dist/types/excalidraw/visualdebug.d.ts +0 -41
  139. package/dist/types/utils/src/collision.d.ts +0 -8
  140. /package/dist/dev/data/{image-7QZI7GM4.js.map → image-RC4Z3PZK.js.map} +0 -0
  141. /package/dist/dev/locales/{en-VFJV7E2V.js.map → en-XLJO5VTH.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
3
- import type { Store } from "@excalidraw/element";
3
+ import { type Store } from "@excalidraw/element";
4
4
  import type { AppState, PointerCoords, InteractiveCanvasAppState, AppClassProperties, NullableGridSize, Zoom } from "@excalidraw/excalidraw/types";
5
5
  import type { Scene } from "./Scene";
6
6
  import type { Bounds } from "./bounds";
@@ -38,7 +38,9 @@ export declare class LinearElementEditor {
38
38
  readonly hoverPointIndex: number;
39
39
  readonly segmentMidPointHoveredCoords: GlobalPoint | null;
40
40
  readonly elbowed: boolean;
41
- constructor(element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap);
41
+ readonly customLineAngle: number | null;
42
+ readonly isEditing: boolean;
43
+ constructor(element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap, isEditing?: boolean);
42
44
  static POINT_HANDLE_SIZE: number;
43
45
  /**
44
46
  * @param id the `elementId` from the instance of this class (so that we can
@@ -49,10 +51,7 @@ export declare class LinearElementEditor {
49
51
  /**
50
52
  * @returns whether point was dragged
51
53
  */
52
- static handlePointDragging(event: PointerEvent, app: AppClassProperties, scenePointerX: number, scenePointerY: number, maybeSuggestBinding: (element: NonDeleted<ExcalidrawLinearElement>, pointSceneCoords: {
53
- x: number;
54
- y: number;
55
- }[]) => void, linearElementEditor: LinearElementEditor, scene: Scene): LinearElementEditor | null;
54
+ static handlePointDragging(event: PointerEvent, app: AppClassProperties, scenePointerX: number, scenePointerY: number, linearElementEditor: LinearElementEditor): Pick<AppState, keyof AppState> | null;
56
55
  static handlePointerUp(event: PointerEvent, editingLinearElement: LinearElementEditor, appState: AppState, scene: Scene): LinearElementEditor;
57
56
  static getEditorMidPoints: (element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap, appState: InteractiveCanvasAppState) => (GlobalPoint | null)[];
58
57
  static getSegmentMidpointHitCoords: (linearElementEditor: LinearElementEditor, scenePointer: {
@@ -60,7 +59,7 @@ export declare class LinearElementEditor {
60
59
  y: number;
61
60
  }, appState: AppState, elementsMap: ElementsMap) => GlobalPoint | null;
62
61
  static isSegmentTooShort<P extends GlobalPoint | LocalPoint>(element: NonDeleted<ExcalidrawLinearElement>, startPoint: P, endPoint: P, index: number, zoom: Zoom): boolean;
63
- static getSegmentMidPoint(element: NonDeleted<ExcalidrawLinearElement>, startPoint: GlobalPoint, endPoint: GlobalPoint, endPointIndex: number, elementsMap: ElementsMap): GlobalPoint;
62
+ static getSegmentMidPoint(element: NonDeleted<ExcalidrawLinearElement>, index: number): GlobalPoint;
64
63
  static getSegmentMidPointIndex(linearElementEditor: LinearElementEditor, appState: AppState, midPoint: GlobalPoint, elementsMap: ElementsMap): number;
65
64
  static handlePointerDown(event: React.PointerEvent<HTMLElement>, app: AppClassProperties, store: Store, scenePointer: {
66
65
  x: number;
@@ -83,20 +82,19 @@ export declare class LinearElementEditor {
83
82
  static createPointAt(element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap, scenePointerX: number, scenePointerY: number, gridSize: NullableGridSize): LocalPoint;
84
83
  /**
85
84
  * Normalizes line points so that the start point is at [0,0]. This is
86
- * expected in various parts of the codebase. Also returns new x/y to account
87
- * for the potential normalization.
85
+ * expected in various parts of the codebase.
86
+ *
87
+ * Also returns normalized x and y coords to account for the normalization
88
+ * of the points.
88
89
  */
89
- static getNormalizedPoints(element: ExcalidrawLinearElement): {
90
+ static getNormalizeElementPointsAndCoords(element: ExcalidrawLinearElement): {
90
91
  points: LocalPoint[];
91
92
  x: number;
92
93
  y: number;
93
94
  };
94
- static normalizePoints(element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap): void;
95
95
  static duplicateSelectedPoints(appState: AppState, scene: Scene): AppState;
96
- static deletePoints(element: NonDeleted<ExcalidrawLinearElement>, scene: Scene, pointIndices: readonly number[]): void;
97
- static addPoints(element: NonDeleted<ExcalidrawLinearElement>, scene: Scene, targetPoints: {
98
- point: LocalPoint;
99
- }[]): void;
96
+ static deletePoints(element: NonDeleted<ExcalidrawLinearElement>, app: AppClassProperties, pointIndices: readonly number[]): void;
97
+ static addPoints(element: NonDeleted<ExcalidrawLinearElement>, scene: Scene, addedPoints: LocalPoint[]): void;
100
98
  static movePoints(element: NonDeleted<ExcalidrawLinearElement>, scene: Scene, pointUpdates: PointsPositionUpdates, otherUpdates?: {
101
99
  startBinding?: PointBinding | null;
102
100
  endBinding?: PointBinding | null;
@@ -1,6 +1,6 @@
1
1
  import type { Mutable } from "@excalidraw/common/utility-types";
2
2
  import type { ElementsMap, ExcalidrawElement } from "./types";
3
- export type ElementUpdate<TElement extends ExcalidrawElement> = Omit<Partial<TElement>, "id" | "version" | "versionNonce" | "updated">;
3
+ export type ElementUpdate<TElement extends ExcalidrawElement> = Omit<Partial<TElement>, "id" | "updated">;
4
4
  /**
5
5
  * This function tracks updates of text elements for the purposes for collaboration.
6
6
  * The version is used to compare updates when more than one user is working in
@@ -1,5 +1,5 @@
1
1
  import type { MarkOptional } from "@excalidraw/common/utility-types";
2
- import type { ExcalidrawImageElement, ExcalidrawTextElement, ExcalidrawLinearElement, ExcalidrawGenericElement, NonDeleted, TextAlign, VerticalAlign, Arrowhead, ExcalidrawFreeDrawElement, FontFamilyValues, ExcalidrawTextContainer, ExcalidrawFrameElement, ExcalidrawEmbeddableElement, ExcalidrawMagicFrameElement, ExcalidrawIframeElement, ElementsMap, ExcalidrawArrowElement, ExcalidrawElbowArrowElement } from "./types";
2
+ import type { ExcalidrawImageElement, ExcalidrawTextElement, ExcalidrawLinearElement, ExcalidrawGenericElement, NonDeleted, TextAlign, VerticalAlign, Arrowhead, ExcalidrawFreeDrawElement, FontFamilyValues, ExcalidrawTextContainer, ExcalidrawFrameElement, ExcalidrawEmbeddableElement, ExcalidrawMagicFrameElement, ExcalidrawIframeElement, ElementsMap, ExcalidrawArrowElement, ExcalidrawElbowArrowElement, ExcalidrawLineElement } from "./types";
3
3
  export type ElementConstructorOpts = MarkOptional<Omit<ExcalidrawGenericElement, "id" | "type" | "isDeleted" | "updated">, "width" | "height" | "angle" | "groupIds" | "frameId" | "index" | "boundElements" | "seed" | "version" | "versionNonce" | "link" | "strokeStyle" | "fillStyle" | "strokeColor" | "backgroundColor" | "roughness" | "strokeWidth" | "roundness" | "locked" | "opacity" | "customData">;
4
4
  export declare const newElement: (opts: {
5
5
  type: ExcalidrawGenericElement["type"];
@@ -43,6 +43,7 @@ export declare const newFreeDrawElement: (opts: {
43
43
  export declare const newLinearElement: (opts: {
44
44
  type: ExcalidrawLinearElement["type"];
45
45
  points?: ExcalidrawLinearElement["points"];
46
+ polygon?: ExcalidrawLineElement["polygon"];
46
47
  } & ElementConstructorOpts) => NonDeleted<ExcalidrawLinearElement>;
47
48
  export declare const newArrowElement: <T extends boolean>(opts: {
48
49
  type: ExcalidrawArrowElement["type"];
@@ -0,0 +1,2 @@
1
+ import type { ExcalidrawElement } from "./types";
2
+ export declare const positionElementsOnGrid: <TElement extends ExcalidrawElement>(elements: TElement[] | TElement[][], centerX: number, centerY: number, padding?: number) => TElement[];
@@ -1,6 +1,7 @@
1
+ import { type GlobalPoint } from "@excalidraw/math";
1
2
  import type { AppState, StaticCanvasAppState, InteractiveCanvasAppState, ElementsPendingErasure, PendingExcalidrawElements } from "@excalidraw/excalidraw/types";
2
3
  import type { StaticCanvasRenderConfig, RenderableElementsMap, InteractiveCanvasRenderConfig } from "@excalidraw/excalidraw/scene/types";
3
- import type { ExcalidrawElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawImageElement, ExcalidrawFrameLikeElement, NonDeletedSceneElementsMap } from "./types";
4
+ import type { ExcalidrawElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawImageElement, ExcalidrawFrameLikeElement, NonDeletedSceneElementsMap, ElementsMap } from "./types";
4
5
  import type { RoughCanvas } from "roughjs/bin/canvas";
5
6
  export declare const IMAGE_INVERT_FILTER = "invert(100%) hue-rotate(180deg) saturate(1.25)";
6
7
  export declare const getRenderOpacity: (element: ExcalidrawElement, containingFrame: ExcalidrawFrameLikeElement | null, elementsPendingErasure: ElementsPendingErasure, pendingNodes: Readonly<PendingExcalidrawElements> | null, globalAlpha?: number) => number;
@@ -27,3 +28,5 @@ export declare let pathsCache: WeakMap<ExcalidrawFreeDrawElement, Path2D>;
27
28
  export declare function generateFreeDrawShape(element: ExcalidrawFreeDrawElement): Path2D;
28
29
  export declare function getFreeDrawPath2D(element: ExcalidrawFreeDrawElement): Path2D | undefined;
29
30
  export declare function getFreeDrawSvgPath(element: ExcalidrawFreeDrawElement): string;
31
+ export declare function getFreedrawOutlineAsSegments(element: ExcalidrawFreeDrawElement, points: [number, number][], elementsMap: ElementsMap): import("@excalidraw/math").LineSegment<GlobalPoint>[];
32
+ export declare function getFreedrawOutlinePoints(element: ExcalidrawFreeDrawElement): [number, number][];
@@ -13,6 +13,7 @@ export declare const rescalePointsInElement: (element: NonDeletedExcalidrawEleme
13
13
  export declare const measureFontSizeFromWidth: (element: NonDeleted<ExcalidrawTextElement>, elementsMap: ElementsMap, nextWidth: number) => {
14
14
  size: number;
15
15
  } | null;
16
+ export declare const resizeSingleTextElement: (origElement: NonDeleted<ExcalidrawTextElement>, element: NonDeleted<ExcalidrawTextElement>, scene: Scene, transformHandleType: TransformHandleDirection, shouldResizeFromCenter: boolean, nextWidth: number, nextHeight: number) => void;
16
17
  export declare const getResizeOffsetXY: (transformHandleType: MaybeTransformHandleType, selectedElements: NonDeletedExcalidrawElement[], elementsMap: ElementsMap, x: number, y: number) => [number, number];
17
18
  export declare const getResizeArrowDirection: (transformHandleType: MaybeTransformHandleType, element: NonDeleted<ExcalidrawLinearElement>) => "origin" | "end";
18
19
  export declare const resizeSingleElement: (nextWidth: number, nextHeight: number, latestElement: ExcalidrawElement, origElement: ExcalidrawElement, originalElementsMap: ElementsMap, scene: Scene, handleDirection: TransformHandleDirection, { shouldInformMutation, shouldMaintainAspectRatio, shouldResizeFromCenter, }?: {
@@ -27,12 +27,12 @@ export declare const makeNextSelectedElementIds: (nextSelectedElementIds: AppSta
27
27
  [id: string]: true;
28
28
  }>;
29
29
  export declare const getSelectionStateForElements: (targetElements: readonly ExcalidrawElement[], allElements: readonly NonDeletedExcalidrawElement[], appState: AppState) => {
30
+ editingGroupId: string | null;
30
31
  selectedElementIds: Readonly<{
31
32
  [id: string]: true;
32
33
  }>;
33
34
  selectedGroupIds: {
34
35
  [groupId: string]: boolean;
35
36
  };
36
- editingGroupId: string | null;
37
37
  selectedLinearElement: LinearElementEditor | null;
38
38
  };
@@ -0,0 +1,42 @@
1
+ import { type GeometricShape } from "@excalidraw/utils/shape";
2
+ import { type LocalPoint } from "@excalidraw/math";
3
+ import type { GlobalPoint } from "@excalidraw/math";
4
+ import type { EmbedsValidationStatus } from "@excalidraw/excalidraw/types";
5
+ import type { ElementShape, ElementShapes, StaticCanvasRenderConfig } from "@excalidraw/excalidraw/scene/types";
6
+ import type { ExcalidrawElement, ExcalidrawLinearElement, ExcalidrawFreeDrawElement, ElementsMap, ExcalidrawLineElement } from "./types";
7
+ import type { Drawable, Options } from "roughjs/bin/core";
8
+ export declare class ShapeCache {
9
+ private static rg;
10
+ private static cache;
11
+ /**
12
+ * Retrieves shape from cache if available. Use this only if shape
13
+ * is optional and you have a fallback in case it's not cached.
14
+ */
15
+ static get: <T extends ExcalidrawElement>(element: T) => T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] | undefined : ElementShape | undefined;
16
+ static set: <T extends ExcalidrawElement>(element: T, shape: T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] : Drawable) => WeakMap<ExcalidrawElement, ElementShape>;
17
+ static delete: (element: ExcalidrawElement) => boolean;
18
+ static destroy: () => void;
19
+ /**
20
+ * Generates & caches shape for element if not already cached, otherwise
21
+ * returns cached shape.
22
+ */
23
+ static generateElementShape: <T extends ExcalidrawLinearElement | import("./types").ExcalidrawRectangleElement | import("./types").ExcalidrawDiamondElement | import("./types").ExcalidrawEllipseElement | import("./types").ExcalidrawEmbeddableElement | import("./types").ExcalidrawIframeElement | import("./types").ExcalidrawImageElement | import("./types").ExcalidrawFrameElement | import("./types").ExcalidrawMagicFrameElement | import("./types").ExcalidrawTextElement | ExcalidrawFreeDrawElement | import("./types").ExcalidrawArrowElement>(element: T, renderConfig: {
24
+ isExporting: boolean;
25
+ canvasBackgroundColor: StaticCanvasRenderConfig["canvasBackgroundColor"];
26
+ embedsValidationStatus: EmbedsValidationStatus;
27
+ } | null) => ((T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] | undefined : ElementShape | undefined) & ({} | null)) | (T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] : Drawable | null);
28
+ }
29
+ export declare const generateRoughOptions: (element: ExcalidrawElement, continuousPath?: boolean) => Options;
30
+ export declare const generateLinearCollisionShape: (element: ExcalidrawLinearElement | ExcalidrawFreeDrawElement) => {
31
+ op: string;
32
+ data: number[];
33
+ }[];
34
+ /**
35
+ * get the pure geometric shape of an excalidraw elementw
36
+ * which is then used for hit detection
37
+ */
38
+ export declare const getElementShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap) => GeometricShape<Point>;
39
+ export declare const toggleLinePolygonState: (element: ExcalidrawLineElement, nextPolygonState: boolean) => {
40
+ polygon: ExcalidrawLineElement["polygon"];
41
+ points: ExcalidrawLineElement["points"];
42
+ } | null;
@@ -1,5 +1,6 @@
1
1
  import type { AppState, Offsets, Zoom } from "@excalidraw/excalidraw/types";
2
2
  import type { ElementsMap, ExcalidrawElement } from "./types";
3
+ export declare const INVISIBLY_SMALL_ELEMENT_SIZE = 0.1;
3
4
  export declare const isInvisiblySmallElement: (element: ExcalidrawElement) => boolean;
4
5
  export declare const isElementInViewport: (element: ExcalidrawElement, width: number, height: number, viewTransformations: {
5
6
  zoom: Zoom;
@@ -22,7 +23,7 @@ export declare const getPerfectElementSize: (elementType: AppState["activeTool"]
22
23
  width: number;
23
24
  height: number;
24
25
  };
25
- export declare const getLockedLinearCursorAlignSize: (originX: number, originY: number, x: number, y: number) => {
26
+ export declare const getLockedLinearCursorAlignSize: (originX: number, originY: number, x: number, y: number, customAngle?: number) => {
26
27
  width: number;
27
28
  height: number;
28
29
  };
@@ -3,7 +3,8 @@ import type App from "@excalidraw/excalidraw/components/App";
3
3
  import type { DTO, ValueOf } from "@excalidraw/common/utility-types";
4
4
  import type { AppState, ObservedAppState } from "@excalidraw/excalidraw/types";
5
5
  import { ElementsDelta, AppStateDelta } from "./delta";
6
- import type { OrderedExcalidrawElement, SceneElementsMap } from "./types";
6
+ import type { ApplyToOptions } from "./delta";
7
+ import type { ExcalidrawElement, OrderedExcalidrawElement, SceneElementsMap } from "./types";
7
8
  export declare const CaptureUpdateAction: {
8
9
  /**
9
10
  * Immediately undoable.
@@ -60,7 +61,7 @@ export declare class Store {
60
61
  */
61
62
  scheduleMicroAction(params: {
62
63
  action: CaptureUpdateActionType;
63
- elements: SceneElementsMap | undefined;
64
+ elements: readonly ExcalidrawElement[] | undefined;
64
65
  appState: AppState | ObservedAppState | undefined;
65
66
  } | {
66
67
  action: typeof CaptureUpdateAction.IMMEDIATELY;
@@ -157,6 +158,10 @@ export declare class StoreDelta {
157
158
  static create(elements: ElementsDelta, appState: AppStateDelta, opts?: {
158
159
  id: string;
159
160
  }): StoreDelta;
161
+ /**
162
+ * Calculate the delta between the previous and next snapshot.
163
+ */
164
+ static calculate(prevSnapshot: StoreSnapshot, nextSnapshot: StoreSnapshot): StoreDelta;
160
165
  /**
161
166
  * Restore a store delta instance from a DTO.
162
167
  */
@@ -164,19 +169,24 @@ export declare class StoreDelta {
164
169
  /**
165
170
  * Parse and load the delta from the remote payload.
166
171
  */
167
- static load({ id, elements: { added, removed, updated }, }: DTO<StoreDelta>): StoreDelta;
172
+ static load({ id, elements: { added, removed, updated }, appState: { delta: appStateDelta }, }: DTO<StoreDelta>): StoreDelta;
173
+ /**
174
+ * Squash the passed deltas into the aggregated delta instance.
175
+ */
176
+ static squash(...deltas: StoreDelta[]): StoreDelta;
168
177
  /**
169
178
  * Inverse store delta, creates new instance of `StoreDelta`.
170
179
  */
171
180
  static inverse(delta: StoreDelta): StoreDelta;
172
181
  /**
173
- * Apply latest (remote) changes to the delta, creates new instance of `StoreDelta`.
182
+ * Apply the delta to the passed elements and appState, does not modify the snapshot.
174
183
  */
175
- static applyLatestChanges(delta: StoreDelta, elements: SceneElementsMap, modifierOptions: "deleted" | "inserted"): StoreDelta;
184
+ static applyTo(delta: StoreDelta, elements: SceneElementsMap, appState: AppState, options?: ApplyToOptions): [SceneElementsMap, AppState, boolean];
176
185
  /**
177
- * Apply the delta to the passed elements and appState, does not modify the snapshot.
186
+ * Apply latest (remote) changes to the delta, creates new instance of `StoreDelta`.
178
187
  */
179
- static applyTo(delta: StoreDelta, elements: SceneElementsMap, appState: AppState, prevSnapshot?: StoreSnapshot): [SceneElementsMap, AppState, boolean];
188
+ static applyLatestChanges(delta: StoreDelta, prevElements: SceneElementsMap, nextElements: SceneElementsMap, modifierOptions?: "deleted" | "inserted"): StoreDelta;
189
+ static empty(): StoreDelta;
180
190
  isEmpty(): boolean;
181
191
  }
182
192
  /**
@@ -216,7 +226,7 @@ export declare class StoreSnapshot {
216
226
  private maybeCreateElementsSnapshot;
217
227
  private detectChangedAppState;
218
228
  /**
219
- * Detect if there any changed elements.
229
+ * Detect if there are any changed elements.
220
230
  */
221
231
  private detectChangedElements;
222
232
  /**
@@ -224,4 +234,4 @@ export declare class StoreSnapshot {
224
234
  */
225
235
  private createElementsSnapshot;
226
236
  }
227
- export declare const getObservedAppState: (appState: AppState) => ObservedAppState;
237
+ export declare const getObservedAppState: (appState: AppState | ObservedAppState) => ObservedAppState;
@@ -1,6 +1,6 @@
1
+ import { type Radians } from "@excalidraw/math";
1
2
  import type { AppState } from "@excalidraw/excalidraw/types";
2
3
  import type { ExtractSetType } from "@excalidraw/common/utility-types";
3
- import type { Radians } from "@excalidraw/math";
4
4
  import type { Scene } from "./Scene";
5
5
  import type { MaybeTransformHandleType } from "./transformHandles";
6
6
  import type { ElementsMap, ExcalidrawElement, ExcalidrawElementType, ExcalidrawTextContainer, ExcalidrawTextElement, ExcalidrawTextElementWithContainer, NonDeletedExcalidrawElement } from "./types";
@@ -32,9 +32,9 @@ export declare const canResizeFromSides: (device: Device) => boolean;
32
32
  export declare const getOmitSidesForDevice: (device: Device) => {};
33
33
  export declare const getTransformHandlesFromCoords: ([x1, y1, x2, y2, cx, cy]: [number, number, number, number, number, number], angle: Radians, zoom: Zoom, pointerType: PointerType, omitSides?: {
34
34
  s?: boolean | undefined;
35
- e?: boolean | undefined;
36
- w?: boolean | undefined;
37
35
  n?: boolean | undefined;
36
+ w?: boolean | undefined;
37
+ e?: boolean | undefined;
38
38
  nw?: boolean | undefined;
39
39
  ne?: boolean | undefined;
40
40
  sw?: boolean | undefined;
@@ -43,9 +43,9 @@ export declare const getTransformHandlesFromCoords: ([x1, y1, x2, y2, cx, cy]: [
43
43
  }, margin?: number, spacing?: number) => TransformHandles;
44
44
  export declare const getTransformHandles: (element: ExcalidrawElement, zoom: Zoom, elementsMap: ElementsMap, pointerType?: PointerType, omitSides?: {
45
45
  s?: boolean | undefined;
46
- e?: boolean | undefined;
47
- w?: boolean | undefined;
48
46
  n?: boolean | undefined;
47
+ w?: boolean | undefined;
48
+ e?: boolean | undefined;
49
49
  nw?: boolean | undefined;
50
50
  ne?: boolean | undefined;
51
51
  sw?: boolean | undefined;
@@ -1,7 +1,7 @@
1
1
  import type { ElementOrToolType } from "@excalidraw/excalidraw/types";
2
2
  import type { MarkNonNullable } from "@excalidraw/common/utility-types";
3
3
  import type { Bounds } from "./bounds";
4
- import type { ExcalidrawElement, ExcalidrawTextElement, ExcalidrawEmbeddableElement, ExcalidrawLinearElement, ExcalidrawBindableElement, ExcalidrawFreeDrawElement, InitializedExcalidrawImageElement, ExcalidrawImageElement, ExcalidrawTextElementWithContainer, ExcalidrawTextContainer, ExcalidrawFrameElement, RoundnessType, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeElement, ExcalidrawIframeLikeElement, ExcalidrawMagicFrameElement, ExcalidrawArrowElement, ExcalidrawElbowArrowElement, PointBinding, FixedPointBinding, ExcalidrawFlowchartNodeElement, ExcalidrawLinearElementSubType } from "./types";
4
+ import type { ExcalidrawElement, ExcalidrawTextElement, ExcalidrawEmbeddableElement, ExcalidrawLinearElement, ExcalidrawBindableElement, ExcalidrawFreeDrawElement, InitializedExcalidrawImageElement, ExcalidrawImageElement, ExcalidrawTextElementWithContainer, ExcalidrawTextContainer, ExcalidrawFrameElement, RoundnessType, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeElement, ExcalidrawIframeLikeElement, ExcalidrawMagicFrameElement, ExcalidrawArrowElement, ExcalidrawElbowArrowElement, ExcalidrawLineElement, PointBinding, FixedPointBinding, ExcalidrawFlowchartNodeElement, ExcalidrawLinearElementSubType } from "./types";
5
5
  export declare const isInitializedImageElement: (element: ExcalidrawElement | null) => element is InitializedExcalidrawImageElement;
6
6
  export declare const isImageElement: (element: ExcalidrawElement | null) => element is ExcalidrawImageElement;
7
7
  export declare const isEmbeddableElement: (element: ExcalidrawElement | null | undefined) => element is ExcalidrawEmbeddableElement;
@@ -14,8 +14,13 @@ export declare const isFrameLikeElement: (element: ExcalidrawElement | null) =>
14
14
  export declare const isFreeDrawElement: (element?: ExcalidrawElement | null) => element is ExcalidrawFreeDrawElement;
15
15
  export declare const isFreeDrawElementType: (elementType: ExcalidrawElementType) => boolean;
16
16
  export declare const isLinearElement: (element?: ExcalidrawElement | null) => element is ExcalidrawLinearElement;
17
+ export declare const isLineElement: (element?: ExcalidrawElement | null) => element is ExcalidrawLineElement;
17
18
  export declare const isArrowElement: (element?: ExcalidrawElement | null) => element is ExcalidrawArrowElement;
18
19
  export declare const isElbowArrow: (element?: ExcalidrawElement) => element is ExcalidrawElbowArrowElement;
20
+ /**
21
+ * sharp or curved arrow, but not elbow
22
+ */
23
+ export declare const isSimpleArrow: (element?: ExcalidrawElement) => element is ExcalidrawArrowElement;
19
24
  export declare const isSharpArrow: (element?: ExcalidrawElement) => element is ExcalidrawArrowElement;
20
25
  export declare const isCurvedArrow: (element?: ExcalidrawElement) => element is ExcalidrawArrowElement;
21
26
  export declare const isLinearElementType: (elementType: ElementOrToolType) => boolean;
@@ -41,3 +46,12 @@ export declare const getDefaultRoundnessTypeForElement: (element: ExcalidrawElem
41
46
  export declare const isFixedPointBinding: (binding: PointBinding | FixedPointBinding) => binding is FixedPointBinding;
42
47
  export declare const isBounds: (box: unknown) => box is Bounds;
43
48
  export declare const getLinearElementSubType: (element: ExcalidrawLinearElement) => ExcalidrawLinearElementSubType;
49
+ /**
50
+ * Checks if current element points meet all the conditions for polygon=true
51
+ * (this isn't a element type check, for that use isLineElement).
52
+ *
53
+ * If you want to check if points *can* be turned into a polygon, use
54
+ * canBecomePolygon(points).
55
+ */
56
+ export declare const isValidPolygon: (points: ExcalidrawLineElement["points"]) => boolean;
57
+ export declare const canBecomePolygon: (points: ExcalidrawLineElement["points"]) => boolean;
@@ -151,7 +151,7 @@ export type ExcalidrawFrameLikeElement = ExcalidrawFrameElement | ExcalidrawMagi
151
151
  */
152
152
  export type ExcalidrawGenericElement = ExcalidrawSelectionElement | ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement;
153
153
  export type ExcalidrawFlowchartNodeElement = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement;
154
- export type ExcalidrawRectanguloidElement = ExcalidrawRectangleElement | ExcalidrawImageElement | ExcalidrawTextElement | ExcalidrawFreeDrawElement | ExcalidrawIframeLikeElement | ExcalidrawFrameLikeElement | ExcalidrawEmbeddableElement;
154
+ export type ExcalidrawRectanguloidElement = ExcalidrawRectangleElement | ExcalidrawImageElement | ExcalidrawTextElement | ExcalidrawFreeDrawElement | ExcalidrawIframeLikeElement | ExcalidrawFrameLikeElement | ExcalidrawEmbeddableElement | ExcalidrawSelectionElement;
155
155
  /**
156
156
  * ExcalidrawElement should be JSON serializable and (eventually) contain
157
157
  * no computed data. The list of all ExcalidrawElements should be shareable
@@ -205,7 +205,8 @@ export type PointBinding = {
205
205
  export type FixedPointBinding = Merge<PointBinding, {
206
206
  fixedPoint: FixedPoint;
207
207
  }>;
208
- export type PointsPositionUpdates = Map<number, {
208
+ type Index = number;
209
+ export type PointsPositionUpdates = Map<Index, {
209
210
  point: LocalPoint;
210
211
  isDragging?: boolean;
211
212
  }>;
@@ -219,10 +220,14 @@ export type ExcalidrawLinearElement = _ExcalidrawElementBase & Readonly<{
219
220
  startArrowhead: Arrowhead | null;
220
221
  endArrowhead: Arrowhead | null;
221
222
  }>;
223
+ export type ExcalidrawLineElement = ExcalidrawLinearElement & Readonly<{
224
+ type: "line";
225
+ polygon: boolean;
226
+ }>;
222
227
  export type FixedSegment = {
223
228
  start: LocalPoint;
224
229
  end: LocalPoint;
225
- index: number;
230
+ index: Index;
226
231
  };
227
232
  export type ExcalidrawArrowElement = ExcalidrawLinearElement & Readonly<{
228
233
  type: "arrow";
@@ -1,21 +1,31 @@
1
1
  import { type GlobalPoint } from "@excalidraw/math";
2
2
  import type { Curve, LineSegment } from "@excalidraw/math";
3
- import type { ExcalidrawDiamondElement, ExcalidrawRectanguloidElement } from "./types";
3
+ import type { Zoom } from "@excalidraw/excalidraw/types";
4
+ import type { ExcalidrawDiamondElement, ExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawLinearElement, ExcalidrawRectanguloidElement } from "./types";
5
+ /**
6
+ * Returns the **rotated** components of freedraw, line or arrow elements.
7
+ *
8
+ * @param element The linear element to deconstruct
9
+ * @returns The rotated in components.
10
+ */
11
+ export declare function deconstructLinearOrFreeDrawElement(element: ExcalidrawLinearElement | ExcalidrawFreeDrawElement): [LineSegment<GlobalPoint>[], Curve<GlobalPoint>[]];
4
12
  /**
5
13
  * Get the building components of a rectanguloid element in the form of
6
- * line segments and curves.
14
+ * line segments and curves **unrotated**.
7
15
  *
8
16
  * @param element Target rectanguloid element
9
17
  * @param offset Optional offset to expand the rectanguloid shape
10
- * @returns Tuple of line segments (0) and curves (1)
18
+ * @returns Tuple of **unrotated** line segments (0) and curves (1)
11
19
  */
12
20
  export declare function deconstructRectanguloidElement(element: ExcalidrawRectanguloidElement, offset?: number): [LineSegment<GlobalPoint>[], Curve<GlobalPoint>[]];
13
21
  /**
14
- * Get the building components of a diamond element in the form of
15
- * line segments and curves as a tuple, in this order.
22
+ * Get the **unrotated** building components of a diamond element
23
+ * in the form of line segments and curves as a tuple, in this order.
16
24
  *
17
25
  * @param element The element to deconstruct
18
26
  * @param offset An optional offset
19
- * @returns Tuple of line segments (0) and curves (1)
27
+ * @returns Tuple of line **unrotated** segments (0) and curves (1)
20
28
  */
21
29
  export declare function deconstructDiamondElement(element: ExcalidrawDiamondElement, offset?: number): [LineSegment<GlobalPoint>[], Curve<GlobalPoint>[]];
30
+ export declare const isPathALoop: (points: ExcalidrawLinearElement["points"], zoomValue?: Zoom["value"]) => boolean;
31
+ export declare const getCornerRadius: (x: number, element: ExcalidrawElement) => number;
@@ -20,7 +20,7 @@ export declare const actionAddToLibrary: {
20
20
  errorMessage: import("react").ReactNode;
21
21
  activeEmbeddable: {
22
22
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
23
- state: "hover" | "active";
23
+ state: "active" | "hover";
24
24
  } | null;
25
25
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
26
26
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -39,7 +39,6 @@ export declare const actionAddToLibrary: {
39
39
  editingFrame: string | null;
40
40
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
41
41
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
42
- editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
43
42
  activeTool: {
44
43
  lastActiveTool: import("../types").ActiveTool | null;
45
44
  locked: boolean;
@@ -78,7 +77,7 @@ export declare const actionAddToLibrary: {
78
77
  value: import("../types").NormalizedZoomValue;
79
78
  }>;
80
79
  openMenu: "canvas" | "shape" | null;
81
- openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
80
+ openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
82
81
  openSidebar: {
83
82
  name: string;
84
83
  tab?: string | undefined;
@@ -87,7 +86,7 @@ export declare const actionAddToLibrary: {
87
86
  name: "imageExport" | "help" | "jsonExport";
88
87
  } | {
89
88
  name: "ttd";
90
- tab: "text-to-diagram" | "mermaid";
89
+ tab: "mermaid" | "text-to-diagram";
91
90
  } | {
92
91
  name: "commandPalette";
93
92
  } | {
@@ -154,8 +153,7 @@ export declare const actionAddToLibrary: {
154
153
  shown: true;
155
154
  data: import("../charts").Spreadsheet;
156
155
  };
157
- pendingImageElementId: string | null;
158
- showHyperlinkPopup: false | "info" | "editor";
156
+ showHyperlinkPopup: false | "editor" | "info";
159
157
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
160
158
  snapLines: readonly import("../snapping").SnapLine[];
161
159
  originSnapOffset: {
@@ -175,6 +173,7 @@ export declare const actionAddToLibrary: {
175
173
  lockedMultiSelections: {
176
174
  [groupId: string]: true;
177
175
  };
176
+ stylesPanelMode: "compact" | "full";
178
177
  };
179
178
  } | {
180
179
  captureUpdate: "EVENTUALLY";
@@ -189,7 +188,7 @@ export declare const actionAddToLibrary: {
189
188
  isLoading: boolean;
190
189
  activeEmbeddable: {
191
190
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
192
- state: "hover" | "active";
191
+ state: "active" | "hover";
193
192
  } | null;
194
193
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
195
194
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -208,7 +207,6 @@ export declare const actionAddToLibrary: {
208
207
  editingFrame: string | null;
209
208
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
210
209
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
211
- editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
212
210
  activeTool: {
213
211
  lastActiveTool: import("../types").ActiveTool | null;
214
212
  locked: boolean;
@@ -247,7 +245,7 @@ export declare const actionAddToLibrary: {
247
245
  value: import("../types").NormalizedZoomValue;
248
246
  }>;
249
247
  openMenu: "canvas" | "shape" | null;
250
- openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
248
+ openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
251
249
  openSidebar: {
252
250
  name: string;
253
251
  tab?: string | undefined;
@@ -256,7 +254,7 @@ export declare const actionAddToLibrary: {
256
254
  name: "imageExport" | "help" | "jsonExport";
257
255
  } | {
258
256
  name: "ttd";
259
- tab: "text-to-diagram" | "mermaid";
257
+ tab: "mermaid" | "text-to-diagram";
260
258
  } | {
261
259
  name: "commandPalette";
262
260
  } | {
@@ -328,8 +326,7 @@ export declare const actionAddToLibrary: {
328
326
  shown: true;
329
327
  data: import("../charts").Spreadsheet;
330
328
  };
331
- pendingImageElementId: string | null;
332
- showHyperlinkPopup: false | "info" | "editor";
329
+ showHyperlinkPopup: false | "editor" | "info";
333
330
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
334
331
  snapLines: readonly import("../snapping").SnapLine[];
335
332
  originSnapOffset: {
@@ -349,6 +346,7 @@ export declare const actionAddToLibrary: {
349
346
  lockedMultiSelections: {
350
347
  [groupId: string]: true;
351
348
  };
349
+ stylesPanelMode: "compact" | "full";
352
350
  };
353
351
  }> | {
354
352
  captureUpdate: "EVENTUALLY";
@@ -363,7 +361,7 @@ export declare const actionAddToLibrary: {
363
361
  isLoading: boolean;
364
362
  activeEmbeddable: {
365
363
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
366
- state: "hover" | "active";
364
+ state: "active" | "hover";
367
365
  } | null;
368
366
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
369
367
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -382,7 +380,6 @@ export declare const actionAddToLibrary: {
382
380
  editingFrame: string | null;
383
381
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
384
382
  editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
385
- editingLinearElement: import("@excalidraw/element").LinearElementEditor | null;
386
383
  activeTool: {
387
384
  lastActiveTool: import("../types").ActiveTool | null;
388
385
  locked: boolean;
@@ -421,7 +418,7 @@ export declare const actionAddToLibrary: {
421
418
  value: import("../types").NormalizedZoomValue;
422
419
  }>;
423
420
  openMenu: "canvas" | "shape" | null;
424
- openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | null;
421
+ openPopup: "fontFamily" | "canvasBackground" | "elementBackground" | "elementStroke" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
425
422
  openSidebar: {
426
423
  name: string;
427
424
  tab?: string | undefined;
@@ -430,7 +427,7 @@ export declare const actionAddToLibrary: {
430
427
  name: "imageExport" | "help" | "jsonExport";
431
428
  } | {
432
429
  name: "ttd";
433
- tab: "text-to-diagram" | "mermaid";
430
+ tab: "mermaid" | "text-to-diagram";
434
431
  } | {
435
432
  name: "commandPalette";
436
433
  } | {
@@ -502,8 +499,7 @@ export declare const actionAddToLibrary: {
502
499
  shown: true;
503
500
  data: import("../charts").Spreadsheet;
504
501
  };
505
- pendingImageElementId: string | null;
506
- showHyperlinkPopup: false | "info" | "editor";
502
+ showHyperlinkPopup: false | "editor" | "info";
507
503
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
508
504
  snapLines: readonly import("../snapping").SnapLine[];
509
505
  originSnapOffset: {
@@ -523,6 +519,7 @@ export declare const actionAddToLibrary: {
523
519
  lockedMultiSelections: {
524
520
  [groupId: string]: true;
525
521
  };
522
+ stylesPanelMode: "compact" | "full";
526
523
  };
527
524
  };
528
525
  label: string;
@@ -15,10 +15,10 @@ export declare const actionAlignTop: {
15
15
  elements: ExcalidrawElement[];
16
16
  captureUpdate: "IMMEDIATELY";
17
17
  };
18
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
18
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
19
19
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
20
20
  } & {
21
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
21
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
22
22
  };
23
23
  export declare const actionAlignBottom: {
24
24
  name: "alignBottom";
@@ -33,10 +33,10 @@ export declare const actionAlignBottom: {
33
33
  elements: ExcalidrawElement[];
34
34
  captureUpdate: "IMMEDIATELY";
35
35
  };
36
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
36
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
37
37
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
38
38
  } & {
39
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
39
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
40
40
  };
41
41
  export declare const actionAlignLeft: {
42
42
  name: "alignLeft";
@@ -51,10 +51,10 @@ export declare const actionAlignLeft: {
51
51
  elements: ExcalidrawElement[];
52
52
  captureUpdate: "IMMEDIATELY";
53
53
  };
54
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
54
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
55
55
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
56
56
  } & {
57
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
57
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
58
58
  };
59
59
  export declare const actionAlignRight: {
60
60
  name: "alignRight";
@@ -69,10 +69,10 @@ export declare const actionAlignRight: {
69
69
  elements: ExcalidrawElement[];
70
70
  captureUpdate: "IMMEDIATELY";
71
71
  };
72
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
72
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
73
73
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
74
74
  } & {
75
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
75
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
76
76
  };
77
77
  export declare const actionAlignVerticallyCentered: {
78
78
  name: "alignVerticallyCentered";