@zsviczian/excalidraw 0.18.0-4 → 0.18.0-6

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 (388) hide show
  1. package/dist/excalidraw.development.js +2079 -2266
  2. package/dist/excalidraw.production.min.js +1 -1
  3. package/dist/styles.development.css +46 -49
  4. package/dist/styles.production.css +7 -7
  5. package/package.json +14 -2
  6. package/types/{excalidraw/binaryheap.d.ts → common/src/binary-heap.d.ts} +12 -12
  7. package/types/{excalidraw → common/src}/colors.d.ts +62 -61
  8. package/types/{excalidraw → common/src}/constants.d.ts +336 -333
  9. package/types/{excalidraw/fonts/FontMetadata.d.ts → common/src/font-metadata.d.ts} +46 -38
  10. package/types/common/src/index.d.ts +11 -0
  11. package/types/{excalidraw → common/src}/keys.d.ts +189 -189
  12. package/types/{excalidraw → common/src}/points.d.ts +9 -7
  13. package/types/common/src/promise-pool.d.ts +6 -0
  14. package/types/{excalidraw → common/src}/queue.d.ts +9 -9
  15. package/types/{excalidraw → common/src}/random.d.ts +4 -4
  16. package/types/{excalidraw/data → common/src}/url.d.ts +7 -7
  17. package/types/{excalidraw → common/src}/utility-types.d.ts +32 -32
  18. package/types/{excalidraw → common/src}/utils.d.ts +254 -256
  19. package/types/{excalidraw/scene → element/src}/Shape.d.ts +17 -17
  20. package/types/{excalidraw/scene → element/src}/ShapeCache.d.ts +25 -25
  21. package/types/{excalidraw → element/src}/align.d.ts +7 -7
  22. package/types/{excalidraw/element → element/src}/binding.d.ts +101 -100
  23. package/types/{excalidraw/element → element/src}/bounds.d.ts +81 -76
  24. package/types/{excalidraw/element → element/src}/collision.d.ts +26 -26
  25. package/types/{excalidraw/scene → element/src}/comparisons.d.ts +8 -8
  26. package/types/{excalidraw/element → element/src}/containerCache.d.ts +11 -11
  27. package/types/{excalidraw/element → element/src}/cropElement.d.ts +19 -19
  28. package/types/{excalidraw/element → element/src}/distance.d.ts +3 -3
  29. package/types/{excalidraw → element/src}/distribute.d.ts +6 -6
  30. package/types/{excalidraw/element → element/src}/dragElements.d.ts +32 -32
  31. package/types/element/src/duplicate.d.ts +66 -0
  32. package/types/{excalidraw/renderer → element/src}/easingFunctions.d.ts +6 -6
  33. package/types/{excalidraw/element → element/src}/elbowArrow.d.ts +17 -17
  34. package/types/{excalidraw/element → element/src}/elementLink.d.ts +13 -13
  35. package/types/element/src/embeddable.d.ts +10 -0
  36. package/types/{excalidraw/element → element/src}/flowchart.d.ts +25 -25
  37. package/types/{excalidraw → element/src}/fractionalIndex.d.ts +51 -48
  38. package/types/{excalidraw → element/src}/frame.d.ts +69 -69
  39. package/types/{excalidraw → element/src}/groups.d.ts +33 -33
  40. package/types/{excalidraw/element → element/src}/heading.d.ts +15 -16
  41. package/types/{excalidraw/element → element/src}/image.d.ts +32 -32
  42. package/types/{excalidraw/element → element/src}/index.d.ts +16 -26
  43. package/types/{excalidraw/element → element/src}/linearElementEditor.d.ts +129 -129
  44. package/types/{excalidraw/element → element/src}/mutateElement.d.ts +13 -13
  45. package/types/{excalidraw/element → element/src}/newElement.d.ts +62 -102
  46. package/types/{excalidraw/renderer → element/src}/renderElement.d.ts +28 -28
  47. package/types/{excalidraw/element → element/src}/resizeElements.d.ts +38 -38
  48. package/types/{excalidraw/element → element/src}/resizeTest.d.ts +15 -15
  49. package/types/{excalidraw/scene → element/src}/selection.d.ts +32 -32
  50. package/types/element/src/shapes.d.ts +23 -0
  51. package/types/{excalidraw/element → element/src}/showSelectedShapeActions.d.ts +3 -3
  52. package/types/{excalidraw/element → element/src}/sizeHelpers.d.ts +35 -35
  53. package/types/{excalidraw/element → element/src}/sortElements.d.ts +2 -2
  54. package/types/{excalidraw/element → element/src}/textElement.d.ts +39 -39
  55. package/types/{excalidraw/element → element/src}/textMeasurements.d.ts +41 -41
  56. package/types/{excalidraw/element → element/src}/textWrapping.d.ts +13 -13
  57. package/types/{excalidraw/element → element/src}/transformHandles.d.ts +55 -55
  58. package/types/{excalidraw/element → element/src}/typeChecks.d.ts +39 -39
  59. package/types/{excalidraw/element → element/src}/types.d.ts +285 -285
  60. package/types/{excalidraw/element → element/src}/utils.d.ts +21 -21
  61. package/types/{excalidraw → element/src}/zindex.d.ts +7 -6
  62. package/types/excalidraw/actions/actionAddToLibrary.d.ts +632 -629
  63. package/types/excalidraw/actions/actionAlign.d.ts +109 -109
  64. package/types/excalidraw/actions/actionBoundText.d.ts +458 -456
  65. package/types/excalidraw/actions/actionCanvas.d.ts +3293 -3070
  66. package/types/excalidraw/actions/actionClipboard.d.ts +1380 -1374
  67. package/types/excalidraw/actions/actionCropEditor.d.ts +223 -222
  68. package/types/excalidraw/actions/actionDeleteSelected.d.ts +671 -668
  69. package/types/excalidraw/actions/actionDistribute.d.ts +34 -34
  70. package/types/excalidraw/actions/actionDuplicateSelection.d.ts +17 -21
  71. package/types/excalidraw/actions/actionElementLink.d.ts +245 -244
  72. package/types/excalidraw/actions/actionElementLock.d.ts +445 -444
  73. package/types/excalidraw/{element/embeddable.d.ts → actions/actionEmbeddable.d.ts} +220 -229
  74. package/types/excalidraw/actions/actionExport.d.ts +1962 -1953
  75. package/types/excalidraw/actions/actionFinalize.d.ts +427 -425
  76. package/types/excalidraw/actions/actionFlip.d.ts +34 -34
  77. package/types/excalidraw/actions/actionFrame.d.ts +1388 -1384
  78. package/types/excalidraw/actions/actionGroup.d.ts +456 -454
  79. package/types/excalidraw/actions/actionHistory.d.ts +7 -7
  80. package/types/excalidraw/actions/actionLinearEditor.d.ts +224 -223
  81. package/types/excalidraw/actions/actionLink.d.ts +224 -223
  82. package/types/excalidraw/actions/actionMenu.d.ts +652 -649
  83. package/types/excalidraw/actions/actionNavigate.d.ts +432 -430
  84. package/types/excalidraw/actions/actionProperties.d.ts +3291 -3276
  85. package/types/excalidraw/actions/actionSelectAll.d.ts +223 -222
  86. package/types/excalidraw/actions/actionStyles.d.ts +237 -236
  87. package/types/excalidraw/actions/actionTextAutoResize.d.ts +17 -17
  88. package/types/excalidraw/actions/actionToggleGridMode.d.ts +226 -225
  89. package/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +224 -223
  90. package/types/excalidraw/actions/actionToggleSearchMenu.d.ts +422 -420
  91. package/types/excalidraw/actions/actionToggleStats.d.ts +223 -223
  92. package/types/excalidraw/actions/actionToggleViewMode.d.ts +224 -224
  93. package/types/excalidraw/actions/actionToggleZenMode.d.ts +224 -224
  94. package/types/excalidraw/actions/actionZindex.d.ts +74 -74
  95. package/types/excalidraw/actions/index.d.ts +28 -27
  96. package/types/excalidraw/actions/manager.d.ts +21 -21
  97. package/types/excalidraw/actions/register.d.ts +5 -5
  98. package/types/excalidraw/actions/shortcuts.d.ts +4 -4
  99. package/types/excalidraw/actions/types.d.ts +46 -46
  100. package/types/excalidraw/analytics.d.ts +1 -1
  101. package/types/excalidraw/animated-trail.d.ts +39 -33
  102. package/types/excalidraw/animation-frame-handler.d.ts +16 -16
  103. package/types/excalidraw/appState.d.ts +90 -89
  104. package/types/excalidraw/change.d.ts +191 -191
  105. package/types/excalidraw/charts.d.ts +27 -27
  106. package/types/excalidraw/clients.d.ts +14 -14
  107. package/types/excalidraw/clipboard.d.ts +66 -66
  108. package/types/excalidraw/components/Actions.d.ts +35 -35
  109. package/types/excalidraw/components/ActiveConfirmDialog.d.ts +4 -4
  110. package/types/excalidraw/components/App.d.ts +559 -561
  111. package/types/excalidraw/components/Avatar.d.ts +11 -11
  112. package/types/excalidraw/components/BraveMeasureTextError.d.ts +2 -2
  113. package/types/excalidraw/components/Button.d.ts +17 -17
  114. package/types/excalidraw/components/ButtonIcon.d.ts +15 -15
  115. package/types/excalidraw/components/ButtonIconCycle.d.ts +11 -11
  116. package/types/excalidraw/components/ButtonIconSelect.d.ts +20 -20
  117. package/types/excalidraw/components/ButtonSelect.d.ts +9 -9
  118. package/types/excalidraw/components/ButtonSeparator.d.ts +1 -1
  119. package/types/excalidraw/components/Card.d.ts +6 -6
  120. package/types/excalidraw/components/CheckboxItem.d.ts +8 -8
  121. package/types/excalidraw/components/ColorPicker/ColorInput.d.ts +9 -9
  122. package/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +19 -19
  123. package/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +8 -8
  124. package/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +7 -8
  125. package/types/excalidraw/components/ColorPicker/Picker.d.ts +18 -18
  126. package/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +10 -10
  127. package/types/excalidraw/components/ColorPicker/PickerHeading.d.ts +5 -5
  128. package/types/excalidraw/components/ColorPicker/ShadeList.d.ts +8 -8
  129. package/types/excalidraw/components/ColorPicker/TopPicks.d.ts +9 -9
  130. package/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +21 -21
  131. package/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +20 -20
  132. package/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +18 -18
  133. package/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +2 -2
  134. package/types/excalidraw/components/CommandPalette/types.d.ts +25 -25
  135. package/types/excalidraw/components/ConfirmDialog.d.ts +10 -10
  136. package/types/excalidraw/components/ContextMenu.d.ts +16 -16
  137. package/types/excalidraw/components/DarkModeToggle.d.ts +7 -7
  138. package/types/excalidraw/components/DefaultSidebar.d.ts +30 -30
  139. package/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +4 -4
  140. package/types/excalidraw/components/Dialog.d.ts +13 -13
  141. package/types/excalidraw/components/DialogActionButton.d.ts +10 -10
  142. package/types/excalidraw/{element → components}/ElementCanvasButtons.d.ts +7 -7
  143. package/types/excalidraw/components/ElementLinkDialog.d.ts +11 -11
  144. package/types/excalidraw/components/ErrorDialog.d.ts +5 -5
  145. package/types/excalidraw/components/ExcalidrawLogo.d.ts +15 -15
  146. package/types/excalidraw/components/EyeDropper.d.ts +27 -27
  147. package/types/excalidraw/components/FilledButton.d.ts +18 -18
  148. package/types/excalidraw/components/FixedSideContainer.d.ts +9 -9
  149. package/types/excalidraw/components/FollowMode/FollowMode.d.ts +10 -10
  150. package/types/excalidraw/components/FontPicker/FontPicker.d.ts +21 -21
  151. package/types/excalidraw/components/FontPicker/FontPickerList.d.ts +26 -26
  152. package/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +6 -6
  153. package/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +13 -13
  154. package/types/excalidraw/components/HandButton.d.ts +10 -10
  155. package/types/excalidraw/components/HelpButton.d.ts +7 -7
  156. package/types/excalidraw/components/HelpDialog.d.ts +4 -4
  157. package/types/excalidraw/components/HintViewer.d.ts +10 -10
  158. package/types/excalidraw/components/IconPicker.d.ts +15 -15
  159. package/types/excalidraw/components/ImageExportDialog.d.ts +14 -14
  160. package/types/excalidraw/components/InitializeApp.d.ts +10 -10
  161. package/types/excalidraw/components/InlineIcon.d.ts +3 -3
  162. package/types/excalidraw/components/Island.d.ts +10 -10
  163. package/types/excalidraw/components/JSONExportDialog.d.ts +15 -15
  164. package/types/excalidraw/components/LaserPointerButton.d.ts +10 -10
  165. package/types/excalidraw/components/LayerUI.d.ts +31 -31
  166. package/types/excalidraw/components/LibraryMenu.d.ts +10 -10
  167. package/types/excalidraw/components/LibraryMenuBrowseButton.d.ts +7 -7
  168. package/types/excalidraw/components/LibraryMenuControlButtons.d.ts +9 -9
  169. package/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +17 -17
  170. package/types/excalidraw/components/LibraryMenuItems.d.ts +14 -14
  171. package/types/excalidraw/components/LibraryMenuSection.d.ts +23 -23
  172. package/types/excalidraw/components/LibraryUnit.d.ts +14 -14
  173. package/types/excalidraw/components/LoadingMessage.d.ts +5 -5
  174. package/types/excalidraw/components/LockButton.d.ts +10 -10
  175. package/types/excalidraw/components/MagicButton.d.ts +10 -10
  176. package/types/excalidraw/components/MobileMenu.d.ts +25 -25
  177. package/types/excalidraw/components/Modal.d.ts +14 -14
  178. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -17
  179. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -17
  180. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -22
  181. package/types/excalidraw/components/Paragraph.d.ts +4 -4
  182. package/types/excalidraw/components/PasteChartDialog.d.ts +8 -8
  183. package/types/excalidraw/components/PenModeButton.d.ts +12 -12
  184. package/types/excalidraw/components/Popover.d.ts +15 -15
  185. package/types/excalidraw/components/ProjectName.d.ts +10 -10
  186. package/types/excalidraw/components/PropertiesPopover.d.ts +15 -15
  187. package/types/excalidraw/components/PublishLibrary.d.ts +16 -16
  188. package/types/excalidraw/components/QuickSearch.d.ts +9 -9
  189. package/types/excalidraw/components/RadioGroup.d.ts +13 -13
  190. package/types/excalidraw/components/Range.d.ts +8 -8
  191. package/types/excalidraw/components/SVGLayer.d.ts +7 -7
  192. package/types/excalidraw/components/ScrollableList.d.ts +8 -8
  193. package/types/excalidraw/components/SearchMenu.d.ts +5 -5
  194. package/types/excalidraw/components/Section.d.ts +6 -6
  195. package/types/excalidraw/components/ShareableLinkDialog.d.ts +7 -7
  196. package/types/excalidraw/components/Sidebar/Sidebar.d.ts +76 -76
  197. package/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +7 -7
  198. package/types/excalidraw/components/Sidebar/SidebarTab.d.ts +8 -8
  199. package/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +9 -9
  200. package/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +6 -6
  201. package/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +6 -6
  202. package/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +6 -6
  203. package/types/excalidraw/components/Sidebar/common.d.ts +34 -34
  204. package/types/excalidraw/components/Spinner.d.ts +8 -8
  205. package/types/excalidraw/components/Stack.d.ts +15 -15
  206. package/types/excalidraw/components/Stats/Angle.d.ts +11 -11
  207. package/types/excalidraw/components/Stats/CanvasGrid.d.ts +10 -10
  208. package/types/excalidraw/components/Stats/CanvasGridSize.d.ts +10 -10
  209. package/types/excalidraw/components/Stats/Collapsible.d.ts +9 -9
  210. package/types/excalidraw/components/Stats/Dimension.d.ts +11 -11
  211. package/types/excalidraw/components/Stats/DragInput.d.ts +34 -34
  212. package/types/excalidraw/components/Stats/FontSize.d.ts +11 -11
  213. package/types/excalidraw/components/Stats/MultiAngle.d.ts +11 -11
  214. package/types/excalidraw/components/Stats/MultiDimension.d.ts +14 -14
  215. package/types/excalidraw/components/Stats/MultiFontSize.d.ts +12 -12
  216. package/types/excalidraw/components/Stats/MultiPosition.d.ts +14 -14
  217. package/types/excalidraw/components/Stats/Position.d.ts +12 -12
  218. package/types/excalidraw/components/Stats/index.d.ts +35 -35
  219. package/types/excalidraw/components/Stats/utils.d.ts +26 -26
  220. package/types/excalidraw/components/Switch.d.ts +9 -9
  221. package/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +8 -8
  222. package/types/excalidraw/components/TTDDialog/MermaidToExcalidrawLib.d.ts +10 -10
  223. package/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +29 -29
  224. package/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +9 -9
  225. package/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +7 -7
  226. package/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +17 -17
  227. package/types/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +4 -4
  228. package/types/excalidraw/components/TTDDialog/TTDDialogSubmitShortcut.d.ts +1 -1
  229. package/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +7 -7
  230. package/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +8 -8
  231. package/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +6 -6
  232. package/types/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +11 -11
  233. package/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +9 -9
  234. package/types/excalidraw/components/TTDDialog/common.d.ts +32 -32
  235. package/types/excalidraw/components/TextField.d.ts +21 -21
  236. package/types/excalidraw/components/Toast.d.ts +9 -9
  237. package/types/excalidraw/components/ToolButton.d.ts +49 -49
  238. package/types/excalidraw/components/Tooltip.d.ts +18 -18
  239. package/types/excalidraw/components/Trans.d.ts +9 -9
  240. package/types/excalidraw/components/UserList.d.ts +18 -18
  241. package/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +29 -29
  242. package/types/excalidraw/components/canvases/NewElementCanvas.d.ts +14 -14
  243. package/types/excalidraw/components/canvases/StaticCanvas.d.ts +19 -19
  244. package/types/excalidraw/components/canvases/index.d.ts +3 -3
  245. package/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +86 -86
  246. package/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +15 -15
  247. package/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -11
  248. package/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +46 -46
  249. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +8 -8
  250. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +17 -17
  251. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -7
  252. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +16 -16
  253. package/types/excalidraw/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -5
  254. package/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -10
  255. package/types/excalidraw/components/dropdownMenu/common.d.ts +6 -6
  256. package/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -3
  257. package/types/excalidraw/components/footer/Footer.d.ts +12 -12
  258. package/types/excalidraw/components/footer/FooterCenter.d.ts +8 -8
  259. package/types/excalidraw/components/hoc/withInternalFallback.d.ts +4 -4
  260. package/types/excalidraw/components/hyperlink/Hyperlink.d.ts +18 -18
  261. package/types/excalidraw/components/hyperlink/helpers.d.ts +9 -9
  262. package/types/excalidraw/components/icons.d.ts +224 -223
  263. package/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -9
  264. package/types/excalidraw/components/main-menu/DefaultItems.d.ts +64 -64
  265. package/types/excalidraw/components/main-menu/MainMenu.d.ts +83 -80
  266. package/types/excalidraw/components/shapes.d.ts +62 -0
  267. package/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +60 -60
  268. package/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -19
  269. package/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +86 -86
  270. package/types/excalidraw/context/tunnels.d.ts +21 -21
  271. package/types/excalidraw/context/ui-appState.d.ts +4 -4
  272. package/types/excalidraw/cursor.d.ts +6 -6
  273. package/types/excalidraw/data/EditorLocalStorage.d.ts +8 -8
  274. package/types/excalidraw/data/ai/types.d.ts +242 -242
  275. package/types/excalidraw/data/blob.d.ts +53 -53
  276. package/types/excalidraw/data/encode.d.ts +55 -55
  277. package/types/excalidraw/data/encryption.d.ts +9 -9
  278. package/types/excalidraw/data/filesystem.d.ts +21 -21
  279. package/types/excalidraw/data/image.d.ts +9 -9
  280. package/types/excalidraw/data/index.d.ts +22 -22
  281. package/types/excalidraw/data/json.d.ts +16 -16
  282. package/types/excalidraw/data/library.d.ts +112 -112
  283. package/types/excalidraw/data/reconcile.d.ts +6 -6
  284. package/types/excalidraw/data/resave.d.ts +5 -5
  285. package/types/excalidraw/data/restore.d.ts +21 -21
  286. package/types/excalidraw/data/transform.d.ts +81 -81
  287. package/types/excalidraw/data/types.d.ts +45 -45
  288. package/types/excalidraw/deburr.d.ts +1 -1
  289. package/types/excalidraw/dist/excalidraw.development.d.ts +2 -2
  290. package/types/excalidraw/dist/excalidraw.production.min.d.ts +3 -3
  291. package/types/excalidraw/editor-jotai.d.ts +56 -56
  292. package/types/excalidraw/emitter.d.ts +16 -16
  293. package/types/excalidraw/entry.d.ts +1 -1
  294. package/types/excalidraw/env.d.cts +1 -1
  295. package/types/excalidraw/env.d.ts +1 -1
  296. package/types/excalidraw/eraser/index.d.ts +14 -0
  297. package/types/excalidraw/errors.d.ts +29 -32
  298. package/types/excalidraw/fonts/Cascadia/index.d.ts +2 -2
  299. package/types/excalidraw/fonts/ComicShanns/index.d.ts +2 -2
  300. package/types/excalidraw/fonts/Emoji/index.d.ts +2 -2
  301. package/types/excalidraw/fonts/ExcalidrawFontFace.d.ts +29 -29
  302. package/types/excalidraw/fonts/Excalifont/index.d.ts +2 -2
  303. package/types/excalidraw/fonts/Fonts.d.ts +90 -100
  304. package/types/excalidraw/fonts/Helvetica/index.d.ts +2 -2
  305. package/types/excalidraw/fonts/Liberation/index.d.ts +2 -2
  306. package/types/excalidraw/fonts/Lilita/index.d.ts +2 -2
  307. package/types/excalidraw/fonts/Nunito/index.d.ts +2 -2
  308. package/types/excalidraw/fonts/Virgil/index.d.ts +2 -2
  309. package/types/excalidraw/fonts/Xiaolai/index.d.ts +8 -8
  310. package/types/excalidraw/fonts/index.d.ts +1 -1
  311. package/types/excalidraw/gesture.d.ts +6 -6
  312. package/types/excalidraw/history.d.ts +40 -40
  313. package/types/excalidraw/hooks/useCallbackRefState.d.ts +1 -1
  314. package/types/excalidraw/hooks/useCopiedIndicator.d.ts +5 -5
  315. package/types/excalidraw/hooks/useCreatePortalContainer.d.ts +7 -7
  316. package/types/excalidraw/hooks/useEmitter.d.ts +2 -2
  317. package/types/excalidraw/hooks/useLibraryItemSvg.d.ts +11 -11
  318. package/types/excalidraw/hooks/useOutsideClick.d.ts +19 -19
  319. package/types/excalidraw/hooks/useScrollPosition.d.ts +1 -1
  320. package/types/excalidraw/hooks/useStable.d.ts +1 -1
  321. package/types/excalidraw/hooks/useStableCallback.d.ts +4 -4
  322. package/types/excalidraw/hooks/useTransition.d.ts +2 -2
  323. package/types/excalidraw/i18n.d.ts +24 -24
  324. package/types/excalidraw/index-node.d.ts +1 -1
  325. package/types/excalidraw/index.d.ts +59 -65
  326. package/types/excalidraw/laser-trails.d.ts +20 -20
  327. package/types/excalidraw/lasso/index.d.ts +15 -0
  328. package/types/excalidraw/lasso/utils.d.ts +12 -0
  329. package/types/excalidraw/main.d.ts +2 -2
  330. package/types/excalidraw/mermaid.d.ts +2 -2
  331. package/types/excalidraw/obsidianUtils.d.ts +28 -28
  332. package/types/excalidraw/polyfill.d.ts +2 -2
  333. package/types/excalidraw/publicPath.d.ts +1 -1
  334. package/types/excalidraw/reactUtils.d.ts +14 -14
  335. package/types/excalidraw/renderer/helpers.d.ts +13 -13
  336. package/types/excalidraw/renderer/interactiveScene.d.ts +20 -20
  337. package/types/excalidraw/renderer/renderNewElementScene.d.ts +7 -7
  338. package/types/excalidraw/renderer/renderSnaps.d.ts +2 -2
  339. package/types/excalidraw/renderer/roundRect.d.ts +11 -11
  340. package/types/excalidraw/renderer/staticScene.d.ts +11 -11
  341. package/types/excalidraw/renderer/staticSvgScene.d.ts +5 -5
  342. package/types/excalidraw/scene/Renderer.d.ts +28 -28
  343. package/types/excalidraw/scene/Scene.d.ts +79 -79
  344. package/types/excalidraw/scene/export.d.ts +37 -37
  345. package/types/excalidraw/scene/index.d.ts +4 -4
  346. package/types/excalidraw/scene/normalize.d.ts +4 -4
  347. package/types/excalidraw/scene/scroll.d.ts +23 -23
  348. package/types/excalidraw/scene/scrollbars.d.ts +12 -12
  349. package/types/excalidraw/scene/types.d.ts +120 -120
  350. package/types/excalidraw/scene/zoom.d.ts +12 -12
  351. package/types/excalidraw/snapping.d.ts +111 -112
  352. package/types/excalidraw/store.d.ts +129 -129
  353. package/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +45 -45
  354. package/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +13 -13
  355. package/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +2 -2
  356. package/types/excalidraw/subset/subset-main.d.ts +12 -12
  357. package/types/excalidraw/subset/subset-shared.chunk.d.ts +32 -32
  358. package/types/excalidraw/subset/subset-worker.chunk.d.ts +15 -15
  359. package/types/excalidraw/subset/woff2/woff2-bindings.d.ts +31 -31
  360. package/types/excalidraw/subset/woff2/woff2-loader.d.ts +14 -14
  361. package/types/excalidraw/subset/woff2/woff2-wasm.d.ts +2 -2
  362. package/types/excalidraw/types.d.ts +751 -753
  363. package/types/excalidraw/visualdebug.d.ts +41 -41
  364. package/types/excalidraw/webpack.dev.config.d.ts +114 -112
  365. package/types/excalidraw/webpack.prod.config.d.ts +128 -126
  366. package/types/excalidraw/workers.d.ts +36 -36
  367. package/types/excalidraw/{element → wysiwyg}/textWysiwyg.d.ts +22 -22
  368. package/types/math/{angle.d.ts → src/angle.d.ts} +17 -17
  369. package/types/math/{curve.d.ts → src/curve.d.ts} +40 -40
  370. package/types/math/{ellipse.d.ts → src/ellipse.d.ts} +44 -44
  371. package/types/math/{index.d.ts → src/index.d.ts} +12 -12
  372. package/types/math/{line.d.ts → src/line.d.ts} +17 -17
  373. package/types/math/{point.d.ts → src/point.d.ts} +122 -122
  374. package/types/math/{polygon.d.ts → src/polygon.d.ts} +6 -5
  375. package/types/math/{range.d.ts → src/range.d.ts} +44 -44
  376. package/types/math/{rectangle.d.ts → src/rectangle.d.ts} +3 -3
  377. package/types/math/{segment.d.ts → src/segment.d.ts} +39 -39
  378. package/types/math/{triangle.d.ts → src/triangle.d.ts} +11 -11
  379. package/types/math/{types.d.ts → src/types.d.ts} +106 -105
  380. package/types/math/{utils.d.ts → src/utils.d.ts} +7 -7
  381. package/types/math/{vector.d.ts → src/vector.d.ts} +88 -88
  382. package/types/utils/{bbox.d.ts → src/bbox.d.ts} +9 -9
  383. package/types/utils/{collision.d.ts → src/collision.d.ts} +8 -9
  384. package/types/utils/{export.d.ts → src/export.d.ts} +35 -45
  385. package/types/utils/{index.d.ts → src/index.d.ts} +4 -4
  386. package/types/utils/{geometry → src}/shape.d.ts +58 -71
  387. package/types/utils/{withinBounds.d.ts → src/withinBounds.d.ts} +19 -19
  388. package/types/excalidraw/shapes.d.ts +0 -85
