@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,35 +1,35 @@
1
- import type { AppState, BinaryFiles } from "@excalidraw/excalidraw/types";
2
- import type { ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted } from "@excalidraw/excalidraw/element/types";
3
- import { MIME_TYPES } from "@excalidraw/excalidraw/constants";
4
- export { MIME_TYPES };
5
- type ExportOpts = {
6
- elements: readonly NonDeleted<ExcalidrawElement>[];
7
- appState?: Partial<Omit<AppState, "offsetTop" | "offsetLeft">>;
8
- files: BinaryFiles | null;
9
- maxWidthOrHeight?: number;
10
- exportingFrame?: ExcalidrawFrameLikeElement | null;
11
- getDimensions?: (width: number, height: number) => {
12
- width: number;
13
- height: number;
14
- scale?: number;
15
- };
16
- };
17
- export declare const exportToCanvas: ({ elements, appState, files, maxWidthOrHeight, getDimensions, exportPadding, exportingFrame, }: ExportOpts & {
18
- exportPadding?: number | undefined;
19
- }) => Promise<HTMLCanvasElement>;
20
- export declare const exportToBlob: (opts: ExportOpts & {
21
- mimeType?: string;
22
- quality?: number;
23
- exportPadding?: number;
24
- }) => Promise<Blob>;
25
- export declare const exportToSvg: ({ elements, appState, files, exportPadding, renderEmbeddables, exportingFrame, skipInliningFonts, reuseImages, }: Omit<ExportOpts, "getDimensions"> & {
26
- exportPadding?: number | undefined;
27
- renderEmbeddables?: boolean | undefined;
28
- skipInliningFonts?: true | undefined;
29
- reuseImages?: boolean | undefined;
30
- }) => Promise<SVGSVGElement>;
31
- export declare const exportToClipboard: (opts: ExportOpts & {
32
- mimeType?: string;
33
- quality?: number;
34
- type: "png" | "svg" | "json";
35
- }) => Promise<void>;
1
+ import { MIME_TYPES } from "@excalidraw/common";
2
+ import type { ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted } from "@excalidraw/element/types";
3
+ import type { AppState, BinaryFiles } from "@excalidraw/excalidraw/types";
4
+ export { MIME_TYPES };
5
+ type ExportOpts = {
6
+ elements: readonly NonDeleted<ExcalidrawElement>[];
7
+ appState?: Partial<Omit<AppState, "offsetTop" | "offsetLeft">>;
8
+ files: BinaryFiles | null;
9
+ maxWidthOrHeight?: number;
10
+ exportingFrame?: ExcalidrawFrameLikeElement | null;
11
+ getDimensions?: (width: number, height: number) => {
12
+ width: number;
13
+ height: number;
14
+ scale?: number;
15
+ };
16
+ };
17
+ export declare const exportToCanvas: ({ elements, appState, files, maxWidthOrHeight, getDimensions, exportPadding, exportingFrame, }: ExportOpts & {
18
+ exportPadding?: number | undefined;
19
+ }) => Promise<HTMLCanvasElement>;
20
+ export declare const exportToBlob: (opts: ExportOpts & {
21
+ mimeType?: string;
22
+ quality?: number;
23
+ exportPadding?: number;
24
+ }) => Promise<Blob>;
25
+ export declare const exportToSvg: ({ elements, appState, files, exportPadding, renderEmbeddables, exportingFrame, skipInliningFonts, reuseImages, }: Omit<ExportOpts, "getDimensions"> & {
26
+ exportPadding?: number | undefined;
27
+ renderEmbeddables?: boolean | undefined;
28
+ skipInliningFonts?: true | undefined;
29
+ reuseImages?: boolean | undefined;
30
+ }) => Promise<SVGSVGElement>;
31
+ export declare const exportToClipboard: (opts: ExportOpts & {
32
+ mimeType?: string;
33
+ quality?: number;
34
+ type: "png" | "svg" | "json";
35
+ }) => Promise<void>;
@@ -1,4 +1,4 @@
1
- export * from "./export";
2
- export * from "./withinBounds";
3
- export * from "./bbox";
4
- export { getCommonBounds } from "@excalidraw/excalidraw/element/bounds";
1
+ export * from "./export";
2
+ export * from "./withinBounds";
3
+ export * from "./bbox";
4
+ export { getCommonBounds } from "@excalidraw/element";
@@ -1,71 +1,58 @@
1
- /**
2
- * this file defines pure geometric shapes
3
- *
4
- * for instance, a cubic bezier curve is specified by its four control points and
5
- * an ellipse is defined by its center, angle, semi major axis and semi minor axis
6
- * (but in semi-width and semi-height so it's more relevant to Excalidraw)
7
- *
8
- * the idea with pure shapes is so that we can provide collision and other geoemtric methods not depending on
9
- * the specifics of roughjs or elements in Excalidraw; instead, we can focus on the pure shapes themselves
10
- *
11
- * also included in this file are methods for converting an Excalidraw element or a Drawable from roughjs
12
- * to pure shapes
13
- */
14
- import type { Curve, LineSegment, Polygon, Radians } from "@excalidraw/math";
15
- import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
16
- import type { ElementsMap, ExcalidrawBindableElement, ExcalidrawDiamondElement, ExcalidrawElement, ExcalidrawEllipseElement, ExcalidrawEmbeddableElement, ExcalidrawFrameLikeElement, ExcalidrawFreeDrawElement, ExcalidrawIframeElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawRectangleElement, ExcalidrawSelectionElement, ExcalidrawTextElement } from "@excalidraw/excalidraw/element/types";
17
- import type { Drawable, Op } from "roughjs/bin/core";
18
- export type Polyline<Point extends GlobalPoint | LocalPoint> = LineSegment<Point>[];
19
- export type Polycurve<Point extends GlobalPoint | LocalPoint> = Curve<Point>[];
20
- export type Ellipse<Point extends GlobalPoint | LocalPoint> = {
21
- center: Point;
22
- angle: Radians;
23
- halfWidth: number;
24
- halfHeight: number;
25
- };
26
- export type GeometricShape<Point extends GlobalPoint | LocalPoint> = {
27
- type: "line";
28
- data: LineSegment<Point>;
29
- } | {
30
- type: "polygon";
31
- data: Polygon<Point>;
32
- } | {
33
- type: "curve";
34
- data: Curve<Point>;
35
- } | {
36
- type: "ellipse";
37
- data: Ellipse<Point>;
38
- } | {
39
- type: "polyline";
40
- data: Polyline<Point>;
41
- } | {
42
- type: "polycurve";
43
- data: Polycurve<Point>;
44
- };
45
- type RectangularElement = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawFrameLikeElement | ExcalidrawEmbeddableElement | ExcalidrawImageElement | ExcalidrawIframeElement | ExcalidrawTextElement | ExcalidrawSelectionElement;
46
- export declare const getPolygonShape: <Point extends GlobalPoint | LocalPoint>(element: RectangularElement) => GeometricShape<Point>;
47
- export declare const getSelectionBoxShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap, padding?: number) => GeometricShape<Point>;
48
- export declare const getEllipseShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawEllipseElement) => GeometricShape<Point>;
49
- export declare const getCurvePathOps: (shape: Drawable) => Op[];
50
- export declare const getCurveShape: <Point extends GlobalPoint | LocalPoint>(roughShape: Drawable, startingPoint: Point | undefined, angleInRadian: Radians, center: Point) => GeometricShape<Point>;
51
- export declare const getFreedrawShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawFreeDrawElement, center: Point, isClosed?: boolean) => GeometricShape<Point>;
52
- export declare const getClosedCurveShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawLinearElement, roughShape: Drawable, startingPoint: Point | undefined, angleInRadian: Radians, center: Point) => GeometricShape<Point>;
53
- /**
54
- * Determine intersection of a rectangular shaped element and a
55
- * line segment.
56
- *
57
- * @param element The rectangular element to test against
58
- * @param segment The segment intersecting the element
59
- * @param gap Optional value to inflate the shape before testing
60
- * @returns An array of intersections
61
- */
62
- export declare const segmentIntersectRectangleElement: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawBindableElement, segment: LineSegment<Point>, gap?: number) => Point[];
63
- export declare const pointOnEllipse: <Point extends GlobalPoint | LocalPoint>(point: Point, ellipse: Ellipse<Point>, threshold?: number) => boolean;
64
- export declare const pointInEllipse: <Point extends GlobalPoint | LocalPoint>(p: Point, ellipse: Ellipse<Point>) => boolean;
65
- export declare const ellipseAxes: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => {
66
- majorAxis: number;
67
- minorAxis: number;
68
- };
69
- export declare const ellipseFocusToCenter: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => number;
70
- export declare const ellipseExtremes: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => import("@excalidraw/math").Vector[];
71
- export {};
1
+ import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
2
+ import type { ElementsMap, ExcalidrawBindableElement, ExcalidrawDiamondElement, ExcalidrawElement, ExcalidrawEllipseElement, ExcalidrawEmbeddableElement, ExcalidrawFrameLikeElement, ExcalidrawFreeDrawElement, ExcalidrawIframeElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawRectangleElement, ExcalidrawSelectionElement, ExcalidrawTextElement } from "@excalidraw/element/types";
3
+ import type { Curve, LineSegment, Polygon, Radians } from "@excalidraw/math";
4
+ import type { Drawable, Op } from "roughjs/bin/core";
5
+ export type Polyline<Point extends GlobalPoint | LocalPoint> = LineSegment<Point>[];
6
+ export type Polycurve<Point extends GlobalPoint | LocalPoint> = Curve<Point>[];
7
+ export type Ellipse<Point extends GlobalPoint | LocalPoint> = {
8
+ center: Point;
9
+ angle: Radians;
10
+ halfWidth: number;
11
+ halfHeight: number;
12
+ };
13
+ export type GeometricShape<Point extends GlobalPoint | LocalPoint> = {
14
+ type: "line";
15
+ data: LineSegment<Point>;
16
+ } | {
17
+ type: "polygon";
18
+ data: Polygon<Point>;
19
+ } | {
20
+ type: "curve";
21
+ data: Curve<Point>;
22
+ } | {
23
+ type: "ellipse";
24
+ data: Ellipse<Point>;
25
+ } | {
26
+ type: "polyline";
27
+ data: Polyline<Point>;
28
+ } | {
29
+ type: "polycurve";
30
+ data: Polycurve<Point>;
31
+ };
32
+ type RectangularElement = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawFrameLikeElement | ExcalidrawEmbeddableElement | ExcalidrawImageElement | ExcalidrawIframeElement | ExcalidrawTextElement | ExcalidrawSelectionElement;
33
+ export declare const getPolygonShape: <Point extends GlobalPoint | LocalPoint>(element: RectangularElement) => GeometricShape<Point>;
34
+ export declare const getSelectionBoxShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap, padding?: number) => GeometricShape<Point>;
35
+ export declare const getEllipseShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawEllipseElement) => GeometricShape<Point>;
36
+ export declare const getCurvePathOps: (shape: Drawable) => Op[];
37
+ export declare const getCurveShape: <Point extends GlobalPoint | LocalPoint>(roughShape: Drawable, startingPoint: Point | undefined, angleInRadian: Radians, center: Point) => GeometricShape<Point>;
38
+ export declare const getFreedrawShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawFreeDrawElement, center: Point, isClosed?: boolean) => GeometricShape<Point>;
39
+ export declare const getClosedCurveShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawLinearElement, roughShape: Drawable, startingPoint: Point | undefined, angleInRadian: Radians, center: Point) => GeometricShape<Point>;
40
+ /**
41
+ * Determine intersection of a rectangular shaped element and a
42
+ * line segment.
43
+ *
44
+ * @param element The rectangular element to test against
45
+ * @param segment The segment intersecting the element
46
+ * @param gap Optional value to inflate the shape before testing
47
+ * @returns An array of intersections
48
+ */
49
+ export declare const segmentIntersectRectangleElement: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawBindableElement, segment: LineSegment<Point>, gap?: number) => Point[];
50
+ export declare const pointOnEllipse: <Point extends GlobalPoint | LocalPoint>(point: Point, ellipse: Ellipse<Point>, threshold?: number) => boolean;
51
+ export declare const pointInEllipse: <Point extends GlobalPoint | LocalPoint>(p: Point, ellipse: Ellipse<Point>) => boolean;
52
+ export declare const ellipseAxes: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => {
53
+ majorAxis: number;
54
+ minorAxis: number;
55
+ };
56
+ export declare const ellipseFocusToCenter: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => number;
57
+ export declare const ellipseExtremes: <Point extends GlobalPoint | LocalPoint>(ellipse: Ellipse<Point>) => import("@excalidraw/math").Vector[];
58
+ export {};
@@ -1,19 +1,19 @@
1
- import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/excalidraw/element/types";
2
- import type { Bounds } from "@excalidraw/excalidraw/element/bounds";
3
- type Element = NonDeletedExcalidrawElement;
4
- type Elements = readonly NonDeletedExcalidrawElement[];
5
- export declare const isElementInsideBBox: (element: Element, bbox: Bounds, eitherDirection?: boolean) => boolean;
6
- export declare const elementPartiallyOverlapsWithOrContainsBBox: (element: Element, bbox: Bounds) => boolean;
7
- export declare const elementsOverlappingBBox: ({ elements, bounds, type, errorMargin, }: {
8
- elements: Elements;
9
- bounds: Bounds | ExcalidrawElement;
10
- /** safety offset. Defaults to 0. */
11
- errorMargin?: number | undefined;
12
- /**
13
- * - overlap: elements overlapping or inside bounds
14
- * - contain: elements inside bounds or bounds inside elements
15
- * - inside: elements inside bounds
16
- **/
17
- type: "overlap" | "contain" | "inside";
18
- }) => NonDeletedExcalidrawElement[];
19
- export {};
1
+ import type { Bounds } from "@excalidraw/element";
2
+ import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
3
+ type Element = NonDeletedExcalidrawElement;
4
+ type Elements = readonly NonDeletedExcalidrawElement[];
5
+ export declare const isElementInsideBBox: (element: Element, bbox: Bounds, eitherDirection?: boolean) => boolean;
6
+ export declare const elementPartiallyOverlapsWithOrContainsBBox: (element: Element, bbox: Bounds) => boolean;
7
+ export declare const elementsOverlappingBBox: ({ elements, bounds, type, errorMargin, }: {
8
+ elements: Elements;
9
+ bounds: Bounds | ExcalidrawElement;
10
+ /** safety offset. Defaults to 0. */
11
+ errorMargin?: number | undefined;
12
+ /**
13
+ * - overlap: elements overlapping or inside bounds
14
+ * - contain: elements inside bounds or bounds inside elements
15
+ * - inside: elements inside bounds
16
+ **/
17
+ type: "overlap" | "contain" | "inside";
18
+ }) => NonDeletedExcalidrawElement[];
19
+ export {};
package/history.ts CHANGED
@@ -1,10 +1,84 @@
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
+
3
+ import {
4
+ CaptureUpdateAction,
5
+ StoreChange,
6
+ StoreDelta,
7
+ } from "@excalidraw/element";
8
+
9
+ import type { StoreSnapshot, Store } from "@excalidraw/element";
10
+
11
+ import type { SceneElementsMap } from "@excalidraw/element/types";
12
+
5
13
  import type { AppState } from "./types";
