@excalidraw/excalidraw 0.18.0-817d8c5 → 0.18.0-a18b139

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 (271) hide show
  1. package/CHANGELOG.md +11 -11
  2. package/dist/dev/chunk-FB2NA5UG.js +4132 -0
  3. package/dist/dev/chunk-FB2NA5UG.js.map +7 -0
  4. package/dist/dev/{chunk-53KHN5WM.js → chunk-MJMGTOVG.js} +2 -2
  5. package/dist/dev/{chunk-53KHN5WM.js.map → chunk-MJMGTOVG.js.map} +1 -1
  6. package/dist/dev/{chunk-3SN6HYVK.js → chunk-U3G3LY5D.js} +14433 -21847
  7. package/dist/dev/chunk-U3G3LY5D.js.map +7 -0
  8. package/dist/dev/{chunk-LMHBUWQS.js → chunk-X3RYHLJU.js} +2 -1
  9. package/dist/dev/chunk-X3RYHLJU.js.map +7 -0
  10. package/dist/dev/data/{image-V26YBSDB.js → image-Y366K5SN.js} +3 -3
  11. package/dist/dev/index.css +3031 -3034
  12. package/dist/dev/index.css.map +3 -3
  13. package/dist/dev/index.js +30824 -23152
  14. package/dist/dev/index.js.map +4 -4
  15. package/dist/dev/locales/{en-OZCJJ2HN.js → en-CKWC2GMK.js} +2 -2
  16. package/dist/dev/subset-shared.chunk.js +2 -2
  17. package/dist/dev/subset-worker.chunk.js +2 -2
  18. package/dist/prod/{chunk-6U3AYISY.js → chunk-IUH5AXLB.js} +1 -1
  19. package/dist/prod/chunk-LS7FJGPW.js +86 -0
  20. package/dist/prod/chunk-PUQLEN73.js +33 -0
  21. package/dist/prod/{chunk-G5N3DNGT.js → chunk-VQA74LVG.js} +1 -1
  22. package/dist/prod/data/image-WY2VMQLG.js +1 -0
  23. package/dist/prod/index.css +1 -1
  24. package/dist/prod/index.js +17 -14
  25. package/dist/prod/locales/{en-B4ZKOASM.js → en-SBO6ZHT2.js} +1 -1
  26. package/dist/prod/subset-shared.chunk.js +1 -1
  27. package/dist/prod/subset-worker.chunk.js +1 -1
  28. package/dist/types/{excalidraw/binaryheap.d.ts → common/src/binary-heap.d.ts} +1 -1
  29. package/dist/types/{excalidraw → common/src}/colors.d.ts +1 -0
  30. package/dist/types/{excalidraw → common/src}/constants.d.ts +9 -6
  31. package/dist/types/{excalidraw/fonts/FontMetadata.d.ts → common/src/font-metadata.d.ts} +11 -3
  32. package/dist/types/common/src/index.d.ts +11 -0
  33. package/dist/types/{excalidraw → common/src}/points.d.ts +2 -0
  34. package/dist/types/common/src/promise-pool.d.ts +6 -0
  35. package/dist/types/{excalidraw → common/src}/utils.d.ts +13 -12
  36. package/dist/types/{excalidraw/scene → element/src}/Scene.d.ts +12 -15
  37. package/dist/types/{excalidraw/scene → element/src}/Shape.d.ts +2 -2
  38. package/dist/types/{excalidraw/scene → element/src}/ShapeCache.d.ts +4 -4
  39. package/dist/types/element/src/align.d.ts +7 -0
  40. package/dist/types/{excalidraw/element → element/src}/binding.d.ts +15 -15
  41. package/dist/types/{excalidraw/element → element/src}/bounds.d.ts +9 -4
  42. package/dist/types/{excalidraw/element → element/src}/collision.d.ts +3 -3
  43. package/dist/types/{excalidraw/scene → element/src}/comparisons.d.ts +1 -1
  44. package/dist/types/{excalidraw → element/src}/distribute.d.ts +1 -1
  45. package/dist/types/{excalidraw/element → element/src}/dragElements.d.ts +5 -4
  46. package/dist/types/element/src/duplicate.d.ts +63 -0
  47. package/dist/types/{excalidraw/element → element/src}/elbowArrow.d.ts +1 -1
  48. package/dist/types/{excalidraw/element → element/src}/elementLink.d.ts +1 -1
  49. package/dist/types/element/src/embeddable.d.ts +10 -0
  50. package/dist/types/{excalidraw/element → element/src}/flowchart.d.ts +4 -3
  51. package/dist/types/{excalidraw → element/src}/fractionalIndex.d.ts +5 -2
  52. package/dist/types/{excalidraw → element/src}/frame.d.ts +7 -7
  53. package/dist/types/{excalidraw → element/src}/groups.d.ts +5 -5
  54. package/dist/types/{excalidraw/element → element/src}/heading.d.ts +1 -2
  55. package/dist/types/{excalidraw/element → element/src}/image.d.ts +2 -2
  56. package/dist/types/{excalidraw/element → element/src}/index.d.ts +0 -10
  57. package/dist/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +16 -16
  58. package/dist/types/{excalidraw/element → element/src}/mutateElement.d.ts +11 -3
  59. package/dist/types/{excalidraw/element → element/src}/newElement.d.ts +3 -43
  60. package/dist/types/{excalidraw/renderer → element/src}/renderElement.d.ts +3 -3
  61. package/dist/types/{excalidraw/element → element/src}/resizeElements.d.ts +6 -6
  62. package/dist/types/{excalidraw/element → element/src}/resizeTest.d.ts +4 -4
  63. package/dist/types/{excalidraw/scene → element/src}/selection.d.ts +13 -2
  64. package/dist/types/element/src/shapes.d.ts +23 -0
  65. package/dist/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +1 -1
  66. package/dist/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +1 -2
  67. package/dist/types/{excalidraw/element → element/src}/textElement.d.ts +8 -7
  68. package/dist/types/{excalidraw/element → element/src}/transformHandles.d.ts +7 -7
  69. package/dist/types/{excalidraw/element → element/src}/typeChecks.d.ts +2 -2
  70. package/dist/types/{excalidraw/element → element/src}/types.d.ts +2 -2
  71. package/dist/types/element/src/zindex.d.ts +7 -0
  72. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +70 -67
  73. package/dist/types/excalidraw/actions/actionAlign.d.ts +7 -7
  74. package/dist/types/excalidraw/actions/actionBoundText.d.ts +52 -50
  75. package/dist/types/excalidraw/actions/actionCanvas.d.ts +533 -344
  76. package/dist/types/excalidraw/actions/actionClipboard.d.ts +149 -143
  77. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +25 -24
  78. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +70 -67
  79. package/dist/types/excalidraw/actions/actionDistribute.d.ts +3 -3
  80. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +3 -7
  81. package/dist/types/excalidraw/actions/actionElementLink.d.ts +29 -28
  82. package/dist/types/excalidraw/actions/actionElementLock.d.ts +51 -50
  83. package/dist/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +25 -34
  84. package/dist/types/excalidraw/actions/actionExport.d.ts +288 -279
  85. package/dist/types/excalidraw/actions/actionFinalize.d.ts +39 -37
  86. package/dist/types/excalidraw/actions/actionFlip.d.ts +3 -3
  87. package/dist/types/excalidraw/actions/actionFrame.d.ts +208 -204
  88. package/dist/types/excalidraw/actions/actionGroup.d.ts +49 -47
  89. package/dist/types/excalidraw/actions/actionHistory.d.ts +1 -1
  90. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +26 -25
  91. package/dist/types/excalidraw/actions/actionLink.d.ts +26 -25
  92. package/dist/types/excalidraw/actions/actionMenu.d.ts +72 -69
  93. package/dist/types/excalidraw/actions/actionNavigate.d.ts +47 -45
  94. package/dist/types/excalidraw/actions/actionProperties.d.ts +300 -285
  95. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +25 -24
  96. package/dist/types/excalidraw/actions/actionStyles.d.ts +27 -26
  97. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  98. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +25 -24
  99. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +25 -24
  100. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +48 -46
  101. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +24 -24
  102. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +25 -25
  103. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +25 -25
  104. package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -8
  105. package/dist/types/excalidraw/actions/index.d.ts +1 -0
  106. package/dist/types/excalidraw/actions/manager.d.ts +2 -2
  107. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  108. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  109. package/dist/types/excalidraw/animated-trail.d.ts +7 -1
  110. package/dist/types/excalidraw/appState.d.ts +30 -29
  111. package/dist/types/excalidraw/change.d.ts +3 -3
  112. package/dist/types/excalidraw/charts.d.ts +1 -1
  113. package/dist/types/excalidraw/clipboard.d.ts +7 -7
  114. package/dist/types/excalidraw/components/Actions.d.ts +3 -3
  115. package/dist/types/excalidraw/components/App.d.ts +34 -18
  116. package/dist/types/excalidraw/components/Avatar.d.ts +1 -1
  117. package/dist/types/excalidraw/components/ButtonIcon.d.ts +1 -1
  118. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +4 -4
  119. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +1 -2
  120. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -2
  121. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +1 -1
  122. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +1 -1
  123. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +3 -3
  124. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +1 -1
  125. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -1
  126. package/dist/types/excalidraw/components/ConfirmDialog.d.ts +1 -1
  127. package/dist/types/excalidraw/components/ContextMenu.d.ts +2 -2
  128. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  129. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +2 -2
  130. package/dist/types/excalidraw/components/DialogActionButton.d.ts +1 -1
  131. package/dist/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +1 -1
  132. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +5 -4
  133. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  134. package/dist/types/excalidraw/components/FixedSideContainer.d.ts +1 -1
  135. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
  136. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +1 -1
  137. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +3 -3
  138. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +1 -1
  139. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +1 -1
  140. package/dist/types/excalidraw/components/HintViewer.d.ts +1 -1
  141. package/dist/types/excalidraw/components/IconPicker.d.ts +1 -1
  142. package/dist/types/excalidraw/components/ImageExportDialog.d.ts +2 -2
  143. package/dist/types/excalidraw/components/InitializeApp.d.ts +1 -1
  144. package/dist/types/excalidraw/components/Island.d.ts +1 -1
  145. package/dist/types/excalidraw/components/JSONExportDialog.d.ts +2 -2
  146. package/dist/types/excalidraw/components/LayerUI.d.ts +3 -3
  147. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -1
  148. package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +1 -1
  149. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +3 -3
  150. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -2
  151. package/dist/types/excalidraw/components/LoadingMessage.d.ts +1 -1
  152. package/dist/types/excalidraw/components/MagicButton.d.ts +1 -1
  153. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -3
  154. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +1 -1
  155. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  156. package/dist/types/excalidraw/components/PublishLibrary.d.ts +1 -1
  157. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  158. package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
  159. package/dist/types/excalidraw/components/Sidebar/common.d.ts +1 -1
  160. package/dist/types/excalidraw/components/Stack.d.ts +1 -1
  161. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  162. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +1 -1
  163. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  164. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +3 -3
  165. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +2 -2
  166. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  167. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +3 -3
  168. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +2 -2
  169. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  170. package/dist/types/excalidraw/components/Stats/Position.d.ts +2 -2
  171. package/dist/types/excalidraw/components/Stats/index.d.ts +2 -2
  172. package/dist/types/excalidraw/components/Stats/utils.d.ts +4 -4
  173. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  174. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +1 -1
  175. package/dist/types/excalidraw/components/TextField.d.ts +1 -1
  176. package/dist/types/excalidraw/components/Toast.d.ts +1 -1
  177. package/dist/types/excalidraw/components/ToolButton.d.ts +2 -2
  178. package/dist/types/excalidraw/components/Tooltip.d.ts +1 -1
  179. package/dist/types/excalidraw/components/UserList.d.ts +1 -1
  180. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -3
  181. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -2
  182. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +3 -3
  183. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +1 -1
  184. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +2 -2
  185. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +1 -1
  186. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +5 -4
  187. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  188. package/dist/types/excalidraw/components/icons.d.ts +2 -1
  189. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
  190. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +4 -1
  191. package/dist/types/excalidraw/components/shapes.d.ts +62 -0
  192. package/dist/types/excalidraw/context/tunnels.d.ts +1 -1
  193. package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +1 -1
  194. package/dist/types/excalidraw/data/blob.d.ts +4 -4
  195. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  196. package/dist/types/excalidraw/data/index.d.ts +2 -2
  197. package/dist/types/excalidraw/data/json.d.ts +1 -1
  198. package/dist/types/excalidraw/data/library.d.ts +3 -3
  199. package/dist/types/excalidraw/data/reconcile.d.ts +2 -2
  200. package/dist/types/excalidraw/data/resave.d.ts +1 -1
  201. package/dist/types/excalidraw/data/restore.d.ts +1 -1
  202. package/dist/types/excalidraw/data/transform.d.ts +4 -4
  203. package/dist/types/excalidraw/data/types.d.ts +3 -3
  204. package/dist/types/excalidraw/eraser/index.d.ts +14 -0
  205. package/dist/types/excalidraw/errors.d.ts +0 -3
  206. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -13
  207. package/dist/types/excalidraw/history.d.ts +2 -2
  208. package/dist/types/excalidraw/i18n.d.ts +1 -1
  209. package/dist/types/excalidraw/index.d.ts +15 -14
  210. package/dist/types/excalidraw/laser-trails.d.ts +1 -1
  211. package/dist/types/excalidraw/lasso/index.d.ts +15 -0
  212. package/dist/types/excalidraw/lasso/utils.d.ts +12 -0
  213. package/dist/types/excalidraw/renderer/helpers.d.ts +2 -2
  214. package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +2 -2
  215. package/dist/types/excalidraw/scene/Renderer.d.ts +3 -3
  216. package/dist/types/excalidraw/scene/export.d.ts +1 -1
  217. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  218. package/dist/types/excalidraw/scene/scroll.d.ts +1 -1
  219. package/dist/types/excalidraw/scene/scrollbars.d.ts +2 -3
  220. package/dist/types/excalidraw/scene/types.d.ts +6 -4
  221. package/dist/types/excalidraw/snapping.d.ts +5 -6
  222. package/dist/types/excalidraw/store.d.ts +2 -2
  223. package/dist/types/excalidraw/types.d.ts +20 -15
  224. package/dist/types/excalidraw/visualdebug.d.ts +2 -2
  225. package/dist/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +1 -1
  226. package/dist/types/math/{point.d.ts → src/point.d.ts} +2 -2
  227. package/dist/types/math/{polygon.d.ts → src/polygon.d.ts} +1 -0
  228. package/dist/types/math/{segment.d.ts → src/segment.d.ts} +1 -1
  229. package/dist/types/math/{types.d.ts → src/types.d.ts} +1 -0
  230. package/dist/types/utils/{bbox.d.ts → src/bbox.d.ts} +1 -1
  231. package/dist/types/utils/{collision.d.ts → src/collision.d.ts} +2 -3
  232. package/dist/types/utils/{export.d.ts → src/export.d.ts} +2 -2
  233. package/dist/types/utils/{index.d.ts → src/index.d.ts} +1 -1
  234. package/dist/types/utils/{geometry → src}/shape.d.ts +2 -15
  235. package/dist/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +2 -2
  236. package/history.ts +4 -2
  237. package/package.json +14 -2
  238. package/dist/dev/chunk-3SN6HYVK.js.map +0 -7
  239. package/dist/dev/chunk-LMHBUWQS.js.map +0 -7
  240. package/dist/dev/chunk-OKSO7T74.js +0 -4132
  241. package/dist/dev/chunk-OKSO7T74.js.map +0 -7
  242. package/dist/prod/chunk-36CXSE6H.js +0 -34
  243. package/dist/prod/chunk-EIO257PC.js +0 -86
  244. package/dist/prod/data/image-N4WCURRR.js +0 -1
  245. package/dist/types/excalidraw/align.d.ts +0 -7
  246. package/dist/types/excalidraw/shapes.d.ts +0 -85
  247. package/dist/types/excalidraw/zindex.d.ts +0 -6
  248. package/dist/dev/data/{image-V26YBSDB.js.map → image-Y366K5SN.js.map} +0 -0
  249. package/dist/dev/locales/{en-OZCJJ2HN.js.map → en-CKWC2GMK.js.map} +0 -0
  250. package/dist/types/{excalidraw → common/src}/keys.d.ts +0 -0
  251. package/dist/types/{excalidraw → common/src}/queue.d.ts +0 -0
  252. package/dist/types/{excalidraw → common/src}/random.d.ts +0 -0
  253. package/dist/types/{excalidraw/data → common/src}/url.d.ts +0 -0
  254. package/dist/types/{excalidraw → common/src}/utility-types.d.ts +0 -0
  255. package/dist/types/{excalidraw/element → element/src}/containerCache.d.ts +0 -0
  256. package/dist/types/{excalidraw/element → element/src}/cropElement.d.ts +0 -0
  257. package/dist/types/{excalidraw/element → element/src}/distance.d.ts +0 -0
  258. package/dist/types/{excalidraw/element → element/src}/sortElements.d.ts +0 -0
  259. package/dist/types/{excalidraw/element → element/src}/textMeasurements.d.ts +0 -0
  260. package/dist/types/{excalidraw/element → element/src}/textWrapping.d.ts +0 -0
  261. package/dist/types/{excalidraw/element → element/src}/utils.d.ts +1 -1
  262. /package/dist/types/math/{angle.d.ts → src/angle.d.ts} +0 -0
  263. /package/dist/types/math/{curve.d.ts → src/curve.d.ts} +0 -0
  264. /package/dist/types/math/{ellipse.d.ts → src/ellipse.d.ts} +0 -0
  265. /package/dist/types/math/{index.d.ts → src/index.d.ts} +0 -0
  266. /package/dist/types/math/{line.d.ts → src/line.d.ts} +0 -0
  267. /package/dist/types/math/{range.d.ts → src/range.d.ts} +0 -0
  268. /package/dist/types/math/{rectangle.d.ts → src/rectangle.d.ts} +0 -0
  269. /package/dist/types/math/{triangle.d.ts → src/triangle.d.ts} +0 -0
  270. /package/dist/types/math/{utils.d.ts → src/utils.d.ts} +0 -0
  271. /package/dist/types/math/{vector.d.ts → src/vector.d.ts} +0 -0
