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

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 (268) 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-3SN6HYVK.js → chunk-GBJ7S76A.js} +15490 -22586
  5. package/dist/dev/chunk-GBJ7S76A.js.map +7 -0
  6. package/dist/dev/{chunk-53KHN5WM.js → chunk-GIMGG4AT.js} +2 -2
  7. package/dist/dev/{chunk-53KHN5WM.js.map → chunk-GIMGG4AT.js.map} +1 -1
  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-JN3Y4CVN.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 +30389 -22974
  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-G5N3DNGT.js → chunk-GKI4RZ6C.js} +1 -1
  19. package/dist/prod/{chunk-6U3AYISY.js → chunk-IUH5AXLB.js} +1 -1
  20. package/dist/prod/chunk-LS7FJGPW.js +86 -0
  21. package/dist/prod/chunk-TVF64BAY.js +33 -0
  22. package/dist/prod/data/image-CZ2OEVDB.js +1 -0
  23. package/dist/prod/index.css +1 -1
  24. package/dist/prod/index.js +18 -15
  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 +10 -12
  36. package/dist/types/{excalidraw/scene → element/src}/Shape.d.ts +2 -2
  37. package/dist/types/{excalidraw/scene → element/src}/ShapeCache.d.ts +4 -4
  38. package/dist/types/{excalidraw → element/src}/align.d.ts +2 -2
  39. package/dist/types/{excalidraw/element → element/src}/binding.d.ts +8 -8
  40. package/dist/types/{excalidraw/element → element/src}/bounds.d.ts +7 -2
  41. package/dist/types/{excalidraw/element → element/src}/collision.d.ts +3 -3
  42. package/dist/types/{excalidraw/scene → element/src}/comparisons.d.ts +1 -1
  43. package/dist/types/{excalidraw → element/src}/distribute.d.ts +1 -1
  44. package/dist/types/{excalidraw/element → element/src}/dragElements.d.ts +3 -3
  45. package/dist/types/element/src/duplicate.d.ts +63 -0
  46. package/dist/types/{excalidraw/element → element/src}/elementLink.d.ts +1 -1
  47. package/dist/types/element/src/embeddable.d.ts +10 -0
  48. package/dist/types/{excalidraw/element → element/src}/flowchart.d.ts +1 -1
  49. package/dist/types/{excalidraw → element/src}/fractionalIndex.d.ts +4 -1
  50. package/dist/types/{excalidraw → element/src}/frame.d.ts +7 -7
  51. package/dist/types/{excalidraw → element/src}/groups.d.ts +5 -5
  52. package/dist/types/{excalidraw/element → element/src}/heading.d.ts +1 -2
  53. package/dist/types/{excalidraw/element → element/src}/image.d.ts +2 -2
  54. package/dist/types/{excalidraw/element → element/src}/index.d.ts +0 -10
  55. package/dist/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +7 -7
  56. package/dist/types/{excalidraw/element → element/src}/mutateElement.d.ts +1 -1
  57. package/dist/types/{excalidraw/element → element/src}/newElement.d.ts +3 -43
  58. package/dist/types/{excalidraw/renderer → element/src}/renderElement.d.ts +3 -3
  59. package/dist/types/{excalidraw/element → element/src}/resizeElements.d.ts +4 -4
  60. package/dist/types/{excalidraw/element → element/src}/resizeTest.d.ts +4 -4
  61. package/dist/types/{excalidraw/scene → element/src}/selection.d.ts +13 -2
  62. package/dist/types/element/src/shapes.d.ts +23 -0
  63. package/dist/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +1 -1
  64. package/dist/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +1 -1
  65. package/dist/types/{excalidraw/element → element/src}/textElement.d.ts +5 -5
  66. package/dist/types/{excalidraw/element → element/src}/transformHandles.d.ts +7 -7
  67. package/dist/types/{excalidraw/element → element/src}/typeChecks.d.ts +2 -2
  68. package/dist/types/{excalidraw/element → element/src}/types.d.ts +2 -2
  69. package/dist/types/{excalidraw → element/src}/zindex.d.ts +5 -4
  70. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +73 -70
  71. package/dist/types/excalidraw/actions/actionAlign.d.ts +7 -7
  72. package/dist/types/excalidraw/actions/actionBoundText.d.ts +54 -52
  73. package/dist/types/excalidraw/actions/actionCanvas.d.ts +542 -353
  74. package/dist/types/excalidraw/actions/actionClipboard.d.ts +155 -149
  75. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +26 -25
  76. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +73 -70
  77. package/dist/types/excalidraw/actions/actionDistribute.d.ts +3 -3
  78. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +3 -7
  79. package/dist/types/excalidraw/actions/actionElementLink.d.ts +30 -29
  80. package/dist/types/excalidraw/actions/actionElementLock.d.ts +53 -52
  81. package/dist/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +26 -35
  82. package/dist/types/excalidraw/actions/actionExport.d.ts +300 -291
  83. package/dist/types/excalidraw/actions/actionFinalize.d.ts +41 -39
  84. package/dist/types/excalidraw/actions/actionFlip.d.ts +3 -3
  85. package/dist/types/excalidraw/actions/actionFrame.d.ts +212 -208
  86. package/dist/types/excalidraw/actions/actionGroup.d.ts +51 -49
  87. package/dist/types/excalidraw/actions/actionHistory.d.ts +1 -1
  88. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +27 -26
  89. package/dist/types/excalidraw/actions/actionLink.d.ts +26 -25
  90. package/dist/types/excalidraw/actions/actionMenu.d.ts +73 -70
  91. package/dist/types/excalidraw/actions/actionNavigate.d.ts +48 -46
  92. package/dist/types/excalidraw/actions/actionProperties.d.ts +317 -302
  93. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +26 -25
  94. package/dist/types/excalidraw/actions/actionStyles.d.ts +28 -27
  95. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  96. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +26 -25
  97. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +26 -25
  98. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +50 -48
  99. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +25 -25
  100. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +26 -26
  101. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +26 -26
  102. package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -8
  103. package/dist/types/excalidraw/actions/index.d.ts +1 -0
  104. package/dist/types/excalidraw/actions/manager.d.ts +2 -2
  105. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  106. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  107. package/dist/types/excalidraw/animated-trail.d.ts +7 -1
  108. package/dist/types/excalidraw/appState.d.ts +32 -31
  109. package/dist/types/excalidraw/change.d.ts +3 -3
  110. package/dist/types/excalidraw/charts.d.ts +1 -1
  111. package/dist/types/excalidraw/clipboard.d.ts +7 -7
  112. package/dist/types/excalidraw/components/Actions.d.ts +3 -3
  113. package/dist/types/excalidraw/components/App.d.ts +38 -19
  114. package/dist/types/excalidraw/components/Avatar.d.ts +1 -1
  115. package/dist/types/excalidraw/components/ButtonIcon.d.ts +1 -1
  116. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +4 -4
  117. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +1 -2
  118. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -2
  119. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +1 -1
  120. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +1 -1
  121. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +3 -3
  122. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +1 -1
  123. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -1
  124. package/dist/types/excalidraw/components/ConfirmDialog.d.ts +1 -1
  125. package/dist/types/excalidraw/components/ContextMenu.d.ts +2 -2
  126. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  127. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +2 -2
  128. package/dist/types/excalidraw/components/DialogActionButton.d.ts +1 -1
  129. package/dist/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +1 -1
  130. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +2 -2
  131. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  132. package/dist/types/excalidraw/components/FixedSideContainer.d.ts +1 -1
  133. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
  134. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +1 -1
  135. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +3 -3
  136. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +1 -1
  137. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +1 -1
  138. package/dist/types/excalidraw/components/HintViewer.d.ts +1 -1
  139. package/dist/types/excalidraw/components/IconPicker.d.ts +1 -1
  140. package/dist/types/excalidraw/components/ImageExportDialog.d.ts +2 -2
  141. package/dist/types/excalidraw/components/InitializeApp.d.ts +1 -1
  142. package/dist/types/excalidraw/components/Island.d.ts +1 -1
  143. package/dist/types/excalidraw/components/JSONExportDialog.d.ts +2 -2
  144. package/dist/types/excalidraw/components/LayerUI.d.ts +3 -3
  145. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -1
  146. package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +1 -1
  147. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +3 -3
  148. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -2
  149. package/dist/types/excalidraw/components/LoadingMessage.d.ts +1 -1
  150. package/dist/types/excalidraw/components/MagicButton.d.ts +1 -1
  151. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -3
  152. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +1 -1
  153. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  154. package/dist/types/excalidraw/components/PublishLibrary.d.ts +1 -1
  155. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  156. package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
  157. package/dist/types/excalidraw/components/Sidebar/common.d.ts +1 -1
  158. package/dist/types/excalidraw/components/Stack.d.ts +1 -1
  159. package/dist/types/excalidraw/components/Stats/Angle.d.ts +1 -1
  160. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +1 -1
  161. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  162. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +1 -1
  163. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +1 -1
  164. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  165. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +1 -1
  166. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  167. package/dist/types/excalidraw/components/Stats/Position.d.ts +1 -1
  168. package/dist/types/excalidraw/components/Stats/index.d.ts +2 -2
  169. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  170. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  171. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +1 -1
  172. package/dist/types/excalidraw/components/TextField.d.ts +1 -1
  173. package/dist/types/excalidraw/components/Toast.d.ts +1 -1
  174. package/dist/types/excalidraw/components/ToolButton.d.ts +2 -2
  175. package/dist/types/excalidraw/components/Tooltip.d.ts +1 -1
  176. package/dist/types/excalidraw/components/UserList.d.ts +1 -1
  177. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +3 -3
  178. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -2
  179. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +3 -3
  180. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +1 -1
  181. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +2 -2
  182. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +1 -1
  183. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +2 -2
  184. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  185. package/dist/types/excalidraw/components/icons.d.ts +2 -1
  186. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
  187. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +4 -1
  188. package/dist/types/excalidraw/components/shapes.d.ts +62 -0
  189. package/dist/types/excalidraw/context/tunnels.d.ts +1 -1
  190. package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +1 -1
  191. package/dist/types/excalidraw/data/blob.d.ts +4 -4
  192. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  193. package/dist/types/excalidraw/data/index.d.ts +2 -2
  194. package/dist/types/excalidraw/data/json.d.ts +1 -1
  195. package/dist/types/excalidraw/data/library.d.ts +3 -3
  196. package/dist/types/excalidraw/data/reconcile.d.ts +2 -2
  197. package/dist/types/excalidraw/data/resave.d.ts +1 -1
  198. package/dist/types/excalidraw/data/restore.d.ts +1 -1
  199. package/dist/types/excalidraw/data/transform.d.ts +4 -4
  200. package/dist/types/excalidraw/data/types.d.ts +3 -3
  201. package/dist/types/excalidraw/eraser/index.d.ts +14 -0
  202. package/dist/types/excalidraw/errors.d.ts +0 -3
  203. package/dist/types/excalidraw/fonts/Fonts.d.ts +2 -12
  204. package/dist/types/excalidraw/history.d.ts +2 -2
  205. package/dist/types/excalidraw/i18n.d.ts +1 -1
  206. package/dist/types/excalidraw/index.d.ts +15 -14
  207. package/dist/types/excalidraw/laser-trails.d.ts +1 -1
  208. package/dist/types/excalidraw/lasso/index.d.ts +15 -0
  209. package/dist/types/excalidraw/lasso/utils.d.ts +12 -0
  210. package/dist/types/excalidraw/renderer/helpers.d.ts +2 -2
  211. package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +2 -2
  212. package/dist/types/excalidraw/scene/Renderer.d.ts +3 -3
  213. package/dist/types/excalidraw/scene/Scene.d.ts +5 -5
  214. package/dist/types/excalidraw/scene/export.d.ts +1 -1
  215. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  216. package/dist/types/excalidraw/scene/scroll.d.ts +1 -1
  217. package/dist/types/excalidraw/scene/scrollbars.d.ts +1 -1
  218. package/dist/types/excalidraw/scene/types.d.ts +4 -4
  219. package/dist/types/excalidraw/snapping.d.ts +5 -6
  220. package/dist/types/excalidraw/store.d.ts +2 -2
  221. package/dist/types/excalidraw/types.d.ts +18 -15
  222. package/dist/types/excalidraw/visualdebug.d.ts +2 -2
  223. package/dist/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +1 -1
  224. package/dist/types/math/{point.d.ts → src/point.d.ts} +2 -2
  225. package/dist/types/math/{polygon.d.ts → src/polygon.d.ts} +1 -0
  226. package/dist/types/math/{segment.d.ts → src/segment.d.ts} +1 -1
  227. package/dist/types/math/{types.d.ts → src/types.d.ts} +1 -0
  228. package/dist/types/utils/{bbox.d.ts → src/bbox.d.ts} +1 -1
  229. package/dist/types/utils/{collision.d.ts → src/collision.d.ts} +2 -3
  230. package/dist/types/utils/{export.d.ts → src/export.d.ts} +2 -2
  231. package/dist/types/utils/{index.d.ts → src/index.d.ts} +1 -1
  232. package/dist/types/utils/{geometry → src}/shape.d.ts +2 -15
  233. package/dist/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +2 -2
  234. package/history.ts +4 -2
  235. package/package.json +14 -2
  236. package/dist/dev/chunk-3SN6HYVK.js.map +0 -7
  237. package/dist/dev/chunk-LMHBUWQS.js.map +0 -7
  238. package/dist/dev/chunk-OKSO7T74.js +0 -4132
  239. package/dist/dev/chunk-OKSO7T74.js.map +0 -7
  240. package/dist/prod/chunk-36CXSE6H.js +0 -34
  241. package/dist/prod/chunk-EIO257PC.js +0 -86
  242. package/dist/prod/data/image-N4WCURRR.js +0 -1
  243. package/dist/types/excalidraw/shapes.d.ts +0 -85
  244. package/dist/dev/data/{image-V26YBSDB.js.map → image-JN3Y4CVN.js.map} +0 -0
  245. package/dist/dev/locales/{en-OZCJJ2HN.js.map → en-CKWC2GMK.js.map} +0 -0
  246. package/dist/types/{excalidraw → common/src}/keys.d.ts +0 -0
  247. package/dist/types/{excalidraw → common/src}/queue.d.ts +0 -0
  248. package/dist/types/{excalidraw → common/src}/random.d.ts +0 -0
  249. package/dist/types/{excalidraw/data → common/src}/url.d.ts +0 -0
  250. package/dist/types/{excalidraw → common/src}/utility-types.d.ts +0 -0
  251. package/dist/types/{excalidraw/element → element/src}/containerCache.d.ts +0 -0
  252. package/dist/types/{excalidraw/element → element/src}/cropElement.d.ts +0 -0
  253. package/dist/types/{excalidraw/element → element/src}/distance.d.ts +0 -0
  254. package/dist/types/{excalidraw/element → element/src}/elbowArrow.d.ts +0 -0
  255. package/dist/types/{excalidraw/element → element/src}/sortElements.d.ts +0 -0
  256. package/dist/types/{excalidraw/element → element/src}/textMeasurements.d.ts +0 -0
  257. package/dist/types/{excalidraw/element → element/src}/textWrapping.d.ts +0 -0
  258. package/dist/types/{excalidraw/element → element/src}/utils.d.ts +1 -1
  259. /package/dist/types/math/{angle.d.ts → src/angle.d.ts} +0 -0
  260. /package/dist/types/math/{curve.d.ts → src/curve.d.ts} +0 -0
  261. /package/dist/types/math/{ellipse.d.ts → src/ellipse.d.ts} +0 -0
  262. /package/dist/types/math/{index.d.ts → src/index.d.ts} +0 -0
  263. /package/dist/types/math/{line.d.ts → src/line.d.ts} +0 -0
  264. /package/dist/types/math/{range.d.ts → src/range.d.ts} +0 -0
  265. /package/dist/types/math/{rectangle.d.ts → src/rectangle.d.ts} +0 -0
  266. /package/dist/types/math/{triangle.d.ts → src/triangle.d.ts} +0 -0
  267. /package/dist/types/math/{utils.d.ts → src/utils.d.ts} +0 -0
  268. /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-GKI4RZ6C.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-GKI4RZ6C.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,11 @@ 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;
