@excalidraw/math 0.18.0-2b0e4c9 → 0.18.0-39103bd

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 (172) hide show
  1. package/dist/dev/index.js +303 -100
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +1 -1
  4. package/dist/types/common/src/colors.d.ts +1 -1
  5. package/dist/types/common/src/constants.d.ts +11 -7
  6. package/dist/types/common/src/points.d.ts +1 -1
  7. package/dist/types/common/src/utils.d.ts +1 -43
  8. package/dist/types/element/src/Scene.d.ts +6 -4
  9. package/dist/types/element/src/align.d.ts +2 -2
  10. package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
  11. package/dist/types/element/src/arrows/focus.d.ts +5 -2
  12. package/dist/types/element/src/binding.d.ts +17 -8
  13. package/dist/types/element/src/bounds.d.ts +22 -7
  14. package/dist/types/element/src/collision.d.ts +1 -1
  15. package/dist/types/element/src/comparisons.d.ts +5 -4
  16. package/dist/types/element/src/convertToShape.d.ts +23 -0
  17. package/dist/types/element/src/distribute.d.ts +2 -2
  18. package/dist/types/element/src/dragElements.d.ts +27 -0
  19. package/dist/types/element/src/duplicate.d.ts +4 -3
  20. package/dist/types/element/src/embeddable.d.ts +2 -2
  21. package/dist/types/element/src/flowchart.d.ts +7 -7
  22. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  23. package/dist/types/element/src/frame.d.ts +9 -8
  24. package/dist/types/element/src/groups.d.ts +9 -9
  25. package/dist/types/element/src/index.d.ts +3 -1
  26. package/dist/types/element/src/linearElementEditor.d.ts +17 -10
  27. package/dist/types/element/src/newElement.d.ts +14 -0
  28. package/dist/types/element/src/renderElement.d.ts +0 -3
  29. package/dist/types/element/src/resizeElements.d.ts +2 -2
  30. package/dist/types/element/src/selection.d.ts +11 -7
  31. package/dist/types/element/src/shape.d.ts +1 -1
  32. package/dist/types/element/src/textElement.d.ts +13 -10
  33. package/dist/types/element/src/textWrapping.d.ts +26 -0
  34. package/dist/types/element/src/transform.d.ts +2 -2
  35. package/dist/types/element/src/typeChecks.d.ts +26 -25
  36. package/dist/types/element/src/types.d.ts +8 -1
  37. package/dist/types/element/src/utils.d.ts +1 -1
  38. package/dist/types/element/src/zindex.d.ts +2 -2
  39. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +33 -15
  40. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  41. package/dist/types/excalidraw/actions/actionBoundText.d.ts +23 -11
  42. package/dist/types/excalidraw/actions/actionCanvas.d.ts +139 -933
  43. package/dist/types/excalidraw/actions/actionClipboard.d.ts +22 -10
  44. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +11 -5
  45. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +35 -16
  46. package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionDeselect.d.ts} +25 -34
  47. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  48. package/dist/types/excalidraw/actions/actionElementLink.d.ts +11 -5
  49. package/dist/types/excalidraw/actions/actionElementLock.d.ts +23 -11
  50. package/dist/types/excalidraw/actions/actionExport.d.ts +24 -12
  51. package/dist/types/excalidraw/actions/actionFrame.d.ts +45 -199
  52. package/dist/types/excalidraw/actions/actionGroup.d.ts +38 -26
  53. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +15 -7
  54. package/dist/types/excalidraw/actions/actionLink.d.ts +12 -6
  55. package/dist/types/excalidraw/actions/actionMenu.d.ts +11 -5
  56. package/dist/types/excalidraw/actions/actionProperties.d.ts +49 -28
  57. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +16 -10
  58. package/dist/types/excalidraw/actions/actionStyles.d.ts +12 -5
  59. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  60. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +12 -6
  61. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +15 -10
  62. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +12 -6
  63. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +12 -6
  64. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +15 -10
  65. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  66. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +12 -6
  67. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +13 -7
  68. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +12 -6
  69. package/dist/types/excalidraw/actions/index.d.ts +2 -2
  70. package/dist/types/excalidraw/actions/manager.d.ts +1 -0
  71. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  72. package/dist/types/excalidraw/actions/types.d.ts +8 -4
  73. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  74. package/dist/types/excalidraw/appState.d.ts +7 -5
  75. package/dist/types/excalidraw/components/Actions.d.ts +17 -12
  76. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  77. package/dist/types/excalidraw/components/App.arrowText.d.ts +72 -0
  78. package/dist/types/excalidraw/components/App.cursor.d.ts +31 -0
  79. package/dist/types/excalidraw/components/App.d.ts +358 -64
  80. package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
  81. package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
  82. package/dist/types/excalidraw/components/App.viewport.d.ts +73 -0
  83. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +2 -2
  84. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
  85. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  86. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  87. package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
  88. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  89. package/dist/types/excalidraw/components/{ToolButton.d.ts → IconButton.d.ts} +16 -19
  90. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  91. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
  92. package/dist/types/excalidraw/components/LayerUI.d.ts +4 -2
  93. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  94. package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
  95. package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
  96. package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
  97. package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
  98. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  99. package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
  100. package/dist/types/excalidraw/components/Popover.d.ts +1 -3
  101. package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
  102. package/dist/types/excalidraw/components/Range.d.ts +10 -4
  103. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  104. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  105. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
  106. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  107. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  108. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  109. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  110. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  111. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  112. package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
  113. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  114. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
  115. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
  116. package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
  117. package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
  118. package/dist/types/excalidraw/components/Tools.d.ts +145 -0
  119. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -1
  120. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
  121. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  122. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
  123. package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
  124. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  125. package/dist/types/excalidraw/components/icons.d.ts +3 -1
  126. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +8 -4
  127. package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
  128. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
  129. package/dist/types/excalidraw/data/blob.d.ts +26 -14
  130. package/dist/types/excalidraw/data/index.d.ts +4 -4
  131. package/dist/types/excalidraw/data/json.d.ts +19 -13
  132. package/dist/types/excalidraw/data/library.d.ts +1 -1
  133. package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
  134. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  135. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  136. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  137. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  138. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  139. package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
  140. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -3
  141. package/dist/types/excalidraw/scene/Renderer.d.ts +426 -19
  142. package/dist/types/excalidraw/scene/export.d.ts +3 -3
  143. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  144. package/dist/types/excalidraw/scene/types.d.ts +4 -3
  145. package/dist/types/excalidraw/snapping.d.ts +7 -7
  146. package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
  147. package/dist/types/excalidraw/types.d.ts +369 -20
  148. package/dist/types/excalidraw/viewport.d.ts +272 -0
  149. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +6 -3
  150. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  151. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  152. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  153. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  154. package/dist/types/laser-pointer/src/state.d.ts +36 -0
  155. package/dist/types/math/src/constants.d.ts +0 -1
  156. package/dist/types/math/src/curve.d.ts +4 -1
  157. package/dist/types/math/src/index.d.ts +1 -0
  158. package/dist/types/math/src/pca.d.ts +79 -0
  159. package/dist/types/math/src/point.d.ts +2 -1
  160. package/dist/types/math/src/polygon.d.ts +25 -1
  161. package/dist/types/utils/src/export.d.ts +3 -3
  162. package/dist/types/utils/src/index.d.ts +1 -2
  163. package/package.json +2 -2
  164. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  165. package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
  166. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
  167. package/dist/types/excalidraw/components/shapes.d.ts +0 -263
  168. package/dist/types/excalidraw/cursor.d.ts +0 -5
  169. package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
  170. package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
  171. package/dist/types/utils/src/bbox.d.ts +0 -9
  172. package/dist/types/utils/src/withinBounds.d.ts +0 -19