@@ -1 +1 @@
1
- import{A,B,C,D,E,F,G,H,I,J,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../chunk-6U3AYISY.js";import"../chunk-SRAX5OIU.js";export{f as alerts,e as buttons,l as canvasError,s as clearCanvasDialog,C as colorPicker,A as colors,I as commandPalette,v as confirmDialog,J as default,i as element,b as elementLink,x as encrypted,p as errorDialog,m as errorSplash,g as errors,q as exportDialog,G as fontList,j as headings,r as helpDialog,k as hints,w as imageExportDialog,a as labels,c as library,E as mermaid,D as overwriteConfirm,t as publishDialog,u as publishSuccessDialog,F as quickSearch,o as roomDialog,d as search,n as shareDialog,y as stats,z as toast,h as toolBar,H as userList,B as welcomeScreen};
1
+ import{A,B,C,D,E,F,G,H,I,J,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../chunk-IUH5AXLB.js";import"../chunk-SRAX5OIU.js";export{f as alerts,e as buttons,l as canvasError,s as clearCanvasDialog,C as colorPicker,A as colors,I as commandPalette,v as confirmDialog,J as default,i as element,b as elementLink,x as encrypted,p as errorDialog,m as errorSplash,g as errors,q as exportDialog,G as fontList,j as headings,r as helpDialog,k as hints,w as imageExportDialog,a as labels,c as library,E as mermaid,D as overwriteConfirm,t as publishDialog,u as publishSuccessDialog,F as quickSearch,o as roomDialog,d as search,n as shareDialog,y as stats,z as toast,h as toolBar,H as userList,B as welcomeScreen};
@@ -1 +1 @@
1
- import{a,b,c,d}from"./chunk-EIO257PC.js";import"./chunk-G5N3DNGT.js";import"./chunk-SRAX5OIU.js";export{a as Commands,b as subsetToBase64,c as subsetToBinary,d as toBase64};
1
+ import{a,b,c,d}from"./chunk-LS7FJGPW.js";import"./chunk-VQA74LVG.js";import"./chunk-SRAX5OIU.js";export{a as Commands,b as subsetToBase64,c as subsetToBinary,d as toBase64};
@@ -1 +1 @@
1
- import{a as r,c as t}from"./chunk-EIO257PC.js";import"./chunk-G5N3DNGT.js";import"./chunk-SRAX5OIU.js";var s=import.meta.url?new URL(import.meta.url):void 0;typeof window>"u"&&typeof self<"u"&&(self.onmessage=async e=>{switch(e.data.command){case r.Subset:let a=await t(e.data.arrayBuffer,e.data.codePoints);self.postMessage(a,{transfer:[a]});break}});export{s as WorkerUrl};
1
+ import{a as r,c as t}from"./chunk-LS7FJGPW.js";import"./chunk-VQA74LVG.js";import"./chunk-SRAX5OIU.js";var s=import.meta.url?new URL(import.meta.url):void 0;typeof window>"u"&&typeof self<"u"&&(self.onmessage=async e=>{switch(e.data.command){case r.Subset:let a=await t(e.data.arrayBuffer,e.data.codePoints);self.postMessage(a,{transfer:[a]});break}});export{s as WorkerUrl};
@@ -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;
@@ -120,11 +121,11 @@ export declare const THEME: {
120
121
  export declare const FRAME_STYLE: {
121
122
  strokeColor: string;
122
123
  strokeWidth: number;
123
- strokeStyle: import("./element/types").StrokeStyle;
124
- fillStyle: import("./element/types").FillStyle;
124
+ strokeStyle: import("@excalidraw/element/types").StrokeStyle;
125
+ fillStyle: import("@excalidraw/element/types").FillStyle;
125
126
  roughness: number;
126
127
  roundness: {
127
- type: import("./element/types").RoundnessType;
128
+ type: import("@excalidraw/element/types").RoundnessType;
128
129
  value?: number | undefined;
129
130
  } | null;
130
131
  backgroundColor: string;
@@ -224,6 +225,7 @@ export declare const DEFAULT_EXPORT_PADDING = 10;
224
225
  export declare const DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT = 1440;
225
226
  export declare const MAX_ALLOWED_FILE_BYTES: number;
226
227
  export declare const SVG_NS = "http://www.w3.org/2000/svg";
228
+ 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";
227
229
  export declare const ENCRYPTION_KEY_BITS = 128;
228
230
  export declare const VERSIONS: {
229
231
  readonly excalidraw: 2;
@@ -276,9 +278,10 @@ export declare const DEFAULT_SIDEBAR: {
276
278
  readonly name: "default";
277
279
  readonly defaultTab: "library";
278
280
  };
279
- export declare const LIBRARY_DISABLED_TYPES: Set<"image" | "iframe" | "embeddable">;
281
+ export declare const LIBRARY_DISABLED_TYPES: Set<"embeddable" | "image" | "iframe">;
280
282
  export declare const TOOL_TYPE: {
281
283
  readonly selection: "selection";
284
+ readonly lasso: "lasso";
282
285
  readonly rectangle: "rectangle";
283
286
  readonly diamond: "diamond";
284
287
  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,19 +1,11 @@
1
- import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameLikeElement, ElementsMapOrArray, OrderedExcalidrawElement, Ordered } from "../element/types";
2
- import type { LinearElementEditor } from "../element/linearElementEditor";
3
- import type { AppState } from "../types";
4
- type ElementIdKey = InstanceType<typeof LinearElementEditor>["elementId"];
5
- type ElementKey = ExcalidrawElement | ElementIdKey;
1
+ import { type ElementUpdate } from "@excalidraw/element/mutateElement";
2
+ import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameLikeElement, ElementsMapOrArray, OrderedExcalidrawElement, Ordered } from "@excalidraw/element/types";
3
+ import type { Mutable } from "@excalidraw/common/utility-types";
4
+ import type { AppState } from "../../excalidraw/types";
6
5
  type SceneStateCallback = () => void;
7
6
  type SceneStateCallbackRemover = () => void;
8
7
  export type ExcalidrawElementsIncludingDeleted = readonly ExcalidrawElement[];
9
8
  declare class Scene {
10
- private static sceneMapByElement;
11
- private static sceneMapById;
12
- static mapElementToScene(elementKey: ElementKey, scene: Scene): void;
13
- /**
14
- * @deprecated pass down `app.scene` and use it directly
15
- */
16
- static getScene(elementKey: ElementKey): Scene | null;
17
9
  private callbacks;
18
10
  private nonDeletedElements;
19
11
  private nonDeletedElementsMap;
@@ -30,11 +22,12 @@ declare class Scene {
30
22
  */
31
23
  private sceneNonce;
32
24
  getSceneNonce(): number | undefined;
33
- getNonDeletedElementsMap(): Map<string, Ordered<NonDeletedExcalidrawElement>> & import("../utility-types").MakeBrand<"NonDeletedSceneElementsMap">;
25
+ getNonDeletedElementsMap(): Map<string, Ordered<NonDeletedExcalidrawElement>> & import("@excalidraw/common/utility-types").MakeBrand<"NonDeletedSceneElementsMap">;
34
26
  getElementsIncludingDeleted(): readonly OrderedExcalidrawElement[];
35
- getElementsMapIncludingDeleted(): Map<string, Ordered<ExcalidrawElement>> & import("../utility-types").MakeBrand<"SceneElementsMap">;
27
+ getElementsMapIncludingDeleted(): Map<string, Ordered<ExcalidrawElement>> & import("@excalidraw/common/utility-types").MakeBrand<"SceneElementsMap">;
36
28
  getNonDeletedElements(): readonly Ordered<NonDeletedExcalidrawElement>[];
37
29
  getFramesIncludingDeleted(): readonly ExcalidrawFrameLikeElement[];
30
+ constructor(elements?: ElementsMapOrArray | null);
38
31
  getSelectedElements(opts: {
39
32
  selectedElementIds: AppState["selectedElementIds"];
40
33
  /**
@@ -73,7 +66,11 @@ declare class Scene {
73
66
  getElementIndex(elementId: string): number;
74
67
  getContainerElement: (element: (ExcalidrawElement & {
75
68
  containerId: ExcalidrawElement["id"] | null;
76
- }) | null) => 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 | null;
69
+ }) | null) => import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawSelectionElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement | null;
77
70
  getElementsFromId: (id: string) => ExcalidrawElement[];
71
+ mutateElement<TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, options?: {
72
+ informMutation: boolean;
73
+ isDragging: boolean;
74
+ }): TElement;
78
75
  }
79
76
  export default Scene;
@@ -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;
@@ -0,0 +1,7 @@
1
+ import type Scene from "./Scene";
2
+ import type { ExcalidrawElement } from "./types";
3
+ export interface Alignment {
4
+ position: "start" | "center" | "end";
5
+ axis: "x" | "y";
6
+ }
7
+ export declare const alignElements: (selectedElements: ExcalidrawElement[], alignment: Alignment, scene: Scene) => ExcalidrawElement[];
@@ -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 { AppState } from "@excalidraw/excalidraw/types";
4
+ import { type Heading } from "./heading";
5
+ import type Scene from "./Scene";
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 } from "./types";
9
9
  export type SuggestedBinding = NonDeleted<ExcalidrawBindableElement> | SuggestedPointBinding;
10
10
  export type SuggestedPointBinding = [
11
11
  NonDeleted<ExcalidrawLinearElement>,
@@ -17,20 +17,20 @@ export declare const isBindingEnabled: (appState: AppState) => boolean;
17
17
  export declare const FIXED_BINDING_DISTANCE = 5;
18
18
  export declare const BINDING_HIGHLIGHT_THICKNESS = 10;
19
19
  export declare const BINDING_HIGHLIGHT_OFFSET = 4;
20
- export declare const bindOrUnbindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, startBindingElement: ExcalidrawBindableElement | null | "keep", endBindingElement: ExcalidrawBindableElement | null | "keep", elementsMap: NonDeletedSceneElementsMap, scene: Scene) => void;
21
- export declare const bindOrUnbindLinearElements: (selectedElements: NonDeleted<ExcalidrawLinearElement>[], elementsMap: NonDeletedSceneElementsMap, elements: readonly NonDeletedExcalidrawElement[], scene: Scene, isBindingEnabled: boolean, draggingPoints: readonly number[] | null, zoom?: AppState["zoom"]) => void;
20
+ export declare const bindOrUnbindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, startBindingElement: ExcalidrawBindableElement | null | "keep", endBindingElement: ExcalidrawBindableElement | null | "keep", scene: Scene) => void;
21
+ export declare const bindOrUnbindLinearElements: (selectedElements: NonDeleted<ExcalidrawLinearElement>[], isBindingEnabled: boolean, draggingPoints: readonly number[] | null, scene: Scene, zoom?: AppState["zoom"]) => void;
22
22
  export declare const getSuggestedBindingsForArrows: (selectedElements: NonDeleted<ExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, zoom: AppState["zoom"]) => SuggestedBinding[];
23
23
  export declare const maybeBindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, appState: AppState, pointerCoords: {
24
24
  x: number;
25
25
  y: number;
26
- }, elementsMap: NonDeletedSceneElementsMap, elements: readonly NonDeletedExcalidrawElement[]) => void;
27
- export declare const bindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: NonDeletedSceneElementsMap) => void;
26
+ }, scene: Scene) => void;
27
+ export declare const bindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", scene: Scene) => void;
28
28
  export declare const isLinearElementSimpleAndAlreadyBound: (linearElement: NonDeleted<ExcalidrawLinearElement>, alreadyBoundToId: ExcalidrawBindableElement["id"] | undefined, bindableElement: ExcalidrawBindableElement) => boolean;
29
29
  export declare const getHoveredElementForBinding: (pointerCoords: {
30
30
  x: number;
31
31
  y: number;
32
32
  }, elements: readonly NonDeletedExcalidrawElement[], elementsMap: NonDeletedSceneElementsMap, zoom?: AppState["zoom"], fullShape?: boolean, considerAllElements?: boolean) => NonDeleted<ExcalidrawBindableElement> | null;
33
- export declare const updateBoundElements: (changedElement: NonDeletedExcalidrawElement, elementsMap: NonDeletedSceneElementsMap | SceneElementsMap, options?: {
33
+ export declare const updateBoundElements: (changedElement: NonDeletedExcalidrawElement, scene: Scene, options?: {
34
34
  simultaneouslyUpdated?: readonly ExcalidrawElement[];
35
35
  newSize?: {
36
36
  width: number;
@@ -38,14 +38,14 @@ export declare const updateBoundElements: (changedElement: NonDeletedExcalidrawE
38
38
  };
39
39
  changedElements?: Map<string, OrderedExcalidrawElement>;
40
40
  }) => void;
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;
41
+ export declare const getHeadingForElbowArrowSnap: (p: Readonly<GlobalPoint>, otherPoint: Readonly<GlobalPoint>, bindableElement: ExcalidrawBindableElement | undefined | null, aabb: Bounds | undefined | null, origPoint: GlobalPoint, zoom?: AppState["zoom"]) => Heading;
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
- export declare const calculateFixedPointForElbowArrowBinding: (linearElement: NonDeleted<ExcalidrawElbowArrowElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap) => {
45
+ export declare const calculateFixedPointForElbowArrowBinding: (linearElement: NonDeleted<ExcalidrawElbowArrowElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end") => {
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 { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
3
+ import type Scene from "./Scene";
4
4
  export declare const dragSelectedElements: (pointerDownState: PointerDownState, _selectedElements: NonDeletedExcalidrawElement[], offset: {
5
5
  x: number;
6
6
  y: number;
@@ -9,7 +9,7 @@ export declare const dragSelectedElements: (pointerDownState: PointerDownState,
9
9
  y: number;
10
10
  }, gridSize: NullableGridSize) => void;
11
11
  export declare const getDragOffsetXY: (selectedElements: NonDeletedExcalidrawElement[], x: number, y: number) => [number, number];
12
- export declare const dragNewElement: ({ newElement, elementType, originX, originY, x, y, width, height, shouldMaintainAspectRatio, shouldResizeFromCenter, zoom, widthAspectRatio, originOffset, informMutation, }: {
12
+ export declare const dragNewElement: ({ newElement, elementType, originX, originY, x, y, width, height, shouldMaintainAspectRatio, shouldResizeFromCenter, zoom, scene, widthAspectRatio, originOffset, informMutation, }: {
13
13
  newElement: NonDeletedExcalidrawElement;
14
14
  elementType: AppState["activeTool"]["type"];
15
15
  originX: number;
@@ -21,6 +21,7 @@ export declare const dragNewElement: ({ newElement, elementType, originX, origin
21
21
  shouldMaintainAspectRatio: boolean;
22
22
  shouldResizeFromCenter: boolean;
23
23
  zoom: NormalizedZoomValue;
24
+ scene: Scene;
24
25
  /** whether to keep given aspect ratio when `isResizeWithSidesSameLength` is
25
26
  true */
26
27
  widthAspectRatio?: number | null | undefined;
@@ -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>;
@@ -8,7 +8,7 @@ export declare const BASE_PADDING = 40;
8
8
  */
9
9
  export declare const updateElbowArrowPoints: (arrow: Readonly<ExcalidrawElbowArrowElement>, elementsMap: NonDeletedSceneElementsMap, updates: {
10
10
  points?: readonly LocalPoint[];
11
- fixedSegments?: FixedSegment[] | null;
11
+ fixedSegments?: readonly FixedSegment[] | null;
12
12
  startBinding?: FixedPointBinding | null;
13
13
  endBinding?: FixedPointBinding | null;
14
14
  }, options?: {
@@ -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,9 +1,10 @@
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
+ import type Scene from "./Scene";
3
4
  type LinkDirection = "up" | "right" | "down" | "left";
4
5
  export declare const getLinkDirectionFromKey: (key: string) => LinkDirection;
5
6
  export declare const getPredecessors: (node: ExcalidrawBindableElement, elementsMap: ElementsMap, direction: LinkDirection) => ExcalidrawBindableElement[];
6
- export declare const addNewNodes: (startNode: ExcalidrawFlowchartNodeElement, elementsMap: ElementsMap, appState: AppState, direction: LinkDirection, numberOfNodes: number) => ExcalidrawElement[];
7
+ export declare const addNewNodes: (startNode: ExcalidrawFlowchartNodeElement, appState: AppState, direction: LinkDirection, scene: Scene, numberOfNodes: number) => ExcalidrawElement[];
7
8
  export declare class FlowChartNavigator {
8
9
  isExploring: boolean;
9
10
  private sameLevelNodes;
@@ -18,7 +19,7 @@ export declare class FlowChartCreator {
18
19
  private numberOfNodes;
19
20
  private direction;
20
21
  pendingNodes: PendingExcalidrawElements | null;
21
- createNodes(startNode: ExcalidrawFlowchartNodeElement, elementsMap: ElementsMap, appState: AppState, direction: LinkDirection): void;
22
+ createNodes(startNode: ExcalidrawFlowchartNodeElement, appState: AppState, direction: LinkDirection, scene: Scene): void;
22
23
  clear(): void;
23
24
  }
24
25
  export declare const isNodeInFlowchart: (element: ExcalidrawFlowchartNodeElement, elementsMap: ElementsMap) => boolean;
@@ -1,4 +1,7 @@
1
- import type { ExcalidrawElement, OrderedExcalidrawElement } from "./element/types";
1
+ import type { ElementsMap, 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
  *
@@ -39,7 +42,7 @@ export declare const orderByFractionalIndex: (elements: OrderedExcalidrawElement
39
42
  * Synchronizes invalid fractional indices of moved elements with the array order by mutating passed elements.
40
43
  * If the synchronization fails or the result is invalid, it fallbacks to `syncInvalidIndices`.
41
44
  */
42
- export declare const syncMovedIndices: (elements: readonly ExcalidrawElement[], movedElements: Map<string, ExcalidrawElement>) => OrderedExcalidrawElement[];
45
+ export declare const syncMovedIndices: (elements: readonly ExcalidrawElement[], movedElements: ElementsMap) => OrderedExcalidrawElement[];
43
46
  /**
44
47
  * Synchronizes all invalid fractional indices with the array order by mutating passed elements.
45
48
  *