@misenkashari/excalidraw-common 1.0.0 → 1.0.3

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 (377) hide show
  1. package/dist/dev/index.js +3729 -0
  2. package/dist/dev/index.js.map +7 -0
  3. package/dist/prod/index.js +4 -0
  4. package/dist/types/common/src/binary-heap.d.ts +12 -0
  5. package/dist/types/common/src/bounds.d.ts +10 -0
  6. package/dist/types/common/src/colors.d.ts +65 -0
  7. package/dist/types/common/src/constants.d.ts +355 -0
  8. package/dist/types/common/src/editorInterface.d.ts +34 -0
  9. package/dist/types/common/src/emitter.d.ts +16 -0
  10. package/dist/types/common/src/font-metadata.d.ts +46 -0
  11. package/dist/types/common/src/index.d.ts +15 -0
  12. package/dist/types/common/src/keys.d.ts +191 -0
  13. package/dist/types/common/src/points.d.ts +9 -0
  14. package/dist/types/common/src/promise-pool.d.ts +6 -0
  15. package/dist/types/common/src/queue.d.ts +9 -0
  16. package/dist/types/common/src/random.d.ts +3 -0
  17. package/dist/types/common/src/url.d.ts +7 -0
  18. package/dist/types/common/src/utility-types.d.ts +37 -0
  19. package/dist/types/common/src/utils.d.ts +283 -0
  20. package/dist/types/common/src/visualdebug.d.ts +41 -0
  21. package/dist/types/element/src/Scene.d.ts +80 -0
  22. package/dist/types/element/src/align.d.ts +8 -0
  23. package/dist/types/element/src/binding.d.ts +124 -0
  24. package/dist/types/element/src/bounds.d.ts +85 -0
  25. package/dist/types/element/src/collision.d.ts +36 -0
  26. package/dist/types/element/src/comparisons.d.ts +8 -0
  27. package/dist/types/element/src/containerCache.d.ts +11 -0
  28. package/dist/types/element/src/cropElement.d.ts +19 -0
  29. package/dist/types/element/src/delta.d.ts +228 -0
  30. package/dist/types/element/src/distance.d.ts +3 -0
  31. package/dist/types/element/src/distribute.d.ts +7 -0
  32. package/dist/types/element/src/dragElements.d.ts +33 -0
  33. package/dist/types/element/src/duplicate.d.ts +63 -0
  34. package/dist/types/element/src/elbowArrow.d.ts +17 -0
  35. package/dist/types/element/src/elementLink.d.ts +13 -0
  36. package/dist/types/element/src/embeddable.d.ts +10 -0
  37. package/dist/types/element/src/flowchart.d.ts +26 -0
  38. package/dist/types/element/src/fractionalIndex.d.ts +57 -0
  39. package/dist/types/element/src/frame.d.ts +74 -0
  40. package/dist/types/element/src/groups.d.ts +34 -0
  41. package/dist/types/element/src/heading.d.ts +16 -0
  42. package/dist/types/element/src/image.d.ts +22 -0
  43. package/dist/types/element/src/index.d.ts +56 -0
  44. package/dist/types/element/src/linearElementEditor.d.ts +113 -0
  45. package/dist/types/element/src/mutateElement.d.ts +23 -0
  46. package/dist/types/element/src/newElement.d.ts +62 -0
  47. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  48. package/dist/types/element/src/renderElement.d.ts +25 -0
  49. package/dist/types/element/src/resizeElements.d.ts +32 -0
  50. package/dist/types/element/src/resizeTest.d.ts +16 -0
  51. package/dist/types/element/src/selection.d.ts +34 -0
  52. package/dist/types/element/src/shape.d.ts +43 -0
  53. package/dist/types/element/src/showSelectedShapeActions.d.ts +3 -0
  54. package/dist/types/element/src/sizeHelpers.d.ts +35 -0
  55. package/dist/types/element/src/sortElements.d.ts +2 -0
  56. package/dist/types/element/src/store.d.ts +237 -0
  57. package/dist/types/element/src/textElement.d.ts +40 -0
  58. package/dist/types/element/src/textMeasurements.d.ts +39 -0
  59. package/dist/types/element/src/textWrapping.d.ts +13 -0
  60. package/dist/types/element/src/transform.d.ts +81 -0
  61. package/dist/types/element/src/transformHandles.d.ts +36 -0
  62. package/dist/types/element/src/typeChecks.d.ts +54 -0
  63. package/dist/types/element/src/types.d.ts +303 -0
  64. package/dist/types/element/src/utils.d.ts +34 -0
  65. package/dist/types/element/src/zindex.d.ts +13 -0
  66. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +482 -0
  67. package/dist/types/excalidraw/actions/actionAlign.d.ts +109 -0
  68. package/dist/types/excalidraw/actions/actionBoundText.d.ts +358 -0
  69. package/dist/types/excalidraw/actions/actionCanvas.d.ts +2047 -0
  70. package/dist/types/excalidraw/actions/actionClipboard.d.ts +397 -0
  71. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +173 -0
  72. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +516 -0
  73. package/dist/types/excalidraw/actions/actionDistribute.d.ts +34 -0
  74. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +17 -0
  75. package/dist/types/excalidraw/actions/actionElementLink.d.ts +193 -0
  76. package/dist/types/excalidraw/actions/actionElementLock.d.ts +344 -0
  77. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +170 -0
  78. package/dist/types/excalidraw/actions/actionExport.d.ts +679 -0
  79. package/dist/types/excalidraw/actions/actionFinalize.d.ts +13 -0
  80. package/dist/types/excalidraw/actions/actionFlip.d.ts +34 -0
  81. package/dist/types/excalidraw/actions/actionFrame.d.ts +1282 -0
  82. package/dist/types/excalidraw/actions/actionGroup.d.ts +348 -0
  83. package/dist/types/excalidraw/actions/actionHistory.d.ts +6 -0
  84. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +794 -0
  85. package/dist/types/excalidraw/actions/actionLink.d.ts +174 -0
  86. package/dist/types/excalidraw/actions/actionMenu.d.ts +162 -0
  87. package/dist/types/excalidraw/actions/actionNavigate.d.ts +20 -0
  88. package/dist/types/excalidraw/actions/actionProperties.d.ts +400 -0
  89. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +169 -0
  90. package/dist/types/excalidraw/actions/actionStyles.d.ts +187 -0
  91. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +17 -0
  92. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +176 -0
  93. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +174 -0
  94. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +165 -0
  95. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +19 -0
  96. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +173 -0
  97. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +174 -0
  98. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +174 -0
  99. package/dist/types/excalidraw/actions/actionZindex.d.ts +74 -0
  100. package/dist/types/excalidraw/actions/index.d.ts +28 -0
  101. package/dist/types/excalidraw/actions/manager.d.ts +21 -0
  102. package/dist/types/excalidraw/actions/register.d.ts +5 -0
  103. package/dist/types/excalidraw/actions/shortcuts.d.ts +4 -0
  104. package/dist/types/excalidraw/actions/types.d.ts +47 -0
  105. package/dist/types/excalidraw/analytics.d.ts +1 -0
  106. package/dist/types/excalidraw/animated-trail.d.ts +39 -0
  107. package/dist/types/excalidraw/animation-frame-handler.d.ts +16 -0
  108. package/dist/types/excalidraw/appState.d.ts +101 -0
  109. package/dist/types/excalidraw/charts.d.ts +27 -0
  110. package/dist/types/excalidraw/clients.d.ts +14 -0
  111. package/dist/types/excalidraw/clipboard.d.ts +105 -0
  112. package/dist/types/excalidraw/components/Actions.d.ts +47 -0
  113. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +4 -0
  114. package/dist/types/excalidraw/components/App.d.ts +562 -0
  115. package/dist/types/excalidraw/components/Avatar.d.ts +11 -0
  116. package/dist/types/excalidraw/components/BraveMeasureTextError.d.ts +2 -0
  117. package/dist/types/excalidraw/components/Button.d.ts +17 -0
  118. package/dist/types/excalidraw/components/ButtonIcon.d.ts +16 -0
  119. package/dist/types/excalidraw/components/ButtonSeparator.d.ts +1 -0
  120. package/dist/types/excalidraw/components/Card.d.ts +6 -0
  121. package/dist/types/excalidraw/components/CheckboxItem.d.ts +8 -0
  122. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +13 -0
  123. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +22 -0
  124. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +8 -0
  125. package/dist/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +7 -0
  126. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +19 -0
  127. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +10 -0
  128. package/dist/types/excalidraw/components/ColorPicker/PickerHeading.d.ts +5 -0
  129. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +9 -0
  130. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +9 -0
  131. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +21 -0
  132. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +20 -0
  133. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +19 -0
  134. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +2 -0
  135. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +24 -0
  136. package/dist/types/excalidraw/components/ConfirmDialog.d.ts +10 -0
  137. package/dist/types/excalidraw/components/ContextMenu.d.ts +16 -0
  138. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +23 -0
  139. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +7 -0
  140. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +27 -0
  141. package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +4 -0
  142. package/dist/types/excalidraw/components/Dialog.d.ts +13 -0
  143. package/dist/types/excalidraw/components/DialogActionButton.d.ts +10 -0
  144. package/dist/types/excalidraw/components/ElementCanvasButtons.d.ts +7 -0
  145. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +12 -0
  146. package/dist/types/excalidraw/components/Ellipsify.d.ts +3 -0
  147. package/dist/types/excalidraw/components/ErrorDialog.d.ts +5 -0
  148. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +15 -0
  149. package/dist/types/excalidraw/components/EyeDropper.d.ts +27 -0
  150. package/dist/types/excalidraw/components/FilledButton.d.ts +18 -0
  151. package/dist/types/excalidraw/components/FixedSideContainer.d.ts +9 -0
  152. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +10 -0
  153. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +22 -0
  154. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +26 -0
  155. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +8 -0
  156. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +13 -0
  157. package/dist/types/excalidraw/components/HandButton.d.ts +10 -0
  158. package/dist/types/excalidraw/components/HelpButton.d.ts +7 -0
  159. package/dist/types/excalidraw/components/HelpDialog.d.ts +4 -0
  160. package/dist/types/excalidraw/components/HintViewer.d.ts +11 -0
  161. package/dist/types/excalidraw/components/IconPicker.d.ts +15 -0
  162. package/dist/types/excalidraw/components/ImageExportDialog.d.ts +14 -0
  163. package/dist/types/excalidraw/components/InitializeApp.d.ts +10 -0
  164. package/dist/types/excalidraw/components/InlineIcon.d.ts +5 -0
  165. package/dist/types/excalidraw/components/Island.d.ts +10 -0
  166. package/dist/types/excalidraw/components/JSONExportDialog.d.ts +15 -0
  167. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +10 -0
  168. package/dist/types/excalidraw/components/LayerUI.d.ts +32 -0
  169. package/dist/types/excalidraw/components/LibraryMenu.d.ts +10 -0
  170. package/dist/types/excalidraw/components/LibraryMenuBrowseButton.d.ts +7 -0
  171. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +9 -0
  172. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +17 -0
  173. package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +14 -0
  174. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +23 -0
  175. package/dist/types/excalidraw/components/LibraryUnit.d.ts +14 -0
  176. package/dist/types/excalidraw/components/LoadingMessage.d.ts +5 -0
  177. package/dist/types/excalidraw/components/LockButton.d.ts +10 -0
  178. package/dist/types/excalidraw/components/MagicButton.d.ts +10 -0
  179. package/dist/types/excalidraw/components/MobileMenu.d.ts +23 -0
  180. package/dist/types/excalidraw/components/MobileToolBar.d.ts +10 -0
  181. package/dist/types/excalidraw/components/Modal.d.ts +11 -0
  182. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
  183. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
  184. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
  185. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +8 -0
  186. package/dist/types/excalidraw/components/PenModeButton.d.ts +12 -0
  187. package/dist/types/excalidraw/components/Popover.d.ts +16 -0
  188. package/dist/types/excalidraw/components/ProjectName.d.ts +10 -0
  189. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +16 -0
  190. package/dist/types/excalidraw/components/PublishLibrary.d.ts +16 -0
  191. package/dist/types/excalidraw/components/QuickSearch.d.ts +9 -0
  192. package/dist/types/excalidraw/components/RadioGroup.d.ts +13 -0
  193. package/dist/types/excalidraw/components/RadioSelection.d.ts +20 -0
  194. package/dist/types/excalidraw/components/Range.d.ts +8 -0
  195. package/dist/types/excalidraw/components/SVGLayer.d.ts +7 -0
  196. package/dist/types/excalidraw/components/ScrollableList.d.ts +8 -0
  197. package/dist/types/excalidraw/components/SearchMenu.d.ts +5 -0
  198. package/dist/types/excalidraw/components/Section.d.ts +6 -0
  199. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +70 -0
  200. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +7 -0
  201. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +8 -0
  202. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +9 -0
  203. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +6 -0
  204. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +6 -0
  205. package/dist/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +6 -0
  206. package/dist/types/excalidraw/components/Sidebar/common.d.ts +34 -0
  207. package/dist/types/excalidraw/components/Spinner.d.ts +8 -0
  208. package/dist/types/excalidraw/components/Stack.d.ts +15 -0
  209. package/dist/types/excalidraw/components/Stats/Angle.d.ts +11 -0
  210. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +10 -0
  211. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +10 -0
  212. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +11 -0
  213. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +44 -0
  214. package/dist/types/excalidraw/components/Stats/FontSize.d.ts +11 -0
  215. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +11 -0
  216. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +14 -0
  217. package/dist/types/excalidraw/components/Stats/MultiFontSize.d.ts +12 -0
  218. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +14 -0
  219. package/dist/types/excalidraw/components/Stats/Position.d.ts +12 -0
  220. package/dist/types/excalidraw/components/Stats/index.d.ts +35 -0
  221. package/dist/types/excalidraw/components/Stats/utils.d.ts +19 -0
  222. package/dist/types/excalidraw/components/Switch.d.ts +9 -0
  223. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +6 -0
  224. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +29 -0
  225. package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +9 -0
  226. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +7 -0
  227. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +17 -0
  228. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +4 -0
  229. package/dist/types/excalidraw/components/TTDDialog/TTDDialogSubmitShortcut.d.ts +1 -0
  230. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +7 -0
  231. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +8 -0
  232. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +6 -0
  233. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +11 -0
  234. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +8 -0
  235. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +32 -0
  236. package/dist/types/excalidraw/components/TextField.d.ts +22 -0
  237. package/dist/types/excalidraw/components/Toast.d.ts +9 -0
  238. package/dist/types/excalidraw/components/ToolButton.d.ts +49 -0
  239. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  240. package/dist/types/excalidraw/components/Tooltip.d.ts +18 -0
  241. package/dist/types/excalidraw/components/Trans.d.ts +9 -0
  242. package/dist/types/excalidraw/components/UnlockPopup.d.ts +8 -0
  243. package/dist/types/excalidraw/components/UserList.d.ts +18 -0
  244. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +33 -0
  245. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +14 -0
  246. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +19 -0
  247. package/dist/types/excalidraw/components/canvases/index.d.ts +3 -0
  248. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +84 -0
  249. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +16 -0
  250. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
  251. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +38 -0
  252. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +8 -0
  253. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +17 -0
  254. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -0
  255. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +16 -0
  256. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
  257. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -0
  258. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +6 -0
  259. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
  260. package/dist/types/excalidraw/components/footer/Footer.d.ts +12 -0
  261. package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +8 -0
  262. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +4 -0
  263. package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +19 -0
  264. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +10 -0
  265. package/dist/types/excalidraw/components/icons.d.ts +239 -0
  266. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +11 -0
  267. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +64 -0
  268. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +78 -0
  269. package/dist/types/excalidraw/components/shapes.d.ts +262 -0
  270. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +58 -0
  271. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
  272. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +84 -0
  273. package/dist/types/excalidraw/context/tunnels.d.ts +21 -0
  274. package/dist/types/excalidraw/context/ui-appState.d.ts +4 -0
  275. package/dist/types/excalidraw/cursor.d.ts +5 -0
  276. package/dist/types/excalidraw/data/EditorLocalStorage.d.ts +8 -0
  277. package/dist/types/excalidraw/data/blob.d.ts +367 -0
  278. package/dist/types/excalidraw/data/encode.d.ts +55 -0
  279. package/dist/types/excalidraw/data/encryption.d.ts +9 -0
  280. package/dist/types/excalidraw/data/filesystem.d.ts +21 -0
  281. package/dist/types/excalidraw/data/image.d.ts +9 -0
  282. package/dist/types/excalidraw/data/index.d.ts +22 -0
  283. package/dist/types/excalidraw/data/json.d.ts +173 -0
  284. package/dist/types/excalidraw/data/library.d.ts +127 -0
  285. package/dist/types/excalidraw/data/reconcile.d.ts +7 -0
  286. package/dist/types/excalidraw/data/resave.d.ts +5 -0
  287. package/dist/types/excalidraw/data/restore.d.ts +41 -0
  288. package/dist/types/excalidraw/data/types.d.ts +48 -0
  289. package/dist/types/excalidraw/deburr.d.ts +1 -0
  290. package/dist/types/excalidraw/editor-jotai.d.ts +56 -0
  291. package/dist/types/excalidraw/eraser/index.d.ts +12 -0
  292. package/dist/types/excalidraw/errors.d.ts +29 -0
  293. package/dist/types/excalidraw/fonts/Cascadia/index.d.ts +2 -0
  294. package/dist/types/excalidraw/fonts/ComicShanns/index.d.ts +2 -0
  295. package/dist/types/excalidraw/fonts/Emoji/index.d.ts +2 -0
  296. package/dist/types/excalidraw/fonts/ExcalidrawFontFace.d.ts +25 -0
  297. package/dist/types/excalidraw/fonts/Excalifont/index.d.ts +2 -0
  298. package/dist/types/excalidraw/fonts/Fonts.d.ts +79 -0
  299. package/dist/types/excalidraw/fonts/Helvetica/index.d.ts +2 -0
  300. package/dist/types/excalidraw/fonts/Liberation/index.d.ts +2 -0
  301. package/dist/types/excalidraw/fonts/Lilita/index.d.ts +2 -0
  302. package/dist/types/excalidraw/fonts/Nunito/index.d.ts +2 -0
  303. package/dist/types/excalidraw/fonts/Virgil/index.d.ts +2 -0
  304. package/dist/types/excalidraw/fonts/Xiaolai/index.d.ts +8 -0
  305. package/dist/types/excalidraw/fonts/index.d.ts +1 -0
  306. package/dist/types/excalidraw/gesture.d.ts +6 -0
  307. package/dist/types/excalidraw/history.d.ts +48 -0
  308. package/dist/types/excalidraw/hooks/useCallbackRefState.d.ts +1 -0
  309. package/dist/types/excalidraw/hooks/useCopiedIndicator.d.ts +5 -0
  310. package/dist/types/excalidraw/hooks/useCreatePortalContainer.d.ts +4 -0
  311. package/dist/types/excalidraw/hooks/useEmitter.d.ts +2 -0
  312. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +11 -0
  313. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +21 -0
  314. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -0
  315. package/dist/types/excalidraw/hooks/useStable.d.ts +1 -0
  316. package/dist/types/excalidraw/hooks/useStableCallback.d.ts +4 -0
  317. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  318. package/dist/types/excalidraw/hooks/useTransition.d.ts +2 -0
  319. package/dist/types/excalidraw/i18n.d.ts +24 -0
  320. package/dist/types/excalidraw/index.d.ts +44 -0
  321. package/dist/types/excalidraw/laser-trails.d.ts +20 -0
  322. package/dist/types/excalidraw/lasso/index.d.ts +16 -0
  323. package/dist/types/excalidraw/lasso/utils.d.ts +13 -0
  324. package/dist/types/excalidraw/mermaid.d.ts +2 -0
  325. package/dist/types/excalidraw/polyfill.d.ts +2 -0
  326. package/dist/types/excalidraw/reactUtils.d.ts +14 -0
  327. package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
  328. package/dist/types/excalidraw/renderer/helpers.d.ts +16 -0
  329. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +14 -0
  330. package/dist/types/excalidraw/renderer/renderNewElementScene.d.ts +7 -0
  331. package/dist/types/excalidraw/renderer/renderSnaps.d.ts +2 -0
  332. package/dist/types/excalidraw/renderer/roundRect.d.ts +11 -0
  333. package/dist/types/excalidraw/renderer/staticScene.d.ts +14 -0
  334. package/dist/types/excalidraw/renderer/staticSvgScene.d.ts +5 -0
  335. package/dist/types/excalidraw/scene/Renderer.d.ts +30 -0
  336. package/dist/types/excalidraw/scene/export.d.ts +36 -0
  337. package/dist/types/excalidraw/scene/index.d.ts +4 -0
  338. package/dist/types/excalidraw/scene/normalize.d.ts +4 -0
  339. package/dist/types/excalidraw/scene/scroll.d.ts +18 -0
  340. package/dist/types/excalidraw/scene/scrollbars.d.ts +11 -0
  341. package/dist/types/excalidraw/scene/types.d.ts +141 -0
  342. package/dist/types/excalidraw/scene/zoom.d.ts +12 -0
  343. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  344. package/dist/types/excalidraw/snapping.d.ts +111 -0
  345. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +45 -0
  346. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +13 -0
  347. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +2 -0
  348. package/dist/types/excalidraw/subset/subset-main.d.ts +12 -0
  349. package/dist/types/excalidraw/subset/subset-shared.chunk.d.ts +32 -0
  350. package/dist/types/excalidraw/subset/subset-worker.chunk.d.ts +15 -0
  351. package/dist/types/excalidraw/subset/woff2/woff2-bindings.d.ts +31 -0
  352. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +14 -0
  353. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +2 -0
  354. package/dist/types/excalidraw/types.d.ts +719 -0
  355. package/dist/types/excalidraw/workers.d.ts +36 -0
  356. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +24 -0
  357. package/dist/types/math/src/angle.d.ts +19 -0
  358. package/dist/types/math/src/constants.d.ts +3 -0
  359. package/dist/types/math/src/curve.d.ts +74 -0
  360. package/dist/types/math/src/ellipse.d.ts +44 -0
  361. package/dist/types/math/src/index.d.ts +13 -0
  362. package/dist/types/math/src/line.d.ts +17 -0
  363. package/dist/types/math/src/point.d.ts +122 -0
  364. package/dist/types/math/src/polygon.d.ts +6 -0
  365. package/dist/types/math/src/range.d.ts +42 -0
  366. package/dist/types/math/src/rectangle.d.ts +5 -0
  367. package/dist/types/math/src/segment.d.ts +40 -0
  368. package/dist/types/math/src/triangle.d.ts +11 -0
  369. package/dist/types/math/src/types.d.ts +106 -0
  370. package/dist/types/math/src/utils.d.ts +7 -0
  371. package/dist/types/math/src/vector.d.ts +94 -0
  372. package/dist/types/utils/src/bbox.d.ts +9 -0
  373. package/dist/types/utils/src/export.d.ts +35 -0
  374. package/dist/types/utils/src/index.d.ts +4 -0
  375. package/dist/types/utils/src/shape.d.ts +58 -0
  376. package/dist/types/utils/src/withinBounds.d.ts +19 -0
  377. package/package.json +3 -3
