@zsviczian/excalidraw 0.17.6-18 → 0.17.6-19

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 (393) hide show
  1. package/dist/excalidraw.development.js +11493 -186
  2. package/dist/excalidraw.production.min.js +1 -1
  3. package/dist/excalidraw.production.min.js.LICENSE.txt +20 -0
  4. package/package.json +2 -2
  5. package/types/excalidraw/actions/actionAddToLibrary.d.ts +629 -629
  6. package/types/excalidraw/actions/actionAlign.d.ts +108 -108
  7. package/types/excalidraw/actions/actionBoundText.d.ts +456 -456
  8. package/types/excalidraw/actions/actionCanvas.d.ts +3070 -3070
  9. package/types/excalidraw/actions/actionClipboard.d.ts +1370 -1370
  10. package/types/excalidraw/actions/actionCropEditor.d.ts +222 -222
  11. package/types/excalidraw/actions/actionDeleteSelected.d.ts +664 -664
  12. package/types/excalidraw/actions/actionDistribute.d.ts +34 -34
  13. package/types/excalidraw/actions/actionDuplicateSelection.d.ts +21 -21
  14. package/types/excalidraw/actions/actionElementLink.d.ts +244 -244
  15. package/types/excalidraw/actions/actionElementLock.d.ts +444 -444
  16. package/types/excalidraw/actions/actionExport.d.ts +1953 -1953
  17. package/types/excalidraw/actions/actionFinalize.d.ts +425 -425
  18. package/types/excalidraw/actions/actionFlip.d.ts +34 -34
  19. package/types/excalidraw/actions/actionFrame.d.ts +887 -887
  20. package/types/excalidraw/actions/actionGroup.d.ts +454 -454
  21. package/types/excalidraw/actions/actionHistory.d.ts +7 -7
  22. package/types/excalidraw/actions/actionLinearEditor.d.ts +223 -223
  23. package/types/excalidraw/actions/actionLink.d.ts +223 -223
  24. package/types/excalidraw/actions/actionMenu.d.ts +649 -649
  25. package/types/excalidraw/actions/actionNavigate.d.ts +430 -430
  26. package/types/excalidraw/actions/actionProperties.d.ts +3276 -3276
  27. package/types/excalidraw/actions/actionSelectAll.d.ts +222 -222
  28. package/types/excalidraw/actions/actionStyles.d.ts +236 -236
  29. package/types/excalidraw/actions/actionTextAutoResize.d.ts +17 -17
  30. package/types/excalidraw/actions/actionToggleGridMode.d.ts +225 -225
  31. package/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +223 -223
  32. package/types/excalidraw/actions/actionToggleSearchMenu.d.ts +420 -420
  33. package/types/excalidraw/actions/actionToggleStats.d.ts +223 -223
  34. package/types/excalidraw/actions/actionToggleViewMode.d.ts +224 -224
  35. package/types/excalidraw/actions/actionToggleZenMode.d.ts +224 -224
  36. package/types/excalidraw/actions/actionZindex.d.ts +74 -74
  37. package/types/excalidraw/actions/index.d.ts +27 -27
  38. package/types/excalidraw/actions/manager.d.ts +21 -21
  39. package/types/excalidraw/actions/register.d.ts +5 -5
  40. package/types/excalidraw/actions/shortcuts.d.ts +4 -4
  41. package/types/excalidraw/actions/types.d.ts +46 -46
  42. package/types/excalidraw/align.d.ts +6 -6
  43. package/types/excalidraw/analytics.d.ts +1 -1
  44. package/types/excalidraw/animated-trail.d.ts +33 -33
  45. package/types/excalidraw/animation-frame-handler.d.ts +16 -16
  46. package/types/excalidraw/appState.d.ts +89 -89
  47. package/types/excalidraw/binaryheap.d.ts +12 -12
  48. package/types/excalidraw/change.d.ts +191 -191
  49. package/types/excalidraw/charts.d.ts +27 -27
  50. package/types/excalidraw/clients.d.ts +14 -14
  51. package/types/excalidraw/clipboard.d.ts +44 -44
  52. package/types/excalidraw/colors.d.ts +61 -61
  53. package/types/excalidraw/components/Actions.d.ts +34 -34
  54. package/types/excalidraw/components/ActiveConfirmDialog.d.ts +4 -4
  55. package/types/excalidraw/components/App.d.ts +550 -550
  56. package/types/excalidraw/components/Avatar.d.ts +11 -11
  57. package/types/excalidraw/components/BraveMeasureTextError.d.ts +2 -2
  58. package/types/excalidraw/components/Button.d.ts +17 -17
  59. package/types/excalidraw/components/ButtonIcon.d.ts +14 -14
  60. package/types/excalidraw/components/ButtonIconCycle.d.ts +10 -10
  61. package/types/excalidraw/components/ButtonIconSelect.d.ts +19 -19
  62. package/types/excalidraw/components/ButtonSelect.d.ts +9 -9
  63. package/types/excalidraw/components/ButtonSeparator.d.ts +1 -1
  64. package/types/excalidraw/components/Card.d.ts +6 -6
  65. package/types/excalidraw/components/CheckboxItem.d.ts +8 -8
  66. package/types/excalidraw/components/ColorPicker/ColorInput.d.ts +9 -9
  67. package/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +19 -19
  68. package/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +8 -8
  69. package/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +8 -8
  70. package/types/excalidraw/components/ColorPicker/Picker.d.ts +18 -18
  71. package/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +10 -10
  72. package/types/excalidraw/components/ColorPicker/PickerHeading.d.ts +5 -5
  73. package/types/excalidraw/components/ColorPicker/ShadeList.d.ts +8 -8
  74. package/types/excalidraw/components/ColorPicker/TopPicks.d.ts +9 -9
  75. package/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +21 -21
  76. package/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +20 -20
  77. package/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +18 -18
  78. package/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +2 -2
  79. package/types/excalidraw/components/CommandPalette/types.d.ts +25 -25
  80. package/types/excalidraw/components/ConfirmDialog.d.ts +10 -10
  81. package/types/excalidraw/components/ContextMenu.d.ts +16 -16
  82. package/types/excalidraw/components/DarkModeToggle.d.ts +7 -7
  83. package/types/excalidraw/components/DefaultSidebar.d.ts +30 -30
  84. package/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +4 -4
  85. package/types/excalidraw/components/Dialog.d.ts +13 -13
  86. package/types/excalidraw/components/DialogActionButton.d.ts +10 -10
  87. package/types/excalidraw/components/ElementLinkDialog.d.ts +11 -11
  88. package/types/excalidraw/components/ErrorDialog.d.ts +5 -5
  89. package/types/excalidraw/components/ExcalidrawLogo.d.ts +15 -15
  90. package/types/excalidraw/components/EyeDropper.d.ts +27 -27
  91. package/types/excalidraw/components/FilledButton.d.ts +18 -18
  92. package/types/excalidraw/components/FixedSideContainer.d.ts +9 -9
  93. package/types/excalidraw/components/FollowMode/FollowMode.d.ts +10 -10
  94. package/types/excalidraw/components/FontPicker/FontPicker.d.ts +21 -21
  95. package/types/excalidraw/components/FontPicker/FontPickerList.d.ts +25 -25
  96. package/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +6 -6
  97. package/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +13 -13
  98. package/types/excalidraw/components/HandButton.d.ts +10 -10
  99. package/types/excalidraw/components/HelpButton.d.ts +7 -7
  100. package/types/excalidraw/components/HelpDialog.d.ts +4 -4
  101. package/types/excalidraw/components/HintViewer.d.ts +10 -10
  102. package/types/excalidraw/components/IconPicker.d.ts +14 -14
  103. package/types/excalidraw/components/ImageExportDialog.d.ts +14 -14
  104. package/types/excalidraw/components/InitializeApp.d.ts +10 -10
  105. package/types/excalidraw/components/InlineIcon.d.ts +3 -3
  106. package/types/excalidraw/components/Island.d.ts +10 -10
  107. package/types/excalidraw/components/JSONExportDialog.d.ts +15 -15
  108. package/types/excalidraw/components/LaserPointerButton.d.ts +10 -10
  109. package/types/excalidraw/components/LayerUI.d.ts +31 -31
  110. package/types/excalidraw/components/LibraryMenu.d.ts +24 -24
  111. package/types/excalidraw/components/LibraryMenuBrowseButton.d.ts +7 -7
  112. package/types/excalidraw/components/LibraryMenuControlButtons.d.ts +9 -9
  113. package/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +17 -17
  114. package/types/excalidraw/components/LibraryMenuItems.d.ts +14 -14
  115. package/types/excalidraw/components/LibraryMenuSection.d.ts +23 -23
  116. package/types/excalidraw/components/LibraryUnit.d.ts +14 -14
  117. package/types/excalidraw/components/LoadingMessage.d.ts +5 -5
  118. package/types/excalidraw/components/LockButton.d.ts +10 -10
  119. package/types/excalidraw/components/MagicButton.d.ts +9 -9
  120. package/types/excalidraw/components/MobileMenu.d.ts +24 -24
  121. package/types/excalidraw/components/Modal.d.ts +14 -14
  122. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -17
  123. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -17
  124. package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -22
  125. package/types/excalidraw/components/Paragraph.d.ts +4 -4
  126. package/types/excalidraw/components/PasteChartDialog.d.ts +8 -8
  127. package/types/excalidraw/components/PenModeButton.d.ts +12 -12
  128. package/types/excalidraw/components/Popover.d.ts +15 -15
  129. package/types/excalidraw/components/ProjectName.d.ts +10 -10
  130. package/types/excalidraw/components/PropertiesPopover.d.ts +15 -15
  131. package/types/excalidraw/components/PublishLibrary.d.ts +16 -16
  132. package/types/excalidraw/components/QuickSearch.d.ts +9 -9
  133. package/types/excalidraw/components/RadioGroup.d.ts +13 -13
  134. package/types/excalidraw/components/SVGLayer.d.ts +7 -7
  135. package/types/excalidraw/components/ScrollableList.d.ts +8 -8
  136. package/types/excalidraw/components/SearchMenu.d.ts +5 -5
  137. package/types/excalidraw/components/SearchSidebar.d.ts +1 -0
  138. package/types/excalidraw/components/Section.d.ts +6 -6
  139. package/types/excalidraw/components/ShareableLinkDialog.d.ts +7 -7
  140. package/types/excalidraw/components/Sidebar/Sidebar.d.ts +76 -76
  141. package/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +7 -7
  142. package/types/excalidraw/components/Sidebar/SidebarTab.d.ts +8 -8
  143. package/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +9 -9
  144. package/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +6 -6
  145. package/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +6 -6
  146. package/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +6 -6
  147. package/types/excalidraw/components/Sidebar/common.d.ts +33 -33
  148. package/types/excalidraw/components/Spinner.d.ts +8 -8
  149. package/types/excalidraw/components/Stack.d.ts +16 -16
  150. package/types/excalidraw/components/Stats/Angle.d.ts +11 -11
  151. package/types/excalidraw/components/Stats/CanvasGrid.d.ts +10 -10
  152. package/types/excalidraw/components/Stats/CanvasGridSize.d.ts +10 -10
  153. package/types/excalidraw/components/Stats/Collapsible.d.ts +8 -8
  154. package/types/excalidraw/components/Stats/Dimension.d.ts +11 -11
  155. package/types/excalidraw/components/Stats/DragInput.d.ts +34 -34
  156. package/types/excalidraw/components/Stats/FontSize.d.ts +11 -11
  157. package/types/excalidraw/components/Stats/MultiAngle.d.ts +11 -11
  158. package/types/excalidraw/components/Stats/MultiDimension.d.ts +14 -14
  159. package/types/excalidraw/components/Stats/MultiFontSize.d.ts +12 -12
  160. package/types/excalidraw/components/Stats/MultiPosition.d.ts +14 -14
  161. package/types/excalidraw/components/Stats/Position.d.ts +12 -12
  162. package/types/excalidraw/components/Stats/index.d.ts +35 -35
  163. package/types/excalidraw/components/Stats/utils.d.ts +26 -26
  164. package/types/excalidraw/components/Switch.d.ts +9 -9
  165. package/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +14 -14
  166. package/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +29 -29
  167. package/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +9 -9
  168. package/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +7 -7
  169. package/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +17 -17
  170. package/types/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +4 -4
  171. package/types/excalidraw/components/TTDDialog/TTDDialogSubmitShortcut.d.ts +1 -1
  172. package/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +7 -7
  173. package/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +8 -8
  174. package/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +6 -6
  175. package/types/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +11 -11
  176. package/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +8 -8
  177. package/types/excalidraw/components/TTDDialog/common.d.ts +32 -32
  178. package/types/excalidraw/components/TextField.d.ts +21 -21
  179. package/types/excalidraw/components/Toast.d.ts +9 -9
  180. package/types/excalidraw/components/ToolButton.d.ts +49 -49
  181. package/types/excalidraw/components/Tooltip.d.ts +18 -18
  182. package/types/excalidraw/components/Trans.d.ts +9 -9
  183. package/types/excalidraw/components/UserList.d.ts +18 -18
  184. package/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +29 -29
  185. package/types/excalidraw/components/canvases/NewElementCanvas.d.ts +14 -14
  186. package/types/excalidraw/components/canvases/StaticCanvas.d.ts +19 -19
  187. package/types/excalidraw/components/canvases/index.d.ts +3 -3
  188. package/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +86 -86
  189. package/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +15 -15
  190. package/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -11
  191. package/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +45 -45
  192. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +7 -7
  193. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +17 -17
  194. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -7
  195. package/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +15 -15
  196. package/types/excalidraw/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -5
  197. package/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -10
  198. package/types/excalidraw/components/dropdownMenu/common.d.ts +6 -6
  199. package/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -3
  200. package/types/excalidraw/components/footer/Footer.d.ts +12 -12
  201. package/types/excalidraw/components/footer/FooterCenter.d.ts +8 -8
  202. package/types/excalidraw/components/hoc/withInternalFallback.d.ts +4 -4
  203. package/types/excalidraw/components/hyperlink/Hyperlink.d.ts +18 -18
  204. package/types/excalidraw/components/hyperlink/helpers.d.ts +9 -9
  205. package/types/excalidraw/components/icons.d.ts +214 -214
  206. package/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -9
  207. package/types/excalidraw/components/main-menu/DefaultItems.d.ts +64 -64
  208. package/types/excalidraw/components/main-menu/MainMenu.d.ts +80 -80
  209. package/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +59 -59
  210. package/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -19
  211. package/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +86 -86
  212. package/types/excalidraw/constants.d.ts +324 -324
  213. package/types/excalidraw/context/tunnels.d.ts +20 -20
  214. package/types/excalidraw/context/ui-appState.d.ts +4 -4
  215. package/types/excalidraw/cursor.d.ts +6 -6
  216. package/types/excalidraw/data/EditorLocalStorage.d.ts +8 -8
  217. package/types/excalidraw/data/ai/types.d.ts +242 -242
  218. package/types/excalidraw/data/blob.d.ts +52 -52
  219. package/types/excalidraw/data/encode.d.ts +55 -55
  220. package/types/excalidraw/data/encryption.d.ts +9 -9
  221. package/types/excalidraw/data/filesystem.d.ts +20 -20
  222. package/types/excalidraw/data/image.d.ts +15 -15
  223. package/types/excalidraw/data/index.d.ts +22 -22
  224. package/types/excalidraw/data/json.d.ts +16 -16
  225. package/types/excalidraw/data/library.d.ts +106 -106
  226. package/types/excalidraw/data/reconcile.d.ts +6 -6
  227. package/types/excalidraw/data/resave.d.ts +5 -5
  228. package/types/excalidraw/data/restore.d.ts +21 -21
  229. package/types/excalidraw/data/transform.d.ts +81 -81
  230. package/types/excalidraw/data/types.d.ts +45 -45
  231. package/types/excalidraw/data/url.d.ts +8 -8
  232. package/types/excalidraw/deburr.d.ts +1 -1
  233. package/types/excalidraw/dist/excalidraw.development.d.ts +2 -2
  234. package/types/excalidraw/dist/excalidraw.production.min.d.ts +1 -1
  235. package/types/excalidraw/distribute.d.ts +6 -6
  236. package/types/excalidraw/element/ElementCanvasButtons.d.ts +7 -7
  237. package/types/excalidraw/element/binding.d.ts +99 -99
  238. package/types/excalidraw/element/bounds.d.ts +76 -76
  239. package/types/excalidraw/element/collision.d.ts +17 -17
  240. package/types/excalidraw/element/containerCache.d.ts +11 -11
  241. package/types/excalidraw/element/cropElement.d.ts +14 -14
  242. package/types/excalidraw/element/dragElements.d.ts +32 -32
  243. package/types/excalidraw/element/elementLink.d.ts +13 -13
  244. package/types/excalidraw/element/embeddable.d.ts +229 -229
  245. package/types/excalidraw/element/flowchart.d.ts +25 -25
  246. package/types/excalidraw/element/heading.d.ts +12 -12
  247. package/types/excalidraw/element/image.d.ts +32 -32
  248. package/types/excalidraw/element/index.d.ts +26 -26
  249. package/types/excalidraw/element/linearElementEditor.d.ts +128 -128
  250. package/types/excalidraw/element/mutateElement.d.ts +11 -11
  251. package/types/excalidraw/element/newElement.d.ts +106 -106
  252. package/types/excalidraw/element/resizeElements.d.ts +16 -16
  253. package/types/excalidraw/element/resizeTest.d.ts +15 -15
  254. package/types/excalidraw/element/routing.d.ts +12 -12
  255. package/types/excalidraw/element/showSelectedShapeActions.d.ts +3 -3
  256. package/types/excalidraw/element/sizeHelpers.d.ts +35 -35
  257. package/types/excalidraw/element/sortElements.d.ts +2 -2
  258. package/types/excalidraw/element/textElement.d.ts +83 -83
  259. package/types/excalidraw/element/textWrapping.d.ts +13 -13
  260. package/types/excalidraw/element/textWysiwyg.d.ts +22 -22
  261. package/types/excalidraw/element/transformHandles.d.ts +55 -55
  262. package/types/excalidraw/element/typeChecks.d.ts +39 -39
  263. package/types/excalidraw/element/types.d.ts +263 -263
  264. package/types/excalidraw/emitter.d.ts +16 -16
  265. package/types/excalidraw/entry.d.ts +1 -1
  266. package/types/excalidraw/env.d.cts +1 -1
  267. package/types/excalidraw/env.d.ts +1 -1
  268. package/types/excalidraw/errors.d.ts +32 -32
  269. package/types/excalidraw/fonts/Cascadia/index.d.ts +2 -2
  270. package/types/excalidraw/fonts/ComicShanns/index.d.ts +2 -2
  271. package/types/excalidraw/fonts/Emoji/index.d.ts +2 -2
  272. package/types/excalidraw/fonts/ExcalidrawFont.d.ts +37 -0
  273. package/types/excalidraw/fonts/ExcalidrawFontFace.d.ts +29 -29
  274. package/types/excalidraw/fonts/Excalifont/index.d.ts +2 -2
  275. package/types/excalidraw/fonts/FontMetadata.d.ts +37 -37
  276. package/types/excalidraw/fonts/Fonts.d.ts +117 -117
  277. package/types/excalidraw/fonts/Helvetica/index.d.ts +2 -2
  278. package/types/excalidraw/fonts/Liberation/index.d.ts +2 -2
  279. package/types/excalidraw/fonts/Lilita/index.d.ts +2 -2
  280. package/types/excalidraw/fonts/Nunito/index.d.ts +2 -2
  281. package/types/excalidraw/fonts/Virgil/index.d.ts +2 -2
  282. package/types/excalidraw/fonts/Xiaolai/index.d.ts +8 -8
  283. package/types/excalidraw/fonts/index.d.ts +1 -1
  284. package/types/excalidraw/fonts/metadata.d.ts +35 -0
  285. package/types/excalidraw/fonts/wasm/hb-subset.bindings.d.ts +45 -0
  286. package/types/excalidraw/fonts/wasm/hb-subset.loader.d.ts +5 -0
  287. package/types/excalidraw/fonts/wasm/hb-subset.wasm.d.ts +2 -0
  288. package/types/excalidraw/fonts/wasm/woff2.bindings.d.ts +31 -0
  289. package/types/excalidraw/fonts/wasm/woff2.loader.d.ts +6 -0
  290. package/types/excalidraw/fonts/wasm/woff2.wasm.d.ts +2 -0
  291. package/types/excalidraw/fractionalIndex.d.ts +48 -48
  292. package/types/excalidraw/frame.d.ts +63 -63
  293. package/types/excalidraw/ga.d.ts +63 -0
  294. package/types/excalidraw/gadirections.d.ts +8 -0
  295. package/types/excalidraw/galines.d.ts +22 -0
  296. package/types/excalidraw/gapoints.d.ts +7 -0
  297. package/types/excalidraw/gatransforms.d.ts +10 -0
  298. package/types/excalidraw/gesture.d.ts +6 -6
  299. package/types/excalidraw/groups.d.ts +33 -33
  300. package/types/excalidraw/history.d.ts +40 -40
  301. package/types/excalidraw/hooks/useCallbackRefState.d.ts +1 -1
  302. package/types/excalidraw/hooks/useCopiedIndicator.d.ts +5 -5
  303. package/types/excalidraw/hooks/useCreatePortalContainer.d.ts +7 -7
  304. package/types/excalidraw/hooks/useEmitter.d.ts +2 -2
  305. package/types/excalidraw/hooks/useLibraryItemSvg.d.ts +11 -11
  306. package/types/excalidraw/hooks/useOutsideClick.d.ts +19 -19
  307. package/types/excalidraw/hooks/useScrollPosition.d.ts +1 -1
  308. package/types/excalidraw/hooks/useStable.d.ts +1 -1
  309. package/types/excalidraw/hooks/useStableCallback.d.ts +4 -4
  310. package/types/excalidraw/hooks/useTransition.d.ts +2 -2
  311. package/types/excalidraw/i18n.d.ts +24 -24
  312. package/types/excalidraw/index-node.d.ts +1 -1
  313. package/types/excalidraw/index.d.ts +63 -63
  314. package/types/excalidraw/jotai.d.ts +34 -34
  315. package/types/excalidraw/keys.d.ts +189 -189
  316. package/types/excalidraw/laser-trails.d.ts +20 -20
  317. package/types/excalidraw/main.d.ts +2 -2
  318. package/types/excalidraw/math.d.ts +79 -0
  319. package/types/excalidraw/mermaid.d.ts +2 -2
  320. package/types/excalidraw/obsidianUtils.d.ts +23 -23
  321. package/types/excalidraw/points.d.ts +7 -7
  322. package/types/excalidraw/polyfill.d.ts +2 -2
  323. package/types/excalidraw/publicPath.d.ts +1 -1
  324. package/types/excalidraw/queue.d.ts +9 -9
  325. package/types/excalidraw/random.d.ts +4 -4
  326. package/types/excalidraw/reactUtils.d.ts +14 -14
  327. package/types/excalidraw/renderer/easingFunctions.d.ts +6 -6
  328. package/types/excalidraw/renderer/helpers.d.ts +13 -13
  329. package/types/excalidraw/renderer/interactiveScene.d.ts +20 -20
  330. package/types/excalidraw/renderer/renderElement.d.ts +28 -28
  331. package/types/excalidraw/renderer/renderNewElementScene.d.ts +7 -7
  332. package/types/excalidraw/renderer/renderSnaps.d.ts +2 -2
  333. package/types/excalidraw/renderer/roundRect.d.ts +11 -11
  334. package/types/excalidraw/renderer/staticScene.d.ts +11 -11
  335. package/types/excalidraw/renderer/staticSvgScene.d.ts +5 -5
  336. package/types/excalidraw/scene/Renderer.d.ts +28 -28
  337. package/types/excalidraw/scene/Scene.d.ts +79 -79
  338. package/types/excalidraw/scene/Shape.d.ts +17 -17
  339. package/types/excalidraw/scene/ShapeCache.d.ts +25 -25
  340. package/types/excalidraw/scene/comparisons.d.ts +488 -488
  341. package/types/excalidraw/scene/export.d.ts +30 -30
  342. package/types/excalidraw/scene/index.d.ts +4 -4
  343. package/types/excalidraw/scene/normalize.d.ts +4 -4
  344. package/types/excalidraw/scene/scroll.d.ts +23 -23
  345. package/types/excalidraw/scene/scrollbars.d.ts +12 -12
  346. package/types/excalidraw/scene/selection.d.ts +32 -32
  347. package/types/excalidraw/scene/types.d.ts +119 -119
  348. package/types/excalidraw/scene/zoom.d.ts +12 -12
  349. package/types/excalidraw/shapes.d.ts +85 -85
  350. package/types/excalidraw/snapping.d.ts +112 -112
  351. package/types/excalidraw/store.d.ts +129 -129
  352. package/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +45 -45
  353. package/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +13 -13
  354. package/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +2 -2
  355. package/types/excalidraw/subset/subset-main.d.ts +12 -12
  356. package/types/excalidraw/subset/subset-shared.chunk.d.ts +32 -32
  357. package/types/excalidraw/subset/subset-worker.chunk.d.ts +15 -15
  358. package/types/excalidraw/subset/woff2/woff2-bindings.d.ts +31 -31
  359. package/types/excalidraw/subset/woff2/woff2-loader.d.ts +14 -14
  360. package/types/excalidraw/subset/woff2/woff2-wasm.d.ts +2 -2
  361. package/types/excalidraw/types.d.ts +741 -741
  362. package/types/excalidraw/utility-types.d.ts +31 -31
  363. package/types/excalidraw/utils.d.ts +249 -249
  364. package/types/excalidraw/visualdebug.d.ts +35 -35
  365. package/types/excalidraw/webpack.dev.config.d.ts +81 -81
  366. package/types/excalidraw/webpack.prod.config.d.ts +97 -97
  367. package/types/excalidraw/workers.d.ts +36 -36
  368. package/types/excalidraw/zindex.d.ts +6 -6
  369. package/types/math/angle.d.ts +17 -17
  370. package/types/math/arc.d.ts +6 -6
  371. package/types/math/curve.d.ts +32 -32
  372. package/types/math/ga/ga.d.ts +63 -63
  373. package/types/math/ga/gadirections.d.ts +8 -8
  374. package/types/math/ga/galines.d.ts +22 -22
  375. package/types/math/ga/gapoints.d.ts +7 -7
  376. package/types/math/ga/gatransforms.d.ts +10 -10
  377. package/types/math/index.d.ts +12 -12
  378. package/types/math/line.d.ts +26 -26
  379. package/types/math/point.d.ts +140 -140
  380. package/types/math/polygon.d.ts +5 -5
  381. package/types/math/range.d.ts +44 -44
  382. package/types/math/segment.d.ts +32 -32
  383. package/types/math/triangle.d.ts +11 -11
  384. package/types/math/types.d.ts +96 -96
  385. package/types/math/utils.d.ts +7 -7
  386. package/types/math/vector.d.ts +92 -92
  387. package/types/utils/bbox.d.ts +9 -9
  388. package/types/utils/collision.d.ts +9 -9
  389. package/types/utils/export.d.ts +46 -46
  390. package/types/utils/geometry/geometry.d.ts +89 -0
  391. package/types/utils/geometry/shape.d.ts +71 -71
  392. package/types/utils/index.d.ts +4 -4
  393. package/types/utils/withinBounds.d.ts +19 -19