256
254
  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 { Degrees, GlobalPoint, LineSegment } from "@excalidraw/math";
2
+ import type { AppState } from "@excalidraw/excalidraw/types";
1
3
  import type { ExcalidrawElement, ExcalidrawLinearElement, Arrowhead, ExcalidrawFreeDrawElement, NonDeleted, ElementsMap } from "./types";
2
4
  import type { Drawable, Op } from "roughjs/bin/core";
3
- import type { AppState } from "../types";
4
- import type { Degrees, GlobalPoint, LineSegment } from "@excalidraw/math";
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.
@@ -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,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";
@@ -1,14 +1,4 @@
1
1
  import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted } from "./types";
2
- export { newElement, newTextElement, refreshTextDimensions, newLinearElement, newArrowElement, newImageElement, duplicateElement, } from "./newElement";
3
- export { getElementAbsoluteCoords, getElementBounds, getCommonBounds, getDiamondPoints, getArrowheadPoints, getClosestElementBounds, } from "./bounds";
4
- export { OMIT_SIDES_FOR_MULTIPLE_ELEMENTS, getTransformHandlesFromCoords, getTransformHandles, } from "./transformHandles";
5
- export { resizeTest, getCursorForResizingElement, getElementWithTransformHandleType, getTransformHandleTypeFromCoords, } from "./resizeTest";
6
- export { transformElements, getResizeOffsetXY, getResizeArrowDirection, } from "./resizeElements";
7
- export { dragSelectedElements, getDragOffsetXY, dragNewElement, } from "./dragElements";
8
- export { isTextElement, isExcalidrawElement } from "./typeChecks";
9
- export { redrawTextBoundingBox, getTextFromElements } from "./textElement";
10
- export { getPerfectElementSize, getLockedLinearCursorAlignSize, isInvisiblySmallElement, resizePerfectLineForNWHandler, getNormalizedDimensions, } from "./sizeHelpers";
11
- export { showSelectedShapeActions } from "./showSelectedShapeActions";
12
2
  /**
13
3
  * @deprecated unsafe, use hashElementsVersion instead
14
4
  */
