@zsviczian/excalidraw 0.18.0-1 → 0.18.0-10

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 (243) hide show
  1. package/README.md +1 -1
  2. package/dist/excalidraw.development.js +2231 -2418
  3. package/dist/excalidraw.production.min.js +1 -1
  4. package/dist/excalidraw.production.min.js.LICENSE.txt +0 -32
  5. package/dist/styles.development.css +2995 -3004
  6. package/dist/styles.production.css +28 -28
  7. package/package.json +14 -2
  8. package/types/{excalidraw/binaryheap.d.ts → common/src/binary-heap.d.ts} +1 -1
  9. package/types/{excalidraw → common/src}/colors.d.ts +1 -0
  10. package/types/{excalidraw → common/src}/constants.d.ts +10 -7
  11. package/types/{excalidraw/fonts/FontMetadata.d.ts → common/src/font-metadata.d.ts} +11 -3
  12. package/types/common/src/index.d.ts +11 -0
  13. package/types/{excalidraw → common/src}/points.d.ts +2 -0
  14. package/types/common/src/promise-pool.d.ts +6 -0
  15. package/types/{excalidraw → common/src}/utils.d.ts +13 -12
  16. package/types/{excalidraw/scene → element/src}/Shape.d.ts +2 -2
  17. package/types/{excalidraw/scene → element/src}/ShapeCache.d.ts +4 -4
  18. package/types/{excalidraw → element/src}/align.d.ts +2 -2
  19. package/types/{excalidraw/element → element/src}/binding.d.ts +8 -8
  20. package/types/{excalidraw/element → element/src}/bounds.d.ts +9 -4
  21. package/types/{excalidraw/element → element/src}/collision.d.ts +3 -3
  22. package/types/{excalidraw/scene → element/src}/comparisons.d.ts +1 -1
  23. package/types/{excalidraw → element/src}/distribute.d.ts +1 -1
  24. package/types/{excalidraw/element → element/src}/dragElements.d.ts +3 -3
  25. package/types/element/src/duplicate.d.ts +63 -0
  26. package/types/{excalidraw/element → element/src}/elbowArrow.d.ts +2 -2
  27. package/types/{excalidraw/element → element/src}/elementLink.d.ts +1 -1
  28. package/types/element/src/embeddable.d.ts +10 -0
  29. package/types/{excalidraw/element → element/src}/flowchart.d.ts +1 -1
  30. package/types/{excalidraw → element/src}/fractionalIndex.d.ts +4 -1
  31. package/types/{excalidraw → element/src}/frame.d.ts +7 -7
  32. package/types/{excalidraw → element/src}/groups.d.ts +5 -5
  33. package/types/{excalidraw/element → element/src}/heading.d.ts +1 -2
  34. package/types/{excalidraw/element → element/src}/image.d.ts +2 -2
  35. package/types/{excalidraw/element → element/src}/index.d.ts +0 -10
  36. package/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +7 -7
  37. package/types/{excalidraw/element → element/src}/mutateElement.d.ts +1 -1
  38. package/types/{excalidraw/element → element/src}/newElement.d.ts +3 -43
  39. package/types/{excalidraw/renderer → element/src}/renderElement.d.ts +3 -3
  40. package/types/{excalidraw/element → element/src}/resizeElements.d.ts +4 -4
  41. package/types/{excalidraw/element → element/src}/resizeTest.d.ts +4 -4
  42. package/types/{excalidraw/scene → element/src}/selection.d.ts +13 -2
  43. package/types/element/src/shapes.d.ts +23 -0
  44. package/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +1 -1
  45. package/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +1 -1
  46. package/types/{excalidraw/element → element/src}/textElement.d.ts +5 -5
  47. package/types/{excalidraw/element → element/src}/transformHandles.d.ts +7 -7
  48. package/types/{excalidraw/element → element/src}/typeChecks.d.ts +2 -2
  49. package/types/{excalidraw/element → element/src}/types.d.ts +2 -2
  50. package/types/{excalidraw/element → element/src}/utils.d.ts +1 -1
  51. package/types/{excalidraw → element/src}/zindex.d.ts +5 -4
  52. package/types/excalidraw/actions/actionAddToLibrary.d.ts +94 -79
  53. package/types/excalidraw/actions/actionAlign.d.ts +7 -7
  54. package/types/excalidraw/actions/actionBoundText.d.ts +68 -58
  55. package/types/excalidraw/actions/actionCanvas.d.ts +738 -455
  56. package/types/excalidraw/actions/actionClipboard.d.ts +197 -167
  57. package/types/excalidraw/actions/actionCropEditor.d.ts +33 -28
  58. package/types/excalidraw/actions/actionDeleteSelected.d.ts +94 -79
  59. package/types/excalidraw/actions/actionDistribute.d.ts +3 -3
  60. package/types/excalidraw/actions/actionDuplicateSelection.d.ts +3 -7
  61. package/types/excalidraw/actions/actionElementLink.d.ts +37 -32
  62. package/types/excalidraw/actions/actionElementLock.d.ts +67 -58
  63. package/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +33 -38
  64. package/types/excalidraw/actions/actionExport.d.ts +374 -329
  65. package/types/excalidraw/actions/actionFinalize.d.ts +55 -45
  66. package/types/excalidraw/actions/actionFlip.d.ts +3 -3
  67. package/types/excalidraw/actions/actionFrame.d.ts +243 -223
  68. package/types/excalidraw/actions/actionGroup.d.ts +65 -55
  69. package/types/excalidraw/actions/actionHistory.d.ts +1 -1
  70. package/types/excalidraw/actions/actionLinearEditor.d.ts +34 -29
  71. package/types/excalidraw/actions/actionLink.d.ts +33 -28
  72. package/types/excalidraw/actions/actionMenu.d.ts +94 -79
  73. package/types/excalidraw/actions/actionNavigate.d.ts +62 -52
  74. package/types/excalidraw/actions/actionProperties.d.ts +422 -347
  75. package/types/excalidraw/actions/actionSelectAll.d.ts +33 -28
  76. package/types/excalidraw/actions/actionStyles.d.ts +35 -30
  77. package/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  78. package/types/excalidraw/actions/actionToggleGridMode.d.ts +33 -28
  79. package/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +33 -28
  80. package/types/excalidraw/actions/actionToggleSearchMenu.d.ts +64 -54
  81. package/types/excalidraw/actions/actionToggleStats.d.ts +32 -28
  82. package/types/excalidraw/actions/actionToggleViewMode.d.ts +33 -29
  83. package/types/excalidraw/actions/actionToggleZenMode.d.ts +33 -29
  84. package/types/excalidraw/actions/actionZindex.d.ts +8 -8
  85. package/types/excalidraw/actions/index.d.ts +1 -0
  86. package/types/excalidraw/actions/manager.d.ts +2 -2
  87. package/types/excalidraw/actions/shortcuts.d.ts +1 -1
  88. package/types/excalidraw/actions/types.d.ts +4 -4
  89. package/types/excalidraw/animated-trail.d.ts +7 -1
  90. package/types/excalidraw/appState.d.ts +32 -31
  91. package/types/excalidraw/change.d.ts +3 -3
  92. package/types/excalidraw/charts.d.ts +1 -1
  93. package/types/excalidraw/clipboard.d.ts +7 -7
  94. package/types/excalidraw/components/Actions.d.ts +3 -3
  95. package/types/excalidraw/components/App.d.ts +32 -32
  96. package/types/excalidraw/components/Avatar.d.ts +1 -1
  97. package/types/excalidraw/components/ButtonIcon.d.ts +1 -1
  98. package/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +4 -4
  99. package/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +1 -2
  100. package/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -2
  101. package/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +1 -1
  102. package/types/excalidraw/components/ColorPicker/ShadeList.d.ts +1 -1
  103. package/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +3 -3
  104. package/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +1 -1
  105. package/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -1
  106. package/types/excalidraw/components/ConfirmDialog.d.ts +1 -1
  107. package/types/excalidraw/components/ContextMenu.d.ts +2 -2
  108. package/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  109. package/types/excalidraw/components/DefaultSidebar.d.ts +2 -2
  110. package/types/excalidraw/components/DialogActionButton.d.ts +1 -1
  111. package/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +1 -1
  112. package/types/excalidraw/components/ElementLinkDialog.d.ts +2 -2
  113. package/types/excalidraw/components/EyeDropper.d.ts +1 -1
  114. package/types/excalidraw/components/FixedSideContainer.d.ts +1 -1
  115. package/types/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
  116. package/types/excalidraw/components/FontPicker/FontPicker.d.ts +1 -1
  117. package/types/excalidraw/components/FontPicker/FontPickerList.d.ts +3 -3
  118. package/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +1 -1
  119. package/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +1 -1
  120. package/types/excalidraw/components/HintViewer.d.ts +1 -1
  121. package/types/excalidraw/components/IconPicker.d.ts +1 -1
  122. package/types/excalidraw/components/ImageExportDialog.d.ts +2 -2
  123. package/types/excalidraw/components/InitializeApp.d.ts +1 -1
  124. package/types/excalidraw/components/Island.d.ts +1 -1
  125. package/types/excalidraw/components/JSONExportDialog.d.ts +2 -2
  126. package/types/excalidraw/components/LayerUI.d.ts +3 -3
  127. package/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -1
  128. package/types/excalidraw/components/LibraryMenuItems.d.ts +1 -1
  129. package/types/excalidraw/components/LibraryMenuSection.d.ts +3 -3
  130. package/types/excalidraw/components/LibraryUnit.d.ts +2 -2
  131. package/types/excalidraw/components/LoadingMessage.d.ts +1 -1
  132. package/types/excalidraw/components/MagicButton.d.ts +1 -1
  133. package/types/excalidraw/components/MobileMenu.d.ts +3 -3
  134. package/types/excalidraw/components/PasteChartDialog.d.ts +1 -1
  135. package/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  136. package/types/excalidraw/components/PublishLibrary.d.ts +1 -1
  137. package/types/excalidraw/components/SVGLayer.d.ts +1 -1
  138. package/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
  139. package/types/excalidraw/components/Sidebar/common.d.ts +1 -1
  140. package/types/excalidraw/components/Stack.d.ts +1 -1
  141. package/types/excalidraw/components/Stats/Angle.d.ts +1 -1
  142. package/types/excalidraw/components/Stats/Dimension.d.ts +1 -1
  143. package/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  144. package/types/excalidraw/components/Stats/FontSize.d.ts +1 -1
  145. package/types/excalidraw/components/Stats/MultiAngle.d.ts +1 -1
  146. package/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  147. package/types/excalidraw/components/Stats/MultiFontSize.d.ts +1 -1
  148. package/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  149. package/types/excalidraw/components/Stats/Position.d.ts +1 -1
  150. package/types/excalidraw/components/Stats/index.d.ts +2 -2
  151. package/types/excalidraw/components/Stats/utils.d.ts +1 -1
  152. package/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +1 -1
  153. package/types/excalidraw/components/TTDDialog/MermaidToExcalidrawLib.d.ts +1 -1
  154. package/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  155. package/types/excalidraw/components/TTDDialog/common.d.ts +3 -3
  156. package/types/excalidraw/components/TextField.d.ts +1 -1
  157. package/types/excalidraw/components/Toast.d.ts +1 -1
  158. package/types/excalidraw/components/ToolButton.d.ts +2 -2
  159. package/types/excalidraw/components/Tooltip.d.ts +1 -1
  160. package/types/excalidraw/components/UserList.d.ts +1 -1
  161. package/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -3
  162. package/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -2
  163. package/types/excalidraw/components/canvases/StaticCanvas.d.ts +3 -3
  164. package/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +1 -1
  165. package/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +2 -2
  166. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +1 -1
  167. package/types/excalidraw/components/hyperlink/Hyperlink.d.ts +2 -2
  168. package/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  169. package/types/excalidraw/components/icons.d.ts +2 -1
  170. package/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
  171. package/types/excalidraw/components/main-menu/MainMenu.d.ts +4 -1
  172. package/types/excalidraw/components/shapes.d.ts +62 -0
  173. package/types/excalidraw/context/tunnels.d.ts +1 -1
  174. package/types/excalidraw/data/EditorLocalStorage.d.ts +1 -1
  175. package/types/excalidraw/data/blob.d.ts +4 -4
  176. package/types/excalidraw/data/filesystem.d.ts +2 -2
  177. package/types/excalidraw/data/index.d.ts +2 -2
  178. package/types/excalidraw/data/json.d.ts +1 -1
  179. package/types/excalidraw/data/library.d.ts +3 -3
  180. package/types/excalidraw/data/reconcile.d.ts +2 -2
  181. package/types/excalidraw/data/resave.d.ts +1 -1
  182. package/types/excalidraw/data/restore.d.ts +1 -1
  183. package/types/excalidraw/data/transform.d.ts +4 -4
  184. package/types/excalidraw/data/types.d.ts +3 -3
  185. package/types/excalidraw/eraser/index.d.ts +14 -0
  186. package/types/excalidraw/errors.d.ts +0 -3
  187. package/types/excalidraw/fonts/Fonts.d.ts +2 -12
  188. package/types/excalidraw/history.d.ts +2 -2
  189. package/types/excalidraw/i18n.d.ts +1 -1
  190. package/types/excalidraw/index.d.ts +29 -35
  191. package/types/excalidraw/laser-trails.d.ts +1 -1
  192. package/types/excalidraw/lasso/index.d.ts +15 -0
  193. package/types/excalidraw/lasso/utils.d.ts +12 -0
  194. package/types/excalidraw/obsidianUtils.d.ts +3 -2
  195. package/types/excalidraw/renderer/helpers.d.ts +2 -2
  196. package/types/excalidraw/renderer/staticSvgScene.d.ts +2 -2
  197. package/types/excalidraw/scene/Renderer.d.ts +3 -3
  198. package/types/excalidraw/scene/Scene.d.ts +5 -5
  199. package/types/excalidraw/scene/export.d.ts +1 -1
  200. package/types/excalidraw/scene/index.d.ts +2 -2
  201. package/types/excalidraw/scene/scroll.d.ts +1 -1
  202. package/types/excalidraw/scene/scrollbars.d.ts +2 -3
  203. package/types/excalidraw/scene/types.d.ts +4 -4
  204. package/types/excalidraw/snapping.d.ts +5 -6
  205. package/types/excalidraw/store.d.ts +2 -2
  206. package/types/excalidraw/types.d.ts +26 -16
  207. package/types/excalidraw/visualdebug.d.ts +2 -2
  208. package/types/excalidraw/webpack.dev.config.d.ts +2 -0
  209. package/types/excalidraw/webpack.prod.config.d.ts +2 -0
  210. package/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +1 -1
  211. package/types/math/{point.d.ts → src/point.d.ts} +2 -2
  212. package/types/math/{polygon.d.ts → src/polygon.d.ts} +1 -0
  213. package/types/math/{segment.d.ts → src/segment.d.ts} +1 -1
  214. package/types/math/{types.d.ts → src/types.d.ts} +1 -0
  215. package/types/utils/{bbox.d.ts → src/bbox.d.ts} +1 -1
  216. package/types/utils/{collision.d.ts → src/collision.d.ts} +2 -3
  217. package/types/utils/{export.d.ts → src/export.d.ts} +2 -12
  218. package/types/utils/{index.d.ts → src/index.d.ts} +1 -1
  219. package/types/utils/{geometry → src}/shape.d.ts +2 -15
  220. package/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +2 -2
  221. package/types/excalidraw/shapes.d.ts +0 -85
  222. /package/types/{excalidraw → common/src}/keys.d.ts +0 -0
  223. /package/types/{excalidraw → common/src}/queue.d.ts +0 -0
  224. /package/types/{excalidraw → common/src}/random.d.ts +0 -0
  225. /package/types/{excalidraw/data → common/src}/url.d.ts +0 -0
  226. /package/types/{excalidraw → common/src}/utility-types.d.ts +0 -0
  227. /package/types/{excalidraw/element → element/src}/containerCache.d.ts +0 -0
  228. /package/types/{excalidraw/element → element/src}/cropElement.d.ts +0 -0
  229. /package/types/{excalidraw/element → element/src}/distance.d.ts +0 -0
  230. /package/types/{excalidraw/renderer → element/src}/easingFunctions.d.ts +0 -0
  231. /package/types/{excalidraw/element → element/src}/sortElements.d.ts +0 -0
  232. /package/types/{excalidraw/element → element/src}/textMeasurements.d.ts +0 -0
  233. /package/types/{excalidraw/element → element/src}/textWrapping.d.ts +0 -0
  234. /package/types/math/{angle.d.ts → src/angle.d.ts} +0 -0
  235. /package/types/math/{curve.d.ts → src/curve.d.ts} +0 -0
  236. /package/types/math/{ellipse.d.ts → src/ellipse.d.ts} +0 -0
  237. /package/types/math/{index.d.ts → src/index.d.ts} +0 -0
  238. /package/types/math/{line.d.ts → src/line.d.ts} +0 -0
  239. /package/types/math/{range.d.ts → src/range.d.ts} +0 -0
  240. /package/types/math/{rectangle.d.ts → src/rectangle.d.ts} +0 -0
  241. /package/types/math/{triangle.d.ts → src/triangle.d.ts} +0 -0
  242. /package/types/math/{utils.d.ts → src/utils.d.ts} +0 -0
  243. /package/types/math/{vector.d.ts → src/vector.d.ts} +0 -0