6
14
 
7
- type HistoryStack = HistoryEntry[];
15
+ export class HistoryDelta extends StoreDelta {
16
+ /**
17
+ * Apply the delta to the passed elements and appState, does not modify the snapshot.
18
+ */
19
+ public applyTo(
20
+ elements: SceneElementsMap,
21
+ appState: AppState,
22
+ snapshot: StoreSnapshot,
23
+ ): [SceneElementsMap, AppState, boolean] {
24
+ const [nextElements, elementsContainVisibleChange] = this.elements.applyTo(
25
+ elements,
26
+ // used to fallback into local snapshot in case we couldn't apply the delta
27
+ // due to a missing (force deleted) elements in the scene
28
+ snapshot.elements,
29
+ // we don't want to apply the `version` and `versionNonce` properties for history
30
+ // as we always need to end up with a new version due to collaboration,
31
+ // approaching each undo / redo as a new user action
32
+ {
33
+ excludedProperties: new Set(["version", "versionNonce"]),
34
+ },
35
+ );
36
+
37
+ const [nextAppState, appStateContainsVisibleChange] = this.appState.applyTo(
38
+ appState,
39
+ nextElements,
40
+ );
41
+
42
+ const appliedVisibleChanges =
43
+ elementsContainVisibleChange || appStateContainsVisibleChange;
44
+
45
+ return [nextElements, nextAppState, appliedVisibleChanges];
46
+ }
47
+
48
+ /**
49
+ * Overriding once to avoid type casting everywhere.
50
+ */
51
+ public static override calculate(
52
+ prevSnapshot: StoreSnapshot,
53
+ nextSnapshot: StoreSnapshot,
54
+ ) {
55
+ return super.calculate(prevSnapshot, nextSnapshot) as HistoryDelta;
56
+ }
57
+
58
+ /**
59
+ * Overriding once to avoid type casting everywhere.
60
+ */
61
+ public static override inverse(delta: StoreDelta): HistoryDelta {
62
+ return super.inverse(delta) as HistoryDelta;
63
+ }
64
+
65
+ /**
66
+ * Overriding once to avoid type casting everywhere.
67
+ */
68
+ public static override applyLatestChanges(
69
+ delta: StoreDelta,
70
+ prevElements: SceneElementsMap,
71
+ nextElements: SceneElementsMap,
72
+ modifierOptions?: "deleted" | "inserted",
73
+ ) {
74
+ return super.applyLatestChanges(
75
+ delta,
76
+ prevElements,
77
+ nextElements,
78
+ modifierOptions,
79
+ ) as HistoryDelta;
80
+ }
81
+ }
8
82
 
