@excalidraw/excalidraw 0.18.0-d92384b77-3 → 0.18.0-dda3affcb

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 (427) hide show
  1. package/CHANGELOG.md +40 -14
  2. package/README.md +1 -1
  3. package/dist/dev/chunk-CP5DND7P.js +7 -0
  4. package/dist/dev/chunk-CP5DND7P.js.map +7 -0
  5. package/dist/dev/chunk-CRKRRBMD.js +5677 -0
  6. package/dist/dev/chunk-CRKRRBMD.js.map +7 -0
  7. package/dist/dev/chunk-FB2NA5UG.js +4132 -0
  8. package/dist/dev/chunk-FB2NA5UG.js.map +7 -0
  9. package/dist/dev/{chunk-LMHBUWQS.js → chunk-QF5FRM6O.js} +16 -5
  10. package/dist/dev/chunk-QF5FRM6O.js.map +7 -0
  11. package/dist/dev/data/{image-N7WNQEIL.js → image-IWGLHPIX.js} +3 -3
  12. package/dist/dev/index.css +3020 -2947
  13. package/dist/dev/index.css.map +3 -3
  14. package/dist/dev/index.js +30758 -24190
  15. package/dist/dev/index.js.map +4 -4
  16. package/dist/dev/locales/{en-OZCJJ2HN.js → en-SMAPCEOQ.js} +2 -2
  17. package/dist/dev/subset-shared.chunk.js +2 -2
  18. package/dist/dev/subset-worker.chunk.js +2 -2
  19. package/dist/prod/chunk-A66AFZZU.js +7 -0
  20. package/dist/prod/chunk-HHV2PJKY.js +4 -0
  21. package/dist/prod/chunk-I4UNSFV6.js +12 -0
  22. package/dist/prod/chunk-LS7FJGPW.js +86 -0
  23. package/dist/prod/data/image-4SM4COIL.js +1 -0
  24. package/dist/prod/index.css +1 -1
  25. package/dist/prod/index.js +27 -16
  26. package/dist/prod/locales/{en-B4ZKOASM.js → en-TYY6KWIJ.js} +1 -1
  27. package/dist/prod/subset-shared.chunk.js +1 -1
  28. package/dist/prod/subset-worker.chunk.js +1 -1
  29. package/dist/types/{excalidraw/binaryheap.d.ts → common/src/binary-heap.d.ts} +12 -12
  30. package/dist/types/{excalidraw → common/src}/colors.d.ts +62 -61
  31. package/dist/types/{excalidraw → common/src}/constants.d.ts +344 -323
  32. package/dist/types/{excalidraw → common/src}/emitter.d.ts +16 -16
  33. package/dist/types/{excalidraw/fonts/FontMetadata.d.ts → common/src/font-metadata.d.ts} +48 -38
  34. package/dist/types/common/src/index.d.ts +12 -0
  35. package/dist/types/{excalidraw → common/src}/keys.d.ts +189 -189
  36. package/dist/types/{excalidraw → common/src}/points.d.ts +9 -7
  37. package/dist/types/common/src/promise-pool.d.ts +6 -0
  38. package/dist/types/{excalidraw → common/src}/queue.d.ts +9 -9
  39. package/dist/types/{excalidraw → common/src}/random.d.ts +3 -3
  40. package/dist/types/{excalidraw/data → common/src}/url.d.ts +7 -7
  41. package/dist/types/{excalidraw → common/src}/utility-types.d.ts +38 -33
  42. package/dist/types/{excalidraw → common/src}/utils.d.ts +267 -256
  43. package/dist/types/{excalidraw/scene → element/src}/Scene.d.ts +76 -79
  44. package/dist/types/element/src/align.d.ts +8 -0
  45. package/dist/types/{excalidraw/element → element/src}/binding.d.ts +110 -99
  46. package/dist/types/{excalidraw/element → element/src}/bounds.d.ts +89 -77
  47. package/dist/types/element/src/collision.d.ts +32 -0
  48. package/dist/types/{excalidraw/scene → element/src}/comparisons.d.ts +8 -8
  49. package/dist/types/{excalidraw/element → element/src}/containerCache.d.ts +11 -11
  50. package/dist/types/{excalidraw/element → element/src}/cropElement.d.ts +19 -19
  51. package/dist/types/{excalidraw/change.d.ts → element/src/delta.d.ts} +226 -191
  52. package/dist/types/element/src/distance.d.ts +3 -0
  53. package/dist/types/{excalidraw → element/src}/distribute.d.ts +7 -6
  54. package/dist/types/{excalidraw/element → element/src}/dragElements.d.ts +33 -32
  55. package/dist/types/element/src/duplicate.d.ts +63 -0
  56. package/dist/types/{excalidraw/element → element/src}/elbowArrow.d.ts +17 -16
  57. package/dist/types/{excalidraw/element → element/src}/elementLink.d.ts +13 -13
  58. package/dist/types/element/src/embeddable.d.ts +10 -0
  59. package/dist/types/{excalidraw/element → element/src}/flowchart.d.ts +26 -25
  60. package/dist/types/{excalidraw → element/src}/fractionalIndex.d.ts +57 -48
  61. package/dist/types/{excalidraw → element/src}/frame.d.ts +70 -69
  62. package/dist/types/{excalidraw → element/src}/groups.d.ts +34 -33
  63. package/dist/types/{excalidraw/element → element/src}/heading.d.ts +15 -16
  64. package/dist/types/{excalidraw/element → element/src}/image.d.ts +32 -32
  65. package/dist/types/element/src/index.d.ts +57 -0
  66. package/dist/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +117 -130
  67. package/dist/types/element/src/mutateElement.d.ts +21 -0
  68. package/dist/types/{excalidraw/element → element/src}/newElement.d.ts +62 -101
  69. package/dist/types/{excalidraw/renderer → element/src}/renderElement.d.ts +28 -28
  70. package/dist/types/{excalidraw/element → element/src}/resizeElements.d.ts +32 -31
  71. package/dist/types/{excalidraw/element → element/src}/resizeTest.d.ts +15 -15
  72. package/dist/types/{excalidraw/scene → element/src}/selection.d.ts +38 -32
  73. package/dist/types/element/src/shape.d.ts +42 -0
  74. package/dist/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +3 -3
  75. package/dist/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +35 -35
  76. package/dist/types/{excalidraw/element → element/src}/sortElements.d.ts +2 -2
  77. package/dist/types/element/src/store.d.ts +232 -0
  78. package/dist/types/{excalidraw/element → element/src}/textElement.d.ts +40 -39
  79. package/dist/types/{excalidraw/element → element/src}/textMeasurements.d.ts +41 -41
  80. package/dist/types/{excalidraw/element → element/src}/textWrapping.d.ts +13 -13
  81. package/dist/types/{excalidraw/element → element/src}/transformHandles.d.ts +55 -55
  82. package/dist/types/{excalidraw/element → element/src}/typeChecks.d.ts +57 -39
  83. package/dist/types/{excalidraw/element → element/src}/types.d.ts +295 -282
  84. package/dist/types/element/src/utils.d.ts +31 -0
  85. package/dist/types/{excalidraw → element/src}/zindex.d.ts +7 -6
  86. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +525 -534
  87. package/dist/types/excalidraw/actions/actionAlign.d.ts +110 -110
  88. package/dist/types/excalidraw/actions/actionBoundText.d.ts +387 -393
  89. package/dist/types/excalidraw/actions/actionCanvas.d.ts +2403 -2266
  90. package/dist/types/excalidraw/actions/actionClipboard.d.ts +1167 -1183
  91. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +188 -191
  92. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +565 -573
  93. package/dist/types/excalidraw/actions/actionDistribute.d.ts +35 -35
  94. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +18 -22
  95. package/dist/types/excalidraw/actions/actionElementLink.d.ts +210 -213
  96. package/dist/types/excalidraw/actions/actionElementLock.d.ts +373 -381
  97. package/dist/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +185 -198
  98. package/dist/types/excalidraw/actions/actionExport.d.ts +1639 -1666
  99. package/dist/types/excalidraw/actions/actionFinalize.d.ts +397 -362
  100. package/dist/types/excalidraw/actions/actionFlip.d.ts +35 -35
  101. package/dist/types/excalidraw/actions/actionFrame.d.ts +1241 -1253
  102. package/dist/types/excalidraw/actions/actionGroup.d.ts +385 -391
  103. package/dist/types/excalidraw/actions/actionHistory.d.ts +6 -7
  104. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +713 -192
  105. package/dist/types/excalidraw/actions/actionLink.d.ts +189 -192
  106. package/dist/types/excalidraw/actions/actionMenu.d.ts +545 -554
  107. package/dist/types/excalidraw/actions/actionNavigate.d.ts +361 -367
  108. package/dist/types/excalidraw/actions/actionProperties.d.ts +2759 -2796
  109. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +188 -191
  110. package/dist/types/excalidraw/actions/actionStyles.d.ts +202 -205
  111. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +17 -17
  112. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +191 -194
  113. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +189 -192
  114. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +182 -357
  115. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +19 -0
  116. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +188 -192
  117. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +189 -193
  118. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +189 -193
  119. package/dist/types/excalidraw/actions/actionZindex.d.ts +75 -75
  120. package/dist/types/excalidraw/actions/index.d.ts +28 -27
  121. package/dist/types/excalidraw/actions/manager.d.ts +21 -21
  122. package/dist/types/excalidraw/actions/register.d.ts +5 -5
  123. package/dist/types/excalidraw/actions/shortcuts.d.ts +4 -4
  124. package/dist/types/excalidraw/actions/types.d.ts +47 -46
  125. package/dist/types/excalidraw/analytics.d.ts +1 -1
  126. package/dist/types/excalidraw/animated-trail.d.ts +39 -33
  127. package/dist/types/excalidraw/animation-frame-handler.d.ts +16 -16
  128. package/dist/types/excalidraw/appState.d.ts +96 -86
  129. package/dist/types/excalidraw/charts.d.ts +27 -27
  130. package/dist/types/excalidraw/clients.d.ts +14 -14
  131. package/dist/types/excalidraw/clipboard.d.ts +66 -66
  132. package/dist/types/excalidraw/components/Actions.d.ts +30 -34
  133. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +4 -4
  134. package/dist/types/excalidraw/components/App.d.ts +560 -544
  135. package/dist/types/excalidraw/components/Avatar.d.ts +11 -11
  136. package/dist/types/excalidraw/components/BraveMeasureTextError.d.ts +2 -2
  137. package/dist/types/excalidraw/components/Button.d.ts +17 -17
  138. package/dist/types/excalidraw/components/ButtonIcon.d.ts +16 -15
  139. package/dist/types/excalidraw/components/ButtonIconCycle.d.ts +11 -11
  140. package/dist/types/excalidraw/components/ButtonSeparator.d.ts +1 -1
  141. package/dist/types/excalidraw/components/Card.d.ts +7 -7
  142. package/dist/types/excalidraw/components/CheckboxItem.d.ts +8 -8
  143. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +10 -9
  144. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +23 -19
  145. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +8 -8
  146. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +7 -8
  147. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +17 -18
  148. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -10
  149. package/dist/types/excalidraw/components/ColorPicker/PickerHeading.d.ts +5 -5
  150. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +8 -8
  151. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +9 -9
  152. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +21 -21
  153. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +21 -21
  154. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +18 -18
  155. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +2 -2
  156. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +26 -26
  157. package/dist/types/excalidraw/components/ConfirmDialog.d.ts +10 -10
  158. package/dist/types/excalidraw/components/ContextMenu.d.ts +16 -16
  159. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +23 -0
  160. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +7 -7
  161. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +31 -31
  162. package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +4 -4
  163. package/dist/types/excalidraw/components/Dialog.d.ts +13 -13
  164. package/dist/types/excalidraw/components/DialogActionButton.d.ts +10 -10
  165. package/dist/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +7 -7
  166. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +12 -11
  167. package/dist/types/excalidraw/components/Ellipsify.d.ts +4 -0
  168. package/dist/types/excalidraw/components/ErrorDialog.d.ts +5 -5
  169. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +16 -16
  170. package/dist/types/excalidraw/components/EyeDropper.d.ts +28 -28
  171. package/dist/types/excalidraw/components/FilledButton.d.ts +18 -18
  172. package/dist/types/excalidraw/components/FixedSideContainer.d.ts +9 -9
  173. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +10 -10
  174. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +21 -21
  175. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +26 -26
  176. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +6 -6
  177. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +14 -14
  178. package/dist/types/excalidraw/components/HandButton.d.ts +10 -10
  179. package/dist/types/excalidraw/components/HelpButton.d.ts +7 -7
  180. package/dist/types/excalidraw/components/HelpDialog.d.ts +4 -4
  181. package/dist/types/excalidraw/components/HintViewer.d.ts +10 -10
  182. package/dist/types/excalidraw/components/IconPicker.d.ts +15 -15
  183. package/dist/types/excalidraw/components/ImageExportDialog.d.ts +14 -14
  184. package/dist/types/excalidraw/components/InitializeApp.d.ts +10 -10
  185. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -3
  186. package/dist/types/excalidraw/components/Island.d.ts +10 -10
  187. package/dist/types/excalidraw/components/JSONExportDialog.d.ts +15 -15
  188. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +10 -10
  189. package/dist/types/excalidraw/components/LayerUI.d.ts +31 -31
  190. package/dist/types/excalidraw/components/LibraryMenu.d.ts +10 -10
  191. package/dist/types/excalidraw/components/LibraryMenuBrowseButton.d.ts +7 -7
  192. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +9 -9
  193. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +18 -18
  194. package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +14 -14
  195. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +23 -23
  196. package/dist/types/excalidraw/components/LibraryUnit.d.ts +15 -15
  197. package/dist/types/excalidraw/components/LoadingMessage.d.ts +6 -6
  198. package/dist/types/excalidraw/components/LockButton.d.ts +10 -10
  199. package/dist/types/excalidraw/components/MagicButton.d.ts +10 -10
  200. package/dist/types/excalidraw/components/MobileMenu.d.ts +25 -25
  201. package/dist/types/excalidraw/components/Modal.d.ts +12 -12
  202. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -17
  203. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -17
  204. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -22
  205. package/dist/types/excalidraw/components/Paragraph.d.ts +4 -4
  206. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +8 -8
  207. package/dist/types/excalidraw/components/PenModeButton.d.ts +12 -12
  208. package/dist/types/excalidraw/components/Popover.d.ts +15 -15
  209. package/dist/types/excalidraw/components/ProjectName.d.ts +10 -10
  210. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +15 -15
  211. package/dist/types/excalidraw/components/PublishLibrary.d.ts +16 -16
  212. package/dist/types/excalidraw/components/QuickSearch.d.ts +9 -9
  213. package/dist/types/excalidraw/components/RadioGroup.d.ts +14 -14
  214. package/dist/types/excalidraw/components/{ButtonIconSelect.d.ts → RadioSelection.d.ts} +20 -20
  215. package/dist/types/excalidraw/components/Range.d.ts +8 -8
  216. package/dist/types/excalidraw/components/SVGLayer.d.ts +7 -7
  217. package/dist/types/excalidraw/components/ScrollableList.d.ts +9 -9
  218. package/dist/types/excalidraw/components/SearchMenu.d.ts +5 -5
  219. package/dist/types/excalidraw/components/Section.d.ts +6 -6
  220. package/dist/types/excalidraw/components/ShareableLinkDialog.d.ts +7 -7
  221. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +76 -76
  222. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +7 -7
  223. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +9 -9
  224. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +10 -10
  225. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +7 -7
  226. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +7 -7
  227. package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +6 -6
  228. package/dist/types/excalidraw/components/Sidebar/common.d.ts +34 -34
  229. package/dist/types/excalidraw/components/Spinner.d.ts +8 -8
  230. package/dist/types/excalidraw/components/Stack.d.ts +15 -15
  231. package/dist/types/excalidraw/components/Stats/Angle.d.ts +11 -11
  232. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +11 -11
  233. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +11 -10
  234. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +11 -11
  235. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +45 -35
  236. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +11 -11
  237. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +11 -11
  238. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +14 -14
  239. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +12 -12
  240. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +14 -14
  241. package/dist/types/excalidraw/components/Stats/Position.d.ts +12 -12
  242. package/dist/types/excalidraw/components/Stats/index.d.ts +36 -36
  243. package/dist/types/excalidraw/components/Stats/utils.d.ts +19 -26
  244. package/dist/types/excalidraw/components/Switch.d.ts +9 -9
  245. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +6 -6
  246. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +30 -30
  247. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +9 -9
  248. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +8 -8
  249. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +17 -17
  250. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +4 -4
  251. package/dist/types/excalidraw/components/TTDDialog/TTDDialogSubmitShortcut.d.ts +1 -1
  252. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +8 -8
  253. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +9 -9
  254. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +7 -7
  255. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +11 -11
  256. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +9 -9
  257. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +33 -33
  258. package/dist/types/excalidraw/components/TextField.d.ts +21 -21
  259. package/dist/types/excalidraw/components/Toast.d.ts +9 -9
  260. package/dist/types/excalidraw/components/ToolButton.d.ts +49 -49
  261. package/dist/types/excalidraw/components/Tooltip.d.ts +18 -18
  262. package/dist/types/excalidraw/components/Trans.d.ts +9 -9
  263. package/dist/types/excalidraw/components/UnlockPopup.d.ts +8 -0
  264. package/dist/types/excalidraw/components/UserList.d.ts +18 -18
  265. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +30 -29
  266. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +14 -14
  267. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +19 -19
  268. package/dist/types/excalidraw/components/canvases/index.d.ts +3 -3
  269. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +86 -86
  270. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +15 -15
  271. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -11
  272. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +46 -46
  273. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +8 -8
  274. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +18 -18
  275. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -7
  276. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +16 -16
  277. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -5
  278. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +11 -11
  279. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +6 -6
  280. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -3
  281. package/dist/types/excalidraw/components/footer/Footer.d.ts +12 -12
  282. package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +8 -8
  283. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +4 -4
  284. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +19 -18
  285. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +10 -9
  286. package/dist/types/excalidraw/components/icons.d.ts +225 -221
  287. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +10 -10
  288. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +64 -64
  289. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +83 -80
  290. package/dist/types/excalidraw/components/shapes.d.ts +62 -0
  291. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +58 -58
  292. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -19
  293. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +85 -85
  294. package/dist/types/excalidraw/context/tunnels.d.ts +21 -21
  295. package/dist/types/excalidraw/context/ui-appState.d.ts +4 -4
  296. package/dist/types/excalidraw/cursor.d.ts +5 -5
  297. package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +8 -8
  298. package/dist/types/excalidraw/data/ai/types.d.ts +242 -242
  299. package/dist/types/excalidraw/data/blob.d.ts +53 -53
  300. package/dist/types/excalidraw/data/encode.d.ts +55 -55
  301. package/dist/types/excalidraw/data/encryption.d.ts +9 -9
  302. package/dist/types/excalidraw/data/filesystem.d.ts +21 -21
  303. package/dist/types/excalidraw/data/image.d.ts +9 -9
  304. package/dist/types/excalidraw/data/index.d.ts +22 -22
  305. package/dist/types/excalidraw/data/json.d.ts +16 -16
  306. package/dist/types/excalidraw/data/library.d.ts +112 -112
  307. package/dist/types/excalidraw/data/reconcile.d.ts +7 -6
  308. package/dist/types/excalidraw/data/resave.d.ts +5 -5
  309. package/dist/types/excalidraw/data/restore.d.ts +26 -21
  310. package/dist/types/excalidraw/data/transform.d.ts +81 -81
  311. package/dist/types/excalidraw/data/types.d.ts +45 -45
  312. package/dist/types/excalidraw/deburr.d.ts +1 -1
  313. package/dist/types/excalidraw/editor-jotai.d.ts +56 -56
  314. package/dist/types/excalidraw/eraser/index.d.ts +12 -0
  315. package/dist/types/excalidraw/errors.d.ts +29 -32
  316. package/dist/types/excalidraw/fonts/Cascadia/index.d.ts +2 -2
  317. package/dist/types/excalidraw/fonts/ComicShanns/index.d.ts +2 -2
  318. package/dist/types/excalidraw/fonts/Emoji/index.d.ts +2 -2
  319. package/dist/types/excalidraw/fonts/ExcalidrawFontFace.d.ts +25 -25
  320. package/dist/types/excalidraw/fonts/Excalifont/index.d.ts +2 -2
  321. package/dist/types/excalidraw/fonts/Fonts.d.ts +79 -89
  322. package/dist/types/excalidraw/fonts/Helvetica/index.d.ts +2 -2
  323. package/dist/types/excalidraw/fonts/Liberation/index.d.ts +2 -2
  324. package/dist/types/excalidraw/fonts/Lilita/index.d.ts +2 -2
  325. package/dist/types/excalidraw/fonts/Nunito/index.d.ts +2 -2
  326. package/dist/types/excalidraw/fonts/Virgil/index.d.ts +2 -2
  327. package/dist/types/excalidraw/fonts/Xiaolai/index.d.ts +8 -8
  328. package/dist/types/excalidraw/fonts/index.d.ts +1 -1
  329. package/dist/types/excalidraw/gesture.d.ts +6 -6
  330. package/dist/types/excalidraw/history.d.ts +48 -40
  331. package/dist/types/excalidraw/hooks/useCallbackRefState.d.ts +1 -1
  332. package/dist/types/excalidraw/hooks/useCopiedIndicator.d.ts +5 -5
  333. package/dist/types/excalidraw/hooks/useCreatePortalContainer.d.ts +4 -4
  334. package/dist/types/excalidraw/hooks/useEmitter.d.ts +2 -2
  335. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +11 -11
  336. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +20 -20
  337. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +2 -2
  338. package/dist/types/excalidraw/hooks/useStable.d.ts +1 -1
  339. package/dist/types/excalidraw/hooks/useStableCallback.d.ts +4 -4
  340. package/dist/types/excalidraw/hooks/useTransition.d.ts +2 -2
  341. package/dist/types/excalidraw/i18n.d.ts +24 -24
  342. package/dist/types/excalidraw/index-node.d.ts +1 -1
  343. package/dist/types/excalidraw/index.d.ts +47 -45
  344. package/dist/types/excalidraw/laser-trails.d.ts +20 -20
  345. package/dist/types/excalidraw/lasso/index.d.ts +16 -0
  346. package/dist/types/excalidraw/lasso/utils.d.ts +13 -0
  347. package/dist/types/excalidraw/mermaid.d.ts +2 -2
  348. package/dist/types/excalidraw/polyfill.d.ts +2 -2
  349. package/dist/types/excalidraw/reactUtils.d.ts +14 -14
  350. package/dist/types/excalidraw/renderer/helpers.d.ts +18 -13
  351. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +20 -20
  352. package/dist/types/excalidraw/renderer/renderNewElementScene.d.ts +7 -7
  353. package/dist/types/excalidraw/renderer/renderSnaps.d.ts +2 -2
  354. package/dist/types/excalidraw/renderer/roundRect.d.ts +11 -11
  355. package/dist/types/excalidraw/renderer/staticScene.d.ts +14 -11
  356. package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +5 -5
  357. package/dist/types/excalidraw/scene/Renderer.d.ts +27 -28
  358. package/dist/types/excalidraw/scene/export.d.ts +36 -36
  359. package/dist/types/excalidraw/scene/index.d.ts +4 -4
  360. package/dist/types/excalidraw/scene/normalize.d.ts +4 -4
  361. package/dist/types/excalidraw/scene/scroll.d.ts +23 -23
  362. package/dist/types/excalidraw/scene/scrollbars.d.ts +11 -12
  363. package/dist/types/excalidraw/scene/types.d.ts +120 -118
  364. package/dist/types/excalidraw/scene/zoom.d.ts +12 -12
  365. package/dist/types/excalidraw/snapping.d.ts +111 -112
  366. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +45 -45
  367. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +13 -13
  368. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +2 -2
  369. package/dist/types/excalidraw/subset/subset-main.d.ts +12 -12
  370. package/dist/types/excalidraw/subset/subset-shared.chunk.d.ts +32 -32
  371. package/dist/types/excalidraw/subset/subset-worker.chunk.d.ts +15 -15
  372. package/dist/types/excalidraw/subset/woff2/woff2-bindings.d.ts +31 -31
  373. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +14 -14
  374. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +2 -2
  375. package/dist/types/excalidraw/types.d.ts +706 -687
  376. package/dist/types/excalidraw/workers.d.ts +36 -36
  377. package/dist/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +24 -22
  378. package/dist/types/math/{angle.d.ts → src/angle.d.ts} +19 -17
  379. package/dist/types/math/src/constants.d.ts +3 -0
  380. package/dist/types/math/src/curve.d.ts +74 -0
  381. package/dist/types/math/{ellipse.d.ts → src/ellipse.d.ts} +44 -44
  382. package/dist/types/math/{index.d.ts → src/index.d.ts} +13 -12
  383. package/dist/types/math/{line.d.ts → src/line.d.ts} +17 -17
  384. package/dist/types/math/{point.d.ts → src/point.d.ts} +122 -122
  385. package/dist/types/math/{polygon.d.ts → src/polygon.d.ts} +6 -5
  386. package/dist/types/math/{range.d.ts → src/range.d.ts} +44 -44
  387. package/dist/types/math/{rectangle.d.ts → src/rectangle.d.ts} +5 -3
  388. package/dist/types/math/{segment.d.ts → src/segment.d.ts} +39 -39
  389. package/dist/types/math/{triangle.d.ts → src/triangle.d.ts} +11 -11
  390. package/dist/types/math/{types.d.ts → src/types.d.ts} +106 -105
  391. package/dist/types/math/{utils.d.ts → src/utils.d.ts} +7 -7
  392. package/dist/types/math/{vector.d.ts → src/vector.d.ts} +94 -88
  393. package/dist/types/utils/{bbox.d.ts → src/bbox.d.ts} +9 -9
  394. package/dist/types/utils/{export.d.ts → src/export.d.ts} +35 -35
  395. package/dist/types/utils/{index.d.ts → src/index.d.ts} +4 -4
  396. package/dist/types/utils/{geometry → src}/shape.d.ts +58 -71
  397. package/dist/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +19 -19
  398. package/history.ts +149 -110
  399. package/package.json +25 -10
  400. package/dist/dev/chunk-D5FBOTU3.js +0 -25634
  401. package/dist/dev/chunk-D5FBOTU3.js.map +0 -7
  402. package/dist/dev/chunk-LMHBUWQS.js.map +0 -7
  403. package/dist/dev/chunk-OKSO7T74.js +0 -4132
  404. package/dist/dev/chunk-OKSO7T74.js.map +0 -7
  405. package/dist/dev/chunk-VEGCHY7H.js +0 -7
  406. package/dist/dev/chunk-VEGCHY7H.js.map +0 -7
  407. package/dist/prod/chunk-3KJONZZM.js +0 -34
  408. package/dist/prod/chunk-6U3AYISY.js +0 -12
  409. package/dist/prod/chunk-EGSCQU2B.js +0 -7
  410. package/dist/prod/chunk-EIO257PC.js +0 -86
  411. package/dist/prod/data/image-SGA24VQ5.js +0 -1
  412. package/dist/types/excalidraw/align.d.ts +0 -7
  413. package/dist/types/excalidraw/components/ButtonSelect.d.ts +0 -9
  414. package/dist/types/excalidraw/element/collision.d.ts +0 -26
  415. package/dist/types/excalidraw/element/distance.d.ts +0 -3
  416. package/dist/types/excalidraw/element/index.d.ts +0 -26
  417. package/dist/types/excalidraw/element/mutateElement.d.ts +0 -13
  418. package/dist/types/excalidraw/element/utils.d.ts +0 -21
  419. package/dist/types/excalidraw/scene/Shape.d.ts +0 -17
  420. package/dist/types/excalidraw/scene/ShapeCache.d.ts +0 -25
  421. package/dist/types/excalidraw/shapes.d.ts +0 -85
  422. package/dist/types/excalidraw/store.d.ts +0 -129
  423. package/dist/types/excalidraw/visualdebug.d.ts +0 -41
  424. package/dist/types/math/curve.d.ts +0 -40
  425. package/dist/types/utils/collision.d.ts +0 -9
  426. /package/dist/dev/data/{image-N7WNQEIL.js.map → image-IWGLHPIX.js.map} +0 -0
  427. /package/dist/dev/locales/{en-OZCJJ2HN.js.map → en-SMAPCEOQ.js.map} +0 -0