@@ -1,112 +1,111 @@
1
- import { type GlobalPoint } from "@excalidraw/math";
2
- import type { InclusiveRange } from "@excalidraw/math";
3
- import type { Bounds } from "./element/bounds";
4
- import type { MaybeTransformHandleType } from "./element/transformHandles";
5
- import type { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement } from "./element/types";
6
- import type { AppClassProperties, AppState, KeyboardModifiersObject, NullableGridSize } from "./types";
7
- export declare const getSnapDistance: (zoomValue: number) => number;
8
- type Vector2D = {
9
- x: number;
10
- y: number;
11
- };
12
- type PointPair = [GlobalPoint, GlobalPoint];
13
- export type PointSnap = {
14
- type: "point";
15
- points: PointPair;
16
- offset: number;
17
- };
18
- export type Gap = {
19
- startBounds: Bounds;
20
- endBounds: Bounds;
21
- startSide: [GlobalPoint, GlobalPoint];
22
- endSide: [GlobalPoint, GlobalPoint];
23
- overlap: InclusiveRange;
24
- length: number;
25
- };
26
- export type GapSnap = {
27
- type: "gap";
28
- direction: "center_horizontal" | "center_vertical" | "side_left" | "side_right" | "side_top" | "side_bottom";
29
- gap: Gap;
30
- offset: number;
31
- };
32
- export type GapSnaps = GapSnap[];
33
- export type Snap = GapSnap | PointSnap;
34
- export type Snaps = Snap[];
35
- export type PointSnapLine = {
36
- type: "points";
37
- points: GlobalPoint[];
38
- };
39
- export type PointerSnapLine = {
40
- type: "pointer";
41
- points: PointPair;
42
- direction: "horizontal" | "vertical";
43
- };
44
- export type GapSnapLine = {
45
- type: "gap";
46
- direction: "horizontal" | "vertical";
47
- points: PointPair;
48
- };
49
- export type SnapLine = PointSnapLine | GapSnapLine | PointerSnapLine;
50
- export declare class SnapCache {
51
- private static referenceSnapPoints;
52
- private static visibleGaps;
53
- static setReferenceSnapPoints: (snapPoints: GlobalPoint[] | null) => void;
54
- static getReferenceSnapPoints: () => GlobalPoint[] | null;
55
- static setVisibleGaps: (gaps: {
56
- verticalGaps: Gap[];
57
- horizontalGaps: Gap[];
58
- } | null) => void;
59
- static getVisibleGaps: () => {
60
- verticalGaps: Gap[];
61
- horizontalGaps: Gap[];
62
- } | null;
63
- static destroy: () => void;
64
- }
65
- export declare const isGridModeEnabled: (app: AppClassProperties) => boolean;
66
- export declare const isSnappingEnabled: ({ event, app, selectedElements, }: {
67
- app: AppClassProperties;
68
- event: KeyboardModifiersObject;
69
- selectedElements: NonDeletedExcalidrawElement[];
70
- }) => boolean;
71
- export declare const areRoughlyEqual: (a: number, b: number, precision?: number) => boolean;
72
- export declare const getElementsCorners: (elements: ExcalidrawElement[], elementsMap: ElementsMap, { omitCenter, boundingBoxCorners, dragOffset, }?: {
73
- omitCenter?: boolean | undefined;
74
- boundingBoxCorners?: boolean | undefined;
75
- dragOffset?: Vector2D | undefined;
76
- }) => GlobalPoint[];
77
- export declare const getVisibleGaps: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => {
78
- horizontalGaps: Gap[];
79
- verticalGaps: Gap[];
80
- };
81
- export declare const getReferenceSnapPoints: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => GlobalPoint[];
82
- export declare const snapDraggedElements: (elements: ExcalidrawElement[], dragOffset: Vector2D, app: AppClassProperties, event: KeyboardModifiersObject, elementsMap: ElementsMap) => {
83
- snapOffset: {
84
- x: number;
85
- y: number;
86
- };
87
- snapLines: (PointSnapLine | GapSnapLine)[];
88
- };
89
- export declare const snapResizingElements: (selectedElements: ExcalidrawElement[], selectedOriginalElements: ExcalidrawElement[], app: AppClassProperties, event: KeyboardModifiersObject, dragOffset: Vector2D, transformHandle: MaybeTransformHandleType) => {
90
- snapOffset: {
91
- x: number;
92
- y: number;
93
- };
94
- snapLines: PointSnapLine[];
95
- };
96
- export declare const snapNewElement: (newElement: ExcalidrawElement, app: AppClassProperties, event: KeyboardModifiersObject, origin: Vector2D, dragOffset: Vector2D, elementsMap: ElementsMap) => {
97
- snapOffset: {
98
- x: number;
99
- y: number;
100
- };
101
- snapLines: PointSnapLine[];
102
- };
103
- export declare const getSnapLinesAtPointer: (elements: readonly ExcalidrawElement[], app: AppClassProperties, pointer: Vector2D, event: KeyboardModifiersObject, elementsMap: ElementsMap) => {
104
- originOffset: {
105
- x: number;
106
- y: number;
107
- };
108
- snapLines: PointerSnapLine[];
109
- };
110
- export declare const isActiveToolNonLinearSnappable: (activeToolType: AppState["activeTool"]["type"]) => boolean;
111
- export declare const getGridPoint: (x: number, y: number, gridSize: NullableGridSize) => [number, number];
112
- export {};
1
+ import { type GlobalPoint } from "@excalidraw/math";
2
+ import type { InclusiveRange } from "@excalidraw/math";
3
+ import type { Bounds } from "@excalidraw/element/bounds";
4
+ import type { MaybeTransformHandleType } from "@excalidraw/element/transformHandles";
5
+ import type { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
6
+ import type { AppClassProperties, AppState, KeyboardModifiersObject } from "./types";
7
+ export declare const getSnapDistance: (zoomValue: number) => number;
8
+ type Vector2D = {
9
+ x: number;
10
+ y: number;
11
+ };
12
+ type PointPair = [GlobalPoint, GlobalPoint];
13
+ export type PointSnap = {
14
+ type: "point";
15
+ points: PointPair;
16
+ offset: number;
17
+ };
18
+ export type Gap = {
19
+ startBounds: Bounds;
20
+ endBounds: Bounds;
21
+ startSide: [GlobalPoint, GlobalPoint];
22
+ endSide: [GlobalPoint, GlobalPoint];
23
+ overlap: InclusiveRange;
24
+ length: number;
25
+ };
26
+ export type GapSnap = {
27
+ type: "gap";
28
+ direction: "center_horizontal" | "center_vertical" | "side_left" | "side_right" | "side_top" | "side_bottom";
29
+ gap: Gap;
30
+ offset: number;
31
+ };
32
+ export type GapSnaps = GapSnap[];
33
+ export type Snap = GapSnap | PointSnap;
34
+ export type Snaps = Snap[];
35
+ export type PointSnapLine = {
36
+ type: "points";
37
+ points: GlobalPoint[];
38
+ };
39
+ export type PointerSnapLine = {
40
+ type: "pointer";
41
+ points: PointPair;
42
+ direction: "horizontal" | "vertical";
43
+ };
44
+ export type GapSnapLine = {
45
+ type: "gap";
46
+ direction: "horizontal" | "vertical";
47
+ points: PointPair;
48
+ };
49
+ export type SnapLine = PointSnapLine | GapSnapLine | PointerSnapLine;
50
+ export declare class SnapCache {
51
+ private static referenceSnapPoints;
52
+ private static visibleGaps;
53
+ static setReferenceSnapPoints: (snapPoints: GlobalPoint[] | null) => void;
54
+ static getReferenceSnapPoints: () => GlobalPoint[] | null;
55
+ static setVisibleGaps: (gaps: {
56
+ verticalGaps: Gap[];
57
+ horizontalGaps: Gap[];
58
+ } | null) => void;
59
+ static getVisibleGaps: () => {
60
+ verticalGaps: Gap[];
61
+ horizontalGaps: Gap[];
62
+ } | null;
63
+ static destroy: () => void;
64
+ }
65
+ export declare const isGridModeEnabled: (app: AppClassProperties) => boolean;
66
+ export declare const isSnappingEnabled: ({ event, app, selectedElements, }: {
67
+ app: AppClassProperties;
68
+ event: KeyboardModifiersObject;
69
+ selectedElements: NonDeletedExcalidrawElement[];
70
+ }) => boolean;
71
+ export declare const areRoughlyEqual: (a: number, b: number, precision?: number) => boolean;
72
+ export declare const getElementsCorners: (elements: ExcalidrawElement[], elementsMap: ElementsMap, { omitCenter, boundingBoxCorners, dragOffset, }?: {
73
+ omitCenter?: boolean | undefined;
74
+ boundingBoxCorners?: boolean | undefined;
75
+ dragOffset?: Vector2D | undefined;
76
+ }) => GlobalPoint[];
77
+ export declare const getVisibleGaps: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => {
78
+ horizontalGaps: Gap[];
79
+ verticalGaps: Gap[];
80
+ };
81
+ export declare const getReferenceSnapPoints: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => GlobalPoint[];
82
+ export declare const snapDraggedElements: (elements: ExcalidrawElement[], dragOffset: Vector2D, app: AppClassProperties, event: KeyboardModifiersObject, elementsMap: ElementsMap) => {
83
+ snapOffset: {
84
+ x: number;
85
+ y: number;
86
+ };
87
+ snapLines: (PointSnapLine | GapSnapLine)[];
88
+ };
89
+ export declare const snapResizingElements: (selectedElements: ExcalidrawElement[], selectedOriginalElements: ExcalidrawElement[], app: AppClassProperties, event: KeyboardModifiersObject, dragOffset: Vector2D, transformHandle: MaybeTransformHandleType) => {
90
+ snapOffset: {
91
+ x: number;
92
+ y: number;
93
+ };
94
+ snapLines: PointSnapLine[];
95
+ };
96
+ export declare const snapNewElement: (newElement: ExcalidrawElement, app: AppClassProperties, event: KeyboardModifiersObject, origin: Vector2D, dragOffset: Vector2D, elementsMap: ElementsMap) => {
97
+ snapOffset: {
98
+ x: number;
99
+ y: number;
100
+ };
101
+ snapLines: PointSnapLine[];
102
+ };
103
+ export declare const getSnapLinesAtPointer: (elements: readonly ExcalidrawElement[], app: AppClassProperties, pointer: Vector2D, event: KeyboardModifiersObject, elementsMap: ElementsMap) => {
104
+ originOffset: {
105
+ x: number;
106
+ y: number;
107
+ };
108
+ snapLines: PointerSnapLine[];
109
+ };
110
+ export declare const isActiveToolNonLinearSnappable: (activeToolType: AppState["activeTool"]["type"]) => boolean;
111
+ export {};
@@ -1,129 +1,129 @@
1
- import { AppStateChange, ElementsChange } from "./change";
2
- import { Emitter } from "./emitter";
3
- import type { OrderedExcalidrawElement } from "./element/types";
4
- import type { AppState, ObservedAppState } from "./types";
5
- import type { ValueOf } from "./utility-types";
6
- export declare const getObservedAppState: (appState: AppState) => ObservedAppState;
7
- export declare const CaptureUpdateAction: {
8
- /**
9
- * Immediately undoable.
10
- *
11
- * Use for updates which should be captured.
12
- * Should be used for most of the local updates.
13
- *
14
- * These updates will _immediately_ make it to the local undo / redo stacks.
15
- */
16
- readonly IMMEDIATELY: "IMMEDIATELY";
17
- /**
18
- * Never undoable.
19
- *
20
- * Use for updates which should never be recorded, such as remote updates
21
- * or scene initialization.
22
- *
23
- * These updates will _never_ make it to the local undo / redo stacks.
24
- */
25
- readonly NEVER: "NEVER";
26
- /**
27
- * Eventually undoable.
28
- *
29
- * Use for updates which should not be captured immediately - likely
30
- * exceptions which are part of some async multi-step process. Otherwise, all
31
- * such updates would end up being captured with the next
32
- * `CaptureUpdateAction.IMMEDIATELY` - triggered either by the next `updateScene`
33
- * or internally by the editor.
34
- *
35
- * These updates will _eventually_ make it to the local undo / redo stacks.
36
- */
37
- readonly EVENTUALLY: "EVENTUALLY";
38
- };
39
- export type CaptureUpdateActionType = ValueOf<typeof CaptureUpdateAction>;
40
- /**
41
- * Represent an increment to the Store.
42
- */
43
- declare class StoreIncrementEvent {
44
- readonly elementsChange: ElementsChange;
45
- readonly appStateChange: AppStateChange;
46
- constructor(elementsChange: ElementsChange, appStateChange: AppStateChange);
47
- }
48
- /**
49
- * Store which captures the observed changes and emits them as `StoreIncrementEvent` events.
50
- *
51
- * @experimental this interface is experimental and subject to change.
52
- */
53
- export interface IStore {
54
- onStoreIncrementEmitter: Emitter<[StoreIncrementEvent]>;
55
- get snapshot(): Snapshot;
56
- set snapshot(snapshot: Snapshot);
57
- /**
58
- * Use to schedule update of the snapshot, useful on updates for which we don't need to calculate increments (i.e. remote updates).
59
- */
60
- shouldUpdateSnapshot(): void;
61
- /**
62
- * Use to schedule calculation of a store increment.
63
- */
64
- shouldCaptureIncrement(): void;
65
- /**
66
- * Based on the scheduled operation, either only updates store snapshot or also calculates increment and emits the result as a `StoreIncrementEvent`.
67
- *
68
- * @emits StoreIncrementEvent when increment is calculated.
69
- */
70
- commit(elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined): void;
71
- /**
72
- * Clears the store instance.
73
- */
74
- clear(): void;
75
- /**
76
- * Filters out yet uncomitted elements from `nextElements`, which are part of in-progress local async actions (ephemerals) and thus were not yet commited to the snapshot.
77
- *
78
- * This is necessary in updates in which we receive reconciled elements, already containing elements which were not yet captured by the local store (i.e. collab).
79
- */
80
- filterUncomittedElements(prevElements: Map<string, OrderedExcalidrawElement>, nextElements: Map<string, OrderedExcalidrawElement>): Map<string, OrderedExcalidrawElement>;
81
- }
82
- export declare class Store implements IStore {
83
- readonly onStoreIncrementEmitter: Emitter<[StoreIncrementEvent]>;
84
- private scheduledActions;
85
- private _snapshot;
86
- get snapshot(): Snapshot;
87
- set snapshot(snapshot: Snapshot);
88
- shouldCaptureIncrement: () => void;
89
- shouldUpdateSnapshot: () => void;
90
- private scheduleAction;
91
- commit: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
92
- captureIncrement: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
93
- updateSnapshot: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
94
- filterUncomittedElements: (prevElements: Map<string, OrderedExcalidrawElement>, nextElements: Map<string, OrderedExcalidrawElement>) => Map<string, OrderedExcalidrawElement>;
95
- clear: () => void;
96
- private satisfiesScheduledActionsInvariant;
97
- }
98
- export declare class Snapshot {
99
- readonly elements: Map<string, OrderedExcalidrawElement>;
100
- readonly appState: ObservedAppState;
101
- readonly meta: {
102
- didElementsChange: boolean;
103
- didAppStateChange: boolean;
104
- isEmpty?: boolean;
105
- };
106
- private constructor();
107
- static empty(): Snapshot;
108
- isEmpty(): boolean | undefined;
109
- /**
110
- * Efficiently clone the existing snapshot, only if we detected changes.
111
- *
112
- * @returns same instance if there are no changes detected, new instance otherwise.
113
- */
114
- maybeClone(elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined): Snapshot;
115
- private maybeCreateAppStateSnapshot;
116
- private detectChangedAppState;
117
- private maybeCreateElementsSnapshot;
118
- /**
119
- * Detect if there any changed elements.
120
- *
121
- * NOTE: we shouldn't just use `sceneVersionNonce` instead, as we need to call this before the scene updates.
122
- */
123
- private detectChangedElements;
124
- /**
125
- * Perform structural clone, cloning only elements that changed.
126
- */
127
- private createElementsSnapshot;
128
- }
129
- export {};
1
+ import type { OrderedExcalidrawElement } from "@excalidraw/element/types";
2
+ import type { ValueOf } from "@excalidraw/common/utility-types";
3
+ import { AppStateChange, ElementsChange } from "./change";
4
+ import { Emitter } from "./emitter";
5
+ import type { AppState, ObservedAppState } from "./types";
6
+ export declare const getObservedAppState: (appState: AppState) => ObservedAppState;
7
+ export declare const CaptureUpdateAction: {
8
+ /**
9
+ * Immediately undoable.
10
+ *
11
+ * Use for updates which should be captured.
12
+ * Should be used for most of the local updates.
13
+ *
14
+ * These updates will _immediately_ make it to the local undo / redo stacks.
15
+ */
16
+ readonly IMMEDIATELY: "IMMEDIATELY";
17
+ /**
18
+ * Never undoable.
19
+ *
20
+ * Use for updates which should never be recorded, such as remote updates
21
+ * or scene initialization.
22
+ *
23
+ * These updates will _never_ make it to the local undo / redo stacks.
24
+ */
25
+ readonly NEVER: "NEVER";
26
+ /**
27
+ * Eventually undoable.
28
+ *
29
+ * Use for updates which should not be captured immediately - likely
30
+ * exceptions which are part of some async multi-step process. Otherwise, all
31
+ * such updates would end up being captured with the next
32
+ * `CaptureUpdateAction.IMMEDIATELY` - triggered either by the next `updateScene`
33
+ * or internally by the editor.
34
+ *
35
+ * These updates will _eventually_ make it to the local undo / redo stacks.
36
+ */
37
+ readonly EVENTUALLY: "EVENTUALLY";
38
+ };
39
+ export type CaptureUpdateActionType = ValueOf<typeof CaptureUpdateAction>;
40
+ /**
41
+ * Represent an increment to the Store.
42
+ */
43
+ declare class StoreIncrementEvent {
44
+ readonly elementsChange: ElementsChange;
45
+ readonly appStateChange: AppStateChange;
46
+ constructor(elementsChange: ElementsChange, appStateChange: AppStateChange);
47
+ }
48
+ /**
49
+ * Store which captures the observed changes and emits them as `StoreIncrementEvent` events.
50
+ *
51
+ * @experimental this interface is experimental and subject to change.
52
+ */
53
+ export interface IStore {
54
+ onStoreIncrementEmitter: Emitter<[StoreIncrementEvent]>;
55
+ get snapshot(): Snapshot;
56
+ set snapshot(snapshot: Snapshot);
57
+ /**
58
+ * Use to schedule update of the snapshot, useful on updates for which we don't need to calculate increments (i.e. remote updates).
59
+ */
60
+ shouldUpdateSnapshot(): void;
61
+ /**
62
+ * Use to schedule calculation of a store increment.
63
+ */
64
+ shouldCaptureIncrement(): void;
65
+ /**
66
+ * Based on the scheduled operation, either only updates store snapshot or also calculates increment and emits the result as a `StoreIncrementEvent`.
67
+ *
68
+ * @emits StoreIncrementEvent when increment is calculated.
69
+ */
70
+ commit(elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined): void;
71
+ /**
72
+ * Clears the store instance.
73
+ */
74
+ clear(): void;
75
+ /**
76
+ * Filters out yet uncomitted elements from `nextElements`, which are part of in-progress local async actions (ephemerals) and thus were not yet commited to the snapshot.
77
+ *
78
+ * This is necessary in updates in which we receive reconciled elements, already containing elements which were not yet captured by the local store (i.e. collab).
79
+ */
80
+ filterUncomittedElements(prevElements: Map<string, OrderedExcalidrawElement>, nextElements: Map<string, OrderedExcalidrawElement>): Map<string, OrderedExcalidrawElement>;
81
+ }
82
+ export declare class Store implements IStore {
83
+ readonly onStoreIncrementEmitter: Emitter<[StoreIncrementEvent]>;
84
+ private scheduledActions;
85
+ private _snapshot;
86
+ get snapshot(): Snapshot;
87
+ set snapshot(snapshot: Snapshot);
88
+ shouldCaptureIncrement: () => void;
89
+ shouldUpdateSnapshot: () => void;
90
+ private scheduleAction;
91
+ commit: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
92
+ captureIncrement: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
93
+ updateSnapshot: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
94
+ filterUncomittedElements: (prevElements: Map<string, OrderedExcalidrawElement>, nextElements: Map<string, OrderedExcalidrawElement>) => Map<string, OrderedExcalidrawElement>;
95
+ clear: () => void;
96
+ private satisfiesScheduledActionsInvariant;
97
+ }
98
+ export declare class Snapshot {
99
+ readonly elements: Map<string, OrderedExcalidrawElement>;
100
+ readonly appState: ObservedAppState;
101
+ readonly meta: {
102
+ didElementsChange: boolean;
103
+ didAppStateChange: boolean;
104
+ isEmpty?: boolean;
105
+ };
106
+ private constructor();
107
+ static empty(): Snapshot;
108
+ isEmpty(): boolean | undefined;
109
+ /**
110
+ * Efficiently clone the existing snapshot, only if we detected changes.
111
+ *
112
+ * @returns same instance if there are no changes detected, new instance otherwise.
113
+ */
114
+ maybeClone(elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined): Snapshot;
115
+ private maybeCreateAppStateSnapshot;
116
+ private detectChangedAppState;
117
+ private maybeCreateElementsSnapshot;
118
+ /**
119
+ * Detect if there any changed elements.
120
+ *
121
+ * NOTE: we shouldn't just use `sceneVersionNonce` instead, as we need to call this before the scene updates.
122
+ */
123
+ private detectChangedElements;
124
+ /**
125
+ * Perform structural clone, cloning only elements that changed.
126
+ */
127
+ private createElementsSnapshot;
128
+ }
129
+ export {};
@@ -1,45 +1,45 @@
1
- /**
2
- * Modified version of hb-subset bindings from "subset-font" package https://github.com/papandreou/subset-font/blob/3f711c8aa29a426c7f22655861abfb976950f527/index.js
3
- *
4
- * CHANGELOG:
5
- * - removed dependency on node APIs to work inside the browser
6
- * - removed dependency on font fontverter for brotli compression
7
- * - removed dependencies on lodash and p-limit
8
- * - removed options for preserveNameIds, variationAxes, noLayoutClosure (not needed for now)
9
- * - replaced text input with codepoints
10
- * - rewritten in typescript and with esm modules
11
-
12
- Copyright (c) 2012, Andreas Lind Petersen
13
- All rights reserved.
14
-
15
- Redistribution and use in source and binary forms, with or without
16
- modification, are permitted provided that the following conditions are
17
- met:
18
-
19
- * Redistributions of source code must retain the above copyright
20
- notice, this list of conditions and the following disclaimer.
21
- * Redistributions in binary form must reproduce the above copyright
22
- notice, this list of conditions and the following disclaimer in
23
- the documentation and/or other materials provided with the
24
- distribution.
25
- * Neither the name of the author nor the names of contributors may
26
- be used to endorse or promote products derived from this
27
- software without specific prior written permission.
28
-
29
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
30
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
31
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
32
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
33
- HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
34
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
35
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
36
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40
- */
41
- declare function subset(hbSubsetWasm: any, heapu8: Uint8Array, font: ArrayBuffer, codePoints: ReadonlySet<number>): Uint8Array;
42
- declare const _default: {
43
- subset: typeof subset;
44
- };
45
- export default _default;
1
+ /**
2
+ * Modified version of hb-subset bindings from "subset-font" package https://github.com/papandreou/subset-font/blob/3f711c8aa29a426c7f22655861abfb976950f527/index.js
3
+ *
4
+ * CHANGELOG:
5
+ * - removed dependency on node APIs to work inside the browser
6
+ * - removed dependency on font fontverter for brotli compression
7
+ * - removed dependencies on lodash and p-limit
8
+ * - removed options for preserveNameIds, variationAxes, noLayoutClosure (not needed for now)
9
+ * - replaced text input with codepoints
10
+ * - rewritten in typescript and with esm modules
11
+
12
+ Copyright (c) 2012, Andreas Lind Petersen
13
+ All rights reserved.
14
+
15
+ Redistribution and use in source and binary forms, with or without
16
+ modification, are permitted provided that the following conditions are
17
+ met:
18
+
19
+ * Redistributions of source code must retain the above copyright
20
+ notice, this list of conditions and the following disclaimer.
21
+ * Redistributions in binary form must reproduce the above copyright
22
+ notice, this list of conditions and the following disclaimer in
23
+ the documentation and/or other materials provided with the
24
+ distribution.
25
+ * Neither the name of the author nor the names of contributors may
26
+ be used to endorse or promote products derived from this
27
+ software without specific prior written permission.
28
+
29
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
30
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
31
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
32
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
33
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
34
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
35
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
36
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40
+ */
41
+ declare function subset(hbSubsetWasm: any, heapu8: Uint8Array, font: ArrayBuffer, codePoints: ReadonlySet<number>): Uint8Array;
42
+ declare const _default: {
43
+ subset: typeof subset;
44
+ };
45
+ export default _default;
@@ -1,13 +1,13 @@
1
- /**
2
- * DON'T depend on anything from the outside like `promiseTry`, as this module is part of a separate lazy-loaded chunk.
3
- *
4
- * Including anything from the main chunk would include the whole chunk by default.
5
- * Even it it would be tree-shaken during build, it won't be tree-shaken in dev.
6
- *
7
- * In the future consider separating common utils into a separate shared chunk.
8
- */
9
- declare const load: () => Promise<{
10
- subset: (fontBuffer: ArrayBuffer, codePoints: ReadonlySet<number>) => Uint8Array;
11
- }>;
12
- declare const _default: () => ReturnType<typeof load>;
13
- export default _default;
1
+ /**
2
+ * DON'T depend on anything from the outside like `promiseTry`, as this module is part of a separate lazy-loaded chunk.
3
+ *
4
+ * Including anything from the main chunk would include the whole chunk by default.
5
+ * Even it it would be tree-shaken during build, it won't be tree-shaken in dev.
6
+ *
7
+ * In the future consider separating common utils into a separate shared chunk.
8
+ */
9
+ declare const load: () => Promise<{
10
+ subset: (fontBuffer: ArrayBuffer, codePoints: ReadonlySet<number>) => Uint8Array;
11
+ }>;
12
+ declare const _default: () => ReturnType<typeof load>;
13
+ export default _default;
@@ -1,2 +1,2 @@
1
- declare const _default: Uint8Array;
2
- export default _default;
1
+ declare const _default: Uint8Array;
2
+ export default _default;
@@ -1,12 +1,12 @@
1
- /**
2
- * Tries to subset glyphs in a font based on the used codepoints, returning the font as dataurl.
3
- * Under the hood utilizes worker threads (Web Workers, if available), otherwise fallbacks to the main thread.
4
- *
5
- * Check the following diagram for details: link.excalidraw.com/readonly/MbbnWPSWXgadXdtmzgeO
6
- *
7
- * @param arrayBuffer font data buffer in the woff2 format
8
- * @param codePoints codepoints used to subset the glyphs
9
- *
10
- * @returns font with subsetted glyphs (all glyphs in case of errors) converted into a dataurl
11
- */
12
- export declare const subsetWoff2GlyphsByCodepoints: (arrayBuffer: ArrayBuffer, codePoints: Array<number>) => Promise<string>;
1
+ /**
2
+ * Tries to subset glyphs in a font based on the used codepoints, returning the font as dataurl.
3
+ * Under the hood utilizes worker threads (Web Workers, if available), otherwise fallbacks to the main thread.
4
+ *
5
+ * Check the following diagram for details: link.excalidraw.com/readonly/MbbnWPSWXgadXdtmzgeO
6
+ *
7
+ * @param arrayBuffer font data buffer in the woff2 format
8
+ * @param codePoints codepoints used to subset the glyphs
9
+ *
10
+ * @returns font with subsetted glyphs (all glyphs in case of errors) converted into a dataurl
11
+ */
12
+ export declare const subsetWoff2GlyphsByCodepoints: (arrayBuffer: ArrayBuffer, codePoints: Array<number>) => Promise<string>;