@excalidraw/excalidraw 0.18.0-817d8c5 → 0.18.0-864353b

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 (288) hide show
  1. package/CHANGELOG.md +11 -11
  2. package/dist/dev/{chunk-LMHBUWQS.js → chunk-7YMZV3TY.js} +15 -4
  3. package/dist/dev/chunk-7YMZV3TY.js.map +7 -0
  4. package/dist/dev/chunk-BBNNHA7I.js +7 -0
  5. package/dist/dev/chunk-BBNNHA7I.js.map +7 -0
  6. package/dist/dev/chunk-FB2NA5UG.js +4132 -0
  7. package/dist/dev/chunk-FB2NA5UG.js.map +7 -0
  8. package/dist/dev/{chunk-3SN6HYVK.js → chunk-LL55DS44.js} +19504 -21522
  9. package/dist/dev/chunk-LL55DS44.js.map +7 -0
  10. package/dist/dev/data/{image-V26YBSDB.js → image-OFYK7EOY.js} +3 -3
  11. package/dist/dev/index.css +3098 -3023
  12. package/dist/dev/index.css.map +3 -3
  13. package/dist/dev/index.js +27238 -22881
  14. package/dist/dev/index.js.map +4 -4
  15. package/dist/dev/locales/{en-OZCJJ2HN.js → en-KIY5SGI3.js} +2 -2
  16. package/dist/dev/subset-shared.chunk.js +2 -2
  17. package/dist/dev/subset-worker.chunk.js +2 -2
  18. package/dist/prod/chunk-F44EGBV2.js +33 -0
  19. package/dist/prod/chunk-LS7FJGPW.js +86 -0
  20. package/dist/prod/{chunk-6U3AYISY.js → chunk-OUULIERA.js} +4 -4
  21. package/dist/prod/chunk-UH6Q3EIV.js +7 -0
  22. package/dist/prod/data/image-CUOH64HE.js +1 -0
  23. package/dist/prod/index.css +1 -1
  24. package/dist/prod/index.js +20 -16
  25. package/dist/prod/locales/{en-B4ZKOASM.js → en-GCLCIHXH.js} +1 -1
  26. package/dist/prod/subset-shared.chunk.js +1 -1
  27. package/dist/prod/subset-worker.chunk.js +1 -1
  28. package/dist/types/{excalidraw/binaryheap.d.ts → common/src/binary-heap.d.ts} +1 -1
  29. package/dist/types/{excalidraw → common/src}/colors.d.ts +1 -0
  30. package/dist/types/{excalidraw → common/src}/constants.d.ts +18 -7
  31. package/dist/types/{excalidraw → common/src}/emitter.d.ts +1 -1
  32. package/dist/types/{excalidraw/fonts/FontMetadata.d.ts → common/src/font-metadata.d.ts} +15 -5
  33. package/dist/types/common/src/index.d.ts +12 -0
  34. package/dist/types/{excalidraw → common/src}/points.d.ts +2 -0
  35. package/dist/types/common/src/promise-pool.d.ts +6 -0
  36. package/dist/types/{excalidraw → common/src}/utility-types.d.ts +5 -0
  37. package/dist/types/{excalidraw → common/src}/utils.d.ts +24 -11
  38. package/dist/types/{excalidraw/scene → element/src}/Scene.d.ts +14 -17
  39. package/dist/types/{excalidraw/scene → element/src}/Shape.d.ts +2 -2
  40. package/dist/types/{excalidraw/scene → element/src}/ShapeCache.d.ts +4 -4
  41. package/dist/types/element/src/align.d.ts +7 -0
  42. package/dist/types/{excalidraw/element → element/src}/binding.d.ts +24 -16
  43. package/dist/types/{excalidraw/element → element/src}/bounds.d.ts +9 -4
  44. package/dist/types/{excalidraw/element → element/src}/collision.d.ts +3 -3
  45. package/dist/types/{excalidraw/scene → element/src}/comparisons.d.ts +1 -1
  46. package/dist/types/{excalidraw/change.d.ts → element/src/delta.d.ts} +41 -36
  47. package/dist/types/{excalidraw → element/src}/distribute.d.ts +1 -1
  48. package/dist/types/{excalidraw/element → element/src}/dragElements.d.ts +5 -4
  49. package/dist/types/element/src/duplicate.d.ts +63 -0
  50. package/dist/types/{excalidraw/element → element/src}/elbowArrow.d.ts +1 -1
  51. package/dist/types/{excalidraw/element → element/src}/elementLink.d.ts +1 -1
  52. package/dist/types/element/src/embeddable.d.ts +10 -0
  53. package/dist/types/{excalidraw/element → element/src}/flowchart.d.ts +4 -3
  54. package/dist/types/{excalidraw → element/src}/fractionalIndex.d.ts +5 -2
  55. package/dist/types/{excalidraw → element/src}/frame.d.ts +8 -7
  56. package/dist/types/{excalidraw → element/src}/groups.d.ts +5 -5
  57. package/dist/types/{excalidraw/element → element/src}/heading.d.ts +1 -2
  58. package/dist/types/{excalidraw/element → element/src}/image.d.ts +2 -2
  59. package/dist/types/element/src/index.d.ts +59 -0
  60. package/dist/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +22 -33
  61. package/dist/types/{excalidraw/element → element/src}/mutateElement.d.ts +11 -3
  62. package/dist/types/{excalidraw/element → element/src}/newElement.d.ts +4 -43
  63. package/dist/types/{excalidraw/renderer → element/src}/renderElement.d.ts +3 -3
  64. package/dist/types/{excalidraw/element → element/src}/resizeElements.d.ts +6 -6
  65. package/dist/types/{excalidraw/element → element/src}/resizeTest.d.ts +4 -4
  66. package/dist/types/{excalidraw/scene → element/src}/selection.d.ts +13 -7
  67. package/dist/types/element/src/shapes.d.ts +27 -0
  68. package/dist/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +1 -1
  69. package/dist/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +3 -3
  70. package/dist/types/element/src/store.d.ts +227 -0
  71. package/dist/types/{excalidraw/element → element/src}/textElement.d.ts +8 -7
  72. package/dist/types/{excalidraw/element → element/src}/transformHandles.d.ts +3 -3
  73. package/dist/types/{excalidraw/element → element/src}/typeChecks.d.ts +17 -3
  74. package/dist/types/{excalidraw/element → element/src}/types.d.ts +16 -3
  75. package/dist/types/{excalidraw → element/src}/zindex.d.ts +5 -4
  76. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +91 -94
  77. package/dist/types/excalidraw/actions/actionAlign.d.ts +15 -15
  78. package/dist/types/excalidraw/actions/actionBoundText.d.ts +66 -68
  79. package/dist/types/excalidraw/actions/actionCanvas.d.ts +576 -413
  80. package/dist/types/excalidraw/actions/actionClipboard.d.ts +195 -200
  81. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +32 -33
  82. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +93 -95
  83. package/dist/types/excalidraw/actions/actionDistribute.d.ts +7 -7
  84. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +5 -9
  85. package/dist/types/excalidraw/actions/actionElementLink.d.ts +36 -37
  86. package/dist/types/excalidraw/actions/actionElementLock.d.ts +78 -82
  87. package/dist/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +32 -43
  88. package/dist/types/excalidraw/actions/actionExport.d.ts +295 -304
  89. package/dist/types/excalidraw/actions/actionFinalize.d.ts +95 -57
  90. package/dist/types/excalidraw/actions/actionFlip.d.ts +7 -7
  91. package/dist/types/excalidraw/actions/actionFrame.d.ts +203 -207
  92. package/dist/types/excalidraw/actions/actionGroup.d.ts +65 -67
  93. package/dist/types/excalidraw/actions/actionHistory.d.ts +2 -3
  94. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +526 -34
  95. package/dist/types/excalidraw/actions/actionLink.d.ts +36 -37
  96. package/dist/types/excalidraw/actions/actionMenu.d.ts +95 -98
  97. package/dist/types/excalidraw/actions/actionNavigate.d.ts +61 -63
  98. package/dist/types/excalidraw/actions/actionProperties.d.ts +428 -435
  99. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +33 -34
  100. package/dist/types/excalidraw/actions/actionStyles.d.ts +38 -39
  101. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  102. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +34 -35
  103. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +34 -35
  104. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +34 -207
  105. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +19 -0
  106. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +33 -35
  107. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +34 -36
  108. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +34 -36
  109. package/dist/types/excalidraw/actions/actionZindex.d.ts +16 -16
  110. package/dist/types/excalidraw/actions/index.d.ts +1 -0
  111. package/dist/types/excalidraw/actions/manager.d.ts +2 -2
  112. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  113. package/dist/types/excalidraw/actions/types.d.ts +6 -5
  114. package/dist/types/excalidraw/animated-trail.d.ts +7 -1
  115. package/dist/types/excalidraw/appState.d.ts +33 -23
  116. package/dist/types/excalidraw/charts.d.ts +1 -1
  117. package/dist/types/excalidraw/clipboard.d.ts +7 -7
  118. package/dist/types/excalidraw/components/Actions.d.ts +3 -3
  119. package/dist/types/excalidraw/components/App.d.ts +38 -20
  120. package/dist/types/excalidraw/components/Avatar.d.ts +1 -1
  121. package/dist/types/excalidraw/components/ButtonIcon.d.ts +2 -1
  122. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -1
  123. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -5
  124. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +1 -1
  125. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +1 -2
  126. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +4 -5
  127. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +3 -4
  128. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +3 -3
  129. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +1 -1
  130. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +4 -4
  131. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -2
  132. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -1
  133. package/dist/types/excalidraw/components/ConfirmDialog.d.ts +1 -1
  134. package/dist/types/excalidraw/components/ContextMenu.d.ts +2 -2
  135. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +23 -0
  136. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  137. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +2 -2
  138. package/dist/types/excalidraw/components/DialogActionButton.d.ts +1 -1
  139. package/dist/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +1 -1
  140. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +5 -4
  141. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  142. package/dist/types/excalidraw/components/FixedSideContainer.d.ts +1 -1
  143. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
  144. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +1 -1
  145. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +3 -3
  146. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +1 -1
  147. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +1 -1
  148. package/dist/types/excalidraw/components/HintViewer.d.ts +1 -1
  149. package/dist/types/excalidraw/components/IconPicker.d.ts +1 -1
  150. package/dist/types/excalidraw/components/ImageExportDialog.d.ts +2 -2
  151. package/dist/types/excalidraw/components/InitializeApp.d.ts +1 -1
  152. package/dist/types/excalidraw/components/Island.d.ts +1 -1
  153. package/dist/types/excalidraw/components/JSONExportDialog.d.ts +2 -2
  154. package/dist/types/excalidraw/components/LayerUI.d.ts +3 -3
  155. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -1
  156. package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +1 -1
  157. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +3 -3
  158. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -2
  159. package/dist/types/excalidraw/components/LoadingMessage.d.ts +1 -1
  160. package/dist/types/excalidraw/components/MagicButton.d.ts +1 -1
  161. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -3
  162. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +1 -1
  163. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  164. package/dist/types/excalidraw/components/PublishLibrary.d.ts +1 -1
  165. package/dist/types/excalidraw/components/{ButtonIconSelect.d.ts → RadioSelection.d.ts} +1 -1
  166. package/dist/types/excalidraw/components/Range.d.ts +3 -3
  167. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  168. package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
  169. package/dist/types/excalidraw/components/Sidebar/common.d.ts +1 -1
  170. package/dist/types/excalidraw/components/Stack.d.ts +1 -1
  171. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  172. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +1 -1
  173. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +2 -1
  174. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  175. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +3 -3
  176. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +2 -2
  177. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  178. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +3 -3
  179. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +2 -2
  180. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  181. package/dist/types/excalidraw/components/Stats/Position.d.ts +2 -2
  182. package/dist/types/excalidraw/components/Stats/index.d.ts +2 -2
  183. package/dist/types/excalidraw/components/Stats/utils.d.ts +4 -11
  184. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  185. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +1 -1
  186. package/dist/types/excalidraw/components/TextField.d.ts +1 -1
  187. package/dist/types/excalidraw/components/Toast.d.ts +1 -1
  188. package/dist/types/excalidraw/components/ToolButton.d.ts +2 -2
  189. package/dist/types/excalidraw/components/Tooltip.d.ts +1 -1
  190. package/dist/types/excalidraw/components/UnlockPopup.d.ts +8 -0
  191. package/dist/types/excalidraw/components/UserList.d.ts +1 -1
  192. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -3
  193. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -2
  194. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +3 -3
  195. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +1 -1
  196. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +2 -2
  197. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +1 -1
  198. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +5 -4
  199. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +3 -2
  200. package/dist/types/excalidraw/components/icons.d.ts +5 -1
  201. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
  202. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +4 -1
  203. package/dist/types/excalidraw/components/shapes.d.ts +62 -0
  204. package/dist/types/excalidraw/context/tunnels.d.ts +1 -1
  205. package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +1 -1
  206. package/dist/types/excalidraw/data/blob.d.ts +3 -3
  207. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  208. package/dist/types/excalidraw/data/index.d.ts +2 -2
  209. package/dist/types/excalidraw/data/json.d.ts +1 -1
  210. package/dist/types/excalidraw/data/library.d.ts +3 -3
  211. package/dist/types/excalidraw/data/reconcile.d.ts +2 -2
  212. package/dist/types/excalidraw/data/resave.d.ts +1 -1
  213. package/dist/types/excalidraw/data/restore.d.ts +1 -1
  214. package/dist/types/excalidraw/data/transform.d.ts +4 -4
  215. package/dist/types/excalidraw/data/types.d.ts +3 -3
  216. package/dist/types/excalidraw/editor-jotai.d.ts +6 -6
  217. package/dist/types/excalidraw/eraser/index.d.ts +14 -0
  218. package/dist/types/excalidraw/errors.d.ts +0 -3
  219. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -13
  220. package/dist/types/excalidraw/history.d.ts +15 -23
  221. package/dist/types/excalidraw/hooks/useEmitter.d.ts +1 -1
  222. package/dist/types/excalidraw/i18n.d.ts +1 -1
  223. package/dist/types/excalidraw/index.d.ts +16 -15
  224. package/dist/types/excalidraw/laser-trails.d.ts +1 -1
  225. package/dist/types/excalidraw/lasso/index.d.ts +16 -0
  226. package/dist/types/excalidraw/lasso/utils.d.ts +12 -0
  227. package/dist/types/excalidraw/renderer/helpers.d.ts +8 -3
  228. package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +2 -2
  229. package/dist/types/excalidraw/scene/Renderer.d.ts +3 -3
  230. package/dist/types/excalidraw/scene/export.d.ts +1 -1
  231. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  232. package/dist/types/excalidraw/scene/scroll.d.ts +1 -1
  233. package/dist/types/excalidraw/scene/scrollbars.d.ts +2 -3
  234. package/dist/types/excalidraw/scene/types.d.ts +6 -4
  235. package/dist/types/excalidraw/snapping.d.ts +5 -6
  236. package/dist/types/excalidraw/types.d.ts +39 -18
  237. package/dist/types/excalidraw/visualdebug.d.ts +2 -2
  238. package/dist/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +4 -2
  239. package/dist/types/math/{angle.d.ts → src/angle.d.ts} +2 -0
  240. package/dist/types/math/{curve.d.ts → src/curve.d.ts} +2 -0
  241. package/dist/types/math/{point.d.ts → src/point.d.ts} +3 -3
  242. package/dist/types/math/{polygon.d.ts → src/polygon.d.ts} +1 -0
  243. package/dist/types/math/{segment.d.ts → src/segment.d.ts} +1 -1
  244. package/dist/types/math/{types.d.ts → src/types.d.ts} +1 -0
  245. package/dist/types/math/{vector.d.ts → src/vector.d.ts} +4 -0
  246. package/dist/types/utils/{bbox.d.ts → src/bbox.d.ts} +1 -1
  247. package/dist/types/utils/{collision.d.ts → src/collision.d.ts} +2 -3
  248. package/dist/types/utils/{export.d.ts → src/export.d.ts} +2 -2
  249. package/dist/types/utils/{index.d.ts → src/index.d.ts} +1 -1
  250. package/dist/types/utils/{geometry → src}/shape.d.ts +2 -15
  251. package/dist/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +2 -2
  252. package/history.ts +70 -94
  253. package/package.json +16 -4
  254. package/dist/dev/chunk-3SN6HYVK.js.map +0 -7
  255. package/dist/dev/chunk-53KHN5WM.js +0 -7
  256. package/dist/dev/chunk-53KHN5WM.js.map +0 -7
  257. package/dist/dev/chunk-LMHBUWQS.js.map +0 -7
  258. package/dist/dev/chunk-OKSO7T74.js +0 -4132
  259. package/dist/dev/chunk-OKSO7T74.js.map +0 -7
  260. package/dist/prod/chunk-36CXSE6H.js +0 -34
  261. package/dist/prod/chunk-EIO257PC.js +0 -86
  262. package/dist/prod/chunk-G5N3DNGT.js +0 -7
  263. package/dist/prod/data/image-N4WCURRR.js +0 -1
  264. package/dist/types/excalidraw/align.d.ts +0 -7
  265. package/dist/types/excalidraw/components/ButtonSelect.d.ts +0 -9
  266. package/dist/types/excalidraw/element/index.d.ts +0 -26
  267. package/dist/types/excalidraw/shapes.d.ts +0 -85
  268. package/dist/types/excalidraw/store.d.ts +0 -129
  269. package/dist/dev/data/{image-V26YBSDB.js.map → image-OFYK7EOY.js.map} +0 -0
  270. package/dist/dev/locales/{en-OZCJJ2HN.js.map → en-KIY5SGI3.js.map} +0 -0
  271. package/dist/types/{excalidraw → common/src}/keys.d.ts +0 -0
  272. package/dist/types/{excalidraw → common/src}/queue.d.ts +0 -0
  273. package/dist/types/{excalidraw → common/src}/random.d.ts +0 -0
  274. package/dist/types/{excalidraw/data → common/src}/url.d.ts +0 -0
  275. package/dist/types/{excalidraw/element → element/src}/containerCache.d.ts +0 -0
  276. package/dist/types/{excalidraw/element → element/src}/cropElement.d.ts +0 -0
  277. package/dist/types/{excalidraw/element → element/src}/distance.d.ts +0 -0
  278. package/dist/types/{excalidraw/element → element/src}/sortElements.d.ts +0 -0
  279. package/dist/types/{excalidraw/element → element/src}/textMeasurements.d.ts +0 -0
  280. package/dist/types/{excalidraw/element → element/src}/textWrapping.d.ts +0 -0
  281. package/dist/types/{excalidraw/element → element/src}/utils.d.ts +1 -1
  282. /package/dist/types/math/{ellipse.d.ts → src/ellipse.d.ts} +0 -0
  283. /package/dist/types/math/{index.d.ts → src/index.d.ts} +0 -0
  284. /package/dist/types/math/{line.d.ts → src/line.d.ts} +0 -0
  285. /package/dist/types/math/{range.d.ts → src/range.d.ts} +0 -0
  286. /package/dist/types/math/{rectangle.d.ts → src/rectangle.d.ts} +0 -0
  287. /package/dist/types/math/{triangle.d.ts → src/triangle.d.ts} +0 -0
  288. /package/dist/types/math/{utils.d.ts → src/utils.d.ts} +0 -0