@@ -1,48 +1,48 @@
1
- import type { ExcalidrawElement, OrderedExcalidrawElement } from "./element/types";
2
- /**
3
- * Envisioned relation between array order and fractional indices:
4
- *
5
- * 1) Array (or array-like ordered data structure) should be used as a cache of elements order, hiding the internal fractional indices implementation.
6
- * - it's undesirable to perform reorder for each related operation, therefore it's necessary to cache the order defined by fractional indices into an ordered data structure
7
- * - it's easy enough to define the order of the elements from the outside (boundaries), without worrying about the underlying structure of fractional indices (especially for the host apps)
8
- * - it's necessary to always keep the array support for backwards compatibility (restore) - old scenes, old libraries, supporting multiple excalidraw versions etc.
9
- * - it's necessary to always keep the fractional indices in sync with the array order
10
- * - elements with invalid indices should be detected and synced, without altering the already valid indices
11
- *
12
- * 2) Fractional indices should be used to reorder the elements, whenever the cached order is expected to be invalidated.
13
- * - as the fractional indices are encoded as part of the elements, it opens up possibilities for incremental-like APIs
14
- * - re-order based on fractional indices should be part of (multiplayer) operations such as reconciliation & undo/redo
15
- * - technically all the z-index actions could perform also re-order based on fractional indices,but in current state it would not bring much benefits,
16
- * as it's faster & more efficient to perform re-order based on array manipulation and later synchronisation of moved indices with the array order
17
- */
18
- /**
19
- * Ensure that all elements have valid fractional indices.
20
- *
21
- * @throws `InvalidFractionalIndexError` if invalid index is detected.
22
- */
23
- export declare const validateFractionalIndices: (elements: readonly ExcalidrawElement[], { shouldThrow, includeBoundTextValidation, ignoreLogs, reconciliationContext, }: {
24
- shouldThrow: boolean;
25
- includeBoundTextValidation: boolean;
26
- ignoreLogs?: true | undefined;
27
- reconciliationContext?: {
28
- localElements: ReadonlyArray<ExcalidrawElement>;
29
- remoteElements: ReadonlyArray<ExcalidrawElement>;
30
- } | undefined;
31
- }) => void;
32
- /**
33
- * Order the elements based on the fractional indices.
34
- * - when fractional indices are identical, break the tie based on the element id
35
- * - when there is no fractional index in one of the elements, respect the order of the array
36
- */
37
- export declare const orderByFractionalIndex: (elements: OrderedExcalidrawElement[]) => OrderedExcalidrawElement[];
38
- /**
39
- * Synchronizes invalid fractional indices of moved elements with the array order by mutating passed elements.
40
- * If the synchronization fails or the result is invalid, it fallbacks to `syncInvalidIndices`.
41
- */
42
- export declare const syncMovedIndices: (elements: readonly ExcalidrawElement[], movedElements: Map<string, ExcalidrawElement>) => OrderedExcalidrawElement[];
43
- /**
44
- * Synchronizes all invalid fractional indices with the array order by mutating passed elements.
45
- *
46
- * WARN: in edge cases it could modify the elements which were not moved, as it's impossible to guess the actually moved elements from the elements array itself.
47
- */
48
- export declare const syncInvalidIndices: (elements: readonly ExcalidrawElement[]) => OrderedExcalidrawElement[];
1
+ import type { ExcalidrawElement, OrderedExcalidrawElement } from "./element/types";
2
+ /**
3
+ * Envisioned relation between array order and fractional indices:
4
+ *
5
+ * 1) Array (or array-like ordered data structure) should be used as a cache of elements order, hiding the internal fractional indices implementation.
6
+ * - it's undesirable to perform reorder for each related operation, therefore it's necessary to cache the order defined by fractional indices into an ordered data structure
7
+ * - it's easy enough to define the order of the elements from the outside (boundaries), without worrying about the underlying structure of fractional indices (especially for the host apps)
8
+ * - it's necessary to always keep the array support for backwards compatibility (restore) - old scenes, old libraries, supporting multiple excalidraw versions etc.
9
+ * - it's necessary to always keep the fractional indices in sync with the array order
10
+ * - elements with invalid indices should be detected and synced, without altering the already valid indices
11
+ *
12
+ * 2) Fractional indices should be used to reorder the elements, whenever the cached order is expected to be invalidated.
13
+ * - as the fractional indices are encoded as part of the elements, it opens up possibilities for incremental-like APIs
14
+ * - re-order based on fractional indices should be part of (multiplayer) operations such as reconciliation & undo/redo
15
+ * - technically all the z-index actions could perform also re-order based on fractional indices,but in current state it would not bring much benefits,
16
+ * as it's faster & more efficient to perform re-order based on array manipulation and later synchronisation of moved indices with the array order
17
+ */
18
+ /**
19
+ * Ensure that all elements have valid fractional indices.
20
+ *
21
+ * @throws `InvalidFractionalIndexError` if invalid index is detected.
22
+ */
23
+ export declare const validateFractionalIndices: (elements: readonly ExcalidrawElement[], { shouldThrow, includeBoundTextValidation, ignoreLogs, reconciliationContext, }: {
24
+ shouldThrow: boolean;
25
+ includeBoundTextValidation: boolean;
26
+ ignoreLogs?: true | undefined;
27
+ reconciliationContext?: {
28
+ localElements: ReadonlyArray<ExcalidrawElement>;
29
+ remoteElements: ReadonlyArray<ExcalidrawElement>;
30
+ } | undefined;
31
+ }) => void;
32
+ /**
33
+ * Order the elements based on the fractional indices.
34
+ * - when fractional indices are identical, break the tie based on the element id
35
+ * - when there is no fractional index in one of the elements, respect the order of the array
36
+ */
37
+ export declare const orderByFractionalIndex: (elements: OrderedExcalidrawElement[]) => OrderedExcalidrawElement[];
38
+ /**
39
+ * Synchronizes invalid fractional indices of moved elements with the array order by mutating passed elements.
40
+ * If the synchronization fails or the result is invalid, it fallbacks to `syncInvalidIndices`.
41
+ */
42
+ export declare const syncMovedIndices: (elements: readonly ExcalidrawElement[], movedElements: Map<string, ExcalidrawElement>) => OrderedExcalidrawElement[];
43
+ /**
44
+ * Synchronizes all invalid fractional indices with the array order by mutating passed elements.
45
+ *
46
+ * WARN: in edge cases it could modify the elements which were not moved, as it's impossible to guess the actually moved elements from the elements array itself.
47
+ */
48
+ export declare const syncInvalidIndices: (elements: readonly ExcalidrawElement[]) => OrderedExcalidrawElement[];
@@ -1,63 +1,63 @@
1
- import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "./element/types";
2
- import type { AppClassProperties, AppState, StaticCanvasAppState } from "./types";
3
- import type { ExcalidrawElementsIncludingDeleted } from "./scene/Scene";
4
- import type { ReadonlySetLike } from "./utility-types";
5
- export declare const bindElementsToFramesAfterDuplication: (nextElements: readonly ExcalidrawElement[], oldElements: readonly ExcalidrawElement[], oldIdToDuplicatedId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>) => void;
6
- export declare function isElementIntersectingFrame(element: ExcalidrawElement, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap): boolean;
7
- export declare const getElementsCompletelyInFrame: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => ExcalidrawElement[];
8
- export declare const isElementContainingFrame: (elements: readonly ExcalidrawElement[], element: ExcalidrawElement, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => boolean;
9
- export declare const getElementsIntersectingFrame: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement) => ExcalidrawElement[];
10
- export declare const elementsAreInFrameBounds: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => boolean;
11
- export declare const elementOverlapsWithFrame: (element: ExcalidrawElement, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => boolean;
12
- export declare const isCursorInFrame: (cursorCoords: {
13
- x: number;
14
- y: number;
15
- }, frame: NonDeleted<ExcalidrawFrameLikeElement>, elementsMap: ElementsMap) => boolean;
16
- export declare const groupsAreAtLeastIntersectingTheFrame: (elements: readonly NonDeletedExcalidrawElement[], groupIds: readonly string[], frame: ExcalidrawFrameLikeElement) => boolean;
17
- export declare const groupsAreCompletelyOutOfFrame: (elements: readonly NonDeletedExcalidrawElement[], groupIds: readonly string[], frame: ExcalidrawFrameLikeElement) => boolean;
18
- /**
19
- * Returns a map of frameId to frame elements. Includes empty frames.
20
- */
21
- export declare const groupByFrameLikes: (elements: readonly ExcalidrawElement[]) => Map<string, ExcalidrawElement[]>;
22
- export declare const getFrameChildren: (allElements: ElementsMapOrArray, frameId: string) => ExcalidrawElement[];
23
- export declare const getFrameLikeElements: (allElements: ExcalidrawElementsIncludingDeleted) => ExcalidrawFrameLikeElement[];
24
- /**
25
- * Returns ExcalidrawFrameElements and non-frame-children elements.
26
- *
27
- * Considers children as root elements if they point to a frame parent
28
- * non-existing in the elements set.
29
- *
30
- * Considers non-frame bound elements (container or arrow labels) as root.
31
- */
32
- export declare const getRootElements: (allElements: ExcalidrawElementsIncludingDeleted) => ExcalidrawElement[];
33
- export declare const getElementsInResizingFrame: (allElements: ExcalidrawElementsIncludingDeleted, frame: ExcalidrawFrameLikeElement, appState: AppState, elementsMap: ElementsMap) => ExcalidrawElement[];
34
- export declare const getElementsInNewFrame: (elements: ExcalidrawElementsIncludingDeleted, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => ExcalidrawElement[];
35
- export declare const getContainingFrame: (element: ExcalidrawElement, elementsMap: ElementsMap) => ExcalidrawFrameLikeElement | null;
36
- /** */
37
- export declare const filterElementsEligibleAsFrameChildren: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement) => ExcalidrawElement[];
38
- /**
39
- * Retains (or repairs for target frame) the ordering invriant where children
40
- * elements come right before the parent frame:
41
- * [el, el, child, child, frame, el]
42
- *
43
- * @returns mutated allElements (same data structure)
44
- */
45
- export declare const addElementsToFrame: <T extends ElementsMapOrArray>(allElements: T, elementsToAdd: NonDeletedExcalidrawElement[], frame: ExcalidrawFrameLikeElement) => T;
46
- export declare const removeElementsFromFrame: (elementsToRemove: ReadonlySetLike<NonDeletedExcalidrawElement>, elementsMap: ElementsMap) => void;
47
- export declare const removeAllElementsFromFrame: <T extends ExcalidrawElement>(allElements: readonly T[], frame: ExcalidrawFrameLikeElement) => readonly T[];
48
- export declare const replaceAllElementsInFrame: <T extends ExcalidrawElement>(allElements: readonly T[], nextElementsInFrame: ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, app: AppClassProperties) => T[];
49
- /** does not mutate elements, but returns new ones */
50
- export declare const updateFrameMembershipOfSelectedElements: <T extends ElementsMapOrArray>(allElements: T, appState: AppState, app: AppClassProperties) => T;
51
- /**
52
- * filters out elements that are inside groups that contain a frame element
53
- * anywhere in the group tree
54
- */
55
- export declare const omitGroupsContainingFrameLikes: (allElements: ElementsMapOrArray, selectedElements?: readonly ExcalidrawElement[]) => ExcalidrawElement[];
56
- /**
57
- * depending on the appState, return target frame, which is the frame the given element
58
- * is going to be added to or remove from
59
- */
60
- export declare const getTargetFrame: (element: ExcalidrawElement, elementsMap: ElementsMap, appState: StaticCanvasAppState) => import("./element/types").ExcalidrawFrameElement | import("./element/types").ExcalidrawMagicFrameElement | null;
61
- export declare const isElementInFrame: (element: ExcalidrawElement, allElementsMap: ElementsMap, appState: StaticCanvasAppState) => boolean;
62
- export declare const getFrameLikeTitle: (element: ExcalidrawFrameLikeElement) => string;
63
- export declare const getElementsOverlappingFrame: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement) => NonDeletedExcalidrawElement[];
1
+ import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "./element/types";
2
+ import type { AppClassProperties, AppState, StaticCanvasAppState } from "./types";
3
+ import type { ExcalidrawElementsIncludingDeleted } from "./scene/Scene";
4
+ import type { ReadonlySetLike } from "./utility-types";
5
+ export declare const bindElementsToFramesAfterDuplication: (nextElements: readonly ExcalidrawElement[], oldElements: readonly ExcalidrawElement[], oldIdToDuplicatedId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>) => void;
6
+ export declare function isElementIntersectingFrame(element: ExcalidrawElement, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap): boolean;
7
+ export declare const getElementsCompletelyInFrame: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => ExcalidrawElement[];
8
+ export declare const isElementContainingFrame: (elements: readonly ExcalidrawElement[], element: ExcalidrawElement, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => boolean;
9
+ export declare const getElementsIntersectingFrame: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement) => ExcalidrawElement[];
10
+ export declare const elementsAreInFrameBounds: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => boolean;
11
+ export declare const elementOverlapsWithFrame: (element: ExcalidrawElement, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => boolean;
12
+ export declare const isCursorInFrame: (cursorCoords: {
13
+ x: number;
14
+ y: number;
15
+ }, frame: NonDeleted<ExcalidrawFrameLikeElement>, elementsMap: ElementsMap) => boolean;
16
+ export declare const groupsAreAtLeastIntersectingTheFrame: (elements: readonly NonDeletedExcalidrawElement[], groupIds: readonly string[], frame: ExcalidrawFrameLikeElement) => boolean;
17
+ export declare const groupsAreCompletelyOutOfFrame: (elements: readonly NonDeletedExcalidrawElement[], groupIds: readonly string[], frame: ExcalidrawFrameLikeElement) => boolean;
18
+ /**
19
+ * Returns a map of frameId to frame elements. Includes empty frames.
20
+ */
21
+ export declare const groupByFrameLikes: (elements: readonly ExcalidrawElement[]) => Map<string, ExcalidrawElement[]>;
22
+ export declare const getFrameChildren: (allElements: ElementsMapOrArray, frameId: string) => ExcalidrawElement[];
23
+ export declare const getFrameLikeElements: (allElements: ExcalidrawElementsIncludingDeleted) => ExcalidrawFrameLikeElement[];
24
+ /**
25
+ * Returns ExcalidrawFrameElements and non-frame-children elements.
26
+ *
27
+ * Considers children as root elements if they point to a frame parent
28
+ * non-existing in the elements set.
29
+ *
30
+ * Considers non-frame bound elements (container or arrow labels) as root.
31
+ */
32
+ export declare const getRootElements: (allElements: ExcalidrawElementsIncludingDeleted) => ExcalidrawElement[];
33
+ export declare const getElementsInResizingFrame: (allElements: ExcalidrawElementsIncludingDeleted, frame: ExcalidrawFrameLikeElement, appState: AppState, elementsMap: ElementsMap) => ExcalidrawElement[];
34
+ export declare const getElementsInNewFrame: (elements: ExcalidrawElementsIncludingDeleted, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => ExcalidrawElement[];
35
+ export declare const getContainingFrame: (element: ExcalidrawElement, elementsMap: ElementsMap) => ExcalidrawFrameLikeElement | null;
36
+ /** */
37
+ export declare const filterElementsEligibleAsFrameChildren: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement) => ExcalidrawElement[];
38
+ /**
39
+ * Retains (or repairs for target frame) the ordering invriant where children
40
+ * elements come right before the parent frame:
41
+ * [el, el, child, child, frame, el]
42
+ *
43
+ * @returns mutated allElements (same data structure)
44
+ */
45
+ export declare const addElementsToFrame: <T extends ElementsMapOrArray>(allElements: T, elementsToAdd: NonDeletedExcalidrawElement[], frame: ExcalidrawFrameLikeElement) => T;
46
+ export declare const removeElementsFromFrame: (elementsToRemove: ReadonlySetLike<NonDeletedExcalidrawElement>, elementsMap: ElementsMap) => void;
47
+ export declare const removeAllElementsFromFrame: <T extends ExcalidrawElement>(allElements: readonly T[], frame: ExcalidrawFrameLikeElement) => readonly T[];
48
+ export declare const replaceAllElementsInFrame: <T extends ExcalidrawElement>(allElements: readonly T[], nextElementsInFrame: ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, app: AppClassProperties) => T[];
49
+ /** does not mutate elements, but returns new ones */
50
+ export declare const updateFrameMembershipOfSelectedElements: <T extends ElementsMapOrArray>(allElements: T, appState: AppState, app: AppClassProperties) => T;
51
+ /**
52
+ * filters out elements that are inside groups that contain a frame element
53
+ * anywhere in the group tree
54
+ */
55
+ export declare const omitGroupsContainingFrameLikes: (allElements: ElementsMapOrArray, selectedElements?: readonly ExcalidrawElement[]) => ExcalidrawElement[];
56
+ /**
57
+ * depending on the appState, return target frame, which is the frame the given element
58
+ * is going to be added to or remove from
59
+ */
60
+ export declare const getTargetFrame: (element: ExcalidrawElement, elementsMap: ElementsMap, appState: StaticCanvasAppState) => import("./element/types").ExcalidrawFrameElement | import("./element/types").ExcalidrawMagicFrameElement | null;
61
+ export declare const isElementInFrame: (element: ExcalidrawElement, allElementsMap: ElementsMap, appState: StaticCanvasAppState) => boolean;
62
+ export declare const getFrameLikeTitle: (element: ExcalidrawFrameLikeElement) => string;
63
+ export declare const getElementsOverlappingFrame: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement) => NonDeletedExcalidrawElement[];
@@ -0,0 +1,63 @@
1
+ /**
2
+ * This is a 2D Projective Geometric Algebra implementation.
3
+ *
4
+ * For wider context on geometric algebra visit see https://bivector.net.
5
+ *
6
+ * For this specific algebra see cheatsheet https://bivector.net/2DPGA.pdf.
7
+ *
8
+ * Converted from generator written by enki, with a ton of added on top.
9
+ *
10
+ * This library uses 8-vectors to represent points, directions and lines
11
+ * in 2D space.
12
+ *
13
+ * An array `[a, b, c, d, e, f, g, h]` represents a n(8)vector:
14
+ * a + b*e0 + c*e1 + d*e2 + e*e01 + f*e20 + g*e12 + h*e012
15
+ *
16
+ * See GAPoint, GALine, GADirection and GATransform modules for common
17
+ * operations.
18
+ */
19
+ export type Point = NVector;
20
+ export type Direction = NVector;
21
+ export type Line = NVector;
22
+ export type Transform = NVector;
23
+ export declare const point: (x: number, y: number) => NVector;
24
+ export declare const origin: () => NVector;
25
+ export declare const direction: (x: number, y: number) => NVector;
26
+ export declare const offset: (x: number, y: number) => NVector;
27
+ type NVector = readonly [
28
+ number,
29
+ number,
30
+ number,
31
+ number,
32
+ number,
33
+ number,
34
+ number,
35
+ number
36
+ ];
37
+ export declare const nvector: (value?: number, index?: number) => NVector;
38
+ export declare const toString: (nvector: NVector) => string;
39
+ export declare const reverse: (nvector: NVector) => NVector;
40
+ export declare const dual: (nvector: NVector) => NVector;
41
+ export declare const conjugate: (nvector: NVector) => NVector;
42
+ export declare const involute: (nvector: NVector) => NVector;
43
+ export declare const add: (a: NVector, b: NVector | number) => NVector;
44
+ export declare const sub: (a: NVector, b: NVector | number) => NVector;
45
+ export declare const mul: (a: NVector, b: NVector | number) => NVector;
46
+ export declare const mulScalar: (a: NVector, b: NVector) => number;
47
+ export declare const meet: (a: NVector, b: NVector) => NVector;
48
+ export declare const join: (a: NVector, b: NVector) => NVector;
49
+ export declare const joinScalar: (a: NVector, b: NVector) => number;
50
+ export declare const dot: (a: NVector, b: NVector) => NVector;
51
+ export declare const norm: (a: NVector) => number;
52
+ export declare const inorm: (a: NVector) => number;
53
+ export declare const normalized: (a: NVector) => NVector;
54
+ export declare const inormalized: (a: NVector) => NVector;
55
+ export declare const E0: NVector;
56
+ export declare const E1: NVector;
57
+ export declare const E2: NVector;
58
+ export declare const E01: NVector;
59
+ export declare const E20: NVector;
60
+ export declare const E12: NVector;
61
+ export declare const E012: NVector;
62
+ export declare const I: NVector;
63
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A direction is stored as an array `[0, 0, 0, 0, y, x, 0, 0]` representing
3
+ * vector `(x, y)`.
4
+ */
5
+ export declare const from: (point: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
6
+ export declare const fromTo: (from: readonly [number, number, number, number, number, number, number, number], to: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
7
+ export declare const orthogonal: (direction: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
8
+ export declare const orthogonalToLine: (line: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
@@ -0,0 +1,22 @@
1
+ /**
2
+ * A line is stored as an array `[0, c, a, b, 0, 0, 0, 0]` representing:
3
+ * c * e0 + a * e1 + b*e2
4
+ *
5
+ * This maps to a standard formula `a * x + b * y + c`.
6
+ *
7
+ * `(-b, a)` corresponds to a 2D vector parallel to the line. The lines
8
+ * have a natural orientation, corresponding to that vector.
9
+ *
10
+ * The magnitude ("norm") of the line is `sqrt(a ^ 2 + b ^ 2)`.
11
+ * `c / norm(line)` is the oriented distance from line to origin.
12
+ */
13
+ export declare const vector: (x: number, y: number) => readonly [number, number, number, number, number, number, number, number];
14
+ export declare const equation: (a: number, b: number, c: number) => readonly [number, number, number, number, number, number, number, number];
15
+ export declare const through: (from: readonly [number, number, number, number, number, number, number, number], to: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
16
+ export declare const orthogonal: (line: readonly [number, number, number, number, number, number, number, number], point: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
17
+ export declare const orthogonalThrough: (against: readonly [number, number, number, number, number, number, number, number], intersection: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
18
+ export declare const parallel: (line: readonly [number, number, number, number, number, number, number, number], distance: number) => readonly [number, number, number, number, number, number, number, number];
19
+ export declare const parallelThrough: (line: readonly [number, number, number, number, number, number, number, number], point: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
20
+ export declare const distance: (line1: readonly [number, number, number, number, number, number, number, number], line2: readonly [number, number, number, number, number, number, number, number]) => number;
21
+ export declare const angle: (line1: readonly [number, number, number, number, number, number, number, number], line2: readonly [number, number, number, number, number, number, number, number]) => number;
22
+ export declare const sign: (line: readonly [number, number, number, number, number, number, number, number]) => number;
@@ -0,0 +1,7 @@
1
+ export declare const from: ([x, y]: readonly [number, number]) => readonly [number, number, number, number, number, number, number, number];
2
+ export declare const toTuple: (point: readonly [number, number, number, number, number, number, number, number]) => [number, number];
3
+ export declare const abs: (point: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
4
+ export declare const intersect: (line1: readonly [number, number, number, number, number, number, number, number], line2: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
5
+ export declare const project: (point: readonly [number, number, number, number, number, number, number, number], line: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
6
+ export declare const distance: (point1: readonly [number, number, number, number, number, number, number, number], point2: readonly [number, number, number, number, number, number, number, number]) => number;
7
+ export declare const distanceToLine: (point: readonly [number, number, number, number, number, number, number, number], line: readonly [number, number, number, number, number, number, number, number]) => number;
@@ -0,0 +1,10 @@
1
+ import type { Line, Direction, Point } from "./ga";
2
+ /**
3
+ * TODO: docs
4
+ */
5
+ export declare const rotation: (pivot: readonly [number, number, number, number, number, number, number, number], angle: number) => readonly [number, number, number, number, number, number, number, number];
6
+ export declare const translation: (direction: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
7
+ export declare const translationOrthogonal: (direction: readonly [number, number, number, number, number, number, number, number], distance: number) => readonly [number, number, number, number, number, number, number, number];
8
+ export declare const translationAlong: (line: readonly [number, number, number, number, number, number, number, number], distance: number) => readonly [number, number, number, number, number, number, number, number];
9
+ export declare const compose: (motor1: readonly [number, number, number, number, number, number, number, number], motor2: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
10
+ export declare const apply: (motor: readonly [number, number, number, number, number, number, number, number], nvector: Point | Direction | Line) => Point | Direction | Line;
@@ -1,6 +1,6 @@
1
- import type { PointerCoords } from "./types";
2
- export declare const getCenter: (pointers: Map<number, PointerCoords>) => {
3
- x: number;
4
- y: number;
5
- };
6
- export declare const getDistance: ([a, b]: readonly PointerCoords[]) => number;
1
+ import type { PointerCoords } from "./types";
2
+ export declare const getCenter: (pointers: Map<number, PointerCoords>) => {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ export declare const getDistance: ([a, b]: readonly PointerCoords[]) => number;
@@ -1,33 +1,33 @@
1
- import type { GroupId, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ElementsMapOrArray, ElementsMap } from "./element/types";
2
- import type { AppClassProperties, AppState, InteractiveCanvasAppState } from "./types";
3
- import type { Mutable } from "./utility-types";
4
- export declare const selectGroup: (groupId: GroupId, appState: InteractiveCanvasAppState, elements: readonly NonDeleted<ExcalidrawElement>[]) => Pick<InteractiveCanvasAppState, "selectedGroupIds" | "selectedElementIds" | "editingGroupId">;
5
- export declare const selectGroupsForSelectedElements: {
6
- (appState: Pick<AppState, "selectedElementIds" | "editingGroupId">, elements: readonly NonDeletedExcalidrawElement[], prevAppState: InteractiveCanvasAppState, app: AppClassProperties | null): Mutable<Pick<InteractiveCanvasAppState, "selectedGroupIds" | "editingGroupId" | "selectedElementIds">>;
7
- clearCache(): void;
8
- };
9
- /**
10
- * If the element's group is selected, don't render an individual
11
- * selection border around it.
12
- */
13
- export declare const isSelectedViaGroup: (appState: InteractiveCanvasAppState, element: ExcalidrawElement) => boolean;
14
- export declare const getSelectedGroupForElement: (appState: InteractiveCanvasAppState, element: ExcalidrawElement) => string | undefined;
15
- export declare const getSelectedGroupIds: (appState: InteractiveCanvasAppState) => GroupId[];
16
- export declare const selectGroupsFromGivenElements: (elements: readonly NonDeleted<ExcalidrawElement>[], appState: InteractiveCanvasAppState) => {
17
- [groupId: string]: boolean;
18
- };
19
- export declare const editGroupForSelectedElement: (appState: AppState, element: NonDeleted<ExcalidrawElement>) => AppState;
20
- export declare const isElementInGroup: (element: ExcalidrawElement, groupId: string) => boolean;
21
- export declare const getElementsInGroup: (elements: ElementsMapOrArray, groupId: string) => ExcalidrawElement[];
22
- export declare const getSelectedGroupIdForElement: (element: ExcalidrawElement, selectedGroupIds: {
23
- [groupId: string]: boolean;
24
- }) => string | undefined;
25
- export declare const getNewGroupIdsForDuplication: (groupIds: ExcalidrawElement["groupIds"], editingGroupId: AppState["editingGroupId"], mapper: (groupId: GroupId) => GroupId) => string[];
26
- export declare const addToGroup: (prevGroupIds: ExcalidrawElement["groupIds"], newGroupId: GroupId, editingGroupId: AppState["editingGroupId"]) => string[];
27
- export declare const removeFromSelectedGroups: (groupIds: ExcalidrawElement["groupIds"], selectedGroupIds: {
28
- [groupId: string]: boolean;
29
- }) => string[];
30
- export declare const getMaximumGroups: (elements: ExcalidrawElement[], elementsMap: ElementsMap) => ExcalidrawElement[][];
31
- export declare const getNonDeletedGroupIds: (elements: ElementsMap) => Set<string>;
32
- export declare const elementsAreInSameGroup: (elements: readonly ExcalidrawElement[]) => boolean;
33
- export declare const isInGroup: (element: NonDeletedExcalidrawElement) => boolean;
1
+ import type { GroupId, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ElementsMapOrArray, ElementsMap } from "./element/types";
2
+ import type { AppClassProperties, AppState, InteractiveCanvasAppState } from "./types";
3
+ import type { Mutable } from "./utility-types";
4
+ export declare const selectGroup: (groupId: GroupId, appState: InteractiveCanvasAppState, elements: readonly NonDeleted<ExcalidrawElement>[]) => Pick<InteractiveCanvasAppState, "selectedGroupIds" | "selectedElementIds" | "editingGroupId">;
5
+ export declare const selectGroupsForSelectedElements: {
6
+ (appState: Pick<AppState, "selectedElementIds" | "editingGroupId">, elements: readonly NonDeletedExcalidrawElement[], prevAppState: InteractiveCanvasAppState, app: AppClassProperties | null): Mutable<Pick<InteractiveCanvasAppState, "selectedGroupIds" | "editingGroupId" | "selectedElementIds">>;
7
+ clearCache(): void;
8
+ };
9
+ /**
10
+ * If the element's group is selected, don't render an individual
11
+ * selection border around it.
12
+ */
13
+ export declare const isSelectedViaGroup: (appState: InteractiveCanvasAppState, element: ExcalidrawElement) => boolean;
14
+ export declare const getSelectedGroupForElement: (appState: InteractiveCanvasAppState, element: ExcalidrawElement) => string | undefined;
15
+ export declare const getSelectedGroupIds: (appState: InteractiveCanvasAppState) => GroupId[];
16
+ export declare const selectGroupsFromGivenElements: (elements: readonly NonDeleted<ExcalidrawElement>[], appState: InteractiveCanvasAppState) => {
17
+ [groupId: string]: boolean;
18
+ };
19
+ export declare const editGroupForSelectedElement: (appState: AppState, element: NonDeleted<ExcalidrawElement>) => AppState;
20
+ export declare const isElementInGroup: (element: ExcalidrawElement, groupId: string) => boolean;
21
+ export declare const getElementsInGroup: (elements: ElementsMapOrArray, groupId: string) => ExcalidrawElement[];
22
+ export declare const getSelectedGroupIdForElement: (element: ExcalidrawElement, selectedGroupIds: {
23
+ [groupId: string]: boolean;
24
+ }) => string | undefined;
25
+ export declare const getNewGroupIdsForDuplication: (groupIds: ExcalidrawElement["groupIds"], editingGroupId: AppState["editingGroupId"], mapper: (groupId: GroupId) => GroupId) => string[];
26
+ export declare const addToGroup: (prevGroupIds: ExcalidrawElement["groupIds"], newGroupId: GroupId, editingGroupId: AppState["editingGroupId"]) => string[];
27
+ export declare const removeFromSelectedGroups: (groupIds: ExcalidrawElement["groupIds"], selectedGroupIds: {
28
+ [groupId: string]: boolean;
29
+ }) => string[];
30
+ export declare const getMaximumGroups: (elements: ExcalidrawElement[], elementsMap: ElementsMap) => ExcalidrawElement[][];
31
+ export declare const getNonDeletedGroupIds: (elements: ElementsMap) => Set<string>;
32
+ export declare const elementsAreInSameGroup: (elements: readonly ExcalidrawElement[]) => boolean;
33
+ export declare const isInGroup: (element: NonDeletedExcalidrawElement) => boolean;
@@ -1,40 +1,40 @@
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";
5
- import type { AppState } from "./types";
6
- export declare class HistoryChangedEvent {
7
- readonly isUndoStackEmpty: boolean;
8
- readonly isRedoStackEmpty: boolean;
9
- constructor(isUndoStackEmpty?: boolean, isRedoStackEmpty?: boolean);
10
- }
11
- export declare class History {
12
- readonly onHistoryChangedEmitter: Emitter<[HistoryChangedEvent]>;
13
- private readonly undoStack;
14
- private readonly redoStack;
15
- get isUndoStackEmpty(): boolean;
16
- get isRedoStackEmpty(): boolean;
17
- clear(): void;
18
- /**
19
- * Record a local change which will go into the history
20
- */
21
- record(elementsChange: ElementsChange, appStateChange: AppStateChange): void;
22
- undo(elements: SceneElementsMap, appState: AppState, snapshot: Readonly<Snapshot>): void | [SceneElementsMap, AppState];
23
- redo(elements: SceneElementsMap, appState: AppState, snapshot: Readonly<Snapshot>): void | [SceneElementsMap, AppState];
24
- private perform;
25
- private static pop;
26
- private static push;
27
- }
28
- export declare class HistoryEntry {
29
- readonly appStateChange: AppStateChange;
30
- readonly elementsChange: ElementsChange;
31
- private constructor();
32
- static create(appStateChange: AppStateChange, elementsChange: ElementsChange): HistoryEntry;
33
- inverse(): HistoryEntry;
34
- applyTo(elements: SceneElementsMap, appState: AppState, snapshot: Readonly<Snapshot>): [SceneElementsMap, AppState, boolean];
35
- /**
36
- * Apply latest (remote) changes to the history entry, creates new instance of `HistoryEntry`.
37
- */
38
- applyLatestChanges(elements: SceneElementsMap): HistoryEntry;
39
- isEmpty(): boolean;
40
- }
1
+ import type { AppStateChange, ElementsChange } from "./change";
2
+ import type { SceneElementsMap } from "./element/types";
3
+ import { Emitter } from "./emitter";
4
+ import type { Snapshot } from "./store";
5
+ import type { AppState } from "./types";
6
+ export declare class HistoryChangedEvent {
7
+ readonly isUndoStackEmpty: boolean;
8
+ readonly isRedoStackEmpty: boolean;
9
+ constructor(isUndoStackEmpty?: boolean, isRedoStackEmpty?: boolean);
10
+ }
11
+ export declare class History {
12
+ readonly onHistoryChangedEmitter: Emitter<[HistoryChangedEvent]>;
13
+ private readonly undoStack;
14
+ private readonly redoStack;
15
+ get isUndoStackEmpty(): boolean;
16
+ get isRedoStackEmpty(): boolean;
17
+ clear(): void;
18
+ /**
19
+ * Record a local change which will go into the history
20
+ */
21
+ record(elementsChange: ElementsChange, appStateChange: AppStateChange): void;
22
+ undo(elements: SceneElementsMap, appState: AppState, snapshot: Readonly<Snapshot>): void | [SceneElementsMap, AppState];
23
+ redo(elements: SceneElementsMap, appState: AppState, snapshot: Readonly<Snapshot>): void | [SceneElementsMap, AppState];
24
+ private perform;
25
+ private static pop;
26
+ private static push;
27
+ }
28
+ export declare class HistoryEntry {
29
+ readonly appStateChange: AppStateChange;
30
+ readonly elementsChange: ElementsChange;
31
+ private constructor();
32
+ static create(appStateChange: AppStateChange, elementsChange: ElementsChange): HistoryEntry;
33
+ inverse(): HistoryEntry;
34
+ applyTo(elements: SceneElementsMap, appState: AppState, snapshot: Readonly<Snapshot>): [SceneElementsMap, AppState, boolean];
35
+ /**
36
+ * Apply latest (remote) changes to the history entry, creates new instance of `HistoryEntry`.
37
+ */
38
+ applyLatestChanges(elements: SceneElementsMap): HistoryEntry;
39
+ isEmpty(): boolean;
40
+ }
@@ -1 +1 @@
1
- export declare const useCallbackRefState: <T>() => readonly [T | null, (value: T | null) => void];
1
+ export declare const useCallbackRefState: <T>() => readonly [T | null, (value: T | null) => void];
@@ -1,5 +1,5 @@
1
- export declare const useCopyStatus: () => {
2
- copyStatus: "success" | null;
3
- resetCopyStatus: () => void;
4
- onCopy: () => void;
5
- };
1
+ export declare const useCopyStatus: () => {
2
+ copyStatus: "success" | null;
3
+ resetCopyStatus: () => void;
4
+ onCopy: () => void;
5
+ };
@@ -1,7 +1,7 @@
1
- export declare const useCreatePortalContainer: (opts?: {
2
- className?: string | undefined;
3
- parentSelector?: string | undefined;
4
- style?: {
5
- [x: string]: string;
6
- } | undefined;
7
- } | undefined) => HTMLDivElement | null;
1
+ export declare const useCreatePortalContainer: (opts?: {
2
+ className?: string | undefined;
3
+ parentSelector?: string | undefined;
4
+ style?: {
5
+ [x: string]: string;
6
+ } | undefined;
7
+ } | undefined) => HTMLDivElement | null;
@@ -1,2 +1,2 @@
1
- import type { Emitter } from "../emitter";
2
- export declare const useEmitter: <TEvent extends unknown>(emitter: Emitter<[TEvent]>, initialState: TEvent) => TEvent;
1
+ import type { Emitter } from "../emitter";
2
+ export declare const useEmitter: <TEvent extends unknown>(emitter: Emitter<[TEvent]>, initialState: TEvent) => TEvent;
@@ -1,11 +1,11 @@
1
- import type { LibraryItem } from "../types";
2
- export type SvgCache = Map<LibraryItem["id"], SVGSVGElement>;
3
- export declare const libraryItemSvgsCache: import("jotai").PrimitiveAtom<SvgCache> & {
4
- init: SvgCache;
5
- };
6
- export declare const useLibraryItemSvg: (id: LibraryItem["id"] | null, elements: LibraryItem["elements"] | undefined, svgCache: SvgCache) => SVGSVGElement | undefined;
7
- export declare const useLibraryCache: () => {
8
- clearLibraryCache: () => void;
9
- deleteItemsFromLibraryCache: (items: LibraryItem["id"][]) => void;
10
- svgCache: SvgCache;
11
- };
1
+ import type { LibraryItem } from "../types";
2
+ export type SvgCache = Map<LibraryItem["id"], SVGSVGElement>;
3
+ export declare const libraryItemSvgsCache: import("jotai").PrimitiveAtom<SvgCache> & {
4
+ init: SvgCache;
5
+ };
6
+ export declare const useLibraryItemSvg: (id: LibraryItem["id"] | null, elements: LibraryItem["elements"] | undefined, svgCache: SvgCache) => SVGSVGElement | undefined;
7
+ export declare const useLibraryCache: () => {
8
+ clearLibraryCache: () => void;
9
+ deleteItemsFromLibraryCache: (items: LibraryItem["id"][]) => void;
10
+ svgCache: SvgCache;
11
+ };
@@ -1,19 +1,19 @@
1
- export declare function useOutsideClick<T extends HTMLElement>(ref: React.RefObject<T>,
2
- /** if performance is of concern, memoize the callback */
3
- callback: (event: Event) => void,
4
- /**
5
- * Optional callback which is called on every click.
6
- *
7
- * Should return `true` if click should be considered as inside the container,
8
- * and `false` if it falls outside and should call the `callback`.
9
- *
10
- * Returning `true` overrides the default behavior and `callback` won't be
11
- * called.
12
- *
13
- * Returning `undefined` will fallback to the default behavior.
14
- */
15
- isInside?: (event: Event & {
16
- target: HTMLElement;
17
- },
18
- /** the element of the passed ref */
19
- container: T) => boolean | undefined): void;
1
+ export declare function useOutsideClick<T extends HTMLElement>(ref: React.RefObject<T>,
2
+ /** if performance is of concern, memoize the callback */
3
+ callback: (event: Event) => void,
4
+ /**
5
+ * Optional callback which is called on every click.
6
+ *
7
+ * Should return `true` if click should be considered as inside the container,
8
+ * and `false` if it falls outside and should call the `callback`.
9
+ *
10
+ * Returning `true` overrides the default behavior and `callback` won't be
11
+ * called.
12
+ *
13
+ * Returning `undefined` will fallback to the default behavior.
14
+ */
15
+ isInside?: (event: Event & {
16
+ target: HTMLElement;
17
+ },
18
+ /** the element of the passed ref */
19
+ container: T) => boolean | undefined): void;