@@ -0,0 +1,4 @@
1
+ var Qe=Object.create;var ae=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var et=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty;var rt=(e,t)=>()=>(e&&(t=e(e=0)),t);var se=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ot=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of et(t))!nt.call(e,o)&&o!==n&&ae(e,o,{get:()=>t[o],enumerable:!(r=Je(t,o))||r.enumerable});return e};var ie=(e,t,n)=>(n=e!=null?Qe(tt(e)):{},ot(t||!e||!e.__esModule?ae(n,"default",{value:e,enumerable:!0}):n,e));var h,f=rt(()=>{h={PROD:!0}});var Ue=se((te,ke)=>{f();(function(e,t){typeof define=="function"&&define.amd?define([],t):typeof te=="object"?ke.exports=t():(e.PromisePool=t(),e.promisePool=e.PromisePool)})(te,function(){"use strict";var e=function(){this._listeners={}};e.prototype.addEventListener=function(s,l){this._listeners[s]=this._listeners[s]||[],this._listeners[s].indexOf(l)<0&&this._listeners[s].push(l)},e.prototype.removeEventListener=function(s,l){if(this._listeners[s]){var c=this._listeners[s].indexOf(l);c>=0&&this._listeners[s].splice(c,1)}},e.prototype.dispatchEvent=function(s){if(this._listeners[s.type]&&this._listeners[s.type].length)for(var l=this._listeners[s.type].slice(),c=0,p=l.length;c<p;++c)l[c].call(this,s)};var t=function(s){return typeof s.constructor=="function"&&s.constructor.name==="GeneratorFunction"},n=function(s){return{next:function(){var l=s();return l?{value:l}:{done:!0}}}},r=function(s){var l=!1;return{next:function(){return l?{done:!0}:(l=!0,{value:s})}}},o=function(s,l){var c=typeof s;if(c==="object"){if(typeof s.next=="function")return s;if(typeof s.then=="function")return r(s)}return c==="function"?t(s)?s():n(s):r(l.resolve(s))},a=function(s,l,c){this.target=s,this.type=l,this.data=c},i=function(s,l,c){if(e.call(this),typeof l!="number"||Math.floor(l)!==l||l<1)throw new Error("Invalid concurrency");this._concurrency=l,this._options=c||{},this._options.promise=this._options.promise||Promise,this._iterator=o(s,this._options.promise),this._done=!1,this._size=0,this._promise=null,this._callbacks=null};return i.prototype=new e,i.prototype.constructor=i,i.prototype.concurrency=function(s){return typeof s<"u"&&(this._concurrency=s,this.active()&&this._proceed()),this._concurrency},i.prototype.size=function(){return this._size},i.prototype.active=function(){return!!this._promise},i.prototype.promise=function(){return this._promise},i.prototype.start=function(){var s=this,l=this._options.promise;return this._promise=new l(function(c,p){s._callbacks={reject:p,resolve:c},s._proceed()}),this._promise},i.prototype._fireEvent=function(s,l){this.dispatchEvent(new a(this,s,l))},i.prototype._settle=function(s){s?this._callbacks.reject(s):this._callbacks.resolve(),this._promise=null,this._callbacks=null},i.prototype._onPooledPromiseFulfilled=function(s,l){this._size--,this.active()&&(this._fireEvent("fulfilled",{promise:s,result:l}),this._proceed())},i.prototype._onPooledPromiseRejected=function(s,l){this._size--,this.active()&&(this._fireEvent("rejected",{promise:s,error:l}),this._settle(l||new Error("Unknown error")))},i.prototype._trackPromise=function(s){var l=this;s.then(function(c){l._onPooledPromiseFulfilled(s,c)},function(c){l._onPooledPromiseRejected(s,c)}).catch(function(c){l._settle(new Error("Promise processing failed: "+c))})},i.prototype._proceed=function(){if(!this._done){for(var s={done:!1};this._size<this._concurrency&&!(s=this._iterator.next()).done;)this._size++,this._trackPromise(s.value);this._done=s===null||!!s.done}this._done&&this._size===0&&this._settle()},i.PromisePoolEvent=a,i.PromisePool=i,i})});var $e=se($=>{"use strict";f();Object.defineProperty($,"__esModule",{value:!0});$.sanitizeUrl=void 0;var fn=/^([^\w]*)(javascript|data|vbscript)/im,dn=/&#(\w+)(^\w|;)?/g,pn=/&(newline|tab);/gi,mn=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,hn=/^.+(:|&colon;)/gim,bn=[".","/"];function gn(e){return bn.indexOf(e[0])>-1}function Tn(e){return e.replace(dn,function(t,n){return String.fromCharCode(n)})}function En(e){var t=Tn(e||"").replace(pn,"").replace(mn,"").trim();if(!t)return"about:blank";if(gn(t))return t;var n=t.match(hn);if(!n)return t;var r=n[0];return fn.test(r)?"about:blank":t}$.sanitizeUrl=En});f();f();var le=class{constructor(t){this.scoreFunction=t}content=[];sinkDown(t){let n=this.content[t],r=this.scoreFunction(n);for(;t>0;){let o=(t+1>>1)-1,a=this.content[o];if(r<this.scoreFunction(a))this.content[t]=a,t=o;else break}this.content[t]=n}bubbleUp(t){let n=this.content.length,r=this.content[t],o=this.scoreFunction(r);for(;;){let a=(t+1<<1)-1,i=a+1,s=t,l=o;if(a<n){let c=this.scoreFunction(this.content[a]);c<l&&(s=a,l=c)}if(i<n&&this.scoreFunction(this.content[i])<l&&(s=i),s===t)break;this.content[t]=this.content[s],t=s}this.content[t]=r}push(t){this.content.push(t),this.sinkDown(this.content.length-1)}pop(){if(this.content.length===0)return null;let t=this.content[0],n=this.content.pop();return this.content.length>0&&(this.content[0]=n,this.bubbleUp(0)),t}remove(t){if(this.content.length===0)return;let n=this.content.indexOf(t),r=this.content.pop();n<this.content.length&&(this.content[n]=r,this.scoreFunction(r)<this.scoreFunction(t)?this.sinkDown(n):this.bubbleUp(n))}size(){return this.content.length}rescoreElement(t){this.sinkDown(this.content.indexOf(t))}};f();var ce=e=>Array.isArray(e)&&e.length===4&&typeof e[0]=="number"&&typeof e[1]=="number"&&typeof e[2]=="number"&&typeof e[3]=="number";f();var ue={white:"#ffffff",black:"#000000",gray:["#f8f9fa","#f1f3f5","#e9ecef","#dee2e6","#ced4da","#adb5bd","#868e96","#495057","#343a40","#212529"],red:["#fff5f5","#ffe3e3","#ffc9c9","#ffa8a8","#ff8787","#ff6b6b","#fa5252","#f03e3e","#e03131","#c92a2a"],pink:["#fff0f6","#ffdeeb","#fcc2d7","#faa2c1","#f783ac","#f06595","#e64980","#d6336c","#c2255c","#a61e4d"],grape:["#f8f0fc","#f3d9fa","#eebefa","#e599f7","#da77f2","#cc5de8","#be4bdb","#ae3ec9","#9c36b5","#862e9c"],violet:["#f3f0ff","#e5dbff","#d0bfff","#b197fc","#9775fa","#845ef7","#7950f2","#7048e8","#6741d9","#5f3dc4"],indigo:["#edf2ff","#dbe4ff","#bac8ff","#91a7ff","#748ffc","#5c7cfa","#4c6ef5","#4263eb","#3b5bdb","#364fc7"],blue:["#e7f5ff","#d0ebff","#a5d8ff","#74c0fc","#4dabf7","#339af0","#228be6","#1c7ed6","#1971c2","#1864ab"],cyan:["#e3fafc","#c5f6fa","#99e9f2","#66d9e8","#3bc9db","#22b8cf","#15aabf","#1098ad","#0c8599","#0b7285"],teal:["#e6fcf5","#c3fae8","#96f2d7","#63e6be","#38d9a9","#20c997","#12b886","#0ca678","#099268","#087f5b"],green:["#ebfbee","#d3f9d8","#b2f2bb","#8ce99a","#69db7c","#51cf66","#40c057","#37b24d","#2f9e44","#2b8a3e"],lime:["#f4fce3","#e9fac8","#d8f5a2","#c0eb75","#a9e34b","#94d82d","#82c91e","#74b816","#66a80f","#5c940d"],yellow:["#fff9db","#fff3bf","#ffec99","#ffe066","#ffd43b","#fcc419","#fab005","#f59f00","#f08c00","#e67700"],orange:["#fff4e6","#ffe8cc","#ffd8a8","#ffc078","#ffa94d","#ff922b","#fd7e14","#f76707","#e8590c","#d9480f"]};f();function B(e){"@babel/helpers - typeof";return B=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},B(e)}var it=/^\s+/,lt=/\s+$/;function u(e,t){if(e=e||"",t=t||{},e instanceof u)return e;if(!(this instanceof u))return new u(e,t);var n=ct(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}u.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},getLuminance:function(){var t=this.toRgb(),n,r,o,a,i,s;return n=t.r/255,r=t.g/255,o=t.b/255,n<=.03928?a=n/12.92:a=Math.pow((n+.055)/1.055,2.4),r<=.03928?i=r/12.92:i=Math.pow((r+.055)/1.055,2.4),o<=.03928?s=o/12.92:s=Math.pow((o+.055)/1.055,2.4),.2126*a+.7152*i+.0722*s},setAlpha:function(t){return this._a=ge(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=de(this._r,this._g,this._b);return{h:t.h*360,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=de(this._r,this._g,this._b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.v*100);return this._a==1?"hsv("+n+", "+r+"%, "+o+"%)":"hsva("+n+", "+r+"%, "+o+"%, "+this._roundA+")"},toHsl:function(){var t=fe(this._r,this._g,this._b);return{h:t.h*360,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=fe(this._r,this._g,this._b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.l*100);return this._a==1?"hsl("+n+", "+r+"%, "+o+"%)":"hsla("+n+", "+r+"%, "+o+"%, "+this._roundA+")"},toHex:function(t){return pe(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return pt(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(b(this._r,255)*100)+"%",g:Math.round(b(this._g,255)*100)+"%",b:Math.round(b(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+Math.round(b(this._r,255)*100)+"%, "+Math.round(b(this._g,255)*100)+"%, "+Math.round(b(this._b,255)*100)+"%)":"rgba("+Math.round(b(this._r,255)*100)+"%, "+Math.round(b(this._g,255)*100)+"%, "+Math.round(b(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:St[pe(this._r,this._g,this._b,!0)]||!1},toFilter:function(t){var n="#"+me(this._r,this._g,this._b,this._a),r=n,o=this._gradientType?"GradientType = 1, ":"";if(t){var a=u(t);r="#"+me(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+o+"startColorstr="+n+",endColorstr="+r+")"},toString:function(t){var n=!!t;t=t||this._format;var r=!1,o=this._a<1&&this._a>=0,a=!n&&o&&(t==="hex"||t==="hex6"||t==="hex3"||t==="hex4"||t==="hex8"||t==="name");return a?t==="name"&&this._a===0?this.toName():this.toRgbString():(t==="rgb"&&(r=this.toRgbString()),t==="prgb"&&(r=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(r=this.toHexString()),t==="hex3"&&(r=this.toHexString(!0)),t==="hex4"&&(r=this.toHex8String(!0)),t==="hex8"&&(r=this.toHex8String()),t==="name"&&(r=this.toName()),t==="hsl"&&(r=this.toHslString()),t==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},clone:function(){return u(this.toString())},_applyModification:function(t,n){var r=t.apply(null,[this].concat([].slice.call(n)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(gt,arguments)},brighten:function(){return this._applyModification(Tt,arguments)},darken:function(){return this._applyModification(Et,arguments)},desaturate:function(){return this._applyModification(mt,arguments)},saturate:function(){return this._applyModification(ht,arguments)},greyscale:function(){return this._applyModification(bt,arguments)},spin:function(){return this._applyModification(_t,arguments)},_applyCombination:function(t,n){return t.apply(null,[this].concat([].slice.call(n)))},analogous:function(){return this._applyCombination(At,arguments)},complement:function(){return this._applyCombination(xt,arguments)},monochromatic:function(){return this._applyCombination(vt,arguments)},splitcomplement:function(){return this._applyCombination(yt,arguments)},triad:function(){return this._applyCombination(he,[3])},tetrad:function(){return this._applyCombination(he,[4])}};u.fromRatio=function(e,t){if(B(e)=="object"){var n={};for(var r in e)e.hasOwnProperty(r)&&(r==="a"?n[r]=e[r]:n[r]=D(e[r]));e=n}return u(e,t)};function ct(e){var t={r:0,g:0,b:0},n=1,r=null,o=null,a=null,i=!1,s=!1;return typeof e=="string"&&(e=wt(e)),B(e)=="object"&&(M(e.r)&&M(e.g)&&M(e.b)?(t=ut(e.r,e.g,e.b),i=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):M(e.h)&&M(e.s)&&M(e.v)?(r=D(e.s),o=D(e.v),t=dt(e.h,r,o),i=!0,s="hsv"):M(e.h)&&M(e.s)&&M(e.l)&&(r=D(e.s),a=D(e.l),t=ft(e.h,r,a),i=!0,s="hsl"),e.hasOwnProperty("a")&&(n=e.a)),n=ge(n),{ok:i,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}function ut(e,t,n){return{r:b(e,255)*255,g:b(t,255)*255,b:b(n,255)*255}}function fe(e,t,n){e=b(e,255),t=b(t,255),n=b(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),a,i,s=(r+o)/2;if(r==o)a=i=0;else{var l=r-o;switch(i=s>.5?l/(2-r-o):l/(r+o),r){case e:a=(t-n)/l+(t<n?6:0);break;case t:a=(n-e)/l+2;break;case n:a=(e-t)/l+4;break}a/=6}return{h:a,s:i,l:s}}function ft(e,t,n){var r,o,a;e=b(e,360),t=b(t,100),n=b(n,100);function i(c,p,g){return g<0&&(g+=1),g>1&&(g-=1),g<1/6?c+(p-c)*6*g:g<1/2?p:g<2/3?c+(p-c)*(2/3-g)*6:c}if(t===0)r=o=a=n;else{var s=n<.5?n*(1+t):n+t-n*t,l=2*n-s;r=i(l,s,e+1/3),o=i(l,s,e),a=i(l,s,e-1/3)}return{r:r*255,g:o*255,b:a*255}}function de(e,t,n){e=b(e,255),t=b(t,255),n=b(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),a,i,s=r,l=r-o;if(i=r===0?0:l/r,r==o)a=0;else{switch(r){case e:a=(t-n)/l+(t<n?6:0);break;case t:a=(n-e)/l+2;break;case n:a=(e-t)/l+4;break}a/=6}return{h:a,s:i,v:s}}function dt(e,t,n){e=b(e,360)*6,t=b(t,100),n=b(n,100);var r=Math.floor(e),o=e-r,a=n*(1-t),i=n*(1-o*t),s=n*(1-(1-o)*t),l=r%6,c=[n,i,a,a,s,n][l],p=[s,n,n,i,a,a][l],g=[a,a,s,n,n,i][l];return{r:c*255,g:p*255,b:g*255}}function pe(e,t,n,r){var o=[A(Math.round(e).toString(16)),A(Math.round(t).toString(16)),A(Math.round(n).toString(16))];return r&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0):o.join("")}function pt(e,t,n,r,o){var a=[A(Math.round(e).toString(16)),A(Math.round(t).toString(16)),A(Math.round(n).toString(16)),A(Te(r))];return o&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}function me(e,t,n,r){var o=[A(Te(r)),A(Math.round(e).toString(16)),A(Math.round(t).toString(16)),A(Math.round(n).toString(16))];return o.join("")}u.equals=function(e,t){return!e||!t?!1:u(e).toRgbString()==u(t).toRgbString()};u.random=function(){return u.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})};function mt(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.s-=t/100,n.s=G(n.s),u(n)}function ht(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.s+=t/100,n.s=G(n.s),u(n)}function bt(e){return u(e).desaturate(100)}function gt(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.l+=t/100,n.l=G(n.l),u(n)}function Tt(e,t){t=t===0?0:t||10;var n=u(e).toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),u(n)}function Et(e,t){t=t===0?0:t||10;var n=u(e).toHsl();return n.l-=t/100,n.l=G(n.l),u(n)}function _t(e,t){var n=u(e).toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,u(n)}function xt(e){var t=u(e).toHsl();return t.h=(t.h+180)%360,u(t)}function he(e,t){if(isNaN(t)||t<=0)throw new Error("Argument to polyad must be a positive number");for(var n=u(e).toHsl(),r=[u(e)],o=360/t,a=1;a<t;a++)r.push(u({h:(n.h+a*o)%360,s:n.s,l:n.l}));return r}function yt(e){var t=u(e).toHsl(),n=t.h;return[u(e),u({h:(n+72)%360,s:t.s,l:t.l}),u({h:(n+216)%360,s:t.s,l:t.l})]}function At(e,t,n){t=t||6,n=n||30;var r=u(e).toHsl(),o=360/n,a=[u(e)];for(r.h=(r.h-(o*t>>1)+720)%360;--t;)r.h=(r.h+o)%360,a.push(u(r));return a}function vt(e,t){t=t||6;for(var n=u(e).toHsv(),r=n.h,o=n.s,a=n.v,i=[],s=1/t;t--;)i.push(u({h:r,s:o,v:a})),a=(a+s)%1;return i}u.mix=function(e,t,n){n=n===0?0:n||50;var r=u(e).toRgb(),o=u(t).toRgb(),a=n/100,i={r:(o.r-r.r)*a+r.r,g:(o.g-r.g)*a+r.g,b:(o.b-r.b)*a+r.b,a:(o.a-r.a)*a+r.a};return u(i)};u.readability=function(e,t){var n=u(e),r=u(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)};u.isReadable=function(e,t,n){var r=u.readability(e,t),o,a;switch(a=!1,o=Ot(n),o.level+o.size){case"AAsmall":case"AAAlarge":a=r>=4.5;break;case"AAlarge":a=r>=3;break;case"AAAsmall":a=r>=7;break}return a};u.mostReadable=function(e,t,n){var r=null,o=0,a,i,s,l;n=n||{},i=n.includeFallbackColors,s=n.level,l=n.size;for(var c=0;c<t.length;c++)a=u.readability(e,t[c]),a>o&&(o=a,r=u(t[c]));return u.isReadable(e,r,{level:s,size:l})||!i?r:(n.includeFallbackColors=!1,u.mostReadable(e,["#fff","#000"],n))};var Q=u.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},St=u.hexNames=Mt(Q);function Mt(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function ge(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function b(e,t){Rt(e)&&(e="100%");var n=Lt(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function G(e){return Math.min(1,Math.max(0,e))}function E(e){return parseInt(e,16)}function Rt(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function Lt(e){return typeof e=="string"&&e.indexOf("%")!=-1}function A(e){return e.length==1?"0"+e:""+e}function D(e){return e<=1&&(e=e*100+"%"),e}function Te(e){return Math.round(parseFloat(e)*255).toString(16)}function be(e){return E(e)/255}var y=function(){var e="[-\\+]?\\d+%?",t="[-\\+]?\\d*\\.\\d+%?",n="(?:"+t+")|(?:"+e+")",r="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?",o="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?";return{CSS_UNIT:new RegExp(n),rgb:new RegExp("rgb"+r),rgba:new RegExp("rgba"+o),hsl:new RegExp("hsl"+r),hsla:new RegExp("hsla"+o),hsv:new RegExp("hsv"+r),hsva:new RegExp("hsva"+o),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function M(e){return!!y.CSS_UNIT.exec(e)}function wt(e){e=e.replace(it,"").replace(lt,"").toLowerCase();var t=!1;if(Q[e])e=Q[e],t=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=y.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=y.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=y.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=y.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=y.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=y.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=y.hex8.exec(e))?{r:E(n[1]),g:E(n[2]),b:E(n[3]),a:be(n[4]),format:t?"name":"hex8"}:(n=y.hex6.exec(e))?{r:E(n[1]),g:E(n[2]),b:E(n[3]),format:t?"name":"hex"}:(n=y.hex4.exec(e))?{r:E(n[1]+""+n[1]),g:E(n[2]+""+n[2]),b:E(n[3]+""+n[3]),a:be(n[4]+""+n[4]),format:t?"name":"hex8"}:(n=y.hex3.exec(e))?{r:E(n[1]+""+n[1]),g:E(n[2]+""+n[2]),b:E(n[3]+""+n[3]),format:t?"name":"hex"}:!1}function Ot(e){var t,n;return e=e||{level:"AA",size:"small"},t=(e.level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),t!=="AA"&&t!=="AAA"&&(t="AA"),n!=="small"&&n!=="large"&&(n="small"),{level:t,size:n}}import{clamp as Ee}from"@excalidraw/math";import{degreesToRadians as Ft}from"@excalidraw/math";var J=typeof window<"u"?new Map:null;function Ct(e,t,n,r){let o=e/255,a=t/255,i=n/255,s=Ft(r),l=Math.cos(s),c=Math.sin(s),p=[.213+l*.787-c*.213,.715-l*.715-c*.715,.072-l*.072+c*.928,.213-l*.213+c*.143,.715+l*.285+c*.14,.072-l*.072-c*.283,.213-l*.213-c*.787,.715-l*.715+c*.715,.072+l*.928+c*.072],g=o*p[0]+a*p[1]+i*p[2],I=o*p[3]+a*p[4]+i*p[5],x=o*p[6]+a*p[7]+i*p[8];return{r:Math.round(Math.max(0,Math.min(1,g))*255),g:Math.round(Math.max(0,Math.min(1,I))*255),b:Math.round(Math.max(0,Math.min(1,x))*255)}}var It=(e,t,n,r)=>{let o=Ee(r,0,100)/100,a=c=>{let p=c*(1-o)+(255-c)*o;return Math.round(Ee(p,0,255))},i=a(e),s=a(t),l=a(n);return{r:i,g:s,b:l}},kn=e=>{let t=J?.get(e);if(t)return t;let n=u(e),r=n.getAlpha(),o=n.toRgb(),a=It(o.r,o.g,o.b,93),i=Ct(a.r,a.g,a.b,180),s=Dt(i.r,i.g,i.b,r);return J&&J.set(e,s),s},Un=240,Pt=(e,t)=>t.reduce((n,r)=>(r in e&&(n[r]=e[r]),n),{}),Nn=5,Hn=5,Bn=4,K=4,W=1,v=[0,2,4,6,8],Gn=[0,1,2,3,4],S=(e,t)=>t.map(n=>ue[e][n]),d={transparent:"transparent",black:"#1e1e1e",white:"#ffffff",gray:S("gray",v),red:S("red",v),pink:S("pink",v),grape:S("grape",v),violet:S("violet",v),blue:S("blue",v),cyan:S("cyan",v),teal:S("teal",v),green:S("green",v),yellow:S("yellow",v),orange:S("orange",v),bronze:["#f8f1ee","#eaddd7","#d2bab0","#a18072","#846358"]},_e=Pt(d,["cyan","blue","violet","grape","pink","green","teal","yellow","orange","red"]),Kn=[d.black,d.red[K],d.green[K],d.blue[K],d.yellow[K]],Wn=[d.transparent,d.red[W],d.green[W],d.blue[W],d.yellow[W]],Yn=[d.white,"#f8f9fa","#f5faff","#fffce8","#fdf8f6"],Vn={transparent:d.transparent,white:d.white,gray:d.gray,black:d.black,bronze:d.bronze,..._e},zn={transparent:d.transparent,white:d.white,gray:d.gray,black:d.black,bronze:d.bronze,..._e},Xn=e=>[d.cyan[e],d.blue[e],d.violet[e],d.grape[e],d.pink[e],d.green[e],d.teal[e],d.yellow[e],d.orange[e],d.red[e]],Dt=(e,t,n,r)=>{let o=`#${(16777216+(e<<16)+(t<<8)+n).toString(16).slice(1)}`;if(r!==void 0&&r<1){let a=Math.round(r*255).toString(16).padStart(2,"0");return`${o}${a}`}return o};f();var Zn=typeof window<"u"&&"ResizeObserver"in window,Qn="Excalidraw",Jn=36,er=10,tr=20,nr=8,rr=5,or=1,ar=30,sr=Math.PI/12,ir="red",lr={TEXT:"text",CROSSHAIR:"crosshair",GRABBING:"grabbing",GRAB:"grab",POINTER:"pointer",MOVE:"move",AUTO:""},cr={MAIN:0,WHEEL:1,SECONDARY:2,TOUCH:-1,ERASER:5},ur={enabled:"all",disabled:"none",inheritFromUI:"var(--ui-pointerEvents)"},kt=(m=>(m.COPY="copy",m.PASTE="paste",m.CUT="cut",m.KEYDOWN="keydown",m.KEYUP="keyup",m.MOUSE_MOVE="mousemove",m.RESIZE="resize",m.UNLOAD="unload",m.FOCUS="focus",m.BLUR="blur",m.DRAG_OVER="dragover",m.DROP="drop",m.GESTURE_END="gestureend",m.BEFORE_UNLOAD="beforeunload",m.GESTURE_START="gesturestart",m.GESTURE_CHANGE="gesturechange",m.POINTER_MOVE="pointermove",m.POINTER_DOWN="pointerdown",m.POINTER_UP="pointerup",m.STATE_CHANGE="statechange",m.WHEEL="wheel",m.TOUCH_START="touchstart",m.TOUCH_END="touchend",m.HASHCHANGE="hashchange",m.VISIBILITY_CHANGE="visibilitychange",m.SCROLL="scroll",m.EXCALIDRAW_LINK="excalidraw-link",m.MENU_ITEM_SELECT="menu.itemSelect",m.MESSAGE="message",m.FULLSCREENCHANGE="fullscreenchange",m))(kt||{}),fr={UNSTARTED:-1,ENDED:0,PLAYING:1,PAUSED:2,BUFFERING:3,CUED:5},Y={TEST:"test",DEVELOPMENT:"development",PRODUCTION:"production"},dr={SIDEBAR:"sidebar",SHAPE_ACTIONS_MENU:"App-menu__left",ZOOM_ACTIONS:"zoom-actions",SEARCH_MENU_INPUT_WRAPPER:"layer-ui__search-inputWrapper",CONVERT_ELEMENT_TYPE_POPUP:"ConvertElementTypePopup",SHAPE_ACTIONS_THEME_SCOPE:"shape-actions-theme-scope",FRAME_NAME:"frame-name"},pr={sm:16,md:20,lg:28,xl:36},ye="Xiaolai",k="Segoe UI Emoji",T={Virgil:1,Helvetica:2,Cascadia:3,Excalifont:5,Nunito:6,"Lilita One":7,"Comic Shanns":8,"Liberation Sans":9,Assistant:10},Ae="sans-serif",ve="monospace",Ut={[Ae]:998,[ve]:999},ee={[ye]:100,...Ut,[k]:1e3};function Nt(e){switch(e){case T.Cascadia:case T["Comic Shanns"]:return ve;default:return Ae}}var Se=e=>{let t=Nt(e);switch(e){case T.Excalifont:return[ye,t,k];default:return[t,k]}},mr={LIGHT:"light",DARK:"dark"},hr={strokeColor:"#bbb",strokeWidth:2,strokeStyle:"solid",fillStyle:"solid",roughness:0,roundness:null,backgroundColor:"transparent",radius:8,nameOffsetY:3,nameColorLightTheme:"#999999",nameColorDarkTheme:"#7a7a7a",nameFontSize:14,nameLineHeight:1.25},br=1,gr=20,Tr=T.Excalifont,Er="left",_r="top",Me="{version}",Ht=2,Bt=2*Ht,Gt=1e-5,xr=2*Bt-Gt,yr="#ffffff",Ar="#1e1e1e",vr="#a2f1a6",Sr=["selectAll"],Mr=20,Rr=5,Re={svg:"image/svg+xml",png:"image/png",jpg:"image/jpeg",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif",jfif:"image/jfif"},Kt={text:"text/plain",html:"text/html",json:"application/json",excalidraw:"application/vnd.excalidraw+json",excalidrawlib:"application/vnd.excalidrawlib+json",excalidrawlibIds:"application/vnd.excalidrawlib.ids+json"},xe={...Kt,"excalidraw.svg":"image/svg+xml","excalidraw.png":"image/png",binary:"application/octet-stream",...Re},Lr=[xe.text,xe.html,...Object.values(Re)],wr={png:"png",svg:"svg",clipboard:"clipboard"},Or={excalidraw:"excalidraw",excalidrawClipboard:"excalidraw/clipboard",excalidrawLibrary:"excalidrawlib",excalidrawClipboardWithAPI:"excalidraw-api/clipboard"},Fr=()=>window.EXCALIDRAW_EXPORT_SOURCE||window.location.origin,Cr=500,Ir=300,Pr=500,Dr=1e4,kr=3e4,Ur=100,Nr=.1,Hr=.1,Br=30,Gr=300,Kr=6e4,Wr=3e3,Yr={addLibrary:"addLibrary"},Vr={addLibrary:"addLibrary"},zr={canvasActions:{changeViewBackgroundColor:!0,clearCanvas:!0,export:{saveFileToDisk:!0},loadScene:!0,saveToActiveFile:!0,toggleTheme:null,saveAsImage:!0},tools:{image:!0}},Xr=2,$r=[1,2,3],jr=10,qr=1440,Zr=4*1024*1024,Qr="http://www.w3.org/2000/svg",Jr=`<?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ `,eo=128,to={excalidraw:2,excalidrawLibrary:2},no=5,ro=.7,oo=11,ao={TOP:"top",MIDDLE:"middle",BOTTOM:"bottom"},so={LEFT:"left",CENTER:"center",RIGHT:"right"},io=20,lo=.25,co=32,uo={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},Wt={architect:0,artist:1,cartoonist:2},fo={thin:1,bold:2,extraBold:4},po={strokeColor:d.black,backgroundColor:d.transparent,fillStyle:"solid",strokeWidth:2,strokeStyle:"solid",roughness:Wt.artist,opacity:100,locked:!1},Yt="library",mo="search",ho={name:"default",defaultTab:Yt},bo=new Set(["iframe","embeddable","image"]),go={selection:"selection",lasso:"lasso",rectangle:"rectangle",diamond:"diamond",ellipse:"ellipse",triangle:"triangle",hexagon:"hexagon",heart:"heart",star:"star",arrow:"arrow",line:"line",freedraw:"freedraw",text:"text",image:"image",eraser:"eraser",hand:"hand",frame:"frame",magicframe:"magicframe",embeddable:"embeddable",laser:"laser"},To={OAI_API_KEY:"excalidraw-oai-api-key",MERMAID_TO_EXCALIDRAW:"mermaid-to-excalidraw",PUBLISH_LIBRARY:"publish-library-data"},Eo="Untitled",_o={generalStats:1,elementProperties:2},xo=1,yo={sharp:"sharp",round:"round",elbow:"elbow"},Ao=.3,vo="element",So=Symbol.for("__test__originalId__"),Vt=(r=>(r.ACTIVE="active",r.AWAY="away",r.IDLE="idle",r))(Vt||{}),Mo=20,Ro=35,Lo=700,wo={background:"var(--mobile-action-button-bg)"};f();var V={[T.Excalifont]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25}},[T.Nunito]:{metrics:{unitsPerEm:1e3,ascender:1011,descender:-353,lineHeight:1.25}},[T["Lilita One"]]:{metrics:{unitsPerEm:1e3,ascender:923,descender:-220,lineHeight:1.15}},[T["Comic Shanns"]]:{metrics:{unitsPerEm:1e3,ascender:750,descender:-250,lineHeight:1.25}},[T.Virgil]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25},deprecated:!0},[T.Helvetica]:{metrics:{unitsPerEm:2048,ascender:1577,descender:-471,lineHeight:1.15},deprecated:!0,local:!0},[T.Cascadia]:{metrics:{unitsPerEm:2048,ascender:1900,descender:-480,lineHeight:1.2},deprecated:!0},[T["Liberation Sans"]]:{metrics:{unitsPerEm:2048,ascender:1854,descender:-434,lineHeight:1.15},private:!0},[T.Assistant]:{metrics:{unitsPerEm:2048,ascender:1021,descender:-287,lineHeight:1.25},private:!0},[ee.Xiaolai]:{metrics:{unitsPerEm:1e3,ascender:880,descender:-144,lineHeight:1.25},fallback:!0},[ee["Segoe UI Emoji"]]:{metrics:{unitsPerEm:1e3,ascender:886,descender:-374,lineHeight:1.25},local:!0,fallback:!0}},Io={LATIN:"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD",LATIN_EXT:"U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",CYRILIC_EXT:"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F",CYRILIC:"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116",VIETNAMESE:"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB"},Po="local:",Do=(e,t,n)=>{let{unitsPerEm:r,ascender:o,descender:a}=V[e]?.metrics||V[T.Excalifont].metrics,i=t/r,s=(n-i*o+i*a)/2;return i*o+s},ko=e=>{let{lineHeight:t}=V[e]?.metrics||V[T.Excalifont].metrics;return t};f();var Le=class{jobs=[];running=!1;tick(){if(this.running)return;let t=this.jobs.shift();t?(this.running=!0,t.promise.resolve(Oe(t.jobFactory,...t.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(t,...n){let r=we();return this.jobs.push({jobFactory:t,promise:r,args:n}),this.tick(),r}};f();f();var Fe="excalidraw.desktopUIMode",Ko=599,Wo=1e3,Yo=500,Vo=600,zo=1400,Xo=1440,$o=1229,Ce=/Mac|iPod|iPhone|iPad/.test(navigator.platform),jo=/^Win/.test(navigator.platform),Ie=/\b(android)\b/i.test(navigator.userAgent),qo=typeof window<"u"&&"netscape"in window&&navigator.userAgent.indexOf("rv:")>1&&navigator.userAgent.indexOf("Gecko")>1,zt=navigator.userAgent.indexOf("Chrome")!==-1,Zo=!zt&&navigator.userAgent.indexOf("Safari")!==-1,Pe=/iPad|iPhone/i.test(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document,Qo=()=>navigator.brave?.isBrave?.name==="isBrave",Xt=(e,t)=>e<=599||t<500&&e<1e3,$t=(e,t)=>{let n=Math.min(e,t),r=Math.max(e,t);return n>=600&&r<=1400},jt=()=>{let e=navigator.userAgent||"",t=navigator.platform||"",n=navigator.userAgentData;if(n){let o=(n.platform||"").toLowerCase(),a=o==="windows"||o==="macos"||o==="linux"||o==="chrome os";if(n.mobile===!0)return!0;if(n.mobile===!1&&o==="android")return matchMedia?.("(hover: none)").matches&&matchMedia?.("(pointer: coarse)").matches;if(a)return!1}if(Pe)return!0;if(Ie){let o=/Mobile/i.test(e);if(o||!o)return matchMedia?.("(hover: none)").matches&&matchMedia?.("(pointer: coarse)").matches}return/Win|Linux|CrOS|Mac/.test(t)||/Windows NT|X11|CrOS|Macintosh/.test(e),!1},Jo=(e,t)=>Xt(e,t)?"phone":$t(e,t)?"tablet":"desktop",ea=e=>e.formFactor==="phone"?"mobile":e.formFactor==="tablet"?"compact":e.desktopUIMode,ta=e=>{let t=e??"",n="unknown";return Pe?n="ios":Ie?n="android":t&&(n="other"),{isMobileDevice:jt(),platform:n}},na=()=>{if(typeof window>"u")return null;try{let e=window.localStorage.getItem(Fe);if(e==="compact"||e==="full")return e}catch{}return null},qt=e=>{if(!(typeof window>"u"))try{window.localStorage.setItem(Fe,e)}catch{}},ra=e=>{if(!(e!=="compact"&&e!=="full"))return qt(e),e};var De={EQUAL:"Equal",MINUS:"Minus",NUM_ADD:"NumpadAdd",NUM_SUBTRACT:"NumpadSubtract",NUM_ZERO:"Numpad0",BRACKET_RIGHT:"BracketRight",BRACKET_LEFT:"BracketLeft",ONE:"Digit1",TWO:"Digit2",THREE:"Digit3",NINE:"Digit9",QUOTE:"Quote",ZERO:"Digit0",SLASH:"Slash",C:"KeyC",D:"KeyD",H:"KeyH",V:"KeyV",Z:"KeyZ",Y:"KeyY",R:"KeyR",S:"KeyS"},O={ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",ARROW_UP:"ArrowUp",PAGE_UP:"PageUp",PAGE_DOWN:"PageDown",BACKSPACE:"Backspace",ALT:"Alt",CTRL_OR_CMD:Ce?"metaKey":"ctrlKey",DELETE:"Delete",ENTER:"Enter",ESCAPE:"Escape",QUESTION_MARK:"?",SPACE:" ",TAB:"Tab",CHEVRON_LEFT:"<",CHEVRON_RIGHT:">",PERIOD:".",COMMA:",",SUBTRACT:"-",SLASH:"/",A:"a",C:"c",D:"d",E:"e",F:"f",G:"g",H:"h",I:"i",J:"j",L:"l",O:"o",P:"p",Q:"q",R:"r",S:"s",T:"t",V:"v",X:"x",Y:"y",Z:"z",K:"k",W:"w",0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9"},Zt=new Map([[O.Z,De.Z],[O.Y,De.Y]]),Qt=e=>/^[a-z]$/.test(e.toLowerCase()),ia=(e,t)=>{if(t===e.key.toLowerCase())return!0;let n=Zt.get(t);return!!(n&&!Qt(e.key)&&e.code===n)},la=e=>e===O.ARROW_LEFT||e===O.ARROW_RIGHT||e===O.ARROW_DOWN||e===O.ARROW_UP,ca=e=>e.altKey,ua=e=>e.shiftKey,fa=e=>e.shiftKey;f();import{pointFromPair as Jt}from"@excalidraw/math";var ha=e=>{let t=e.map(r=>r[0]),n=e.map(r=>r[1]);return{width:Math.max(...t)-Math.min(...t),height:Math.max(...n)-Math.min(...n)}},ba=(e,t,n,r)=>{let o=n.map(x=>x[e]),a=Math.max(...o),i=Math.min(...o),s=a-i,l=s===0?1:t/s,c=1/0,p=n.map(x=>{let R=x[e]*l,L=[...x];return L[e]=R,R<c&&(c=R),L});if(!r||p.length===2)return p;let g=i-c;return p.map(x=>Jt(x.map((R,L)=>L===e?R+g:R)))},ga=(e,t,n)=>n?[Math.round(e/n)*n,Math.round(t/n)*n]:[e,t];f();var He=ie(Ue(),1),Ne=class{pool;entries={};constructor(t,n){this.pool=new He.default(t,n)}all(){let t=n=>{if(n.data.result){let[r,o]=n.data.result;this.entries[r]=o}};return this.pool.addEventListener("fulfilled",t),this.pool.start().then(()=>(setTimeout(()=>{this.pool.removeEventListener("fulfilled",t)}),Object.values(this.entries)))}};f();f();f();var Be=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,n)=>(n&=63,n<36?t+=n.toString(36):n<62?t+=(n-26).toString(36).toUpperCase():n>62?t+="-":t+="_",t),"");f();var U=class{constructor(t){this.seed=t}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}};f();import{average as z}from"@excalidraw/math";var ne=null,Pa=e=>{ne=e},Da=()=>{if(ne)return ne;let e=new Date,t=e.getFullYear(),n=`${e.getMonth()+1}`.padStart(2,"0"),r=`${e.getDate()}`.padStart(2,"0"),o=`${e.getHours()}`.padStart(2,"0"),a=`${e.getMinutes()}`.padStart(2,"0");return`${t}-${n}-${r}-${o}${a}`},ka=e=>e.charAt(0).toUpperCase()+e.slice(1),Ua=e=>e instanceof HTMLElement&&e.className.includes("ToolIcon"),en=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement,Na=e=>en(e)||e instanceof Element&&!!e.closest("label, button"),Ha=e=>e instanceof HTMLElement&&e.dataset.type==="wysiwyg"||e instanceof HTMLBRElement||e instanceof HTMLTextAreaElement||e instanceof HTMLInputElement&&(e.type==="text"||e.type==="number"||e.type==="password"||e.type==="search"),tn=({fontFamily:e})=>{for(let[t,n]of Object.entries(T))if(n===e)return`${t}${Se(n).map(r=>`, ${r}`).join("")}`;return k},Ba=({fontSize:e,fontFamily:t})=>`${e}px ${tn({fontFamily:t})}`,Ga=async e=>{requestAnimationFrame(()=>requestAnimationFrame(e))},Ka=(e,t)=>{let n=0,r=null,o=(...a)=>{r=a,clearTimeout(n),n=window.setTimeout(()=>{r=null,e(...a)},t)};return o.flush=()=>{if(clearTimeout(n),r){let a=r;r=null,e(...a)}},o.cancel=()=>{r=null,clearTimeout(n)},o},Wa=(e,t)=>{let n=null,r=null,o=null,a=s=>{n=window.requestAnimationFrame(()=>{n=null,e(...s),r=null,o&&(r=o,o=null,a(r))})},i=(...s)=>{if(X()){e(...s);return}r=s,n===null?a(r):t?.trailing&&(o=s)};return i.flush=()=>{n!==null&&(cancelAnimationFrame(n),n=null),r&&(e(...o||r),r=o=null)},i.cancel=()=>{r=o=null,n!==null&&(cancelAnimationFrame(n),n=null)},i},We=e=>1-Math.pow(1-e,4),Ge=(e,t,n)=>(t-e)*We(n)+e,Ya=({fromValues:e,toValues:t,onStep:n,duration:r=250,interpolateValue:o,onStart:a,onEnd:i,onCancel:s})=>{let l=!1,c=0,p;function g(I){if(l)return;p===void 0&&(p=I,a?.());let x=Math.min(I-p,r),R=We(x/r),L={};if(Object.keys(e).forEach(P=>{let w=P,j=(t[w]-e[w])*R+e[w];L[w]=j}),n(L),x<r){let P=x/r,w={};Object.keys(e).forEach(j=>{let N=j,q=e[N],Z=t[N],H;H=o?o(q,Z,P,N):Ge(q,Z,P),H==null&&(H=Ge(q,Z,P)),w[N]=H}),n(w),c=window.requestAnimationFrame(g)}else n(t),i?.()}return c=window.requestAnimationFrame(g),()=>{s?.(),l=!0,window.cancelAnimationFrame(c)}},Va=(e,t)=>{if(!e.length||t<1)return[];let n=0,r=0,o=Array(Math.ceil(e.length/t));for(;n<e.length;)o[r++]=e.slice(n,n+=t);return o},za=e=>{let t=window.getSelection();if(t){let n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}},Xa=()=>{let e=window.getSelection();e&&e.removeAllRanges()},$a=(e,t)=>Math.abs(e-t),ja=e=>e==="selection"||e==="lasso",qa=(e,t)=>t.type==="custom"?{...e.activeTool,type:"custom",customType:t.customType,locked:t.locked??e.activeTool.locked}:{...e.activeTool,lastActiveTool:t.lastActiveToolBeforeEraser===void 0?e.activeTool.lastActiveTool:t.lastActiveToolBeforeEraser,type:t.type,customType:null,locked:t.locked??e.activeTool.locked,fromSelection:t.fromSelection??!1},Za=()=>document.fullscreenElement?.nodeName==="HTML",Qa=()=>document.documentElement.requestFullscreen(),Ja=()=>document.exitFullscreen(),es=({clientX:e,clientY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:a,scrollY:i})=>{let s=(e-r)/n.value-a,l=(t-o)/n.value-i;return{x:s,y:l}},ts=({sceneX:e,sceneY:t},{zoom:n,offsetLeft:r,offsetTop:o,scrollX:a,scrollY:i})=>{let s=(e+a)*n.value+r,l=(t+i)*n.value+o;return{x:s,y:l}},ns=e=>getComputedStyle(document.documentElement).getPropertyValue(`--${e}`),nn="A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u0300-\u0590\u0800-\u1FFF\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF",rn="\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC",on=new RegExp(`^[^${nn}]*[${rn}]`),rs=e=>on.test(e),os=e=>{let[t,n]=e;return{x:t,y:n}},as=e=>{if(e?.name==="AbortError"){console.warn(e);return}throw e},ss=(e,t,n=0)=>{n<0&&(n=e.length+n),n=Math.min(e.length,Math.max(n,0));let r=n-1;for(;++r<e.length;)if(t(e[r],r,e))return r;return-1},is=(e,t,n=e.length-1)=>{n<0&&(n=e.length+n),n=Math.min(e.length-1,Math.max(n,0));let r=n+1;for(;--r>-1;)if(t(e[r],r,e))return r;return-1},ls=(e,t)=>{for(let n=0;n<e.length;n++){let r=t(e[n],n);if(r!=null)return r}},cs=e=>u(e).getAlpha()===0,we=()=>{let e,t,n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n},us=(e,t)=>{let n=[{value:1,symbol:"b"},{value:1e3,symbol:"k"},{value:1e6,symbol:"M"},{value:1e9,symbol:"G"}],r=/\.0+$|(\.[0-9]*[1-9])0+$/,o;for(o=n.length-1;o>0&&!(e>=n[o].value);o--);return(e/n[o].value).toFixed(t).replace(r,"$1")+n[o].symbol},fs=()=>document.querySelector('meta[name="version"]')?.content||Me,ds=()=>{let t=document.createElement("canvas").getContext("2d");if(!t)return!1;let n=12;return t.fillStyle="#f00",t.textBaseline="top",t.font="32px Arial",t.fillText("\u{1F600}",0,0),t.getImageData(n,n,1,1).data[0]!==0},ps=e=>{let t=e.parentElement;for(;t;){if(t===document.body)return document;let{overflowY:n}=window.getComputedStyle(t);if(t.scrollHeight>t.clientHeight&&(n==="auto"||n==="scroll"||n==="overlay"))return t;t=t.parentElement}return document},ms=e=>{let t=e.parentElement;for(;t;){if(t.tabIndex>-1){t.focus();return}t=t.parentElement}},hs=e=>{e.preventDefault(),e.returnValue=""},bs=e=>Array.from(e).map(t=>`0${t.toString(16)}`.slice(-2)).join(""),gs=()=>X()?1:Date.now(),Ts=e=>e instanceof Map?e:e.reduce((t,n)=>(t.set(typeof n=="string"?n:n.id,n),t),new Map),Es=e=>e.reduce((t,n,r)=>(t.set(n.id,[n,r]),t),new Map),_s=(e,t)=>e.reduce((n,r,o)=>(n[t?t(r):o]=r,n),{}),xs=e=>e.reduce((t,n,r)=>{let o={...n,prev:null,next:null};if(r!==0){let a=t[r-1];if(o.prev=a,a.next=o,r===e.length-1){let i=t[0];o.next=i,i.prev=o}}return t.push(o),t},[]),an=e=>Array.isArray(e)?e:e.values(),ys=e=>Array.isArray(e)?e:Array.from(an(e)),X=()=>h.MODE===Y.TEST,As=()=>h.MODE===Y.DEVELOPMENT,vs=()=>h.MODE===Y.PRODUCTION,Ss=()=>typeof process<"u"&&!0,Ms=(e,t)=>new CustomEvent(e,{detail:{nativeEvent:t},cancelable:!0}),Rs=(e,t)=>{let n=!1;for(let r in t){let o=t[r];if(typeof o<"u"){if(e[r]===o&&(typeof o!="object"||o===null))continue;n=!0}}return n?{...e,...t}:e},Ls=e=>{let t=typeof e;return e==null||t!=="object"&&t!=="function"},sn=()=>{try{return window.self===window.top?"top":"iframe"}catch{return"iframe"}},ws=()=>sn()==="iframe",Os=e=>!!e&&typeof e=="object"&&"then"in e&&"catch"in e&&"finally"in e,Fs=e=>{let t=e?.querySelectorAll("button, a, input, select, textarea, div[tabindex], label[tabindex]");return t?Array.from(t).filter(n=>n.tabIndex>-1&&!n.disabled):[]},Ke=(e,t)=>Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t,ln=(e,t,n,r=!1)=>{let o=Object.keys(e),a=Object.keys(t);if(o.length!==a.length)return r&&console.warn("%cisShallowEqual: objects don't have same properties ->","color: #8B4000",e,t),!1;if(n&&Array.isArray(n)){for(let i of n)if(!(e[i]===t[i]||Ke(e[i],t[i])))return r&&console.warn(`%cisShallowEqual: ${i} not equal ->`,"color: #8B4000",e[i],t[i]),!1;return!0}return o.every(i=>{let s=n?.[i],l=s?s(e[i],t[i]):e[i]===t[i]||Ke(e[i],t[i]);return!l&&r&&console.warn(`%cisShallowEqual: ${i} not equal ->`,"color: #8B4000",e[i],t[i]),l})},Cs=(e,t,{checkForDefaultPrevented:n=!0}={})=>function(o){if(e?.(o),!n||!o?.defaultPrevented)return t?.(o)},Is=(e,t,n)=>{if(!t)return e;if(n)return console.error(t),e;throw new Error(t)};function Ps(e,t){if(!e)throw new Error(t)}var Ds=e=>{let t,n,r=function(o){let a=Object.entries(o);if(t){let s=!0;for(let[l,c]of a)if(t.get(l)!==c){s=!1;break}if(s)return n}let i=e(o);return t=new Map(a),n=i,i};return r.clear=()=>{t=void 0,n=void 0},r},ks=(e,t)=>e instanceof Set||e instanceof Map?e.has(t):"includes"in e?e.includes(t):e.hasOwnProperty(t),Us=e=>JSON.parse(JSON.stringify(e)),Ns=(e,t)=>ln(e,t)?e:t;function Hs(e,t,n,r){return e?(e?.addEventListener?.(t,n,r),()=>{e?.removeEventListener?.(t,n,r)}):()=>{}}function Bs(e,t=!0){let n=e.length;if(n<4)return"";let r=e[0],o=e[1],a=e[2],i=`M${r[0].toFixed(2)},${r[1].toFixed(2)} Q${o[0].toFixed(2)},${o[1].toFixed(2)} ${z(o[0],a[0]).toFixed(2)},${z(o[1],a[1]).toFixed(2)} T`;for(let s=2,l=n-1;s<l;s++)r=e[s],o=e[s+1],i+=`${z(r[0],o[0]).toFixed(2)},${z(r[1],o[1]).toFixed(2)} `;return t&&(i+="Z"),i}var Gs=e=>e.replace(/\r?\n|\r/g,`
4
+ `);function Ks(e){return e}var Oe=async(e,...t)=>new Promise(n=>{n(e(...t))}),Ws=(...e)=>Math.max(...e.map(t=>t?1:0))>0,Ys=e=>{try{return JSON.parse(e)}catch{return null}},Ye=e=>e.replace(/"/g,"&quot;"),Vs=e=>Array.isArray(e)?e:[e],cn=e=>Array.isArray(e),un=e=>cn(e)?e.length:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length,zs=(e,t)=>{if(un(e)===0)return null;let n=t||(o=>o),r=null;for(let o of e){let a=n(o);if((r===null||r===a)&&a!=null)r=a;else return null}return r},Ve="excalidraw-feature-flags",re={COMPLEX_BINDINGS:!1},F=null,Xs=e=>{if(!F)try{let t=localStorage.getItem(Ve);t&&(F=JSON.parse(t)??re)}catch{}return(F||re)[e]},$s=(e,t)=>{try{F={...F||re,[e]:t},localStorage.setItem(Ve,JSON.stringify(F))}catch(n){console.error("unable to set feature flag",n)}};var ze=new U(Date.now()),Xe=0,ei=()=>Math.floor(ze.next()*2**31),ti=e=>{ze=new U(e),Xe=0},ni=()=>X()?`id${Xe++}`:Be();f();var je=ie($e(),1);var _n=e=>(e=e.trim(),e&&(0,je.sanitizeUrl)(Ye(e))),li=e=>!!(e?.includes(location.origin)||e?.startsWith("/")),ci=e=>{if(e=_n(e),e.startsWith("/"))return`${location.origin}${e}`;try{new URL(e)}catch{return"about:blank"}return e};f();var qe=class{subscribers=[];on(...t){let n=t.flat().filter(r=>typeof r=="function");return this.subscribers.push(...n),()=>this.off(n)}once(...t){let n=t.flat().filter(o=>typeof o=="function");n.push(()=>r());let r=this.on(...n);return r}off(...t){let n=t.flat();this.subscribers=this.subscribers.filter(r=>!n.includes(r))}trigger(...t){for(let n of this.subscribers)n(...t);return this}clear(){this.subscribers=[]}};f();import{isLineSegment as xn,lineSegment as C,pointFrom as _}from"@excalidraw/math";var bi=(e,t)=>{Ze({color:t?.color??"purple",permanent:!!t?.permanent,data:e})},oe=(e,t)=>{(xn(e)?[e]:e).forEach(r=>Ze({color:t?.color??"red",data:r,permanent:!!t?.permanent}))},yn=(e,t)=>{let n=t?.fuzzy?Math.random()*3:0,r=t?.fuzzy?Math.random()*3:0;oe(C(_(e[0]+n-10,e[1]+r-10),_(e[0]+n+10,e[1]+r+10)),{color:t?.color??"cyan",permanent:t?.permanent}),oe(C(_(e[0]+n-10,e[1]+r+10),_(e[0]+n+10,e[1]+r-10)),{color:t?.color??"cyan",permanent:t?.permanent})},gi=(e,t)=>{(ce(e)?[e]:e).forEach(n=>oe([C(_(n[0],n[1]),_(n[2],n[1])),C(_(n[2],n[1]),_(n[2],n[3])),C(_(n[2],n[3]),_(n[0],n[3])),C(_(n[0],n[3]),_(n[0],n[1]))],{color:t?.color??"green",permanent:!!t?.permanent}))},Ti=({x:e,y:t,points:n},r)=>{n.forEach(o=>yn(_(e+o[0],t+o[1]),r))},Ei=()=>{window.visualDebug?.data.push([])},_i=()=>{window.visualDebug?.data&&(window.visualDebug.data=[])},Ze=e=>{window.visualDebug?.data&&window.visualDebug.data.length===0&&(window.visualDebug.data[0]=[]),window.visualDebug?.data&&window.visualDebug.data[window.visualDebug.data.length-1].push(e)};export{Wr as ACTIVE_THRESHOLD,Lr as ALLOWED_PASTE_MIME_TYPES,Qn as APP_NAME,oo as ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO,ro as ARROW_LABEL_WIDTH_FRACTION,yo as ARROW_TYPE,Lo as BIND_MODE_TIMEOUT,no as BOUND_TEXT_PADDING,le as BinaryHeap,Sr as CANVAS_ONLY_ACTIONS,Gn as CANVAS_PALETTE_SHADE_INDEXES,mo as CANVAS_SEARCH_TAB,ye as CJK_HAND_DRAWN_FALLBACK_FONT,dr as CLASSES,De as CODES,Hn as COLORS_PER_ROW,Ar as COLOR_CHARCOAL_BLACK,Un as COLOR_OUTLINE_CONTRAST_THRESHOLD,d as COLOR_PALETTE,vr as COLOR_VOICE_CALL,yr as COLOR_WHITE,lr as CURSOR_TYPE,co as DEFAULT_ADAPTIVE_RADIUS,Yn as DEFAULT_CANVAS_BACKGROUND_PICKS,Bn as DEFAULT_CHART_COLOR_INDEX,xr as DEFAULT_COLLISION_THRESHOLD,W as DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX,zn as DEFAULT_ELEMENT_BACKGROUND_COLOR_PALETTE,Wn as DEFAULT_ELEMENT_BACKGROUND_PICKS,po as DEFAULT_ELEMENT_PROPS,K as DEFAULT_ELEMENT_STROKE_COLOR_INDEX,Vn as DEFAULT_ELEMENT_STROKE_COLOR_PALETTE,Kn as DEFAULT_ELEMENT_STROKE_PICKS,jr as DEFAULT_EXPORT_PADDING,Eo as DEFAULT_FILENAME,Tr as DEFAULT_FONT_FAMILY,gr as DEFAULT_FONT_SIZE,Mr as DEFAULT_GRID_SIZE,Rr as DEFAULT_GRID_STEP,ir as DEFAULT_LASER_COLOR,qr as DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT,lo as DEFAULT_PROPORTIONAL_RADIUS,Ao as DEFAULT_REDUCED_GLOBAL_ALPHA,ho as DEFAULT_SIDEBAR,Er as DEFAULT_TEXT_ALIGN,Ht as DEFAULT_TRANSFORM_HANDLE_SPACING,zr as DEFAULT_UI_OPTIONS,Me as DEFAULT_VERSION,_r as DEFAULT_VERTICAL_ALIGN,Ro as DOUBLE_TAP_POSITION_THRESHOLD,er as DRAGGING_THRESHOLD,To as EDITOR_LS_KEYS,v as ELEMENTS_PALETTE_SHADE_INDEXES,vo as ELEMENT_LINK_KEY,io as ELEMENT_READY_TO_ERASE_OPACITY,rr as ELEMENT_SHIFT_TRANSLATE_AMOUNT,or as ELEMENT_TRANSLATE_AMOUNT,eo as ENCRYPTION_KEY_BITS,Y as ENV,Gt as EPSILON,kt as EVENT,Or as EXPORT_DATA_TYPES,wr as EXPORT_IMAGE_TYPES,$r as EXPORT_SCALES,qe as Emitter,T as FONT_FAMILY,ee as FONT_FAMILY_FALLBACKS,Ut as FONT_FAMILY_GENERIC_FALLBACKS,V as FONT_METADATA,pr as FONT_SIZES,hr as FRAME_STYLE,Io as GOOGLE_FONTS_RANGES,Gr as HYPERLINK_TOOLTIP_DELAY,Kr as IDLE_THRESHOLD,Re as IMAGE_MIME_TYPES,Cr as IMAGE_RENDER_TIMEOUT,O as KEYS,Zt as KeyCodeMap,bo as LIBRARY_DISABLED_TYPES,Yt as LIBRARY_SIDEBAR_TAB,nr as LINE_CONFIRM_THRESHOLD,Mo as LINE_POLYGON_POINT_MERGE_DISTANCE,Po as LOCAL_FONT_PROTOCOL,Zr as MAX_ALLOWED_FILE_BYTES,Nn as MAX_CUSTOM_COLORS_USED_IN_CANVAS,Xr as MAX_DECIMALS_FOR_SVG_EXPORT,Br as MAX_ZOOM,xe as MIME_TYPES,tr as MINIMUM_ARROW_SIZE,br as MIN_FONT_SIZE,xo as MIN_WIDTH_OR_HEIGHT,Hr as MIN_ZOOM,wo as MOBILE_ACTION_BUTTON_BG,ve as MONOSPACE_GENERIC_FONT,Yo as MQ_MAX_HEIGHT_LANDSCAPE,Ko as MQ_MAX_MOBILE,zo as MQ_MAX_TABLET,Wo as MQ_MAX_WIDTH_LANDSCAPE,Vo as MQ_MIN_TABLET,Xo as MQ_MIN_WIDTH_DESKTOP,$o as MQ_RIGHT_SIDEBAR_MIN_WIDTH,So as ORIG_ID,cr as POINTER_BUTTON,ur as POINTER_EVENTS,Ne as PromisePool,Le as Queue,Wt as ROUGHNESS,uo as ROUNDNESS,Ae as SANS_SERIF_GENERIC_FONT,Ur as SCROLL_TIMEOUT,sr as SHIFT_LOCKING_ANGLE,Bt as SIDE_RESIZING_THRESHOLD,_o as STATS_PANELS,Kt as STRING_MIME_TYPES,fo as STROKE_WIDTH,Jr as SVG_DOCUMENT_PREAMBLE,Qr as SVG_NS,Ir as TAP_TWICE_TIMEOUT,so as TEXT_ALIGN,Jn as TEXT_AUTOWRAP_THRESHOLD,ar as TEXT_TO_CENTER_SNAP_THRESHOLD,mr as THEME,Dr as TITLE_TIMEOUT,go as TOOL_TYPE,Pr as TOUCH_CTX_MENU_TIMEOUT,Vr as URL_HASH_KEYS,Yr as URL_QUERY_KEYS,Vt as UserIdleState,to as VERSIONS,kr as VERSION_TIMEOUT,ao as VERTICAL_ALIGN,k as WINDOWS_EMOJI_FALLBACK_FONT,fr as YOUTUBE_STATES,Nr as ZOOM_STEP,Hs as addEventListener,Qa as allowFullScreen,kn as applyDarkModeFilter,xs as arrayToList,Ts as arrayToMap,Es as arrayToMapWithIndex,_s as arrayToObject,Is as assertNever,bs as bytesToHexString,ka as capitalizeString,Vs as castArray,Va as chunk,Us as cloneJSON,Cs as composeEventHandlers,ta as createUserAgentDescriptor,Ka as debounce,_i as debugClear,Ei as debugCloseFrame,gi as debugDrawBounds,bi as debugDrawCubicBezier,oe as debugDrawLine,yn as debugDrawPoint,Ti as debugDrawPoints,ea as deriveStylesPanelMode,$a as distance,We as easeOut,Ya as easeToValuesRAF,Ye as escapeDoubleQuotes,Ja as exitFullScreen,ss as findIndex,is as findLastIndex,ms as focusNearestParent,Xn as getAllColorsSpecificShade,Da as getDateTime,Fr as getExportSource,Xs as getFeatureFlag,Se as getFontFamilyFallbacks,tn as getFontFamilyString,Ba as getFontString,Jo as getFormFactor,sn as getFrame,Nt as getGenericFontFamilyFallback,ns as getGlobalCSSVariable,ga as getGridPoint,ko as getLineHeight,ps as getNearestScrollableContainer,ha as getSizeFromPoints,S as getSpecificColorShades,Bs as getSvgPathFromStroke,gs as getUpdatedTimestamp,fs as getVersion,Do as getVerticalOffset,Ps as invariant,Ie as isAndroid,Ws as isAnyTrue,la as isArrowKey,ce as isBounds,Qo as isBrave,zt as isChrome,Ce as isDarwin,As as isDevEnv,qo as isFirefox,Za as isFullScreen,Pe as isIOS,en as isInputLike,Na as isInteractive,Qt as isLatinChar,li as isLocalLink,ks as isMemberOf,Xt as isMobileBreakpoint,Ls as isPrimitive,vs as isProdEnv,Os as isPromiseLike,rs as isRTL,cn as isReadonlyArray,ws as isRunningInIframe,Zo as isSafari,ja as isSelectionLikeTool,Ss as isServerEnv,ln as isShallowEqual,$t as isTabletBreakpoint,X as isTestEnv,Ua as isToolIcon,cs as isTransparent,jo as isWindows,Ha as isWritableElement,na as loadDesktopUIModePreference,ls as mapFind,ia as matchKey,Ds as memoize,as as muteFSAbortError,us as nFormatter,Ga as nextAnimationFrame,Gs as normalizeEOL,_n as normalizeLink,hs as preventUnload,Oe as promiseTry,Fs as queryFocusableElements,ni as randomId,ei as randomInteger,zs as reduceToCommonValue,Xa as removeSelection,ba as rescalePoints,ti as reseed,we as resolvablePromise,Dt as rgbToHex,Ys as safelyParseJSON,ts as sceneCoordsToViewportCoords,za as selectNode,Pa as setDateTimeForTests,ra as setDesktopUIMode,$s as setFeatureFlag,ua as shouldMaintainAspectRatio,ca as shouldResizeFromCenter,fa as shouldRotateWithDiscreteAngle,un as sizeOf,ds as supportsEmoji,Zn as supportsResizeObserver,Wa as throttleRAF,u as tinycolor,ys as toArray,Ks as toBrandedType,an as toIterable,ci as toValidURL,os as tupleToCoors,qa as updateActiveTool,Rs as updateObject,Ns as updateStable,es as viewportCoordsToSceneCoords,Ms as wrapEvent};
@@ -0,0 +1,12 @@
1
+ export declare class BinaryHeap<T> {
2
+ private scoreFunction;
3
+ private content;
4
+ constructor(scoreFunction: (node: T) => number);
5
+ sinkDown(idx: number): void;
6
+ bubbleUp(idx: number): void;
7
+ push(node: T): void;
8
+ pop(): T | null;
9
+ remove(node: T): void;
10
+ size(): number;
11
+ rescoreElement(node: T): void;
12
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * x and y position of top left corner, x and y position of bottom right corner
3
+ */
4
+ export type Bounds = readonly [
5
+ minX: number,
6
+ minY: number,
7
+ maxX: number,
8
+ maxY: number
9
+ ];
10
+ export declare const isBounds: (box: unknown) => box is Bounds;
@@ -0,0 +1,65 @@
1
+ import oc from "open-color";
2
+ import tinycolor from "tinycolor2";
3
+ import type { Merge } from "./utility-types";
4
+ export { tinycolor };
5
+ export declare const applyDarkModeFilter: (color: string) => string;
6
+ export declare const COLOR_OUTLINE_CONTRAST_THRESHOLD = 240;
7
+ export type ColorPickerColor = Exclude<keyof oc, "indigo" | "lime"> | "transparent" | "bronze";
8
+ export type ColorTuple = readonly [string, string, string, string, string];
9
+ export type ColorPalette = Merge<Record<ColorPickerColor, ColorTuple>, {
10
+ black: "#1e1e1e";
11
+ white: "#ffffff";
12
+ transparent: "transparent";
13
+ }>;
14
+ export type ColorPaletteCustom = {
15
+ [key: string]: ColorTuple | string;
16
+ };
17
+ export type ColorShadesIndexes = [number, number, number, number, number];
18
+ export declare const MAX_CUSTOM_COLORS_USED_IN_CANVAS = 5;
19
+ export declare const COLORS_PER_ROW = 5;
20
+ export declare const DEFAULT_CHART_COLOR_INDEX = 4;
21
+ export declare const DEFAULT_ELEMENT_STROKE_COLOR_INDEX = 4;
22
+ export declare const DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX = 1;
23
+ export declare const ELEMENTS_PALETTE_SHADE_INDEXES: readonly [0, 2, 4, 6, 8];
24
+ export declare const CANVAS_PALETTE_SHADE_INDEXES: readonly [0, 1, 2, 3, 4];
25
+ export declare const getSpecificColorShades: (color: Exclude<ColorPickerColor, "transparent" | "white" | "black" | "bronze">, indexArr: Readonly<ColorShadesIndexes>) => ColorTuple;
26
+ export declare const COLOR_PALETTE: ColorPalette;
27
+ export declare const DEFAULT_ELEMENT_STROKE_PICKS: ColorTuple;
28
+ export declare const DEFAULT_ELEMENT_BACKGROUND_PICKS: ColorTuple;
29
+ export declare const DEFAULT_CANVAS_BACKGROUND_PICKS: ColorTuple;
30
+ export declare const DEFAULT_ELEMENT_STROKE_COLOR_PALETTE: {
31
+ readonly red: ColorTuple;
32
+ readonly pink: ColorTuple;
33
+ readonly grape: ColorTuple;
34
+ readonly violet: ColorTuple;
35
+ readonly blue: ColorTuple;
36
+ readonly cyan: ColorTuple;
37
+ readonly teal: ColorTuple;
38
+ readonly green: ColorTuple;
39
+ readonly yellow: ColorTuple;
40
+ readonly orange: ColorTuple;
41
+ readonly transparent: "transparent";
42
+ readonly white: "#ffffff";
43
+ readonly gray: ColorTuple;
44
+ readonly black: "#1e1e1e";
45
+ readonly bronze: ColorTuple;
46
+ };
47
+ export declare const DEFAULT_ELEMENT_BACKGROUND_COLOR_PALETTE: {
48
+ readonly red: ColorTuple;
49
+ readonly pink: ColorTuple;
50
+ readonly grape: ColorTuple;
51
+ readonly violet: ColorTuple;
52
+ readonly blue: ColorTuple;
53
+ readonly cyan: ColorTuple;
54
+ readonly teal: ColorTuple;
55
+ readonly green: ColorTuple;
56
+ readonly yellow: ColorTuple;
57
+ readonly orange: ColorTuple;
58
+ readonly transparent: "transparent";
59
+ readonly white: "#ffffff";
60
+ readonly gray: ColorTuple;
61
+ readonly black: "#1e1e1e";
62
+ readonly bronze: ColorTuple;
63
+ };
64
+ export declare const getAllColorsSpecificShade: (index: 0 | 1 | 2 | 3 | 4) => readonly [string, string, string, string, string, string, string, string, string, string];
65
+ export declare const rgbToHex: (r: number, g: number, b: number, a?: number) => string;
@@ -0,0 +1,355 @@
1
+ import type { ExcalidrawElement, FontFamilyValues } from "@excalidraw/element/types";
2
+ import type { AppProps, AppState } from "@excalidraw/excalidraw/types";
3
+ export declare const supportsResizeObserver: boolean;
4
+ export declare const APP_NAME = "Excalidraw";
5
+ export declare const TEXT_AUTOWRAP_THRESHOLD = 36;
6
+ export declare const DRAGGING_THRESHOLD = 10;
7
+ export declare const MINIMUM_ARROW_SIZE = 20;
8
+ export declare const LINE_CONFIRM_THRESHOLD = 8;
9
+ export declare const ELEMENT_SHIFT_TRANSLATE_AMOUNT = 5;
10
+ export declare const ELEMENT_TRANSLATE_AMOUNT = 1;
11
+ export declare const TEXT_TO_CENTER_SNAP_THRESHOLD = 30;
12
+ export declare const SHIFT_LOCKING_ANGLE: number;
13
+ export declare const DEFAULT_LASER_COLOR = "red";
14
+ export declare const CURSOR_TYPE: {
15
+ TEXT: string;
16
+ CROSSHAIR: string;
17
+ GRABBING: string;
18
+ GRAB: string;
19
+ POINTER: string;
20
+ MOVE: string;
21
+ AUTO: string;
22
+ };
23
+ export declare const POINTER_BUTTON: {
24
+ readonly MAIN: 0;
25
+ readonly WHEEL: 1;
26
+ readonly SECONDARY: 2;
27
+ readonly TOUCH: -1;
28
+ readonly ERASER: 5;
29
+ };
30
+ export declare const POINTER_EVENTS: {
31
+ readonly enabled: "all";
32
+ readonly disabled: "none";
33
+ readonly inheritFromUI: any;
34
+ };
35
+ export declare enum EVENT {
36
+ COPY = "copy",
37
+ PASTE = "paste",
38
+ CUT = "cut",
39
+ KEYDOWN = "keydown",
40
+ KEYUP = "keyup",
41
+ MOUSE_MOVE = "mousemove",
42
+ RESIZE = "resize",
43
+ UNLOAD = "unload",
44
+ FOCUS = "focus",
45
+ BLUR = "blur",
46
+ DRAG_OVER = "dragover",
47
+ DROP = "drop",
48
+ GESTURE_END = "gestureend",
49
+ BEFORE_UNLOAD = "beforeunload",
50
+ GESTURE_START = "gesturestart",
51
+ GESTURE_CHANGE = "gesturechange",
52
+ POINTER_MOVE = "pointermove",
53
+ POINTER_DOWN = "pointerdown",
54
+ POINTER_UP = "pointerup",
55
+ STATE_CHANGE = "statechange",
56
+ WHEEL = "wheel",
57
+ TOUCH_START = "touchstart",
58
+ TOUCH_END = "touchend",
59
+ HASHCHANGE = "hashchange",
60
+ VISIBILITY_CHANGE = "visibilitychange",
61
+ SCROLL = "scroll",
62
+ EXCALIDRAW_LINK = "excalidraw-link",
63
+ MENU_ITEM_SELECT = "menu.itemSelect",
64
+ MESSAGE = "message",
65
+ FULLSCREENCHANGE = "fullscreenchange"
66
+ }
67
+ export declare const YOUTUBE_STATES: {
68
+ readonly UNSTARTED: -1;
69
+ readonly ENDED: 0;
70
+ readonly PLAYING: 1;
71
+ readonly PAUSED: 2;
72
+ readonly BUFFERING: 3;
73
+ readonly CUED: 5;
74
+ };
75
+ export declare const ENV: {
76
+ TEST: string;
77
+ DEVELOPMENT: string;
78
+ PRODUCTION: string;
79
+ };
80
+ export declare const CLASSES: {
81
+ SIDEBAR: string;
82
+ SHAPE_ACTIONS_MENU: string;
83
+ ZOOM_ACTIONS: string;
84
+ SEARCH_MENU_INPUT_WRAPPER: string;
85
+ CONVERT_ELEMENT_TYPE_POPUP: string;
86
+ SHAPE_ACTIONS_THEME_SCOPE: string;
87
+ FRAME_NAME: string;
88
+ };
89
+ export declare const FONT_SIZES: {
90
+ readonly sm: 16;
91
+ readonly md: 20;
92
+ readonly lg: 28;
93
+ readonly xl: 36;
94
+ };
95
+ export declare const CJK_HAND_DRAWN_FALLBACK_FONT = "Xiaolai";
96
+ export declare const WINDOWS_EMOJI_FALLBACK_FONT = "Segoe UI Emoji";
97
+ /**
98
+ * // TODO: shouldn't be really `const`, likely neither have integers as values, due to value for the custom fonts, which should likely be some hash.
99
+ *
100
+ * Let's think this through and consider:
101
+ * - https://developer.mozilla.org/en-US/docs/Web/CSS/generic-family
102
+ * - https://drafts.csswg.org/css-fonts-4/#font-family-prop
103
+ * - https://learn.microsoft.com/en-us/typography/opentype/spec/ibmfc
104
+ */
105
+ export declare const FONT_FAMILY: {
106
+ Virgil: number;
107
+ Helvetica: number;
108
+ Cascadia: number;
109
+ Excalifont: number;
110
+ Nunito: number;
111
+ "Lilita One": number;
112
+ "Comic Shanns": number;
113
+ "Liberation Sans": number;
114
+ Assistant: number;
115
+ };
116
+ export declare const SANS_SERIF_GENERIC_FONT = "sans-serif";
117
+ export declare const MONOSPACE_GENERIC_FONT = "monospace";
118
+ export declare const FONT_FAMILY_GENERIC_FALLBACKS: {
119
+ "sans-serif": number;
120
+ monospace: number;
121
+ };
122
+ export declare const FONT_FAMILY_FALLBACKS: {
123
+ "Segoe UI Emoji": number;
124
+ "sans-serif": number;
125
+ monospace: number;
126
+ Xiaolai: number;
127
+ };
128
+ export declare function getGenericFontFamilyFallback(fontFamily: number): keyof typeof FONT_FAMILY_GENERIC_FALLBACKS;
129
+ export declare const getFontFamilyFallbacks: (fontFamily: number) => Array<keyof typeof FONT_FAMILY_FALLBACKS>;
130
+ export declare const THEME: {
131
+ readonly LIGHT: "light";
132
+ readonly DARK: "dark";
133
+ };
134
+ export declare const FRAME_STYLE: {
135
+ strokeColor: ExcalidrawElement["strokeColor"];
136
+ strokeWidth: ExcalidrawElement["strokeWidth"];
137
+ strokeStyle: ExcalidrawElement["strokeStyle"];
138
+ fillStyle: ExcalidrawElement["fillStyle"];
139
+ roughness: ExcalidrawElement["roughness"];
140
+ roundness: ExcalidrawElement["roundness"];
141
+ backgroundColor: ExcalidrawElement["backgroundColor"];
142
+ radius: number;
143
+ nameOffsetY: number;
144
+ nameColorLightTheme: string;
145
+ nameColorDarkTheme: string;
146
+ nameFontSize: number;
147
+ nameLineHeight: number;
148
+ };
149
+ export declare const MIN_FONT_SIZE = 1;
150
+ export declare const DEFAULT_FONT_SIZE = 20;
151
+ export declare const DEFAULT_FONT_FAMILY: FontFamilyValues;
152
+ export declare const DEFAULT_TEXT_ALIGN = "left";
153
+ export declare const DEFAULT_VERTICAL_ALIGN = "top";
154
+ export declare const DEFAULT_VERSION = "{version}";
155
+ export declare const DEFAULT_TRANSFORM_HANDLE_SPACING = 2;
156
+ export declare const SIDE_RESIZING_THRESHOLD: number;
157
+ export declare const EPSILON = 0.00001;
158
+ export declare const DEFAULT_COLLISION_THRESHOLD: number;
159
+ export declare const COLOR_WHITE = "#ffffff";
160
+ export declare const COLOR_CHARCOAL_BLACK = "#1e1e1e";
161
+ export declare const COLOR_VOICE_CALL = "#a2f1a6";
162
+ export declare const CANVAS_ONLY_ACTIONS: string[];
163
+ export declare const DEFAULT_GRID_SIZE = 20;
164
+ export declare const DEFAULT_GRID_STEP = 5;
165
+ export declare const IMAGE_MIME_TYPES: {
166
+ readonly svg: "image/svg+xml";
167
+ readonly png: "image/png";
168
+ readonly jpg: "image/jpeg";
169
+ readonly gif: "image/gif";
170
+ readonly webp: "image/webp";
171
+ readonly bmp: "image/bmp";
172
+ readonly ico: "image/x-icon";
173
+ readonly avif: "image/avif";
174
+ readonly jfif: "image/jfif";
175
+ };
176
+ export declare const STRING_MIME_TYPES: {
177
+ readonly text: "text/plain";
178
+ readonly html: "text/html";
179
+ readonly json: "application/json";
180
+ readonly excalidraw: "application/vnd.excalidraw+json";
181
+ readonly excalidrawlib: "application/vnd.excalidrawlib+json";
182
+ readonly excalidrawlibIds: "application/vnd.excalidrawlib.ids+json";
183
+ };
184
+ export declare const MIME_TYPES: {
185
+ readonly svg: "image/svg+xml";
186
+ readonly png: "image/png";
187
+ readonly jpg: "image/jpeg";
188
+ readonly gif: "image/gif";
189
+ readonly webp: "image/webp";
190
+ readonly bmp: "image/bmp";
191
+ readonly ico: "image/x-icon";
192
+ readonly avif: "image/avif";
193
+ readonly jfif: "image/jfif";
194
+ readonly "excalidraw.svg": "image/svg+xml";
195
+ readonly "excalidraw.png": "image/png";
196
+ readonly binary: "application/octet-stream";
197
+ readonly text: "text/plain";
198
+ readonly html: "text/html";
199
+ readonly json: "application/json";
200
+ readonly excalidraw: "application/vnd.excalidraw+json";
201
+ readonly excalidrawlib: "application/vnd.excalidrawlib+json";
202
+ readonly excalidrawlibIds: "application/vnd.excalidrawlib.ids+json";
203
+ };
204
+ export declare const ALLOWED_PASTE_MIME_TYPES: readonly ["text/plain", "text/html", ...("image/svg+xml" | "image/png" | "image/jpeg" | "image/gif" | "image/webp" | "image/bmp" | "image/x-icon" | "image/avif" | "image/jfif")[]];
205
+ export declare const EXPORT_IMAGE_TYPES: {
206
+ readonly png: "png";
207
+ readonly svg: "svg";
208
+ readonly clipboard: "clipboard";
209
+ };
210
+ export declare const EXPORT_DATA_TYPES: {
211
+ readonly excalidraw: "excalidraw";
212
+ readonly excalidrawClipboard: "excalidraw/clipboard";
213
+ readonly excalidrawLibrary: "excalidrawlib";
214
+ readonly excalidrawClipboardWithAPI: "excalidraw-api/clipboard";
215
+ };
216
+ export declare const getExportSource: () => string;
217
+ export declare const IMAGE_RENDER_TIMEOUT = 500;
218
+ export declare const TAP_TWICE_TIMEOUT = 300;
219
+ export declare const TOUCH_CTX_MENU_TIMEOUT = 500;
220
+ export declare const TITLE_TIMEOUT = 10000;
221
+ export declare const VERSION_TIMEOUT = 30000;
222
+ export declare const SCROLL_TIMEOUT = 100;
223
+ export declare const ZOOM_STEP = 0.1;
224
+ export declare const MIN_ZOOM = 0.1;
225
+ export declare const MAX_ZOOM = 30;
226
+ export declare const HYPERLINK_TOOLTIP_DELAY = 300;
227
+ export declare const IDLE_THRESHOLD = 60000;
228
+ export declare const ACTIVE_THRESHOLD = 3000;
229
+ export declare const URL_QUERY_KEYS: {
230
+ readonly addLibrary: "addLibrary";
231
+ };
232
+ export declare const URL_HASH_KEYS: {
233
+ readonly addLibrary: "addLibrary";
234
+ };
235
+ export declare const DEFAULT_UI_OPTIONS: AppProps["UIOptions"];
236
+ export declare const MAX_DECIMALS_FOR_SVG_EXPORT = 2;
237
+ export declare const EXPORT_SCALES: number[];
238
+ export declare const DEFAULT_EXPORT_PADDING = 10;
239
+ export declare const DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT = 1440;
240
+ export declare const MAX_ALLOWED_FILE_BYTES: number;
241
+ export declare const SVG_NS = "http://www.w3.org/2000/svg";
242
+ export declare const SVG_DOCUMENT_PREAMBLE = "<?xml version=\"1.0\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n";
243
+ export declare const ENCRYPTION_KEY_BITS = 128;
244
+ export declare const VERSIONS: {
245
+ readonly excalidraw: 2;
246
+ readonly excalidrawLibrary: 2;
247
+ };
248
+ export declare const BOUND_TEXT_PADDING = 5;
249
+ export declare const ARROW_LABEL_WIDTH_FRACTION = 0.7;
250
+ export declare const ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO = 11;
251
+ export declare const VERTICAL_ALIGN: {
252
+ TOP: string;
253
+ MIDDLE: string;
254
+ BOTTOM: string;
255
+ };
256
+ export declare const TEXT_ALIGN: {
257
+ LEFT: string;
258
+ CENTER: string;
259
+ RIGHT: string;
260
+ };
261
+ export declare const ELEMENT_READY_TO_ERASE_OPACITY = 20;
262
+ export declare const DEFAULT_PROPORTIONAL_RADIUS = 0.25;
263
+ export declare const DEFAULT_ADAPTIVE_RADIUS = 32;
264
+ export declare const ROUNDNESS: {
265
+ readonly LEGACY: 1;
266
+ readonly PROPORTIONAL_RADIUS: 2;
267
+ readonly ADAPTIVE_RADIUS: 3;
268
+ };
269
+ export declare const ROUGHNESS: {
270
+ readonly architect: 0;
271
+ readonly artist: 1;
272
+ readonly cartoonist: 2;
273
+ };
274
+ export declare const STROKE_WIDTH: {
275
+ readonly thin: 1;
276
+ readonly bold: 2;
277
+ readonly extraBold: 4;
278
+ };
279
+ export declare const DEFAULT_ELEMENT_PROPS: {
280
+ strokeColor: ExcalidrawElement["strokeColor"];
281
+ backgroundColor: ExcalidrawElement["backgroundColor"];
282
+ fillStyle: ExcalidrawElement["fillStyle"];
283
+ strokeWidth: ExcalidrawElement["strokeWidth"];
284
+ strokeStyle: ExcalidrawElement["strokeStyle"];
285
+ roughness: ExcalidrawElement["roughness"];
286
+ opacity: ExcalidrawElement["opacity"];
287
+ locked: ExcalidrawElement["locked"];
288
+ };
289
+ export declare const LIBRARY_SIDEBAR_TAB = "library";
290
+ export declare const CANVAS_SEARCH_TAB = "search";
291
+ export declare const DEFAULT_SIDEBAR: {
292
+ readonly name: "default";
293
+ readonly defaultTab: "library";
294
+ };
295
+ export declare const LIBRARY_DISABLED_TYPES: Set<"embeddable" | "iframe" | "image">;
296
+ export declare const TOOL_TYPE: {
297
+ readonly selection: "selection";
298
+ readonly lasso: "lasso";
299
+ readonly rectangle: "rectangle";
300
+ readonly diamond: "diamond";
301
+ readonly ellipse: "ellipse";
302
+ readonly triangle: "triangle";
303
+ readonly hexagon: "hexagon";
304
+ readonly heart: "heart";
305
+ readonly star: "star";
306
+ readonly arrow: "arrow";
307
+ readonly line: "line";
308
+ readonly freedraw: "freedraw";
309
+ readonly text: "text";
310
+ readonly image: "image";
311
+ readonly eraser: "eraser";
312
+ readonly hand: "hand";
313
+ readonly frame: "frame";
314
+ readonly magicframe: "magicframe";
315
+ readonly embeddable: "embeddable";
316
+ readonly laser: "laser";
317
+ };
318
+ export declare const EDITOR_LS_KEYS: {
319
+ readonly OAI_API_KEY: "excalidraw-oai-api-key";
320
+ readonly MERMAID_TO_EXCALIDRAW: "mermaid-to-excalidraw";
321
+ readonly PUBLISH_LIBRARY: "publish-library-data";
322
+ };
323
+ /**
324
+ * not translated as this is used only in public, stateless API as default value
325
+ * where filename is optional and we can't retrieve name from app state
326
+ */
327
+ export declare const DEFAULT_FILENAME = "Untitled";
328
+ export declare const STATS_PANELS: {
329
+ readonly generalStats: 1;
330
+ readonly elementProperties: 2;
331
+ };
332
+ export declare const MIN_WIDTH_OR_HEIGHT = 1;
333
+ export declare const ARROW_TYPE: {
334
+ [T in AppState["currentItemArrowType"]]: T;
335
+ };
336
+ export declare const DEFAULT_REDUCED_GLOBAL_ALPHA = 0.3;
337
+ export declare const ELEMENT_LINK_KEY = "element";
338
+ /** used in tests */
339
+ export declare const ORIG_ID: unique symbol;
340
+ export declare enum UserIdleState {
341
+ ACTIVE = "active",
342
+ AWAY = "away",
343
+ IDLE = "idle"
344
+ }
345
+ /**
346
+ * distance at which we merge points instead of adding a new merge-point
347
+ * when converting a line to a polygon (merge currently means overlaping
348
+ * the start and end points)
349
+ */
350
+ export declare const LINE_POLYGON_POINT_MERGE_DISTANCE = 20;
351
+ export declare const DOUBLE_TAP_POSITION_THRESHOLD = 35;
352
+ export declare const BIND_MODE_TIMEOUT = 700;
353
+ export declare const MOBILE_ACTION_BUTTON_BG: {
354
+ readonly background: "var(--mobile-action-button-bg)";
355
+ };
@@ -0,0 +1,34 @@
1
+ export type StylesPanelMode = "compact" | "full" | "mobile";
2
+ export type EditorInterface = Readonly<{
3
+ formFactor: "phone" | "tablet" | "desktop";
4
+ desktopUIMode: "compact" | "full";
5
+ userAgent: Readonly<{
6
+ isMobileDevice: boolean;
7
+ platform: "ios" | "android" | "other" | "unknown";
8
+ }>;
9
+ isTouchScreen: boolean;
10
+ canFitSidebar: boolean;
11
+ isLandscape: boolean;
12
+ }>;
13
+ export declare const MQ_MAX_MOBILE = 599;
14
+ export declare const MQ_MAX_WIDTH_LANDSCAPE = 1000;
15
+ export declare const MQ_MAX_HEIGHT_LANDSCAPE = 500;
16
+ export declare const MQ_MIN_TABLET: number;
17
+ export declare const MQ_MAX_TABLET = 1400;
18
+ export declare const MQ_MIN_WIDTH_DESKTOP = 1440;
19
+ export declare const MQ_RIGHT_SIDEBAR_MIN_WIDTH = 1229;
20
+ export declare const isDarwin: boolean;
21
+ export declare const isWindows: boolean;
22
+ export declare const isAndroid: boolean;
23
+ export declare const isFirefox: boolean;
24
+ export declare const isChrome: boolean;
25
+ export declare const isSafari: boolean;
26
+ export declare const isIOS: boolean;
27
+ export declare const isBrave: () => boolean;
28
+ export declare const isMobileBreakpoint: (width: number, height: number) => boolean;
29
+ export declare const isTabletBreakpoint: (editorWidth: number, editorHeight: number) => boolean;
30
+ export declare const getFormFactor: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
31
+ export declare const deriveStylesPanelMode: (editorInterface: EditorInterface) => StylesPanelMode;
32
+ export declare const createUserAgentDescriptor: (userAgentString: string) => EditorInterface["userAgent"];
33
+ export declare const loadDesktopUIModePreference: () => "compact" | "full" | null;
34
+ export declare const setDesktopUIMode: (mode: EditorInterface["desktopUIMode"]) => "compact" | "full" | undefined;
@@ -0,0 +1,16 @@
1
+ import type { UnsubscribeCallback } from "@excalidraw/excalidraw/types";
2
+ type Subscriber<T extends any[]> = (...payload: T) => void;
3
+ export declare class Emitter<T extends any[] = []> {
4
+ subscribers: Subscriber<T>[];
5
+ /**
6
+ * Attaches subscriber
7
+ *
8
+ * @returns unsubscribe function
9
+ */
10
+ on(...handlers: Subscriber<T>[] | Subscriber<T>[][]): UnsubscribeCallback;
11
+ once(...handlers: Subscriber<T>[] | Subscriber<T>[][]): UnsubscribeCallback;
12
+ off(...handlers: Subscriber<T>[] | Subscriber<T>[][]): void;
13
+ trigger(...payload: T): this;
14
+ clear(): void;
15
+ }
16
+ export {};