@@ -1,10 +1,10 @@
1
1
  /// <reference types="react" />
2
- import type { NonDeleted, ExcalidrawLinearElement, ExcalidrawElement, PointBinding, ExcalidrawBindableElement, ExcalidrawTextElementWithContainer, ElementsMap, NonDeletedSceneElementsMap, SceneElementsMap, ExcalidrawElbowArrowElement } from "./types";
3
- import type { Bounds } from "./bounds";
4
- import type { AppState, PointerCoords, InteractiveCanvasAppState, AppClassProperties, NullableGridSize, Zoom } from "../types";
5
- import type { Store } from "../store";
6
- import type Scene from "../scene/Scene";
7
2
  import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
3
+ import Scene from "@excalidraw/excalidraw/scene/Scene";
4
+ import type { Store } from "@excalidraw/excalidraw/store";
5
+ import type { AppState, PointerCoords, InteractiveCanvasAppState, AppClassProperties, NullableGridSize, Zoom } from "@excalidraw/excalidraw/types";
6
+ import type { Bounds } from "./bounds";
7
+ import type { NonDeleted, ExcalidrawLinearElement, ExcalidrawElement, PointBinding, ExcalidrawBindableElement, ExcalidrawTextElementWithContainer, ElementsMap, NonDeletedSceneElementsMap, SceneElementsMap, ExcalidrawElbowArrowElement } from "./types";
8
8
  declare const editorMidPointsCache: {
9
9
  version: number | null;
10
10
  points: (GlobalPoint | null)[];
@@ -57,7 +57,7 @@ export declare class LinearElementEditor {
57
57
  static handlePointDragging(event: PointerEvent, app: AppClassProperties, scenePointerX: number, scenePointerY: number, maybeSuggestBinding: (element: NonDeleted<ExcalidrawLinearElement>, pointSceneCoords: {
58
58
  x: number;
59
59
  y: number;
60
- }[]) => void, linearElementEditor: LinearElementEditor, scene: Scene): boolean;
60
+ }[]) => void, linearElementEditor: LinearElementEditor, scene: Scene): LinearElementEditor | null;
61
61
  static handlePointerUp(event: PointerEvent, editingLinearElement: LinearElementEditor, appState: AppState, scene: Scene): LinearElementEditor;
62
62
  static getEditorMidPoints: (element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap, appState: InteractiveCanvasAppState) => (typeof editorMidPointsCache)["points"];
63
63
  static updateEditorMidPointsCache: (element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap, appState: InteractiveCanvasAppState) => void;
@@ -110,7 +110,7 @@ export declare class LinearElementEditor {
110
110
  }[], otherUpdates?: {
111
111
  startBinding?: PointBinding | null;
112
112
  endBinding?: PointBinding | null;
113
- }): void;
113
+ }, sceneElementsMap?: NonDeletedSceneElementsMap): void;
114
114
  static shouldAddMidpoint(linearElementEditor: LinearElementEditor, pointerCoords: PointerCoords, appState: AppState, elementsMap: ElementsMap): boolean;
115
115
  static addMidpoint(linearElementEditor: LinearElementEditor, pointerCoords: PointerCoords, app: AppClassProperties, snapToGrid: boolean, elementsMap: ElementsMap): {
116
116
  pointerDownState: LinearElementEditor["pointerDownState"];