@excalidraw/excalidraw 0.18.0-817d8c5 → 0.18.0-8608d7b

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 (306) hide show
  1. package/CHANGELOG.md +11 -11
  2. package/dist/dev/chunk-CP5DND7P.js +7 -0
  3. package/dist/dev/chunk-CP5DND7P.js.map +7 -0
  4. package/dist/dev/chunk-FB2NA5UG.js +4132 -0
  5. package/dist/dev/chunk-FB2NA5UG.js.map +7 -0
  6. package/dist/dev/{chunk-LMHBUWQS.js → chunk-PWQMCSHA.js} +27 -8
  7. package/dist/dev/chunk-PWQMCSHA.js.map +7 -0
  8. package/dist/dev/chunk-YMRX7R7U.js +5671 -0
  9. package/dist/dev/chunk-YMRX7R7U.js.map +7 -0
  10. package/dist/dev/data/{image-V26YBSDB.js → image-L23D26XS.js} +3 -3
  11. package/dist/dev/index.css +3945 -3493
  12. package/dist/dev/index.css.map +3 -3
  13. package/dist/dev/index.js +33090 -24527
  14. package/dist/dev/index.js.map +4 -4
  15. package/dist/dev/locales/{en-OZCJJ2HN.js → en-V3NQTBPG.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-A66AFZZU.js +7 -0
  19. package/dist/prod/chunk-GF46JCB3.js +12 -0
  20. package/dist/prod/chunk-HT4FKTIQ.js +4 -0
  21. package/dist/prod/chunk-LS7FJGPW.js +86 -0
  22. package/dist/prod/data/image-NWF7UX55.js +1 -0
  23. package/dist/prod/index.css +1 -1
  24. package/dist/prod/index.js +27 -16
  25. package/dist/prod/locales/{en-B4ZKOASM.js → en-LQE6K457.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 +52 -12
  31. package/dist/types/{excalidraw → common/src}/emitter.d.ts +1 -1
  32. package/dist/types/{excalidraw/fonts/FontMetadata.d.ts → common/src/font-metadata.d.ts} +15 -5
  33. package/dist/types/common/src/index.d.ts +12 -0
  34. package/dist/types/{excalidraw → common/src}/points.d.ts +2 -0
  35. package/dist/types/common/src/promise-pool.d.ts +6 -0
  36. package/dist/types/{excalidraw → common/src}/utility-types.d.ts +5 -0
  37. package/dist/types/{excalidraw → common/src}/utils.d.ts +25 -11
  38. package/dist/types/{excalidraw/scene → element/src}/Scene.d.ts +19 -18
  39. package/dist/types/element/src/align.d.ts +8 -0
  40. package/dist/types/{excalidraw/element → element/src}/binding.d.ts +30 -19
  41. package/dist/types/{excalidraw/element → element/src}/bounds.d.ts +20 -7
  42. package/dist/types/element/src/collision.d.ts +32 -0
  43. package/dist/types/{excalidraw/scene → element/src}/comparisons.d.ts +1 -1
  44. package/dist/types/{excalidraw/element → element/src}/cropElement.d.ts +1 -1
  45. package/dist/types/{excalidraw/change.d.ts → element/src/delta.d.ts} +78 -41
  46. package/dist/types/element/src/distance.d.ts +3 -0
  47. package/dist/types/{excalidraw → element/src}/distribute.d.ts +3 -2
  48. package/dist/types/{excalidraw/element → element/src}/dragElements.d.ts +5 -4
  49. package/dist/types/element/src/duplicate.d.ts +63 -0
  50. package/dist/types/{excalidraw/element → element/src}/elbowArrow.d.ts +1 -1
  51. package/dist/types/{excalidraw/element → element/src}/elementLink.d.ts +1 -1
  52. package/dist/types/element/src/embeddable.d.ts +10 -0
  53. package/dist/types/{excalidraw/element → element/src}/flowchart.d.ts +4 -3
  54. package/dist/types/{excalidraw → element/src}/fractionalIndex.d.ts +12 -3
  55. package/dist/types/{excalidraw → element/src}/frame.d.ts +8 -7
  56. package/dist/types/{excalidraw → element/src}/groups.d.ts +6 -5
  57. package/dist/types/{excalidraw/element → element/src}/heading.d.ts +1 -2
  58. package/dist/types/{excalidraw/element → element/src}/image.d.ts +2 -2
  59. package/dist/types/element/src/index.d.ts +58 -0
  60. package/dist/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +24 -37
  61. package/dist/types/element/src/mutateElement.d.ts +21 -0
  62. package/dist/types/{excalidraw/element → element/src}/newElement.d.ts +4 -43
  63. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  64. package/dist/types/{excalidraw/renderer → element/src}/renderElement.d.ts +6 -3
  65. package/dist/types/{excalidraw/element → element/src}/resizeElements.d.ts +7 -6
  66. package/dist/types/{excalidraw/element → element/src}/resizeTest.d.ts +4 -4
  67. package/dist/types/{excalidraw/scene → element/src}/selection.d.ts +13 -7
  68. package/dist/types/element/src/shape.d.ts +42 -0
  69. package/dist/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +1 -1
  70. package/dist/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +3 -3
  71. package/dist/types/element/src/store.d.ts +237 -0
  72. package/dist/types/{excalidraw/element → element/src}/textElement.d.ts +8 -7
  73. package/dist/types/{excalidraw/element → element/src}/transformHandles.d.ts +7 -7
  74. package/dist/types/{excalidraw/element → element/src}/typeChecks.d.ts +21 -3
  75. package/dist/types/{excalidraw/element → element/src}/types.d.ts +17 -4
  76. package/dist/types/element/src/utils.d.ts +31 -0
  77. package/dist/types/{excalidraw → element/src}/zindex.d.ts +5 -4
  78. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +115 -109
  79. package/dist/types/excalidraw/actions/actionAlign.d.ts +7 -7
  80. package/dist/types/excalidraw/actions/actionBoundText.d.ts +82 -78
  81. package/dist/types/excalidraw/actions/actionCanvas.d.ts +705 -502
  82. package/dist/types/excalidraw/actions/actionClipboard.d.ts +242 -228
  83. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +40 -38
  84. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +120 -113
  85. package/dist/types/excalidraw/actions/actionDistribute.d.ts +3 -3
  86. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +3 -7
  87. package/dist/types/excalidraw/actions/actionElementLink.d.ts +43 -41
  88. package/dist/types/excalidraw/actions/actionElementLock.d.ts +94 -92
  89. package/dist/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +40 -48
  90. package/dist/types/excalidraw/actions/actionExport.d.ts +405 -387
  91. package/dist/types/excalidraw/actions/actionFinalize.d.ts +112 -67
  92. package/dist/types/excalidraw/actions/actionFlip.d.ts +3 -3
  93. package/dist/types/excalidraw/actions/actionFrame.d.ts +276 -268
  94. package/dist/types/excalidraw/actions/actionGroup.d.ts +79 -75
  95. package/dist/types/excalidraw/actions/actionHistory.d.ts +2 -3
  96. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +568 -42
  97. package/dist/types/excalidraw/actions/actionLink.d.ts +41 -39
  98. package/dist/types/excalidraw/actions/actionMenu.d.ts +116 -110
  99. package/dist/types/excalidraw/actions/actionNavigate.d.ts +77 -73
  100. package/dist/types/excalidraw/actions/actionProperties.d.ts +571 -524
  101. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +41 -39
  102. package/dist/types/excalidraw/actions/actionStyles.d.ts +42 -40
  103. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  104. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +40 -38
  105. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +40 -38
  106. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +39 -209
  107. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +19 -0
  108. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +39 -38
  109. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +40 -39
  110. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +40 -39
  111. package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -8
  112. package/dist/types/excalidraw/actions/index.d.ts +2 -1
  113. package/dist/types/excalidraw/actions/manager.d.ts +2 -2
  114. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  115. package/dist/types/excalidraw/actions/types.d.ts +6 -5
  116. package/dist/types/excalidraw/animated-trail.d.ts +7 -1
  117. package/dist/types/excalidraw/appState.d.ts +42 -28
  118. package/dist/types/excalidraw/charts.d.ts +1 -1
  119. package/dist/types/excalidraw/clipboard.d.ts +71 -8
  120. package/dist/types/excalidraw/components/Actions.d.ts +19 -9
  121. package/dist/types/excalidraw/components/App.d.ts +58 -34
  122. package/dist/types/excalidraw/components/Avatar.d.ts +1 -1
  123. package/dist/types/excalidraw/components/ButtonIcon.d.ts +2 -1
  124. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -1
  125. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +10 -5
  126. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +1 -1
  127. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +1 -2
  128. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +6 -5
  129. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +4 -4
  130. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -3
  131. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +1 -1
  132. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +4 -4
  133. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -2
  134. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +2 -1
  135. package/dist/types/excalidraw/components/ConfirmDialog.d.ts +1 -1
  136. package/dist/types/excalidraw/components/ContextMenu.d.ts +2 -2
  137. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +23 -0
  138. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  139. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +2 -2
  140. package/dist/types/excalidraw/components/DialogActionButton.d.ts +1 -1
  141. package/dist/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +1 -1
  142. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +5 -4
  143. package/dist/types/excalidraw/components/Ellipsify.d.ts +4 -0
  144. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +1 -1
  145. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  146. package/dist/types/excalidraw/components/FixedSideContainer.d.ts +1 -1
  147. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
  148. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +3 -2
  149. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +3 -3
  150. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +4 -2
  151. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +1 -1
  152. package/dist/types/excalidraw/components/HintViewer.d.ts +1 -1
  153. package/dist/types/excalidraw/components/IconPicker.d.ts +1 -1
  154. package/dist/types/excalidraw/components/ImageExportDialog.d.ts +2 -2
  155. package/dist/types/excalidraw/components/InitializeApp.d.ts +1 -1
  156. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  157. package/dist/types/excalidraw/components/Island.d.ts +1 -1
  158. package/dist/types/excalidraw/components/JSONExportDialog.d.ts +2 -2
  159. package/dist/types/excalidraw/components/LayerUI.d.ts +5 -4
  160. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -1
  161. package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +1 -1
  162. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +4 -4
  163. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -2
  164. package/dist/types/excalidraw/components/LoadingMessage.d.ts +1 -1
  165. package/dist/types/excalidraw/components/MagicButton.d.ts +1 -1
  166. package/dist/types/excalidraw/components/MobileMenu.d.ts +5 -7
  167. package/dist/types/excalidraw/components/MobileToolBar.d.ts +11 -0
  168. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +1 -1
  169. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +2 -1
  170. package/dist/types/excalidraw/components/PublishLibrary.d.ts +1 -1
  171. package/dist/types/excalidraw/components/{ButtonIconSelect.d.ts → RadioSelection.d.ts} +1 -1
  172. package/dist/types/excalidraw/components/Range.d.ts +3 -3
  173. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  174. package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
  175. package/dist/types/excalidraw/components/Sidebar/common.d.ts +1 -1
  176. package/dist/types/excalidraw/components/Stack.d.ts +1 -1
  177. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  178. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +1 -1
  179. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +2 -1
  180. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  181. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +14 -4
  182. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +2 -2
  183. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  184. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +3 -3
  185. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +2 -2
  186. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  187. package/dist/types/excalidraw/components/Stats/Position.d.ts +2 -2
  188. package/dist/types/excalidraw/components/Stats/index.d.ts +2 -2
  189. package/dist/types/excalidraw/components/Stats/utils.d.ts +4 -11
  190. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -2
  191. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +1 -1
  192. package/dist/types/excalidraw/components/TextField.d.ts +2 -1
  193. package/dist/types/excalidraw/components/Toast.d.ts +1 -1
  194. package/dist/types/excalidraw/components/ToolButton.d.ts +2 -2
  195. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  196. package/dist/types/excalidraw/components/Tooltip.d.ts +1 -1
  197. package/dist/types/excalidraw/components/UnlockPopup.d.ts +8 -0
  198. package/dist/types/excalidraw/components/UserList.d.ts +1 -1
  199. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -3
  200. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -2
  201. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +3 -3
  202. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +5 -3
  203. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +2 -1
  204. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +2 -2
  205. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +1 -1
  206. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +5 -4
  207. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +3 -2
  208. package/dist/types/excalidraw/components/icons.d.ts +10 -1
  209. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
  210. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +4 -1
  211. package/dist/types/excalidraw/components/shapes.d.ts +190 -0
  212. package/dist/types/excalidraw/context/tunnels.d.ts +1 -1
  213. package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +1 -1
  214. package/dist/types/excalidraw/data/blob.d.ts +7 -11
  215. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  216. package/dist/types/excalidraw/data/index.d.ts +2 -2
  217. package/dist/types/excalidraw/data/json.d.ts +1 -1
  218. package/dist/types/excalidraw/data/library.d.ts +3 -3
  219. package/dist/types/excalidraw/data/reconcile.d.ts +3 -2
  220. package/dist/types/excalidraw/data/resave.d.ts +1 -1
  221. package/dist/types/excalidraw/data/restore.d.ts +6 -1
  222. package/dist/types/excalidraw/data/transform.d.ts +4 -4
  223. package/dist/types/excalidraw/data/types.d.ts +6 -3
  224. package/dist/types/excalidraw/editor-jotai.d.ts +6 -6
  225. package/dist/types/excalidraw/eraser/index.d.ts +12 -0
  226. package/dist/types/excalidraw/errors.d.ts +0 -3
  227. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -13
  228. package/dist/types/excalidraw/history.d.ts +31 -23
  229. package/dist/types/excalidraw/hooks/useEmitter.d.ts +1 -1
  230. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  231. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  232. package/dist/types/excalidraw/i18n.d.ts +1 -1
  233. package/dist/types/excalidraw/index.d.ts +18 -16
  234. package/dist/types/excalidraw/laser-trails.d.ts +1 -1
  235. package/dist/types/excalidraw/lasso/index.d.ts +16 -0
  236. package/dist/types/excalidraw/lasso/utils.d.ts +13 -0
  237. package/dist/types/excalidraw/renderer/helpers.d.ts +8 -3
  238. package/dist/types/excalidraw/renderer/staticScene.d.ts +4 -1
  239. package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +2 -2
  240. package/dist/types/excalidraw/scene/Renderer.d.ts +3 -4
  241. package/dist/types/excalidraw/scene/export.d.ts +1 -1
  242. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  243. package/dist/types/excalidraw/scene/scroll.d.ts +1 -1
  244. package/dist/types/excalidraw/scene/scrollbars.d.ts +2 -3
  245. package/dist/types/excalidraw/scene/types.d.ts +6 -4
  246. package/dist/types/excalidraw/snapping.d.ts +5 -6
  247. package/dist/types/excalidraw/types.d.ts +55 -26
  248. package/dist/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +4 -2
  249. package/dist/types/math/{angle.d.ts → src/angle.d.ts} +2 -0
  250. package/dist/types/math/src/constants.d.ts +3 -0
  251. package/dist/types/math/src/curve.d.ts +74 -0
  252. package/dist/types/math/{index.d.ts → src/index.d.ts} +1 -0
  253. package/dist/types/math/{point.d.ts → src/point.d.ts} +3 -3
  254. package/dist/types/math/{polygon.d.ts → src/polygon.d.ts} +1 -0
  255. package/dist/types/math/{rectangle.d.ts → src/rectangle.d.ts} +2 -0
  256. package/dist/types/math/{segment.d.ts → src/segment.d.ts} +2 -1
  257. package/dist/types/math/{types.d.ts → src/types.d.ts} +1 -0
  258. package/dist/types/math/{vector.d.ts → src/vector.d.ts} +8 -2
  259. package/dist/types/utils/{bbox.d.ts → src/bbox.d.ts} +1 -1
  260. package/dist/types/utils/{export.d.ts → src/export.d.ts} +2 -2
  261. package/dist/types/utils/{index.d.ts → src/index.d.ts} +1 -1
  262. package/dist/types/utils/{geometry → src}/shape.d.ts +2 -15
  263. package/dist/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +2 -2
  264. package/history.ts +148 -109
  265. package/package.json +26 -11
  266. package/dist/dev/chunk-3SN6HYVK.js +0 -25695
  267. package/dist/dev/chunk-3SN6HYVK.js.map +0 -7
  268. package/dist/dev/chunk-53KHN5WM.js +0 -7
  269. package/dist/dev/chunk-53KHN5WM.js.map +0 -7
  270. package/dist/dev/chunk-LMHBUWQS.js.map +0 -7
  271. package/dist/dev/chunk-OKSO7T74.js +0 -4132
  272. package/dist/dev/chunk-OKSO7T74.js.map +0 -7
  273. package/dist/prod/chunk-36CXSE6H.js +0 -34
  274. package/dist/prod/chunk-6U3AYISY.js +0 -12
  275. package/dist/prod/chunk-EIO257PC.js +0 -86
  276. package/dist/prod/chunk-G5N3DNGT.js +0 -7
  277. package/dist/prod/data/image-N4WCURRR.js +0 -1
  278. package/dist/types/excalidraw/align.d.ts +0 -7
  279. package/dist/types/excalidraw/components/ButtonSelect.d.ts +0 -9
  280. package/dist/types/excalidraw/element/collision.d.ts +0 -26
  281. package/dist/types/excalidraw/element/distance.d.ts +0 -3
  282. package/dist/types/excalidraw/element/index.d.ts +0 -26
  283. package/dist/types/excalidraw/element/mutateElement.d.ts +0 -13
  284. package/dist/types/excalidraw/element/utils.d.ts +0 -21
  285. package/dist/types/excalidraw/scene/Shape.d.ts +0 -17
  286. package/dist/types/excalidraw/scene/ShapeCache.d.ts +0 -25
  287. package/dist/types/excalidraw/shapes.d.ts +0 -85
  288. package/dist/types/excalidraw/store.d.ts +0 -129
  289. package/dist/types/excalidraw/visualdebug.d.ts +0 -41
  290. package/dist/types/math/curve.d.ts +0 -40
  291. package/dist/types/utils/collision.d.ts +0 -9
  292. /package/dist/dev/data/{image-V26YBSDB.js.map → image-L23D26XS.js.map} +0 -0
  293. /package/dist/dev/locales/{en-OZCJJ2HN.js.map → en-V3NQTBPG.js.map} +0 -0
  294. /package/dist/types/{excalidraw → common/src}/keys.d.ts +0 -0
  295. /package/dist/types/{excalidraw → common/src}/queue.d.ts +0 -0
  296. /package/dist/types/{excalidraw → common/src}/random.d.ts +0 -0
  297. /package/dist/types/{excalidraw/data → common/src}/url.d.ts +0 -0
  298. /package/dist/types/{excalidraw/element → element/src}/containerCache.d.ts +0 -0
  299. /package/dist/types/{excalidraw/element → element/src}/sortElements.d.ts +0 -0
  300. /package/dist/types/{excalidraw/element → element/src}/textMeasurements.d.ts +0 -0
  301. /package/dist/types/{excalidraw/element → element/src}/textWrapping.d.ts +0 -0
  302. /package/dist/types/math/{ellipse.d.ts → src/ellipse.d.ts} +0 -0
  303. /package/dist/types/math/{line.d.ts → src/line.d.ts} +0 -0
  304. /package/dist/types/math/{range.d.ts → src/range.d.ts} +0 -0
  305. /package/dist/types/math/{triangle.d.ts → src/triangle.d.ts} +0 -0
  306. /package/dist/types/math/{utils.d.ts → src/utils.d.ts} +0 -0
@@ -0,0 +1,190 @@
1
+ import type { AppClassProperties } from "../types";
2
+ export declare const SHAPES: readonly [{
3
+ readonly icon: import("react/jsx-runtime").JSX.Element;
4
+ readonly value: "selection";
5
+ readonly key: "v";
6
+ readonly numericKey: "1";
7
+ readonly fillable: true;
8
+ }, {
9
+ readonly icon: import("react/jsx-runtime").JSX.Element;
10
+ readonly value: "rectangle";
11
+ readonly key: "r";
12
+ readonly numericKey: "2";
13
+ readonly fillable: true;
14
+ }, {
15
+ readonly icon: import("react/jsx-runtime").JSX.Element;
16
+ readonly value: "diamond";
17
+ readonly key: "d";
18
+ readonly numericKey: "3";
19
+ readonly fillable: true;
20
+ }, {
21
+ readonly icon: import("react/jsx-runtime").JSX.Element;
22
+ readonly value: "ellipse";
23
+ readonly key: "o";
24
+ readonly numericKey: "4";
25
+ readonly fillable: true;
26
+ }, {
27
+ readonly icon: import("react/jsx-runtime").JSX.Element;
28
+ readonly value: "arrow";
29
+ readonly key: "a";
30
+ readonly numericKey: "5";
31
+ readonly fillable: true;
32
+ }, {
33
+ readonly icon: import("react/jsx-runtime").JSX.Element;
34
+ readonly value: "line";
35
+ readonly key: "l";
36
+ readonly numericKey: "6";
37
+ readonly fillable: true;
38
+ }, {
39
+ readonly icon: import("react/jsx-runtime").JSX.Element;
40
+ readonly value: "freedraw";
41
+ readonly key: readonly ["p", "x"];
42
+ readonly numericKey: "7";
43
+ readonly fillable: false;
44
+ }, {
45
+ readonly icon: import("react/jsx-runtime").JSX.Element;
46
+ readonly value: "text";
47
+ readonly key: "t";
48
+ readonly numericKey: "8";
49
+ readonly fillable: false;
50
+ }, {
51
+ readonly icon: import("react/jsx-runtime").JSX.Element;
52
+ readonly value: "image";
53
+ readonly key: null;
54
+ readonly numericKey: "9";
55
+ readonly fillable: false;
56
+ }, {
57
+ readonly icon: import("react/jsx-runtime").JSX.Element;
58
+ readonly value: "eraser";
59
+ readonly key: "e";
60
+ readonly numericKey: "0";
61
+ readonly fillable: false;
62
+ }];
63
+ export declare const getToolbarTools: (app: AppClassProperties) => readonly [{
64
+ readonly icon: import("react/jsx-runtime").JSX.Element;
65
+ readonly value: "selection";
66
+ readonly key: "v";
67
+ readonly numericKey: "1";
68
+ readonly fillable: true;
69
+ }, {
70
+ readonly icon: import("react/jsx-runtime").JSX.Element;
71
+ readonly value: "rectangle";
72
+ readonly key: "r";
73
+ readonly numericKey: "2";
74
+ readonly fillable: true;
75
+ }, {
76
+ readonly icon: import("react/jsx-runtime").JSX.Element;
77
+ readonly value: "diamond";
78
+ readonly key: "d";
79
+ readonly numericKey: "3";
80
+ readonly fillable: true;
81
+ }, {
82
+ readonly icon: import("react/jsx-runtime").JSX.Element;
83
+ readonly value: "ellipse";
84
+ readonly key: "o";
85
+ readonly numericKey: "4";
86
+ readonly fillable: true;
87
+ }, {
88
+ readonly icon: import("react/jsx-runtime").JSX.Element;
89
+ readonly value: "arrow";
90
+ readonly key: "a";
91
+ readonly numericKey: "5";
92
+ readonly fillable: true;
93
+ }, {
94
+ readonly icon: import("react/jsx-runtime").JSX.Element;
95
+ readonly value: "line";
96
+ readonly key: "l";
97
+ readonly numericKey: "6";
98
+ readonly fillable: true;
99
+ }, {
100
+ readonly icon: import("react/jsx-runtime").JSX.Element;
101
+ readonly value: "freedraw";
102
+ readonly key: readonly ["p", "x"];
103
+ readonly numericKey: "7";
104
+ readonly fillable: false;
105
+ }, {
106
+ readonly icon: import("react/jsx-runtime").JSX.Element;
107
+ readonly value: "text";
108
+ readonly key: "t";
109
+ readonly numericKey: "8";
110
+ readonly fillable: false;
111
+ }, {
112
+ readonly icon: import("react/jsx-runtime").JSX.Element;
113
+ readonly value: "image";
114
+ readonly key: null;
115
+ readonly numericKey: "9";
116
+ readonly fillable: false;
117
+ }, {
118
+ readonly icon: import("react/jsx-runtime").JSX.Element;
119
+ readonly value: "eraser";
120
+ readonly key: "e";
121
+ readonly numericKey: "0";
122
+ readonly fillable: false;
123
+ }] | readonly [{
124
+ readonly value: "lasso";
125
+ readonly icon: import("react/jsx-runtime").JSX.Element;
126
+ readonly key: "v";
127
+ readonly numericKey: "1";
128
+ readonly fillable: true;
129
+ }, ...({
130
+ readonly icon: import("react/jsx-runtime").JSX.Element;
131
+ readonly value: "selection";
132
+ readonly key: "v";
133
+ readonly numericKey: "1";
134
+ readonly fillable: true;
135
+ } | {
136
+ readonly icon: import("react/jsx-runtime").JSX.Element;
137
+ readonly value: "rectangle";
138
+ readonly key: "r";
139
+ readonly numericKey: "2";
140
+ readonly fillable: true;
141
+ } | {
142
+ readonly icon: import("react/jsx-runtime").JSX.Element;
143
+ readonly value: "diamond";
144
+ readonly key: "d";
145
+ readonly numericKey: "3";
146
+ readonly fillable: true;
147
+ } | {
148
+ readonly icon: import("react/jsx-runtime").JSX.Element;
149
+ readonly value: "ellipse";
150
+ readonly key: "o";
151
+ readonly numericKey: "4";
152
+ readonly fillable: true;
153
+ } | {
154
+ readonly icon: import("react/jsx-runtime").JSX.Element;
155
+ readonly value: "arrow";
156
+ readonly key: "a";
157
+ readonly numericKey: "5";
158
+ readonly fillable: true;
159
+ } | {
160
+ readonly icon: import("react/jsx-runtime").JSX.Element;
161
+ readonly value: "line";
162
+ readonly key: "l";
163
+ readonly numericKey: "6";
164
+ readonly fillable: true;
165
+ } | {
166
+ readonly icon: import("react/jsx-runtime").JSX.Element;
167
+ readonly value: "freedraw";
168
+ readonly key: readonly ["p", "x"];
169
+ readonly numericKey: "7";
170
+ readonly fillable: false;
171
+ } | {
172
+ readonly icon: import("react/jsx-runtime").JSX.Element;
173
+ readonly value: "text";
174
+ readonly key: "t";
175
+ readonly numericKey: "8";
176
+ readonly fillable: false;
177
+ } | {
178
+ readonly icon: import("react/jsx-runtime").JSX.Element;
179
+ readonly value: "image";
180
+ readonly key: null;
181
+ readonly numericKey: "9";
182
+ readonly fillable: false;
183
+ } | {
184
+ readonly icon: import("react/jsx-runtime").JSX.Element;
185
+ readonly value: "eraser";
186
+ readonly key: "e";
187
+ readonly numericKey: "0";
188
+ readonly fillable: false;
189
+ })[]];
190
+ export declare const findShapeByKey: (key: string, app: AppClassProperties) => "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "lasso" | "eraser" | null;
@@ -1,6 +1,6 @@
1
+ import { createIsolation } from "jotai-scope";
1
2
  import React from "react";
2
3
  import tunnel from "tunnel-rat";
3
- import { createIsolation } from "jotai-scope";
4
4
  export type Tunnel = ReturnType<typeof tunnel>;
5
5
  type TunnelsContextValue = {
6
6
  MainMenuTunnel: Tunnel;
@@ -1,4 +1,4 @@
1
- import type { EDITOR_LS_KEYS } from "../constants";
1
+ import type { EDITOR_LS_KEYS } from "@excalidraw/common";
2
2
  import type { JSONValue } from "../types";
3
3
  export declare class EditorLocalStorage {
4
4
  static has(key: typeof EDITOR_LS_KEYS[keyof typeof EDITOR_LS_KEYS]): boolean;
@@ -1,12 +1,12 @@
1
- import { IMAGE_MIME_TYPES, MIME_TYPES } from "../constants";
2
- import type { ExcalidrawElement, FileId } from "../element/types";
1
+ import { IMAGE_MIME_TYPES, MIME_TYPES } from "@excalidraw/common";
2
+ import type { ValueOf } from "@excalidraw/common/utility-types";
3
+ import type { ExcalidrawElement, FileId } from "@excalidraw/element/types";
3
4
  import type { AppState, DataURL, LibraryItem } from "../types";
4
- import type { ValueOf } from "../utility-types";
5
- import type { FileSystemHandle } from "./filesystem";
5
+ import type { FileSystemHandle } from "browser-fs-access";
6
6
  import type { ImportedLibraryData } from "./types";
7
7
  export declare const getMimeType: (blob: Blob | string) => string;
8
8
  export declare const getFileHandleType: (handle: FileSystemHandle | null) => string | null;
9
- export declare const isImageFileHandleType: (type: string | null) => type is "svg" | "png";
9
+ export declare const isImageFileHandleType: (type: string | null) => type is "png" | "svg";
10
10
  export declare const isImageFileHandle: (handle: FileSystemHandle | null) => boolean;
11
11
  export declare const isSupportedImageFileType: (type: string | null | undefined) => boolean;
12
12
  export declare const isSupportedImageFile: (blob: Blob | null | undefined) => blob is Blob & {
@@ -40,12 +40,8 @@ export declare const SVGStringToFile: (SVGString: string, filename?: string) =>
40
40
  type: typeof MIME_TYPES.svg;
41
41
  };
42
42
  export declare const ImageURLToFile: (imageUrl: string, filename?: string) => Promise<File | undefined>;
43
- export declare const getFileFromEvent: (event: React.DragEvent<HTMLDivElement>) => Promise<{
44
- file: File | null;
45
- fileHandle: FileSystemHandle | null;
46
- }>;
47
- export declare const getFileHandle: (event: React.DragEvent<HTMLDivElement>) => Promise<FileSystemHandle | null>;
48
- export declare const createFile: (blob: File | Blob | ArrayBuffer, mimeType: ValueOf<typeof MIME_TYPES>, name: string | undefined) => File;
43
+ export declare const getFileHandle: (event: DragEvent | React.DragEvent | DataTransferItem) => Promise<FileSystemHandle | null>;
44
+ export declare const createFile: (blob: File | Blob | ArrayBuffer, mimeType: string, name: string | undefined) => File;
49
45
  /** attempts to detect correct mimeType if none is set, or if an image
50
46
  * has an incorrect extension.
51
47
  * Note: doesn't handle missing .excalidraw/.excalidrawlib extension */
@@ -1,6 +1,6 @@
1
- import type { FileSystemHandle } from "browser-fs-access";
2
1
  import { supported as nativeFileSystemSupported } from "browser-fs-access";
3
- import { MIME_TYPES } from "../constants";
2
+ import { MIME_TYPES } from "@excalidraw/common";
3
+ import type { FileSystemHandle } from "browser-fs-access";
4
4
  type FILE_EXTENSION = Exclude<keyof typeof MIME_TYPES, "binary">;
5
5
  export declare const fileOpen: <M extends boolean | undefined = false>(opts: {
6
6
  extensions?: FILE_EXTENSION[] | undefined;
@@ -1,7 +1,7 @@
1
- import type { ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeletedExcalidrawElement } from "../element/types";
1
+ import type { ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
2
+ import type { FileSystemHandle } from "./filesystem";
2
3
  import type { ExportType } from "../scene/types";
3
4
  import type { AppState, BinaryFiles } from "../types";
4
- import type { FileSystemHandle } from "./filesystem";
5
5
  export { loadFromBlob } from "./blob";
6
6
  export { loadFromJSON, saveAsJSON } from "./json";
7
7
  export type ExportedElements = readonly NonDeletedExcalidrawElement[] & {
@@ -1,4 +1,4 @@
1
- import type { ExcalidrawElement } from "../element/types";
1
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
2
2
  import type { AppState, BinaryFiles, LibraryItems } from "../types";
3
3
  import type { ImportedDataState, ImportedLibraryData } from "./types";
4
4
  export declare const serializeAsJSON: (elements: readonly ExcalidrawElement[], appState: Partial<AppState>, files: BinaryFiles, type: "local" | "database") => string;
@@ -1,7 +1,7 @@
1
- import type { LibraryItems, ExcalidrawImperativeAPI, LibraryItemsSource, LibraryItems_anyVersion } from "../types";
1
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
2
+ import type { MaybePromise } from "@excalidraw/common/utility-types";
2
3
  import type App from "../components/App";
3
- import type { ExcalidrawElement } from "../element/types";
4
- import type { MaybePromise } from "../utility-types";
4
+ import type { LibraryItems, ExcalidrawImperativeAPI, LibraryItemsSource, LibraryItems_anyVersion } from "../types";
5
5
  export type LibraryPersistedData = {
6
6
  libraryItems: LibraryItems;
7
7
  };
@@ -1,6 +1,7 @@
1
- import type { OrderedExcalidrawElement } from "../element/types";
1
+ import type { OrderedExcalidrawElement } from "@excalidraw/element/types";
2
+ import type { MakeBrand } from "@excalidraw/common/utility-types";
2
3
  import type { AppState } from "../types";
3
- import type { MakeBrand } from "../utility-types";
4
4
  export type ReconciledExcalidrawElement = OrderedExcalidrawElement & MakeBrand<"ReconciledElement">;
5
5
  export type RemoteExcalidrawElement = OrderedExcalidrawElement & MakeBrand<"RemoteExcalidrawElement">;
6
+ export declare const shouldDiscardRemoteElement: (localAppState: AppState, local: OrderedExcalidrawElement | undefined, remote: RemoteExcalidrawElement) => boolean;
6
7
  export declare const reconcileElements: (localElements: readonly OrderedExcalidrawElement[], remoteElements: readonly RemoteExcalidrawElement[], localAppState: AppState) => ReconciledExcalidrawElement[];
@@ -1,4 +1,4 @@
1
- import type { ExcalidrawElement } from "../element/types";
1
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
2
2
  import type { AppState, BinaryFiles } from "../types";
3
3
  export declare const resaveAsImageWithScene: (elements: readonly ExcalidrawElement[], appState: AppState, files: BinaryFiles, name: string) => Promise<{
4
4
  fileHandle: import("browser-fs-access").FileSystemHandle;
@@ -1,4 +1,4 @@
1
- import type { ExcalidrawElement, OrderedExcalidrawElement } from "../element/types";
1
+ import type { ExcalidrawArrowElement, ExcalidrawElement, ExcalidrawLinearElement, ExcalidrawSelectionElement, ExcalidrawTextElement, OrderedExcalidrawElement } from "@excalidraw/element/types";
2
2
  import type { AppState, BinaryFiles, LibraryItem } from "../types";
3
3
  import type { ImportedDataState } from "./types";
4
4
  type RestoredAppState = Omit<AppState, "offsetTop" | "offsetLeft" | "width" | "height">;
@@ -8,14 +8,19 @@ export type RestoredDataState = {
8
8
  appState: RestoredAppState;
9
9
  files: BinaryFiles;
10
10
  };
11
+ export declare const restoreElement: (element: Exclude<ExcalidrawElement, ExcalidrawSelectionElement>, opts?: {
12
+ deleteInvisibleElements?: boolean;
13
+ }) => ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement | ExcalidrawArrowElement | null;
11
14
  export declare const restoreElements: (elements: ImportedDataState["elements"], localElements: readonly ExcalidrawElement[] | null | undefined, opts?: {
12
15
  refreshDimensions?: boolean;
13
16
  repairBindings?: boolean;
17
+ deleteInvisibleElements?: boolean;
14
18
  } | undefined) => OrderedExcalidrawElement[];
15
19
  export declare const restoreAppState: (appState: ImportedDataState["appState"], localAppState: Partial<AppState> | null | undefined) => RestoredAppState;
16
20
  export declare const restore: (data: Pick<ImportedDataState, "appState" | "elements" | "files"> | null, localAppState: Partial<AppState> | null | undefined, localElements: readonly ExcalidrawElement[] | null | undefined, elementsConfig?: {
17
21
  refreshDimensions?: boolean;
18
22
  repairBindings?: boolean;
23
+ deleteInvisibleElements?: boolean;
19
24
  }) => RestoredDataState;
20
25
  export declare const restoreLibraryItems: (libraryItems: ImportedDataState["libraryItems"], defaultStatus: LibraryItem["status"]) => LibraryItem[];
21
26
  export {};
@@ -1,6 +1,6 @@
1
- import type { ElementConstructorOpts } from "../element/newElement";
2
- import type { ExcalidrawBindableElement, ExcalidrawElement, ExcalidrawFrameElement, ExcalidrawFreeDrawElement, ExcalidrawGenericElement, ExcalidrawIframeLikeElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawMagicFrameElement, ExcalidrawSelectionElement, ExcalidrawTextElement, FileId, FontFamilyValues, TextAlign, VerticalAlign } from "../element/types";
3
- import type { MarkOptional } from "../utility-types";
1
+ import type { ElementConstructorOpts } from "@excalidraw/element";
2
+ import type { ExcalidrawBindableElement, ExcalidrawElement, ExcalidrawFrameElement, ExcalidrawFreeDrawElement, ExcalidrawGenericElement, ExcalidrawIframeLikeElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawMagicFrameElement, ExcalidrawSelectionElement, ExcalidrawTextElement, FileId, FontFamilyValues, TextAlign, VerticalAlign } from "@excalidraw/element/types";
3
+ import type { MarkOptional } from "@excalidraw/common/utility-types";
4
4
  export type ValidLinearElement = {
5
5
  type: "arrow" | "line";
6
6
  x: number;
@@ -78,4 +78,4 @@ export type ExcalidrawElementSkeleton = Extract<Exclude<ExcalidrawElement, Excal
78
78
  } & Partial<ExcalidrawMagicFrameElement>);
79
79
  export declare const convertToExcalidrawElements: (elementsSkeleton: ExcalidrawElementSkeleton[] | null, opts?: {
80
80
  regenerateIds: boolean;
81
- }) => import("../element/types").OrderedExcalidrawElement[];
81
+ }) => import("@excalidraw/element/types").OrderedExcalidrawElement[];
@@ -1,7 +1,7 @@
1
- import type { ExcalidrawElement } from "../element/types";
2
- import type { AppState, BinaryFiles, LibraryItems, LibraryItems_anyVersion } from "../types";
1
+ import type { VERSIONS } from "@excalidraw/common";
2
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
3
3
  import type { cleanAppStateForExport } from "../appState";
4
- import type { VERSIONS } from "../constants";
4
+ import type { AppState, BinaryFiles, LibraryItem, LibraryItems, LibraryItems_anyVersion } from "../types";
5
5
  export interface ExportedDataState {
6
6
  type: string;
7
7
  version: number;
@@ -43,3 +43,6 @@ export interface ImportedLibraryData extends Partial<ExportedLibraryData> {
43
43
  /** @deprecated v1 */
44
44
  library?: LibraryItems;
45
45
  }
46
+ export type ExcalidrawLibraryIds = {
47
+ itemIds: LibraryItem["id"][];
48
+ };
@@ -1,14 +1,14 @@
1
- import { atom, createStore, type PrimitiveAtom } from "jotai";
1
+ import { atom, createStore, type PrimitiveAtom, type WritableAtom } from "jotai";
2
2
  import { createIsolation } from "jotai-scope";
3
- export { atom, PrimitiveAtom };
3
+ export { atom, PrimitiveAtom, WritableAtom };
4
4
  export declare const useAtom: typeof import("jotai").useAtom, useSetAtom: typeof import("jotai").useSetAtom, useAtomValue: typeof import("jotai").useAtomValue, useStore: (options?: {
5
5
  store?: {
6
6
  get: <Value>(atom: import("jotai").Atom<Value>) => Value;
7
- set: <Value_1, Args extends unknown[], Result>(atom: import("jotai").WritableAtom<Value_1, Args, Result>, ...args: Args) => Result;
7
+ set: <Value_1, Args extends unknown[], Result>(atom: WritableAtom<Value_1, Args, Result>, ...args: Args) => Result;
8
8
  sub: (atom: import("jotai").Atom<unknown>, listener: () => void) => () => void;
9
9
  } | ({
10
10
  get: <Value_2>(atom: import("jotai").Atom<Value_2>) => Value_2;
11
- set: <Value_1_1, Args_1 extends unknown[], Result_1>(atom: import("jotai").WritableAtom<Value_1_1, Args_1, Result_1>, ...args: Args_1) => Result_1;
11
+ set: <Value_1_1, Args_1 extends unknown[], Result_1>(atom: WritableAtom<Value_1_1, Args_1, Result_1>, ...args: Args_1) => Result_1;
12
12
  sub: (atom: import("jotai").Atom<unknown>, listener: () => void) => () => void;
13
13
  } & {
14
14
  dev4_get_internal_weak_map: () => WeakMap<import("jotai").Atom<unknown>, {
@@ -29,11 +29,11 @@ export declare const useAtom: typeof import("jotai").useAtom, useSetAtom: typeof
29
29
  }) | undefined;
30
30
  } | undefined) => {
31
31
  get: <Value_3>(atom: import("jotai").Atom<Value_3>) => Value_3;
32
- set: <Value_1_2, Args_2 extends unknown[], Result_2>(atom: import("jotai").WritableAtom<Value_1_2, Args_2, Result_2>, ...args: Args_2) => Result_2;
32
+ set: <Value_1_2, Args_2 extends unknown[], Result_2>(atom: WritableAtom<Value_1_2, Args_2, Result_2>, ...args: Args_2) => Result_2;
33
33
  sub: (atom: import("jotai").Atom<unknown>, listener: () => void) => () => void;
34
34
  } | ({
35
35
  get: <Value_4>(atom: import("jotai").Atom<Value_4>) => Value_4;
36
- set: <Value_1_3, Args_3 extends unknown[], Result_3>(atom: import("jotai").WritableAtom<Value_1_3, Args_3, Result_3>, ...args: Args_3) => Result_3;
36
+ set: <Value_1_3, Args_3 extends unknown[], Result_3>(atom: WritableAtom<Value_1_3, Args_3, Result_3>, ...args: Args_3) => Result_3;
37
37
  sub: (atom: import("jotai").Atom<unknown>, listener: () => void) => () => void;
38
38
  } & {
39
39
  dev4_get_internal_weak_map: () => WeakMap<import("jotai").Atom<unknown>, {
@@ -0,0 +1,12 @@
1
+ import { AnimatedTrail } from "../animated-trail";
2
+ import type { AnimationFrameHandler } from "../animation-frame-handler";
3
+ import type App from "../components/App";
4
+ export declare class EraserTrail extends AnimatedTrail {
5
+ private elementsToErase;
6
+ private groupsToErase;
7
+ constructor(animationFrameHandler: AnimationFrameHandler, app: App);
8
+ startPath(x: number, y: number): void;
9
+ addPointToPath(x: number, y: number, restore?: boolean): string[];
10
+ private updateElementsToBeErased;
11
+ endPath(): void;
12
+ }
@@ -10,9 +10,6 @@ export declare class ImageSceneDataError extends Error {
10
10
  code: ImageSceneDataErrorCode;
11
11
  constructor(message?: string, code?: ImageSceneDataErrorCode);
12
12
  }
13
- export declare class InvalidFractionalIndexError extends Error {
14
- code: "ELEMENT_HAS_INVALID_INDEX";
15
- }
16
13
  type WorkerErrorCodes = "WORKER_URL_NOT_DEFINED" | "WORKER_IN_THE_MAIN_CHUNK";
17
14
  export declare class WorkerUrlNotDefinedError extends Error {
18
15
  code: WorkerErrorCodes;
@@ -1,7 +1,7 @@
1
+ import { type FontMetadata } from "@excalidraw/common";
2
+ import type { ExcalidrawElement } from "@excalidraw/element/types";
3
+ import type { Scene } from "@excalidraw/element";
1
4
  import { ExcalidrawFontFace } from "./ExcalidrawFontFace";
2
- import { type FontMetadata } from "./FontMetadata";
3
- import type { ExcalidrawElement, ExcalidrawTextElement, FontFamilyValues } from "../element/types";
4
- import type Scene from "../scene/Scene";
5
5
  export declare class Fonts {
6
6
  static readonly loadedFontsCache: Set<string>;
7
7
  private static _registered;
@@ -73,16 +73,6 @@ export declare class Fonts {
73
73
  */
74
74
  private static getAllFamilies;
75
75
  }
76
- /**
77
- * Calculates vertical offset for a text with alphabetic baseline.
78
- */
79
- export declare const getVerticalOffset: (fontFamily: ExcalidrawTextElement["fontFamily"], fontSize: ExcalidrawTextElement["fontSize"], lineHeightPx: number) => number;
80
- /**
81
- * Gets line height forr a selected family.
82
- */
83
- export declare const getLineHeight: (fontFamily: FontFamilyValues) => number & {
84
- _brand: "unitlessLineHeight";
85
- };
86
76
  export interface ExcalidrawFontFaceDescriptor {
87
77
  uri: string;
88
78
  descriptors?: FontFaceDescriptors;
@@ -1,40 +1,48 @@
1
- import type { AppStateChange, ElementsChange } from "./change";
2
- import type { SceneElementsMap } from "./element/types";
3
- import { Emitter } from "./emitter";
4
- import type { Snapshot } from "./store";
1
+ import { Emitter } from "@excalidraw/common";
2
+ import { StoreDelta } from "@excalidraw/element";
3
+ import type { StoreSnapshot, Store } from "@excalidraw/element";
4
+ import type { SceneElementsMap } from "@excalidraw/element/types";
5
5
  import type { AppState } from "./types";
6
+ export declare class HistoryDelta extends StoreDelta {
7
+ /**
8
+ * Apply the delta to the passed elements and appState, does not modify the snapshot.
9
+ */
10
+ applyTo(elements: SceneElementsMap, appState: AppState, snapshot: StoreSnapshot): [SceneElementsMap, AppState, boolean];
11
+ /**
12
+ * Overriding once to avoid type casting everywhere.
13
+ */
14
+ static calculate(prevSnapshot: StoreSnapshot, nextSnapshot: StoreSnapshot): HistoryDelta;
15
+ /**
16
+ * Overriding once to avoid type casting everywhere.
17
+ */
18
+ static inverse(delta: StoreDelta): HistoryDelta;
19
+ /**
20
+ * Overriding once to avoid type casting everywhere.
21
+ */
22
+ static applyLatestChanges(delta: StoreDelta, prevElements: SceneElementsMap, nextElements: SceneElementsMap, modifierOptions?: "deleted" | "inserted"): HistoryDelta;
23
+ }
6
24
  export declare class HistoryChangedEvent {
7
25
  readonly isUndoStackEmpty: boolean;
8
26
  readonly isRedoStackEmpty: boolean;
9
27
  constructor(isUndoStackEmpty?: boolean, isRedoStackEmpty?: boolean);
10
28
  }
11
29
  export declare class History {
30
+ private readonly store;
12
31
  readonly onHistoryChangedEmitter: Emitter<[HistoryChangedEvent]>;
13
- private readonly undoStack;
14
- private readonly redoStack;
32
+ readonly undoStack: HistoryDelta[];
33
+ readonly redoStack: HistoryDelta[];
15
34
  get isUndoStackEmpty(): boolean;
16
35
  get isRedoStackEmpty(): boolean;
36
+ constructor(store: Store);
17
37
  clear(): void;
18
38
  /**
19
- * Record a local change which will go into the history
39
+ * Record a non-empty local durable increment, which will go into the undo stack..
40
+ * Do not re-record history entries, which were already pushed to undo / redo stack, as part of history action.
20
41
  */
21
- record(elementsChange: ElementsChange, appStateChange: AppStateChange): void;
22
- undo(elements: SceneElementsMap, appState: AppState, snapshot: Readonly<Snapshot>): void | [SceneElementsMap, AppState];
23
- redo(elements: SceneElementsMap, appState: AppState, snapshot: Readonly<Snapshot>): void | [SceneElementsMap, AppState];
42
+ record(delta: StoreDelta): void;
43
+ undo(elements: SceneElementsMap, appState: AppState): void | [SceneElementsMap, AppState];
44
+ redo(elements: SceneElementsMap, appState: AppState): void | [SceneElementsMap, AppState];
24
45
  private perform;
25
46
  private static pop;
26
47
  private static push;
27
48
  }
28
- export declare class HistoryEntry {
29
- readonly appStateChange: AppStateChange;
30
- readonly elementsChange: ElementsChange;
31
- private constructor();
32
- static create(appStateChange: AppStateChange, elementsChange: ElementsChange): HistoryEntry;
33
- inverse(): HistoryEntry;
34
- applyTo(elements: SceneElementsMap, appState: AppState, snapshot: Readonly<Snapshot>): [SceneElementsMap, AppState, boolean];
35
- /**
36
- * Apply latest (remote) changes to the history entry, creates new instance of `HistoryEntry`.
37
- */
38
- applyLatestChanges(elements: SceneElementsMap): HistoryEntry;
39
- isEmpty(): boolean;
40
- }
@@ -1,2 +1,2 @@
1
- import type { Emitter } from "../emitter";
1
+ import type { Emitter } from "@excalidraw/common";
2
2
  export declare const useEmitter: <TEvent extends unknown>(emitter: Emitter<[TEvent]>, initialState: TEvent) => TEvent;
@@ -3,7 +3,7 @@ export type SvgCache = Map<LibraryItem["id"], SVGSVGElement>;
3
3
  export declare const libraryItemSvgsCache: import("jotai/vanilla/atom").PrimitiveAtom<SvgCache> & {
4
4
  init: SvgCache;
5
5
  };
6
- export declare const useLibraryItemSvg: (id: LibraryItem["id"] | null, elements: LibraryItem["elements"] | undefined, svgCache: SvgCache) => SVGSVGElement | undefined;
6
+ export declare const useLibraryItemSvg: (id: LibraryItem["id"] | null, elements: LibraryItem["elements"] | undefined, svgCache: SvgCache, ref: React.RefObject<HTMLDivElement | null>) => SVGSVGElement | undefined;
7
7
  export declare const useLibraryCache: () => {
8
8
  clearLibraryCache: () => void;
9
9
  deleteItemsFromLibraryCache: (items: LibraryItem["id"][]) => void;
@@ -0,0 +1,14 @@
1
+ export type CaretPosition = {
2
+ start: number;
3
+ end: number;
4
+ };
5
+ export declare const saveCaretPosition: () => CaretPosition | null;
6
+ export declare const restoreCaretPosition: (position: CaretPosition | null) => void;
7
+ export declare const withCaretPositionPreservation: (callback: () => void, isCompactMode: boolean, isEditingText: boolean, onPreventClose?: () => void) => void;
8
+ export declare const useTextEditorFocus: () => {
9
+ saveCaretPosition: () => void;
10
+ restoreCaretPosition: () => void;
11
+ clearSavedPosition: () => void;
12
+ hasSavedPosition: boolean;
13
+ };
14
+ export declare const temporarilyDisableTextEditorBlur: (duration?: number) => void;
@@ -1,5 +1,5 @@
1
+ import type { NestedKeyOf } from "@excalidraw/common/utility-types";
1
2
  import fallbackLangData from "./locales/en.json";
2
- import type { NestedKeyOf } from "./utility-types";
3
3
  export interface Language {
4
4
  code: string;
5
5
  label: string;
@@ -1,32 +1,35 @@
1
1
  import React from "react";
2
+ import Footer from "./components/footer/FooterCenter";
3
+ import LiveCollaborationTrigger from "./components/live-collaboration/LiveCollaborationTrigger";
4
+ import MainMenu from "./components/main-menu/MainMenu";
5
+ import WelcomeScreen from "./components/welcome-screen/WelcomeScreen";
2
6
  import "./css/app.scss";
3
7
  import "./css/styles.scss";
4
8
  import "./fonts/fonts.css";
5
9
  import type { ExcalidrawProps } from "./types";
6
- import Footer from "./components/footer/FooterCenter";
7
- import MainMenu from "./components/main-menu/MainMenu";
8
- import WelcomeScreen from "./components/welcome-screen/WelcomeScreen";
9
- import LiveCollaborationTrigger from "./components/live-collaboration/LiveCollaborationTrigger";
10
10
  export declare const Excalidraw: React.MemoExoticComponent<(props: ExcalidrawProps) => import("react/jsx-runtime").JSX.Element>;
11
- export { getSceneVersion, hashElementsVersion, hashString, isInvisiblySmallElement, getNonDeletedElements, getTextFromElements, } from "./element";
11
+ export { getSceneVersion, hashElementsVersion, hashString, getNonDeletedElements, } from "@excalidraw/element";
12
+ export { getTextFromElements } from "@excalidraw/element";
13
+ export { isInvisiblySmallElement } from "@excalidraw/element";
12
14
  export { defaultLang, useI18n, languages } from "./i18n";
13
- export { restore, restoreAppState, restoreElements, restoreLibraryItems, } from "./data/restore";
15
+ export { restore, restoreAppState, restoreElement, restoreElements, restoreLibraryItems, } from "./data/restore";
14
16
  export { reconcileElements } from "./data/reconcile";
15
17
  export { exportToCanvas, exportToBlob, exportToSvg, exportToClipboard, } from "@excalidraw/utils/export";
16
18
  export { serializeAsJSON, serializeLibraryAsJSON } from "./data/json";
17
19
  export { loadFromBlob, loadSceneOrLibraryFromBlob, loadLibraryFromBlob, } from "./data/blob";
18
- export { getFreeDrawSvgPath } from "./renderer/renderElement";
20
+ export { getFreeDrawSvgPath } from "@excalidraw/element";
19
21
  export { mergeLibraryItems, getLibraryItemsHash } from "./data/library";
20
- export { isLinearElement } from "./element/typeChecks";
21
- export { FONT_FAMILY, THEME, MIME_TYPES, ROUNDNESS, DEFAULT_LASER_COLOR, UserIdleState, } from "./constants";
22
- export { mutateElement, newElementWith, bumpVersion, } from "./element/mutateElement";
23
- export { CaptureUpdateAction } from "./store";
22
+ export { isLinearElement } from "@excalidraw/element";
23
+ export { FONT_FAMILY, THEME, MIME_TYPES, ROUNDNESS, DEFAULT_LASER_COLOR, UserIdleState, normalizeLink, } from "@excalidraw/common";
24
+ export { mutateElement, newElementWith, bumpVersion, } from "@excalidraw/element";
25
+ export { CaptureUpdateAction } from "@excalidraw/element";
24
26
  export { parseLibraryTokensFromUrl, useHandleLibrary } from "./data/library";
25
- export { sceneCoordsToViewportCoords, viewportCoordsToSceneCoords, } from "./utils";
27
+ export { sceneCoordsToViewportCoords, viewportCoordsToSceneCoords, } from "@excalidraw/common";
26
28
  export { Sidebar } from "./components/Sidebar/Sidebar";
27
29
  export { Button } from "./components/Button";
28
30
  export { Footer };
29
31
  export { MainMenu };
32
+ export { Ellipsify } from "./components/Ellipsify";
30
33
  export { useDevice } from "./components/App";
31
34
  export { WelcomeScreen };
32
35
  export { LiveCollaborationTrigger };
@@ -34,12 +37,11 @@ export { Stats } from "./components/Stats";
34
37
  export { DefaultSidebar } from "./components/DefaultSidebar";
35
38
  export { TTDDialog } from "./components/TTDDialog/TTDDialog";
36
39
  export { TTDDialogTrigger } from "./components/TTDDialog/TTDDialogTrigger";
37
- export { normalizeLink } from "./data/url";
38
40
  export { zoomToFitBounds } from "./actions/actionCanvas";
39
41
  export { convertToExcalidrawElements } from "./data/transform";
40
- export { getCommonBounds, getVisibleSceneBounds } from "./element/bounds";
42
+ export { getCommonBounds, getVisibleSceneBounds } from "@excalidraw/element";
41
43
  export { elementsOverlappingBBox, isElementInsideBBox, elementPartiallyOverlapsWithOrContainsBBox, } from "@excalidraw/utils/withinBounds";
42
44
  export { DiagramToCodePlugin } from "./components/DiagramToCodePlugin/DiagramToCodePlugin";
43
45
  export { getDataURL } from "./data/blob";
44
- export { isElementLink } from "./element/elementLink";
45
- export { setCustomTextMetricsProvider } from "./element/textMeasurements";
46
+ export { isElementLink } from "@excalidraw/element";
47
+ export { setCustomTextMetricsProvider } from "@excalidraw/element";
@@ -1,5 +1,5 @@
1
- import type { Trail } from "./animated-trail";
2
1
  import { AnimatedTrail } from "./animated-trail";
2
+ import type { Trail } from "./animated-trail";
3
3
  import type { AnimationFrameHandler } from "./animation-frame-handler";
4
4
  import type App from "./components/App";
5
5
  export declare class LaserTrails implements Trail {