package/package.json CHANGED
@@ -1,10 +1,22 @@
1
1
  {
2
2
  "name": "@zsviczian/excalidraw",
3
- "version": "0.18.0-1",
3
+ "version": "0.18.0-10",
4
4
  "main": "main.js",
5
5
  "module": "./dist/prod/index.js",
6
6
  "types": "types/excalidraw/index.d.ts",
7
7
  "exports": {
8
+ "./common/*": {
9
+ "types": "./dist/types/common/src/*.d.ts"
10
+ },
11
+ "./element/*": {
12
+ "types": "./dist/types/element/src/*.d.ts"
13
+ },
14
+ "./math/*": {
15
+ "types": "./dist/types/math/src/*.d.ts"
16
+ },
17
+ "./utils/*": {
18
+ "types": "./dist/types/utils/src/*.d.ts"
19
+ },
8
20
  "./*": {
9
21
  "types": "./dist/types/excalidraw/*.d.ts"
10
22
  },
@@ -65,7 +77,7 @@
65
77
  "@zsviczian/mermaid-to-excalidraw": "1.1.2",
66
78
  "@excalidraw/random-username": "1.1.0",
67
79
  "@radix-ui/react-popover": "1.1.6",
68
- "@radix-ui/react-tabs": "1.0.2",
80
+ "@radix-ui/react-tabs": "1.1.3",
69
81
  "browser-fs-access": "0.29.1",
70
82
  "canvas-roundrect-polyfill": "0.0.1",
71
83
  "clsx": "1.1.1",
@@ -1,4 +1,4 @@
1
- export default class BinaryHeap<T> {
1
+ export declare class BinaryHeap<T> {
2
2
  private scoreFunction;
3
3
  private content;
4
4
  constructor(scoreFunction: (node: T) => number);
@@ -1,5 +1,6 @@
1
1
  import oc from "open-color";
2
2
  import type { Merge } from "./utility-types";
3
+ export declare const COLOR_OUTLINE_CONTRAST_THRESHOLD = 240;
3
4
  export type ColorPickerColor = Exclude<keyof oc, "indigo" | "lime"> | "transparent" | "bronze";
4
5
  export type ColorTuple = readonly [string, string, string, string, string];
5
6
  export type ColorPalette = Merge<Record<ColorPickerColor, ColorTuple>, {
@@ -1,5 +1,5 @@
1
- import type { AppProps, AppState } from "./types";
2
- import type { ExcalidrawElement, FontFamilyValues } from "./element/types";
1
+ import type { ExcalidrawElement, FontFamilyValues } from "@excalidraw/element/types";
2
+ import type { AppProps, AppState } from "@excalidraw/excalidraw/types";
3
3
  export declare const isDarwin: boolean;
4
4
  export declare const isWindows: boolean;
5
5
  export declare const isAndroid: boolean;
@@ -82,6 +82,7 @@ export declare const YOUTUBE_STATES: {
82
82
  export declare const ENV: {
83
83
  TEST: string;
84
84
  DEVELOPMENT: string;
85
+ PRODUCTION: string;
85
86
  };
86
87
  export declare const CLASSES: {
87
88
  SHAPE_ACTIONS_MENU: string;
@@ -123,11 +124,11 @@ export declare const THEME: {
123
124
  export declare const FRAME_STYLE: {
124
125
  strokeColor: string;
125
126
  strokeWidth: number;
126
- strokeStyle: import("./element/types").StrokeStyle;
127
- fillStyle: import("./element/types").FillStyle;
127
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
128
+ fillStyle: import("@excalidraw/element/types").FillStyle;
128
129
  roughness: number;
129
130
  roundness: {
130
- type: import("./element/types").RoundnessType;
131
+ type: import("@excalidraw/element/types").RoundnessType;
131
132
  value?: number | undefined;
132
133
  } | null;
133
134
  backgroundColor: string;
@@ -199,7 +200,7 @@ export declare const EXPORT_DATA_TYPES: {
199
200
  export declare const EXPORT_SOURCE: string;
200
201
  export declare const IMAGE_RENDER_TIMEOUT = 500;
201
202
  export declare const TAP_TWICE_TIMEOUT = 300;
202
- export declare const TOUCH_CTX_MENU_TIMEOUT = 2000;
203
+ export declare const TOUCH_CTX_MENU_TIMEOUT = 500;
203
204
  export declare const TITLE_TIMEOUT = 10000;
204
205
  export declare const VERSION_TIMEOUT = 30000;
205
206
  export declare const SCROLL_TIMEOUT = 100;
@@ -227,6 +228,7 @@ export declare const DEFAULT_EXPORT_PADDING = 10;
227
228
  export declare const DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT = 2880;
228
229
  export declare const MAX_ALLOWED_FILE_BYTES: number;
229
230
  export declare const SVG_NS = "http://www.w3.org/2000/svg";
231
+ export declare const SVG_DOCUMENT_PREAMBLE = "<?xml version=\"1.0\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n";
230
232
  export declare const ENCRYPTION_KEY_BITS = 128;
231
233
  export declare const VERSIONS: {
232
234
  readonly excalidraw: 2;
@@ -286,9 +288,10 @@ export declare const DEFAULT_SIDEBAR: {
286
288
  readonly name: "default";
287
289
  readonly defaultTab: "library";
288
290
  };
289
- export declare const LIBRARY_DISABLED_TYPES: Set<"image" | "iframe" | "embeddable">;
291
+ export declare const LIBRARY_DISABLED_TYPES: Set<"embeddable" | "image" | "iframe">;
290
292
  export declare const TOOL_TYPE: {
291
293
  readonly selection: "selection";
294
+ readonly lasso: "lasso";
292
295
  readonly rectangle: "rectangle";
293
296
  readonly diamond: "diamond";
294
297
  readonly ellipse: "ellipse";
@@ -1,4 +1,4 @@
1
- import type { JSX } from "react";
1
+ import type { ExcalidrawTextElement, FontFamilyValues } from "@excalidraw/element/types";
2
2
  /**
3
3
  * Encapsulates font metrics with additional font metadata.
4
4
  * */
@@ -14,8 +14,6 @@ export interface FontMetadata {
14
14
  /** harcoded unitless line-height, https://github.com/excalidraw/excalidraw/pull/6360#issuecomment-1477635971 */
15
15
  lineHeight: number;
16
16
  };
17
- /** element to be displayed as an icon */
18
- icon?: JSX.Element;
19
17
  /** flag to indicate a deprecated font */
20
18
  deprecated?: true;
21
19
  /** flag to indicate a server-side only font */
@@ -36,3 +34,13 @@ export declare const GOOGLE_FONTS_RANGES: {
36
34
  };
37
35
  /** local protocol to skip the local font from registering or inlining */
38
36
  export declare const LOCAL_FONT_PROTOCOL = "local:";
37
+ /**
38
+ * Calculates vertical offset for a text with alphabetic baseline.
39
+ */
40
+ export declare const getVerticalOffset: (fontFamily: ExcalidrawTextElement["fontFamily"], fontSize: ExcalidrawTextElement["fontSize"], lineHeightPx: number) => number;
41
+ /**
42
+ * Gets line height for a selected family.
43
+ */
44
+ export declare const getLineHeight: (fontFamily: FontFamilyValues) => number & {
45
+ _brand: "unitlessLineHeight";
46
+ };
@@ -0,0 +1,11 @@
1
+ export * from "./binary-heap";
2
+ export * from "./colors";
3
+ export * from "./constants";
4
+ export * from "./font-metadata";
5
+ export * from "./queue";
6
+ export * from "./keys";
7
+ export * from "./points";
8
+ export * from "./promise-pool";
9
+ export * from "./random";
10
+ export * from "./url";
11
+ export * from "./utils";
@@ -1,7 +1,9 @@
1
1
  import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
2
+ import type { NullableGridSize } from "@excalidraw/excalidraw/types";
2
3
  export declare const getSizeFromPoints: (points: readonly (GlobalPoint | LocalPoint)[]) => {
3
4
  width: number;
4
5
  height: number;
5
6
  };
6
7
  /** @arg dimension, 0 for rescaling only x, 1 for y */
7
8
  export declare const rescalePoints: <Point extends GlobalPoint | LocalPoint>(dimension: 0 | 1, newSize: number, points: readonly Point[], normalize: boolean) => Point[];
9
+ export declare const getGridPoint: (x: number, y: number, gridSize: NullableGridSize) => [number, number];
@@ -0,0 +1,6 @@
1
+ export declare class PromisePool<T> {
2
+ private readonly pool;
3
+ private readonly entries;
4
+ constructor(source: IterableIterator<Promise<void | readonly [number, T]>>, concurrency: number);
5
+ all(): PromiseLike<T[]>;
6
+ }
@@ -1,14 +1,15 @@
1
- import type { EVENT } from "./constants";
2
- import type { ExcalidrawBindableElement, FontFamilyValues, FontString } from "./element/types";
3
- import type { ActiveTool, AppState, ToolType, UnsubscribeCallback, Zoom } from "./types";
1
+ import { type GlobalPoint } from "@excalidraw/math";
2
+ import type { ExcalidrawBindableElement, FontFamilyValues, FontString, ExcalidrawElement } from "@excalidraw/element/types";
3
+ import type { ActiveTool, AppState, ToolType, UnsubscribeCallback, Zoom } from "@excalidraw/excalidraw/types";
4
4
  import type { MaybePromise } from "./utility-types";
5
+ import type { EVENT } from "./constants";
5
6
  export declare const setDateTimeForTests: (dateTime: string) => void;
6
7
  export declare const getDateTime: () => string;
7
8
  export declare const capitalizeString: (str: string) => string;
8
9
  export declare const isToolIcon: (target: Element | EventTarget | null) => target is HTMLElement;
9
- export declare const isInputLike: (target: Element | EventTarget | null) => target is HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | HTMLBRElement | HTMLDivElement;
10
+ export declare const isInputLike: (target: Element | EventTarget | null) => target is HTMLBRElement | HTMLDivElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;
10
11
  export declare const isInteractive: (target: Element | EventTarget | null) => boolean;
11
- export declare const isWritableElement: (target: Element | EventTarget | null) => target is HTMLInputElement | HTMLTextAreaElement | HTMLBRElement | HTMLDivElement;
12
+ export declare const isWritableElement: (target: Element | EventTarget | null) => target is HTMLBRElement | HTMLDivElement | HTMLInputElement | HTMLTextAreaElement;
12
13
  export declare const getFontFamilyString: ({ fontFamily, }: {
13
14
  fontFamily: FontFamilyValues;
14
15
  }) => string;
@@ -87,6 +88,7 @@ export declare const updateActiveTool: (appState: Pick<AppState, "activeTool">,
87
88
  customType: string;
88
89
  }) & {
89
90
  locked?: boolean;
91
+ fromSelection?: boolean;
90
92
  }) & {
91
93
  lastActiveToolBeforeEraser?: ActiveTool | null;
92
94
  }) => AppState["activeTool"];
@@ -178,13 +180,14 @@ export type Node<T> = T & {
178
180
  export declare const arrayToList: <T>(array: readonly T[]) => Node<T>[];
179
181
  export declare const isTestEnv: () => boolean;
180
182
  export declare const isDevEnv: () => boolean;
183
+ export declare const isProdEnv: () => boolean;
181
184
  export declare const isServerEnv: () => boolean;
182
185
  export declare const wrapEvent: <T extends Event>(name: EVENT, nativeEvent: T) => CustomEvent<{
183
186
  nativeEvent: T;
184
187
  }>;
185
188
  export declare const updateObject: <T extends Record<string, any>>(obj: T, updates: Partial<T>) => T;
186
189
  export declare const isPrimitive: (val: any) => boolean;
187
- export declare const getFrame: () => "top" | "iframe";
190
+ export declare const getFrame: () => "iframe" | "top";
188
191
  export declare const isRunningInIframe: () => boolean;
189
192
  export declare const isPromiseLike: (value: any) => value is Promise<any>;
190
193
  export declare const queryFocusableElements: (container: HTMLElement | null) => HTMLElement[];
@@ -241,16 +244,14 @@ export declare const toBrandedType: <BrandedType, CurrentType = BrandedType>(val
241
244
  export declare const promiseTry: <TValue, TArgs extends unknown[]>(fn: (...args: TArgs) => TValue | PromiseLike<TValue>, ...args: TArgs) => Promise<TValue>;
242
245
  export declare const isAnyTrue: (...args: boolean[]) => boolean;
243
246
  export declare const safelyParseJSON: (json: string) => Record<string, any> | null;
244
- export declare class PromisePool<T> {
245
- private readonly pool;
246
- private readonly entries;
247
- constructor(source: IterableIterator<Promise<void | readonly [number, T]>>, concurrency: number);
248
- all(): PromiseLike<T[]>;
249
- }
250
247
  /**
251
248
  * use when you need to render unsafe string as HTML attribute, but MAKE SURE
252
249
  * the attribute is double-quoted when constructing the HTML string
253
250
  */
254
251
  export declare const escapeDoubleQuotes: (str: string) => string;
255
252
  export declare const castArray: <T>(value: T | T[]) => T[];
253
+ export declare const elementCenterPoint: (element: ExcalidrawElement, xOffset?: number, yOffset?: number) => GlobalPoint;
254
+ /** hack for Array.isArray type guard not working with readonly value[] */
255
+ export declare const isReadonlyArray: (value?: any) => value is readonly any[];
256
+ export declare const sizeOf: (value: readonly number[] | Readonly<Map<any, any>> | Record<any, any>) => number;
256
257
  export {};
@@ -1,7 +1,7 @@
1
+ import type { EmbedsValidationStatus } from "@excalidraw/excalidraw/types";
2
+ import type { ExcalidrawElement, NonDeletedExcalidrawElement, ExcalidrawSelectionElement } from "./types";
1
3
  import type { Drawable, Options } from "roughjs/bin/core";
2
4
  import type { RoughGenerator } from "roughjs/bin/generator";
3
- import type { ExcalidrawElement, NonDeletedExcalidrawElement, ExcalidrawSelectionElement } from "../element/types";
4
- import type { EmbedsValidationStatus } from "../types";
5
5
  export declare const generateRoughOptions: (element: ExcalidrawElement, continuousPath?: boolean) => Options;
6
6
  /**
7
7
  * Generates the roughjs shape for given element.
@@ -1,7 +1,7 @@
1
+ import type { AppState, EmbedsValidationStatus } from "@excalidraw/excalidraw/types";
2
+ import type { ElementShape, ElementShapes } from "@excalidraw/excalidraw/scene/types";
3
+ import type { ExcalidrawElement } from "./types";
1
4
  import type { Drawable } from "roughjs/bin/core";
2
- import type { ExcalidrawElement } from "../element/types";
3
- import type { ElementShape, ElementShapes } from "./types";
4
- import type { AppState, EmbedsValidationStatus } from "../types";
5
5
  export declare class ShapeCache {
6
6
  private static rg;
7
7
  private static cache;
@@ -17,7 +17,7 @@ export declare class ShapeCache {
17
17
  * Generates & caches shape for element if not already cached, otherwise
18
18
  * returns cached shape.
19
19
  */
20
- static generateElementShape: <T extends import("../element/types").ExcalidrawRectangleElement | import("../element/types").ExcalidrawDiamondElement | import("../element/types").ExcalidrawEllipseElement | import("../element/types").ExcalidrawTextElement | import("../element/types").ExcalidrawLinearElement | import("../element/types").ExcalidrawArrowElement | import("../element/types").ExcalidrawFreeDrawElement | import("../element/types").ExcalidrawImageElement | import("../element/types").ExcalidrawFrameElement | import("../element/types").ExcalidrawMagicFrameElement | import("../element/types").ExcalidrawIframeElement | import("../element/types").ExcalidrawEmbeddableElement>(element: T, renderConfig: {
20
+ static generateElementShape: <T extends import("./types").ExcalidrawRectangleElement | import("./types").ExcalidrawDiamondElement | import("./types").ExcalidrawFrameElement | import("./types").ExcalidrawMagicFrameElement | import("./types").ExcalidrawEmbeddableElement | import("./types").ExcalidrawImageElement | import("./types").ExcalidrawIframeElement | import("./types").ExcalidrawTextElement | import("./types").ExcalidrawEllipseElement | import("./types").ExcalidrawLinearElement | import("./types").ExcalidrawArrowElement | import("./types").ExcalidrawFreeDrawElement>(element: T, renderConfig: {
21
21
  isExporting: boolean;
22
22
  canvasBackgroundColor: AppState["viewBackgroundColor"];
23
23
  embedsValidationStatus: EmbedsValidationStatus;
@@ -1,5 +1,5 @@
1
- import type { ElementsMap, ExcalidrawElement } from "./element/types";
2
- import type Scene from "./scene/Scene";
1
+ import type Scene from "@excalidraw/excalidraw/scene/Scene";
2
+ import type { ElementsMap, ExcalidrawElement } from "./types";
3
3
  export interface Alignment {
4
4
  position: "start" | "center" | "end";
5
5
  axis: "x" | "y";
@@ -1,11 +1,11 @@
1
- import type { ExcalidrawBindableElement, ExcalidrawElement, NonDeleted, ExcalidrawLinearElement, NonDeletedExcalidrawElement, ElementsMap, NonDeletedSceneElementsMap, OrderedExcalidrawElement, ExcalidrawElbowArrowElement, FixedPoint, SceneElementsMap } from "./types";
1
+ import { type GlobalPoint } from "@excalidraw/math";
2
+ import type { LocalPoint } from "@excalidraw/math";
3
+ import type Scene from "@excalidraw/excalidraw/scene/Scene";
4
+ import type { AppState } from "@excalidraw/excalidraw/types";
5
+ import { type Heading } from "./heading";
2
6
  import type { Bounds } from "./bounds";
3
- import type { AppState } from "../types";
4
7
  import type { ElementUpdate } from "./mutateElement";
5
- import type Scene from "../scene/Scene";
6
- import { type Heading } from "./heading";
7
- import type { LocalPoint } from "@excalidraw/math";
8
- import { type GlobalPoint } from "@excalidraw/math";
8
+ import type { ExcalidrawBindableElement, ExcalidrawElement, NonDeleted, ExcalidrawLinearElement, NonDeletedExcalidrawElement, ElementsMap, NonDeletedSceneElementsMap, OrderedExcalidrawElement, ExcalidrawElbowArrowElement, FixedPoint, SceneElementsMap } from "./types";
9
9
  export type SuggestedBinding = NonDeleted<ExcalidrawBindableElement> | SuggestedPointBinding;
10
10
  export type SuggestedPointBinding = [
11
11
  NonDeleted<ExcalidrawLinearElement>,
@@ -39,13 +39,13 @@ export declare const updateBoundElements: (changedElement: NonDeletedExcalidrawE
39
39
  changedElements?: Map<string, OrderedExcalidrawElement>;
40
40
  }) => void;
41
41
  export declare const getHeadingForElbowArrowSnap: (p: Readonly<GlobalPoint>, otherPoint: Readonly<GlobalPoint>, bindableElement: ExcalidrawBindableElement | undefined | null, aabb: Bounds | undefined | null, elementsMap: ElementsMap, origPoint: GlobalPoint, zoom?: AppState["zoom"]) => Heading;
42
- export declare const bindPointToSnapToElementOutline: (arrow: ExcalidrawElbowArrowElement, bindableElement: ExcalidrawBindableElement | undefined, startOrEnd: "start" | "end") => GlobalPoint;
42
+ export declare const bindPointToSnapToElementOutline: (arrow: ExcalidrawElbowArrowElement, bindableElement: ExcalidrawBindableElement, startOrEnd: "start" | "end") => GlobalPoint;
43
43
  export declare const avoidRectangularCorner: (element: ExcalidrawBindableElement, p: GlobalPoint) => GlobalPoint;
44
44
  export declare const snapToMid: (element: ExcalidrawBindableElement, p: GlobalPoint, tolerance?: number) => GlobalPoint;
45
45
  export declare const calculateFixedPointForElbowArrowBinding: (linearElement: NonDeleted<ExcalidrawElbowArrowElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap) => {
46
46
  fixedPoint: FixedPoint;
47
47
  };
48
- export declare const fixBindingsAfterDuplication: (sceneElements: readonly ExcalidrawElement[], oldElements: readonly ExcalidrawElement[], oldIdToDuplicatedId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>, duplicatesServeAsOld?: "duplicatesServeAsOld" | undefined) => void;
48
+ export declare const fixDuplicatedBindingsAfterDuplication: (duplicatedElements: ExcalidrawElement[], origIdToDuplicateId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>, duplicateElementsMap: NonDeletedSceneElementsMap) => void;
49
49
  export declare const fixBindingsAfterDeletion: (sceneElements: readonly ExcalidrawElement[], deletedElements: readonly ExcalidrawElement[]) => void;
50
50
  export declare const bindingBorderTest: (element: NonDeleted<ExcalidrawBindableElement>, { x, y }: {
51
51
  x: number;
@@ -1,7 +1,7 @@
1
- import type { ExcalidrawElement, ExcalidrawLinearElement, Arrowhead, ExcalidrawFreeDrawElement, NonDeleted, ElementsMap } from "./types";
2
- import type { Drawable, Op } from "roughjs/bin/core";
3
- import type { AppState } from "../types";
4
1
  import type { Degrees, GlobalPoint, LineSegment } from "@excalidraw/math";
2
+ import type { AppState } from "@excalidraw/excalidraw/types";
3
+ import type { ExcalidrawElement, ExcalidrawLinearElement, Arrowhead, ExcalidrawFreeDrawElement, NonDeleted, ElementsMap, ElementsMapOrArray } from "./types";
4
+ import type { Drawable, Op } from "roughjs/bin/core";
5
5
  export type RectangleBox = {
6
6
  x: number;
7
7
  y: number;
@@ -30,6 +30,11 @@ export declare class ElementBounds {
30
30
  private static calculateBounds;
31
31
  }
32
32
  export declare const getElementAbsoluteCoords: (element: ExcalidrawElement, elementsMap: ElementsMap, includeBoundText?: boolean) => [number, number, number, number, number, number];
33
+ /**
34
+ * Given an element, return the line segments that make up the element.
35
+ *
36
+ * Uses helpers from /math
37
+ */
33
38
  export declare const getElementLineSegments: (element: ExcalidrawElement, elementsMap: ElementsMap) => LineSegment<GlobalPoint>[];
34
39
  /**
35
40
  * Scene -> Scene coords, but in x1,x2,y1,y2 format.
@@ -46,7 +51,7 @@ export declare const getArrowheadSize: (arrowhead: Arrowhead) => number;
46
51
  export declare const getArrowheadAngle: (arrowhead: Arrowhead) => Degrees;
47
52
  export declare const getArrowheadPoints: (element: ExcalidrawLinearElement, shape: Drawable[], position: "start" | "end", arrowhead: Arrowhead) => number[] | null;
48
53
  export declare const getElementBounds: (element: ExcalidrawElement, elementsMap: ElementsMap) => Bounds;
49
- export declare const getCommonBounds: (elements: readonly ExcalidrawElement[], elementsMap?: ElementsMap) => Bounds;
54
+ export declare const getCommonBounds: (elements: ElementsMapOrArray, elementsMap?: ElementsMap) => Bounds;
50
55
  export declare const getDraggedElementsBounds: (elements: ExcalidrawElement[], dragOffset: {
51
56
  x: number;
52
57
  y: number;
@@ -1,7 +1,7 @@
1
- import type { ElementsMap, ExcalidrawElement } from "./types";
2
- import type { FrameNameBounds } from "../types";
3
- import type { GeometricShape } from "@excalidraw/utils/geometry/shape";
1
+ import { type GeometricShape } from "@excalidraw/utils/shape";
4
2
  import type { GlobalPoint, LineSegment, LocalPoint } from "@excalidraw/math";
3
+ import type { FrameNameBounds } from "@excalidraw/excalidraw/types";
4
+ import type { ElementsMap, ExcalidrawElement } from "./types";
5
5
  export declare const shouldTestInside: (element: ExcalidrawElement) => boolean;
6
6
  export type HitTestArgs<Point extends GlobalPoint | LocalPoint> = {
7
7
  x: number;
@@ -1,4 +1,4 @@
1
- import type { ElementOrToolType } from "../types";
1
+ import type { ElementOrToolType } from "@excalidraw/excalidraw/types";
2
2
  export declare const hasBackground: (type: ElementOrToolType) => boolean;
3
3
  export declare const hasStrokeColor: (type: ElementOrToolType) => boolean;
4
4
  export declare const hasStrokeWidth: (type: ElementOrToolType) => boolean;
@@ -1,4 +1,4 @@
1
- import type { ElementsMap, ExcalidrawElement } from "./element/types";
1
+ import type { ElementsMap, ExcalidrawElement } from "./types";
2
2
  export interface Distribution {
3
3
  space: "between";
4
4
  axis: "x" | "y";
@@ -1,6 +1,6 @@
1
- import type { NonDeletedExcalidrawElement } from "./types";
2
- import type { AppState, NormalizedZoomValue, NullableGridSize, PointerDownState } from "../types";
3
- import type Scene from "../scene/Scene";
1
+ import type { AppState, NormalizedZoomValue, NullableGridSize, PointerDownState } from "@excalidraw/excalidraw/types";
2
+ import type Scene from "@excalidraw/excalidraw/scene/Scene";
3
+ import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
4
4
  export declare const dragSelectedElements: (pointerDownState: PointerDownState, _selectedElements: NonDeletedExcalidrawElement[], offset: {
5
5
  x: number;
6
6
  y: number;
@@ -0,0 +1,63 @@
1
+ import type { Mutable } from "@excalidraw/common/utility-types";
2
+ import type { AppState } from "@excalidraw/excalidraw/types";
3
+ import type { ExcalidrawElement, GroupId } from "./types";
4
+ /**
5
+ * Duplicate an element, often used in the alt-drag operation.
6
+ * Note that this method has gotten a bit complicated since the
7
+ * introduction of gruoping/ungrouping elements.
8
+ * @param editingGroupId The current group being edited. The new
9
+ * element will inherit this group and its
10
+ * parents.
11
+ * @param groupIdMapForOperation A Map that maps old group IDs to
12
+ * duplicated ones. If you are duplicating
13
+ * multiple elements at once, share this map
14
+ * amongst all of them
15
+ * @param element Element to duplicate
16
+ */
17
+ export declare const duplicateElement: <TElement extends ExcalidrawElement>(editingGroupId: AppState["editingGroupId"], groupIdMapForOperation: Map<GroupId, GroupId>, element: TElement, randomizeSeed?: boolean) => Readonly<TElement>;
18
+ export declare const duplicateElements: (opts: {
19
+ elements: readonly ExcalidrawElement[];
20
+ randomizeSeed?: boolean | undefined;
21
+ overrides?: ((data: {
22
+ duplicateElement: ExcalidrawElement;
23
+ origElement: ExcalidrawElement;
24
+ origIdToDuplicateId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>;
25
+ }) => Partial<ExcalidrawElement>) | undefined;
26
+ } & ({
27
+ /**
28
+ * Duplicates all elements in array.
29
+ *
30
+ * Use this when programmaticaly duplicating elements, without direct
31
+ * user interaction.
32
+ */
33
+ type: "everything";
34
+ } | {
35
+ /**
36
+ * Duplicates specified elements and inserts them back into the array
37
+ * in specified order.
38
+ *
39
+ * Use this when duplicating Scene elements, during user interaction
40
+ * such as alt-drag or on duplicate action.
41
+ */
42
+ type: "in-place";
43
+ idsOfElementsToDuplicate: Map<ExcalidrawElement["id"], ExcalidrawElement>;
44
+ appState: {
45
+ editingGroupId: AppState["editingGroupId"];
46
+ selectedGroupIds: AppState["selectedGroupIds"];
47
+ };
48
+ })) => {
49
+ duplicatedElements: ExcalidrawElement[];
50
+ duplicateElementsMap: Map<string, ExcalidrawElement>;
51
+ elementsWithDuplicates: ExcalidrawElement[];
52
+ origIdToDuplicateId: Map<string, string>;
53
+ };
54
+ /**
55
+ * Clones ExcalidrawElement data structure. Does not regenerate id, nonce, or
56
+ * any value. The purpose is to to break object references for immutability
57
+ * reasons, whenever we want to keep the original element, but ensure it's not
58
+ * mutated.
59
+ *
60
+ * Only clones plain objects and arrays. Doesn't clone Date, RegExp, Map, Set,
61
+ * Typed arrays and other non-null objects.
62
+ */
63
+ export declare const deepCopyElement: <T extends ExcalidrawElement>(val: T) => Mutable<T>;
@@ -1,12 +1,12 @@
1
1
  import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
2
2
  import { type ElementUpdate } from "./mutateElement";
3
- import { type ExcalidrawElbowArrowElement, type NonDeletedSceneElementsMap, type SceneElementsMap } from "./types";
3
+ import { type ExcalidrawElbowArrowElement, type NonDeletedSceneElementsMap } from "./types";
4
4
  import type { FixedPointBinding, FixedSegment } from "./types";
5
5
  export declare const BASE_PADDING = 40;
6
6
  /**
7
7
  *
8
8
  */
9
- export declare const updateElbowArrowPoints: (arrow: Readonly<ExcalidrawElbowArrowElement>, elementsMap: NonDeletedSceneElementsMap | SceneElementsMap, updates: {
9
+ export declare const updateElbowArrowPoints: (arrow: Readonly<ExcalidrawElbowArrowElement>, elementsMap: NonDeletedSceneElementsMap, updates: {
10
10
  points?: readonly LocalPoint[];
11
11
  fixedSegments?: FixedSegment[] | null;
12
12
  startBinding?: FixedPointBinding | null;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Create and link between shapes.
3
3
  */
4
- import type { AppProps, AppState } from "../types";
4
+ import type { AppProps, AppState } from "@excalidraw/excalidraw/types";
5
5
  import type { ExcalidrawElement } from "./types";
6
6
  export declare const defaultGetElementLinkFromSelection: Exclude<AppProps["generateLinkForSelection"], undefined>;
7
7
  export declare const getLinkIdAndTypeFromSelection: (selectedElements: ExcalidrawElement[], appState: AppState) => {
@@ -0,0 +1,10 @@
1
+ import type { ExcalidrawProps } from "@excalidraw/excalidraw/types";
2
+ import type { MarkRequired } from "@excalidraw/common/utility-types";
3
+ import type { ExcalidrawElement, ExcalidrawIframeLikeElement, IframeData } from "./types";
4
+ type IframeDataWithSandbox = MarkRequired<IframeData, "sandbox">;
5
+ export declare const createSrcDoc: (body: string) => string;
6
+ export declare const getEmbedLink: (link: string | null | undefined) => IframeDataWithSandbox | null;
7
+ export declare const createPlaceholderEmbeddableLabel: (element: ExcalidrawIframeLikeElement) => ExcalidrawElement;
8
+ export declare const maybeParseEmbedSrc: (str: string) => string;
9
+ export declare const embeddableURLValidator: (url: string | null | undefined, validateEmbeddable: ExcalidrawProps["validateEmbeddable"]) => boolean;
10
+ export {};
@@ -1,5 +1,5 @@
1
+ import type { AppState, PendingExcalidrawElements } from "@excalidraw/excalidraw/types";
1
2
  import { type ElementsMap, type ExcalidrawBindableElement, type ExcalidrawElement, type ExcalidrawFlowchartNodeElement } from "./types";
2
- import type { AppState, PendingExcalidrawElements } from "../types";
3
3
  type LinkDirection = "up" | "right" | "down" | "left";
4
4
  export declare const getLinkDirectionFromKey: (key: string) => LinkDirection;
5
5
  export declare const getPredecessors: (node: ExcalidrawBindableElement, elementsMap: ElementsMap, direction: LinkDirection) => ExcalidrawBindableElement[];
@@ -1,4 +1,7 @@
1
- import type { ExcalidrawElement, OrderedExcalidrawElement } from "./element/types";
1
+ import type { ExcalidrawElement, OrderedExcalidrawElement } from "./types";
2
+ export declare class InvalidFractionalIndexError extends Error {
3
+ code: "ELEMENT_HAS_INVALID_INDEX";
4
+ }
2
5
  /**
3
6
  * Envisioned relation between array order and fractional indices:
4
7
  *
@@ -1,8 +1,8 @@
1
- import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "./element/types";
2
- import type { AppClassProperties, AppState, StaticCanvasAppState } from "./types";
3
- import type { ExcalidrawElementsIncludingDeleted } from "./scene/Scene";
4
- import type { ReadonlySetLike } from "./utility-types";
5
- export declare const bindElementsToFramesAfterDuplication: (nextElements: readonly ExcalidrawElement[], oldElements: readonly ExcalidrawElement[], oldIdToDuplicatedId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>) => void;
1
+ import type { ExcalidrawElementsIncludingDeleted } from "@excalidraw/excalidraw/scene/Scene";
2
+ import type { AppClassProperties, AppState, StaticCanvasAppState } from "@excalidraw/excalidraw/types";
3
+ import type { ReadonlySetLike } from "@excalidraw/common/utility-types";
4
+ import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "./types";
5
+ export declare const bindElementsToFramesAfterDuplication: (nextElements: readonly ExcalidrawElement[], origElements: readonly ExcalidrawElement[], origIdToDuplicateId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>) => void;
6
6
  export declare function isElementIntersectingFrame(element: ExcalidrawElement, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap): boolean;
7
7
  export declare const getElementsCompletelyInFrame: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => ExcalidrawElement[];
8
8
  export declare const isElementContainingFrame: (element: ExcalidrawElement, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => boolean;
@@ -31,8 +31,8 @@ export declare const getFrameLikeElements: (allElements: ExcalidrawElementsInclu
31
31
  */
32
32
  export declare const getRootElements: (allElements: ExcalidrawElementsIncludingDeleted) => ExcalidrawElement[];
33
33
  export declare const getElementsInResizingFrame: (allElements: ExcalidrawElementsIncludingDeleted, frame: ExcalidrawFrameLikeElement, appState: AppState, elementsMap: ElementsMap) => ExcalidrawElement[];
34
- export declare const getElementsInNewFrame: (elements: ExcalidrawElementsIncludingDeleted, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => (import("./element/types").ExcalidrawSelectionElement | import("./element/types").ExcalidrawRectangleElement | import("./element/types").ExcalidrawDiamondElement | import("./element/types").ExcalidrawEllipseElement | import("./element/types").ExcalidrawTextElement | import("./element/types").ExcalidrawLinearElement | import("./element/types").ExcalidrawFreeDrawElement | import("./element/types").ExcalidrawImageElement | import("./element/types").ExcalidrawFrameElement | import("./element/types").ExcalidrawMagicFrameElement | import("./element/types").ExcalidrawIframeElement | import("./element/types").ExcalidrawEmbeddableElement)[];
35
- export declare const omitPartialGroups: (elements: ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, allElementsMap: ElementsMap) => (import("./element/types").ExcalidrawSelectionElement | import("./element/types").ExcalidrawRectangleElement | import("./element/types").ExcalidrawDiamondElement | import("./element/types").ExcalidrawEllipseElement | import("./element/types").ExcalidrawTextElement | import("./element/types").ExcalidrawLinearElement | import("./element/types").ExcalidrawFreeDrawElement | import("./element/types").ExcalidrawImageElement | import("./element/types").ExcalidrawFrameElement | import("./element/types").ExcalidrawMagicFrameElement | import("./element/types").ExcalidrawIframeElement | import("./element/types").ExcalidrawEmbeddableElement)[];
34
+ export declare const getElementsInNewFrame: (elements: ExcalidrawElementsIncludingDeleted, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => (import("./types").ExcalidrawRectangleElement | import("./types").ExcalidrawDiamondElement | import("./types").ExcalidrawFrameElement | import("./types").ExcalidrawMagicFrameElement | import("./types").ExcalidrawEmbeddableElement | import("./types").ExcalidrawImageElement | import("./types").ExcalidrawIframeElement | import("./types").ExcalidrawTextElement | import("./types").ExcalidrawSelectionElement | import("./types").ExcalidrawEllipseElement | import("./types").ExcalidrawLinearElement | import("./types").ExcalidrawFreeDrawElement)[];
35
+ export declare const omitPartialGroups: (elements: ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, allElementsMap: ElementsMap) => (import("./types").ExcalidrawRectangleElement | import("./types").ExcalidrawDiamondElement | import("./types").ExcalidrawFrameElement | import("./types").ExcalidrawMagicFrameElement | import("./types").ExcalidrawEmbeddableElement | import("./types").ExcalidrawImageElement | import("./types").ExcalidrawIframeElement | import("./types").ExcalidrawTextElement | import("./types").ExcalidrawSelectionElement | import("./types").ExcalidrawEllipseElement | import("./types").ExcalidrawLinearElement | import("./types").ExcalidrawFreeDrawElement)[];
36
36
  export declare const getContainingFrame: (element: ExcalidrawElement, elementsMap: ElementsMap) => ExcalidrawFrameLikeElement | null;
37
37
  /** */
38
38
  export declare const filterElementsEligibleAsFrameChildren: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement) => ExcalidrawElement[];
@@ -1,6 +1,6 @@
1
- import type { GroupId, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ElementsMapOrArray, ElementsMap } from "./element/types";
2
- import type { AppClassProperties, AppState, InteractiveCanvasAppState } from "./types";
3
- import type { Mutable } from "./utility-types";
1
+ import type { AppClassProperties, AppState, InteractiveCanvasAppState } from "@excalidraw/excalidraw/types";
2
+ import type { Mutable } from "@excalidraw/common/utility-types";
3
+ import type { GroupId, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ElementsMapOrArray, ElementsMap } from "./types";
4
4
  export declare const selectGroup: (groupId: GroupId, appState: InteractiveCanvasAppState, elements: readonly NonDeleted<ExcalidrawElement>[]) => Pick<InteractiveCanvasAppState, "selectedGroupIds" | "selectedElementIds" | "editingGroupId">;
5
5
  export declare const selectGroupsForSelectedElements: {
6
6
  (appState: Pick<AppState, "selectedElementIds" | "editingGroupId">, elements: readonly NonDeletedExcalidrawElement[], prevAppState: InteractiveCanvasAppState, app: AppClassProperties | null): Mutable<Pick<InteractiveCanvasAppState, "selectedGroupIds" | "editingGroupId" | "selectedElementIds">>;
@@ -11,7 +11,7 @@ export declare const selectGroupsForSelectedElements: {
11
11
  * selection border around it.
12
12
  */
13
13
  export declare const isSelectedViaGroup: (appState: InteractiveCanvasAppState, element: ExcalidrawElement) => boolean;
14
- export declare const getSelectedGroupForElement: (appState: InteractiveCanvasAppState, element: ExcalidrawElement) => string | undefined;
14
+ export declare const getSelectedGroupForElement: (appState: Pick<InteractiveCanvasAppState, "editingGroupId" | "selectedGroupIds">, element: ExcalidrawElement) => string | undefined;
15
15
  export declare const getSelectedGroupIds: (appState: InteractiveCanvasAppState) => GroupId[];
16
16
  export declare const selectGroupsFromGivenElements: (elements: readonly NonDeleted<ExcalidrawElement>[], appState: InteractiveCanvasAppState) => {
17
17
  [groupId: string]: boolean;
@@ -22,7 +22,6 @@ export declare const getElementsInGroup: (elements: ElementsMapOrArray, groupId:
22
22
  export declare const getSelectedGroupIdForElement: (element: ExcalidrawElement, selectedGroupIds: {
23
23
  [groupId: string]: boolean;
24
24
  }) => string | undefined;
25
- export declare const getNewGroupIdsForDuplication: (groupIds: ExcalidrawElement["groupIds"], editingGroupId: AppState["editingGroupId"], mapper: (groupId: GroupId) => GroupId) => string[];
26
25
  export declare const addToGroup: (prevGroupIds: ExcalidrawElement["groupIds"], newGroupId: GroupId, editingGroupId: AppState["editingGroupId"]) => string[];
27
26
  export declare const removeFromSelectedGroups: (groupIds: ExcalidrawElement["groupIds"], selectedGroupIds: {
28
27
  [groupId: string]: boolean;
@@ -31,3 +30,4 @@ export declare const getMaximumGroups: (elements: ExcalidrawElement[], elementsM
31
30
  export declare const getNonDeletedGroupIds: (elements: ElementsMap) => Set<string>;
32
31
  export declare const elementsAreInSameGroup: (elements: readonly ExcalidrawElement[]) => boolean;
33
32
  export declare const isInGroup: (element: NonDeletedExcalidrawElement) => boolean;
33
+ export declare const getNewGroupIdsForDuplication: (groupIds: ExcalidrawElement["groupIds"], editingGroupId: AppState["editingGroupId"], mapper: (groupId: GroupId) => GroupId) => string[];
@@ -5,12 +5,11 @@ export declare const HEADING_DOWN: Heading;
5
5
  export declare const HEADING_LEFT: Heading;
6
6
  export declare const HEADING_UP: Heading;
7
7
  export type Heading = [1, 0] | [0, 1] | [-1, 0] | [0, -1];
8
- export declare const headingForDiamond: <Point extends GlobalPoint | LocalPoint>(a: Point, b: Point) => Heading;
9
8
  export declare const vectorToHeading: (vec: Vector) => Heading;
10
9
  export declare const headingForPoint: <P extends GlobalPoint | LocalPoint>(p: P, o: P) => Heading;
11
10
  export declare const headingForPointIsHorizontal: <P extends GlobalPoint | LocalPoint>(p: P, o: P) => boolean;
12
11
  export declare const compareHeading: (a: Heading, b: Heading) => boolean;
13
12
  export declare const headingIsHorizontal: (a: Heading) => boolean;
14
13
  export declare const headingIsVertical: (a: Heading) => boolean;
15
- export declare const headingForPointFromElement: <Point extends GlobalPoint | LocalPoint>(element: Readonly<ExcalidrawBindableElement>, aabb: readonly [minX: number, minY: number, maxX: number, maxY: number], p: Readonly<Point>) => Heading;
14
+ export declare const headingForPointFromElement: <Point extends GlobalPoint>(element: Readonly<ExcalidrawBindableElement>, aabb: readonly [minX: number, minY: number, maxX: number, maxY: number], p: Readonly<Point>) => Heading;
16
15
  export declare const flipHeading: (h: Heading) => Heading;
@@ -1,4 +1,4 @@
1
- import type { AppClassProperties, DataURL, BinaryFiles } from "../types";
1
+ import type { AppClassProperties, DataURL, BinaryFiles } from "@excalidraw/excalidraw/types";
2
2
  import type { ExcalidrawElement, FileId, InitializedExcalidrawImageElement } from "./types";
3
3
  export declare const loadHTMLImageElement: (dataURL: DataURL) => Promise<HTMLImageElement>;
4
4
  /** NOTE: updates cache even if already populated with given image. Thus,
@@ -10,7 +10,7 @@ export declare const updateImageCache: ({ fileIds, files, imageCache, }: {
10
10
  }) => Promise<{
11
11
  imageCache: Map<FileId, {
12
12
  image: HTMLImageElement | Promise<HTMLImageElement>;
13
- mimeType: import("../utility-types").ValueOf<{
13
+ mimeType: import("../../common/src/utility-types").ValueOf<{
14
14
  readonly svg: "image/svg+xml";
15
15
  readonly png: "image/png";
16
16
  readonly jpg: "image/jpeg";