@@ -1,30 +1,437 @@
1
- import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
1
+ import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
2
2
  import type { Scene } from "@excalidraw/element";
3
3
  import type { RenderableElementsMap } from "./types";
4
4
  import type { AppState } from "../types";
5
+ type GetRenderableElementsOpts = {
6
+ zoom: AppState["zoom"];
7
+ offsetLeft: AppState["offsetLeft"];
8
+ offsetTop: AppState["offsetTop"];
9
+ scrollX: AppState["scrollX"];
10
+ scrollY: AppState["scrollY"];
11
+ height: AppState["height"];
12
+ width: AppState["width"];
13
+ editingTextElement: AppState["editingTextElement"];
14
+ newElement: AppState["newElement"];
15
+ selectedElements: readonly NonDeletedExcalidrawElement[];
16
+ selectedElementsAreBeingDragged: AppState["selectedElementsAreBeingDragged"];
17
+ frameToHighlight: AppState["frameToHighlight"];
18
+ };
5
19
  export declare class Renderer {
6
20
  private scene;
7
21
  constructor(scene: Scene);
8
- getRenderableElements: ((opts: {
9
- zoom: Readonly<{
10
- value: import("../types").NormalizedZoomValue;
11
- }>;
12
- offsetLeft: AppState["offsetLeft"];
13
- offsetTop: AppState["offsetTop"];
14
- scrollX: AppState["scrollX"];
15
- scrollY: AppState["scrollY"];
16
- height: AppState["height"];
17
- width: AppState["width"];
18
- editingTextElement: AppState["editingTextElement"];
19
- /** note: first render of newElement will always bust the cache
20
- * (we'd have to prefilter elements outside of this function) */
21
- newElementId: ExcalidrawElement["id"] | undefined;
22
- sceneNonce: ReturnType<InstanceType<typeof Scene>["getSceneNonce"]>;
23
- }) => {
22
+ private getVisibleCanvasElements;
23
+ private getRenderableElementsMap;
24
+ private sortSelectedElementsIntoHighlightedFrame;
25
+ private _getRenderableElements;
26
+ getRenderableElements: (opts: GetRenderableElementsOpts) => {
24
27
  elementsMap: RenderableElementsMap;
25
28
  visibleElements: readonly NonDeletedExcalidrawElement[];
26
- }) & {
27
- clear: () => void;
29
+ newElementCanvasElement: (Readonly<{
30
+ id: string;
31
+ x: number;
32
+ y: number;
33
+ strokeColor: string;
34
+ backgroundColor: string;
35
+ fillStyle: import("@excalidraw/element/types").FillStyle;
36
+ strokeWidth: number;
37
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
38
+ roundness: null | {
39
+ type: import("@excalidraw/element/types").RoundnessType;
40
+ value?: number;
41
+ };
42
+ roughness: number;
43
+ opacity: number;
44
+ width: number;
45
+ height: number;
46
+ angle: import("@excalidraw/math").Radians;
47
+ seed: number;
48
+ version: number;
49
+ versionNonce: number;
50
+ index: import("@excalidraw/element/types").FractionalIndex | null;
51
+ isDeleted: boolean;
52
+ groupIds: readonly import("@excalidraw/element/types").GroupId[];
53
+ frameId: string | null;
54
+ boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
55
+ updated: number;
56
+ link: string | null;
57
+ locked: boolean;
58
+ customData?: Record<string, any>;
59
+ }> & Readonly<{
60
+ type: "line" | "arrow";
61
+ points: readonly import("@excalidraw/math").LocalPoint[];
62
+ startBinding: import("@excalidraw/element/types").FixedPointBinding | null;
63
+ endBinding: import("@excalidraw/element/types").FixedPointBinding | null;
64
+ startArrowhead: import("@excalidraw/element/types").Arrowhead | null;
65
+ endArrowhead: import("@excalidraw/element/types").Arrowhead | null;
66
+ }> & {
67
+ isDeleted: false;
68
+ }) | (Readonly<{
69
+ id: string;
70
+ x: number;
71
+ y: number;
72
+ strokeColor: string;
73
+ backgroundColor: string;
74
+ fillStyle: import("@excalidraw/element/types").FillStyle;
75
+ strokeWidth: number;
76
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
77
+ roundness: null | {
78
+ type: import("@excalidraw/element/types").RoundnessType;
79
+ value?: number;
80
+ };
81
+ roughness: number;
82
+ opacity: number;
83
+ width: number;
84
+ height: number;
85
+ angle: import("@excalidraw/math").Radians;
86
+ seed: number;
87
+ version: number;
88
+ versionNonce: number;
89
+ index: import("@excalidraw/element/types").FractionalIndex | null;
90
+ isDeleted: boolean;
91
+ groupIds: readonly import("@excalidraw/element/types").GroupId[];
92
+ frameId: string | null;
93
+ boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
94
+ updated: number;
95
+ link: string | null;
96
+ locked: boolean;
97
+ customData?: Record<string, any>;
98
+ }> & {
99
+ type: "rectangle";
100
+ } & {
101
+ isDeleted: false;
102
+ }) | (Readonly<{
103
+ id: string;
104
+ x: number;
105
+ y: number;
106
+ strokeColor: string;
107
+ backgroundColor: string;
108
+ fillStyle: import("@excalidraw/element/types").FillStyle;
109
+ strokeWidth: number;
110
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
111
+ roundness: null | {
112
+ type: import("@excalidraw/element/types").RoundnessType;
113
+ value?: number;
114
+ };
115
+ roughness: number;
116
+ opacity: number;
117
+ width: number;
118
+ height: number;
119
+ angle: import("@excalidraw/math").Radians;
120
+ seed: number;
121
+ version: number;
122
+ versionNonce: number;
123
+ index: import("@excalidraw/element/types").FractionalIndex | null;
124
+ isDeleted: boolean;
125
+ groupIds: readonly import("@excalidraw/element/types").GroupId[];
126
+ frameId: string | null;
127
+ boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
128
+ updated: number;
129
+ link: string | null;
130
+ locked: boolean;
131
+ customData?: Record<string, any>;
132
+ }> & {
133
+ type: "diamond";
134
+ } & {
135
+ isDeleted: false;
136
+ }) | (Readonly<{
137
+ id: string;
138
+ x: number;
139
+ y: number;
140
+ strokeColor: string;
141
+ backgroundColor: string;
142
+ fillStyle: import("@excalidraw/element/types").FillStyle;
143
+ strokeWidth: number;
144
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
145
+ roundness: null | {
146
+ type: import("@excalidraw/element/types").RoundnessType;
147
+ value?: number;
148
+ };
149
+ roughness: number;
150
+ opacity: number;
151
+ width: number;
152
+ height: number;
153
+ angle: import("@excalidraw/math").Radians;
154
+ seed: number;
155
+ version: number;
156
+ versionNonce: number;
157
+ index: import("@excalidraw/element/types").FractionalIndex | null;
158
+ isDeleted: boolean;
159
+ groupIds: readonly import("@excalidraw/element/types").GroupId[];
160
+ frameId: string | null;
161
+ boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
162
+ updated: number;
163
+ link: string | null;
164
+ locked: boolean;
165
+ customData?: Record<string, any>;
166
+ }> & {
167
+ type: "ellipse";
168
+ } & {
169
+ isDeleted: false;
170
+ }) | (Readonly<{
171
+ id: string;
172
+ x: number;
173
+ y: number;
174
+ strokeColor: string;
175
+ backgroundColor: string;
176
+ fillStyle: import("@excalidraw/element/types").FillStyle;
177
+ strokeWidth: number;
178
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
179
+ roundness: null | {
180
+ type: import("@excalidraw/element/types").RoundnessType;
181
+ value?: number;
182
+ };
183
+ roughness: number;
184
+ opacity: number;
185
+ width: number;
186
+ height: number;
187
+ angle: import("@excalidraw/math").Radians;
188
+ seed: number;
189
+ version: number;
190
+ versionNonce: number;
191
+ index: import("@excalidraw/element/types").FractionalIndex | null;
192
+ isDeleted: boolean;
193
+ groupIds: readonly import("@excalidraw/element/types").GroupId[];
194
+ frameId: string | null;
195
+ boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
196
+ updated: number;
197
+ link: string | null;
198
+ locked: boolean;
199
+ customData?: Record<string, any>;
200
+ }> & Readonly<{
201
+ type: "embeddable";
202
+ }> & {
203
+ isDeleted: false;
204
+ }) | (Readonly<{
205
+ id: string;
206
+ x: number;
207
+ y: number;
208
+ strokeColor: string;
209
+ backgroundColor: string;
210
+ fillStyle: import("@excalidraw/element/types").FillStyle;
211
+ strokeWidth: number;
212
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
213
+ roundness: null | {
214
+ type: import("@excalidraw/element/types").RoundnessType;
215
+ value?: number;
216
+ };
217
+ roughness: number;
218
+ opacity: number;
219
+ width: number;
220
+ height: number;
221
+ angle: import("@excalidraw/math").Radians;
222
+ seed: number;
223
+ version: number;
224
+ versionNonce: number;
225
+ index: import("@excalidraw/element/types").FractionalIndex | null;
226
+ isDeleted: boolean;
227
+ groupIds: readonly import("@excalidraw/element/types").GroupId[];
228
+ frameId: string | null;
229
+ boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
230
+ updated: number;
231
+ link: string | null;
232
+ locked: boolean;
233
+ customData?: Record<string, any>;
234
+ }> & Readonly<{
235
+ type: "iframe";
236
+ customData?: {
237
+ generationData?: import("@excalidraw/element/types").MagicGenerationData;
238
+ };
239
+ }> & {
240
+ isDeleted: false;
241
+ }) | (Readonly<{
242
+ id: string;
243
+ x: number;
244
+ y: number;
245
+ strokeColor: string;
246
+ backgroundColor: string;
247
+ fillStyle: import("@excalidraw/element/types").FillStyle;
248
+ strokeWidth: number;
249
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
250
+ roundness: null | {
251
+ type: import("@excalidraw/element/types").RoundnessType;
252
+ value?: number;
253
+ };
254
+ roughness: number;
255
+ opacity: number;
256
+ width: number;
257
+ height: number;
258
+ angle: import("@excalidraw/math").Radians;
259
+ seed: number;
260
+ version: number;
261
+ versionNonce: number;
262
+ index: import("@excalidraw/element/types").FractionalIndex | null;
263
+ isDeleted: boolean;
264
+ groupIds: readonly import("@excalidraw/element/types").GroupId[];
265
+ frameId: string | null;
266
+ boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
267
+ updated: number;
268
+ link: string | null;
269
+ locked: boolean;
270
+ customData?: Record<string, any>;
271
+ }> & Readonly<{
272
+ type: "image";
273
+ fileId: import("@excalidraw/element/types").FileId | null;
274
+ status: "pending" | "saved" | "error";
275
+ scale: [number, number];
276
+ crop: import("@excalidraw/element/types").ImageCrop | null;
277
+ }> & {
278
+ isDeleted: false;
279
+ }) | (Readonly<{
280
+ id: string;
281
+ x: number;
282
+ y: number;
283
+ strokeColor: string;
284
+ backgroundColor: string;
285
+ fillStyle: import("@excalidraw/element/types").FillStyle;
286
+ strokeWidth: number;
287
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
288
+ roundness: null | {
289
+ type: import("@excalidraw/element/types").RoundnessType;
290
+ value?: number;
291
+ };
292
+ roughness: number;
293
+ opacity: number;
294
+ width: number;
295
+ height: number;
296
+ angle: import("@excalidraw/math").Radians;
297
+ seed: number;
298
+ version: number;
299
+ versionNonce: number;
300
+ index: import("@excalidraw/element/types").FractionalIndex | null;
301
+ isDeleted: boolean;
302
+ groupIds: readonly import("@excalidraw/element/types").GroupId[];
303
+ frameId: string | null;
304
+ boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
305
+ updated: number;
306
+ link: string | null;
307
+ locked: boolean;
308
+ customData?: Record<string, any>;
309
+ }> & {
310
+ type: "frame";
311
+ name: string | null;
312
+ } & {
313
+ isDeleted: false;
314
+ }) | (Readonly<{
315
+ id: string;
316
+ x: number;
317
+ y: number;
318
+ strokeColor: string;
319
+ backgroundColor: string;
320
+ fillStyle: import("@excalidraw/element/types").FillStyle;
321
+ strokeWidth: number;
322
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
323
+ roundness: null | {
324
+ type: import("@excalidraw/element/types").RoundnessType;
325
+ value?: number;
326
+ };
327
+ roughness: number;
328
+ opacity: number;
329
+ width: number;
330
+ height: number;
331
+ angle: import("@excalidraw/math").Radians;
332
+ seed: number;
333
+ version: number;
334
+ versionNonce: number;
335
+ index: import("@excalidraw/element/types").FractionalIndex | null;
336
+ isDeleted: boolean;
337
+ groupIds: readonly import("@excalidraw/element/types").GroupId[];
338
+ frameId: string | null;
339
+ boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
340
+ updated: number;
341
+ link: string | null;
342
+ locked: boolean;
343
+ customData?: Record<string, any>;
344
+ }> & {
345
+ type: "magicframe";
346
+ name: string | null;
347
+ } & {
348
+ isDeleted: false;
349
+ }) | (Readonly<{
350
+ id: string;
351
+ x: number;
352
+ y: number;
353
+ strokeColor: string;
354
+ backgroundColor: string;
355
+ fillStyle: import("@excalidraw/element/types").FillStyle;
356
+ strokeWidth: number;
357
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
358
+ roundness: null | {
359
+ type: import("@excalidraw/element/types").RoundnessType;
360
+ value?: number;
361
+ };
362
+ roughness: number;
363
+ opacity: number;
364
+ width: number;
365
+ height: number;
366
+ angle: import("@excalidraw/math").Radians;
367
+ seed: number;
368
+ version: number;
369
+ versionNonce: number;
370
+ index: import("@excalidraw/element/types").FractionalIndex | null;
371
+ isDeleted: boolean;
372
+ groupIds: readonly import("@excalidraw/element/types").GroupId[];
373
+ frameId: string | null;
374
+ boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
375
+ updated: number;
376
+ link: string | null;
377
+ locked: boolean;
378
+ customData?: Record<string, any>;
379
+ }> & Readonly<{
380
+ type: "text";
381
+ fontSize: number;
382
+ fontFamily: import("@excalidraw/element/types").FontFamilyValues;
383
+ text: string;
384
+ textAlign: import("@excalidraw/element/types").TextAlign;
385
+ verticalAlign: import("@excalidraw/element/types").VerticalAlign;
386
+ containerId: import("@excalidraw/element/types").ExcalidrawGenericElement["id"] | null;
387
+ originalText: string;
388
+ autoResize: boolean;
389
+ lineHeight: number & {
390
+ _brand: "unitlessLineHeight";
391
+ };
392
+ }> & {
393
+ isDeleted: false;
394
+ }) | (Readonly<{
395
+ id: string;
396
+ x: number;
397
+ y: number;
398
+ strokeColor: string;
399
+ backgroundColor: string;
400
+ fillStyle: import("@excalidraw/element/types").FillStyle;
401
+ strokeWidth: number;
402
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
403
+ roundness: null | {
404
+ type: import("@excalidraw/element/types").RoundnessType;
405
+ value?: number;
406
+ };
407
+ roughness: number;
408
+ opacity: number;
409
+ width: number;
410
+ height: number;
411
+ angle: import("@excalidraw/math").Radians;
412
+ seed: number;
413
+ version: number;
414
+ versionNonce: number;
415
+ index: import("@excalidraw/element/types").FractionalIndex | null;
416
+ isDeleted: boolean;
417
+ groupIds: readonly import("@excalidraw/element/types").GroupId[];
418
+ frameId: string | null;
419
+ boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
420
+ updated: number;
421
+ link: string | null;
422
+ locked: boolean;
423
+ customData?: Record<string, any>;
424
+ }> & Readonly<{
425
+ type: "freedraw";
426
+ points: readonly import("@excalidraw/math").LocalPoint[];
427
+ pressures: readonly number[];
428
+ simulatePressure: boolean;
429
+ strokeOptions: import("@excalidraw/element/types").StrokeOptions;
430
+ }> & {
431
+ isDeleted: false;
432
+ }) | null;
433
+ canvasNonce: string;
28
434
  };
29
435
  destroy(): void;
30
436
  }
437
+ export {};
@@ -1,10 +1,10 @@
1
- import type { ExcalidrawFrameLikeElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
1
+ import type { ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
2
2
  import type { AppState, BinaryFiles } from "../types";
3
3
  export declare const exportToCanvas: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles, { exportBackground, exportPadding, viewBackgroundColor, exportingFrame, }: {
4
4
  exportBackground: boolean;
5
5
  exportPadding?: number;
6
6
  viewBackgroundColor: string;
7
- exportingFrame?: ExcalidrawFrameLikeElement | null;
7
+ exportingFrame?: NonDeleted<ExcalidrawFrameLikeElement> | null;
8
8
  }, createCanvas?: (width: number, height: number) => {
9
9
  canvas: HTMLCanvasElement;
10
10
  scale: number;
@@ -22,7 +22,7 @@ export declare const exportToSvg: (elements: readonly NonDeletedExcalidrawElemen
22
22
  * if true, all embeddables passed in will be rendered when possible.
23
23
  */
24
24
  renderEmbeddables?: boolean;
25
- exportingFrame?: ExcalidrawFrameLikeElement | null;
25
+ exportingFrame?: NonDeleted<ExcalidrawFrameLikeElement> | null;
26
26
  skipInliningFonts?: true;
27
27
  reuseImages?: boolean;
28
28
  }) => Promise<SVGSVGElement>;
@@ -1,4 +1,4 @@
1
1
  export { isSomeElementSelected, getElementsWithinSelection, getSelectedElements, getTargetElements, } from "@excalidraw/element";
2
- export { calculateScrollCenter } from "./scroll";
3
- export { hasBackground, hasStrokeWidth, hasStrokeStyle, canHaveArrowheads, canChangeRoundness, } from "@excalidraw/element";
2
+ export { getScrollToContentState } from "../viewport";
3
+ export { hasBackground, hasStrokeWidth, hasStrokeStyle, hasFreedrawMode, canHaveArrowheads, canChangeRoundness, } from "@excalidraw/element";
4
4
  export { getNormalizedZoom, getNormalizedGridSize, getNormalizedGridStep, } from "./normalize";
@@ -9,6 +9,9 @@ export type StaticCanvasRenderConfig = {
9
9
  canvasBackgroundColor: AppState["viewBackgroundColor"];
10
10
  imageCache: AppClassProperties["imageCache"];
11
11
  renderGrid: boolean;
12
+ /** whether to render link icons on elements with links (never rendered
13
+ when exporting). @default true */
14
+ renderLinks?: boolean;
12
15
  /** when exporting the behavior is slightly different (e.g. we can't use
13
16
  CSS filters), and we disable render optimizations for best output */
14
17
  isExporting: boolean;
@@ -52,8 +55,6 @@ export type InteractiveCanvasRenderConfig = {
52
55
  renderScrollbars?: boolean;
53
56
  };
54
57
  export type RenderInteractiveSceneCallback = {
55
- atLeastOneVisibleElement: boolean;
56
- elementsMap: RenderableElementsMap;
57
58
  scrollBars?: ScrollBars;
58
59
  };
59
60
  export type StaticSceneRenderConfig = {
@@ -89,7 +90,7 @@ export type InteractiveSceneRenderConfig = {
89
90
  export type NewElementSceneRenderConfig = {
90
91
  canvas: HTMLCanvasElement | null;
91
92
  rc: RoughCanvas;
92
- newElement: ExcalidrawElement | null;
93
+ newElement: NonDeletedExcalidrawElement | null;
93
94
  elementsMap: RenderableElementsMap;
94
95
  allElementsMap: NonDeletedSceneElementsMap;
95
96
  scale: number;
@@ -66,19 +66,19 @@ export declare const isGridModeEnabled: (app: AppClassProperties) => boolean;
66
66
  export declare const isSnappingEnabled: ({ event, app, selectedElements, }: {
67
67
  app: AppClassProperties;
68
68
  event: KeyboardModifiersObject;
69
- selectedElements: NonDeletedExcalidrawElement[];
69
+ selectedElements: readonly NonDeletedExcalidrawElement[];
70
70
  }) => boolean;
71
71
  export declare const areRoughlyEqual: (a: number, b: number, precision?: number) => boolean;
72
- export declare const getElementsCorners: (elements: ExcalidrawElement[], elementsMap: ElementsMap, { omitCenter, boundingBoxCorners, dragOffset, }?: {
72
+ export declare const getElementsCorners: (elements: readonly NonDeletedExcalidrawElement[], elementsMap: ElementsMap, { omitCenter, boundingBoxCorners, dragOffset, }?: {
73
73
  omitCenter?: boolean;
74
74
  boundingBoxCorners?: boolean;
75
75
  dragOffset?: Vector2D;
76
76
  }) => GlobalPoint[];
77
- export declare const getVisibleGaps: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => {
77
+ export declare const getVisibleGaps: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: readonly NonDeletedExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => {
78
78
  horizontalGaps: Gap[];
79
79
  verticalGaps: Gap[];
80
80
  };
81
- export declare const getReferenceSnapPoints: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => GlobalPoint[];
81
+ export declare const getReferenceSnapPoints: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: readonly NonDeletedExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => GlobalPoint[];
82
82
  export declare const snapDraggedElements: (elements: ExcalidrawElement[], dragOffset: Vector2D, app: AppClassProperties, event: KeyboardModifiersObject, elementsMap: ElementsMap) => {
83
83
  snapOffset: {
84
84
  x: number;
@@ -86,21 +86,21 @@ export declare const snapDraggedElements: (elements: ExcalidrawElement[], dragOf
86
86
  };
87
87
  snapLines: (PointSnapLine | GapSnapLine)[];
88
88
  };
89
- export declare const snapResizingElements: (selectedElements: ExcalidrawElement[], selectedOriginalElements: ExcalidrawElement[], app: AppClassProperties, event: KeyboardModifiersObject, dragOffset: Vector2D, transformHandle: MaybeTransformHandleType) => {
89
+ export declare const snapResizingElements: (selectedElements: readonly NonDeletedExcalidrawElement[], selectedOriginalElements: readonly NonDeletedExcalidrawElement[], app: AppClassProperties, event: KeyboardModifiersObject, dragOffset: Vector2D, transformHandle: MaybeTransformHandleType) => {
90
90
  snapOffset: {
91
91
  x: number;
92
92
  y: number;
93
93
  };
94
94
  snapLines: PointSnapLine[];
95
95
  };
96
- export declare const snapNewElement: (newElement: ExcalidrawElement, app: AppClassProperties, event: KeyboardModifiersObject, origin: Vector2D, dragOffset: Vector2D, elementsMap: ElementsMap) => {
96
+ export declare const snapNewElement: (newElement: NonDeletedExcalidrawElement, app: AppClassProperties, event: KeyboardModifiersObject, origin: Vector2D, dragOffset: Vector2D, elementsMap: ElementsMap) => {
97
97
  snapOffset: {
98
98
  x: number;
99
99
  y: number;
100
100
  };
101
101
  snapLines: PointSnapLine[];
102
102
  };
103
- export declare const getSnapLinesAtPointer: (elements: readonly ExcalidrawElement[], app: AppClassProperties, pointer: Vector2D, event: KeyboardModifiersObject, elementsMap: ElementsMap) => {
103
+ export declare const getSnapLinesAtPointer: (elements: readonly NonDeletedExcalidrawElement[], app: AppClassProperties, pointer: Vector2D, event: KeyboardModifiersObject, elementsMap: ElementsMap) => {
104
104
  originOffset: {
105
105
  x: number;
106
106
  y: number;
@@ -0,0 +1,15 @@
1
+ import { type GlobalPoint } from "@excalidraw/math";
2
+ import type { EditorInterface } from "@excalidraw/common";
3
+ import type { ExcalidrawTextElement } from "@excalidraw/element/types";
4
+ export declare const getTextBoxPadding: (zoomValue: number) => number;
5
+ export declare const getTextAutoResizeHandle: (textElement: ExcalidrawTextElement, zoomValue: number, formFactor: EditorInterface["formFactor"]) => {
6
+ center: GlobalPoint | import("@excalidraw/math").LocalPoint;
7
+ start: GlobalPoint;
8
+ end: GlobalPoint;
9
+ hitboxWidth: number;
10
+ hitboxHeight: number;
11
+ } | null;
12
+ export declare const isPointHittingTextAutoResizeHandle: (point: Readonly<{
13
+ x: number;
14
+ y: number;
15
+ }>, textElement: ExcalidrawTextElement, zoomValue: number, formFactor: EditorInterface["formFactor"]) => boolean;