package/history.ts CHANGED
@@ -1,10 +1,17 @@
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
+ type Store,
8
+ } from "@excalidraw/element";
9
+
10
+ import type { SceneElementsMap } from "@excalidraw/element/types";
11
+
5
12
  import type { AppState } from "./types";
6
13
 
7
- type HistoryStack = HistoryEntry[];
14
+ class HistoryEntry extends StoreDelta {}
8
15
 
9
16
  export class HistoryChangedEvent {
10
17
  constructor(
@@ -18,8 +25,8 @@ export class History {
18
25
  [HistoryChangedEvent]
19
26
  >();
20
27
 
21
- private readonly undoStack: HistoryStack = [];
22
- private readonly redoStack: HistoryStack = [];
28
+ public readonly undoStack: HistoryEntry[] = [];
29
+ public readonly redoStack: HistoryEntry[] = [];
23
30
 
24
31
  public get isUndoStackEmpty() {
25
32
  return this.undoStack.length === 0;
@@ -29,60 +36,52 @@ export class History {
29
36
  return this.redoStack.length === 0;
30
37
  }
31
38
 
39
+ constructor(private readonly store: Store) {}
40
+
32
41
  public clear() {
33
42
  this.undoStack.length = 0;
34
43
  this.redoStack.length = 0;
35
44
  }
36
45
 
37
46
  /**
38
- * Record a local change which will go into the history
47
+ * Record a non-empty local durable increment, which will go into the undo stack..
48
+ * Do not re-record history entries, which were already pushed to undo / redo stack, as part of history action.
39
49
  */
40
- public record(
41
- elementsChange: ElementsChange,
42
- appStateChange: AppStateChange,
43
- ) {
44
- const entry = HistoryEntry.create(appStateChange, elementsChange);
50
+ public record(delta: StoreDelta) {
51
+ if (delta.isEmpty() || delta instanceof HistoryEntry) {
52
+ return;
53
+ }
45
54
 
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());
55
+ // construct history entry, so once it's emitted, it's not recorded again
56
+ const entry = HistoryEntry.inverse(delta);
49
57
 
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
- }
58
+ this.undoStack.push(entry);
56
59
 
57
- this.onHistoryChangedEmitter.trigger(
58
- new HistoryChangedEvent(this.isUndoStackEmpty, this.isRedoStackEmpty),
59
- );
60
+ if (!entry.elements.isEmpty()) {
61
+ // don't reset redo stack on local appState changes,
62
+ // as a simple click (unselect) could lead to losing all the redo entries
63
+ // only reset on non empty elements changes!
64
+ this.redoStack.length = 0;
60
65
  }
66
+
67
+ this.onHistoryChangedEmitter.trigger(
68
+ new HistoryChangedEvent(this.isUndoStackEmpty, this.isRedoStackEmpty),
69
+ );
61
70
  }
62
71
 
63
- public undo(
64
- elements: SceneElementsMap,
65
- appState: AppState,
66
- snapshot: Readonly<Snapshot>,
67
- ) {
72
+ public undo(elements: SceneElementsMap, appState: AppState) {
68
73
  return this.perform(
69
74
  elements,
70
75
  appState,
71
- snapshot,
72
76
  () => History.pop(this.undoStack),
73
77
  (entry: HistoryEntry) => History.push(this.redoStack, entry, elements),
74
78
  );
75
79
  }
76
80
 
77
- public redo(
78
- elements: SceneElementsMap,
79
- appState: AppState,
80
- snapshot: Readonly<Snapshot>,
81
- ) {
81
+ public redo(elements: SceneElementsMap, appState: AppState) {
82
82
  return this.perform(
83
83
  elements,
84
84
  appState,
85
- snapshot,
86
85
  () => History.pop(this.redoStack),
87
86
  (entry: HistoryEntry) => History.push(this.undoStack, entry, elements),
88
87
  );
@@ -91,7 +90,6 @@ export class History {
91
90
  private perform(
92
91
  elements: SceneElementsMap,
93
92
  appState: AppState,
94
- snapshot: Readonly<Snapshot>,
95
93
  pop: () => HistoryEntry | null,
96
94
  push: (entry: HistoryEntry) => void,
97
95
  ): [SceneElementsMap, AppState] | void {
@@ -102,6 +100,10 @@ export class History {
102
100
  return;
103
101
  }
104
102
 
103
+ const action = CaptureUpdateAction.IMMEDIATELY;
104
+
105
+ let prevSnapshot = this.store.snapshot;
106
+
105
107
  let nextElements = elements;
106
108
  let nextAppState = appState;
107
109
  let containsVisibleChange = false;
@@ -110,9 +112,29 @@ export class History {
110
112
  while (historyEntry) {
111
113
  try {
112
114
  [nextElements, nextAppState, containsVisibleChange] =
113
- historyEntry.applyTo(nextElements, nextAppState, snapshot);
115
+ StoreDelta.applyTo(
116
+ historyEntry,
117
+ nextElements,
118
+ nextAppState,
119
+ prevSnapshot,
120
+ );
121
+
122
+ const nextSnapshot = prevSnapshot.maybeClone(
123
+ action,
124
+ nextElements,
125
+ nextAppState,
126
+ );
127
+
128
+ // schedule immediate capture, so that it's emitted for the sync purposes
129
+ this.store.scheduleMicroAction({
130
+ action,
131
+ change: StoreChange.create(prevSnapshot, nextSnapshot),
132
+ delta: historyEntry,
133
+ });
134
+
135
+ prevSnapshot = nextSnapshot;
114
136
  } finally {
115
- // make sure to always push / pop, even if the increment is corrupted
137
+ // make sure to always push, even if the delta is corrupted
116
138
  push(historyEntry);
117
139
  }
118
140
 
@@ -133,7 +155,7 @@ export class History {
133
155
  }
134
156
  }
135
157
 
136
- private static pop(stack: HistoryStack): HistoryEntry | null {
158
+ private static pop(stack: HistoryEntry[]): HistoryEntry | null {
137
159
  if (!stack.length) {
138
160
  return null;
139
161
  }
@@ -148,63 +170,17 @@ export class History {
148
170
  }
149
171
 
150
172
  private static push(
151
- stack: HistoryStack,
173
+ stack: HistoryEntry[],
152
174
  entry: HistoryEntry,
153
175
  prevElements: SceneElementsMap,
154
176
  ) {
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
+ const inversedEntry = HistoryEntry.inverse(entry);
178
+ const updatedEntry = HistoryEntry.applyLatestChanges(
179
+ inversedEntry,
180
+ prevElements,
181
+ "inserted",
177
182
  );
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
183
 
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();
184
+ return stack.push(updatedEntry);
209
185
  }
210
186
  }
package/package.json CHANGED
@@ -1,11 +1,23 @@
1
1
  {
2
2
  "name": "@excalidraw/excalidraw",
3
- "version": "0.18.0-817d8c5",
3
+ "version": "0.18.0-864353b",
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
  },
@@ -64,7 +76,7 @@
64
76
  "@excalidraw/mermaid-to-excalidraw": "1.1.2",
65
77
  "@excalidraw/random-username": "1.1.0",
66
78
  "@radix-ui/react-popover": "1.1.6",
67
- "@radix-ui/react-tabs": "1.0.2",
79
+ "@radix-ui/react-tabs": "1.1.3",
68
80
  "browser-fs-access": "0.29.1",
69
81
  "canvas-roundrect-polyfill": "0.0.1",
70
82
  "clsx": "1.1.1",
@@ -117,7 +129,7 @@
117
129
  "bugs": "https://github.com/excalidraw/excalidraw/issues",
118
130
  "homepage": "https://github.com/excalidraw/excalidraw/tree/master/packages/excalidraw",
119
131
  "scripts": {
120
- "gen:types": "rm -rf types && tsc",
121
- "build:esm": "rm -rf dist && node ../../scripts/buildPackage.js && yarn gen:types"
132
+ "gen:types": "rimraf types && tsc",
133
+ "build:esm": "rimraf dist && node ../../scripts/buildPackage.js && yarn gen:types"
122
134
  }
123
135
  }