@@ -1,8 +1,8 @@
1
- import type { ElementOrToolType } from "../types";
2
- export declare const hasBackground: (type: ElementOrToolType) => boolean;
3
- export declare const hasStrokeColor: (type: ElementOrToolType) => boolean;
4
- export declare const hasStrokeWidth: (type: ElementOrToolType) => boolean;
5
- export declare const hasStrokeStyle: (type: ElementOrToolType) => boolean;
6
- export declare const canChangeRoundness: (type: ElementOrToolType) => boolean;
7
- export declare const toolIsArrow: (type: ElementOrToolType) => boolean;
8
- export declare const canHaveArrowheads: (type: ElementOrToolType) => boolean;
1
+ import type { ElementOrToolType } from "@excalidraw/excalidraw/types";
2
+ export declare const hasBackground: (type: ElementOrToolType) => boolean;
3
+ export declare const hasStrokeColor: (type: ElementOrToolType) => boolean;
4
+ export declare const hasStrokeWidth: (type: ElementOrToolType) => boolean;
5
+ export declare const hasStrokeStyle: (type: ElementOrToolType) => boolean;
6
+ export declare const canChangeRoundness: (type: ElementOrToolType) => boolean;
7
+ export declare const toolIsArrow: (type: ElementOrToolType) => boolean;
8
+ export declare const canHaveArrowheads: (type: ElementOrToolType) => boolean;
@@ -1,11 +1,11 @@
1
- import type { ExcalidrawTextContainer } from "./types";
2
- export declare const originalContainerCache: {
3
- [id: ExcalidrawTextContainer["id"]]: {
4
- height: ExcalidrawTextContainer["height"];
5
- } | undefined;
6
- };
7
- export declare const updateOriginalContainerCache: (id: ExcalidrawTextContainer["id"], height: ExcalidrawTextContainer["height"]) => {
8
- height: ExcalidrawTextContainer["height"];
9
- };
10
- export declare const resetOriginalContainerCache: (id: ExcalidrawTextContainer["id"]) => void;
11
- export declare const getOriginalContainerHeightFromCache: (id: ExcalidrawTextContainer["id"]) => number | null;
1
+ import type { ExcalidrawTextContainer } from "./types";
2
+ export declare const originalContainerCache: {
3
+ [id: ExcalidrawTextContainer["id"]]: {
4
+ height: ExcalidrawTextContainer["height"];
5
+ } | undefined;
6
+ };
7
+ export declare const updateOriginalContainerCache: (id: ExcalidrawTextContainer["id"], height: ExcalidrawTextContainer["height"]) => {
8
+ height: ExcalidrawTextContainer["height"];
9
+ };
10
+ export declare const resetOriginalContainerCache: (id: ExcalidrawTextContainer["id"]) => void;
11
+ export declare const getOriginalContainerHeightFromCache: (id: ExcalidrawTextContainer["id"]) => number | null;
@@ -1,19 +1,19 @@
1
- import type { TransformHandleType } from "./transformHandles";
2
- import type { ElementsMap, ExcalidrawImageElement, ImageCrop } from "./types";
3
- export declare const MINIMAL_CROP_SIZE = 10;
4
- export declare const cropElement: (element: ExcalidrawImageElement, transformHandle: TransformHandleType, naturalWidth: number, naturalHeight: number, pointerX: number, pointerY: number, widthAspectRatio?: number) => {
5
- x: number;
6
- y: number;
7
- width: number;
8
- height: number;
9
- crop: ImageCrop | null;
10
- };
11
- export declare const getUncroppedImageElement: (element: ExcalidrawImageElement, elementsMap: ElementsMap) => ExcalidrawImageElement;
12
- export declare const getUncroppedWidthAndHeight: (element: ExcalidrawImageElement) => {
13
- width: number;
14
- height: number;
15
- };
16
- export declare const getFlipAdjustedCropPosition: (element: ExcalidrawImageElement, natural?: boolean) => {
17
- x: number;
18
- y: number;
19
- } | null;
1
+ import type { TransformHandleType } from "./transformHandles";
2
+ import type { ElementsMap, ExcalidrawImageElement, ImageCrop } from "./types";
3
+ export declare const MINIMAL_CROP_SIZE = 10;
4
+ export declare const cropElement: (element: ExcalidrawImageElement, elementsMap: ElementsMap, transformHandle: TransformHandleType, naturalWidth: number, naturalHeight: number, pointerX: number, pointerY: number, widthAspectRatio?: number) => {
5
+ x: number;
6
+ y: number;
7
+ width: number;
8
+ height: number;
9
+ crop: ImageCrop | null;
10
+ };
11
+ export declare const getUncroppedImageElement: (element: ExcalidrawImageElement, elementsMap: ElementsMap) => ExcalidrawImageElement;
12
+ export declare const getUncroppedWidthAndHeight: (element: ExcalidrawImageElement) => {
13
+ width: number;
14
+ height: number;
15
+ };
16
+ export declare const getFlipAdjustedCropPosition: (element: ExcalidrawImageElement, natural?: boolean) => {
17
+ x: number;
18
+ y: number;
19
+ } | null;
@@ -1,191 +1,226 @@
1
- import type { ElementUpdate } from "./element/mutateElement";
2
- import type { ExcalidrawElement, Ordered, OrderedExcalidrawElement, SceneElementsMap } from "./element/types";
3
- import type { AppState, ObservedAppState } from "./types";
4
- import type { ValueOf } from "./utility-types";
5
- /**
6
- * Represents the difference between two objects of the same type.
7
- *
8
- * Both `deleted` and `inserted` partials represent the same set of added, removed or updated properties, where:
9
- * - `deleted` is a set of all the deleted values
10
- * - `inserted` is a set of all the inserted (added, updated) values
11
- *
12
- * Keeping it as pure object (without transient state, side-effects, etc.), so we won't have to instantiate it on load.
13
- */
14
- declare class Delta<T> {
15
- readonly deleted: Partial<T>;
16
- readonly inserted: Partial<T>;
17
- private constructor();
18
- static create<T>(deleted: Partial<T>, inserted: Partial<T>, modifier?: (delta: Partial<T>) => Partial<T>, modifierOptions?: "deleted" | "inserted"): Delta<T>;
19
- /**
20
- * Calculates the delta between two objects.
21
- *
22
- * @param prevObject - The previous state of the object.
23
- * @param nextObject - The next state of the object.
24
- *
25
- * @returns new delta instance.
26
- */
27
- static calculate<T extends {
28
- [key: string]: any;
29
- }>(prevObject: T, nextObject: T, modifier?: (partial: Partial<T>) => Partial<T>, postProcess?: (deleted: Partial<T>, inserted: Partial<T>) => [Partial<T>, Partial<T>]): Delta<T>;
30
- static empty(): Delta<unknown>;
31
- static isEmpty<T>(delta: Delta<T>): boolean;
32
- /**
33
- * Merges deleted and inserted object partials.
34
- */
35
- static mergeObjects<T extends {
36
- [key: string]: unknown;
37
- }>(prev: T, added: T, removed: T): T;
38
- /**
39
- * Merges deleted and inserted array partials.
40
- */
41
- static mergeArrays<T>(prev: readonly T[] | null, added: readonly T[] | null | undefined, removed: readonly T[] | null | undefined, predicate?: (value: T) => string): T[];
42
- /**
43
- * Diff object partials as part of the `postProcess`.
44
- */
45
- static diffObjects<T, K extends keyof T, V extends ValueOf<T[K]>>(deleted: Partial<T>, inserted: Partial<T>, property: K, setValue: (prevValue: V | undefined) => V): void;
46
- /**
47
- * Diff array partials as part of the `postProcess`.
48
- */
49
- static diffArrays<T, K extends keyof T, V extends T[K]>(deleted: Partial<T>, inserted: Partial<T>, property: K, groupBy: (value: V extends ArrayLike<infer T> ? T : never) => string): void;
50
- /**
51
- * Compares if object1 contains any different value compared to the object2.
52
- */
53
- static isLeftDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
54
- /**
55
- * Compares if object2 contains any different value compared to the object1.
56
- */
57
- static isRightDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
58
- /**
59
- * Returns all the object1 keys that have distinct values.
60
- */
61
- static getLeftDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
62
- /**
63
- * Returns all the object2 keys that have distinct values.
64
- */
65
- static getRightDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
66
- /**
67
- * Iterator comparing values of object properties based on the passed joining strategy.
68
- *
69
- * @yields keys of properties with different values
70
- *
71
- * WARN: it's based on shallow compare performed only on the first level and doesn't go deeper than that.
72
- */
73
- private static distinctKeysIterator;
74
- }
75
- /**
76
- * Encapsulates the modifications captured as `Delta`/s.
77
- */
78
- interface Change<T> {
79
- /**
80
- * Inverses the `Delta`s inside while creating a new `Change`.
81
- */
82
- inverse(): Change<T>;
83
- /**
84
- * Applies the `Change` to the previous object.
85
- *
86
- * @returns a tuple of the next object `T` with applied change, and `boolean`, indicating whether the applied change resulted in a visible change.
87
- */
88
- applyTo(previous: T, ...options: unknown[]): [T, boolean];
89
- /**
90
- * Checks whether there are actually `Delta`s.
91
- */
92
- isEmpty(): boolean;
93
- }
94
- export declare class AppStateChange implements Change<AppState> {
95
- private readonly delta;
96
- private constructor();
97
- static calculate<T extends ObservedAppState>(prevAppState: T, nextAppState: T): AppStateChange;
98
- static empty(): AppStateChange;
99
- inverse(): AppStateChange;
100
- applyTo(appState: AppState, nextElements: SceneElementsMap): [AppState, boolean];
101
- isEmpty(): boolean;
102
- /**
103
- * It is necessary to post process the partials in case of reference values,
104
- * for which we need to calculate the real diff between `deleted` and `inserted`.
105
- */
106
- private static postProcess;
107
- /**
108
- * Mutates `nextAppState` be filtering out state related to deleted elements.
109
- *
110
- * @returns `true` if a visible change is found, `false` otherwise.
111
- */
112
- private filterInvisibleChanges;
113
- private static convertToAppStateKey;
114
- private static filterSelectedElements;
115
- private static filterSelectedGroups;
116
- private static stripElementsProps;
117
- private static stripStandaloneProps;
118
- }
119
- type ElementPartial<T extends ExcalidrawElement = ExcalidrawElement> = Omit<ElementUpdate<Ordered<T>>, "seed">;
120
- /**
121
- * Elements change is a low level primitive to capture a change between two sets of elements.
122
- * It does so by encapsulating forward and backward `Delta`s, allowing to time-travel in both directions.
123
- */
124
- export declare class ElementsChange implements Change<SceneElementsMap> {
125
- private readonly added;
126
- private readonly removed;
127
- private readonly updated;
128
- private constructor();
129
- static create(added: Map<string, Delta<ElementPartial>>, removed: Map<string, Delta<ElementPartial>>, updated: Map<string, Delta<ElementPartial>>, options?: {
130
- shouldRedistribute: boolean;
131
- }): ElementsChange;
132
- private static satisfiesAddition;
133
- private static satisfiesRemoval;
134
- private static satisfiesUpdate;
135
- private static validate;
136
- /**
137
- * Calculates the `Delta`s between the previous and next set of elements.
138
- *
139
- * @param prevElements - Map representing the previous state of elements.
140
- * @param nextElements - Map representing the next state of elements.
141
- *
142
- * @returns `ElementsChange` instance representing the `Delta` changes between the two sets of elements.
143
- */
144
- static calculate<T extends OrderedExcalidrawElement>(prevElements: Map<string, T>, nextElements: Map<string, T>): ElementsChange;
145
- static empty(): ElementsChange;
146
- inverse(): ElementsChange;
147
- isEmpty(): boolean;
148
- /**
149
- * Update delta/s based on the existing elements.
150
- *
151
- * @param elements current elements
152
- * @param modifierOptions defines which of the delta (`deleted` or `inserted`) will be updated
153
- * @returns new instance with modified delta/s
154
- */
155
- applyLatestChanges(elements: SceneElementsMap): ElementsChange;
156
- applyTo(elements: SceneElementsMap, snapshot: Map<string, OrderedExcalidrawElement>): [SceneElementsMap, boolean];
157
- private static createApplier;
158
- private static createGetter;
159
- private static applyDelta;
160
- /**
161
- * Check for visible changes regardless of whether they were removed, added or updated.
162
- */
163
- private static checkForVisibleDifference;
164
- /**
165
- * Resolves conflicts for all previously added, removed and updated elements.
166
- * Updates the previous deltas with all the changes after conflict resolution.
167
- *
168
- * @returns all elements affected by the conflict resolution
169
- */
170
- private resolveConflicts;
171
- /**
172
- * Non deleted affected elements of removed elements (before and after applying delta),
173
- * should be unbound ~ bindings should not point from non deleted into the deleted element/s.
174
- */
175
- private static unbindAffected;
176
- /**
177
- * Non deleted affected elements of added or updated element/s (before and after applying delta),
178
- * should be rebound (if possible) with the current element ~ bindings should be bidirectional.
179
- */
180
- private static rebindAffected;
181
- private static redrawTextBoundingBoxes;
182
- private static redrawBoundArrows;
183
- private static reorderElements;
184
- /**
185
- * It is necessary to post process the partials in case of reference values,
186
- * for which we need to calculate the real diff between `deleted` and `inserted`.
187
- */
188
- private static postProcess;
189
- private static stripIrrelevantProps;
190
- }
191
- export {};
1
+ import type { ExcalidrawElement, Ordered, OrderedExcalidrawElement, SceneElementsMap } from "@excalidraw/element/types";
2
+ import type { DTO, ValueOf } from "@excalidraw/common/utility-types";
3
+ import type { AppState, ObservedAppState } from "@excalidraw/excalidraw/types";
4
+ import { StoreSnapshot } from "./store";
5
+ /**
6
+ * Represents the difference between two objects of the same type.
7
+ *
8
+ * Both `deleted` and `inserted` partials represent the same set of added, removed or updated properties, where:
9
+ * - `deleted` is a set of all the deleted values
10
+ * - `inserted` is a set of all the inserted (added, updated) values
11
+ *
12
+ * Keeping it as pure object (without transient state, side-effects, etc.), so we won't have to instantiate it on load.
13
+ */
14
+ export declare class Delta<T> {
15
+ readonly deleted: Partial<T>;
16
+ readonly inserted: Partial<T>;
17
+ private constructor();
18
+ static create<T>(deleted: Partial<T>, inserted: Partial<T>, modifier?: (delta: Partial<T>, partialType: "deleted" | "inserted") => Partial<T>, modifierOptions?: "deleted" | "inserted" | "both"): Delta<T>;
19
+ /**
20
+ * Calculates the delta between two objects.
21
+ *
22
+ * @param prevObject - The previous state of the object.
23
+ * @param nextObject - The next state of the object.
24
+ *
25
+ * @returns new delta instance.
26
+ */
27
+ static calculate<T extends {
28
+ [key: string]: any;
29
+ }>(prevObject: T, nextObject: T, modifier?: (partial: Partial<T>) => Partial<T>, postProcess?: (deleted: Partial<T>, inserted: Partial<T>) => [Partial<T>, Partial<T>]): Delta<T>;
30
+ static empty(): Delta<unknown>;
31
+ static isEmpty<T>(delta: Delta<T>): boolean;
32
+ /**
33
+ * Merges two deltas into a new one.
34
+ */
35
+ static merge<T>(delta1: Delta<T>, delta2: Delta<T>): Delta<T>;
36
+ /**
37
+ * Merges deleted and inserted object partials.
38
+ */
39
+ static mergeObjects<T extends {
40
+ [key: string]: unknown;
41
+ }>(prev: T, added: T, removed: T): T;
42
+ /**
43
+ * Merges deleted and inserted array partials.
44
+ */
45
+ static mergeArrays<T>(prev: readonly T[] | null, added: readonly T[] | null | undefined, removed: readonly T[] | null | undefined, predicate?: (value: T) => string): T[];
46
+ /**
47
+ * Diff object partials as part of the `postProcess`.
48
+ */
49
+ static diffObjects<T, K extends keyof T, V extends ValueOf<T[K]>>(deleted: Partial<T>, inserted: Partial<T>, property: K, setValue: (prevValue: V | undefined) => V): void;
50
+ /**
51
+ * Diff array partials as part of the `postProcess`.
52
+ */
53
+ static diffArrays<T, K extends keyof T, V extends T[K]>(deleted: Partial<T>, inserted: Partial<T>, property: K, groupBy: (value: V extends ArrayLike<infer T> ? T : never) => string): void;
54
+ /**
55
+ * Compares if object1 contains any different value compared to the object2.
56
+ */
57
+ static isLeftDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
58
+ /**
59
+ * Compares if object2 contains any different value compared to the object1.
60
+ */
61
+ static isRightDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
62
+ /**
63
+ * Compares if shared properties of object1 and object2 contain any different value (aka inner join).
64
+ */
65
+ static isInnerDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
66
+ /**
67
+ * Compares if any properties of object1 and object2 contain any different value (aka full join).
68
+ */
69
+ static isDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
70
+ /**
71
+ * Returns sorted object1 keys that have distinct values.
72
+ */
73
+ static getLeftDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
74
+ /**
75
+ * Returns sorted object2 keys that have distinct values.
76
+ */
77
+ static getRightDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
78
+ /**
79
+ * Returns sorted keys of shared object1 and object2 properties that have distinct values (aka inner join).
80
+ */
81
+ static getInnerDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
82
+ /**
83
+ * Returns sorted keys that have distinct values between object1 and object2 (aka full join).
84
+ */
85
+ static getDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
86
+ /**
87
+ * Iterator comparing values of object properties based on the passed joining strategy.
88
+ *
89
+ * @yields keys of properties with different values
90
+ *
91
+ * WARN: it's based on shallow compare performed only on the first level and doesn't go deeper than that.
92
+ */
93
+ private static distinctKeysIterator;
94
+ }
95
+ /**
96
+ * Encapsulates a set of application-level `Delta`s.
97
+ */
98
+ export interface DeltaContainer<T> {
99
+ /**
100
+ * Inverses the `Delta`s while creating a new `DeltaContainer` instance.
101
+ */
102
+ inverse(): DeltaContainer<T>;
103
+ /**
104
+ * Applies the `Delta`s to the previous object.
105
+ *
106
+ * @returns a tuple of the next object `T` with applied `Delta`s, and `boolean`, indicating whether the applied deltas resulted in a visible change.
107
+ */
108
+ applyTo(previous: T, ...options: unknown[]): [T, boolean];
109
+ /**
110
+ * Squashes the current delta with the given one.
111
+ */
112
+ squash(delta: DeltaContainer<T>): this;
113
+ /**
114
+ * Checks whether all `Delta`s are empty.
115
+ */
116
+ isEmpty(): boolean;
117
+ }
118
+ export declare class AppStateDelta implements DeltaContainer<AppState> {
119
+ delta: Delta<ObservedAppState>;
120
+ private constructor();
121
+ static calculate<T extends ObservedAppState>(prevAppState: T, nextAppState: T): AppStateDelta;
122
+ static restore(appStateDeltaDTO: DTO<AppStateDelta>): AppStateDelta;
123
+ static empty(): AppStateDelta;
124
+ inverse(): AppStateDelta;
125
+ squash(delta: AppStateDelta): this;
126
+ applyTo(appState: AppState, nextElements: SceneElementsMap): [AppState, boolean];
127
+ isEmpty(): boolean;
128
+ /**
129
+ * Mutates `nextAppState` be filtering out state related to deleted elements.
130
+ *
131
+ * @returns `true` if a visible change is found, `false` otherwise.
132
+ */
133
+ private filterInvisibleChanges;
134
+ private static filterSelectedElements;
135
+ private static filterSelectedGroups;
136
+ private static stripElementsProps;
137
+ private static stripStandaloneProps;
138
+ /**
139
+ * It is necessary to post process the partials in case of reference values,
140
+ * for which we need to calculate the real diff between `deleted` and `inserted`.
141
+ */
142
+ private static postProcess;
143
+ private static orderAppStateKeys;
144
+ }
145
+ type ElementPartial<TElement extends ExcalidrawElement = ExcalidrawElement> = Omit<Partial<Ordered<TElement>>, "id" | "updated" | "seed">;
146
+ export type ApplyToOptions = {
147
+ excludedProperties: Set<keyof ElementPartial>;
148
+ };
149
+ /**
150
+ * Elements change is a low level primitive to capture a change between two sets of elements.
151
+ * It does so by encapsulating forward and backward `Delta`s, allowing to time-travel in both directions.
152
+ */
153
+ export declare class ElementsDelta implements DeltaContainer<SceneElementsMap> {
154
+ readonly added: Record<string, Delta<ElementPartial>>;
155
+ readonly removed: Record<string, Delta<ElementPartial>>;
156
+ readonly updated: Record<string, Delta<ElementPartial>>;
157
+ private constructor();
158
+ static create(added: Record<string, Delta<ElementPartial>>, removed: Record<string, Delta<ElementPartial>>, updated: Record<string, Delta<ElementPartial>>, options?: {
159
+ shouldRedistribute: boolean;
160
+ }): ElementsDelta;
161
+ static restore(elementsDeltaDTO: DTO<ElementsDelta>): ElementsDelta;
162
+ private static satisfiesAddition;
163
+ private static satisfiesRemoval;
164
+ private static satisfiesUpdate;
165
+ private static satisfiesCommmonInvariants;
166
+ private static validate;
167
+ /**
168
+ * Calculates the `Delta`s between the previous and next set of elements.
169
+ *
170
+ * @param prevElements - Map representing the previous state of elements.
171
+ * @param nextElements - Map representing the next state of elements.
172
+ *
173
+ * @returns `ElementsDelta` instance representing the `Delta` changes between the two sets of elements.
174
+ */
175
+ static calculate<T extends OrderedExcalidrawElement>(prevElements: Map<string, T>, nextElements: Map<string, T>): ElementsDelta;
176
+ static empty(): ElementsDelta;
177
+ inverse(): ElementsDelta;
178
+ isEmpty(): boolean;
179
+ /**
180
+ * Update delta/s based on the existing elements.
181
+ *
182
+ * @param nextElements current elements
183
+ * @param modifierOptions defines which of the delta (`deleted` or `inserted`) will be updated
184
+ * @returns new instance with modified delta/s
185
+ */
186
+ applyLatestChanges(prevElements: SceneElementsMap, nextElements: SceneElementsMap, modifierOptions?: "deleted" | "inserted"): ElementsDelta;
187
+ applyTo(elements: SceneElementsMap, snapshot?: StoreSnapshot["elements"], options?: ApplyToOptions): [SceneElementsMap, boolean];
188
+ squash(delta: ElementsDelta): this;
189
+ private static createApplier;
190
+ private static createGetter;
191
+ private static applyDelta;
192
+ /**
193
+ * Check for visible changes regardless of whether they were removed, added or updated.
194
+ */
195
+ private static checkForVisibleDifference;
196
+ /**
197
+ * Resolves conflicts for all previously added, removed and updated elements.
198
+ * Updates the previous deltas with all the changes after conflict resolution.
199
+ *
200
+ * // TODO: revisit since some bound arrows seem to be often redrawn incorrectly
201
+ *
202
+ * @returns all elements affected by the conflict resolution
203
+ */
204
+ private resolveConflicts;
205
+ /**
206
+ * Non deleted affected elements of removed elements (before and after applying delta),
207
+ * should be unbound ~ bindings should not point from non deleted into the deleted element/s.
208
+ */
209
+ private static unbindAffected;
210
+ /**
211
+ * Non deleted affected elements of added or updated element/s (before and after applying delta),
212
+ * should be rebound (if possible) with the current element ~ bindings should be bidirectional.
213
+ */
214
+ private static rebindAffected;
215
+ private static redrawTextBoundingBoxes;
216
+ private static redrawBoundArrows;
217
+ private static reorderElements;
218
+ /**
219
+ * It is necessary to post process the partials in case of reference values,
220
+ * for which we need to calculate the real diff between `deleted` and `inserted`.
221
+ */
222
+ private static postProcess;
223
+ private static stripIrrelevantProps;
224
+ private static stripVersionProps;
225
+ }
226
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { GlobalPoint } from "@excalidraw/math";
2
+ import type { ElementsMap, ExcalidrawElement } from "./types";
3
+ export declare const distanceToElement: (element: ExcalidrawElement, elementsMap: ElementsMap, p: GlobalPoint) => number;
@@ -1,6 +1,7 @@
1
- import type { ElementsMap, ExcalidrawElement } from "./element/types";
2
- export interface Distribution {
3
- space: "between";
4
- axis: "x" | "y";
5
- }
6
- export declare const distributeElements: (selectedElements: ExcalidrawElement[], elementsMap: ElementsMap, distribution: Distribution) => ExcalidrawElement[];
1
+ import type { AppState } from "@excalidraw/excalidraw/types";
2
+ import type { ElementsMap, ExcalidrawElement } from "./types";
3
+ export interface Distribution {
4
+ space: "between";
5
+ axis: "x" | "y";
6
+ }
7
+ export declare const distributeElements: (selectedElements: ExcalidrawElement[], elementsMap: ElementsMap, distribution: Distribution, appState: Readonly<AppState>) => ExcalidrawElement[];
@@ -1,32 +1,33 @@
1
- import type { NonDeletedExcalidrawElement } from "./types";
2
- import type { AppState, NormalizedZoomValue, NullableGridSize, PointerDownState } from "../types";
3
- import type Scene from "../scene/Scene";
4
- export declare const dragSelectedElements: (pointerDownState: PointerDownState, _selectedElements: NonDeletedExcalidrawElement[], offset: {
5
- x: number;
6
- y: number;
7
- }, scene: Scene, snapOffset: {
8
- x: number;
9
- y: number;
10
- }, gridSize: NullableGridSize) => void;
11
- export declare const getDragOffsetXY: (selectedElements: NonDeletedExcalidrawElement[], x: number, y: number) => [number, number];
12
- export declare const dragNewElement: ({ newElement, elementType, originX, originY, x, y, width, height, shouldMaintainAspectRatio, shouldResizeFromCenter, zoom, widthAspectRatio, originOffset, informMutation, }: {
13
- newElement: NonDeletedExcalidrawElement;
14
- elementType: AppState["activeTool"]["type"];
15
- originX: number;
16
- originY: number;
17
- x: number;
18
- y: number;
19
- width: number;
20
- height: number;
21
- shouldMaintainAspectRatio: boolean;
22
- shouldResizeFromCenter: boolean;
23
- zoom: NormalizedZoomValue;
24
- /** whether to keep given aspect ratio when `isResizeWithSidesSameLength` is
25
- true */
26
- widthAspectRatio?: number | null | undefined;
27
- originOffset?: {
28
- x: number;
29
- y: number;
30
- } | null | undefined;
31
- informMutation?: boolean | undefined;
32
- }) => void;
1
+ import type { AppState, NormalizedZoomValue, NullableGridSize, PointerDownState } from "@excalidraw/excalidraw/types";
2
+ import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
3
+ import type { Scene } from "./Scene";
4
+ export declare const dragSelectedElements: (pointerDownState: PointerDownState, _selectedElements: NonDeletedExcalidrawElement[], offset: {
5
+ x: number;
6
+ y: number;
7
+ }, scene: Scene, snapOffset: {
8
+ x: number;
9
+ y: number;
10
+ }, gridSize: NullableGridSize) => void;
11
+ export declare const getDragOffsetXY: (selectedElements: NonDeletedExcalidrawElement[], x: number, y: number) => [number, number];
12
+ export declare const dragNewElement: ({ newElement, elementType, originX, originY, x, y, width, height, shouldMaintainAspectRatio, shouldResizeFromCenter, zoom, scene, widthAspectRatio, originOffset, informMutation, }: {
13
+ newElement: NonDeletedExcalidrawElement;
14
+ elementType: AppState["activeTool"]["type"];
15
+ originX: number;
16
+ originY: number;
17
+ x: number;
18
+ y: number;
19
+ width: number;
20
+ height: number;
21
+ shouldMaintainAspectRatio: boolean;
22
+ shouldResizeFromCenter: boolean;
23
+ zoom: NormalizedZoomValue;
24
+ scene: Scene;
25
+ /** whether to keep given aspect ratio when `isResizeWithSidesSameLength` is
26
+ true */
27
+ widthAspectRatio?: number | null | undefined;
28
+ originOffset?: {
29
+ x: number;
30
+ y: number;
31
+ } | null | undefined;
32
+ informMutation?: boolean | undefined;
33
+ }) => void;