9
83
  export class HistoryChangedEvent {
10
84
  constructor(
@@ -18,8 +92,8 @@ export class History {
18
92
  [HistoryChangedEvent]
19
93
  >();
20
94
 
21
- private readonly undoStack: HistoryStack = [];
22
- private readonly redoStack: HistoryStack = [];
95
+ public readonly undoStack: HistoryDelta[] = [];
96
+ public readonly redoStack: HistoryDelta[] = [];
23
97
 
24
98
  public get isUndoStackEmpty() {
25
99
  return this.undoStack.length === 0;
@@ -29,98 +103,119 @@ export class History {
29
103
  return this.redoStack.length === 0;
30
104
  }
31
105
 
106
+ constructor(private readonly store: Store) {}
107
+
32
108
  public clear() {
33
109
  this.undoStack.length = 0;
34
110
  this.redoStack.length = 0;
35
111
  }
36
112
 
37
113
  /**
38
- * Record a local change which will go into the history
114
+ * Record a non-empty local durable increment, which will go into the undo stack..
115
+ * Do not re-record history entries, which were already pushed to undo / redo stack, as part of history action.
39
116
  */
40
- public record(
41
- elementsChange: ElementsChange,
42
- appStateChange: AppStateChange,
43
- ) {
44
- const entry = HistoryEntry.create(appStateChange, elementsChange);
117
+ public record(delta: StoreDelta) {
118
+ if (delta.isEmpty() || delta instanceof HistoryDelta) {
119
+ return;
120
+ }
45
121
 
46
- if (!entry.isEmpty()) {
47
- // we have the latest changes, no need to `applyLatest`, which is done within `History.push`
48
- this.undoStack.push(entry.inverse());
122
+ // construct history entry, so once it's emitted, it's not recorded again
123
+ const historyDelta = HistoryDelta.inverse(delta);
49
124
 
50
- if (!entry.elementsChange.isEmpty()) {
51
- // don't reset redo stack on local appState changes,
52
- // as a simple click (unselect) could lead to losing all the redo entries
53
- // only reset on non empty elements changes!
54
- this.redoStack.length = 0;
55
- }
125
+ this.undoStack.push(historyDelta);
56
126
 
57
- this.onHistoryChangedEmitter.trigger(
58
- new HistoryChangedEvent(this.isUndoStackEmpty, this.isRedoStackEmpty),
59
- );
127
+ if (!historyDelta.elements.isEmpty()) {
128
+ // don't reset redo stack on local appState changes,
129
+ // as a simple click (unselect) could lead to losing all the redo entries
130
+ // only reset on non empty elements changes!
131
+ this.redoStack.length = 0;
60
132
  }
133
+
134
+ this.onHistoryChangedEmitter.trigger(
135
+ new HistoryChangedEvent(this.isUndoStackEmpty, this.isRedoStackEmpty),
136
+ );
61
137
  }
62
138
 
63
- public undo(
64
- elements: SceneElementsMap,
65
- appState: AppState,
66
- snapshot: Readonly<Snapshot>,
67
- ) {
139
+ public undo(elements: SceneElementsMap, appState: AppState) {
68
140
  return this.perform(
69
141
  elements,
70
142
  appState,
71
- snapshot,
72
143
  () => History.pop(this.undoStack),
73
- (entry: HistoryEntry) => History.push(this.redoStack, entry, elements),
144
+ (entry: HistoryDelta) => History.push(this.redoStack, entry),
74
145
  );
75
146
  }
76
147
 
77
- public redo(
78
- elements: SceneElementsMap,
79
- appState: AppState,
80
- snapshot: Readonly<Snapshot>,
81
- ) {
148
+ public redo(elements: SceneElementsMap, appState: AppState) {
82
149
  return this.perform(
83
150
  elements,
84
151
  appState,
85
- snapshot,
86
152
  () => History.pop(this.redoStack),
87
- (entry: HistoryEntry) => History.push(this.undoStack, entry, elements),
153
+ (entry: HistoryDelta) => History.push(this.undoStack, entry),
88
154
  );
89
155
  }
90
156
 
91
157
  private perform(
92
158
  elements: SceneElementsMap,
93
159
  appState: AppState,
94
- snapshot: Readonly<Snapshot>,
95
- pop: () => HistoryEntry | null,
96
- push: (entry: HistoryEntry) => void,
160
+ pop: () => HistoryDelta | null,
161
+ push: (entry: HistoryDelta) => void,
97
162
  ): [SceneElementsMap, AppState] | void {
98
163
  try {
99
- let historyEntry = pop();
164
+ let historyDelta = pop();
100
165
 
101
- if (historyEntry === null) {
166
+ if (historyDelta === null) {
102
167
  return;
103
168
  }
104
169
 
170
+ const action = CaptureUpdateAction.IMMEDIATELY;
171
+
172
+ let prevSnapshot = this.store.snapshot;
173
+
105
174
  let nextElements = elements;
106
175
  let nextAppState = appState;
107
176
  let containsVisibleChange = false;
108
177
 
109
- // iterate through the history entries in case they result in no visible changes
110
- while (historyEntry) {
178
+ // iterate through the history entries in case ;they result in no visible changes
179
+ while (historyDelta) {
111
180
  try {
112
181
  [nextElements, nextAppState, containsVisibleChange] =
113
- historyEntry.applyTo(nextElements, nextAppState, snapshot);
182
+ historyDelta.applyTo(nextElements, nextAppState, prevSnapshot);
183
+
184
+ const prevElements = prevSnapshot.elements;
185
+ const nextSnapshot = prevSnapshot.maybeClone(
186
+ action,
187
+ nextElements,
188
+ nextAppState,
189
+ );
190
+
191
+ const change = StoreChange.create(prevSnapshot, nextSnapshot);
192
+ const delta = HistoryDelta.applyLatestChanges(
193
+ historyDelta,
194
+ prevElements,
195
+ nextElements,
196
+ );
197
+
198
+ if (!delta.isEmpty()) {
199
+ // schedule immediate capture, so that it's emitted for the sync purposes
200
+ this.store.scheduleMicroAction({
201
+ action,
202
+ change,
203
+ delta,
204
+ });
205
+
206
+ historyDelta = delta;
207
+ }
208
+
209
+ prevSnapshot = nextSnapshot;
114
210
  } finally {
115
- // make sure to always push / pop, even if the increment is corrupted
116
- push(historyEntry);
211
+ push(historyDelta);
117
212
  }
118
213
 
119
214
  if (containsVisibleChange) {
120
215
  break;
121
216
  }
122
217
 
123
- historyEntry = pop();
218
+ historyDelta = pop();
124
219
  }
125
220
 
126
221
  return [nextElements, nextAppState];
@@ -133,7 +228,7 @@ export class History {
133
228
  }
134
229
  }
135
230
 
136
- private static pop(stack: HistoryStack): HistoryEntry | null {
231
+ private static pop(stack: HistoryDelta[]): HistoryDelta | null {
137
232
  if (!stack.length) {
138
233
  return null;
139
234
  }
@@ -147,64 +242,8 @@ export class History {
147
242
  return null;
148
243
  }
149
244
 
150
- private static push(
151
- stack: HistoryStack,
152
- entry: HistoryEntry,
153
- prevElements: SceneElementsMap,
154
- ) {
155
- const updatedEntry = entry.inverse().applyLatestChanges(prevElements);
156
- return stack.push(updatedEntry);
157
- }
158
- }
159
-
160
- export class HistoryEntry {
161
- private constructor(
162
- public readonly appStateChange: AppStateChange,
163
- public readonly elementsChange: ElementsChange,
164
- ) {}
165
-
166
- public static create(
167
- appStateChange: AppStateChange,
168
- elementsChange: ElementsChange,
169
- ) {
170
- return new HistoryEntry(appStateChange, elementsChange);
171
- }
172
-
173
- public inverse(): HistoryEntry {
174
- return new HistoryEntry(
175
- this.appStateChange.inverse(),
176
- this.elementsChange.inverse(),
177
- );
178
- }
179
-
180
- public applyTo(
181
- elements: SceneElementsMap,
182
- appState: AppState,
183
- snapshot: Readonly<Snapshot>,
184
- ): [SceneElementsMap, AppState, boolean] {
185
- const [nextElements, elementsContainVisibleChange] =
186
- this.elementsChange.applyTo(elements, snapshot.elements);
187
-
188
- const [nextAppState, appStateContainsVisibleChange] =
189
- this.appStateChange.applyTo(appState, nextElements);
190
-
191
- const appliedVisibleChanges =
192
- elementsContainVisibleChange || appStateContainsVisibleChange;
193
-
194
- return [nextElements, nextAppState, appliedVisibleChanges];
195
- }
196
-
197
- /**
198
- * Apply latest (remote) changes to the history entry, creates new instance of `HistoryEntry`.
199
- */
200
- public applyLatestChanges(elements: SceneElementsMap): HistoryEntry {
201
- const updatedElementsChange =
202
- this.elementsChange.applyLatestChanges(elements);
203
-
204
- return HistoryEntry.create(this.appStateChange, updatedElementsChange);
205
- }
206
-
207
- public isEmpty(): boolean {
208
- return this.appStateChange.isEmpty() && this.elementsChange.isEmpty();
245
+ private static push(stack: HistoryDelta[], entry: HistoryDelta) {
246
+ const inversedEntry = HistoryDelta.inverse(entry);
247
+ return stack.push(inversedEntry);
209
248
  }
210
249
  }
package/package.json CHANGED
@@ -1,11 +1,23 @@
1
1
  {
2
2
  "name": "@excalidraw/excalidraw",
3
- "version": "0.18.0-d92384b77-3",
3
+ "version": "0.18.0-dda3affcb",
4
4
  "type": "module",
5
5
  "types": "./dist/types/excalidraw/index.d.ts",
6
6
  "main": "./dist/prod/index.js",
7
7
  "module": "./dist/prod/index.js",
8
8
  "exports": {
9
+ "./common/*": {
10
+ "types": "./dist/types/common/src/*.d.ts"
11
+ },
12
+ "./element/*": {
13
+ "types": "./dist/types/element/src/*.d.ts"
14
+ },
15
+ "./math/*": {
16
+ "types": "./dist/types/math/src/*.d.ts"
17
+ },
18
+ "./utils/*": {
19
+ "types": "./dist/types/utils/src/*.d.ts"
20
+ },
9
21
  "./*": {
10
22
  "types": "./dist/types/excalidraw/*.d.ts"
11
23
  },
@@ -54,17 +66,27 @@
54
66
  "last 1 safari version"
55
67
  ]
56
68
  },
69
+ "repository": "https://github.com/excalidraw/excalidraw",
70
+ "bugs": "https://github.com/excalidraw/excalidraw/issues",
71
+ "homepage": "https://github.com/excalidraw/excalidraw/tree/master/packages/excalidraw",
72
+ "scripts": {
73
+ "gen:types": "rimraf types && tsc",
74
+ "build:esm": "rimraf dist && node ../../scripts/buildPackage.js && yarn gen:types"
75
+ },
57
76
  "peerDependencies": {
58
77
  "react": "^17.0.2 || ^18.2.0 || ^19.0.0",
59
78
  "react-dom": "^17.0.2 || ^18.2.0 || ^19.0.0"
60
79
  },
61
80
  "dependencies": {
62
81
  "@braintree/sanitize-url": "6.0.2",
82
+ "@excalidraw/common": "0.18.0-dda3affcb",
83
+ "@excalidraw/element": "0.18.0-dda3affcb",
84
+ "@excalidraw/math": "0.18.0-dda3affcb",
63
85
  "@excalidraw/laser-pointer": "1.3.1",
64
86
  "@excalidraw/mermaid-to-excalidraw": "1.1.2",
65
87
  "@excalidraw/random-username": "1.1.0",
66
88
  "@radix-ui/react-popover": "1.1.6",
67
- "@radix-ui/react-tabs": "1.0.2",
89
+ "@radix-ui/react-tabs": "1.1.3",
68
90
  "browser-fs-access": "0.29.1",
69
91
  "canvas-roundrect-polyfill": "0.0.1",
70
92
  "clsx": "1.1.1",
@@ -112,12 +134,5 @@
112
134
  "harfbuzzjs": "0.3.6",
113
135
  "jest-diff": "29.7.0",
114
136
  "typescript": "4.9.4"
115
- },
116
- "repository": "https://github.com/excalidraw/excalidraw",
117
- "bugs": "https://github.com/excalidraw/excalidraw/issues",
118
- "homepage": "https://github.com/excalidraw/excalidraw/tree/master/packages/excalidraw",
119
- "scripts": {
120
- "gen:types": "rm -rf types && tsc",
121
- "build:esm": "rm -rf dist && node ../../scripts/buildPackage.js && yarn gen:types"
122
137
  }
123
- }
138
+ }