@excalidraw/excalidraw 0.17.1-88812e0 → 0.17.1-96eeec5

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 (316) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/browser/dev/excalidraw-assets-dev/{chunk-47LVF2XL.js → chunk-DEYXWPUO.js} +4933 -1520
  3. package/dist/browser/dev/excalidraw-assets-dev/chunk-DEYXWPUO.js.map +7 -0
  4. package/dist/browser/dev/excalidraw-assets-dev/{chunk-XOM7LNOU.js → chunk-EM6LVGFW.js} +27 -4
  5. package/dist/browser/dev/excalidraw-assets-dev/chunk-EM6LVGFW.js.map +7 -0
  6. package/dist/browser/dev/excalidraw-assets-dev/{dist-ITJNUBZF.js → dist-6QVAH5JA.js} +36 -14
  7. package/dist/browser/dev/excalidraw-assets-dev/dist-6QVAH5JA.js.map +7 -0
  8. package/dist/browser/dev/excalidraw-assets-dev/{en-TR4QLF5E.js → en-AZFA5HJJ.js} +4 -2
  9. package/dist/browser/dev/excalidraw-assets-dev/{image-LHMGJWTI.js → image-5XCR4WHS.js} +2 -2
  10. package/dist/browser/dev/index.css +157 -62
  11. package/dist/browser/dev/index.css.map +3 -3
  12. package/dist/browser/dev/index.js +12016 -7663
  13. package/dist/browser/dev/index.js.map +4 -4
  14. package/dist/browser/prod/excalidraw-assets/{chunk-5SYIAZGL.js → chunk-7DXALCB2.js} +5 -5
  15. package/dist/browser/prod/excalidraw-assets/chunk-ODWTVSS7.js +68 -0
  16. package/dist/browser/prod/excalidraw-assets/dist-567JAXHK.js +7 -0
  17. package/dist/browser/prod/excalidraw-assets/en-6E7MYLWO.js +1 -0
  18. package/dist/browser/prod/excalidraw-assets/image-LQAMCFQI.js +1 -0
  19. package/dist/browser/prod/index.css +1 -1
  20. package/dist/browser/prod/index.js +69 -51
  21. package/dist/dev/{en-XW4JO6VX.json → en-EB2MBPAV.json} +24 -3
  22. package/dist/dev/index.css +157 -62
  23. package/dist/dev/index.css.map +3 -3
  24. package/dist/dev/index.js +18250 -16114
  25. package/dist/dev/index.js.map +4 -4
  26. package/dist/excalidraw/actions/actionAddToLibrary.d.ts +15 -6
  27. package/dist/excalidraw/actions/actionAlign.d.ts +8 -8
  28. package/dist/excalidraw/actions/actionBoundText.d.ts +14 -8
  29. package/dist/excalidraw/actions/actionBoundText.js +3 -1
  30. package/dist/excalidraw/actions/actionCanvas.d.ts +64 -28
  31. package/dist/excalidraw/actions/actionCanvas.js +1 -1
  32. package/dist/excalidraw/actions/actionClipboard.d.ts +40 -19
  33. package/dist/excalidraw/actions/actionDeleteSelected.d.ts +17 -8
  34. package/dist/excalidraw/actions/actionDistribute.d.ts +4 -4
  35. package/dist/excalidraw/actions/actionDuplicateSelection.d.ts +3 -3
  36. package/dist/excalidraw/actions/actionElementLock.d.ts +11 -5
  37. package/dist/excalidraw/actions/actionExport.d.ts +48 -21
  38. package/dist/excalidraw/actions/actionFinalize.d.ts +11 -5
  39. package/dist/excalidraw/actions/actionFinalize.js +1 -1
  40. package/dist/excalidraw/actions/actionFlip.d.ts +4 -4
  41. package/dist/excalidraw/actions/actionFlip.js +5 -6
  42. package/dist/excalidraw/actions/actionFrame.d.ts +328 -8
  43. package/dist/excalidraw/actions/actionGroup.d.ts +320 -4
  44. package/dist/excalidraw/actions/actionHistory.d.ts +3 -3
  45. package/dist/excalidraw/actions/actionHistory.js +4 -4
  46. package/dist/excalidraw/actions/actionLinearEditor.d.ts +9 -4
  47. package/dist/excalidraw/actions/actionLinearEditor.js +19 -4
  48. package/dist/excalidraw/actions/actionLink.d.ts +5 -2
  49. package/dist/excalidraw/actions/actionMenu.d.ts +15 -6
  50. package/dist/excalidraw/actions/actionNavigate.d.ts +11 -5
  51. package/dist/excalidraw/actions/actionProperties.d.ts +67 -28
  52. package/dist/excalidraw/actions/actionProperties.js +1 -1
  53. package/dist/excalidraw/actions/actionSelectAll.d.ts +6 -3
  54. package/dist/excalidraw/actions/actionStyles.d.ts +9 -3
  55. package/dist/excalidraw/actions/actionTextAutoResize.d.ts +17 -0
  56. package/dist/excalidraw/actions/actionTextAutoResize.js +38 -0
  57. package/dist/excalidraw/actions/actionToggleGridMode.d.ts +6 -3
  58. package/dist/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +5 -2
  59. package/dist/excalidraw/actions/actionToggleStats.d.ts +6 -2
  60. package/dist/excalidraw/actions/actionToggleStats.js +4 -3
  61. package/dist/excalidraw/actions/actionToggleViewMode.d.ts +5 -2
  62. package/dist/excalidraw/actions/actionToggleZenMode.d.ts +5 -2
  63. package/dist/excalidraw/actions/actionZindex.d.ts +8 -4
  64. package/dist/excalidraw/actions/actionZindex.js +4 -0
  65. package/dist/excalidraw/actions/manager.d.ts +3 -3
  66. package/dist/excalidraw/actions/register.d.ts +1 -1
  67. package/dist/excalidraw/actions/shortcuts.d.ts +2 -2
  68. package/dist/excalidraw/actions/types.d.ts +6 -6
  69. package/dist/excalidraw/align.d.ts +1 -1
  70. package/dist/excalidraw/animated-trail.d.ts +2 -2
  71. package/dist/excalidraw/appState.d.ts +5 -2
  72. package/dist/excalidraw/appState.js +6 -3
  73. package/dist/excalidraw/change.d.ts +4 -4
  74. package/dist/excalidraw/change.js +14 -7
  75. package/dist/excalidraw/charts.d.ts +1 -1
  76. package/dist/excalidraw/clients.d.ts +2 -2
  77. package/dist/excalidraw/clients.js +1 -1
  78. package/dist/excalidraw/clipboard.d.ts +3 -3
  79. package/dist/excalidraw/colors.d.ts +1 -1
  80. package/dist/excalidraw/components/Actions.d.ts +3 -3
  81. package/dist/excalidraw/components/Actions.js +9 -6
  82. package/dist/excalidraw/components/App.d.ts +10 -16
  83. package/dist/excalidraw/components/App.js +190 -142
  84. package/dist/excalidraw/components/ButtonIconSelect.js +1 -1
  85. package/dist/excalidraw/components/CheckboxItem.js +1 -1
  86. package/dist/excalidraw/components/ColorPicker/ColorInput.d.ts +1 -1
  87. package/dist/excalidraw/components/ColorPicker/ColorInput.js +1 -1
  88. package/dist/excalidraw/components/ColorPicker/ColorPicker.d.ts +4 -4
  89. package/dist/excalidraw/components/ColorPicker/ColorPicker.js +1 -1
  90. package/dist/excalidraw/components/ColorPicker/Picker.d.ts +3 -3
  91. package/dist/excalidraw/components/ColorPicker/PickerColorList.d.ts +1 -1
  92. package/dist/excalidraw/components/ColorPicker/PickerHeading.d.ts +1 -1
  93. package/dist/excalidraw/components/ColorPicker/ShadeList.d.ts +1 -1
  94. package/dist/excalidraw/components/ColorPicker/TopPicks.d.ts +1 -1
  95. package/dist/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +2 -2
  96. package/dist/excalidraw/components/ColorPicker/colorPickerUtils.js +1 -1
  97. package/dist/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -2
  98. package/dist/excalidraw/components/ColorPicker/keyboardNavHandlers.js +1 -1
  99. package/dist/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -1
  100. package/dist/excalidraw/components/CommandPalette/CommandPalette.js +5 -5
  101. package/dist/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -1
  102. package/dist/excalidraw/components/CommandPalette/types.d.ts +3 -3
  103. package/dist/excalidraw/components/ConfirmDialog.d.ts +1 -1
  104. package/dist/excalidraw/components/ContextMenu.d.ts +2 -2
  105. package/dist/excalidraw/components/ContextMenu.js +2 -2
  106. package/dist/excalidraw/components/DarkModeToggle.d.ts +1 -1
  107. package/dist/excalidraw/components/DefaultSidebar.d.ts +2 -2
  108. package/dist/excalidraw/components/Dialog.js +1 -1
  109. package/dist/excalidraw/components/DialogActionButton.d.ts +1 -1
  110. package/dist/excalidraw/components/EyeDropper.d.ts +2 -2
  111. package/dist/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
  112. package/dist/excalidraw/components/FollowMode/FollowMode.js +1 -1
  113. package/dist/excalidraw/components/HelpDialog.js +1 -1
  114. package/dist/excalidraw/components/HintViewer.d.ts +1 -1
  115. package/dist/excalidraw/components/IconPicker.js +2 -2
  116. package/dist/excalidraw/components/ImageExportDialog.d.ts +1 -1
  117. package/dist/excalidraw/components/InitializeApp.d.ts +2 -2
  118. package/dist/excalidraw/components/JSONExportDialog.d.ts +3 -3
  119. package/dist/excalidraw/components/LayerUI.d.ts +4 -4
  120. package/dist/excalidraw/components/LayerUI.js +10 -7
  121. package/dist/excalidraw/components/LibraryMenu.d.ts +2 -2
  122. package/dist/excalidraw/components/LibraryMenuBrowseButton.d.ts +1 -1
  123. package/dist/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  124. package/dist/excalidraw/components/LibraryMenuHeaderContent.d.ts +2 -2
  125. package/dist/excalidraw/components/LibraryMenuItems.d.ts +1 -1
  126. package/dist/excalidraw/components/LibraryMenuSection.d.ts +5 -4
  127. package/dist/excalidraw/components/LibraryUnit.d.ts +2 -2
  128. package/dist/excalidraw/components/LoadingMessage.d.ts +1 -1
  129. package/dist/excalidraw/components/MagicSettings.js +2 -2
  130. package/dist/excalidraw/components/MobileMenu.d.ts +3 -3
  131. package/dist/excalidraw/components/MobileMenu.js +2 -6
  132. package/dist/excalidraw/components/Modal.d.ts +1 -1
  133. package/dist/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  134. package/dist/excalidraw/components/PasteChartDialog.d.ts +1 -1
  135. package/dist/excalidraw/components/PasteChartDialog.js +1 -1
  136. package/dist/excalidraw/components/PublishLibrary.d.ts +1 -1
  137. package/dist/excalidraw/components/SVGLayer.d.ts +1 -1
  138. package/dist/excalidraw/components/Sidebar/Sidebar.js +1 -1
  139. package/dist/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -1
  140. package/dist/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -1
  141. package/dist/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
  142. package/dist/excalidraw/components/Sidebar/common.d.ts +1 -1
  143. package/dist/excalidraw/components/Stats/Angle.d.ts +12 -0
  144. package/dist/excalidraw/components/Stats/Angle.js +52 -0
  145. package/dist/excalidraw/components/Stats/Collapsible.d.ts +9 -0
  146. package/dist/excalidraw/components/Stats/Collapsible.js +12 -0
  147. package/dist/excalidraw/components/Stats/Dimension.d.ts +12 -0
  148. package/dist/excalidraw/components/Stats/Dimension.js +67 -0
  149. package/dist/excalidraw/components/Stats/DragInput.d.ts +32 -0
  150. package/dist/excalidraw/components/Stats/DragInput.js +174 -0
  151. package/dist/excalidraw/components/Stats/FontSize.d.ts +12 -0
  152. package/dist/excalidraw/components/Stats/FontSize.js +50 -0
  153. package/dist/excalidraw/components/Stats/MultiAngle.d.ts +12 -0
  154. package/dist/excalidraw/components/Stats/MultiAngle.js +66 -0
  155. package/dist/excalidraw/components/Stats/MultiDimension.d.ts +15 -0
  156. package/dist/excalidraw/components/Stats/MultiDimension.js +197 -0
  157. package/dist/excalidraw/components/Stats/MultiFontSize.d.ts +13 -0
  158. package/dist/excalidraw/components/Stats/MultiFontSize.js +72 -0
  159. package/dist/excalidraw/components/Stats/MultiPosition.d.ts +15 -0
  160. package/dist/excalidraw/components/Stats/MultiPosition.js +100 -0
  161. package/dist/excalidraw/components/Stats/Position.d.ts +13 -0
  162. package/dist/excalidraw/components/Stats/Position.js +39 -0
  163. package/dist/excalidraw/components/Stats/index.d.ts +16 -0
  164. package/dist/excalidraw/components/Stats/index.js +78 -0
  165. package/dist/excalidraw/components/Stats/utils.d.ts +25 -0
  166. package/dist/excalidraw/components/Stats/utils.js +158 -0
  167. package/dist/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +1 -1
  168. package/dist/excalidraw/components/TTDDialog/TTDDialog.js +2 -2
  169. package/dist/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +1 -1
  170. package/dist/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +1 -1
  171. package/dist/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +1 -1
  172. package/dist/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +1 -1
  173. package/dist/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  174. package/dist/excalidraw/components/TTDDialog/common.d.ts +4 -4
  175. package/dist/excalidraw/components/TextField.d.ts +1 -1
  176. package/dist/excalidraw/components/Toast.d.ts +1 -1
  177. package/dist/excalidraw/components/ToolButton.d.ts +3 -2
  178. package/dist/excalidraw/components/Trans.d.ts +1 -1
  179. package/dist/excalidraw/components/UserList.d.ts +1 -1
  180. package/dist/excalidraw/components/canvases/InteractiveCanvas.d.ts +3 -2
  181. package/dist/excalidraw/components/canvases/InteractiveCanvas.js +4 -2
  182. package/dist/excalidraw/components/canvases/StaticCanvas.d.ts +2 -2
  183. package/dist/excalidraw/components/canvases/StaticCanvas.js +2 -2
  184. package/dist/excalidraw/components/dropdownMenu/DropdownMenuItem.js +2 -2
  185. package/dist/excalidraw/components/footer/Footer.d.ts +2 -2
  186. package/dist/excalidraw/components/hyperlink/Hyperlink.d.ts +2 -2
  187. package/dist/excalidraw/components/hyperlink/helpers.d.ts +3 -3
  188. package/dist/excalidraw/components/icons.d.ts +6 -2
  189. package/dist/excalidraw/components/icons.js +22 -6
  190. package/dist/excalidraw/constants.d.ts +8 -2
  191. package/dist/excalidraw/constants.js +8 -1
  192. package/dist/excalidraw/context/ui-appState.d.ts +1 -1
  193. package/dist/excalidraw/cursor.d.ts +1 -1
  194. package/dist/excalidraw/data/EditorLocalStorage.d.ts +2 -2
  195. package/dist/excalidraw/data/blob.d.ts +5 -5
  196. package/dist/excalidraw/data/filesystem.d.ts +2 -1
  197. package/dist/excalidraw/data/index.d.ts +4 -4
  198. package/dist/excalidraw/data/json.d.ts +3 -3
  199. package/dist/excalidraw/data/library.d.ts +3 -3
  200. package/dist/excalidraw/data/magic.d.ts +3 -3
  201. package/dist/excalidraw/data/reconcile.d.ts +3 -3
  202. package/dist/excalidraw/data/resave.d.ts +2 -2
  203. package/dist/excalidraw/data/restore.d.ts +3 -3
  204. package/dist/excalidraw/data/restore.js +16 -1
  205. package/dist/excalidraw/data/transform.d.ts +3 -3
  206. package/dist/excalidraw/data/types.d.ts +3 -3
  207. package/dist/excalidraw/element/ElementCanvasButtons.d.ts +1 -1
  208. package/dist/excalidraw/element/binding.d.ts +7 -21
  209. package/dist/excalidraw/element/binding.js +127 -102
  210. package/dist/excalidraw/element/bounds.d.ts +3 -3
  211. package/dist/excalidraw/element/collision.d.ts +3 -3
  212. package/dist/excalidraw/element/collision.js +1 -1
  213. package/dist/excalidraw/element/containerCache.d.ts +1 -1
  214. package/dist/excalidraw/element/dragElements.d.ts +4 -4
  215. package/dist/excalidraw/element/dragElements.js +27 -3
  216. package/dist/excalidraw/element/embeddable.d.ts +8 -5
  217. package/dist/excalidraw/element/image.d.ts +2 -2
  218. package/dist/excalidraw/element/index.d.ts +2 -2
  219. package/dist/excalidraw/element/index.js +1 -1
  220. package/dist/excalidraw/element/linearElementEditor.d.ts +8 -5
  221. package/dist/excalidraw/element/linearElementEditor.js +7 -4
  222. package/dist/excalidraw/element/mutateElement.d.ts +2 -2
  223. package/dist/excalidraw/element/mutateElement.js +1 -1
  224. package/dist/excalidraw/element/newElement.d.ts +5 -8
  225. package/dist/excalidraw/element/newElement.js +16 -14
  226. package/dist/excalidraw/element/resizeElements.d.ts +11 -3
  227. package/dist/excalidraw/element/resizeElements.js +75 -23
  228. package/dist/excalidraw/element/resizeTest.d.ts +4 -4
  229. package/dist/excalidraw/element/resizeTest.js +2 -4
  230. package/dist/excalidraw/element/showSelectedShapeActions.d.ts +2 -2
  231. package/dist/excalidraw/element/sizeHelpers.d.ts +2 -2
  232. package/dist/excalidraw/element/sortElements.d.ts +1 -1
  233. package/dist/excalidraw/element/textElement.d.ts +5 -4
  234. package/dist/excalidraw/element/textElement.js +11 -3
  235. package/dist/excalidraw/element/textWysiwyg.d.ts +12 -6
  236. package/dist/excalidraw/element/textWysiwyg.js +38 -17
  237. package/dist/excalidraw/element/transformHandles.d.ts +3 -3
  238. package/dist/excalidraw/element/transformHandles.js +0 -10
  239. package/dist/excalidraw/element/typeChecks.d.ts +4 -4
  240. package/dist/excalidraw/element/types.d.ts +11 -4
  241. package/dist/excalidraw/emitter.d.ts +1 -1
  242. package/dist/excalidraw/fractionalIndex.d.ts +1 -1
  243. package/dist/excalidraw/fractionalIndex.js +2 -4
  244. package/dist/excalidraw/frame.d.ts +3 -3
  245. package/dist/excalidraw/gatransforms.d.ts +1 -1
  246. package/dist/excalidraw/gesture.d.ts +1 -1
  247. package/dist/excalidraw/groups.d.ts +4 -4
  248. package/dist/excalidraw/history.d.ts +4 -4
  249. package/dist/excalidraw/hooks/useEmitter.d.ts +1 -1
  250. package/dist/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  251. package/dist/excalidraw/i18n.d.ts +1 -1
  252. package/dist/excalidraw/index.d.ts +1 -1
  253. package/dist/excalidraw/jotai.d.ts +1 -1
  254. package/dist/excalidraw/laser-trails.d.ts +3 -2
  255. package/dist/excalidraw/locales/en.json +24 -3
  256. package/dist/excalidraw/math.d.ts +4 -2
  257. package/dist/excalidraw/math.js +6 -0
  258. package/dist/excalidraw/mermaid.d.ts +2 -0
  259. package/dist/excalidraw/mermaid.js +28 -0
  260. package/dist/excalidraw/points.d.ts +1 -1
  261. package/dist/excalidraw/queue.d.ts +1 -1
  262. package/dist/excalidraw/renderer/helpers.d.ts +2 -2
  263. package/dist/excalidraw/renderer/interactiveScene.d.ts +2 -2
  264. package/dist/excalidraw/renderer/interactiveScene.js +32 -6
  265. package/dist/excalidraw/renderer/renderElement.d.ts +4 -4
  266. package/dist/excalidraw/renderer/renderElement.js +5 -5
  267. package/dist/excalidraw/renderer/renderSnaps.d.ts +1 -1
  268. package/dist/excalidraw/renderer/staticScene.d.ts +1 -1
  269. package/dist/excalidraw/renderer/staticSvgScene.d.ts +4 -4
  270. package/dist/excalidraw/scene/Fonts.d.ts +2 -4
  271. package/dist/excalidraw/scene/Fonts.js +12 -15
  272. package/dist/excalidraw/scene/Renderer.d.ts +4 -4
  273. package/dist/excalidraw/scene/Renderer.js +2 -3
  274. package/dist/excalidraw/scene/Scene.d.ts +16 -7
  275. package/dist/excalidraw/scene/Scene.js +17 -8
  276. package/dist/excalidraw/scene/Shape.d.ts +1 -1
  277. package/dist/excalidraw/scene/ShapeCache.d.ts +4 -4
  278. package/dist/excalidraw/scene/comparisons.d.ts +2 -2
  279. package/dist/excalidraw/scene/export.d.ts +2 -2
  280. package/dist/excalidraw/scene/export.js +2 -2
  281. package/dist/excalidraw/scene/scroll.d.ts +2 -2
  282. package/dist/excalidraw/scene/scrollbars.d.ts +3 -3
  283. package/dist/excalidraw/scene/selection.d.ts +2 -2
  284. package/dist/excalidraw/scene/types.d.ts +6 -8
  285. package/dist/excalidraw/scene/zoom.d.ts +1 -1
  286. package/dist/excalidraw/shapes.d.ts +7 -0
  287. package/dist/excalidraw/shapes.js +40 -0
  288. package/dist/excalidraw/snapping.d.ts +4 -4
  289. package/dist/excalidraw/snapping.js +2 -1
  290. package/dist/excalidraw/store.d.ts +34 -4
  291. package/dist/excalidraw/store.js +27 -0
  292. package/dist/excalidraw/types.d.ts +25 -20
  293. package/dist/excalidraw/utils.d.ts +4 -4
  294. package/dist/excalidraw/zindex.d.ts +2 -2
  295. package/dist/prod/{en-XW4JO6VX.json → en-EB2MBPAV.json} +24 -3
  296. package/dist/prod/index.css +1 -1
  297. package/dist/prod/index.js +39 -39
  298. package/dist/utils/bbox.d.ts +2 -2
  299. package/dist/utils/collision.d.ts +1 -1
  300. package/dist/utils/export.d.ts +2 -2
  301. package/dist/utils/geometry/geometry.d.ts +1 -1
  302. package/dist/utils/geometry/shape.d.ts +1 -1
  303. package/dist/utils/withinBounds.d.ts +1 -1
  304. package/history.ts +4 -4
  305. package/package.json +2 -2
  306. package/dist/browser/dev/excalidraw-assets-dev/chunk-47LVF2XL.js.map +0 -7
  307. package/dist/browser/dev/excalidraw-assets-dev/chunk-XOM7LNOU.js.map +0 -7
  308. package/dist/browser/dev/excalidraw-assets-dev/dist-ITJNUBZF.js.map +0 -7
  309. package/dist/browser/prod/excalidraw-assets/chunk-4SNEEDZH.js +0 -55
  310. package/dist/browser/prod/excalidraw-assets/dist-54276HPL.js +0 -6
  311. package/dist/browser/prod/excalidraw-assets/en-7GPZE2Y2.js +0 -1
  312. package/dist/browser/prod/excalidraw-assets/image-ISQJGWLB.js +0 -1
  313. package/dist/excalidraw/components/Stats.d.ts +0 -11
  314. package/dist/excalidraw/components/Stats.js +0 -13
  315. /package/dist/browser/dev/excalidraw-assets-dev/{en-TR4QLF5E.js.map → en-AZFA5HJJ.js.map} +0 -0
  316. /package/dist/browser/dev/excalidraw-assets-dev/{image-LHMGJWTI.js.map → image-5XCR4WHS.js.map} +0 -0
@@ -1,54 +1,73 @@
1
- import{$ as Kn,$a as Zp,$b as ho,$c as ct,$d as _c,$e as Xi,$f as he,A as an,Aa as ut,Ab as gl,Ac as Cl,Ad as Yi,Ae as Gb,Af as _6,Ag as H0,B as Vn,Ba as So,Bb as bl,Bc as Sl,Bd as ft,Be as mu,Bf as L6,Bg as _u,C as sl,Ca as D1,Cb as dn,Cc as tu,Cd as _b,Ce as $r,Cf as P6,Cg as Fe,D as Bp,Da as N1,Db as Ht,Dc as cb,Dd as Lb,De as Vb,Df as R6,Dg as U0,E as qs,Ea as O1,Eb as Xn,Ec as Tl,Ed as Pb,Ee as Oc,Ef as Hc,Eg as we,F as cl,Fa as Vp,Fb as zi,Fc as kl,Fd as Jn,Fe as Kb,Ff as C0,Fg as oa,G as be,Ga as sn,Gb as se,Gc as ou,Gd as zr,Ge as Pl,Gf as vu,Gg as Be,H as Zo,Ha as F1,Hb as qp,Hc as db,Hd as kc,He as pu,Hf as S0,Hg as W0,I as _r,Ia as B1,Ib as xl,Ic as xc,Id as Rb,Ie as Yb,If as bn,Ig as oi,J as Oi,Ja as z1,Jb as Ee,Jc as vc,Jd as Db,Je as Zb,Jf as T0,Jg as Hr,K as f1,Ka as To,Kb as $e,Kc as ru,Kd as W,Ke as jb,Kf as Qi,Kg as Ur,L as zp,La as Kp,Lb as ur,Lc as ue,Ld as Mo,Le as uu,Lf as k0,M as $p,Ma as Xo,Mb as q1,Mc as mb,Md as Oe,Me as Fc,Mf as Uc,N as h1,Na as pl,Nb as Pr,Nc as Il,Nd as Nb,Ne as fu,Nf as I0,O as dl,Oa as lc,Ob as J1,Oc as pb,Od as qo,Oe as hu,Of as Wc,P as g1,Pa as Yn,Pb as Rr,Pc as ub,Pd as hn,Pe as Xb,Pf as Gc,Q as b1,Qa as $1,Qb as Q1,Qc as Al,Qd as iu,Qe as qb,Qf as A0,R as Lr,Ra as H1,Rb as fr,Rc as Ut,Rd as Ob,Re as Jb,Rf as Vc,S as x1,Sa as Zn,Sb as xt,Sc as Ec,Sd as Ic,Se as Qb,Sf as hr,T as Dt,Ta as it,Tb as $i,Tc as yc,Td as Ml,Te as e0,Tf as Eu,U as Js,Ua as F,Ub as eb,Uc as wc,Ud as gn,Ue as t0,Uf as M0,V as v1,Va as Ye,Vb as tb,Vc as fb,Vd as Fb,Ve as o0,Vf as Kc,W as E1,Wa as Qt,Wb as ob,Wc as hb,Wd as Bb,We as r0,Wf as _0,X as y1,Xa as ul,Xb as mn,Xc as gb,Xd as zb,Xe as n0,Xf as L0,Y as w1,Ya as fl,Yb as Hi,Yc as bb,Yd as _l,Ye as i0,Yf as D6,Z as C1,Za as sc,Zb as rb,Zc as xb,Zd as Ac,Ze as a0,Zf as Lo,_ as S1,_a as Yp,_b as nb,_c as vb,_d as Mc,_e as gu,_f as re,a as Mt,aa as Qs,ab as jn,ac as pn,ad as Nr,ae as Lc,af as l0,ag as yu,b as n1,ba as Hp,bb as cc,bc as ko,bd as Cc,be as _o,bf as s0,bg as ti,c as Wn,ca as T1,cb as U1,cc as ib,cd as Eb,ce as P,cf as c0,cg as Nl,d as i1,da as k1,db as W1,dc as Dr,dd as yb,de as $b,df as d0,dg as wu,e as a1,ea as ec,eb as G1,ec as un,ed as wb,ee as au,ef as m0,eg as P0,f as Ar,fa as tc,fb as pe,fc as vl,fd as Cb,fe as Qn,ff as Bc,fg as Yc,g as Ks,ga as Up,gb as V1,gc as eo,gd as Vi,ge as Hb,gf as Rl,gg as R0,h as Ys,ha as I1,hb as dc,hc as ab,hd as nu,he as Zi,hf as p0,hg as D0,i as Zs,ia as A1,ib as K1,ic as El,id as Sb,ie as ji,if as u0,ig as Zc,j as l1,ja as M1,jb as mc,jc as yl,jd as Tb,je as Pc,jf as f0,jg as Cu,k as s1,ka as _1,kb as Fi,kc as fn,kd as Or,ke as lu,kf as h0,kg as Su,l as c1,la as L1,lb as Y1,lc as wl,ld as Wt,le as su,lf as g0,lg as Tu,m as Yo,ma as oc,mb as Bi,mc as Jp,md as Ze,me as M6,mf as zc,mg as N0,n as js,na as ln,nb as hl,nc as Qp,nd as Sc,ne as cu,nf as b0,ng as O0,o as Mr,oa as P1,ob as kt,oc as eu,od as Io,oe as Ll,of as x0,og as F0,p as d1,pa as Wp,pb as cn,pc as Ui,pd as A6,pf as bu,pg as B0,q as m1,qa as R1,qb as pc,qc as lb,qd as Ki,qf as qi,qg as z0,r as al,ra as rc,rb as Z1,rc as fe,rd as Ao,rf as v0,rg as $0,s as ll,sa as Gp,sb as jp,sc as S,sd as Fr,sf as E0,sg as ku,t as Gn,ta as wo,tb as pr,tc as Wi,td as kb,tf as y0,tg as ea,u as Xs,ua as ml,ub as Xp,uc as hc,ud as Nt,ue as Ub,uf as $c,ug as N6,v as p1,va as Co,vb as uc,vc as Gi,vd as Tc,ve as Wb,vf as w0,vg as Iu,w as Op,wa as nc,wb as at,wc as gc,wd as Ib,we as Rc,wf as Ji,wg as Au,x as u1,xa as ic,xb as j1,xc as sb,xd as Br,xe as Dc,xf as ei,xg as ye,y as Fp,ya as jo,yb as X1,yc as qn,yd as Ab,ye as du,yf as xu,yg as Mu,z as Ne,za as ac,zb as fc,zc as bc,zd as Mb,ze as Nc,zf as Dl,zg as ta}from"./excalidraw-assets/chunk-4SNEEDZH.js";import{a as h,b as y}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{E as Np}from"./excalidraw-assets/chunk-5SYIAZGL.js";import{aa as r1}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as t1,d as mr,e as o1,f as v}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var H=mr((WI,G0)=>{h();G0.exports=React});var Q0=mr(nd=>{"use strict";h();var K6=H(),Y6=Symbol.for("react.element"),Z6=Symbol.for("react.fragment"),j6=Object.prototype.hasOwnProperty,X6=K6.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,q6={key:!0,ref:!0,__self:!0,__source:!0};function J0(t,e,o){var r,n={},i=null,a=null;o!==void 0&&(i=""+o),e.key!==void 0&&(i=""+e.key),e.ref!==void 0&&(a=e.ref);for(r in e)j6.call(e,r)&&!q6.hasOwnProperty(r)&&(n[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps,e)n[r]===void 0&&(n[r]=e[r]);return{$$typeof:Y6,type:t,key:i,ref:a,props:n,_owner:X6.current}}nd.Fragment=Z6;nd.jsx=J0;nd.jsxs=J0});var k=mr((u8,ex)=>{"use strict";h();ex.exports=Q0()});var br=mr((P8,ix)=>{h();ix.exports=ReactDOM});var Nh=mr((sG,gw)=>{h();var hw="Expected a function",uw=NaN,KS="[object Symbol]",YS=/^\s+|\s+$/g,ZS=/^[-+]0x[0-9a-f]+$/i,jS=/^0b[01]+$/i,XS=/^0o[0-7]+$/i,qS=parseInt,JS=typeof global=="object"&&global&&global.Object===Object&&global,QS=typeof self=="object"&&self&&self.Object===Object&&self,eT=JS||QS||Function("return this")(),tT=Object.prototype,oT=tT.toString,rT=Math.max,nT=Math.min,Dh=function(){return eT.Date.now()};function iT(t,e,o){var r,n,i,a,l,s,d=0,c=!1,m=!1,u=!0;if(typeof t!="function")throw new TypeError(hw);e=fw(e)||0,_m(o)&&(c=!!o.leading,m="maxWait"in o,i=m?rT(fw(o.maxWait)||0,e):i,u="trailing"in o?!!o.trailing:u);function f(I){var M=r,_=n;return r=n=void 0,d=I,a=t.apply(_,M),a}function b(I){return d=I,l=setTimeout(T,e),c?f(I):a}function x(I){var M=I-s,_=I-d,U=e-M;return m?nT(U,i-_):U}function E(I){var M=I-s,_=I-d;return s===void 0||M>=e||M<0||m&&_>=i}function T(){var I=Dh();if(E(I))return C(I);l=setTimeout(T,x(I))}function C(I){return l=void 0,u&&r?f(I):(r=n=void 0,a)}function w(){l!==void 0&&clearTimeout(l),d=0,r=s=n=l=void 0}function A(){return l===void 0?a:C(Dh())}function z(){var I=Dh(),M=E(I);if(r=arguments,n=this,s=I,M){if(l===void 0)return b(s);if(m)return l=setTimeout(T,e),f(s)}return l===void 0&&(l=setTimeout(T,e)),a}return z.cancel=w,z.flush=A,z}function aT(t,e,o){var r=!0,n=!0;if(typeof t!="function")throw new TypeError(hw);return _m(o)&&(r="leading"in o?!!o.leading:r,n="trailing"in o?!!o.trailing:n),iT(t,e,{leading:r,maxWait:e,trailing:n})}function _m(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function lT(t){return!!t&&typeof t=="object"}function sT(t){return typeof t=="symbol"||lT(t)&&oT.call(t)==KS}function fw(t){if(typeof t=="number")return t;if(sT(t))return uw;if(_m(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=_m(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(YS,"");var o=jS.test(t);return o||XS.test(t)?qS(t.slice(2),o?2:8):ZS.test(t)?uw:+t}gw.exports=aT});var Tw=mr((Cw,Sw)=>{h();(function(){var t=this,e={};typeof Cw<"u"?Sw.exports=e:t.fuzzy=e,e.simpleFilter=function(o,r){return r.filter(function(n){return e.test(o,n)})},e.test=function(o,r){return e.match(o,r)!==null},e.match=function(o,r,n){n=n||{};var i=0,a=[],l=r.length,s=0,d=0,c=n.pre||"",m=n.post||"",u=n.caseSensitive&&r||r.toLowerCase(),f;o=n.caseSensitive&&o||o.toLowerCase();for(var b=0;b<l;b++)f=r[b],u[b]===o[i]?(f=c+f+m,i+=1,d+=1+d):d=0,s+=d,a[a.length]=f;return i===o.length?(s=u===o?1/0:s,{rendered:a.join(""),score:s}):null},e.filter=function(o,r,n){return!r||r.length===0?[]:typeof o!="string"?r:(n=n||{},r.reduce(function(i,a,l,s){var d=a;n.extract&&(d=n.extract(a));var c=e.match(o,d,n);return c!=null&&(i[i.length]={string:c.rendered,score:c.score,index:l,original:a}),i},[]).sort(function(i,a){var l=a.score-i.score;return l||i.index-a.index}))}})()});var Lw=mr(_w=>{"use strict";h();var Ya=H();function ST(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var TT=typeof Object.is=="function"?Object.is:ST,kT=Ya.useState,IT=Ya.useEffect,AT=Ya.useLayoutEffect,MT=Ya.useDebugValue;function _T(t,e){var o=e(),r=kT({inst:{value:o,getSnapshot:e}}),n=r[0].inst,i=r[1];return AT(function(){n.value=o,n.getSnapshot=e,Bh(n)&&i({inst:n})},[t,o,e]),IT(function(){return Bh(n)&&i({inst:n}),t(function(){Bh(n)&&i({inst:n})})},[t]),MT(o),o}function Bh(t){var e=t.getSnapshot;t=t.value;try{var o=e();return!TT(t,o)}catch{return!0}}function LT(t,e){return e()}var PT=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?LT:_T;_w.useSyncExternalStore=Ya.useSyncExternalStore!==void 0?Ya.useSyncExternalStore:PT});var Rw=mr((XV,Pw)=>{"use strict";h();Pw.exports=Lw()});var Nw=mr(Dw=>{"use strict";h();var Rm=H(),RT=Rw();function DT(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var NT=typeof Object.is=="function"?Object.is:DT,OT=RT.useSyncExternalStore,FT=Rm.useRef,BT=Rm.useEffect,zT=Rm.useMemo,$T=Rm.useDebugValue;Dw.useSyncExternalStoreWithSelector=function(t,e,o,r,n){var i=FT(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=zT(function(){function s(f){if(!d){if(d=!0,c=f,f=r(f),n!==void 0&&a.hasValue){var b=a.value;if(n(b,f))return m=b}return m=f}if(b=m,NT(c,f))return b;var x=r(f);return n!==void 0&&n(b,x)?b:(c=f,m=x)}var d=!1,c,m,u=o===void 0?null:o;return[function(){return s(e())},u===null?void 0:function(){return s(u())}]},[e,o,r,n]);var l=OT(t,i[0],i[1]);return BT(function(){a.hasValue=!0,a.value=l},[l]),$T(l),l}});var Fw=mr((eK,Ow)=>{"use strict";h();Ow.exports=Nw()});h();var Dp=v(H(),1);h();var sd=v(H(),1);h();h();h();h();var ht=v(H(),1);h();var O6=0;function V0(t,e){let o=`atom${++O6}`,r={toString:()=>o};return typeof t=="function"?r.read=t:(r.init=t,r.read=n=>n(r),r.write=(n,i,a)=>i(r,typeof a=="function"?a(n(r)):a)),e&&(r.write=e),r}var xn=Symbol(),Pu=t=>!!t[xn],jc=t=>!t[xn].c,Ol=t=>{var e;let{b:o,c:r}=t[xn];r&&(r(),(e=B6.get(o))==null||e())},qc=(t,e)=>{let o=t[xn].o,r=e[xn].o;return o===r||t===r||Pu(o)&&qc(o,e)},Ru=(t,e)=>{let o={b:t,o:e,c:null},r=new Promise(n=>{o.c=()=>{o.c=null,n()},e.finally(o.c)});return r[xn]=o,r},F6=t=>Ru(t[xn].b,t[xn].o),B6=new WeakMap;var Xc=t=>"init"in t,Fl="r",Jc="w",Bl="c",Qc="s",K0="h",z6="n",$6="l",H6="a",U6="m",Y0=t=>{let e=new WeakMap,o=new WeakMap,r=new Map,n,i;if((y&&y.MODE)!=="production"&&(n=new Set,i=new Set),t)for(let[R,N]of t){let K={v:N,r:0,y:!0,d:new Map};(y&&y.MODE)!=="production"&&(Object.freeze(K),Xc(R)||console.warn("Found initial value for derived atom which can cause unexpected behavior",R)),e.set(R,K)}let a=new WeakMap,l=(R,N,K)=>{let Y=a.get(N);Y||(Y=new Map,a.set(N,Y)),K.then(()=>{Y.get(R)===K&&(Y.delete(R),Y.size||a.delete(N))}),Y.set(R,K)},s=R=>{let N=new Set,K=a.get(R);return K&&(a.delete(R),K.forEach((Y,Z)=>{Ol(Y),N.add(Z)})),N},d=new WeakMap,c=R=>{let N=d.get(R);return N||(N=new Map,d.set(R,N)),N},m=(R,N)=>{if(R){let K=c(R),Y=K.get(N);return Y||(Y=m(R.p,N),Y&&"p"in Y&&jc(Y.p)&&(Y=void 0),Y&&K.set(N,Y)),Y}return e.get(N)},u=(R,N,K)=>{if((y&&y.MODE)!=="production"&&Object.freeze(K),R)c(R).set(N,K);else{let Y=e.get(N);e.set(N,K),r.has(N)||r.set(N,Y)}},f=(R,N=new Map,K)=>{if(!K)return N;let Y=new Map,Z=!1;return K.forEach(X=>{var ee;let ne=((ee=m(R,X))==null?void 0:ee.r)||0;Y.set(X,ne),N.get(X)!==ne&&(Z=!0)}),N.size===Y.size&&!Z?N:Y},b=(R,N,K,Y,Z)=>{let X=m(R,N);if(X){if(Z&&(!("p"in X)||!qc(X.p,Z)))return X;"p"in X&&Ol(X.p)}let ee={v:K,r:X?.r||0,y:!0,d:f(R,X?.d,Y)},ne=!X?.y;return!X||!("v"in X)||!Object.is(X.v,K)?(ne=!0,++ee.r,ee.d.has(N)&&(ee.d=new Map(ee.d).set(N,ee.r))):ee.d!==X.d&&(ee.d.size!==X.d.size||!Array.from(ee.d.keys()).every(rt=>X.d.has(rt)))&&(ne=!0,Promise.resolve().then(()=>{oe(R)})),X&&!ne?X:(u(R,N,ee),ee)},x=(R,N,K,Y,Z)=>{let X=m(R,N);if(X){if(Z&&(!("p"in X)||!qc(X.p,Z)))return X;"p"in X&&Ol(X.p)}let ee={e:K,r:(X?.r||0)+1,y:!0,d:f(R,X?.d,Y)};return u(R,N,ee),ee},E=(R,N,K,Y)=>{let Z=m(R,N);if(Z&&"p"in Z){if(qc(Z.p,K)&&!jc(Z.p))return Z.y?Z:{...Z,y:!0};Ol(Z.p)}l(R,N,K);let X={p:K,r:(Z?.r||0)+1,y:!0,d:f(R,Z?.d,Y)};return u(R,N,X),X},T=(R,N,K,Y)=>{if(K instanceof Promise){let Z=Ru(K,K.then(X=>{b(R,N,X,Y,Z)}).catch(X=>{if(X instanceof Promise)return Pu(X)?X.then(()=>{w(R,N,!0)}):X;x(R,N,X,Y,Z)}));return E(R,N,Z,Y)}return b(R,N,K,Y)},C=(R,N)=>{let K=m(R,N);if(K){let Y={...K,y:!1};u(R,N,Y)}else(y&&y.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",N)},w=(R,N,K)=>{if(!K){let Z=m(R,N);if(Z){if(Z.y&&"p"in Z&&!jc(Z.p))return Z;if(Z.d.forEach((X,ee)=>{if(ee!==N)if(!o.has(ee))w(R,ee);else{let ne=m(R,ee);ne&&!ne.y&&w(R,ee)}}),Array.from(Z.d).every(([X,ee])=>{let ne=m(R,X);return ne&&!("p"in ne)&&ne.r===ee}))return Z.y?Z:{...Z,y:!0}}}let Y=new Set;try{let Z=N.read(X=>{Y.add(X);let ee=X===N?m(R,X):w(R,X);if(ee){if("e"in ee)throw ee.e;if("p"in ee)throw ee.p;return ee.v}if(Xc(X))return X.init;throw new Error("no atom init")});return T(R,N,Z,Y)}catch(Z){if(Z instanceof Promise){let X=Pu(Z)&&jc(Z)?F6(Z):Ru(Z,Z);return E(R,N,X,Y)}return x(R,N,Z,Y)}},A=(R,N)=>w(N,R),z=(R,N)=>{let K=o.get(N);return K||(K=O(R,N)),K},I=(R,N)=>!N.l.size&&(!N.t.size||N.t.size===1&&N.t.has(R)),M=(R,N)=>{let K=o.get(N);K&&I(N,K)&&B(R,N)},_=(R,N)=>{let K=o.get(N);K?.t.forEach(Y=>{Y!==N&&(C(R,Y),_(R,Y))})},U=(R,N,K)=>{let Y=!0,Z=(ne,rt)=>{let nt=w(R,ne);if("e"in nt)throw nt.e;if("p"in nt){if(rt?.unstable_promise)return nt.p.then(()=>{let st=m(R,ne);return st&&"p"in st&&st.p===nt.p?new Promise(Ue=>setTimeout(Ue)).then(()=>Z(ne,rt)):Z(ne,rt)});throw(y&&y.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",ne),nt.p}if("v"in nt)return nt.v;throw(y&&y.MODE)!=="production"&&console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",ne),new Error("no value found")},X=(ne,rt)=>{let nt;if(ne===N){if(!Xc(ne))throw new Error("atom not writable");s(ne).forEach(Vs=>{Vs!==R&&T(Vs,ne,rt)});let Ue=m(R,ne),Jt=T(R,ne,rt);Ue!==Jt&&_(R,ne)}else nt=U(R,ne,rt);return Y||oe(R),nt},ee=N.write(Z,X,K);return Y=!1,ee},D=(R,N,K)=>{let Y=U(K,R,N);return oe(K),Y},G=R=>!!R.write,O=(R,N,K)=>{let Y={t:new Set(K&&[K]),l:new Set};if(o.set(N,Y),(y&&y.MODE)!=="production"&&i.add(N),w(void 0,N).d.forEach((X,ee)=>{let ne=o.get(ee);ne?ne.t.add(N):ee!==N&&O(R,ee,N)}),G(N)&&N.onMount){let X=ne=>D(N,ne,R),ee=N.onMount(X);R=void 0,ee&&(Y.u=ee)}return Y},B=(R,N)=>{var K;let Y=(K=o.get(N))==null?void 0:K.u;Y&&Y(),o.delete(N),(y&&y.MODE)!=="production"&&i.delete(N);let Z=m(R,N);Z?("p"in Z&&Ol(Z.p),Z.d.forEach((X,ee)=>{if(ee!==N){let ne=o.get(ee);ne&&(ne.t.delete(N),I(ee,ne)&&B(R,ee))}})):(y&&y.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",N)},te=(R,N,K,Y)=>{let Z=new Set(K.d.keys());Y?.forEach((X,ee)=>{if(Z.has(ee)){Z.delete(ee);return}let ne=o.get(ee);ne&&(ne.t.delete(N),I(ee,ne)&&B(R,ee))}),Z.forEach(X=>{let ee=o.get(X);ee?ee.t.add(N):o.has(N)&&O(R,X,N)})},oe=R=>{if(R){c(R).forEach((K,Y)=>{let Z=e.get(Y);if(K!==Z){let X=o.get(Y);X?.l.forEach(ee=>ee(R))}});return}for(;r.size;){let N=Array.from(r);r.clear(),N.forEach(([K,Y])=>{let Z=m(void 0,K);if(Z&&Z.d!==Y?.d&&te(void 0,K,Z,Y?.d),Y&&!Y.y&&Z?.y)return;let X=o.get(K);X?.l.forEach(ee=>ee())})}(y&&y.MODE)!=="production"&&n.forEach(N=>N())},ve=R=>{c(R).forEach((K,Y)=>{let Z=e.get(Y);(!Z||K.r>Z.r||K.y!==Z.y||K.r===Z.r&&K.d!==Z.d)&&(e.set(Y,K),K.d!==Z?.d&&te(R,Y,K,Z?.d))})},Ie=(R,N)=>{N&&ve(N),oe(void 0)},me=(R,N,K)=>{let Z=z(K,R).l;return Z.add(N),()=>{Z.delete(N),M(K,R)}},j=(R,N)=>{for(let[K,Y]of R)Xc(K)&&(T(N,K,Y),_(N,K));oe(N)};return(y&&y.MODE)!=="production"?{[Fl]:A,[Jc]:D,[Bl]:Ie,[Qc]:me,[K0]:j,[z6]:R=>(n.add(R),()=>{n.delete(R)}),[$6]:()=>i.values(),[H6]:R=>e.get(R),[U6]:R=>o.get(R)}:{[Fl]:A,[Jc]:D,[Bl]:Ie,[Qc]:me,[K0]:j}},Z0=t=>{let e=Y0(t),o=a=>{let l=e[Fl](a);if("e"in l)throw l.e;if(!("p"in l))return l.v},r=a=>new Promise((l,s)=>{let d=e[Fl](a);"e"in d?s(d.e):"p"in d?l(d.p.then(()=>r(a))):l(d.v)});return{get:o,asyncGet:r,set:(a,l)=>e[Jc](a,l),sub:(a,l)=>e[Qc](a,l),SECRET_INTERNAL_store:e}},j0=(t,e)=>({s:e?e(t).SECRET_INTERNAL_store:Y0(t)}),Lu=new Map,Du=t=>(Lu.has(t)||Lu.set(t,(0,ht.createContext)(j0())),Lu.get(t)),ed=({children:t,initialValues:e,scope:o,unstable_createStore:r,unstable_enableVersionedWrite:n})=>{let[i,a]=(0,ht.useState)({});(0,ht.useEffect)(()=>{let d=l.current;d.w&&(d.s[Bl](null,i),delete i.p,d.v=i)},[i]);let l=(0,ht.useRef)();if(!l.current){let d=j0(e,r);if(n){let c=0;d.w=m=>{a(u=>{let f=c?u:{p:u};return m(f),f})},d.v=i,d.r=m=>{++c,m(),--c}}l.current=d}let s=Du(o);return(0,ht.createElement)(s.Provider,{value:l.current},t)};function We(t,e){return V0(t,e)}function zl(t,e){let o=Du(e),r=(0,ht.useContext)(o),{s:n,v:i}=r,a=u=>{let f=n[Fl](t,u);if((y&&y.MODE)!=="production"&&!f.y)throw new Error("should not be invalidated");if("e"in f)throw f.e;if("p"in f)throw f.p;if("v"in f)return f.v;throw new Error("no atom value")},[[l,s,d],c]=(0,ht.useReducer)((u,f)=>{let b=a(f);return Object.is(u[1],b)&&u[2]===t?u:[f,b,t]},i,u=>{let f=a(u);return[u,f,t]}),m=s;return d!==t&&(c(l),m=a(l)),(0,ht.useEffect)(()=>{let{v:u}=r;u&&n[Bl](t,u);let f=n[Qc](t,c,u);return c(u),f},[n,t,r]),(0,ht.useEffect)(()=>{n[Bl](t,l)}),(0,ht.useDebugValue)(m),m}function Wr(t,e){let o=Du(e),{s:r,w:n}=(0,ht.useContext)(o);return(0,ht.useCallback)(a=>{if((y&&y.MODE)!=="production"&&!("write"in t))throw new Error("not writable atom");let l=s=>r[Jc](t,a,s);return n?n(l):l()},[r,n,t])}function Se(t,e){return"scope"in t&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),e=t.scope),[zl(t,e),Wr(t,e)]}var W6=v(H(),1),De=Symbol(),Gt=Z0();var G6=t1({"./locales/ar-SA.json":()=>import("./excalidraw-assets/ar-SA-MV5ZQ2W5.js"),"./locales/az-AZ.json":()=>import("./excalidraw-assets/az-AZ-BK6PNAXT.js"),"./locales/bg-BG.json":()=>import("./excalidraw-assets/bg-BG-GCTBXIHZ.js"),"./locales/bn-BD.json":()=>import("./excalidraw-assets/bn-BD-QTMQMM2A.js"),"./locales/ca-ES.json":()=>import("./excalidraw-assets/ca-ES-CJKR7U4D.js"),"./locales/cs-CZ.json":()=>import("./excalidraw-assets/cs-CZ-E6RD7VRF.js"),"./locales/da-DK.json":()=>import("./excalidraw-assets/da-DK-GA7WAOB4.js"),"./locales/de-DE.json":()=>import("./excalidraw-assets/de-DE-WQGVYODE.js"),"./locales/el-GR.json":()=>import("./excalidraw-assets/el-GR-JRKZ7DCA.js"),"./locales/en.json":()=>import("./excalidraw-assets/en-7GPZE2Y2.js"),"./locales/es-ES.json":()=>import("./excalidraw-assets/es-ES-NNAEPTPN.js"),"./locales/eu-ES.json":()=>import("./excalidraw-assets/eu-ES-UXVZRSMJ.js"),"./locales/fa-IR.json":()=>import("./excalidraw-assets/fa-IR-FFXQODN6.js"),"./locales/fi-FI.json":()=>import("./excalidraw-assets/fi-FI-FVRWY4PK.js"),"./locales/fr-FR.json":()=>import("./excalidraw-assets/fr-FR-YRAHLNH4.js"),"./locales/gl-ES.json":()=>import("./excalidraw-assets/gl-ES-O3MFXO2J.js"),"./locales/he-IL.json":()=>import("./excalidraw-assets/he-IL-UQHONTOV.js"),"./locales/hi-IN.json":()=>import("./excalidraw-assets/hi-IN-QGM3FMHS.js"),"./locales/hu-HU.json":()=>import("./excalidraw-assets/hu-HU-FW4UHMDU.js"),"./locales/id-ID.json":()=>import("./excalidraw-assets/id-ID-QOMISFYK.js"),"./locales/it-IT.json":()=>import("./excalidraw-assets/it-IT-NXPSTWVC.js"),"./locales/ja-JP.json":()=>import("./excalidraw-assets/ja-JP-Z7I24KT4.js"),"./locales/kaa.json":()=>import("./excalidraw-assets/kaa-TXMSCJDQ.js"),"./locales/kab-KAB.json":()=>import("./excalidraw-assets/kab-KAB-RJXRUTDO.js"),"./locales/kk-KZ.json":()=>import("./excalidraw-assets/kk-KZ-JXPULSST.js"),"./locales/km-KH.json":()=>import("./excalidraw-assets/km-KH-WRGO6AYW.js"),"./locales/ko-KR.json":()=>import("./excalidraw-assets/ko-KR-GAYOVASS.js"),"./locales/ku-TR.json":()=>import("./excalidraw-assets/ku-TR-DJF4NWRZ.js"),"./locales/lt-LT.json":()=>import("./excalidraw-assets/lt-LT-QQGY3S4X.js"),"./locales/lv-LV.json":()=>import("./excalidraw-assets/lv-LV-H55DY45V.js"),"./locales/mr-IN.json":()=>import("./excalidraw-assets/mr-IN-QYT2ELER.js"),"./locales/my-MM.json":()=>import("./excalidraw-assets/my-MM-RRPBSH5R.js"),"./locales/nb-NO.json":()=>import("./excalidraw-assets/nb-NO-AMX3MAHH.js"),"./locales/nl-NL.json":()=>import("./excalidraw-assets/nl-NL-LZSLKN37.js"),"./locales/nn-NO.json":()=>import("./excalidraw-assets/nn-NO-WWXPMJY7.js"),"./locales/oc-FR.json":()=>import("./excalidraw-assets/oc-FR-GPZCMCGX.js"),"./locales/pa-IN.json":()=>import("./excalidraw-assets/pa-IN-L5H3H4OA.js"),"./locales/percentages.json":()=>import("./excalidraw-assets/percentages-L6Y3A3ZS.js"),"./locales/pl-PL.json":()=>import("./excalidraw-assets/pl-PL-SYTLCLU7.js"),"./locales/pt-BR.json":()=>import("./excalidraw-assets/pt-BR-BJOSVXBP.js"),"./locales/pt-PT.json":()=>import("./excalidraw-assets/pt-PT-QHWDKICL.js"),"./locales/ro-RO.json":()=>import("./excalidraw-assets/ro-RO-AVSXCJHH.js"),"./locales/ru-RU.json":()=>import("./excalidraw-assets/ru-RU-5Z6AY4FG.js"),"./locales/si-LK.json":()=>import("./excalidraw-assets/si-LK-OMROCHR3.js"),"./locales/sk-SK.json":()=>import("./excalidraw-assets/sk-SK-TLXIBWPH.js"),"./locales/sl-SI.json":()=>import("./excalidraw-assets/sl-SI-JELDMWCI.js"),"./locales/sv-SE.json":()=>import("./excalidraw-assets/sv-SE-2FAONS47.js"),"./locales/ta-IN.json":()=>import("./excalidraw-assets/ta-IN-XN7DVSDK.js"),"./locales/th-TH.json":()=>import("./excalidraw-assets/th-TH-VCIYWJPR.js"),"./locales/tr-TR.json":()=>import("./excalidraw-assets/tr-TR-6QL6T7SM.js"),"./locales/uk-UA.json":()=>import("./excalidraw-assets/uk-UA-Y6YRBHAO.js"),"./locales/vi-VN.json":()=>import("./excalidraw-assets/vi-VN-34I6LTAE.js"),"./locales/zh-CN.json":()=>import("./excalidraw-assets/zh-CN-IGKEMUHO.js"),"./locales/zh-HK.json":()=>import("./excalidraw-assets/zh-HK-MDAU5TWB.js"),"./locales/zh-TW.json":()=>import("./excalidraw-assets/zh-TW-DOGEFI3C.js")});var V6=85,gr={code:"en",label:"English"},na=[gr,...[{code:"ar-SA",label:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",rtl:!0},{code:"bg-BG",label:"\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438"},{code:"ca-ES",label:"Catal\xE0"},{code:"cs-CZ",label:"\u010Cesky"},{code:"de-DE",label:"Deutsch"},{code:"el-GR",label:"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC"},{code:"es-ES",label:"Espa\xF1ol"},{code:"eu-ES",label:"Euskara"},{code:"fa-IR",label:"\u0641\u0627\u0631\u0633\u06CC",rtl:!0},{code:"fi-FI",label:"Suomi"},{code:"fr-FR",label:"Fran\xE7ais"},{code:"gl-ES",label:"Galego"},{code:"he-IL",label:"\u05E2\u05D1\u05E8\u05D9\u05EA",rtl:!0},{code:"hi-IN",label:"\u0939\u093F\u0928\u094D\u0926\u0940"},{code:"hu-HU",label:"Magyar"},{code:"id-ID",label:"Bahasa Indonesia"},{code:"it-IT",label:"Italiano"},{code:"ja-JP",label:"\u65E5\u672C\u8A9E"},{code:"kab-KAB",label:"Taqbaylit"},{code:"kk-KZ",label:"\u049A\u0430\u0437\u0430\u049B \u0442\u0456\u043B\u0456"},{code:"ko-KR",label:"\uD55C\uAD6D\uC5B4"},{code:"ku-TR",label:"Kurd\xEE"},{code:"lt-LT",label:"Lietuvi\u0173"},{code:"lv-LV",label:"Latvie\u0161u"},{code:"my-MM",label:"Burmese"},{code:"nb-NO",label:"Norsk bokm\xE5l"},{code:"nl-NL",label:"Nederlands"},{code:"nn-NO",label:"Norsk nynorsk"},{code:"oc-FR",label:"Occitan"},{code:"pa-IN",label:"\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40"},{code:"pl-PL",label:"Polski"},{code:"pt-BR",label:"Portugu\xEAs Brasileiro"},{code:"pt-PT",label:"Portugu\xEAs"},{code:"ro-RO",label:"Rom\xE2n\u0103"},{code:"ru-RU",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{code:"sk-SK",label:"Sloven\u010Dina"},{code:"sv-SE",label:"Svenska"},{code:"sl-SI",label:"Sloven\u0161\u010Dina"},{code:"tr-TR",label:"T\xFCrk\xE7e"},{code:"uk-UA",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},{code:"zh-CN",label:"\u7B80\u4F53\u4E2D\u6587"},{code:"zh-TW",label:"\u7E41\u9AD4\u4E2D\u6587"},{code:"vi-VN",label:"Ti\u1EBFng Vi\u1EC7t"},{code:"mr-IN",label:"\u092E\u0930\u093E\u0920\u0940"}].filter(t=>r1[t.code]>=V6).sort((t,e)=>t.label>e.label?1:-1)],od="__test__";y.DEV&&na.unshift({code:od,label:"test language"},{code:`${od}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var ra=gr,td={},rd=async t=>{if(ra=t,document.documentElement.dir=ra.rtl?"rtl":"ltr",document.documentElement.lang=ra.code,t.code.startsWith(od))td={};else try{td=await G6(`./locales/${ra.code}.json`)}catch(e){console.error(`Failed to load language ${t.code}:`,e.message),td=Np}Gt.set(q0,t.code)},Gr=()=>ra,X0=(t,e)=>{for(let o=0;o<e.length;++o){let r=e[o];if(t[r]===void 0)return;t=t[r]}if(typeof t=="string")return t},g=(t,e,o)=>{if(ra.code.startsWith(od))return`\u202A[[${e?`${t}(${JSON.stringify(e).slice(1,-1)})`:t}]]\u202C`;let r=t.split("."),n=X0(td,r)||X0(Np,r)||o;if(n===void 0){let i=`Can't find translation for ${t}`;if(y.PROD)return console.warn(i),"";throw new Error(i)}if(e)for(let i in e)n=n.replace(`{{${i}}}`,String(e[i]));return n},q0=We(gr.code),vt=()=>{let t=zl(q0,De);return{t:g,langCode:t}};var ad=v(H(),1);h();var tx=v(H(),1);var id=v(k(),1),J6=({size:t="1em",circleWidth:e=8,synchronized:o=!1})=>{let n=-(tx.default.useRef(Date.now()).current%1600);return(0,id.jsx)("div",{className:"Spinner",children:(0,id.jsx)("svg",{viewBox:"0 0 100 100",style:{width:t,height:t,"--spinner-delay":o?`${n}ms`:0},children:(0,id.jsx)("circle",{cx:"50",cy:"50",r:50-e/2,strokeWidth:e,fill:"none",strokeMiterlimit:"10"})})})},Ot=J6;h();function ox(t){var e,o,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t))for(e=0;e<t.length;e++)t[e]&&(o=ox(t[e]))&&(r&&(r+=" "),r+=o);else for(e in t)t[e]&&(r&&(r+=" "),r+=e);return r}function $(){for(var t=0,e,o,r="";t<arguments.length;)(e=arguments[t++])&&(o=ox(e))&&(r&&(r+=" "),r+=o);return r}var ia=v(k(),1),ld=({delay:t,theme:e})=>{let[o,r]=(0,ad.useState)(!!t);return(0,ad.useEffect)(()=>{if(!t)return;let n=setTimeout(()=>{r(!1)},t);return()=>clearTimeout(n)},[t]),o?null:(0,ia.jsxs)("div",{className:$("LoadingMessage",{"LoadingMessage--dark":e===be.DARK}),children:[(0,ia.jsx)("div",{children:(0,ia.jsx)(Ot,{})}),(0,ia.jsx)("div",{className:"LoadingMessage-text",children:g("labels.loadingScene")})]})};var nx=v(k(),1),rx=t=>{let[e,o]=(0,sd.useState)(!0);return(0,sd.useEffect)(()=>{let r=async()=>{await rd(n),o(!1)},n=na.find(i=>i.code===t.langCode)||gr;r()},[t.langCode]),e?(0,nx.jsx)(ld,{theme:t.theme}):t.children};h();var Tt=v(H(),1),Ip=v(br(),1);h();h();h();var Jo=v(H(),1);var Po=v(k(),1),ce=Jo.default.forwardRef((t,e)=>{let{id:o}=_t(),r=Jo.default.useRef(null);Jo.default.useImperativeHandle(e,()=>r.current);let n=`ToolIcon_size_${t.size}`,[i,a]=(0,Jo.useState)(!1),l=(0,Jo.useRef)(!0),s=async c=>{let m="onClick"in t&&t.onClick?.(c);if(Bi(m))try{a(!0),await m}catch(u){if(u instanceof Hi)console.warn(u);else throw u}finally{l.current&&a(!1)}};(0,Jo.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]);let d=(0,Jo.useRef)(null);if(t.type==="button"||t.type==="icon"||t.type==="submit"){let c=t.type==="icon"?"button":t.type;return(0,Po.jsxs)("button",{className:$("ToolIcon_type_button",n,t.className,t.visible&&!t.hidden?"ToolIcon_type_button--show":"ToolIcon_type_button--hide",{ToolIcon:!t.hidden,"ToolIcon--selected":t.selected,"ToolIcon--plain":t.type==="icon"}),style:t.style,"data-testid":t["data-testid"],hidden:t.hidden,title:t.title,"aria-label":t["aria-label"],type:c,onClick:s,ref:r,disabled:i||t.isLoading||!!t.disabled,children:[(t.icon||t.label)&&(0,Po.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true","aria-disabled":!!t.disabled,children:[t.icon||t.label,t.keyBindingLabel&&(0,Po.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel}),t.isLoading&&(0,Po.jsx)(Ot,{})]}),t.showAriaLabel&&(0,Po.jsxs)("div",{className:"ToolIcon__label",children:[t["aria-label"]," ",i&&(0,Po.jsx)(Ot,{})]}),t.children]})}return(0,Po.jsxs)("label",{className:$("ToolIcon",t.className),title:t.title,onPointerDown:c=>{d.current=c.pointerType||null,t.onPointerDown?.({pointerType:c.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{d.current=null})},children:[(0,Po.jsx)("input",{className:`ToolIcon_type_radio ${n}`,type:"radio",name:t.name,"aria-label":t["aria-label"],"aria-keyshortcuts":t["aria-keyshortcuts"],"data-testid":t["data-testid"],id:`${o}-${t.id}`,onChange:()=>{t.onChange?.({pointerType:d.current})},checked:t.checked,ref:r}),(0,Po.jsxs)("div",{className:"ToolIcon__icon",children:[t.icon,t.keyBindingLabel&&(0,Po.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel})]})]})});ce.defaultProps={visible:!0,className:"",size:"medium"};ce.displayName="ToolButton";h();var to=v(H(),1);var p=v(k(),1),Qo=t=>"var(--icon-fill-color)",ax=t=>t===be.LIGHT?Mt.white:"#1e1e1e",L=(t,e=512)=>{let{width:o=512,height:r=o,mirror:n,style:i,...a}=typeof e=="number"?{width:e}:e;return(0,p.jsx)("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:`0 0 ${o} ${r}`,className:$({"rtl-mirror":n}),style:i,...a,children:typeof t=="string"?(0,p.jsx)("path",{fill:"currentColor",d:t}):t})},Q={width:24,height:24,fill:"none",strokeWidth:2,stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},de={width:20,height:20,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},Z8=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("rect",{x:3,y:8,width:18,height:4,rx:1}),(0,p.jsx)("line",{x1:12,y1:8,x2:12,y2:21}),(0,p.jsx)("path",{d:"M19 12v7a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-7"}),(0,p.jsx)("path",{d:"M7.5 8a2.5 2.5 0 0 1 0 -5a4.8 8 0 0 1 4.5 5a4.8 8 0 0 1 4.5 -5a2.5 2.5 0 0 1 0 5"})]}),Q),cd=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,p.jsx)("path",{d:"M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,p.jsx)("line",{x1:"3",y1:"6",x2:"3",y2:"19"}),(0,p.jsx)("line",{x1:"12",y1:"6",x2:"12",y2:"19"}),(0,p.jsx)("line",{x1:"21",y1:"6",x2:"21",y2:"19"})]}),Q),lx=L((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,p.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),Q),sx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"1"}),(0,p.jsx)("circle",{cx:"12",cy:"19",r:"1"}),(0,p.jsx)("circle",{cx:"12",cy:"5",r:"1"})]}),Q),cx=L((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M9 4v6l-2 4v2h10v-2l-2 -4v-6"}),(0,p.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"21"}),(0,p.jsx)("line",{x1:"8",y1:"4",x2:"16",y2:"4"})]}),Q),ri=L((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{d:"M13.542 8.542H6.458a2.5 2.5 0 0 0-2.5 2.5v3.75a2.5 2.5 0 0 0 2.5 2.5h7.084a2.5 2.5 0 0 0 2.5-2.5v-3.75a2.5 2.5 0 0 0-2.5-2.5Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("path",{d:"M10 13.958a1.042 1.042 0 1 0 0-2.083 1.042 1.042 0 0 0 0 2.083Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("mask",{id:"UnlockedIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:6,y:1,width:9,height:9,children:(0,p.jsx)("path",{stroke:"none",d:"M6.399 9.561V5.175c0-.93.401-1.823 1.116-2.48a3.981 3.981 0 0 1 2.693-1.028c1.01 0 1.98.37 2.694 1.027.715.658 1.116 1.55 1.116 2.481",fill:"#fff"})}),(0,p.jsx)("g",{mask:"url(#UnlockedIcon)",children:(0,p.jsx)("path",{stroke:"none",d:"M5.149 9.561v1.25h2.5v-1.25h-2.5Zm5.06-7.894V.417v1.25Zm2.559 3.508v1.25h2.5v-1.25h-2.5ZM7.648 8.51V5.175h-2.5V8.51h2.5Zm0-3.334c0-.564.243-1.128.713-1.561L6.668 1.775c-.959.883-1.52 2.104-1.52 3.4h2.5Zm.713-1.561a2.732 2.732 0 0 1 1.847-.697v-2.5c-1.31 0-2.585.478-3.54 1.358L8.36 3.614Zm1.847-.697c.71 0 1.374.26 1.847.697l1.694-1.839a5.231 5.231 0 0 0-3.54-1.358v2.5Zm1.847.697c.47.433.713.997.713 1.561h2.5c0-1.296-.56-2.517-1.52-3.4l-1.693 1.839Z",fill:"currentColor"})})]}),de),aa=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M13.542 8.542H6.458a2.5 2.5 0 0 0-2.5 2.5v3.75a2.5 2.5 0 0 0 2.5 2.5h7.084a2.5 2.5 0 0 0 2.5-2.5v-3.75a2.5 2.5 0 0 0-2.5-2.5Z"}),(0,p.jsx)("path",{d:"M10 13.958a1.042 1.042 0 1 0 0-2.083 1.042 1.042 0 0 0 0 2.083Z"}),(0,p.jsx)("path",{d:"M6.667 8.333V5.417C6.667 3.806 8.159 2.5 10 2.5c1.841 0 3.333 1.306 3.333 2.917v2.916"})]}),de),dx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M38.5 83.5c-14-2-17.833-10.473-21-22.5C14.333 48.984 12 22 12 12.5",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.005 10.478 7.905 14.423L6 25.75l6.005-15.273Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M12.005 10.478c1.92 3.495 3.838 7 7.905 14.423m-7.905-14.423c3.11 5.683 6.23 11.368 7.905 14.423m0 0c-3.68.226-7.35.455-13.91.85m13.91-.85c-5.279.33-10.566.647-13.91.85m0 0c1.936-4.931 3.882-9.86 6.005-15.273M6 25.75c2.069-5.257 4.135-10.505 6.005-15.272",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:41,height:94,fill:"none"}),mx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M18.026 1.232c-5.268 13.125-5.548 33.555 3.285 42.311 8.823 8.75 33.31 12.304 42.422 13.523",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m72.181 59.247-13.058-10-2.948 13.62 16.006-3.62Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M72.181 59.247c-3.163-2.429-6.337-4.856-13.058-10m13.058 10c-5.145-3.936-10.292-7.882-13.058-10m0 0c-.78 3.603-1.563 7.196-2.948 13.62m2.948-13.62c-1.126 5.168-2.24 10.346-2.948 13.62m0 0c5.168-1.166 10.334-2.343 16.006-3.62m-16.006 3.62c5.51-1.248 11.01-2.495 16.006-3.62",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:85,height:71,fill:"none"}),px=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M1 77c14-2 31.833-11.973 35-24 3.167-12.016-6-35-9.5-43.5",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m24.165 1.093-2.132 16.309 13.27-4.258-11.138-12.05Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M24.165 1.093c-.522 3.953-1.037 7.916-2.132 16.309m2.131-16.309c-.835 6.424-1.68 12.854-2.13 16.308m0 0c3.51-1.125 7.013-2.243 13.27-4.257m-13.27 4.257c5.038-1.608 10.08-3.232 13.27-4.257m0 0c-3.595-3.892-7.197-7.777-11.14-12.05m11.14 12.05c-3.837-4.148-7.667-8.287-11.14-12.05",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:38,height:78,fill:"none"}),j8=L((0,p.jsx)("g",{fill:"currentColor",children:(0,p.jsx)("path",{d:"M39.9 32.889a.326.326 0 0 0-.279-.056c-2.094-3.083-4.774-6-7.343-8.833l-.419-.472a.212.212 0 0 0-.056-.139.586.586 0 0 0-.167-.111l-.084-.083-.056-.056c-.084-.167-.28-.278-.475-.167-.782.39-1.507.973-2.206 1.528-.92.722-1.842 1.445-2.708 2.25a8.405 8.405 0 0 0-.977 1.028c-.14.194-.028.361.14.444-.615.611-1.23 1.223-1.843 1.861a.315.315 0 0 0-.084.223c0 .083.056.166.111.194l1.09.833v.028c1.535 1.528 4.244 3.611 7.12 5.861.418.334.865.667 1.284 1 .195.223.39.473.558.695.084.11.28.139.391.055.056.056.14.111.196.167a.398.398 0 0 0 .167.056.255.255 0 0 0 .224-.111.394.394 0 0 0 .055-.167c.029 0 .028.028.056.028a.318.318 0 0 0 .224-.084l5.082-5.528a.309.309 0 0 0 0-.444Zm-14.63-1.917a.485.485 0 0 0 .111.14c.586.5 1.2 1 1.843 1.555l-2.569-1.945-.251-.166c-.056-.028-.112-.084-.168-.111l-.195-.167.056-.056.055-.055.112-.111c.866-.861 2.346-2.306 3.1-3.028-.81.805-2.43 3.167-2.095 3.944Zm8.767 6.89-2.122-1.612a44.713 44.713 0 0 0-2.625-2.5c1.145.861 2.122 1.611 2.262 1.75 1.117.972 1.06.806 1.815 1.445l.921.666a1.06 1.06 0 0 1-.251.25Zm.558.416-.056-.028c.084-.055.168-.111.252-.194l-.196.222ZM1.089 5.75c.055.361.14.722.195 1.056.335 1.833.67 3.5 1.284 4.75l.252.944c.084.361.223.806.363.917 1.424 1.25 3.602 3.11 5.947 4.889a.295.295 0 0 0 .363 0s0 .027.028.027a.254.254 0 0 0 .196.084.318.318 0 0 0 .223-.084c2.988-3.305 5.221-6.027 6.813-8.305.112-.111.14-.278.14-.417.111-.111.195-.25.307-.333.111-.111.111-.306 0-.39l-.028-.027c0-.055-.028-.139-.084-.167-.698-.666-1.2-1.138-1.731-1.638-.922-.862-1.871-1.75-3.881-3.75l-.028-.028c-.028-.028-.056-.056-.112-.056-.558-.194-1.703-.389-3.127-.639C6.087 2.223 3.21 1.723.614.944c0 0-.168 0-.196.028l-.083.084c-.028.027-.056.055-.224.11h.056-.056c.028.167.028.278.084.473 0 .055.112.5.112.555l.782 3.556Zm15.496 3.278-.335-.334c.084.112.196.195.335.334Zm-3.546 4.666-.056.056c0-.028.028-.056.056-.056Zm-2.038-10c.168.167.866.834 1.033.973-.726-.334-2.54-1.167-3.379-1.445.838.167 1.983.334 2.346.472ZM1.424 2.306c.419.722.754 3.222 1.089 5.666-.196-.778-.335-1.555-.503-2.278-.251-1.277-.503-2.416-.838-3.416.056 0 .14 0 .252.028Zm-.168-.584c-.112 0-.223-.028-.307-.028 0-.027 0-.055-.028-.055.14 0 .223.028.335.083Zm-1.089.222c0-.027 0-.027 0 0ZM39.453 1.333c.028-.11-.558-.61-.363-.639.42-.027.42-.666 0-.666-.558.028-1.144.166-1.675.25-.977.194-1.982.389-2.96.61-2.205.473-4.383.973-6.561 1.557-.67.194-1.424.333-2.066.666-.224.111-.196.333-.084.472-.056.028-.084.028-.14.056-.195.028-.363.056-.558.083-.168.028-.252.167-.224.334 0 .027.028.083.028.11-1.173 1.556-2.485 3.195-3.909 4.945-1.396 1.611-2.876 3.306-4.356 5.056-4.719 5.5-10.052 11.75-15.943 17.25a.268.268 0 0 0 0 .389c.028.027.056.055.084.055-.084.084-.168.14-.252.222-.056.056-.084.111-.084.167a.605.605 0 0 0-.111.139c-.112.111-.112.305.028.389.111.11.307.11.39-.028.029-.028.029-.056.056-.056a.44.44 0 0 1 .615 0c.335.362.67.723.977 1.028l-.698-.583c-.112-.111-.307-.083-.39.028-.113.11-.085.305.027.389l7.427 6.194c.056.056.112.056.196.056s.14-.028.195-.084l.168-.166c.028.027.083.027.111.027.084 0 .14-.027.196-.083 10.052-10.055 18.15-17.639 27.42-24.417.083-.055.111-.166.111-.25.112 0 .196-.083.251-.194 1.704-5.194 2.039-9.806 2.15-12.083v-.028c0-.028.028-.056.028-.083.028-.056.028-.084.028-.084a1.626 1.626 0 0 0-.111-1.028ZM21.472 9.5c.446-.5.893-1.028 1.34-1.5-2.876 3.778-7.65 9.583-14.408 16.5 4.607-5.083 9.242-10.333 13.068-15ZM5.193 35.778h.084-.084Zm3.462 3.194c-.027-.028-.027-.028 0-.028v.028Zm4.16-3.583c.224-.25.448-.472.699-.722 0 0 0 .027.028.027-.252.223-.475.445-.726.695Zm1.146-1.111c.14-.14.279-.334.446-.5l.028-.028c1.648-1.694 3.351-3.389 5.082-5.111l.028-.028c.419-.333.921-.694 1.368-1.028a379.003 379.003 0 0 0-6.952 6.695ZM24.794 6.472c-.921 1.195-1.954 2.778-2.82 4.028-2.736 3.944-11.532 13.583-11.727 13.75a1976.983 1976.983 0 0 1-8.042 7.639l-.167.167c-.14-.167-.14-.417.028-.556C14.49 19.861 22.03 10.167 25.074 5.917c-.084.194-.14.36-.28.555Zm4.83 5.695c-1.116-.64-1.646-1.64-1.34-2.611l.084-.334c.028-.083.084-.194.14-.277.307-.5.754-.917 1.257-1.167.027 0 .055 0 .083-.028-.028-.056-.028-.139-.028-.222.028-.167.14-.278.335-.278.335 0 1.369.306 1.76.639.111.083.223.194.335.305.14.167.363.445.474.667.056.028.112.306.196.445.056.222.111.472.084.694-.028.028 0 .194-.028.194a2.668 2.668 0 0 1-.363 1.028c-.028.028-.028.056-.056.084l-.028.027c-.14.223-.335.417-.53.556-.643.444-1.369.583-2.095.389 0 0-.195-.084-.28-.111Zm8.154-.834a39.098 39.098 0 0 1-.893 3.167c0 .028-.028.083 0 .111-.056 0-.084.028-.14.056-2.206 1.61-4.356 3.305-6.506 5.028 1.843-1.64 3.686-3.306 5.613-4.945.558-.5.949-1.139 1.06-1.861l.28-1.667v-.055c.14-.334.67-.195.586.166Z",fill:"currentColor"})}),{width:40,height:40,fill:"none"}),ux=L((0,p.jsxs)("g",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M6 6l4.153 11.793a0.365 .365 0 0 0 .331 .207a0.366 .366 0 0 0 .332 -.207l2.184 -4.793l4.787 -1.994a0.355 .355 0 0 0 .213 -.323a0.355 .355 0 0 0 -.213 -.323l-11.787 -4.36z"}),(0,p.jsx)("path",{d:"M13.5 13.5l4.5 4.5"})]}),{fill:"none",width:22,height:22,strokeWidth:1.25}),fx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"})]}),Q),hx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10.5 20.4l-6.9 -6.9c-.781 -.781 -.781 -2.219 0 -3l6.9 -6.9c.781 -.781 2.219 -.781 3 0l6.9 6.9c.781 .781 .781 2.219 0 3l-6.9 6.9c-.781 .781 -2.219 .781 -3 0z"})]}),Q),gx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"})]}),Q),bx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"16",x2:"19",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"8",x2:"19",y2:"12"})]}),Q),xx=L((0,p.jsx)("path",{d:"M4.167 10h11.666",strokeWidth:"1.5"}),de),vx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M20 17v-12c0 -1.121 -.879 -2 -2 -2s-2 .879 -2 2v12l2 2l2 -2z"}),(0,p.jsx)("path",{d:"M16 7h4"}),(0,p.jsx)("path",{d:"M18 19h-13a2 2 0 1 1 0 -4h4a2 2 0 1 0 0 -4h-3"})]}),Q),la=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{clipRule:"evenodd",d:"m7.643 15.69 7.774-7.773a2.357 2.357 0 1 0-3.334-3.334L4.31 12.357a3.333 3.333 0 0 0-.977 2.357v1.953h1.953c.884 0 1.732-.352 2.357-.977Z"}),(0,p.jsx)("path",{d:"m11.25 5.417 3.333 3.333"})]}),de),Ex=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"7",y2:"20"}),(0,p.jsx)("line",{x1:"14",y1:"20",x2:"21",y2:"20"}),(0,p.jsx)("line",{x1:"6.9",y1:"15",x2:"13.8",y2:"15"}),(0,p.jsx)("line",{x1:"10.2",y1:"6.3",x2:"16",y2:"20"}),(0,p.jsx)("polyline",{points:"5 20 11 4 13 4 20 20"})]}),Q),yx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M12.5 6.667h.01"}),(0,p.jsx)("path",{d:"M4.91 2.625h10.18a2.284 2.284 0 0 1 2.285 2.284v10.182a2.284 2.284 0 0 1-2.284 2.284H4.909a2.284 2.284 0 0 1-2.284-2.284V4.909a2.284 2.284 0 0 1 2.284-2.284Z"}),(0,p.jsx)("path",{d:"m3.333 12.5 3.334-3.333c.773-.745 1.726-.745 2.5 0l4.166 4.166"}),(0,p.jsx)("path",{d:"m11.667 11.667.833-.834c.774-.744 1.726-.744 2.5 0l1.667 1.667"})]}),de),wx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M19 20h-10.5l-4.21 -4.3a1 1 0 0 1 0 -1.41l10 -10a1 1 0 0 1 1.41 0l5 5a1 1 0 0 1 0 1.41l-9.2 9.3"}),(0,p.jsx)("path",{d:"M18 13.3l-6.3 -6.3"})]}),Q),Nu=L((0,p.jsx)("path",{strokeWidth:"1.25",d:"M10 4.167v11.666M4.167 10h11.666"}),de),Ou=L((0,p.jsx)("path",{d:"M5 10h10",strokeWidth:"1.25"}),de),Cx=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M21 21l-6 -6"}),(0,p.jsx)("path",{d:"M3.268 12.043a7.017 7.017 0 0 0 6.634 4.957a7.012 7.012 0 0 0 7.043 -6.131a7 7 0 0 0 -5.314 -7.672a7.021 7.021 0 0 0 -8.241 4.403"}),(0,p.jsx)("path",{d:"M3 4v4h4"})]}),Q),er=L((0,p.jsx)("path",{strokeWidth:"1.25",d:"M3.333 5.833h13.334M8.333 9.167v5M11.667 9.167v5M4.167 5.833l.833 10c0 .92.746 1.667 1.667 1.667h6.666c.92 0 1.667-.746 1.667-1.667l.833-10M7.5 5.833v-2.5c0-.46.373-.833.833-.833h3.334c.46 0 .833.373.833.833v2.5"}),de),Sx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("polyline",{points:"12 16 18 10 12 4"}),(0,p.jsx)("polyline",{points:"8 4 2 10 8 16"})]}),de),$l=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M14.375 6.458H8.958a2.5 2.5 0 0 0-2.5 2.5v5.417a2.5 2.5 0 0 0 2.5 2.5h5.417a2.5 2.5 0 0 0 2.5-2.5V8.958a2.5 2.5 0 0 0-2.5-2.5Z"}),(0,p.jsx)("path",{clipRule:"evenodd",d:"M11.667 3.125c.517 0 .986.21 1.325.55.34.338.55.807.55 1.325v1.458H8.333c-.485 0-.927.185-1.26.487-.343.312-.57.75-.609 1.24l-.005 5.357H5a1.87 1.87 0 0 1-1.326-.55 1.87 1.87 0 0 1-.549-1.325V5c0-.518.21-.987.55-1.326.338-.34.807-.549 1.325-.549h6.667Z"})]}),de),Hl=L((0,p.jsx)("path",{clipRule:"evenodd",d:"M10 2.5h.328a6.25 6.25 0 0 0 6.6 10.372A7.5 7.5 0 1 1 10 2.493V2.5Z",stroke:"currentColor"}),de),Ul=L((0,p.jsx)("g",{stroke:"currentColor",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M10 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM10 4.167V2.5M14.167 5.833l1.166-1.166M15.833 10H17.5M14.167 14.167l1.166 1.166M10 15.833V17.5M5.833 14.167l-1.166 1.166M5 10H3.333M5.833 5.833 4.667 4.667"})}),{...de,strokeWidth:1.5}),dd=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"6",x2:"20",y2:"6"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("line",{x1:"4",y1:"18",x2:"20",y2:"18"})]}),Q),ni=L((0,p.jsx)("path",{strokeWidth:"1.25",d:"M3.333 14.167v1.666c0 .92.747 1.667 1.667 1.667h10c.92 0 1.667-.746 1.667-1.667v-1.666M5.833 9.167 10 13.333l4.167-4.166M10 3.333v10"}),de),sa=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),Q),Tx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),Q),Fu=L((0,p.jsx)("path",{strokeWidth:"1.25",d:"M9.167 5.833H5.833c-1.254 0-2.5 1.282-2.5 2.5v5.834c0 1.283 1.252 2.5 2.5 2.5h5.834c1.251 0 2.5-1.25 2.5-2.5v-3.334M8.333 11.667l8.334-8.334M12.5 3.333h4.167V7.5"}),de),md=L((0,p.jsx)("path",{d:"M7.5 15.833c-3.583 1.167-3.583-2.083-5-2.5m10 4.167v-2.917c0-.833.083-1.166-.417-1.666 2.334-.25 4.584-1.167 4.584-5a3.833 3.833 0 0 0-1.084-2.667 3.5 3.5 0 0 0-.083-2.667s-.917-.25-2.917 1.084a10.25 10.25 0 0 0-5.166 0C5.417 2.333 4.5 2.583 4.5 2.583a3.5 3.5 0 0 0-.083 2.667 3.833 3.833 0 0 0-1.084 2.667c0 3.833 2.25 4.75 4.584 5-.5.5-.5 1-.417 1.666V17.5",strokeWidth:"1.25"}),de),kx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M7.5 10.833a.833.833 0 1 0 0-1.666.833.833 0 0 0 0 1.666ZM12.5 10.833a.833.833 0 1 0 0-1.666.833.833 0 0 0 0 1.666ZM6.25 6.25c2.917-.833 4.583-.833 7.5 0M5.833 13.75c2.917.833 5.417.833 8.334 0"}),(0,p.jsx)("path",{d:"M12.917 14.167c0 .833 1.25 2.5 1.666 2.5 1.25 0 2.361-1.39 2.917-2.5.556-1.39.417-4.861-1.25-9.584-1.214-.846-2.5-1.116-3.75-1.25l-.833 2.084M7.083 14.167c0 .833-1.13 2.5-1.526 2.5-1.191 0-2.249-1.39-2.778-2.5-.529-1.39-.397-4.861 1.19-9.584 1.157-.846 2.318-1.116 3.531-1.25l.833 2.084"})]}),de),Ix=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 4l11.733 16h4.267l-11.733 -16z"}),(0,p.jsx)("path",{d:"M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"})]}),Q),Ax=L((0,p.jsx)("polyline",{fill:"none",stroke:"currentColor",points:"20 6 9 17 4 12"}),{width:24,height:24}),Wl=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M8.333 11.667a2.917 2.917 0 0 0 4.167 0l3.333-3.334a2.946 2.946 0 1 0-4.166-4.166l-.417.416"}),(0,p.jsx)("path",{d:"M11.667 8.333a2.917 2.917 0 0 0-4.167 0l-3.333 3.334a2.946 2.946 0 0 0 4.166 4.166l.417-.416"})]}),de),Mx=L("M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z",{width:448,height:512}),_x=L("M252 54L203 8a28 27 0 00-20-8H28C12 0 0 12 0 27v195c0 15 12 26 28 26h204c15 0 28-11 28-26V73a28 27 0 00-8-19zM130 213c-21 0-37-16-37-36 0-19 16-35 37-35 20 0 37 16 37 35 0 20-17 36-37 36zm56-169v56c0 4-4 6-7 6H44c-4 0-7-2-7-6V42c0-4 3-7 7-7h133l4 2 3 2a7 7 0 012 5z M296 201l87 95-188 205-78 9c-10 1-19-8-18-20l9-84zm141-14l-41-44a31 31 0 00-46 0l-38 41 87 95 38-42c13-14 13-36 0-50z",{width:448,height:512}),ca=L((0,p.jsx)("path",{d:"m9.257 6.351.183.183H15.819c.34 0 .727.182 1.051.506.323.323.505.708.505 1.05v5.819c0 .316-.183.7-.52 1.035-.337.338-.723.522-1.037.522H4.182c-.352 0-.74-.181-1.058-.5-.318-.318-.499-.705-.499-1.057V5.182c0-.351.181-.736.5-1.054.32-.321.71-.503 1.057-.503H6.53l2.726 2.726Z",strokeWidth:"1.25"}),de),X8=L("M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z",{width:384,height:512}),Lx=L("M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"),pd=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 16l1.465 1.638a2 2 0 1 1 -3.015 .099l1.55 -1.737z"}),(0,p.jsx)("path",{d:"M13.737 9.737c2.299 -2.3 3.23 -5.095 2.081 -6.245c-1.15 -1.15 -3.945 -.217 -6.244 2.082c-2.3 2.299 -3.231 5.095 -2.082 6.244c1.15 1.15 3.946 .218 6.245 -2.081z"}),(0,p.jsx)("path",{d:"M7.492 11.818c.362 .362 .768 .676 1.208 .934l6.895 4.047c1.078 .557 2.255 -.075 3.692 -1.512c1.437 -1.437 2.07 -2.614 1.512 -3.692c-.372 -.718 -1.72 -3.017 -4.047 -6.895a6.015 6.015 0 0 0 -.934 -1.208"})]}),Q),ud=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15 8h.01"}),(0,p.jsx)("path",{d:"M12 20h-5a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v5"}),(0,p.jsx)("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),(0,p.jsx)("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),(0,p.jsx)("path",{d:"M19 16v6"}),(0,p.jsx)("path",{d:"M22 19l-3 3l-3 -3"})]}),Q),Px=L("M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z",{width:512,height:512}),q8=L("M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z",{width:448,height:512}),J8=L("M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z",{width:448,height:512}),Rx=L("M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"),Q8=L("M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"),Bu=L((0,p.jsx)("path",{d:"M7.5 10.833 4.167 7.5 7.5 4.167M4.167 7.5h9.166a3.333 3.333 0 0 1 0 6.667H12.5",strokeWidth:"1.25"}),de),zu=L((0,p.jsx)("path",{d:"M12.5 10.833 15.833 7.5 12.5 4.167M15.833 7.5H6.667a3.333 3.333 0 1 0 0 6.667H7.5",strokeWidth:"1.25"}),de),Dx=L("M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z",{mirror:!0}),Nx=L((0,p.jsx)("path",{d:"M5 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM15 7.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM15 17.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM7.25 8.917l5.5-2.834M7.25 11.083l5.5 2.834",strokeWidth:"1.5"}),de),e7=L("M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"),t7=L("M16 5l-1.42 1.42-1.59-1.59V16h-1.98V4.83L9.42 6.42 8 5l4-4 4 4zm4 5v11c0 1.1-.9 2-2 2H6c-1.11 0-2-.9-2-2V10c0-1.11.89-2 2-2h3v2H6v11h12V10h-3V8h3c1.1 0 2 .89 2 2z",{width:24,height:24}),o7=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 9h-1a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-8a2 2 0 0 0 -2 -2h-1"}),(0,p.jsx)("path",{d:"M12 14v-11"}),(0,p.jsx)("path",{d:"M9 6l3 -3l3 3"})]}),Q),r7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{fill:"currentColor",d:"M40 5.6v6.1l-4.1.7c-8.9 1.4-16.5 6.9-20.6 15C13 32 10.9 43 12.4 43c.4 0 2.4-1.3 4.4-3 5-3.9 12.1-7 18.2-7.7l5-.6v12.8l11.2-11.3L62.5 22 51.2 10.8 40-.5v6.1zm10.2 22.6L44 34.5v-6.8l-6.9.6c-3.9.3-9.8 1.7-13.2 3.1-3.5 1.4-6.5 2.4-6.7 2.2-.9-1 3-7.5 6.4-10.8C28 18.6 34.4 16 40.1 16c3.7 0 3.9-.1 3.9-3.2V9.5l6.2 6.3 6.3 6.2-6.3 6.2z"}),(0,p.jsx)("path",{stroke:"currentColor",fill:"currentColor",d:"M0 36v20h48v-6.2c0-6 0-6.1-2-4.3-1.1 1-2 2.9-2 4.2V52H4V34c0-17.3-.1-18-2-18s-2 .7-2 20z"})]}),{width:64,height:64}),n7=L((0,p.jsx)("path",{stroke:"currentColor",strokeWidth:"40",fill:"currentColor",d:"M148 560a318 318 0 0 0 522 110 316 316 0 0 0 0-450 316 316 0 0 0-450 0c-11 11-21 22-30 34v4h47c25 0 46 21 46 46s-21 45-46 45H90c-13 0-25-6-33-14-9-9-14-20-14-33V156c0-25 20-45 45-45s45 20 45 45v32l1 1a401 401 0 0 1 623 509l212 212a42 42 0 0 1-59 59L698 757A401 401 0 0 1 65 570a42 42 0 0 1 83-10z"}),{width:1024}),$u=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{d:"M13.889 4.167H8.333c-.767 0-1.389.622-1.389 1.389v5.555c0 .767.622 1.389 1.39 1.389h5.555c.767 0 1.389-.622 1.389-1.389V5.556c0-.767-.622-1.39-1.39-1.39Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M12.5 12.5v1.389a1.389 1.389 0 0 1-1.389 1.389H5.556a1.389 1.389 0 0 1-1.39-1.39V8.334a1.389 1.389 0 0 1 1.39-1.389h1.388"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Hu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.944 12.5H12.5v1.389a1.389 1.389 0 0 1-1.389 1.389H5.556a1.389 1.389 0 0 1-1.39-1.39V8.334a1.389 1.389 0 0 1 1.39-1.389h1.388",fill:"currentColor"}),(0,p.jsx)("path",{d:"M13.889 4.167H8.333c-.767 0-1.389.621-1.389 1.389v5.555c0 .767.622 1.389 1.39 1.389h5.555c.767 0 1.389-.622 1.389-1.389V5.556c0-.768-.622-1.39-1.39-1.39Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Uu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M8.775 6.458h2.45a2.316 2.316 0 0 1 2.317 2.316v2.452a2.316 2.316 0 0 1-2.316 2.316H8.774a2.316 2.316 0 0 1-2.317-2.316V8.774a2.316 2.316 0 0 1 2.317-2.316Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316ZM12.108 3.125h2.45a2.316 2.316 0 0 1 2.317 2.316v2.451a2.316 2.316 0 0 1-2.316 2.316h-2.451a2.316 2.316 0 0 1-2.316-2.316v-2.45a2.316 2.316 0 0 1 2.316-2.317Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Wu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",children:[(0,p.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("mask",{id:"SendToBackIcon",fill:"#fff",children:(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.167 5.833v2.06a2.941 2.941 0 0 0 2.94 2.94h2.06v.393a2.941 2.941 0 0 1-2.941 2.94h-.393v-2.058a2.941 2.941 0 0 0-2.94-2.941h-2.06v-.393a2.941 2.941 0 0 1 2.942-2.94h.392Z"})}),(0,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.167 5.833v2.06a2.941 2.941 0 0 0 2.94 2.94h2.06v.393a2.941 2.941 0 0 1-2.941 2.94h-.393v-2.058a2.941 2.941 0 0 0-2.94-2.941h-2.06v-.393a2.941 2.941 0 0 1 2.942-2.94h.392Z",fill:"currentColor"}),(0,p.jsx)("path",{d:"M9.167 5.833h1.25v-1.25h-1.25v1.25Zm5 5h1.25v-1.25h-1.25v1.25Zm-3.334 3.334h-1.25v1.25h1.25v-1.25Zm-5-5h-1.25v1.25h1.25v-1.25Zm2.084-3.334v2.06h2.5v-2.06h-2.5Zm0 2.06a4.191 4.191 0 0 0 4.19 4.19v-2.5a1.691 1.691 0 0 1-1.69-1.69h-2.5Zm4.19 4.19h2.06v-2.5h-2.06v2.5Zm.81-1.25v.393h2.5v-.393h-2.5Zm0 .393c0 .933-.758 1.69-1.691 1.69v2.5a4.191 4.191 0 0 0 4.19-4.19h-2.5Zm-1.691 1.69h-.393v2.5h.393v-2.5Zm.857 1.25v-2.058h-2.5v2.059h2.5Zm0-2.058a4.191 4.191 0 0 0-4.19-4.191v2.5c.933 0 1.69.757 1.69 1.69h2.5Zm-4.19-4.191h-2.06v2.5h2.06v-2.5Zm-.81 1.25v-.393h-2.5v.393h2.5Zm0-.393c0-.934.758-1.69 1.692-1.69v-2.5a4.191 4.191 0 0 0-4.192 4.19h2.5Zm1.692-1.69h.392v-2.5h-.392v2.5Z",fill:"currentColor",mask:"url(#SendToBackIcon)"}),(0,p.jsx)("path",{d:"M12.108 3.125h2.45a2.316 2.316 0 0 1 2.317 2.316v2.451a2.316 2.316 0 0 1-2.316 2.316h-2.451a2.316 2.316 0 0 1-2.316-2.316v-2.45a2.316 2.316 0 0 1 2.316-2.317Z",stroke:"currentColor",strokeWidth:"1.25"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Gu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M13.542 6.458h-.417c-.92 0-1.667.747-1.667 1.667v7.083c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667V8.125c0-.92-.746-1.667-1.666-1.667ZM6.875 6.458h-.417c-.92 0-1.666.747-1.666 1.667v3.75c0 .92.746 1.667 1.666 1.667h.417c.92 0 1.667-.746 1.667-1.667v-3.75c0-.92-.747-1.667-1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Vu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M6.875 3.125h-.417c-.92 0-1.666.746-1.666 1.667v7.083c0 .92.746 1.667 1.666 1.667h.417c.92 0 1.667-.746 1.667-1.667V4.792c0-.92-.747-1.667-1.667-1.667ZM13.542 5.817h-.417c-.92 0-1.667.747-1.667 1.667v4.391c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667V7.484c0-.92-.746-1.667-1.666-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Ku=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M15.208 4.792H8.125c-.92 0-1.667.746-1.667 1.666v.417c0 .92.747 1.667 1.667 1.667h7.083c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666ZM12.516 11.458H8.125c-.92 0-1.667.746-1.667 1.667v.417c0 .92.747 1.666 1.667 1.666h4.391c.92 0 1.667-.746 1.667-1.666v-.417c0-.92-.746-1.667-1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Yu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M16.667 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M11.875 4.792H4.792c-.92 0-1.667.746-1.667 1.666v.417c0 .92.746 1.667 1.667 1.667h7.083c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666ZM11.683 11.458H7.292c-.92 0-1.667.746-1.667 1.667v.417c0 .92.746 1.666 1.667 1.666h4.39c.921 0 1.667-.746 1.667-1.666v-.417c0-.92-.746-1.667-1.666-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Ox=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M16.667 3.333v13.334M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M14.375 10.208v-.416c0-.92-.746-1.667-1.667-1.667H7.292c-.92 0-1.667.746-1.667 1.667v.416c0 .92.746 1.667 1.667 1.667h5.416c.92 0 1.667-.746 1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Fx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333h13.334M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M10.208 5.625h-.416c-.92 0-1.667.746-1.667 1.667v5.416c0 .92.746 1.667 1.667 1.667h.416c.92 0 1.667-.746 1.667-1.667V7.292c0-.92-.746-1.667-1.667-1.667Z"})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Zu=L((0,p.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M1.667 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M8.333 10h3.334",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M15.417 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M6.875 4.792h-.417c-.92 0-1.666.746-1.666 1.666v7.084c0 .92.746 1.666 1.666 1.666h.417c.92 0 1.667-.746 1.667-1.666V6.458c0-.92-.747-1.666-1.667-1.666ZM13.542 6.458h-.417c-.92 0-1.667.747-1.667 1.667v3.75c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667v-3.75c0-.92-.746-1.667-1.666-1.667Z"})]}),de),ju=L((0,p.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M10 18.333v-2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M10 11.667V8.333",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M10 4.583V1.667",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M4.792 13.125v.417c0 .92.746 1.666 1.666 1.666h7.084c.92 0 1.666-.746 1.666-1.666v-.417c0-.92-.746-1.667-1.666-1.667H6.458c-.92 0-1.666.746-1.666 1.667ZM6.458 6.458v.417c0 .92.747 1.667 1.667 1.667h3.75c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666h-3.75c-.92 0-1.667.746-1.667 1.666Z"})]}),de),fd=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,p.jsx)("path",{d:"M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"}),(0,p.jsx)("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"}),(0,p.jsx)("path",{d:"M21 21v-2a4 4 0 0 0 -3 -3.85"})]}),Q),i7=L("M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"),a7=L("M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"),Ro=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M15 5 5 15M5 5l10 10"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),l7=L("M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z",{mirror:!0}),s7=L("M11.553 22.894a.998.998 0 00.894 0s3.037-1.516 5.465-4.097C19.616 16.987 21 14.663 21 12V5a1 1 0 00-.649-.936l-8-3a.998.998 0 00-.702 0l-8 3A1 1 0 003 5v7c0 2.663 1.384 4.987 3.088 6.797 2.428 2.581 5.465 4.097 5.465 4.097zm-1.303-8.481l6.644-6.644a.856.856 0 111.212 1.212l-7.25 7.25a.856.856 0 01-1.212 0l-3.75-3.75a.856.856 0 111.212-1.212l3.144 3.144z",{width:24}),c7=L("M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z",{width:384,height:512}),Xu=to.default.memo(({theme:t})=>L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M25 26H111V111H25",fill:Qo(t)}),(0,p.jsx)("path",{d:"M25 111C25 80.2068 25 49.4135 25 26M25 26C48.6174 26 72.2348 26 111 26H25ZM25 26C53.3671 26 81.7343 26 111 26H25ZM111 26C111 52.303 111 78.606 111 111V26ZM111 26C111 51.2947 111 76.5893 111 111V26ZM111 111C87.0792 111 63.1585 111 25 111H111ZM111 111C87.4646 111 63.9293 111 25 111H111ZM25 111C25 81.1514 25 51.3028 25 26V111Z",stroke:Qo(t),strokeWidth:"2"}),(0,p.jsx)("path",{d:"M100 100H160V160H100",fill:Qo(t)}),(0,p.jsx)("path",{d:"M100 160C100 144.106 100 128.211 100 100M100 100C117.706 100 135.412 100 160 100H100ZM100 100C114.214 100 128.428 100 160 100H100ZM160 100C160 120.184 160 140.369 160 160V100ZM160 100C160 113.219 160 126.437 160 160V100ZM160 160C145.534 160 131.068 160 100 160H160ZM160 160C143.467 160 126.934 160 100 160H160ZM100 160C100 143.661 100 127.321 100 100V160Z",stroke:Qo(t),strokeWidth:"2"}),(0,p.jsxs)("g",{fill:ax(t),stroke:Qo(t),strokeWidth:"6",children:[(0,p.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"2.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"2.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),qu=to.default.memo(({theme:t})=>L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M25 26H111V111H25",fill:Qo(t)}),(0,p.jsx)("path",{d:"M25 111C25 80.2068 25 49.4135 25 26M25 26C48.6174 26 72.2348 26 111 26H25ZM25 26C53.3671 26 81.7343 26 111 26H25ZM111 26C111 52.303 111 78.606 111 111V26ZM111 26C111 51.2947 111 76.5893 111 111V26ZM111 111C87.0792 111 63.1585 111 25 111H111ZM111 111C87.4646 111 63.9293 111 25 111H111ZM25 111C25 81.1514 25 51.3028 25 26V111Z",stroke:Qo(t),strokeWidth:"2"}),(0,p.jsx)("path",{d:"M100 100H160V160H100",fill:Qo(t)}),(0,p.jsx)("path",{d:"M100 160C100 144.106 100 128.211 100 100M100 100C117.706 100 135.412 100 160 100H100ZM100 100C114.214 100 128.428 100 160 100H100ZM160 100C160 120.184 160 140.369 160 160V100ZM160 100C160 113.219 160 126.437 160 160V100ZM160 160C145.534 160 131.068 160 100 160H160ZM160 160C143.467 160 126.934 160 100 160H160ZM100 160C100 143.661 100 127.321 100 100V160Z",stroke:Qo(t),strokeWidth:"2"}),(0,p.jsxs)("g",{fill:ax(t),stroke:Qo(t),strokeWidth:"6",children:[(0,p.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"78.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"78.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"105.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"2.5",y:"102.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),Bx=L((0,p.jsx)("g",{strokeWidth:1.25,children:(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.27 3.27 0 0 1 3.254 3.254v8.242a3.27 3.27 0 0 1-3.254 3.254H5.88a3.27 3.27 0 0 1-3.254-3.254V5.88A3.27 3.27 0 0 1 5.88 2.626l-.001-.001ZM4.518 16.118l7.608-12.83m.198 13.934 5.051-9.897M2.778 9.675l9.348-6.387m-7.608 12.83 12.857-8.793"})}),de),zx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("mask",{id:"FillHachureIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:2,y:2,width:16,height:16,children:(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"1.25"})}),(0,p.jsx)("g",{mask:"url(#FillHachureIcon)",children:(0,p.jsx)("path",{d:"M2.258 15.156 15.156 2.258M7.324 20.222 20.222 7.325m-20.444 5.35L12.675-.222m-8.157 18.34L17.416 5.22",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),de),$x=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",children:[(0,p.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,p.jsx)("mask",{id:"FillCrossHatchIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:-1,y:-1,width:22,height:22,children:(0,p.jsx)("path",{d:"M2.426 15.044 15.044 2.426M7.383 20 20 7.383M0 12.617 12.617 0m-7.98 17.941L17.256 5.324m-2.211 12.25L2.426 4.956M20 12.617 7.383 0m5.234 20L0 7.383m17.941 7.98L5.324 2.745",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("g",{mask:"url(#FillCrossHatchIcon)",children:(0,p.jsx)("path",{d:"M14.121 2H5.88A3.879 3.879 0 0 0 2 5.879v8.242A3.879 3.879 0 0 0 5.879 18h8.242A3.879 3.879 0 0 0 18 14.121V5.88A3.879 3.879 0 0 0 14.121 2Z",fill:"currentColor"})})]}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Hx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M4.91 2.625h10.18a2.284 2.284 0 0 1 2.285 2.284v10.182a2.284 2.284 0 0 1-2.284 2.284H4.909a2.284 2.284 0 0 1-2.284-2.284V4.909a2.284 2.284 0 0 1 2.284-2.284Z",stroke:"currentColor",strokeWidth:"1.25"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),{...de,fill:"currentColor"}),Ju=L((0,p.jsx)(p.Fragment,{children:(0,p.jsx)("path",{d:"M4.167 10h11.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),de),Ux=L((0,p.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),de),Wx=L((0,p.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"3.75",strokeLinecap:"round",strokeLinejoin:"round"}),de),d7=to.default.memo(({theme:t})=>L((0,p.jsx)("path",{d:"M6 10H34",stroke:Qo(t),strokeWidth:2,fill:"none",strokeLinecap:"round"}),{width:40,height:20})),Gx=L((0,p.jsxs)("g",{strokeWidth:"2",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 12h2"}),(0,p.jsx)("path",{d:"M17 12h2"}),(0,p.jsx)("path",{d:"M11 12h2"})]}),Q),Vx=L((0,p.jsxs)("g",{strokeWidth:"2",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 12v.01"}),(0,p.jsx)("path",{d:"M8 12v.01"}),(0,p.jsx)("path",{d:"M12 12v.01"}),(0,p.jsx)("path",{d:"M16 12v.01"}),(0,p.jsx)("path",{d:"M20 12v.01"})]}),Q),Kx=L((0,p.jsx)("path",{d:"M2.5 12.038c1.655-.885 5.9-3.292 8.568-4.354 2.668-1.063.101 2.821 1.32 3.104 1.218.283 5.112-1.814 5.112-1.814",strokeWidth:"1.25"}),de),Yx=L((0,p.jsx)("path",{d:"M2.5 12.563c1.655-.886 5.9-3.293 8.568-4.355 2.668-1.062.101 2.822 1.32 3.105 1.218.283 5.112-1.814 5.112-1.814m-13.469 2.23c2.963-1.586 6.13-5.62 7.468-4.998 1.338.623-1.153 4.11-.132 5.595 1.02 1.487 6.133-1.43 6.133-1.43",strokeWidth:"1.25"}),de),Zx=L((0,p.jsx)("path",{d:"M2.5 11.936c1.737-.879 8.627-5.346 10.42-5.268 1.795.078-.418 5.138.345 5.736.763.598 3.53-1.789 4.235-2.147M2.929 9.788c1.164-.519 5.47-3.28 6.987-3.114 1.519.165 1 3.827 2.121 4.109 1.122.281 3.839-2.016 4.606-2.42",strokeWidth:"1.25"}),de),jx=L((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{d:"M3.33334 9.99998V6.66665C3.33334 6.04326 3.33403 4.9332 3.33539 3.33646C4.95233 3.33436 6.06276 3.33331 6.66668 3.33331H10"}),(0,p.jsx)("path",{d:"M13.3333 3.33331V3.34331"}),(0,p.jsx)("path",{d:"M16.6667 3.33331V3.34331"}),(0,p.jsx)("path",{d:"M16.6667 6.66669V6.67669"}),(0,p.jsx)("path",{d:"M16.6667 10V10.01"}),(0,p.jsx)("path",{d:"M3.33334 13.3333V13.3433"}),(0,p.jsx)("path",{d:"M16.6667 13.3333V13.3433"}),(0,p.jsx)("path",{d:"M3.33334 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M6.66666 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M10 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M13.3333 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M16.6667 16.6667V16.6767"})]}),de),Xx=L((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 12v-4a4 4 0 0 1 4 -4h4"}),(0,p.jsx)("line",{x1:"16",y1:"4",x2:"16",y2:"4.01"}),(0,p.jsx)("line",{x1:"20",y1:"4",x2:"20",y2:"4.01"}),(0,p.jsx)("line",{x1:"20",y1:"8",x2:"20",y2:"8.01"}),(0,p.jsx)("line",{x1:"20",y1:"12",x2:"20",y2:"12.01"}),(0,p.jsx)("line",{x1:"4",y1:"16",x2:"4",y2:"16.01"}),(0,p.jsx)("line",{x1:"20",y1:"16",x2:"20",y2:"16.01"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"4",y2:"20.01"}),(0,p.jsx)("line",{x1:"8",y1:"20",x2:"8",y2:"20.01"}),(0,p.jsx)("line",{x1:"12",y1:"20",x2:"12",y2:"20.01"}),(0,p.jsx)("line",{x1:"16",y1:"20",x2:"16",y2:"20.01"}),(0,p.jsx)("line",{x1:"20",y1:"20",x2:"20",y2:"20.01"})]}),Q),qx=L((0,p.jsx)("path",{d:"M6 10H34",stroke:"currentColor",strokeWidth:2,fill:"none"}),{width:40,height:20}),Jx=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",stroke:"currentColor",strokeWidth:2,fill:"none",children:[(0,p.jsx)("path",{d:"M34 10H6M34 10L27 5M34 10L27 15"}),(0,p.jsx)("path",{d:"M27.5 5L34.5 10L27.5 15"})]}),{width:40,height:20})),Qu=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,p.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,p.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),Qx=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M26 10L6 10"}),(0,p.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),ev=to.default.memo(({flip:t=!1})=>L((0,p.jsx)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",children:(0,p.jsx)("path",{d:"M34 10H5.99996M34 10L34 5M34 10L34 15",stroke:"currentColor",strokeWidth:2,fill:"none"})}),{width:40,height:20})),tv=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,p.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,p.jsx)("path",{d:"M27.5 5.5L34.5 10L27.5 14.5L27.5 5.5"})]}),{width:40,height:20})),ov=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,strokeLinejoin:"round",children:[(0,p.jsx)("path",{d:"M6,9.5H27"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14Z",fill:"none"})]}),{width:40,height:20})),rv=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M6,9.5H20"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),nv=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M6,9.5H20"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),iv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M14.167 6.667a3.333 3.333 0 0 0-3.334-3.334H9.167a3.333 3.333 0 0 0 0 6.667h1.666a3.333 3.333 0 0 1 0 6.667H9.167a3.333 3.333 0 0 1-3.334-3.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),av=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M5 16.667V3.333L10 15l5-11.667v13.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),lv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M5.833 3.333v13.334h8.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),sv=L((0,p.jsx)(p.Fragment,{children:(0,p.jsx)("path",{d:"m1.667 3.333 6.666 13.334M8.333 3.333 1.667 16.667M11.667 3.333v13.334h6.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),de),ef=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 7v-2h13v2"}),(0,p.jsx)("path",{d:"M10 5v14"}),(0,p.jsx)("path",{d:"M12 19h-4"}),(0,p.jsx)("path",{d:"M15 13v-1h6v1"}),(0,p.jsx)("path",{d:"M18 12v7"}),(0,p.jsx)("path",{d:"M17 19h2"})]}),Q),cv=L((0,p.jsx)(p.Fragment,{children:(0,p.jsx)("g",{stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M5.833 16.667v-10a3.333 3.333 0 0 1 3.334-3.334h1.666a3.333 3.333 0 0 1 3.334 3.334v10M5.833 10.833h8.334"})})}),de),dv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M5.833 6.667 2.5 10l3.333 3.333M14.167 6.667 17.5 10l-3.333 3.333M11.667 3.333 8.333 16.667"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),mv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"12",y2:"12"}),(0,p.jsx)("line",{x1:"4",y1:"16",x2:"16",y2:"16"})]}),Q),pv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"8",y1:"12",x2:"16",y2:"12"}),(0,p.jsx)("line",{x1:"6",y1:"16",x2:"18",y2:"16"})]}),Q),uv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"10",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("line",{x1:"8",y1:"16",x2:"20",y2:"16"})]}),Q),fv=to.default.memo(({theme:t})=>L((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"4",x2:"20",y2:"4"}),(0,p.jsx)("rect",{x:"9",y:"8",width:"6",height:"12",rx:"2"})]}),Q)),hv=to.default.memo(({theme:t})=>L((0,p.jsxs)("g",{strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"20",y2:"20"}),(0,p.jsx)("rect",{x:"9",y:"4",width:"6",height:"12",rx:"2"})]}),Q)),gv=to.default.memo(({theme:t})=>L((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"9",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("rect",{x:"9",y:"6",width:"6",height:"12",rx:"2"})]}),Q)),bv=L((0,p.jsx)("path",{d:"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z",fill:"currentColor"}),{width:640,height:512}),m7=L((0,p.jsx)("path",{d:"M480 416C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H150.6C133.7 480 117.4 473.3 105.4 461.3L25.37 381.3C.3786 356.3 .3786 315.7 25.37 290.7L258.7 57.37C283.7 32.38 324.3 32.38 349.3 57.37L486.6 194.7C511.6 219.7 511.6 260.3 486.6 285.3L355.9 416H480zM265.4 416L332.7 348.7L195.3 211.3L70.63 336L150.6 416L265.4 416z"})),hd=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 13v-7.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,p.jsx)("path",{d:"M11 5.5v-2a1.5 1.5 0 1 1 3 0v8.5"}),(0,p.jsx)("path",{d:"M14 5.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,p.jsx)("path",{d:"M17 7.5a1.5 1.5 0 0 1 3 0v8.5a6 6 0 0 1 -6 6h-2h.208a6 6 0 0 1 -5.012 -2.7a69.74 69.74 0 0 1 -.196 -.3c-.312 -.479 -1.407 -2.388 -3.286 -5.728a1.5 1.5 0 0 1 .536 -2.022a1.867 1.867 0 0 1 2.28 .28l1.47 1.47"})]}),Q),tf=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"}),(0,p.jsx)("path",{d:"M7 11l5 5l5 -5"}),(0,p.jsx)("path",{d:"M12 4l0 12"})]}),Q),gd=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"}),(0,p.jsx)("path",{d:"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"})]}),Q),xv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M7 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.jsx)("path",{d:"M9.15 14.85l8.85 -10.85"}),(0,p.jsx)("path",{d:"M6 4l8.85 10.85"})]}),Q),vv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"}),(0,p.jsx)("path",{d:"M12 17l0 .01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),Q),p7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M7 4v16l13 -8z"})]}),Q),u7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M17 4h-10a3 3 0 0 0 -3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3 -3v-10a3 3 0 0 0 -3 -3z",strokeWidth:"0",fill:"currentColor"})]}),Q),f7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 12l5 5l10 -10"})]}),Q),Ev=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10.24 3.957l-8.422 14.06a1.989 1.989 0 0 0 1.7 2.983h16.845a1.989 1.989 0 0 0 1.7 -2.983l-8.423 -14.06a1.989 1.989 0 0 0 -3.4 0z"}),(0,p.jsx)("path",{d:"M12 9v4"}),(0,p.jsx)("path",{d:"M12 17h.01"})]}),Q),yv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M11 7l6 6"}),(0,p.jsx)("path",{d:"M4 16l11.7 -11.7a1 1 0 0 1 1.4 0l2.6 2.6a1 1 0 0 1 0 1.4l-11.7 11.7h-4v-4z"})]}),Q),wv=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 3l-4 7h8z"}),(0,p.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.jsx)("path",{d:"M4 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z"})]}),Q),bd=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 7l16 0"}),(0,p.jsx)("path",{d:"M4 17l16 0"}),(0,p.jsx)("path",{d:"M7 4l0 16"}),(0,p.jsx)("path",{d:"M17 4l0 16"})]}),Q),xd=L((0,p.jsx)("path",{fill:"currentColor",d:"M407.48,111.18C335.587,108.103 269.573,152.338 245.08,220C220.587,152.338 154.573,108.103 82.68,111.18C80.285,168.229 107.577,222.632 154.74,254.82C178.908,271.419 193.35,298.951 193.27,328.27L193.27,379.13L296.9,379.13L296.9,328.27C296.816,298.953 311.255,271.42 335.42,254.82C382.596,222.644 409.892,168.233 407.48,111.18Z"})),da=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M4.16602 10H15.8327"}),(0,p.jsx)("path",{d:"M12.5 13.3333L15.8333 10"}),(0,p.jsx)("path",{d:"M12.5 6.66666L15.8333 9.99999"})]}),de),vd=L((0,p.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",transform:"rotate(90 10 10)",children:[(0,p.jsx)("path",{clipRule:"evenodd",d:"m9.644 13.69 7.774-7.773a2.357 2.357 0 0 0-3.334-3.334l-7.773 7.774L8 12l1.643 1.69Z"}),(0,p.jsx)("path",{d:"m13.25 3.417 3.333 3.333M10 10l2-2M5 15l3-3M2.156 17.894l1-1M5.453 19.029l-.144-1.407M2.377 11.887l.866 1.118M8.354 17.273l-1.194-.758M.953 14.652l1.408.13"})]}),20),ma=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,p.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,p.jsx)("path",{d:"M15 6l3 3"}),(0,p.jsx)("path",{d:"M9 3a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"}),(0,p.jsx)("path",{d:"M19 13a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"})]}),Q),h7=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,p.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,p.jsx)("path",{d:"M15 6l3 3"}),(0,p.jsx)("path",{d:"M9 3a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"}),(0,p.jsx)("path",{d:"M19 13a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"})]}),Q),Gl=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M11.217 19.384a3.501 3.501 0 0 0 6.783 -1.217v-5.167l-6 -3.35"}),(0,p.jsx)("path",{d:"M5.214 15.014a3.501 3.501 0 0 0 4.446 5.266l4.34 -2.534v-6.946"}),(0,p.jsx)("path",{d:"M6 7.63c-1.391 -.236 -2.787 .395 -3.534 1.689a3.474 3.474 0 0 0 1.271 4.745l4.263 2.514l6 -3.348"}),(0,p.jsx)("path",{d:"M12.783 4.616a3.501 3.501 0 0 0 -6.783 1.217v5.067l6 3.45"}),(0,p.jsx)("path",{d:"M18.786 8.986a3.501 3.501 0 0 0 -4.446 -5.266l-4.34 2.534v6.946"}),(0,p.jsx)("path",{d:"M18 16.302c1.391 .236 2.787 -.395 3.534 -1.689a3.474 3.474 0 0 0 -1.271 -4.745l-4.308 -2.514l-5.955 3.42"})]}),Q),Cv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2"}),(0,p.jsx)("path",{d:"M4 16v2a2 2 0 0 0 2 2h2"}),(0,p.jsx)("path",{d:"M16 4h2a2 2 0 0 1 2 2v2"}),(0,p.jsx)("path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2"})]}),Q),pa=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0"}),(0,p.jsx)("path",{d:"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6"})]}),Q),Sv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828"}),(0,p.jsx)("path",{d:"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87"}),(0,p.jsx)("path",{d:"M3 3l18 18"})]}),Q),Tv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15.5 13a3.5 3.5 0 0 0 -3.5 3.5v1a3.5 3.5 0 0 0 7 0v-1.8"}),(0,p.jsx)("path",{d:"M8.5 13a3.5 3.5 0 0 1 3.5 3.5v1a3.5 3.5 0 0 1 -7 0v-1.8"}),(0,p.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,p.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,p.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,p.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),Q),kv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15.5 13a3.5 3.5 0 0 0 -3.5 3.5v1a3.5 3.5 0 0 0 7 0v-1.8"}),(0,p.jsx)("path",{d:"M8.5 13a3.5 3.5 0 0 1 3.5 3.5v1a3.5 3.5 0 0 1 -7 0v-1.8"}),(0,p.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,p.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,p.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,p.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),Q),Ed=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"}),(0,p.jsx)("path",{d:"M21 21l-6 -6"})]}),Q),Iv=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M20.984 12.53a9 9 0 1 0 -7.552 8.355"}),(0,p.jsx)("path",{d:"M12 7v5l3 3"}),(0,p.jsx)("path",{d:"M19 16l-2 3h4l-2 3"})]}),Q),Av=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M9 2m0 3a3 3 0 0 1 3 -3h0a3 3 0 0 1 3 3v5a3 3 0 0 1 -3 3h0a3 3 0 0 1 -3 -3z"}),(0,p.jsx)("path",{d:"M5 10a7 7 0 0 0 14 0"}),(0,p.jsx)("path",{d:"M8 21l8 0"}),(0,p.jsx)("path",{d:"M12 17l0 4"})]}),Q),Mv=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 3l18 18"}),(0,p.jsx)("path",{d:"M9 5a3 3 0 0 1 6 0v5a3 3 0 0 1 -.13 .874m-2 2a3 3 0 0 1 -3.87 -2.872v-1"}),(0,p.jsx)("path",{d:"M5 10a7 7 0 0 0 10.846 5.85m2 -2a6.967 6.967 0 0 0 1.152 -3.85"}),(0,p.jsx)("path",{d:"M8 21l8 0"}),(0,p.jsx)("path",{d:"M12 17l0 4"})]}),Q),yd=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11"})]}),Q),_v=L((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 8m0 1a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1z"}),(0,p.jsx)("path",{d:"M12 20v.01"}),(0,p.jsx)("path",{d:"M16 20v.01"}),(0,p.jsx)("path",{d:"M8 20v.01"}),(0,p.jsx)("path",{d:"M4 20v.01"}),(0,p.jsx)("path",{d:"M4 16v.01"}),(0,p.jsx)("path",{d:"M4 12v.01"}),(0,p.jsx)("path",{d:"M4 8v.01"}),(0,p.jsx)("path",{d:"M4 4v.01"}),(0,p.jsx)("path",{d:"M8 4v.01"}),(0,p.jsx)("path",{d:"M12 4v.01"}),(0,p.jsx)("path",{d:"M16 4v.01"}),(0,p.jsx)("path",{d:"M20 4v.01"}),(0,p.jsx)("path",{d:"M20 8v.01"}),(0,p.jsx)("path",{d:"M20 12v.01"}),(0,p.jsx)("path",{d:"M20 16v.01"}),(0,p.jsx)("path",{d:"M20 20v.01"})]}),Q),Lv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 3v18"}),(0,p.jsx)("path",{d:"M19 21v-18"}),(0,p.jsx)("path",{d:"M5 7h14"}),(0,p.jsx)("path",{d:"M5 15h14"}),(0,p.jsx)("path",{d:"M8 13v4"}),(0,p.jsx)("path",{d:"M11 13v4"}),(0,p.jsx)("path",{d:"M16 13v4"}),(0,p.jsx)("path",{d:"M14 5v4"}),(0,p.jsx)("path",{d:"M11 5v4"}),(0,p.jsx)("path",{d:"M8 5v4"}),(0,p.jsx)("path",{d:"M3 21h18"})]}),Q),Pv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 12l18 0"}),(0,p.jsx)("path",{d:"M7 16l10 0l-10 5l0 -5"}),(0,p.jsx)("path",{d:"M7 8l10 0l-10 -5l0 5"})]}),Q),Rv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 3l0 18"}),(0,p.jsx)("path",{d:"M16 7l0 10l5 0l-5 -10"}),(0,p.jsx)("path",{d:"M8 7l0 10l-5 0l5 -10"})]}),Q),of=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z"}),(0,p.jsx)("path",{d:"M19 6h1a2 2 0 0 1 2 2a5 5 0 0 1 -5 5l-5 0v2"}),(0,p.jsx)("path",{d:"M10 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"})]}),Q),wd=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15 15m-5 0a5 5 0 1 0 10 0a5 5 0 1 0 -10 0"}),(0,p.jsx)("path",{d:"M22 22l-3 -3"}),(0,p.jsx)("path",{d:"M6 18h-1a2 2 0 0 1 -2 -2v-1"}),(0,p.jsx)("path",{d:"M3 11v-1"}),(0,p.jsx)("path",{d:"M3 6v-1a2 2 0 0 1 2 -2h1"}),(0,p.jsx)("path",{d:"M10 3h1"}),(0,p.jsx)("path",{d:"M15 3h1a2 2 0 0 1 2 2v1"})]}),Q),Dv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,p.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,p.jsx)("path",{d:"M4 20.25c0 .414 .336 .75 .75 .75h1.25a1 1 0 0 0 1 -1v-1a1 1 0 0 0 -1 -1h-1a1 1 0 0 1 -1 -1v-1a1 1 0 0 1 1 -1h1.25a.75 .75 0 0 1 .75 .75"}),(0,p.jsx)("path",{d:"M10 15l2 6l2 -6"}),(0,p.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"})]}),Q),Nv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,p.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,p.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"}),(0,p.jsx)("path",{d:"M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6"}),(0,p.jsx)("path",{d:"M11 21v-6l3 6v-6"})]}),Q),Ov=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 13v-8a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v8a2 2 0 0 0 6 0v-8a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v8a8 8 0 0 1 -16 0"}),(0,p.jsx)("path",{d:"M4 8l5 0"}),(0,p.jsx)("path",{d:"M15 8l4 0"})]}),Q),Fv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 14c.83 .642 2.077 1.017 3.5 1c1.423 .017 2.67 -.358 3.5 -1c.83 -.642 2.077 -1.017 3.5 -1c1.423 -.017 2.67 .358 3.5 1"}),(0,p.jsx)("path",{d:"M8 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,p.jsx)("path",{d:"M12 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,p.jsx)("path",{d:"M3 10h14v5a6 6 0 0 1 -6 6h-2a6 6 0 0 1 -6 -6v-5z"}),(0,p.jsx)("path",{d:"M16.746 16.726a3 3 0 1 0 .252 -5.555"})]}),Q),Bv=L((0,p.jsxs)("g",{stroke:"currentColor",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 5a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-16a1 1 0 0 1-1-1v-10zM7 20h10M9 16v4M15 16v4"})]}),{...Q,strokeWidth:1.5}),g7=L((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10 12l10 0"}),(0,p.jsx)("path",{d:"M10 12l4 4"}),(0,p.jsx)("path",{d:"M10 12l4 -4"}),(0,p.jsx)("path",{d:"M4 4l0 16"})]}),Q),zv=L((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M2 8a4 4 0 0 1 4 -4h12a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-12a4 4 0 0 1 -4 -4v-8z"}),(0,p.jsx)("path",{d:"M10 9l5 3l-5 3z"})]}),Q),$v=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 6h18"}),(0,p.jsx)("path",{d:"M3 12h18"}),(0,p.jsx)("path",{d:"M3 18h18"}),(0,p.jsx)("path",{d:"M6 3v18"}),(0,p.jsx)("path",{d:"M12 3v18"}),(0,p.jsx)("path",{d:"M18 3v18"})]}),Q);var Uv=v(k(),1),Q6=(t,e)=>{let o=new Set(we(t.filter(r=>Ee(r)),e).map(r=>r.id));return{elements:t.map(r=>e.selectedElementIds[r.id]?he(r,{isDeleted:!0}):r.frameId&&o.has(r.frameId)?he(r,{isDeleted:!0}):xt(r)&&e.selectedElementIds[r.containerId]?he(r,{isDeleted:!0}):r),appState:{...e,selectedElementIds:{},selectedGroupIds:{}}}},Hv=(t,e)=>{if(t.editingGroupId){let o=ft(ye(e),t.editingGroupId);if(o.length)return{...t,selectedElementIds:{[o[0].id]:!0}}}return t},Vl=W({name:"deleteSelectedElements",label:"labels.delete",icon:er,trackEvent:{category:"element",action:"delete"},perform:(t,e,o,r)=>{if(e.editingLinearElement){let{elementId:a,selectedPointsIndices:l,startBindingElement:s,endBindingElement:d}=e.editingLinearElement,c=r.scene.getNonDeletedElementsMap(),m=ue.getElement(a,c);if(!m||l==null)return!1;if(m.points.length<2){let f=t.map(x=>x.id===m.id?he(x,{isDeleted:!0}):x),b=Hv(e,f);return{elements:f,appState:{...b,editingLinearElement:null},storeAction:P.CAPTURE}}let u={startBindingElement:l?.includes(0)?null:s,endBindingElement:l?.includes(m.points.length-1)?null:d};return ue.deletePoints(m,l),{elements:t,appState:{...e,editingLinearElement:{...e.editingLinearElement,...u,selectedPointsIndices:l?.[0]>0?[l[0]-1]:[0]}},storeAction:P.CAPTURE}}let{elements:n,appState:i}=Q6(t,e);return vc(n,t.filter(({id:a})=>e.selectedElementIds[a])),i=Hv(i,n),{elements:n,appState:{...i,activeTool:it(e,{type:"selection"}),multiElement:null,activeEmbeddable:null},storeAction:Fe(ye(t),e)?P.CAPTURE:P.NONE}},keyTest:(t,e,o)=>(t.key===S.BACKSPACE||t.key===S.DELETE)&&!t[S.CTRL_OR_CMD],PanelComponent:({elements:t,appState:e,updateData:o})=>(0,Uv.jsx)(ce,{type:"button",icon:er,title:g("labels.delete"),"aria-label":g("labels.delete"),onClick:()=>o(null),visible:Fe(ye(t),e)})});h();h();var rf=(t,e)=>t.frameId===e||t.id===e,Gv=(t,e,o)=>{let r=[],n=[],i=null,a=-1,l=pe(o||we(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0}));for(;++a<t.length;){let s=t[a];l.get(s.id)?(n.length&&(r=r.concat(n),n=[]),r.push(a),i=a+1):s.isDeleted&&i===a?(i=a+1,n.push(a)):n=[]}return r},e4=t=>{let e=0;return t.reduce((o,r,n)=>(n>0&&t[n-1]!==r-1&&(e=++e),(o[e]||(o[e]=[])).push(r),o),[])},Wv=(t,e,o)=>{if("containerId"in t&&t.containerId)if(o==="left"){let r=ko.getScene(t).getElement(t.containerId);if(r)return e.indexOf(r)}else return e.indexOf(t);else{let r=t.boundElements?.find(n=>n.type!=="arrow")?.id;if(r){if(o==="left")return e.indexOf(t);let n=ko.getScene(t).getElement(r);if(n)return e.indexOf(n)}}},t4=(t,e)=>{let o=-1,r=-1;return t.forEach((n,i)=>{rf(n,e)&&(o===-1&&(o=i),r=i)}),o===-1?[]:t.slice(o,r+1)},o4=(t,e,o,r,n)=>{let i=e[o],a=m=>m.isDeleted?!1:n?m.frameId===n:t.editingGroupId?m.groupIds.includes(t.editingGroupId):!0,l=r==="left"?Zp(e,m=>a(m),Math.max(0,o-1)):Yp(e,m=>a(m),o+1),s=e[l];if(!s)return-1;if(t.editingGroupId){if(i?.groupIds.join("")===s?.groupIds.join(""))return Wv(s,e,r)??l;if(!s?.groupIds.includes(t.editingGroupId))return-1}if(!n&&(s.frameId||Ee(s))){let m=t4(e,s.frameId||s.id);return r==="left"?e.indexOf(m[0]):e.indexOf(m[m.length-1])}if(!s.groupIds.length)return Wv(s,e,r)??l;let d=t.editingGroupId?s.groupIds[s.groupIds.indexOf(t.editingGroupId)-1]:s.groupIds[s.groupIds.length-1],c=ft(e,d);return c.length?r==="left"?e.indexOf(c[0]):e.indexOf(c[c.length-1]):l},Vv=(t,e)=>e.reduce((o,r)=>{let n=t[r];return o.set(n.id,n),o},new Map),Kv=(t,e,o)=>{let r=Gv(t,e),n=Vv(t,r),i=e4(r);o==="right"&&(i=i.reverse());let a=new Set(r.filter(l=>Ee(t[l])).map(l=>t[l].id));return i.forEach((l,s)=>{let d=l[0],c=l[l.length-1],m=o==="left"?d:c,u=l.some(C=>{let w=t[C];return w.frameId&&a.has(w.frameId)})?null:t[m]?.frameId,f=o4(e,t,m,o,u);if(f===-1||m===f)return;let b=o==="left"?t.slice(0,f):t.slice(0,d),x=t.slice(d,c+1),E=o==="left"?t.slice(f,d):t.slice(c+1,f+1),T=o==="left"?t.slice(c+1):t.slice(f+1);t=o==="left"?[...b,...x,...E,...T]:[...b,...E,...x,...T]}),ho(t,n),t},Yv=(t,e,o,r,n)=>{let i=Gv(t,e,n),a=Vv(t,i),l=[],s,d;if(o==="left"){if(r)s=Yp(t,b=>rf(b,r));else if(e.editingGroupId){let b=ft(t,e.editingGroupId);if(!b.length)return t;s=t.indexOf(b[0])}else s=0;d=i[i.length-1]}else{if(r)d=Zp(t,b=>rf(b,r));else if(e.editingGroupId){let b=ft(t,e.editingGroupId);if(!b.length)return t;d=t.indexOf(b[b.length-1])}else d=t.length-1;s=i[0]}s===-1&&(s=0);for(let b=s;b<d+1;b++)i.includes(b)||l.push(t[b]);let c=Array.from(a.values()),m=t.slice(0,s),u=t.slice(d+1),f=o==="left"?[...m,...c,...l,...u]:[...m,...l,...c,...u];return ho(f,a),f};function Zv(t,e,o,r){let n=pe(we(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),i={regularElements:[],frameChildren:new Map},a=new Set;for(let d of t)n.has(d.id)&&Ee(d)&&a.add(d.id);for(let d of t)if(n.has(d.id))if(Ee(d)||d.frameId&&a.has(d.frameId))i.regularElements.push(d);else if(!d.frameId)i.regularElements.push(d);else{let c=i.frameChildren.get(d.frameId)||[];c.push(d),i.frameChildren.set(d.frameId,c)}let l=t,s=Array.from(i.frameChildren.entries());for(let[d,c]of s)l=r(t,e,o,d,c);return r(l,e,o,null,i.regularElements)}var jv=(t,e)=>Kv(t,e,"left"),Xv=(t,e)=>Kv(t,e,"right"),qv=(t,e)=>Zv(t,e,"left",Yv),Jv=(t,e)=>Zv(t,e,"right",Yv);var Kl=v(k(),1),nf=W({name:"sendBackward",label:"labels.sendBackward",icon:Hu,trackEvent:{category:"element"},perform:(t,e)=>({elements:jv(t,e),appState:e,storeAction:P.CAPTURE}),keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===fe.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,Kl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendBackward")} \u2014 ${F("CtrlOrCmd+[")}`,children:Hu})}),af=W({name:"bringForward",label:"labels.bringForward",icon:$u,trackEvent:{category:"element"},perform:(t,e)=>({elements:Xv(t,e),appState:e,storeAction:P.CAPTURE}),keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===fe.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,Kl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.bringForward")} \u2014 ${F("CtrlOrCmd+]")}`,children:$u})}),lf=W({name:"sendToBack",label:"labels.sendToBack",icon:Wu,trackEvent:{category:"element"},perform:(t,e)=>({elements:qv(t,e),appState:e,storeAction:P.CAPTURE}),keyTest:t=>Yo?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.BRACKET_LEFT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===fe.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,Kl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendToBack")} \u2014 ${Yo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")}`,children:Wu})}),sf=W({name:"bringToFront",label:"labels.bringToFront",icon:Uu,trackEvent:{category:"element"},perform:(t,e)=>({elements:Jv(t,e),appState:e,storeAction:P.CAPTURE}),keyTest:t=>Yo?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.BRACKET_RIGHT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===fe.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,Kl.jsx)("button",{type:"button",className:"zIndexButton",onClick:o=>t(null),title:`${g("labels.bringToFront")} \u2014 ${Yo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")}`,children:Uu})});h();var cf=W({name:"selectAll",label:"labels.selectAll",icon:_v,trackEvent:{category:"canvas"},viewMode:!1,perform:(t,e,o,r)=>{if(e.editingLinearElement)return!1;let n=ta(t.filter(i=>!i.isDeleted&&!(se(i)&&i.containerId)&&!i.locked)).reduce((i,a)=>(i[a.id]=!0,i),{});return{appState:{...e,...Nt({editingGroupId:null,selectedElementIds:n},ye(t),e,r),selectedLinearElement:Object.keys(n).length===1&&$e(t[0])?new ue(t[0]):null},storeAction:P.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.A});h();h();var r4=t=>{let e=t.slice(),o=new Set,r=i=>{let a=i[0]?.groupIds?.join(""),l=[i[0]],s=[];for(let d of i.slice(1))d.groupIds?.join("")===a?l.push(d):s.push(d);return s.length?[...l,...r(s)]:l},n=new Map;return e.forEach((i,a)=>{if(!n.has(i.id))if(i.groupIds?.length){let l=i.groupIds[i.groupIds.length-1],s=e.slice(a).filter(d=>{let c=d?.groupIds?.some(m=>m===l);return c&&n.set(d.id,!0),c});for(let d of r(s))o.add(d)}else o.add(i)}),o.size!==t.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),t):[...o]},n4=t=>{let e=V1(t),o=t.slice(),r=new Set;return o.forEach((n,i)=>{n&&(n.boundElements?.length?(r.add(n),o[i]=null,n.boundElements.forEach(a=>{let l=e.get(a.id);l&&a.type==="text"&&(r.add(l[0]),o[l[1]]=null)})):n.type==="text"&&n.containerId&&e.get(n.containerId)?.[0].boundElements?.find(l=>l.id===n.id)||(r.add(n),o[i]=null))}),r.size!==t.length?(console.error("normalizeBoundElementsOrder: lost some elements... bailing!"),t):[...r]},Qv=t=>n4(r4(t));var e2=v(k(),1),df=W({name:"duplicateSelection",label:"labels.duplicateSelection",icon:$l,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getNonDeletedElementsMap();if(e.editingLinearElement){let i=ue.duplicateSelectedPoints(e,n);return i?{elements:t,appState:i.appState,storeAction:P.CAPTURE}:!1}return{...i4(t,e),storeAction:P.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.D,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,e2.jsx)(ce,{type:"button",icon:$l,title:`${g("labels.duplicateSelection")} \u2014 ${F("CtrlOrCmd+D")}`,"aria-label":g("labels.duplicateSelection"),onClick:()=>o(null),visible:Fe(ye(t),e)})}),i4=(t,e)=>{let o=Qv(t),r=new Map,n=[],i=[],a=new Map,l=new Map,s=C=>{let w=_c(e.editingGroupId,r,C,{x:C.x+Lr/2,y:C.y+Lr/2});return l.set(w.id,w),a.set(C.id,w.id),i.push(C),n.push(w),w},d=pe(we(o,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),c=new Map,m=C=>{for(let w of C)c.set(w.id,!0);return C},u=[],f=-1;for(;++f<o.length;){let C=o[f];if(c.get(C.id))continue;let w=ct(C,pe(t)),A=Ee(C);if(d.get(C.id)){if(C.groupIds.length||w||A){let z=Ib(e,C);if(z){let I=ft(o,z).flatMap(M=>Ee(M)?[...bn(t,M.id),M]:[M]);u.push(...m([...I,...I.map(M=>s(M))]));continue}if(w){u.push(...m([C,w,s(C),s(w)]));continue}if(A){let I=bn(o,C.id);u.push(...m([...I,C,...I.map(M=>s(M)),s(C)]));continue}}(!C.frameId||!d.has(C.frameId))&&u.push(...m([C,s(C)]))}else u.push(...m([C]))}let b=[],x=new Map;for(f=u.length;--f>=0;){let C=u[f];x.get(C.id)||(x.set(C.id,!0),b.push(C))}let E=ho(b.reverse(),pe(n));Ec(u,i,a),xc(u,i,a),Hc(E,i,a);let T=ta(n);return{elements:E,appState:{...e,...Nt({editingGroupId:e.editingGroupId,selectedElementIds:T.reduce((C,w)=>(xt(w)||(C[w.id]=!0),C),{})},ye(E),e,null)}}};h();h();var a4=["ai","command_palette"],xe=(t,e,o,r)=>{try{if(typeof window>"u"||y.VITE_WORKER_ID||y.PROD||!a4.includes(t))return;y.PROD||console.info("trackEvent",{category:t,action:e,label:o,value:r}),window.sa_event&&window.sa_event(e,{category:t,label:o,value:r})}catch(n){console.error("error during analytics",n)}};h();var ua=v(k(),1),xr=t=>(0,ua.jsx)("div",{className:"buttonList buttonListIcon",children:t.options.map(e=>t.type==="button"?(0,ua.jsx)("button",{onClick:o=>t.onClick(e.value,o),className:$({active:e.active??t.value===e.value}),"data-testid":e.testId,title:e.text,children:e.icon},e.text):(0,ua.jsxs)("label",{className:$({active:t.value===e.value}),title:e.text,children:[(0,ua.jsx)("input",{type:"radio",name:t.group,onChange:()=>t.onChange(e.value),checked:t.value===e.value,"data-testid":e.testId}),e.icon]},e.text))});h();h();var Cd=v(k(),1),t2=({onChange:t,type:e,activeColor:o,topPicks:r})=>{let n;return e==="elementStroke"&&(n=Ks),e==="elementBackground"&&(n=Ys),e==="canvasBackground"&&(n=Zs),r&&(n=r),n?(0,Cd.jsx)("div",{className:"color-picker__top-picks",children:n.map(i=>(0,Cd.jsx)("button",{className:$("color-picker__button",{active:i===o,"is-transparent":i==="transparent"||!i}),style:{"--swatch-color":i},type:"button",title:i,onClick:()=>t(i),"data-testid":`color-top-pick-${i}`,children:(0,Cd.jsx)("div",{className:"color-picker__button-outline"})},i))}):(console.error("Invalid type for TopPicks"),null)};h();var En=v(H(),1);h();var Sd=v(H(),1);h();var vn=({palette:t,color:e})=>{for(let[o,r]of Object.entries(t))if(Array.isArray(r)){let n=r.indexOf(e);if(n>-1)return{colorName:o,shade:n}}else if(r===e)return{colorName:o,shade:null};return null},Yl=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),mf=({color:t,palette:e})=>!Object.values(e).flat().includes(t),r2=(t,e,o)=>{let r={elementBackground:"backgroundColor",elementStroke:"strokeColor"},n=t.filter(a=>{if(a.isDeleted)return!1;let l=a[r[e]];return mf({color:l,palette:o})}),i=new Map;return n.forEach(a=>{let l=a[r[e]];i.has(l)?i.set(l,i.get(l)+1):i.set(l,1)}),[...i.entries()].sort((a,l)=>l[1]-a[1]).map(a=>a[0]).slice(0,n1)},Do=We(null),o2=(t,e,o)=>(t*299+e*587+o*114)/1e3>=160?"black":"white",n2=(t,e)=>{if(e){let i=new Option().style;if(i.color=t,i.color){let a=i.color.replace(/^(rgb|rgba)\(/,"").replace(/\)$/,"").replace(/\s/g,"").split(","),l=parseInt(a[0]),s=parseInt(a[1]),d=parseInt(a[2]);return o2(l,s,d)}}if(t==="transparent")return"black";let o=parseInt(t.substring(1,3),16),r=parseInt(t.substring(3,5),16),n=parseInt(t.substring(5,7),16);return o2(o,r,n)};h();var i2=v(k(),1),l4=({color:t,keyLabel:e,isCustomColor:o=!1,isShade:r=!1})=>(0,i2.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:n2(t,o)},children:[r&&"\u21E7",e]}),fa=l4;var Vr=v(k(),1),a2=({hex:t,onChange:e,palette:o})=>{let r=vn({color:t||"transparent",palette:o}),[n,i]=Se(Do),a=(0,Sd.useRef)(null);if((0,Sd.useEffect)(()=>{a.current&&n==="shades"&&a.current.focus()},[r,n]),r){let{colorName:l,shade:s}=r,d=o[l];if(Array.isArray(d))return(0,Vr.jsx)("div",{className:"color-picker-content--default shades",children:d.map((c,m)=>(0,Vr.jsxs)("button",{ref:m===s&&n==="shades"?a:void 0,tabIndex:-1,type:"button",className:$("color-picker__button color-picker__button--large",{active:m===s}),"aria-label":"Shade",title:`${l} - ${m+1}`,style:c?{"--swatch-color":c}:void 0,onClick:()=>{e(c),i("shades")},children:[(0,Vr.jsx)("div",{className:"color-picker__button-outline"}),(0,Vr.jsx)(fa,{color:c,keyLabel:m+1,isShade:!0})]},m))})}return(0,Vr.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,Vr.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,Vr.jsx)("div",{tabIndex:-1,style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",fontSize:"0.75rem"},children:g("colorPicker.noShades")})]})};h();var Td=v(H(),1);var ha=v(k(),1),s4=({palette:t,color:e,onChange:o,label:r,activeShade:n})=>{let i=vn({color:e||"transparent",palette:t}),[a,l]=Se(Do),s=(0,Td.useRef)(null);return(0,Td.useEffect)(()=>{s.current&&a==="baseColors"&&s.current.focus()},[i?.colorName,a]),(0,ha.jsx)("div",{className:"color-picker-content--default",children:Object.entries(t).map(([d,c],m)=>{let u=(Array.isArray(c)?c[n]:c)||"transparent",f=Yl[m],b=g(`colors.${d.replace(/\d+/,"")}`,null,"");return(0,ha.jsxs)("button",{ref:i?.colorName===d?s:void 0,tabIndex:-1,type:"button",className:$("color-picker__button color-picker__button--large",{active:i?.colorName===d,"is-transparent":u==="transparent"||!u}),onClick:()=>{o(u),l("baseColors")},title:`${b}${u.startsWith("#")?` ${u}`:""} \u2014 ${f}`,"aria-label":`${b} \u2014 ${f}`,style:u?{"--swatch-color":u}:void 0,"data-testid":`color-${d}`,children:[(0,ha.jsx)("div",{className:"color-picker__button-outline"}),(0,ha.jsx)(fa,{color:u,keyLabel:f})]},d)})})},l2=s4;h();var kd=v(H(),1);var ga=v(k(),1),s2=({colors:t,color:e,onChange:o,label:r})=>{let[n,i]=Se(Do),a=(0,kd.useRef)(null);return(0,kd.useEffect)(()=>{a.current&&a.current.focus()},[e,n]),(0,ga.jsx)("div",{className:"color-picker-content--default",children:t.map((l,s)=>(0,ga.jsxs)("button",{ref:e===l?a:void 0,tabIndex:-1,type:"button",className:$("color-picker__button color-picker__button--large",{active:e===l,"is-transparent":l==="transparent"||!l}),onClick:()=>{o(l),i("custom")},title:l,"aria-label":r,style:{"--swatch-color":l},children:[(0,ga.jsx)("div",{className:"color-picker__button-outline"}),(0,ga.jsx)(fa,{color:l,keyLabel:s+1,isCustomColor:!0})]},s))})};h();var pf=(t,e,o)=>{let r=Math.ceil(o/Wn);switch(e=e??-1,t){case"ArrowLeft":{let n=e-1;return n<0?o-1:n}case"ArrowRight":return(e+1)%o;case"ArrowDown":{let n=e+Wn;return n>=o?e%Wn:n}case"ArrowUp":{let n=e-Wn,i=n<0?Wn*r+n:n;return i>=o?void 0:i}}},c4=({e:t,colorObj:e,onChange:o,palette:r,customColors:n,setActiveColorPickerSection:i,activeShade:a})=>{if(e?.shade!=null&&["Digit1","Digit2","Digit3","Digit4","Digit5"].includes(t.code)&&t.shiftKey){let l=Number(t.code.slice(-1))-1;return o(r[e.colorName][l]),i("shades"),!0}if(["1","2","3","4","5"].includes(t.key)&&n[Number(t.key)-1])return o(n[Number(t.key)-1]),i("custom"),!0;if(Yl.includes(t.key)){let l=Yl.indexOf(t.key),s=Object.keys(r)[l],d=r[s],c=Array.isArray(d)?d[a]:d;return o(c),i("baseColors"),!0}return!1},c2=({event:t,activeColorPickerSection:e,palette:o,color:r,onChange:n,customColors:i,setActiveColorPickerSection:a,updateData:l,activeShade:s,onEyeDropperToggle:d,onEscape:c})=>{if(t[S.CTRL_OR_CMD])return!1;if(t.key===S.ESCAPE)return c(t),!0;if(t.key===S.ALT)return d(!0),!0;if(t.key===S.I)return d(),!0;let m=vn({color:r,palette:o});if(t.key===S.TAB){let u={custom:!!i.length,baseColors:!0,shades:m?.shade!=null,hex:!0},f=Object.entries(u).reduce((C,[w,A])=>(A&&C.push(w),C),[]),b=f.indexOf(e),x=t.shiftKey?-1:1,E=b+x>f.length-1?0:b+x<0?f.length-1:b+x,T=f[E];return T&&a(T),T==="custom"?n(i[0]):T==="baseColors"&&(Object.entries(o).find(([w,A])=>Array.isArray(A)?A.includes(r):A===r?w:null)||n(Ar.black)),t.preventDefault(),t.stopPropagation(),!0}if(c4({e:t,colorObj:m,onChange:n,palette:o,customColors:i,setActiveColorPickerSection:a,activeShade:s}))return!0;if(e==="shades"&&m){let{shade:u}=m,f=pf(t.key,u,Wn);if(f!==void 0)return n(o[m.colorName][f]),!0}if(e==="baseColors"&&m){let{colorName:u}=m,f=Object.keys(o),b=f.indexOf(u),x=pf(t.key,b,f.length);if(x!==void 0){let E=f[x],T=o[E];return n(Array.isArray(T)?T[s]:T),!0}}if(e==="custom"){let u=i.indexOf(r),f=pf(t.key,u,i.length);if(f!==void 0){let b=i[f];return n(b),!0}}return!1};h();var d2=v(k(),1),d4=({children:t})=>(0,d2.jsx)("div",{className:"color-picker__heading",children:t}),ba=d4;var go=v(k(),1),m2=({color:t,onChange:e,label:o,type:r,elements:n,palette:i,updateData:a,children:l,onEyeDropperToggle:s,onEscape:d})=>{let[c]=En.default.useState(()=>r==="canvasBackground"?[]:r2(n,r,i)),[m,u]=Se(Do),f=vn({color:t,palette:i});(0,En.useEffect)(()=>{if(!m){let T=mf({color:t,palette:i}),C=T&&!c.includes(t);u(C?"hex":T?"custom":f?.shade!=null?"shades":"baseColors")}},[m,t,i,u,f,c]);let[b,x]=(0,En.useState)(f?.shade??(r==="elementBackground"?a1:i1));(0,En.useEffect)(()=>{f?.shade!=null&&x(f.shade);let T=C=>{C.key===S.ALT&&s(!1)};return document.addEventListener("keyup",T,{capture:!0}),()=>{document.removeEventListener("keyup",T,{capture:!0})}},[f,s]);let E=En.default.useRef(null);return(0,go.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":g("labels.colorPicker"),children:(0,go.jsxs)("div",{ref:E,onKeyDown:T=>{c2({event:T,activeColorPickerSection:m,palette:i,color:t,onChange:e,onEyeDropperToggle:s,customColors:c,setActiveColorPickerSection:u,updateData:a,activeShade:b,onEscape:d})&&(T.preventDefault(),T.stopPropagation())},className:"color-picker-content",tabIndex:-1,children:[!!c.length&&(0,go.jsxs)("div",{children:[(0,go.jsx)(ba,{children:g("colorPicker.mostUsedCustomColors")}),(0,go.jsx)(s2,{colors:c,color:t,label:g("colorPicker.mostUsedCustomColors"),onChange:e})]}),(0,go.jsxs)("div",{children:[(0,go.jsx)(ba,{children:g("colorPicker.colors")}),(0,go.jsx)(l2,{color:t,label:o,palette:i,onChange:e,activeShade:b})]}),(0,go.jsxs)("div",{children:[(0,go.jsx)(ba,{children:g("colorPicker.shades")}),(0,go.jsx)(a2,{hex:t,onChange:e,palette:i})]}),l]})})};h();h();function Ce(){return Ce=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(t[r]=o[r])}return t},Ce.apply(this,arguments)}var Te=v(H());h();function Et(t,e,{checkForDefaultPrevented:o=!0}={}){return function(n){if(t?.(n),o===!1||!n.defaultPrevented)return e?.(n)}}h();var p2=v(H());function m4(t,e){typeof t=="function"?t(e):t!=null&&(t.current=e)}function uf(...t){return e=>t.forEach(o=>m4(o,e))}function Ft(...t){return(0,p2.useCallback)(uf(...t),t)}h();var tr=v(H());function Er(t,e=[]){let o=[];function r(i,a){let l=(0,tr.createContext)(a),s=o.length;o=[...o,a];function d(m){let{scope:u,children:f,...b}=m,x=u?.[t][s]||l,E=(0,tr.useMemo)(()=>b,Object.values(b));return(0,tr.createElement)(x.Provider,{value:E},f)}function c(m,u){let f=u?.[t][s]||l,b=(0,tr.useContext)(f);if(b)return b;if(a!==void 0)return a;throw new Error(`\`${m}\` must be used within \`${i}\``)}return d.displayName=i+"Provider",[d,c]}let n=()=>{let i=o.map(a=>(0,tr.createContext)(a));return function(l){let s=l?.[t]||i;return(0,tr.useMemo)(()=>({[`__scope${t}`]:{...l,[t]:s}}),[l,s])}};return n.scopeName=t,[r,p4(n,...e)]}function p4(...t){let e=t[0];if(t.length===1)return e;let o=()=>{let r=t.map(n=>({useScope:n(),scopeName:n.scopeName}));return function(i){let a=r.reduce((l,{useScope:s,scopeName:d})=>{let m=s(i)[`__scope${d}`];return{...l,...m}},{});return(0,tr.useMemo)(()=>({[`__scope${e.scopeName}`]:a}),[a])}};return o.scopeName=e.scopeName,o}h();var gt=v(H());h();var xa=v(H()),u2=v(br());h();var lt=v(H());var yn=(0,lt.forwardRef)((t,e)=>{let{children:o,...r}=t,n=lt.Children.toArray(o),i=n.find(f4);if(i){let a=i.props.children,l=n.map(s=>s===i?lt.Children.count(a)>1?lt.Children.only(null):(0,lt.isValidElement)(a)?a.props.children:null:s);return(0,lt.createElement)(ff,Ce({},r,{ref:e}),(0,lt.isValidElement)(a)?(0,lt.cloneElement)(a,void 0,l):null)}return(0,lt.createElement)(ff,Ce({},r,{ref:e}),o)});yn.displayName="Slot";var ff=(0,lt.forwardRef)((t,e)=>{let{children:o,...r}=t;return(0,lt.isValidElement)(o)?(0,lt.cloneElement)(o,{...h4(r,o.props),ref:uf(e,o.ref)}):lt.Children.count(o)>1?lt.Children.only(null):null});ff.displayName="SlotClone";var u4=({children:t})=>(0,lt.createElement)(lt.Fragment,null,t);function f4(t){return(0,lt.isValidElement)(t)&&t.type===u4}function h4(t,e){let o={...e};for(let r in e){let n=t[r],i=e[r];/^on[A-Z]/.test(r)?n&&i?o[r]=(...l)=>{i(...l),n(...l)}:n&&(o[r]=n):r==="style"?o[r]={...n,...i}:r==="className"&&(o[r]=[n,i].filter(Boolean).join(" "))}return{...t,...o}}var g4=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],dt=g4.reduce((t,e)=>{let o=(0,xa.forwardRef)((r,n)=>{let{asChild:i,...a}=r,l=i?yn:e;return(0,xa.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,xa.createElement)(l,Ce({},a,{ref:n}))});return o.displayName=`Primitive.${e}`,{...t,[e]:o}},{});function f2(t,e){t&&(0,u2.flushSync)(()=>t.dispatchEvent(e))}h();var va=v(H());function oo(t){let e=(0,va.useRef)(t);return(0,va.useEffect)(()=>{e.current=t}),(0,va.useMemo)(()=>(...o)=>{var r;return(r=e.current)===null||r===void 0?void 0:r.call(e,...o)},[])}h();var h2=v(H());function g2(t,e=globalThis?.document){let o=oo(t);(0,h2.useEffect)(()=>{let r=n=>{n.key==="Escape"&&o(n)};return e.addEventListener("keydown",r),()=>e.removeEventListener("keydown",r)},[o,e])}var hf="dismissableLayer.update",b4="dismissableLayer.pointerDownOutside",x4="dismissableLayer.focusOutside",b2,v4=(0,gt.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),v2=(0,gt.forwardRef)((t,e)=>{var o;let{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:l,onDismiss:s,...d}=t,c=(0,gt.useContext)(v4),[m,u]=(0,gt.useState)(null),f=(o=m?.ownerDocument)!==null&&o!==void 0?o:globalThis?.document,[,b]=(0,gt.useState)({}),x=Ft(e,_=>u(_)),E=Array.from(c.layers),[T]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),C=E.indexOf(T),w=m?E.indexOf(m):-1,A=c.layersWithOutsidePointerEventsDisabled.size>0,z=w>=C,I=E4(_=>{let U=_.target,D=[...c.branches].some(G=>G.contains(U));!z||D||(i?.(_),l?.(_),_.defaultPrevented||s?.())},f),M=y4(_=>{let U=_.target;[...c.branches].some(G=>G.contains(U))||(a?.(_),l?.(_),_.defaultPrevented||s?.())},f);return g2(_=>{w===c.layers.size-1&&(n?.(_),!_.defaultPrevented&&s&&(_.preventDefault(),s()))},f),(0,gt.useEffect)(()=>{if(m)return r&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(b2=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(m)),c.layers.add(m),x2(),()=>{r&&c.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=b2)}},[m,f,r,c]),(0,gt.useEffect)(()=>()=>{m&&(c.layers.delete(m),c.layersWithOutsidePointerEventsDisabled.delete(m),x2())},[m,c]),(0,gt.useEffect)(()=>{let _=()=>b({});return document.addEventListener(hf,_),()=>document.removeEventListener(hf,_)},[]),(0,gt.createElement)(dt.div,Ce({},d,{ref:x,style:{pointerEvents:A?z?"auto":"none":void 0,...t.style},onFocusCapture:Et(t.onFocusCapture,M.onFocusCapture),onBlurCapture:Et(t.onBlurCapture,M.onBlurCapture),onPointerDownCapture:Et(t.onPointerDownCapture,I.onPointerDownCapture)}))});function E4(t,e=globalThis?.document){let o=oo(t),r=(0,gt.useRef)(!1),n=(0,gt.useRef)(()=>{});return(0,gt.useEffect)(()=>{let i=l=>{if(l.target&&!r.current){let d=function(){E2(b4,o,s,{discrete:!0})},s={originalEvent:l};l.pointerType==="touch"?(e.removeEventListener("click",n.current),n.current=d,e.addEventListener("click",n.current,{once:!0})):d()}r.current=!1},a=window.setTimeout(()=>{e.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(a),e.removeEventListener("pointerdown",i),e.removeEventListener("click",n.current)}},[e,o]),{onPointerDownCapture:()=>r.current=!0}}function y4(t,e=globalThis?.document){let o=oo(t),r=(0,gt.useRef)(!1);return(0,gt.useEffect)(()=>{let n=i=>{i.target&&!r.current&&E2(x4,o,{originalEvent:i},{discrete:!1})};return e.addEventListener("focusin",n),()=>e.removeEventListener("focusin",n)},[e,o]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function x2(){let t=new CustomEvent(hf);document.dispatchEvent(t)}function E2(t,e,o,{discrete:r}){let n=o.originalEvent.target,i=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:o});e&&n.addEventListener(t,e,{once:!0}),r?f2(n,i):n.dispatchEvent(i)}h();var w2=v(H()),gf=0;function C2(){(0,w2.useEffect)(()=>{var t,e;let o=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(t=o[0])!==null&&t!==void 0?t:y2()),document.body.insertAdjacentElement("beforeend",(e=o[1])!==null&&e!==void 0?e:y2()),gf++,()=>{gf===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),gf--}},[])}function y2(){let t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",t}h();var so=v(H());var bf="focusScope.autoFocusOnMount",xf="focusScope.autoFocusOnUnmount",S2={bubbles:!1,cancelable:!0};var A2=(0,so.forwardRef)((t,e)=>{let{loop:o=!1,trapped:r=!1,onMountAutoFocus:n,onUnmountAutoFocus:i,...a}=t,[l,s]=(0,so.useState)(null),d=oo(n),c=oo(i),m=(0,so.useRef)(null),u=Ft(e,x=>s(x)),f=(0,so.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,so.useEffect)(()=>{if(r){let x=function(T){if(f.paused||!l)return;let C=T.target;l.contains(C)?m.current=C:ii(m.current,{select:!0})},E=function(T){f.paused||!l||l.contains(T.relatedTarget)||ii(m.current,{select:!0})};return document.addEventListener("focusin",x),document.addEventListener("focusout",E),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",E)}}},[r,l,f.paused]),(0,so.useEffect)(()=>{if(l){k2.add(f);let x=document.activeElement;if(!l.contains(x)){let T=new CustomEvent(bf,S2);l.addEventListener(bf,d),l.dispatchEvent(T),T.defaultPrevented||(w4(I4(M2(l)),{select:!0}),document.activeElement===x&&ii(l))}return()=>{l.removeEventListener(bf,d),setTimeout(()=>{let T=new CustomEvent(xf,S2);l.addEventListener(xf,c),l.dispatchEvent(T),T.defaultPrevented||ii(x??document.body,{select:!0}),l.removeEventListener(xf,c),k2.remove(f)},0)}}},[l,d,c,f]);let b=(0,so.useCallback)(x=>{if(!o&&!r||f.paused)return;let E=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,T=document.activeElement;if(E&&T){let C=x.currentTarget,[w,A]=C4(C);w&&A?!x.shiftKey&&T===A?(x.preventDefault(),o&&ii(w,{select:!0})):x.shiftKey&&T===w&&(x.preventDefault(),o&&ii(A,{select:!0})):T===C&&x.preventDefault()}},[o,r,f.paused]);return(0,so.createElement)(dt.div,Ce({tabIndex:-1},a,{ref:u,onKeyDown:b}))});function w4(t,{select:e=!1}={}){let o=document.activeElement;for(let r of t)if(ii(r,{select:e}),document.activeElement!==o)return}function C4(t){let e=M2(t),o=T2(e,t),r=T2(e.reverse(),t);return[o,r]}function M2(t){let e=[],o=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{let n=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||n?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)e.push(o.currentNode);return e}function T2(t,e){for(let o of t)if(!S4(o,{upTo:e}))return o}function S4(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function T4(t){return t instanceof HTMLInputElement&&"select"in t}function ii(t,{select:e=!1}={}){if(t&&t.focus){let o=document.activeElement;t.focus({preventScroll:!0}),t!==o&&T4(t)&&e&&t.select()}}var k2=k4();function k4(){let t=[];return{add(e){let o=t[0];e!==o&&o?.pause(),t=I2(t,e),t.unshift(e)},remove(e){var o;t=I2(t,e),(o=t[0])===null||o===void 0||o.resume()}}}function I2(t,e){let o=[...t],r=o.indexOf(e);return r!==-1&&o.splice(r,1),o}function I4(t){return t.filter(e=>e.tagName!=="A")}h();var Id=v(H());h();var _2=v(H()),No=globalThis?.document?_2.useLayoutEffect:()=>{};var A4=Id.useId||(()=>{}),M4=0;function Ea(t){let[e,o]=Id.useState(A4());return No(()=>{t||o(r=>r??String(M4++))},[t]),t||(e?`radix-${e}`:"")}h();var je=v(H());h();h();h();function li(t){return t.split("-")[0]}function jl(t){return t.split("-")[1]}function wa(t){return["top","bottom"].includes(li(t))?"x":"y"}function Ef(t){return t==="y"?"height":"width"}function L2(t,e,o){let{reference:r,floating:n}=t,i=r.x+r.width/2-n.width/2,a=r.y+r.height/2-n.height/2,l=wa(e),s=Ef(l),d=r[s]/2-n[s]/2,c=l==="x",m;switch(li(e)){case"top":m={x:i,y:r.y-n.height};break;case"bottom":m={x:i,y:r.y+r.height};break;case"right":m={x:r.x+r.width,y:a};break;case"left":m={x:r.x-n.width,y:a};break;default:m={x:r.x,y:r.y}}switch(jl(e)){case"start":m[l]-=d*(o&&c?-1:1);break;case"end":m[l]+=d*(o&&c?-1:1)}return m}var N2=async(t,e,o)=>{let{placement:r="bottom",strategy:n="absolute",middleware:i=[],platform:a}=o,l=await(a.isRTL==null?void 0:a.isRTL(e)),s=await a.getElementRects({reference:t,floating:e,strategy:n}),{x:d,y:c}=L2(s,r,l),m=r,u={},f=0;for(let b=0;b<i.length;b++){let{name:x,fn:E}=i[b],{x:T,y:C,data:w,reset:A}=await E({x:d,y:c,initialPlacement:r,placement:m,strategy:n,middlewareData:u,rects:s,platform:a,elements:{reference:t,floating:e}});d=T??d,c=C??c,u={...u,[x]:{...u[x],...w}},A&&f<=50&&(f++,typeof A=="object"&&(A.placement&&(m=A.placement),A.rects&&(s=A.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:n}):A.rects),{x:d,y:c}=L2(s,m,l)),b=-1)}return{x:d,y:c,placement:m,strategy:n,middlewareData:u}};function O2(t){return typeof t!="number"?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(t):{top:t,right:t,bottom:t,left:t}}function Zl(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function ya(t,e){var o;e===void 0&&(e={});let{x:r,y:n,platform:i,rects:a,elements:l,strategy:s}=t,{boundary:d="clippingAncestors",rootBoundary:c="viewport",elementContext:m="floating",altBoundary:u=!1,padding:f=0}=e,b=O2(f),x=l[u?m==="floating"?"reference":"floating":m],E=Zl(await i.getClippingRect({element:(o=await(i.isElement==null?void 0:i.isElement(x)))==null||o?x:x.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:d,rootBoundary:c,strategy:s})),T=Zl(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:m==="floating"?{...a.floating,x:r,y:n}:a.reference,offsetParent:await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),strategy:s}):a[m]);return{top:E.top-T.top+b.top,bottom:T.bottom-E.bottom+b.bottom,left:E.left-T.left+b.left,right:T.right-E.right+b.right}}var _4=Math.min,ai=Math.max;function vf(t,e,o){return ai(t,_4(e,o))}var Md=t=>({name:"arrow",options:t,async fn(e){let{element:o,padding:r=0}=t??{},{x:n,y:i,placement:a,rects:l,platform:s}=e;if(o==null)return{};let d=O2(r),c={x:n,y:i},m=wa(a),u=jl(a),f=Ef(m),b=await s.getDimensions(o),x=m==="y"?"top":"left",E=m==="y"?"bottom":"right",T=l.reference[f]+l.reference[m]-c[m]-l.floating[f],C=c[m]-l.reference[m],w=await(s.getOffsetParent==null?void 0:s.getOffsetParent(o)),A=w?m==="y"?w.clientHeight||0:w.clientWidth||0:0;A===0&&(A=l.floating[f]);let z=T/2-C/2,I=d[x],M=A-b[f]-d[E],_=A/2-b[f]/2+z,U=vf(I,_,M),D=(u==="start"?d[x]:d[E])>0&&_!==U&&l.reference[f]<=l.floating[f];return{[m]:c[m]-(D?_<I?I-_:M-_:0),data:{[m]:U,centerOffset:_-U}}}}),L4={left:"right",right:"left",bottom:"top",top:"bottom"};function Ad(t){return t.replace(/left|right|bottom|top/g,e=>L4[e])}function P4(t,e,o){o===void 0&&(o=!1);let r=jl(t),n=wa(t),i=Ef(n),a=n==="x"?r===(o?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(a=Ad(a)),{main:a,cross:Ad(a)}}var R4={start:"end",end:"start"};function P2(t){return t.replace(/start|end/g,e=>R4[e])}var F2=["top","right","bottom","left"],R9=F2.reduce((t,e)=>t.concat(e,e+"-start",e+"-end"),[]);var yf=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var o;let{placement:r,middlewareData:n,rects:i,initialPlacement:a,platform:l,elements:s}=e,{mainAxis:d=!0,crossAxis:c=!0,fallbackPlacements:m,fallbackStrategy:u="bestFit",flipAlignment:f=!0,...b}=t,x=li(r),E=m||(x===a||!f?[Ad(a)]:function(_){let U=Ad(_);return[P2(_),U,P2(U)]}(a)),T=[a,...E],C=await ya(e,b),w=[],A=((o=n.flip)==null?void 0:o.overflows)||[];if(d&&w.push(C[x]),c){let{main:_,cross:U}=P4(r,i,await(l.isRTL==null?void 0:l.isRTL(s.floating)));w.push(C[_],C[U])}if(A=[...A,{placement:r,overflows:w}],!w.every(_=>_<=0)){var z,I;let _=((z=(I=n.flip)==null?void 0:I.index)!=null?z:0)+1,U=T[_];if(U)return{data:{index:_,overflows:A},reset:{placement:U}};let D="bottom";switch(u){case"bestFit":{var M;let G=(M=A.map(O=>[O,O.overflows.filter(B=>B>0).reduce((B,te)=>B+te,0)]).sort((O,B)=>O[1]-B[1])[0])==null?void 0:M[0].placement;G&&(D=G);break}case"initialPlacement":D=a}if(r!==D)return{reset:{placement:D}}}return{}}}};function R2(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function D2(t){return F2.some(e=>t[e]>=0)}var wf=function(t){let{strategy:e="referenceHidden",...o}=t===void 0?{}:t;return{name:"hide",async fn(r){let{rects:n}=r;switch(e){case"referenceHidden":{let i=R2(await ya(r,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:D2(i)}}}case"escaped":{let i=R2(await ya(r,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:i,escaped:D2(i)}}}default:return{}}}}},Cf=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){let{x:o,y:r}=e,n=await async function(i,a){let{placement:l,platform:s,elements:d}=i,c=await(s.isRTL==null?void 0:s.isRTL(d.floating)),m=li(l),u=jl(l),f=wa(l)==="x",b=["left","top"].includes(m)?-1:1,x=c&&f?-1:1,E=typeof a=="function"?a(i):a,{mainAxis:T,crossAxis:C,alignmentAxis:w}=typeof E=="number"?{mainAxis:E,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...E};return u&&typeof w=="number"&&(C=u==="end"?-1*w:w),f?{x:C*x,y:T*b}:{x:T*b,y:C*x}}(e,t);return{x:o+n.x,y:r+n.y,data:n}}}};function B2(t){return t==="x"?"y":"x"}var Sf=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){let{x:o,y:r,placement:n}=e,{mainAxis:i=!0,crossAxis:a=!1,limiter:l={fn:E=>{let{x:T,y:C}=E;return{x:T,y:C}}},...s}=t,d={x:o,y:r},c=await ya(e,s),m=wa(li(n)),u=B2(m),f=d[m],b=d[u];if(i){let E=m==="y"?"bottom":"right";f=vf(f+c[m==="y"?"top":"left"],f,f-c[E])}if(a){let E=u==="y"?"bottom":"right";b=vf(b+c[u==="y"?"top":"left"],b,b-c[E])}let x=l.fn({...e,[m]:f,[u]:b});return{...x,data:{x:x.x-o,y:x.y-r}}}}},Tf=function(t){return t===void 0&&(t={}),{options:t,fn(e){let{x:o,y:r,placement:n,rects:i,middlewareData:a}=e,{offset:l=0,mainAxis:s=!0,crossAxis:d=!0}=t,c={x:o,y:r},m=wa(n),u=B2(m),f=c[m],b=c[u],x=typeof l=="function"?l({...i,placement:n}):l,E=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(s){let z=m==="y"?"height":"width",I=i.reference[m]-i.floating[z]+E.mainAxis,M=i.reference[m]+i.reference[z]-E.mainAxis;f<I?f=I:f>M&&(f=M)}if(d){var T,C,w,A;let z=m==="y"?"width":"height",I=["top","left"].includes(li(n)),M=i.reference[u]-i.floating[z]+(I&&(T=(C=a.offset)==null?void 0:C[u])!=null?T:0)+(I?0:E.crossAxis),_=i.reference[u]+i.reference[z]+(I?0:(w=(A=a.offset)==null?void 0:A[u])!=null?w:0)-(I?E.crossAxis:0);b<M?b=M:b>_&&(b=_)}return{[m]:f,[u]:b}}}},kf=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){let{placement:o,rects:r,platform:n,elements:i}=e,{apply:a,...l}=t,s=await ya(e,l),d=li(o),c=jl(o),m,u;d==="top"||d==="bottom"?(m=d,u=c===(await(n.isRTL==null?void 0:n.isRTL(i.floating))?"start":"end")?"left":"right"):(u=d,m=c==="end"?"top":"bottom");let f=ai(s.left,0),b=ai(s.right,0),x=ai(s.top,0),E=ai(s.bottom,0),T={availableHeight:r.floating.height-(["left","right"].includes(o)?2*(x!==0||E!==0?x+E:ai(s.top,s.bottom)):s[m]),availableWidth:r.floating.width-(["top","bottom"].includes(o)?2*(f!==0||b!==0?f+b:ai(s.left,s.right)):s[u])},C=await n.getDimensions(i.floating);a?.({...e,...T});let w=await n.getDimensions(i.floating);return C.width!==w.width||C.height!==w.height?{reset:{rects:!0}}:{}}}};function G2(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Zr(t){if(t==null)return window;if(!G2(t)){let e=t.ownerDocument;return e&&e.defaultView||window}return t}function ql(t){return Zr(t).getComputedStyle(t)}function Kr(t){return G2(t)?"":t?(t.nodeName||"").toLowerCase():""}function V2(){let t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function yr(t){return t instanceof Zr(t).HTMLElement}function Cn(t){return t instanceof Zr(t).Element}function Af(t){return typeof ShadowRoot>"u"?!1:t instanceof Zr(t).ShadowRoot||t instanceof ShadowRoot}function Pd(t){let{overflow:e,overflowX:o,overflowY:r}=ql(t);return/auto|scroll|overlay|hidden/.test(e+r+o)}function D4(t){return["table","td","th"].includes(Kr(t))}function z2(t){let e=/firefox/i.test(V2()),o=ql(t);return o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].includes(o.willChange)||e&&o.willChange==="filter"||e&&!!o.filter&&o.filter!=="none"}function K2(){return!/^((?!chrome|android).)*safari/i.test(V2())}var $2=Math.min,Xl=Math.max,_d=Math.round;function Yr(t,e,o){var r,n,i,a;e===void 0&&(e=!1),o===void 0&&(o=!1);let l=t.getBoundingClientRect(),s=1,d=1;e&&yr(t)&&(s=t.offsetWidth>0&&_d(l.width)/t.offsetWidth||1,d=t.offsetHeight>0&&_d(l.height)/t.offsetHeight||1);let c=Cn(t)?Zr(t):window,m=!K2()&&o,u=(l.left+(m&&(r=(n=c.visualViewport)==null?void 0:n.offsetLeft)!=null?r:0))/s,f=(l.top+(m&&(i=(a=c.visualViewport)==null?void 0:a.offsetTop)!=null?i:0))/d,b=l.width/s,x=l.height/d;return{width:b,height:x,top:f,right:u+b,bottom:f+x,left:u,x:u,y:f}}function wn(t){return(e=t,(e instanceof Zr(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function Rd(t){return Cn(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Y2(t){return Yr(wn(t)).left+Rd(t).scrollLeft}function N4(t,e,o){let r=yr(e),n=wn(e),i=Yr(t,r&&function(s){let d=Yr(s);return _d(d.width)!==s.offsetWidth||_d(d.height)!==s.offsetHeight}(e),o==="fixed"),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if(r||!r&&o!=="fixed")if((Kr(e)!=="body"||Pd(n))&&(a=Rd(e)),yr(e)){let s=Yr(e,!0);l.x=s.x+e.clientLeft,l.y=s.y+e.clientTop}else n&&(l.x=Y2(n));return{x:i.left+a.scrollLeft-l.x,y:i.top+a.scrollTop-l.y,width:i.width,height:i.height}}function Z2(t){return Kr(t)==="html"?t:t.assignedSlot||t.parentNode||(Af(t)?t.host:null)||wn(t)}function H2(t){return yr(t)&&getComputedStyle(t).position!=="fixed"?t.offsetParent:null}function If(t){let e=Zr(t),o=H2(t);for(;o&&D4(o)&&getComputedStyle(o).position==="static";)o=H2(o);return o&&(Kr(o)==="html"||Kr(o)==="body"&&getComputedStyle(o).position==="static"&&!z2(o))?e:o||function(r){let n=Z2(r);for(Af(n)&&(n=n.host);yr(n)&&!["html","body"].includes(Kr(n));){if(z2(n))return n;n=n.parentNode}return null}(t)||e}function U2(t){if(yr(t))return{width:t.offsetWidth,height:t.offsetHeight};let e=Yr(t);return{width:e.width,height:e.height}}function j2(t){let e=Z2(t);return["html","body","#document"].includes(Kr(e))?t.ownerDocument.body:yr(e)&&Pd(e)?e:j2(e)}function Ld(t,e){var o;e===void 0&&(e=[]);let r=j2(t),n=r===((o=t.ownerDocument)==null?void 0:o.body),i=Zr(r),a=n?[i].concat(i.visualViewport||[],Pd(r)?r:[]):r,l=e.concat(a);return n?l:l.concat(Ld(a))}function W2(t,e,o){return e==="viewport"?Zl(function(r,n){let i=Zr(r),a=wn(r),l=i.visualViewport,s=a.clientWidth,d=a.clientHeight,c=0,m=0;if(l){s=l.width,d=l.height;let u=K2();(u||!u&&n==="fixed")&&(c=l.offsetLeft,m=l.offsetTop)}return{width:s,height:d,x:c,y:m}}(t,o)):Cn(e)?function(r,n){let i=Yr(r,!1,n==="fixed"),a=i.top+r.clientTop,l=i.left+r.clientLeft;return{top:a,left:l,x:l,y:a,right:l+r.clientWidth,bottom:a+r.clientHeight,width:r.clientWidth,height:r.clientHeight}}(e,o):Zl(function(r){var n;let i=wn(r),a=Rd(r),l=(n=r.ownerDocument)==null?void 0:n.body,s=Xl(i.scrollWidth,i.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),d=Xl(i.scrollHeight,i.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),c=-a.scrollLeft+Y2(r),m=-a.scrollTop;return ql(l||i).direction==="rtl"&&(c+=Xl(i.clientWidth,l?l.clientWidth:0)-s),{width:s,height:d,x:c,y:m}}(wn(t)))}function O4(t){let e=Ld(t),o=["absolute","fixed"].includes(ql(t).position)&&yr(t)?If(t):t;return Cn(o)?e.filter(r=>Cn(r)&&function(n,i){let a=i.getRootNode==null?void 0:i.getRootNode();if(n.contains(i))return!0;if(a&&Af(a)){let l=i;do{if(l&&n===l)return!0;l=l.parentNode||l.host}while(l)}return!1}(r,o)&&Kr(r)!=="body"):[]}var F4={getClippingRect:function(t){let{element:e,boundary:o,rootBoundary:r,strategy:n}=t,i=[...o==="clippingAncestors"?O4(e):[].concat(o),r],a=i[0],l=i.reduce((s,d)=>{let c=W2(e,d,n);return s.top=Xl(c.top,s.top),s.right=$2(c.right,s.right),s.bottom=$2(c.bottom,s.bottom),s.left=Xl(c.left,s.left),s},W2(e,a,n));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:o,strategy:r}=t,n=yr(o),i=wn(o);if(o===i)return e;let a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if((n||!n&&r!=="fixed")&&((Kr(o)!=="body"||Pd(i))&&(a=Rd(o)),yr(o))){let s=Yr(o,!0);l.x=s.x+o.clientLeft,l.y=s.y+o.clientTop}return{...e,x:e.x-a.scrollLeft+l.x,y:e.y-a.scrollTop+l.y}},isElement:Cn,getDimensions:U2,getOffsetParent:If,getDocumentElement:wn,getElementRects:t=>{let{reference:e,floating:o,strategy:r}=t;return{reference:N4(e,If(o),r),floating:{...U2(o),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>ql(t).direction==="rtl"};function X2(t,e,o,r){r===void 0&&(r={});let{ancestorScroll:n=!0,ancestorResize:i=!0,elementResize:a=!0,animationFrame:l=!1}=r,s=n&&!l,d=i&&!l,c=s||d?[...Cn(t)?Ld(t):[],...Ld(e)]:[];c.forEach(b=>{s&&b.addEventListener("scroll",o,{passive:!0}),d&&b.addEventListener("resize",o)});let m,u=null;if(a){let b=!0;u=new ResizeObserver(()=>{b||o(),b=!1}),Cn(t)&&!l&&u.observe(t),u.observe(e)}let f=l?Yr(t):null;return l&&function b(){let x=Yr(t);!f||x.x===f.x&&x.y===f.y&&x.width===f.width&&x.height===f.height||o(),f=x,m=requestAnimationFrame(b)}(),o(),()=>{var b;c.forEach(x=>{s&&x.removeEventListener("scroll",o),d&&x.removeEventListener("resize",o)}),(b=u)==null||b.disconnect(),u=null,l&&cancelAnimationFrame(m)}}var q2=(t,e,o)=>N2(t,e,{platform:F4,...o});var Bt=v(H()),Dd=v(H()),J2=v(br()),Mf=typeof document<"u"?Dd.useLayoutEffect:Dd.useEffect;function _f(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let o,r,n;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(o=t.length,o!=e.length)return!1;for(r=o;r--!==0;)if(!_f(t[r],e[r]))return!1;return!0}if(n=Object.keys(t),o=n.length,o!==Object.keys(e).length)return!1;for(r=o;r--!==0;)if(!Object.prototype.hasOwnProperty.call(e,n[r]))return!1;for(r=o;r--!==0;){let i=n[r];if(!(i==="_owner"&&t.$$typeof)&&!_f(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function B4(t){let e=Bt.useRef(t);return Mf(()=>{e.current=t}),e}function Q2(t){let{middleware:e,placement:o="bottom",strategy:r="absolute",whileElementsMounted:n}=t===void 0?{}:t,i=Bt.useRef(null),a=Bt.useRef(null),l=B4(n),s=Bt.useRef(null),[d,c]=Bt.useState({x:null,y:null,strategy:r,placement:o,middlewareData:{}}),[m,u]=Bt.useState(e);_f(m?.map(w=>{let{options:A}=w;return A}),e?.map(w=>{let{options:A}=w;return A}))||u(e);let f=Bt.useCallback(()=>{!i.current||!a.current||q2(i.current,a.current,{middleware:m,placement:o,strategy:r}).then(w=>{b.current&&J2.flushSync(()=>{c(w)})})},[m,o,r]);Mf(()=>{b.current&&f()},[f]);let b=Bt.useRef(!1);Mf(()=>(b.current=!0,()=>{b.current=!1}),[]);let x=Bt.useCallback(()=>{if(typeof s.current=="function"&&(s.current(),s.current=null),i.current&&a.current)if(l.current){let w=l.current(i.current,a.current,f);s.current=w}else f()},[f,l]),E=Bt.useCallback(w=>{i.current=w,x()},[x]),T=Bt.useCallback(w=>{a.current=w,x()},[x]),C=Bt.useMemo(()=>({reference:i,floating:a}),[]);return Bt.useMemo(()=>({...d,update:f,refs:C,reference:E,floating:T}),[d,f,C,E,T])}var eE=t=>{let{element:e,padding:o}=t;function r(n){return Object.prototype.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){return r(e)?e.current!=null?Md({element:e.current,padding:o}).fn(n):{}:e?Md({element:e,padding:o}).fn(n):{}}}};h();var Jl=v(H());var z4=(0,Jl.forwardRef)((t,e)=>{let{children:o,width:r=10,height:n=5,...i}=t;return(0,Jl.createElement)(dt.svg,Ce({},i,{ref:e,width:r,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),t.asChild?o:(0,Jl.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),tE=z4;h();var oE=v(H());function rE(t){let[e,o]=(0,oE.useState)(void 0);return No(()=>{if(t){o({width:t.offsetWidth,height:t.offsetHeight});let r=new ResizeObserver(n=>{if(!Array.isArray(n)||!n.length)return;let i=n[0],a,l;if("borderBoxSize"in i){let s=i.borderBoxSize,d=Array.isArray(s)?s[0]:s;a=d.inlineSize,l=d.blockSize}else a=t.offsetWidth,l=t.offsetHeight;o({width:a,height:l})});return r.observe(t,{box:"border-box"}),()=>r.unobserve(t)}else o(void 0)},[t]),e}var nE="Popper",[Lf,Pf]=Er(nE),[$4,iE]=Lf(nE),H4=t=>{let{__scopePopper:e,children:o}=t,[r,n]=(0,je.useState)(null);return(0,je.createElement)($4,{scope:e,anchor:r,onAnchorChange:n},o)},U4="PopperAnchor",W4=(0,je.forwardRef)((t,e)=>{let{__scopePopper:o,virtualRef:r,...n}=t,i=iE(U4,o),a=(0,je.useRef)(null),l=Ft(e,a);return(0,je.useEffect)(()=>{i.onAnchorChange(r?.current||a.current)}),r?null:(0,je.createElement)(dt.div,Ce({},n,{ref:l}))}),Nd="PopperContent",[G4,V4]=Lf(Nd),[K4,Y4]=Lf(Nd,{hasParent:!1,positionUpdateFns:new Set}),Z4=(0,je.forwardRef)((t,e)=>{var o,r,n,i,a,l,s,d;let{__scopePopper:c,side:m="bottom",sideOffset:u=0,align:f="center",alignOffset:b=0,arrowPadding:x=0,collisionBoundary:E=[],collisionPadding:T=0,sticky:C="partial",hideWhenDetached:w=!1,avoidCollisions:A=!0,onPlaced:z,...I}=t,M=iE(Nd,c),[_,U]=(0,je.useState)(null),D=Ft(e,Ni=>U(Ni)),[G,O]=(0,je.useState)(null),B=rE(G),te=(o=B?.width)!==null&&o!==void 0?o:0,oe=(r=B?.height)!==null&&r!==void 0?r:0,ve=m+(f!=="center"?"-"+f:""),Ie=typeof T=="number"?T:{top:0,right:0,bottom:0,left:0,...T},me=Array.isArray(E)?E:[E],j=me.length>0,R={padding:Ie,boundary:me.filter(Q4),altBoundary:j},{reference:N,floating:K,strategy:Y,x:Z,y:X,placement:ee,middlewareData:ne,update:rt}=Q2({strategy:"fixed",placement:ve,whileElementsMounted:X2,middleware:[eC(),Cf({mainAxis:u+oe,alignmentAxis:b}),A?Sf({mainAxis:!0,crossAxis:!1,limiter:C==="partial"?Tf():void 0,...R}):void 0,G?eE({element:G,padding:x}):void 0,A?yf({...R}):void 0,kf({...R,apply:({elements:Ni,availableWidth:k6,availableHeight:I6})=>{Ni.floating.style.setProperty("--radix-popper-available-width",`${k6}px`),Ni.floating.style.setProperty("--radix-popper-available-height",`${I6}px`)}}),tC({arrowWidth:te,arrowHeight:oe}),w?wf({strategy:"referenceHidden"}):void 0].filter(J4)});No(()=>{N(M.anchor)},[N,M.anchor]);let nt=Z!==null&&X!==null,[st,Ue]=aE(ee),Jt=oo(z);No(()=>{nt&&Jt?.()},[nt,Jt]);let Vs=(n=ne.arrow)===null||n===void 0?void 0:n.x,y6=(i=ne.arrow)===null||i===void 0?void 0:i.y,w6=((a=ne.arrow)===null||a===void 0?void 0:a.centerOffset)!==0,[C6,S6]=(0,je.useState)();No(()=>{_&&S6(window.getComputedStyle(_).zIndex)},[_]);let{hasParent:T6,positionUpdateFns:Di}=Y4(Nd,c),il=!T6;(0,je.useLayoutEffect)(()=>{if(!il)return Di.add(rt),()=>{Di.delete(rt)}},[il,Di,rt]),No(()=>{il&&nt&&Array.from(Di).reverse().forEach(Ni=>requestAnimationFrame(Ni))},[il,nt,Di]);let e1={"data-side":st,"data-align":Ue,...I,ref:D,style:{...I.style,animation:nt?void 0:"none",opacity:(l=ne.hide)!==null&&l!==void 0&&l.referenceHidden?0:void 0}};return(0,je.createElement)("div",{ref:K,"data-radix-popper-content-wrapper":"",style:{position:Y,left:0,top:0,transform:nt?`translate3d(${Math.round(Z)}px, ${Math.round(X)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:C6,"--radix-popper-transform-origin":[(s=ne.transformOrigin)===null||s===void 0?void 0:s.x,(d=ne.transformOrigin)===null||d===void 0?void 0:d.y].join(" ")},dir:t.dir},(0,je.createElement)(G4,{scope:c,placedSide:st,onArrowChange:O,arrowX:Vs,arrowY:y6,shouldHideArrow:w6},il?(0,je.createElement)(K4,{scope:c,hasParent:!0,positionUpdateFns:Di},(0,je.createElement)(dt.div,e1)):(0,je.createElement)(dt.div,e1)))}),j4="PopperArrow",X4={top:"bottom",right:"left",bottom:"top",left:"right"},q4=(0,je.forwardRef)(function(e,o){let{__scopePopper:r,...n}=e,i=V4(j4,r),a=X4[i.placedSide];return(0,je.createElement)("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0}},(0,je.createElement)(tE,Ce({},n,{ref:o,style:{...n.style,display:"block"}})))});function J4(t){return t!==void 0}function Q4(t){return t!==null}var eC=()=>({name:"anchorCssProperties",fn(t){let{rects:e,elements:o}=t,{width:r,height:n}=e.reference;return o.floating.style.setProperty("--radix-popper-anchor-width",`${r}px`),o.floating.style.setProperty("--radix-popper-anchor-height",`${n}px`),{}}}),tC=t=>({name:"transformOrigin",options:t,fn(e){var o,r,n,i,a;let{placement:l,rects:s,middlewareData:d}=e,m=((o=d.arrow)===null||o===void 0?void 0:o.centerOffset)!==0,u=m?0:t.arrowWidth,f=m?0:t.arrowHeight,[b,x]=aE(l),E={start:"0%",center:"50%",end:"100%"}[x],T=((r=(n=d.arrow)===null||n===void 0?void 0:n.x)!==null&&r!==void 0?r:0)+u/2,C=((i=(a=d.arrow)===null||a===void 0?void 0:a.y)!==null&&i!==void 0?i:0)+f/2,w="",A="";return b==="bottom"?(w=m?E:`${T}px`,A=`${-f}px`):b==="top"?(w=m?E:`${T}px`,A=`${s.floating.height+f}px`):b==="right"?(w=`${-f}px`,A=m?E:`${C}px`):b==="left"&&(w=`${s.floating.width+f}px`,A=m?E:`${C}px`),{data:{x:w,y:A}}}});function aE(t){let[e,o="center"]=t.split("-");return[e,o]}var lE=H4,sE=W4,cE=Z4,dE=q4;h();var Od=v(H()),mE=v(br());var pE=(0,Od.forwardRef)((t,e)=>{var o;let{container:r=globalThis==null||(o=globalThis.document)===null||o===void 0?void 0:o.body,...n}=t;return r?mE.default.createPortal((0,Od.createElement)(dt.div,Ce({},n,{ref:e})),r):null});h();var Vt=v(H()),uE=v(br());function oC(t,e){return(0,Vt.useReducer)((o,r)=>{let n=e[o][r];return n??o},t)}var Ca=t=>{let{present:e,children:o}=t,r=rC(e),n=typeof o=="function"?o({present:r.isPresent}):Vt.Children.only(o),i=Ft(r.ref,n.ref);return typeof o=="function"||r.isPresent?(0,Vt.cloneElement)(n,{ref:i}):null};Ca.displayName="Presence";function rC(t){let[e,o]=(0,Vt.useState)(),r=(0,Vt.useRef)({}),n=(0,Vt.useRef)(t),i=(0,Vt.useRef)("none"),a=t?"mounted":"unmounted",[l,s]=oC(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,Vt.useEffect)(()=>{let d=Fd(r.current);i.current=l==="mounted"?d:"none"},[l]),No(()=>{let d=r.current,c=n.current;if(c!==t){let u=i.current,f=Fd(d);t?s("MOUNT"):f==="none"||d?.display==="none"?s("UNMOUNT"):s(c&&u!==f?"ANIMATION_OUT":"UNMOUNT"),n.current=t}},[t,s]),No(()=>{if(e){let d=m=>{let f=Fd(r.current).includes(m.animationName);m.target===e&&f&&(0,uE.flushSync)(()=>s("ANIMATION_END"))},c=m=>{m.target===e&&(i.current=Fd(r.current))};return e.addEventListener("animationstart",c),e.addEventListener("animationcancel",d),e.addEventListener("animationend",d),()=>{e.removeEventListener("animationstart",c),e.removeEventListener("animationcancel",d),e.removeEventListener("animationend",d)}}else s("ANIMATION_END")},[e,s]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:(0,Vt.useCallback)(d=>{d&&(r.current=getComputedStyle(d)),o(d)},[])}}function Fd(t){return t?.animationName||"none"}h();var Sn=v(H());function Sa({prop:t,defaultProp:e,onChange:o=()=>{}}){let[r,n]=nC({defaultProp:e,onChange:o}),i=t!==void 0,a=i?t:r,l=oo(o),s=(0,Sn.useCallback)(d=>{if(i){let m=typeof d=="function"?d(t):d;m!==t&&l(m)}else n(d)},[i,t,n,l]);return[a,s]}function nC({defaultProp:t,onChange:e}){let o=(0,Sn.useState)(t),[r]=o,n=(0,Sn.useRef)(r),i=oo(e);return(0,Sn.useEffect)(()=>{n.current!==r&&(i(r),n.current=r)},[r,n,i]),o}h();var iC=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},Ta=new WeakMap,Bd=new WeakMap,zd={},Rf=0,fE=function(t){return t&&(t.host||fE(t.parentNode))},aC=function(t,e){return e.map(function(o){if(t.contains(o))return o;var r=fE(o);return r&&t.contains(r)?r:(console.error("aria-hidden",o,"in not contained inside",t,". Doing nothing"),null)}).filter(function(o){return!!o})},lC=function(t,e,o,r){var n=aC(e,Array.isArray(t)?t:[t]);zd[o]||(zd[o]=new WeakMap);var i=zd[o],a=[],l=new Set,s=new Set(n),d=function(m){!m||l.has(m)||(l.add(m),d(m.parentNode))};n.forEach(d);var c=function(m){!m||s.has(m)||Array.prototype.forEach.call(m.children,function(u){if(l.has(u))c(u);else try{var f=u.getAttribute(r),b=f!==null&&f!=="false",x=(Ta.get(u)||0)+1,E=(i.get(u)||0)+1;Ta.set(u,x),i.set(u,E),a.push(u),x===1&&b&&Bd.set(u,!0),E===1&&u.setAttribute(o,"true"),b||u.setAttribute(r,"true")}catch(T){console.error("aria-hidden: cannot operate on ",u,T)}})};return c(e),l.clear(),Rf++,function(){a.forEach(function(m){var u=Ta.get(m)-1,f=i.get(m)-1;Ta.set(m,u),i.set(m,f),u||(Bd.has(m)||m.removeAttribute(r),Bd.delete(m)),f||m.removeAttribute(o)}),Rf--,Rf||(Ta=new WeakMap,Ta=new WeakMap,Bd=new WeakMap,zd={})}},hE=function(t,e,o){o===void 0&&(o="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),n=e||iC(t);return n?(r.push.apply(r,Array.from(n.querySelectorAll("[aria-live]"))),lC(r,n,o,"aria-hidden")):function(){return null}};h();h();h();var co=function(){return co=Object.assign||function(e){for(var o,r=1,n=arguments.length;r<n;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},co.apply(this,arguments)};function $d(t,e){var o={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,r=Object.getOwnPropertySymbols(t);n<r.length;n++)e.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(t,r[n])&&(o[r[n]]=t[r[n]]);return o}function gE(t,e,o){if(o||arguments.length===2)for(var r=0,n=e.length,i;r<n;r++)(i||!(r in e))&&(i||(i=Array.prototype.slice.call(e,0,r)),i[r]=e[r]);return t.concat(i||Array.prototype.slice.call(e))}var Vd=v(H());h();var Kt=v(H());h();var si="right-scroll-bar-position",ci="width-before-scroll-bar",Df="with-scroll-bars-hidden",Nf="--removed-body-scroll-bar-size";h();h();function Hd(t,e){return typeof t=="function"?t(e):t&&(t.current=e),t}h();var bE=v(H());function xE(t,e){var o=(0,bE.useState)(function(){return{value:t,callback:e,facade:{get current(){return o.value},set current(r){var n=o.value;n!==r&&(o.value=r,o.callback(r,n))}}}})[0];return o.callback=e,o.facade}h();var Ud=v(H());var sC=typeof window<"u"?Ud.useLayoutEffect:Ud.useEffect,vE=new WeakMap;function Of(t,e){var o=xE(e||null,function(r){return t.forEach(function(n){return Hd(n,r)})});return sC(function(){var r=vE.get(o);if(r){var n=new Set(r),i=new Set(t),a=o.current;n.forEach(function(l){i.has(l)||Hd(l,null)}),i.forEach(function(l){n.has(l)||Hd(l,a)})}vE.set(o,t)},[t]),o}h();h();h();function cC(t){return t}function dC(t,e){e===void 0&&(e=cC);var o=[],r=!1,n={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return o.length?o[o.length-1]:t},useMedium:function(i){var a=e(i,r);return o.push(a),function(){o=o.filter(function(l){return l!==a})}},assignSyncMedium:function(i){for(r=!0;o.length;){var a=o;o=[],a.forEach(i)}o={push:function(l){return i(l)},filter:function(){return o}}},assignMedium:function(i){r=!0;var a=[];if(o.length){var l=o;o=[],l.forEach(i),a=o}var s=function(){var c=a;a=[],c.forEach(i)},d=function(){return Promise.resolve().then(s)};d(),o={push:function(c){a.push(c),d()},filter:function(c){return a=a.filter(c),o}}}};return n}function Ff(t){t===void 0&&(t={});var e=dC(null);return e.options=co({async:!0,ssr:!1},t),e}h();var EE=v(H()),yE=function(t){var e=t.sideCar,o=$d(t,["sideCar"]);if(!e)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=e.read();if(!r)throw new Error("Sidecar medium not found");return EE.createElement(r,co({},o))};yE.isSideCarExport=!0;function Bf(t,e){return t.useMedium(e),yE}var Wd=Ff();var zf=function(){},Ql=Kt.forwardRef(function(t,e){var o=Kt.useRef(null),r=Kt.useState({onScrollCapture:zf,onWheelCapture:zf,onTouchMoveCapture:zf}),n=r[0],i=r[1],a=t.forwardProps,l=t.children,s=t.className,d=t.removeScrollBar,c=t.enabled,m=t.shards,u=t.sideCar,f=t.noIsolation,b=t.inert,x=t.allowPinchZoom,E=t.as,T=E===void 0?"div":E,C=$d(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),w=u,A=Of([o,e]),z=co(co({},C),n);return Kt.createElement(Kt.Fragment,null,c&&Kt.createElement(w,{sideCar:Wd,removeScrollBar:d,shards:m,noIsolation:f,inert:b,setCallbacks:i,allowPinchZoom:!!x,lockRef:o}),a?Kt.cloneElement(Kt.Children.only(l),co(co({},z),{ref:A})):Kt.createElement(T,co({},z,{className:s,ref:A}),l))});Ql.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Ql.classNames={fullWidth:ci,zeroRight:si};h();h();var Xe=v(H());h();h();var Ia=v(H());h();h();h();var SE=v(H());h();h();var wE;var CE=function(){if(wE)return wE;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function mC(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=CE();return e&&t.setAttribute("nonce",e),t}function pC(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function uC(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var $f=function(){var t=0,e=null;return{add:function(o){t==0&&(e=mC())&&(pC(e,o),uC(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}};var Hf=function(){var t=$f();return function(e,o){SE.useEffect(function(){return t.add(e),function(){t.remove()}},[e&&o])}};var es=function(){var t=Hf(),e=function(o){var r=o.styles,n=o.dynamic;return t(r,n),null};return e};h();var fC={left:0,top:0,right:0,gap:0},Uf=function(t){return parseInt(t||"",10)||0},hC=function(t){var e=window.getComputedStyle(document.body),o=e[t==="padding"?"paddingLeft":"marginLeft"],r=e[t==="padding"?"paddingTop":"marginTop"],n=e[t==="padding"?"paddingRight":"marginRight"];return[Uf(o),Uf(r),Uf(n)]},Wf=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return fC;var e=hC(t),o=document.documentElement.clientWidth,r=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,r-o+e[2]-e[0])}};var gC=es(),ka="data-scroll-locked",bC=function(t,e,o,r){var n=t.left,i=t.top,a=t.right,l=t.gap;return o===void 0&&(o="margin"),`
2
- .`.concat(Df,` {
3
- overflow: hidden `).concat(r,`;
4
- padding-right: `).concat(l,"px ").concat(r,`;
1
+ import{$ as dS,$a as Qr,$b as WS,$c as vs,$d as NT,$e as vC,$f as wi,$g as Ms,$h as M2,$i as q2,A as rS,Aa as Ku,Ab as Ju,Ac as L,Ad as _x,Ae as oC,Af as PC,Ag as JC,Ah as u2,Ai as B2,B as Jb,Ba as Sn,Bb as Gt,Bc as hs,Bd as bT,Be as up,Bf as Id,Bg as QC,Bh as p2,Bi as jp,C as ut,Ca as Yu,Cb as FS,Cc as ep,Cd as xT,Ce as pp,Cf as LC,Cg as re,Ch as Vx,Ci as z2,D as oa,Da as Xt,Db as BS,Dc as bs,Dd as Ax,De as Es,Df as RC,Dg as qo,Dh as Up,Di as $2,E as el,Ea as Wo,Eb as Qu,Ec as tp,Ed as kx,Ee as fp,Ef as _d,Eg as pt,Eh as Xx,Ei as eO,F as rd,Fa as wS,Fb as ud,Fc as qS,Fd as sp,Fe as ws,Ff as er,Fg as e2,Fh as Zx,Fi as An,G as Qb,Ga as ad,Gb as pd,Gc as rp,Gd as Vo,Ge as Sd,Gf as Sp,Gg as _n,Gh as f2,Gi as me,H as Nu,Ha as mo,Hb as la,Hc as jS,Hd as Mx,He as nC,Hf as Tp,Hg as pa,Hh as g2,Hi as Re,I as od,Ia as SS,Ib as Fr,Ic as JS,Id as Px,Ie as Ss,If as Cp,Ig as zx,Ih as h2,Ii as ev,J as $e,Ja as TS,Jb as il,Jc as QS,Jd as vT,Je as iC,Jf as yi,Jg as t2,Jh as b2,Ji as gl,K as En,Ka as ix,Kb as ds,Kc as al,Kd as yT,Ke as aC,Kf as DC,Kg as Rp,Kh as x2,Ki as Nd,L as wn,La as ia,Lb as ge,Lc as xs,Ld as ET,Le as lC,Lf as Ip,Lg as kd,Lh as v2,Li as tv,M as ls,Ma as CS,Mb as mx,Mc as eT,Md as wT,Me as gp,Mf as NC,Mg as fa,Mh as y2,Mi as H2,N as Ou,Na as IS,Nb as fd,Nc as tT,Nd as Lx,Ne as sC,Nf as _p,Ng as r2,Nh as Gp,Ni as Jp,O as ex,Oa as _S,Ob as He,Oc as rT,Od as ST,Oe as cC,Of as Ap,Og as o2,Oh as Rd,Oi as U2,P as Fu,Pa as Ko,Pb as et,Pc as oT,Pd as TT,Pe as dC,Pf as OC,Pg as Md,Ph as E2,Pi as G2,Q as oS,Qa as ax,Qb as Br,Qc as op,Qd as CT,Qe as hp,Qf as je,Qg as Dp,Qh as w2,Qi as Qp,R as nd,Ra as _r,Rb as zS,Rc as gx,Rd as IT,Re as mC,Rf as Ei,Rg as As,Rh as S2,Ri as rv,S as nS,Sa as ld,Sb as hi,Sc as hx,Sd as _T,Se as uC,Sf as kp,Sg as Np,Sh as T2,Si as ov,T as iS,Ta as Vu,Tb as $S,Tc as nT,Td as AT,Te as pC,Tf as FC,Tg as Op,Th as C2,Ti as nv,U as gi,Ua as rl,Ub as bi,Uc as Cn,Ud as kT,Ue as fC,Uf as BC,Ug as jo,Uh as Wp,Ui as W2,V as aS,Va as AS,Vb as HS,Vc as iT,Vd as MT,Ve as Nx,Vf as zC,Vg as K,Vh as I2,Vi as ef,W as Ir,Wa as kS,Wb as po,Wc as vd,Wd as PT,We as bp,Wf as $C,Wg as n2,Wh as _2,Wi as K2,X as Bu,Xa as ol,Xb as yr,Xc as yd,Xd as LT,Xe as gC,Xf as Cs,Xg as $x,Xh as qx,Xi as Y2,Y as lS,Ya as Ut,Yb as ms,Yc as Ed,Yd as RT,Ye as hC,Yf as Ad,Yg as pl,Yh as Ps,Yi as V2,Z as sS,Za as V,Zb as US,Zc as np,Zd as Rx,Ze as bC,Zf as HC,Zg as i2,Zh as A2,Zi as X2,_ as cS,_a as Mt,_b as GS,_c as ll,_d as DT,_e as xC,_f as UC,_g as ks,_h as k2,_i as Z2,a as J,aa as mS,ab as sd,ac as sa,ad as aT,ae as OT,af as yC,ag as GC,ah as Fp,ai as Kp,aj as iv,b as P,ba as uS,bb as cd,bc as us,bd as bx,be as FT,bf as EC,bg as fo,bh as Hx,bi as P2,bj as Ds,c as j,ca as tl,cb as Xu,cc as KS,cd as ip,ce as BT,cf as wC,cg as lt,ch as Ux,ci as Ls,cj as tO,d as Or,da as zu,db as lx,dc as YS,dd as lT,de as zT,df as SC,dg as Mp,dh as Z8,di as fl,dj as av,e as V1,ea as tx,eb as sx,ec as _o,ed as sT,ee as $T,ef as TC,eg as Xo,eh as Gx,ei as jx,ej as lv,f as Ja,fa as pS,fb as nl,fc as ca,fd as cT,fe as HT,ff as Ts,fg as Bx,fh as Pd,fi as Dd,fj as We,g as X1,ga as fS,gb as Zu,gc as Yo,gd as wd,ge as UT,gf as CC,gg as Is,gi as q8,gj as sv,h as Z1,ha as $u,hb as MS,hc as VS,hd as dT,he as GT,hf as IC,hg as Zo,hi as j8,hj as Ns,i as pi,ia as Hu,ib as PS,ic as Tn,id as mT,ie as sl,if as _C,ig as Si,ii as J8,ij as j2,j as Mu,ja as rx,jb as LS,jc as xi,jd as ys,je as WT,jf as xp,jg as WC,ji as Q8,jj as cv,k as Pu,ka as gS,kb as Pe,kc as da,kd as uT,ke as KT,kf as AC,kg as Ar,ki as Yp,kj as ft,l as Lu,la as hS,lb as RS,lc as gd,ld as ap,le as YT,lf as vi,lg as Pp,lh as a2,li as L2,lj as J2,m as q1,ma as bS,mb as dd,mc as eo,md as lp,me as VT,mf as kC,mg as KC,mh as l2,mi as Jx,mj as ze,n as j1,na as xS,nb as DS,nc as XS,nd as pT,ne as XT,nf as cl,ng as In,nh as Bp,ni as R2,nj as tf,o as J1,oa as vS,ob as qu,oc as ps,od as fT,oe as ZT,of as vp,og as YC,oh as zp,oi as ga,oj as gt,p as yn,pa as Uu,pb as ss,pc as fs,pd as xx,pe as qT,pf as dl,pg as VC,ph as Wx,pi as D2,pj as Q2,q as Ru,qa as na,qb as NS,qc as hd,qd as vx,qe as jT,qf as yp,qg as _s,qh as $p,qi as Rs,qj as hl,r as fi,ra as yS,rb as cs,rc as bd,rd as gT,re as cp,rf as Td,rg as Wt,rh as s2,ri as N2,rj as Ii,s as Q1,sa as ox,sb as md,sc as ma,sd as hT,se as JT,sf as Ox,sg as XC,sh as Kx,si as Vp,sj as _i,t as eS,ta as ES,tb as fr,tc as xd,td as yx,te as dp,tf as MC,tg as ZC,th as Ci,ti as O2,u as ed,ua as Gu,ub as aa,uc as ux,ud as Ex,ue as Dx,uf as Cd,ug as qC,uh as c2,ui as Xp,v as td,va as nx,vb as ju,vc as px,vd as wx,ve as mp,vf as ml,vg as ul,vh as Hp,vi as Zp,w as Qa,wa as Uo,wb as OS,wc as fx,wd as Sx,we as QT,wf as Ep,wg as jC,wh as d2,wi as F2,x as Du,xa as id,xb as cx,xc as gs,xd as Tx,xe as eC,xf as wp,xg as ua,xh as Ld,xi as qp,y as tS,ya as Go,yb as uo,yc as ZS,yd as Cx,ye as tC,yf as Fx,yg as Ti,yh as Yx,yi as Wn,z as jb,za as Wu,zb as dx,zc as Ne,zd as Ix,ze as rC,zf as Le,zg as Lp,zh as m2,zi as Qx}from"./excalidraw-assets/chunk-ODWTVSS7.js";import{a as v,b as _}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{F as qb}from"./excalidraw-assets/chunk-7DXALCB2.js";import{aa as Y1}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as W1,d as ra,e as K1,f as w}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var Yn=ra((gH,dI)=>{v();dI.exports=ReactDOM});var Ky=ra((Wne,$k)=>{v();var zk="Expected a function",Fk=NaN,aF="[object Symbol]",lF=/^\s+|\s+$/g,sF=/^[-+]0x[0-9a-f]+$/i,cF=/^0b[01]+$/i,dF=/^0o[0-7]+$/i,mF=parseInt,uF=typeof global=="object"&&global&&global.Object===Object&&global,pF=typeof self=="object"&&self&&self.Object===Object&&self,fF=uF||pF||Function("return this")(),gF=Object.prototype,hF=gF.toString,bF=Math.max,xF=Math.min,Wy=function(){return fF.Date.now()};function vF(e,t,r){var o,i,a,s,c,d,p=0,f=!1,u=!1,g=!0;if(typeof e!="function")throw new TypeError(zk);t=Bk(t)||0,Sg(r)&&(f=!!r.leading,u="maxWait"in r,a=u?bF(Bk(r.maxWait)||0,t):a,g="trailing"in r?!!r.trailing:g);function h(R){var F=o,B=i;return o=i=void 0,p=R,s=e.apply(B,F),s}function x(R){return p=R,c=setTimeout(M,t),f?h(R):s}function E(R){var F=R-d,B=R-p,Z=t-F;return u?xF(Z,a-B):Z}function T(R){var F=R-d,B=R-p;return d===void 0||F>=t||F<0||u&&B>=a}function M(){var R=Wy();if(T(R))return I(R);c=setTimeout(M,E(R))}function I(R){return c=void 0,g&&o?h(R):(o=i=void 0,s)}function A(){c!==void 0&&clearTimeout(c),p=0,o=d=i=c=void 0}function N(){return c===void 0?s:I(Wy())}function U(){var R=Wy(),F=T(R);if(o=arguments,i=this,d=R,F){if(c===void 0)return x(d);if(u)return c=setTimeout(M,t),h(d)}return c===void 0&&(c=setTimeout(M,t)),s}return U.cancel=A,U.flush=N,U}function yF(e,t,r){var o=!0,i=!0;if(typeof e!="function")throw new TypeError(zk);return Sg(r)&&(o="leading"in r?!!r.leading:o,i="trailing"in r?!!r.trailing:i),vF(e,t,{leading:o,maxWait:t,trailing:i})}function Sg(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function EF(e){return!!e&&typeof e=="object"}function wF(e){return typeof e=="symbol"||EF(e)&&hF.call(e)==aF}function Bk(e){if(typeof e=="number")return e;if(wF(e))return Fk;if(Sg(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Sg(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(lF,"");var r=cF.test(e);return r||dF.test(e)?mF(e.slice(2),r?2:8):sF.test(e)?Fk:+e}$k.exports=yF});var Zk=ra((Vk,Xk)=>{v();(function(){var e=this,t={};typeof Vk<"u"?Xk.exports=t:e.fuzzy=t,t.simpleFilter=function(r,o){return o.filter(function(i){return t.test(r,i)})},t.test=function(r,o){return t.match(r,o)!==null},t.match=function(r,o,i){i=i||{};var a=0,s=[],c=o.length,d=0,p=0,f=i.pre||"",u=i.post||"",g=i.caseSensitive&&o||o.toLowerCase(),h;r=i.caseSensitive&&r||r.toLowerCase();for(var x=0;x<c;x++)h=o[x],g[x]===r[a]?(h=f+h+u,a+=1,p+=1+p):p=0,d+=p,s[s.length]=h;return a===r.length?(d=g===r?1/0:d,{rendered:s.join(""),score:d}):null},t.filter=function(r,o,i){return!o||o.length===0?[]:typeof r!="string"?o:(i=i||{},o.reduce(function(a,s,c,d){var p=s;i.extract&&(p=i.extract(s));var f=t.match(r,p,i);return f!=null&&(a[a.length]={string:f.rendered,score:f.score,index:c,original:s}),a},[]).sort(function(a,s){var c=s.score-a.score;return c||a.index-s.index}))}})()});var e3=ra(Qk=>{"use strict";v();var vc=J();function BF(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var zF=typeof Object.is=="function"?Object.is:BF,$F=vc.useState,HF=vc.useEffect,UF=vc.useLayoutEffect,GF=vc.useDebugValue;function WF(e,t){var r=t(),o=$F({inst:{value:r,getSnapshot:t}}),i=o[0].inst,a=o[1];return UF(function(){i.value=r,i.getSnapshot=t,Xy(i)&&a({inst:i})},[e,r,t]),HF(function(){return Xy(i)&&a({inst:i}),e(function(){Xy(i)&&a({inst:i})})},[e]),GF(r),r}function Xy(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!zF(e,r)}catch{return!0}}function KF(e,t){return t()}var YF=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?KF:WF;Qk.useSyncExternalStore=vc.useSyncExternalStore!==void 0?vc.useSyncExternalStore:YF});var r3=ra((Iae,t3)=>{"use strict";v();t3.exports=e3()});var n3=ra(o3=>{"use strict";v();var Ig=J(),VF=r3();function XF(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ZF=typeof Object.is=="function"?Object.is:XF,qF=VF.useSyncExternalStore,jF=Ig.useRef,JF=Ig.useEffect,QF=Ig.useMemo,eB=Ig.useDebugValue;o3.useSyncExternalStoreWithSelector=function(e,t,r,o,i){var a=jF(null);if(a.current===null){var s={hasValue:!1,value:null};a.current=s}else s=a.current;a=QF(function(){function d(h){if(!p){if(p=!0,f=h,h=o(h),i!==void 0&&s.hasValue){var x=s.value;if(i(x,h))return u=x}return u=h}if(x=u,ZF(f,h))return x;var E=o(h);return i!==void 0&&i(x,E)?x:(f=h,u=E)}var p=!1,f,u,g=r===void 0?null:r;return[function(){return d(t())},g===null?void 0:function(){return d(g())}]},[t,r,o,i]);var c=qF(e,a[0],a[1]);return JF(function(){s.hasValue=!0,s.value=c},[c]),eB(c),c}});var a3=ra((Mae,i3)=>{"use strict";v();i3.exports=n3()});var W5=ra((_c,Cm)=>{v();(function(){var e,t="4.17.21",r=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",i="Expected a function",a="Invalid `variable` option passed into `_.template`",s="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",p=1,f=2,u=4,g=1,h=2,x=1,E=2,T=4,M=8,I=16,A=32,N=64,U=128,R=256,F=512,B=30,Z="...",G=800,te=16,de=1,W=2,se=3,xe=1/0,Se=9007199254740991,Je=17976931348623157e292,Ee=NaN,ue=4294967295,H=ue-1,Y=ue>>>1,le=[["ary",U],["bind",x],["bindKey",E],["curry",M],["curryRight",I],["flip",F],["partial",A],["partialRight",N],["rearg",R]],oe="[object Arguments]",ne="[object Array]",ce="[object AsyncFunction]",pe="[object Boolean]",ye="[object Date]",Tt="[object DOMException]",vt="[object Error]",At="[object Function]",ht="[object GeneratorFunction]",Ot="[object Map]",mr="[object Number]",Ih="[object Null]",fn="[object Object]",Hm="[object Promise]",_h="[object Proxy]",$a="[object RegExp]",br="[object Set]",gn="[object String]",Ha="[object Symbol]",Ki="[object Undefined]",Ua="[object WeakMap]",Ah="[object WeakSet]",Bc="[object ArrayBuffer]",Vl="[object DataView]",kh="[object Float32Array]",Mh="[object Float64Array]",Ph="[object Int8Array]",Lh="[object Int16Array]",Rh="[object Int32Array]",Dh="[object Uint8Array]",Nh="[object Uint8ClampedArray]",Oh="[object Uint16Array]",Fh="[object Uint32Array]",hP=/\b__p \+= '';/g,bP=/\b(__p \+=) '' \+/g,xP=/(__e\(.*?\)|\b__t\)) \+\n'';/g,g0=/&(?:amp|lt|gt|quot|#39);/g,h0=/[&<>"']/g,vP=RegExp(g0.source),yP=RegExp(h0.source),EP=/<%-([\s\S]+?)%>/g,wP=/<%([\s\S]+?)%>/g,b0=/<%=([\s\S]+?)%>/g,SP=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,TP=/^\w*$/,CP=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Bh=/[\\^$.*+?()[\]{}|]/g,IP=RegExp(Bh.source),zh=/^\s+/,_P=/\s/,AP=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,kP=/\{\n\/\* \[wrapped with (.+)\] \*/,MP=/,? & /,PP=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,LP=/[()=,{}\[\]\/\s]/,RP=/\\(\\)?/g,DP=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,x0=/\w*$/,NP=/^[-+]0x[0-9a-f]+$/i,OP=/^0b[01]+$/i,FP=/^\[object .+?Constructor\]$/,BP=/^0o[0-7]+$/i,zP=/^(?:0|[1-9]\d*)$/,$P=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Um=/($^)/,HP=/['\n\r\u2028\u2029\\]/g,Gm="\\ud800-\\udfff",UP="\\u0300-\\u036f",GP="\\ufe20-\\ufe2f",WP="\\u20d0-\\u20ff",v0=UP+GP+WP,y0="\\u2700-\\u27bf",E0="a-z\\xdf-\\xf6\\xf8-\\xff",KP="\\xac\\xb1\\xd7\\xf7",YP="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",VP="\\u2000-\\u206f",XP=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",w0="A-Z\\xc0-\\xd6\\xd8-\\xde",S0="\\ufe0e\\ufe0f",T0=KP+YP+VP+XP,$h="['\u2019]",ZP="["+Gm+"]",C0="["+T0+"]",Wm="["+v0+"]",I0="\\d+",qP="["+y0+"]",_0="["+E0+"]",A0="[^"+Gm+T0+I0+y0+E0+w0+"]",Hh="\\ud83c[\\udffb-\\udfff]",jP="(?:"+Wm+"|"+Hh+")",k0="[^"+Gm+"]",Uh="(?:\\ud83c[\\udde6-\\uddff]){2}",Gh="[\\ud800-\\udbff][\\udc00-\\udfff]",Xl="["+w0+"]",M0="\\u200d",P0="(?:"+_0+"|"+A0+")",JP="(?:"+Xl+"|"+A0+")",L0="(?:"+$h+"(?:d|ll|m|re|s|t|ve))?",R0="(?:"+$h+"(?:D|LL|M|RE|S|T|VE))?",D0=jP+"?",N0="["+S0+"]?",QP="(?:"+M0+"(?:"+[k0,Uh,Gh].join("|")+")"+N0+D0+")*",eL="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",tL="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",O0=N0+D0+QP,rL="(?:"+[qP,Uh,Gh].join("|")+")"+O0,oL="(?:"+[k0+Wm+"?",Wm,Uh,Gh,ZP].join("|")+")",nL=RegExp($h,"g"),iL=RegExp(Wm,"g"),Wh=RegExp(Hh+"(?="+Hh+")|"+oL+O0,"g"),aL=RegExp([Xl+"?"+_0+"+"+L0+"(?="+[C0,Xl,"$"].join("|")+")",JP+"+"+R0+"(?="+[C0,Xl+P0,"$"].join("|")+")",Xl+"?"+P0+"+"+L0,Xl+"+"+R0,tL,eL,I0,rL].join("|"),"g"),lL=RegExp("["+M0+Gm+v0+S0+"]"),sL=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,cL=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],dL=-1,kt={};kt[kh]=kt[Mh]=kt[Ph]=kt[Lh]=kt[Rh]=kt[Dh]=kt[Nh]=kt[Oh]=kt[Fh]=!0,kt[oe]=kt[ne]=kt[Bc]=kt[pe]=kt[Vl]=kt[ye]=kt[vt]=kt[At]=kt[Ot]=kt[mr]=kt[fn]=kt[$a]=kt[br]=kt[gn]=kt[Ua]=!1;var Ct={};Ct[oe]=Ct[ne]=Ct[Bc]=Ct[Vl]=Ct[pe]=Ct[ye]=Ct[kh]=Ct[Mh]=Ct[Ph]=Ct[Lh]=Ct[Rh]=Ct[Ot]=Ct[mr]=Ct[fn]=Ct[$a]=Ct[br]=Ct[gn]=Ct[Ha]=Ct[Dh]=Ct[Nh]=Ct[Oh]=Ct[Fh]=!0,Ct[vt]=Ct[At]=Ct[Ua]=!1;var mL={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},uL={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},pL={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},fL={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},gL=parseFloat,hL=parseInt,F0=typeof global=="object"&&global&&global.Object===Object&&global,bL=typeof self=="object"&&self&&self.Object===Object&&self,xr=F0||bL||Function("return this")(),Kh=typeof _c=="object"&&_c&&!_c.nodeType&&_c,Ga=Kh&&typeof Cm=="object"&&Cm&&!Cm.nodeType&&Cm,B0=Ga&&Ga.exports===Kh,Yh=B0&&F0.process,Do=function(){try{var z=Ga&&Ga.require&&Ga.require("util").types;return z||Yh&&Yh.binding&&Yh.binding("util")}catch{}}(),z0=Do&&Do.isArrayBuffer,$0=Do&&Do.isDate,H0=Do&&Do.isMap,U0=Do&&Do.isRegExp,G0=Do&&Do.isSet,W0=Do&&Do.isTypedArray;function Eo(z,q,X){switch(X.length){case 0:return z.call(q);case 1:return z.call(q,X[0]);case 2:return z.call(q,X[0],X[1]);case 3:return z.call(q,X[0],X[1],X[2])}return z.apply(q,X)}function xL(z,q,X,ve){for(var Oe=-1,ct=z==null?0:z.length;++Oe<ct;){var ur=z[Oe];q(ve,ur,X(ur),z)}return ve}function No(z,q){for(var X=-1,ve=z==null?0:z.length;++X<ve&&q(z[X],X,z)!==!1;);return z}function vL(z,q){for(var X=z==null?0:z.length;X--&&q(z[X],X,z)!==!1;);return z}function K0(z,q){for(var X=-1,ve=z==null?0:z.length;++X<ve;)if(!q(z[X],X,z))return!1;return!0}function Yi(z,q){for(var X=-1,ve=z==null?0:z.length,Oe=0,ct=[];++X<ve;){var ur=z[X];q(ur,X,z)&&(ct[Oe++]=ur)}return ct}function Km(z,q){var X=z==null?0:z.length;return!!X&&Zl(z,q,0)>-1}function Vh(z,q,X){for(var ve=-1,Oe=z==null?0:z.length;++ve<Oe;)if(X(q,z[ve]))return!0;return!1}function Ft(z,q){for(var X=-1,ve=z==null?0:z.length,Oe=Array(ve);++X<ve;)Oe[X]=q(z[X],X,z);return Oe}function Vi(z,q){for(var X=-1,ve=q.length,Oe=z.length;++X<ve;)z[Oe+X]=q[X];return z}function Xh(z,q,X,ve){var Oe=-1,ct=z==null?0:z.length;for(ve&&ct&&(X=z[++Oe]);++Oe<ct;)X=q(X,z[Oe],Oe,z);return X}function yL(z,q,X,ve){var Oe=z==null?0:z.length;for(ve&&Oe&&(X=z[--Oe]);Oe--;)X=q(X,z[Oe],Oe,z);return X}function Zh(z,q){for(var X=-1,ve=z==null?0:z.length;++X<ve;)if(q(z[X],X,z))return!0;return!1}var EL=qh("length");function wL(z){return z.split("")}function SL(z){return z.match(PP)||[]}function Y0(z,q,X){var ve;return X(z,function(Oe,ct,ur){if(q(Oe,ct,ur))return ve=ct,!1}),ve}function Ym(z,q,X,ve){for(var Oe=z.length,ct=X+(ve?1:-1);ve?ct--:++ct<Oe;)if(q(z[ct],ct,z))return ct;return-1}function Zl(z,q,X){return q===q?NL(z,q,X):Ym(z,V0,X)}function TL(z,q,X,ve){for(var Oe=X-1,ct=z.length;++Oe<ct;)if(ve(z[Oe],q))return Oe;return-1}function V0(z){return z!==z}function X0(z,q){var X=z==null?0:z.length;return X?Jh(z,q)/X:Ee}function qh(z){return function(q){return q==null?e:q[z]}}function jh(z){return function(q){return z==null?e:z[q]}}function Z0(z,q,X,ve,Oe){return Oe(z,function(ct,ur,Et){X=ve?(ve=!1,ct):q(X,ct,ur,Et)}),X}function CL(z,q){var X=z.length;for(z.sort(q);X--;)z[X]=z[X].value;return z}function Jh(z,q){for(var X,ve=-1,Oe=z.length;++ve<Oe;){var ct=q(z[ve]);ct!==e&&(X=X===e?ct:X+ct)}return X}function Qh(z,q){for(var X=-1,ve=Array(z);++X<z;)ve[X]=q(X);return ve}function IL(z,q){return Ft(q,function(X){return[X,z[X]]})}function q0(z){return z&&z.slice(0,ew(z)+1).replace(zh,"")}function wo(z){return function(q){return z(q)}}function eb(z,q){return Ft(q,function(X){return z[X]})}function zc(z,q){return z.has(q)}function j0(z,q){for(var X=-1,ve=z.length;++X<ve&&Zl(q,z[X],0)>-1;);return X}function J0(z,q){for(var X=z.length;X--&&Zl(q,z[X],0)>-1;);return X}function _L(z,q){for(var X=z.length,ve=0;X--;)z[X]===q&&++ve;return ve}var AL=jh(mL),kL=jh(uL);function ML(z){return"\\"+fL[z]}function PL(z,q){return z==null?e:z[q]}function ql(z){return lL.test(z)}function LL(z){return sL.test(z)}function RL(z){for(var q,X=[];!(q=z.next()).done;)X.push(q.value);return X}function tb(z){var q=-1,X=Array(z.size);return z.forEach(function(ve,Oe){X[++q]=[Oe,ve]}),X}function Q0(z,q){return function(X){return z(q(X))}}function Xi(z,q){for(var X=-1,ve=z.length,Oe=0,ct=[];++X<ve;){var ur=z[X];(ur===q||ur===d)&&(z[X]=d,ct[Oe++]=X)}return ct}function Vm(z){var q=-1,X=Array(z.size);return z.forEach(function(ve){X[++q]=ve}),X}function DL(z){var q=-1,X=Array(z.size);return z.forEach(function(ve){X[++q]=[ve,ve]}),X}function NL(z,q,X){for(var ve=X-1,Oe=z.length;++ve<Oe;)if(z[ve]===q)return ve;return-1}function OL(z,q,X){for(var ve=X+1;ve--;)if(z[ve]===q)return ve;return ve}function jl(z){return ql(z)?BL(z):EL(z)}function hn(z){return ql(z)?zL(z):wL(z)}function ew(z){for(var q=z.length;q--&&_P.test(z.charAt(q)););return q}var FL=jh(pL);function BL(z){for(var q=Wh.lastIndex=0;Wh.test(z);)++q;return q}function zL(z){return z.match(Wh)||[]}function $L(z){return z.match(aL)||[]}var HL=function z(q){q=q==null?xr:Zi.defaults(xr.Object(),q,Zi.pick(xr,cL));var X=q.Array,ve=q.Date,Oe=q.Error,ct=q.Function,ur=q.Math,Et=q.Object,rb=q.RegExp,UL=q.String,Oo=q.TypeError,Xm=X.prototype,GL=ct.prototype,Jl=Et.prototype,Zm=q["__core-js_shared__"],qm=GL.toString,bt=Jl.hasOwnProperty,WL=0,tw=function(){var n=/[^.]+$/.exec(Zm&&Zm.keys&&Zm.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),jm=Jl.toString,KL=qm.call(Et),YL=xr._,VL=rb("^"+qm.call(bt).replace(Bh,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Jm=B0?q.Buffer:e,qi=q.Symbol,Qm=q.Uint8Array,rw=Jm?Jm.allocUnsafe:e,eu=Q0(Et.getPrototypeOf,Et),ow=Et.create,nw=Jl.propertyIsEnumerable,tu=Xm.splice,iw=qi?qi.isConcatSpreadable:e,$c=qi?qi.iterator:e,Wa=qi?qi.toStringTag:e,ru=function(){try{var n=Za(Et,"defineProperty");return n({},"",{}),n}catch{}}(),XL=q.clearTimeout!==xr.clearTimeout&&q.clearTimeout,ZL=ve&&ve.now!==xr.Date.now&&ve.now,qL=q.setTimeout!==xr.setTimeout&&q.setTimeout,ou=ur.ceil,nu=ur.floor,ob=Et.getOwnPropertySymbols,jL=Jm?Jm.isBuffer:e,aw=q.isFinite,JL=Xm.join,QL=Q0(Et.keys,Et),pr=ur.max,Dr=ur.min,eR=ve.now,tR=q.parseInt,lw=ur.random,rR=Xm.reverse,nb=Za(q,"DataView"),Hc=Za(q,"Map"),ib=Za(q,"Promise"),Ql=Za(q,"Set"),Uc=Za(q,"WeakMap"),Gc=Za(Et,"create"),iu=Uc&&new Uc,es={},oR=qa(nb),nR=qa(Hc),iR=qa(ib),aR=qa(Ql),lR=qa(Uc),au=qi?qi.prototype:e,Wc=au?au.valueOf:e,sw=au?au.toString:e;function C(n){if(Vt(n)&&!Be(n)&&!(n instanceof Qe)){if(n instanceof Fo)return n;if(bt.call(n,"__wrapped__"))return c1(n)}return new Fo(n)}var ts=function(){function n(){}return function(l){if(!Ht(l))return{};if(ow)return ow(l);n.prototype=l;var m=new n;return n.prototype=e,m}}();function lu(){}function Fo(n,l){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!l,this.__index__=0,this.__values__=e}C.templateSettings={escape:EP,evaluate:wP,interpolate:b0,variable:"",imports:{_:C}},C.prototype=lu.prototype,C.prototype.constructor=C,Fo.prototype=ts(lu.prototype),Fo.prototype.constructor=Fo;function Qe(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=ue,this.__views__=[]}function sR(){var n=new Qe(this.__wrapped__);return n.__actions__=ao(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=ao(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=ao(this.__views__),n}function cR(){if(this.__filtered__){var n=new Qe(this);n.__dir__=-1,n.__filtered__=!0}else n=this.clone(),n.__dir__*=-1;return n}function dR(){var n=this.__wrapped__.value(),l=this.__dir__,m=Be(n),b=l<0,S=m?n.length:0,k=wD(0,S,this.__views__),D=k.start,O=k.end,$=O-D,Q=b?O:D-1,ee=this.__iteratees__,ie=ee.length,fe=0,we=Dr($,this.__takeCount__);if(!m||!b&&S==$&&we==$)return Lw(n,this.__actions__);var ke=[];e:for(;$--&&fe<we;){Q+=l;for(var Ge=-1,Me=n[Q];++Ge<ie;){var qe=ee[Ge],rt=qe.iteratee,Co=qe.type,Jr=rt(Me);if(Co==W)Me=Jr;else if(!Jr){if(Co==de)continue e;break e}}ke[fe++]=Me}return ke}Qe.prototype=ts(lu.prototype),Qe.prototype.constructor=Qe;function Ka(n){var l=-1,m=n==null?0:n.length;for(this.clear();++l<m;){var b=n[l];this.set(b[0],b[1])}}function mR(){this.__data__=Gc?Gc(null):{},this.size=0}function uR(n){var l=this.has(n)&&delete this.__data__[n];return this.size-=l?1:0,l}function pR(n){var l=this.__data__;if(Gc){var m=l[n];return m===s?e:m}return bt.call(l,n)?l[n]:e}function fR(n){var l=this.__data__;return Gc?l[n]!==e:bt.call(l,n)}function gR(n,l){var m=this.__data__;return this.size+=this.has(n)?0:1,m[n]=Gc&&l===e?s:l,this}Ka.prototype.clear=mR,Ka.prototype.delete=uR,Ka.prototype.get=pR,Ka.prototype.has=fR,Ka.prototype.set=gR;function ni(n){var l=-1,m=n==null?0:n.length;for(this.clear();++l<m;){var b=n[l];this.set(b[0],b[1])}}function hR(){this.__data__=[],this.size=0}function bR(n){var l=this.__data__,m=su(l,n);if(m<0)return!1;var b=l.length-1;return m==b?l.pop():tu.call(l,m,1),--this.size,!0}function xR(n){var l=this.__data__,m=su(l,n);return m<0?e:l[m][1]}function vR(n){return su(this.__data__,n)>-1}function yR(n,l){var m=this.__data__,b=su(m,n);return b<0?(++this.size,m.push([n,l])):m[b][1]=l,this}ni.prototype.clear=hR,ni.prototype.delete=bR,ni.prototype.get=xR,ni.prototype.has=vR,ni.prototype.set=yR;function ii(n){var l=-1,m=n==null?0:n.length;for(this.clear();++l<m;){var b=n[l];this.set(b[0],b[1])}}function ER(){this.size=0,this.__data__={hash:new Ka,map:new(Hc||ni),string:new Ka}}function wR(n){var l=yu(this,n).delete(n);return this.size-=l?1:0,l}function SR(n){return yu(this,n).get(n)}function TR(n){return yu(this,n).has(n)}function CR(n,l){var m=yu(this,n),b=m.size;return m.set(n,l),this.size+=m.size==b?0:1,this}ii.prototype.clear=ER,ii.prototype.delete=wR,ii.prototype.get=SR,ii.prototype.has=TR,ii.prototype.set=CR;function Ya(n){var l=-1,m=n==null?0:n.length;for(this.__data__=new ii;++l<m;)this.add(n[l])}function IR(n){return this.__data__.set(n,s),this}function _R(n){return this.__data__.has(n)}Ya.prototype.add=Ya.prototype.push=IR,Ya.prototype.has=_R;function bn(n){var l=this.__data__=new ni(n);this.size=l.size}function AR(){this.__data__=new ni,this.size=0}function kR(n){var l=this.__data__,m=l.delete(n);return this.size=l.size,m}function MR(n){return this.__data__.get(n)}function PR(n){return this.__data__.has(n)}function LR(n,l){var m=this.__data__;if(m instanceof ni){var b=m.__data__;if(!Hc||b.length<r-1)return b.push([n,l]),this.size=++m.size,this;m=this.__data__=new ii(b)}return m.set(n,l),this.size=m.size,this}bn.prototype.clear=AR,bn.prototype.delete=kR,bn.prototype.get=MR,bn.prototype.has=PR,bn.prototype.set=LR;function cw(n,l){var m=Be(n),b=!m&&ja(n),S=!m&&!b&&ta(n),k=!m&&!b&&!S&&is(n),D=m||b||S||k,O=D?Qh(n.length,UL):[],$=O.length;for(var Q in n)(l||bt.call(n,Q))&&!(D&&(Q=="length"||S&&(Q=="offset"||Q=="parent")||k&&(Q=="buffer"||Q=="byteLength"||Q=="byteOffset")||ci(Q,$)))&&O.push(Q);return O}function dw(n){var l=n.length;return l?n[hb(0,l-1)]:e}function RR(n,l){return Eu(ao(n),Va(l,0,n.length))}function DR(n){return Eu(ao(n))}function ab(n,l,m){(m!==e&&!xn(n[l],m)||m===e&&!(l in n))&&ai(n,l,m)}function Kc(n,l,m){var b=n[l];(!(bt.call(n,l)&&xn(b,m))||m===e&&!(l in n))&&ai(n,l,m)}function su(n,l){for(var m=n.length;m--;)if(xn(n[m][0],l))return m;return-1}function NR(n,l,m,b){return ji(n,function(S,k,D){l(b,S,m(S),D)}),b}function mw(n,l){return n&&Un(l,vr(l),n)}function OR(n,l){return n&&Un(l,so(l),n)}function ai(n,l,m){l=="__proto__"&&ru?ru(n,l,{configurable:!0,enumerable:!0,value:m,writable:!0}):n[l]=m}function lb(n,l){for(var m=-1,b=l.length,S=X(b),k=n==null;++m<b;)S[m]=k?e:Hb(n,l[m]);return S}function Va(n,l,m){return n===n&&(m!==e&&(n=n<=m?n:m),l!==e&&(n=n>=l?n:l)),n}function Bo(n,l,m,b,S,k){var D,O=l&p,$=l&f,Q=l&u;if(m&&(D=S?m(n,b,S,k):m(n)),D!==e)return D;if(!Ht(n))return n;var ee=Be(n);if(ee){if(D=TD(n),!O)return ao(n,D)}else{var ie=Nr(n),fe=ie==At||ie==ht;if(ta(n))return Nw(n,O);if(ie==fn||ie==oe||fe&&!S){if(D=$||fe?{}:e1(n),!O)return $?pD(n,OR(D,n)):uD(n,mw(D,n))}else{if(!Ct[ie])return S?n:{};D=CD(n,ie,O)}}k||(k=new bn);var we=k.get(n);if(we)return we;k.set(n,D),k1(n)?n.forEach(function(Me){D.add(Bo(Me,l,m,Me,n,k))}):_1(n)&&n.forEach(function(Me,qe){D.set(qe,Bo(Me,l,m,qe,n,k))});var ke=Q?$?_b:Ib:$?so:vr,Ge=ee?e:ke(n);return No(Ge||n,function(Me,qe){Ge&&(qe=Me,Me=n[qe]),Kc(D,qe,Bo(Me,l,m,qe,n,k))}),D}function FR(n){var l=vr(n);return function(m){return uw(m,n,l)}}function uw(n,l,m){var b=m.length;if(n==null)return!b;for(n=Et(n);b--;){var S=m[b],k=l[S],D=n[S];if(D===e&&!(S in n)||!k(D))return!1}return!0}function pw(n,l,m){if(typeof n!="function")throw new Oo(i);return Jc(function(){n.apply(e,m)},l)}function Yc(n,l,m,b){var S=-1,k=Km,D=!0,O=n.length,$=[],Q=l.length;if(!O)return $;m&&(l=Ft(l,wo(m))),b?(k=Vh,D=!1):l.length>=r&&(k=zc,D=!1,l=new Ya(l));e:for(;++S<O;){var ee=n[S],ie=m==null?ee:m(ee);if(ee=b||ee!==0?ee:0,D&&ie===ie){for(var fe=Q;fe--;)if(l[fe]===ie)continue e;$.push(ee)}else k(l,ie,b)||$.push(ee)}return $}var ji=$w(Hn),fw=$w(cb,!0);function BR(n,l){var m=!0;return ji(n,function(b,S,k){return m=!!l(b,S,k),m}),m}function cu(n,l,m){for(var b=-1,S=n.length;++b<S;){var k=n[b],D=l(k);if(D!=null&&(O===e?D===D&&!To(D):m(D,O)))var O=D,$=k}return $}function zR(n,l,m,b){var S=n.length;for(m=Ue(m),m<0&&(m=-m>S?0:S+m),b=b===e||b>S?S:Ue(b),b<0&&(b+=S),b=m>b?0:P1(b);m<b;)n[m++]=l;return n}function gw(n,l){var m=[];return ji(n,function(b,S,k){l(b,S,k)&&m.push(b)}),m}function Cr(n,l,m,b,S){var k=-1,D=n.length;for(m||(m=_D),S||(S=[]);++k<D;){var O=n[k];l>0&&m(O)?l>1?Cr(O,l-1,m,b,S):Vi(S,O):b||(S[S.length]=O)}return S}var sb=Hw(),hw=Hw(!0);function Hn(n,l){return n&&sb(n,l,vr)}function cb(n,l){return n&&hw(n,l,vr)}function du(n,l){return Yi(l,function(m){return di(n[m])})}function Xa(n,l){l=Qi(l,n);for(var m=0,b=l.length;n!=null&&m<b;)n=n[Gn(l[m++])];return m&&m==b?n:e}function bw(n,l,m){var b=l(n);return Be(n)?b:Vi(b,m(n))}function qr(n){return n==null?n===e?Ki:Ih:Wa&&Wa in Et(n)?ED(n):DD(n)}function db(n,l){return n>l}function $R(n,l){return n!=null&&bt.call(n,l)}function HR(n,l){return n!=null&&l in Et(n)}function UR(n,l,m){return n>=Dr(l,m)&&n<pr(l,m)}function mb(n,l,m){for(var b=m?Vh:Km,S=n[0].length,k=n.length,D=k,O=X(k),$=1/0,Q=[];D--;){var ee=n[D];D&&l&&(ee=Ft(ee,wo(l))),$=Dr(ee.length,$),O[D]=!m&&(l||S>=120&&ee.length>=120)?new Ya(D&&ee):e}ee=n[0];var ie=-1,fe=O[0];e:for(;++ie<S&&Q.length<$;){var we=ee[ie],ke=l?l(we):we;if(we=m||we!==0?we:0,!(fe?zc(fe,ke):b(Q,ke,m))){for(D=k;--D;){var Ge=O[D];if(!(Ge?zc(Ge,ke):b(n[D],ke,m)))continue e}fe&&fe.push(ke),Q.push(we)}}return Q}function GR(n,l,m,b){return Hn(n,function(S,k,D){l(b,m(S),k,D)}),b}function Vc(n,l,m){l=Qi(l,n),n=n1(n,l);var b=n==null?n:n[Gn($o(l))];return b==null?e:Eo(b,n,m)}function xw(n){return Vt(n)&&qr(n)==oe}function WR(n){return Vt(n)&&qr(n)==Bc}function KR(n){return Vt(n)&&qr(n)==ye}function Xc(n,l,m,b,S){return n===l?!0:n==null||l==null||!Vt(n)&&!Vt(l)?n!==n&&l!==l:YR(n,l,m,b,Xc,S)}function YR(n,l,m,b,S,k){var D=Be(n),O=Be(l),$=D?ne:Nr(n),Q=O?ne:Nr(l);$=$==oe?fn:$,Q=Q==oe?fn:Q;var ee=$==fn,ie=Q==fn,fe=$==Q;if(fe&&ta(n)){if(!ta(l))return!1;D=!0,ee=!1}if(fe&&!ee)return k||(k=new bn),D||is(n)?jw(n,l,m,b,S,k):vD(n,l,$,m,b,S,k);if(!(m&g)){var we=ee&&bt.call(n,"__wrapped__"),ke=ie&&bt.call(l,"__wrapped__");if(we||ke){var Ge=we?n.value():n,Me=ke?l.value():l;return k||(k=new bn),S(Ge,Me,m,b,k)}}return fe?(k||(k=new bn),yD(n,l,m,b,S,k)):!1}function VR(n){return Vt(n)&&Nr(n)==Ot}function ub(n,l,m,b){var S=m.length,k=S,D=!b;if(n==null)return!k;for(n=Et(n);S--;){var O=m[S];if(D&&O[2]?O[1]!==n[O[0]]:!(O[0]in n))return!1}for(;++S<k;){O=m[S];var $=O[0],Q=n[$],ee=O[1];if(D&&O[2]){if(Q===e&&!($ in n))return!1}else{var ie=new bn;if(b)var fe=b(Q,ee,$,n,l,ie);if(!(fe===e?Xc(ee,Q,g|h,b,ie):fe))return!1}}return!0}function vw(n){if(!Ht(n)||kD(n))return!1;var l=di(n)?VL:FP;return l.test(qa(n))}function XR(n){return Vt(n)&&qr(n)==$a}function ZR(n){return Vt(n)&&Nr(n)==br}function qR(n){return Vt(n)&&_u(n.length)&&!!kt[qr(n)]}function yw(n){return typeof n=="function"?n:n==null?co:typeof n=="object"?Be(n)?Sw(n[0],n[1]):ww(n):U1(n)}function pb(n){if(!jc(n))return QL(n);var l=[];for(var m in Et(n))bt.call(n,m)&&m!="constructor"&&l.push(m);return l}function jR(n){if(!Ht(n))return RD(n);var l=jc(n),m=[];for(var b in n)b=="constructor"&&(l||!bt.call(n,b))||m.push(b);return m}function fb(n,l){return n<l}function Ew(n,l){var m=-1,b=lo(n)?X(n.length):[];return ji(n,function(S,k,D){b[++m]=l(S,k,D)}),b}function ww(n){var l=kb(n);return l.length==1&&l[0][2]?r1(l[0][0],l[0][1]):function(m){return m===n||ub(m,n,l)}}function Sw(n,l){return Pb(n)&&t1(l)?r1(Gn(n),l):function(m){var b=Hb(m,n);return b===e&&b===l?Ub(m,n):Xc(l,b,g|h)}}function mu(n,l,m,b,S){n!==l&&sb(l,function(k,D){if(S||(S=new bn),Ht(k))JR(n,l,D,m,mu,b,S);else{var O=b?b(Rb(n,D),k,D+"",n,l,S):e;O===e&&(O=k),ab(n,D,O)}},so)}function JR(n,l,m,b,S,k,D){var O=Rb(n,m),$=Rb(l,m),Q=D.get($);if(Q){ab(n,m,Q);return}var ee=k?k(O,$,m+"",n,l,D):e,ie=ee===e;if(ie){var fe=Be($),we=!fe&&ta($),ke=!fe&&!we&&is($);ee=$,fe||we||ke?Be(O)?ee=O:Jt(O)?ee=ao(O):we?(ie=!1,ee=Nw($,!0)):ke?(ie=!1,ee=Ow($,!0)):ee=[]:Qc($)||ja($)?(ee=O,ja(O)?ee=L1(O):(!Ht(O)||di(O))&&(ee=e1($))):ie=!1}ie&&(D.set($,ee),S(ee,$,b,k,D),D.delete($)),ab(n,m,ee)}function Tw(n,l){var m=n.length;if(m)return l+=l<0?m:0,ci(l,m)?n[l]:e}function Cw(n,l,m){l.length?l=Ft(l,function(k){return Be(k)?function(D){return Xa(D,k.length===1?k[0]:k)}:k}):l=[co];var b=-1;l=Ft(l,wo(Ae()));var S=Ew(n,function(k,D,O){var $=Ft(l,function(Q){return Q(k)});return{criteria:$,index:++b,value:k}});return CL(S,function(k,D){return mD(k,D,m)})}function QR(n,l){return Iw(n,l,function(m,b){return Ub(n,b)})}function Iw(n,l,m){for(var b=-1,S=l.length,k={};++b<S;){var D=l[b],O=Xa(n,D);m(O,D)&&Zc(k,Qi(D,n),O)}return k}function eD(n){return function(l){return Xa(l,n)}}function gb(n,l,m,b){var S=b?TL:Zl,k=-1,D=l.length,O=n;for(n===l&&(l=ao(l)),m&&(O=Ft(n,wo(m)));++k<D;)for(var $=0,Q=l[k],ee=m?m(Q):Q;($=S(O,ee,$,b))>-1;)O!==n&&tu.call(O,$,1),tu.call(n,$,1);return n}function _w(n,l){for(var m=n?l.length:0,b=m-1;m--;){var S=l[m];if(m==b||S!==k){var k=S;ci(S)?tu.call(n,S,1):vb(n,S)}}return n}function hb(n,l){return n+nu(lw()*(l-n+1))}function tD(n,l,m,b){for(var S=-1,k=pr(ou((l-n)/(m||1)),0),D=X(k);k--;)D[b?k:++S]=n,n+=m;return D}function bb(n,l){var m="";if(!n||l<1||l>Se)return m;do l%2&&(m+=n),l=nu(l/2),l&&(n+=n);while(l);return m}function Ke(n,l){return Db(o1(n,l,co),n+"")}function rD(n){return dw(as(n))}function oD(n,l){var m=as(n);return Eu(m,Va(l,0,m.length))}function Zc(n,l,m,b){if(!Ht(n))return n;l=Qi(l,n);for(var S=-1,k=l.length,D=k-1,O=n;O!=null&&++S<k;){var $=Gn(l[S]),Q=m;if($==="__proto__"||$==="constructor"||$==="prototype")return n;if(S!=D){var ee=O[$];Q=b?b(ee,$,O):e,Q===e&&(Q=Ht(ee)?ee:ci(l[S+1])?[]:{})}Kc(O,$,Q),O=O[$]}return n}var Aw=iu?function(n,l){return iu.set(n,l),n}:co,nD=ru?function(n,l){return ru(n,"toString",{configurable:!0,enumerable:!1,value:Wb(l),writable:!0})}:co;function iD(n){return Eu(as(n))}function zo(n,l,m){var b=-1,S=n.length;l<0&&(l=-l>S?0:S+l),m=m>S?S:m,m<0&&(m+=S),S=l>m?0:m-l>>>0,l>>>=0;for(var k=X(S);++b<S;)k[b]=n[b+l];return k}function aD(n,l){var m;return ji(n,function(b,S,k){return m=l(b,S,k),!m}),!!m}function uu(n,l,m){var b=0,S=n==null?b:n.length;if(typeof l=="number"&&l===l&&S<=Y){for(;b<S;){var k=b+S>>>1,D=n[k];D!==null&&!To(D)&&(m?D<=l:D<l)?b=k+1:S=k}return S}return xb(n,l,co,m)}function xb(n,l,m,b){var S=0,k=n==null?0:n.length;if(k===0)return 0;l=m(l);for(var D=l!==l,O=l===null,$=To(l),Q=l===e;S<k;){var ee=nu((S+k)/2),ie=m(n[ee]),fe=ie!==e,we=ie===null,ke=ie===ie,Ge=To(ie);if(D)var Me=b||ke;else Q?Me=ke&&(b||fe):O?Me=ke&&fe&&(b||!we):$?Me=ke&&fe&&!we&&(b||!Ge):we||Ge?Me=!1:Me=b?ie<=l:ie<l;Me?S=ee+1:k=ee}return Dr(k,H)}function kw(n,l){for(var m=-1,b=n.length,S=0,k=[];++m<b;){var D=n[m],O=l?l(D):D;if(!m||!xn(O,$)){var $=O;k[S++]=D===0?0:D}}return k}function Mw(n){return typeof n=="number"?n:To(n)?Ee:+n}function So(n){if(typeof n=="string")return n;if(Be(n))return Ft(n,So)+"";if(To(n))return sw?sw.call(n):"";var l=n+"";return l=="0"&&1/n==-xe?"-0":l}function Ji(n,l,m){var b=-1,S=Km,k=n.length,D=!0,O=[],$=O;if(m)D=!1,S=Vh;else if(k>=r){var Q=l?null:bD(n);if(Q)return Vm(Q);D=!1,S=zc,$=new Ya}else $=l?[]:O;e:for(;++b<k;){var ee=n[b],ie=l?l(ee):ee;if(ee=m||ee!==0?ee:0,D&&ie===ie){for(var fe=$.length;fe--;)if($[fe]===ie)continue e;l&&$.push(ie),O.push(ee)}else S($,ie,m)||($!==O&&$.push(ie),O.push(ee))}return O}function vb(n,l){return l=Qi(l,n),n=n1(n,l),n==null||delete n[Gn($o(l))]}function Pw(n,l,m,b){return Zc(n,l,m(Xa(n,l)),b)}function pu(n,l,m,b){for(var S=n.length,k=b?S:-1;(b?k--:++k<S)&&l(n[k],k,n););return m?zo(n,b?0:k,b?k+1:S):zo(n,b?k+1:0,b?S:k)}function Lw(n,l){var m=n;return m instanceof Qe&&(m=m.value()),Xh(l,function(b,S){return S.func.apply(S.thisArg,Vi([b],S.args))},m)}function yb(n,l,m){var b=n.length;if(b<2)return b?Ji(n[0]):[];for(var S=-1,k=X(b);++S<b;)for(var D=n[S],O=-1;++O<b;)O!=S&&(k[S]=Yc(k[S]||D,n[O],l,m));return Ji(Cr(k,1),l,m)}function Rw(n,l,m){for(var b=-1,S=n.length,k=l.length,D={};++b<S;){var O=b<k?l[b]:e;m(D,n[b],O)}return D}function Eb(n){return Jt(n)?n:[]}function wb(n){return typeof n=="function"?n:co}function Qi(n,l){return Be(n)?n:Pb(n,l)?[n]:s1(mt(n))}var lD=Ke;function ea(n,l,m){var b=n.length;return m=m===e?b:m,!l&&m>=b?n:zo(n,l,m)}var Dw=XL||function(n){return xr.clearTimeout(n)};function Nw(n,l){if(l)return n.slice();var m=n.length,b=rw?rw(m):new n.constructor(m);return n.copy(b),b}function Sb(n){var l=new n.constructor(n.byteLength);return new Qm(l).set(new Qm(n)),l}function sD(n,l){var m=l?Sb(n.buffer):n.buffer;return new n.constructor(m,n.byteOffset,n.byteLength)}function cD(n){var l=new n.constructor(n.source,x0.exec(n));return l.lastIndex=n.lastIndex,l}function dD(n){return Wc?Et(Wc.call(n)):{}}function Ow(n,l){var m=l?Sb(n.buffer):n.buffer;return new n.constructor(m,n.byteOffset,n.length)}function Fw(n,l){if(n!==l){var m=n!==e,b=n===null,S=n===n,k=To(n),D=l!==e,O=l===null,$=l===l,Q=To(l);if(!O&&!Q&&!k&&n>l||k&&D&&$&&!O&&!Q||b&&D&&$||!m&&$||!S)return 1;if(!b&&!k&&!Q&&n<l||Q&&m&&S&&!b&&!k||O&&m&&S||!D&&S||!$)return-1}return 0}function mD(n,l,m){for(var b=-1,S=n.criteria,k=l.criteria,D=S.length,O=m.length;++b<D;){var $=Fw(S[b],k[b]);if($){if(b>=O)return $;var Q=m[b];return $*(Q=="desc"?-1:1)}}return n.index-l.index}function Bw(n,l,m,b){for(var S=-1,k=n.length,D=m.length,O=-1,$=l.length,Q=pr(k-D,0),ee=X($+Q),ie=!b;++O<$;)ee[O]=l[O];for(;++S<D;)(ie||S<k)&&(ee[m[S]]=n[S]);for(;Q--;)ee[O++]=n[S++];return ee}function zw(n,l,m,b){for(var S=-1,k=n.length,D=-1,O=m.length,$=-1,Q=l.length,ee=pr(k-O,0),ie=X(ee+Q),fe=!b;++S<ee;)ie[S]=n[S];for(var we=S;++$<Q;)ie[we+$]=l[$];for(;++D<O;)(fe||S<k)&&(ie[we+m[D]]=n[S++]);return ie}function ao(n,l){var m=-1,b=n.length;for(l||(l=X(b));++m<b;)l[m]=n[m];return l}function Un(n,l,m,b){var S=!m;m||(m={});for(var k=-1,D=l.length;++k<D;){var O=l[k],$=b?b(m[O],n[O],O,m,n):e;$===e&&($=n[O]),S?ai(m,O,$):Kc(m,O,$)}return m}function uD(n,l){return Un(n,Mb(n),l)}function pD(n,l){return Un(n,Jw(n),l)}function fu(n,l){return function(m,b){var S=Be(m)?xL:NR,k=l?l():{};return S(m,n,Ae(b,2),k)}}function rs(n){return Ke(function(l,m){var b=-1,S=m.length,k=S>1?m[S-1]:e,D=S>2?m[2]:e;for(k=n.length>3&&typeof k=="function"?(S--,k):e,D&&jr(m[0],m[1],D)&&(k=S<3?e:k,S=1),l=Et(l);++b<S;){var O=m[b];O&&n(l,O,b,k)}return l})}function $w(n,l){return function(m,b){if(m==null)return m;if(!lo(m))return n(m,b);for(var S=m.length,k=l?S:-1,D=Et(m);(l?k--:++k<S)&&b(D[k],k,D)!==!1;);return m}}function Hw(n){return function(l,m,b){for(var S=-1,k=Et(l),D=b(l),O=D.length;O--;){var $=D[n?O:++S];if(m(k[$],$,k)===!1)break}return l}}function fD(n,l,m){var b=l&x,S=qc(n);function k(){var D=this&&this!==xr&&this instanceof k?S:n;return D.apply(b?m:this,arguments)}return k}function Uw(n){return function(l){l=mt(l);var m=ql(l)?hn(l):e,b=m?m[0]:l.charAt(0),S=m?ea(m,1).join(""):l.slice(1);return b[n]()+S}}function os(n){return function(l){return Xh($1(z1(l).replace(nL,"")),n,"")}}function qc(n){return function(){var l=arguments;switch(l.length){case 0:return new n;case 1:return new n(l[0]);case 2:return new n(l[0],l[1]);case 3:return new n(l[0],l[1],l[2]);case 4:return new n(l[0],l[1],l[2],l[3]);case 5:return new n(l[0],l[1],l[2],l[3],l[4]);case 6:return new n(l[0],l[1],l[2],l[3],l[4],l[5]);case 7:return new n(l[0],l[1],l[2],l[3],l[4],l[5],l[6])}var m=ts(n.prototype),b=n.apply(m,l);return Ht(b)?b:m}}function gD(n,l,m){var b=qc(n);function S(){for(var k=arguments.length,D=X(k),O=k,$=ns(S);O--;)D[O]=arguments[O];var Q=k<3&&D[0]!==$&&D[k-1]!==$?[]:Xi(D,$);if(k-=Q.length,k<m)return Vw(n,l,gu,S.placeholder,e,D,Q,e,e,m-k);var ee=this&&this!==xr&&this instanceof S?b:n;return Eo(ee,this,D)}return S}function Gw(n){return function(l,m,b){var S=Et(l);if(!lo(l)){var k=Ae(m,3);l=vr(l),m=function(O){return k(S[O],O,S)}}var D=n(l,m,b);return D>-1?S[k?l[D]:D]:e}}function Ww(n){return si(function(l){var m=l.length,b=m,S=Fo.prototype.thru;for(n&&l.reverse();b--;){var k=l[b];if(typeof k!="function")throw new Oo(i);if(S&&!D&&vu(k)=="wrapper")var D=new Fo([],!0)}for(b=D?b:m;++b<m;){k=l[b];var O=vu(k),$=O=="wrapper"?Ab(k):e;$&&Lb($[0])&&$[1]==(U|M|A|R)&&!$[4].length&&$[9]==1?D=D[vu($[0])].apply(D,$[3]):D=k.length==1&&Lb(k)?D[O]():D.thru(k)}return function(){var Q=arguments,ee=Q[0];if(D&&Q.length==1&&Be(ee))return D.plant(ee).value();for(var ie=0,fe=m?l[ie].apply(this,Q):ee;++ie<m;)fe=l[ie].call(this,fe);return fe}})}function gu(n,l,m,b,S,k,D,O,$,Q){var ee=l&U,ie=l&x,fe=l&E,we=l&(M|I),ke=l&F,Ge=fe?e:qc(n);function Me(){for(var qe=arguments.length,rt=X(qe),Co=qe;Co--;)rt[Co]=arguments[Co];if(we)var Jr=ns(Me),Io=_L(rt,Jr);if(b&&(rt=Bw(rt,b,S,we)),k&&(rt=zw(rt,k,D,we)),qe-=Io,we&&qe<Q){var Qt=Xi(rt,Jr);return Vw(n,l,gu,Me.placeholder,m,rt,Qt,O,$,Q-qe)}var vn=ie?m:this,ui=fe?vn[n]:n;return qe=rt.length,O?rt=ND(rt,O):ke&&qe>1&&rt.reverse(),ee&&$<qe&&(rt.length=$),this&&this!==xr&&this instanceof Me&&(ui=Ge||qc(ui)),ui.apply(vn,rt)}return Me}function Kw(n,l){return function(m,b){return GR(m,n,l(b),{})}}function hu(n,l){return function(m,b){var S;if(m===e&&b===e)return l;if(m!==e&&(S=m),b!==e){if(S===e)return b;typeof m=="string"||typeof b=="string"?(m=So(m),b=So(b)):(m=Mw(m),b=Mw(b)),S=n(m,b)}return S}}function Tb(n){return si(function(l){return l=Ft(l,wo(Ae())),Ke(function(m){var b=this;return n(l,function(S){return Eo(S,b,m)})})})}function bu(n,l){l=l===e?" ":So(l);var m=l.length;if(m<2)return m?bb(l,n):l;var b=bb(l,ou(n/jl(l)));return ql(l)?ea(hn(b),0,n).join(""):b.slice(0,n)}function hD(n,l,m,b){var S=l&x,k=qc(n);function D(){for(var O=-1,$=arguments.length,Q=-1,ee=b.length,ie=X(ee+$),fe=this&&this!==xr&&this instanceof D?k:n;++Q<ee;)ie[Q]=b[Q];for(;$--;)ie[Q++]=arguments[++O];return Eo(fe,S?m:this,ie)}return D}function Yw(n){return function(l,m,b){return b&&typeof b!="number"&&jr(l,m,b)&&(m=b=e),l=mi(l),m===e?(m=l,l=0):m=mi(m),b=b===e?l<m?1:-1:mi(b),tD(l,m,b,n)}}function xu(n){return function(l,m){return typeof l=="string"&&typeof m=="string"||(l=Ho(l),m=Ho(m)),n(l,m)}}function Vw(n,l,m,b,S,k,D,O,$,Q){var ee=l&M,ie=ee?D:e,fe=ee?e:D,we=ee?k:e,ke=ee?e:k;l|=ee?A:N,l&=~(ee?N:A),l&T||(l&=~(x|E));var Ge=[n,l,S,we,ie,ke,fe,O,$,Q],Me=m.apply(e,Ge);return Lb(n)&&i1(Me,Ge),Me.placeholder=b,a1(Me,n,l)}function Cb(n){var l=ur[n];return function(m,b){if(m=Ho(m),b=b==null?0:Dr(Ue(b),292),b&&aw(m)){var S=(mt(m)+"e").split("e"),k=l(S[0]+"e"+(+S[1]+b));return S=(mt(k)+"e").split("e"),+(S[0]+"e"+(+S[1]-b))}return l(m)}}var bD=Ql&&1/Vm(new Ql([,-0]))[1]==xe?function(n){return new Ql(n)}:Vb;function Xw(n){return function(l){var m=Nr(l);return m==Ot?tb(l):m==br?DL(l):IL(l,n(l))}}function li(n,l,m,b,S,k,D,O){var $=l&E;if(!$&&typeof n!="function")throw new Oo(i);var Q=b?b.length:0;if(Q||(l&=~(A|N),b=S=e),D=D===e?D:pr(Ue(D),0),O=O===e?O:Ue(O),Q-=S?S.length:0,l&N){var ee=b,ie=S;b=S=e}var fe=$?e:Ab(n),we=[n,l,m,b,S,ee,ie,k,D,O];if(fe&&LD(we,fe),n=we[0],l=we[1],m=we[2],b=we[3],S=we[4],O=we[9]=we[9]===e?$?0:n.length:pr(we[9]-Q,0),!O&&l&(M|I)&&(l&=~(M|I)),!l||l==x)var ke=fD(n,l,m);else l==M||l==I?ke=gD(n,l,O):(l==A||l==(x|A))&&!S.length?ke=hD(n,l,m,b):ke=gu.apply(e,we);var Ge=fe?Aw:i1;return a1(Ge(ke,we),n,l)}function Zw(n,l,m,b){return n===e||xn(n,Jl[m])&&!bt.call(b,m)?l:n}function qw(n,l,m,b,S,k){return Ht(n)&&Ht(l)&&(k.set(l,n),mu(n,l,e,qw,k),k.delete(l)),n}function xD(n){return Qc(n)?e:n}function jw(n,l,m,b,S,k){var D=m&g,O=n.length,$=l.length;if(O!=$&&!(D&&$>O))return!1;var Q=k.get(n),ee=k.get(l);if(Q&&ee)return Q==l&&ee==n;var ie=-1,fe=!0,we=m&h?new Ya:e;for(k.set(n,l),k.set(l,n);++ie<O;){var ke=n[ie],Ge=l[ie];if(b)var Me=D?b(Ge,ke,ie,l,n,k):b(ke,Ge,ie,n,l,k);if(Me!==e){if(Me)continue;fe=!1;break}if(we){if(!Zh(l,function(qe,rt){if(!zc(we,rt)&&(ke===qe||S(ke,qe,m,b,k)))return we.push(rt)})){fe=!1;break}}else if(!(ke===Ge||S(ke,Ge,m,b,k))){fe=!1;break}}return k.delete(n),k.delete(l),fe}function vD(n,l,m,b,S,k,D){switch(m){case Vl:if(n.byteLength!=l.byteLength||n.byteOffset!=l.byteOffset)return!1;n=n.buffer,l=l.buffer;case Bc:return!(n.byteLength!=l.byteLength||!k(new Qm(n),new Qm(l)));case pe:case ye:case mr:return xn(+n,+l);case vt:return n.name==l.name&&n.message==l.message;case $a:case gn:return n==l+"";case Ot:var O=tb;case br:var $=b&g;if(O||(O=Vm),n.size!=l.size&&!$)return!1;var Q=D.get(n);if(Q)return Q==l;b|=h,D.set(n,l);var ee=jw(O(n),O(l),b,S,k,D);return D.delete(n),ee;case Ha:if(Wc)return Wc.call(n)==Wc.call(l)}return!1}function yD(n,l,m,b,S,k){var D=m&g,O=Ib(n),$=O.length,Q=Ib(l),ee=Q.length;if($!=ee&&!D)return!1;for(var ie=$;ie--;){var fe=O[ie];if(!(D?fe in l:bt.call(l,fe)))return!1}var we=k.get(n),ke=k.get(l);if(we&&ke)return we==l&&ke==n;var Ge=!0;k.set(n,l),k.set(l,n);for(var Me=D;++ie<$;){fe=O[ie];var qe=n[fe],rt=l[fe];if(b)var Co=D?b(rt,qe,fe,l,n,k):b(qe,rt,fe,n,l,k);if(!(Co===e?qe===rt||S(qe,rt,m,b,k):Co)){Ge=!1;break}Me||(Me=fe=="constructor")}if(Ge&&!Me){var Jr=n.constructor,Io=l.constructor;Jr!=Io&&"constructor"in n&&"constructor"in l&&!(typeof Jr=="function"&&Jr instanceof Jr&&typeof Io=="function"&&Io instanceof Io)&&(Ge=!1)}return k.delete(n),k.delete(l),Ge}function si(n){return Db(o1(n,e,u1),n+"")}function Ib(n){return bw(n,vr,Mb)}function _b(n){return bw(n,so,Jw)}var Ab=iu?function(n){return iu.get(n)}:Vb;function vu(n){for(var l=n.name+"",m=es[l],b=bt.call(es,l)?m.length:0;b--;){var S=m[b],k=S.func;if(k==null||k==n)return S.name}return l}function ns(n){var l=bt.call(C,"placeholder")?C:n;return l.placeholder}function Ae(){var n=C.iteratee||Kb;return n=n===Kb?yw:n,arguments.length?n(arguments[0],arguments[1]):n}function yu(n,l){var m=n.__data__;return AD(l)?m[typeof l=="string"?"string":"hash"]:m.map}function kb(n){for(var l=vr(n),m=l.length;m--;){var b=l[m],S=n[b];l[m]=[b,S,t1(S)]}return l}function Za(n,l){var m=PL(n,l);return vw(m)?m:e}function ED(n){var l=bt.call(n,Wa),m=n[Wa];try{n[Wa]=e;var b=!0}catch{}var S=jm.call(n);return b&&(l?n[Wa]=m:delete n[Wa]),S}var Mb=ob?function(n){return n==null?[]:(n=Et(n),Yi(ob(n),function(l){return nw.call(n,l)}))}:Xb,Jw=ob?function(n){for(var l=[];n;)Vi(l,Mb(n)),n=eu(n);return l}:Xb,Nr=qr;(nb&&Nr(new nb(new ArrayBuffer(1)))!=Vl||Hc&&Nr(new Hc)!=Ot||ib&&Nr(ib.resolve())!=Hm||Ql&&Nr(new Ql)!=br||Uc&&Nr(new Uc)!=Ua)&&(Nr=function(n){var l=qr(n),m=l==fn?n.constructor:e,b=m?qa(m):"";if(b)switch(b){case oR:return Vl;case nR:return Ot;case iR:return Hm;case aR:return br;case lR:return Ua}return l});function wD(n,l,m){for(var b=-1,S=m.length;++b<S;){var k=m[b],D=k.size;switch(k.type){case"drop":n+=D;break;case"dropRight":l-=D;break;case"take":l=Dr(l,n+D);break;case"takeRight":n=pr(n,l-D);break}}return{start:n,end:l}}function SD(n){var l=n.match(kP);return l?l[1].split(MP):[]}function Qw(n,l,m){l=Qi(l,n);for(var b=-1,S=l.length,k=!1;++b<S;){var D=Gn(l[b]);if(!(k=n!=null&&m(n,D)))break;n=n[D]}return k||++b!=S?k:(S=n==null?0:n.length,!!S&&_u(S)&&ci(D,S)&&(Be(n)||ja(n)))}function TD(n){var l=n.length,m=new n.constructor(l);return l&&typeof n[0]=="string"&&bt.call(n,"index")&&(m.index=n.index,m.input=n.input),m}function e1(n){return typeof n.constructor=="function"&&!jc(n)?ts(eu(n)):{}}function CD(n,l,m){var b=n.constructor;switch(l){case Bc:return Sb(n);case pe:case ye:return new b(+n);case Vl:return sD(n,m);case kh:case Mh:case Ph:case Lh:case Rh:case Dh:case Nh:case Oh:case Fh:return Ow(n,m);case Ot:return new b;case mr:case gn:return new b(n);case $a:return cD(n);case br:return new b;case Ha:return dD(n)}}function ID(n,l){var m=l.length;if(!m)return n;var b=m-1;return l[b]=(m>1?"& ":"")+l[b],l=l.join(m>2?", ":" "),n.replace(AP,`{
2
+ /* [wrapped with `+l+`] */
3
+ `)}function _D(n){return Be(n)||ja(n)||!!(iw&&n&&n[iw])}function ci(n,l){var m=typeof n;return l=l??Se,!!l&&(m=="number"||m!="symbol"&&zP.test(n))&&n>-1&&n%1==0&&n<l}function jr(n,l,m){if(!Ht(m))return!1;var b=typeof l;return(b=="number"?lo(m)&&ci(l,m.length):b=="string"&&l in m)?xn(m[l],n):!1}function Pb(n,l){if(Be(n))return!1;var m=typeof n;return m=="number"||m=="symbol"||m=="boolean"||n==null||To(n)?!0:TP.test(n)||!SP.test(n)||l!=null&&n in Et(l)}function AD(n){var l=typeof n;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?n!=="__proto__":n===null}function Lb(n){var l=vu(n),m=C[l];if(typeof m!="function"||!(l in Qe.prototype))return!1;if(n===m)return!0;var b=Ab(m);return!!b&&n===b[0]}function kD(n){return!!tw&&tw in n}var MD=Zm?di:Zb;function jc(n){var l=n&&n.constructor,m=typeof l=="function"&&l.prototype||Jl;return n===m}function t1(n){return n===n&&!Ht(n)}function r1(n,l){return function(m){return m==null?!1:m[n]===l&&(l!==e||n in Et(m))}}function PD(n){var l=Cu(n,function(b){return m.size===c&&m.clear(),b}),m=l.cache;return l}function LD(n,l){var m=n[1],b=l[1],S=m|b,k=S<(x|E|U),D=b==U&&m==M||b==U&&m==R&&n[7].length<=l[8]||b==(U|R)&&l[7].length<=l[8]&&m==M;if(!(k||D))return n;b&x&&(n[2]=l[2],S|=m&x?0:T);var O=l[3];if(O){var $=n[3];n[3]=$?Bw($,O,l[4]):O,n[4]=$?Xi(n[3],d):l[4]}return O=l[5],O&&($=n[5],n[5]=$?zw($,O,l[6]):O,n[6]=$?Xi(n[5],d):l[6]),O=l[7],O&&(n[7]=O),b&U&&(n[8]=n[8]==null?l[8]:Dr(n[8],l[8])),n[9]==null&&(n[9]=l[9]),n[0]=l[0],n[1]=S,n}function RD(n){var l=[];if(n!=null)for(var m in Et(n))l.push(m);return l}function DD(n){return jm.call(n)}function o1(n,l,m){return l=pr(l===e?n.length-1:l,0),function(){for(var b=arguments,S=-1,k=pr(b.length-l,0),D=X(k);++S<k;)D[S]=b[l+S];S=-1;for(var O=X(l+1);++S<l;)O[S]=b[S];return O[l]=m(D),Eo(n,this,O)}}function n1(n,l){return l.length<2?n:Xa(n,zo(l,0,-1))}function ND(n,l){for(var m=n.length,b=Dr(l.length,m),S=ao(n);b--;){var k=l[b];n[b]=ci(k,m)?S[k]:e}return n}function Rb(n,l){if(!(l==="constructor"&&typeof n[l]=="function")&&l!="__proto__")return n[l]}var i1=l1(Aw),Jc=qL||function(n,l){return xr.setTimeout(n,l)},Db=l1(nD);function a1(n,l,m){var b=l+"";return Db(n,ID(b,OD(SD(b),m)))}function l1(n){var l=0,m=0;return function(){var b=eR(),S=te-(b-m);if(m=b,S>0){if(++l>=G)return arguments[0]}else l=0;return n.apply(e,arguments)}}function Eu(n,l){var m=-1,b=n.length,S=b-1;for(l=l===e?b:l;++m<l;){var k=hb(m,S),D=n[k];n[k]=n[m],n[m]=D}return n.length=l,n}var s1=PD(function(n){var l=[];return n.charCodeAt(0)===46&&l.push(""),n.replace(CP,function(m,b,S,k){l.push(S?k.replace(RP,"$1"):b||m)}),l});function Gn(n){if(typeof n=="string"||To(n))return n;var l=n+"";return l=="0"&&1/n==-xe?"-0":l}function qa(n){if(n!=null){try{return qm.call(n)}catch{}try{return n+""}catch{}}return""}function OD(n,l){return No(le,function(m){var b="_."+m[0];l&m[1]&&!Km(n,b)&&n.push(b)}),n.sort()}function c1(n){if(n instanceof Qe)return n.clone();var l=new Fo(n.__wrapped__,n.__chain__);return l.__actions__=ao(n.__actions__),l.__index__=n.__index__,l.__values__=n.__values__,l}function FD(n,l,m){(m?jr(n,l,m):l===e)?l=1:l=pr(Ue(l),0);var b=n==null?0:n.length;if(!b||l<1)return[];for(var S=0,k=0,D=X(ou(b/l));S<b;)D[k++]=zo(n,S,S+=l);return D}function BD(n){for(var l=-1,m=n==null?0:n.length,b=0,S=[];++l<m;){var k=n[l];k&&(S[b++]=k)}return S}function zD(){var n=arguments.length;if(!n)return[];for(var l=X(n-1),m=arguments[0],b=n;b--;)l[b-1]=arguments[b];return Vi(Be(m)?ao(m):[m],Cr(l,1))}var $D=Ke(function(n,l){return Jt(n)?Yc(n,Cr(l,1,Jt,!0)):[]}),HD=Ke(function(n,l){var m=$o(l);return Jt(m)&&(m=e),Jt(n)?Yc(n,Cr(l,1,Jt,!0),Ae(m,2)):[]}),UD=Ke(function(n,l){var m=$o(l);return Jt(m)&&(m=e),Jt(n)?Yc(n,Cr(l,1,Jt,!0),e,m):[]});function GD(n,l,m){var b=n==null?0:n.length;return b?(l=m||l===e?1:Ue(l),zo(n,l<0?0:l,b)):[]}function WD(n,l,m){var b=n==null?0:n.length;return b?(l=m||l===e?1:Ue(l),l=b-l,zo(n,0,l<0?0:l)):[]}function KD(n,l){return n&&n.length?pu(n,Ae(l,3),!0,!0):[]}function YD(n,l){return n&&n.length?pu(n,Ae(l,3),!0):[]}function VD(n,l,m,b){var S=n==null?0:n.length;return S?(m&&typeof m!="number"&&jr(n,l,m)&&(m=0,b=S),zR(n,l,m,b)):[]}function d1(n,l,m){var b=n==null?0:n.length;if(!b)return-1;var S=m==null?0:Ue(m);return S<0&&(S=pr(b+S,0)),Ym(n,Ae(l,3),S)}function m1(n,l,m){var b=n==null?0:n.length;if(!b)return-1;var S=b-1;return m!==e&&(S=Ue(m),S=m<0?pr(b+S,0):Dr(S,b-1)),Ym(n,Ae(l,3),S,!0)}function u1(n){var l=n==null?0:n.length;return l?Cr(n,1):[]}function XD(n){var l=n==null?0:n.length;return l?Cr(n,xe):[]}function ZD(n,l){var m=n==null?0:n.length;return m?(l=l===e?1:Ue(l),Cr(n,l)):[]}function qD(n){for(var l=-1,m=n==null?0:n.length,b={};++l<m;){var S=n[l];b[S[0]]=S[1]}return b}function p1(n){return n&&n.length?n[0]:e}function jD(n,l,m){var b=n==null?0:n.length;if(!b)return-1;var S=m==null?0:Ue(m);return S<0&&(S=pr(b+S,0)),Zl(n,l,S)}function JD(n){var l=n==null?0:n.length;return l?zo(n,0,-1):[]}var QD=Ke(function(n){var l=Ft(n,Eb);return l.length&&l[0]===n[0]?mb(l):[]}),e6=Ke(function(n){var l=$o(n),m=Ft(n,Eb);return l===$o(m)?l=e:m.pop(),m.length&&m[0]===n[0]?mb(m,Ae(l,2)):[]}),t6=Ke(function(n){var l=$o(n),m=Ft(n,Eb);return l=typeof l=="function"?l:e,l&&m.pop(),m.length&&m[0]===n[0]?mb(m,e,l):[]});function r6(n,l){return n==null?"":JL.call(n,l)}function $o(n){var l=n==null?0:n.length;return l?n[l-1]:e}function o6(n,l,m){var b=n==null?0:n.length;if(!b)return-1;var S=b;return m!==e&&(S=Ue(m),S=S<0?pr(b+S,0):Dr(S,b-1)),l===l?OL(n,l,S):Ym(n,V0,S,!0)}function n6(n,l){return n&&n.length?Tw(n,Ue(l)):e}var i6=Ke(f1);function f1(n,l){return n&&n.length&&l&&l.length?gb(n,l):n}function a6(n,l,m){return n&&n.length&&l&&l.length?gb(n,l,Ae(m,2)):n}function l6(n,l,m){return n&&n.length&&l&&l.length?gb(n,l,e,m):n}var s6=si(function(n,l){var m=n==null?0:n.length,b=lb(n,l);return _w(n,Ft(l,function(S){return ci(S,m)?+S:S}).sort(Fw)),b});function c6(n,l){var m=[];if(!(n&&n.length))return m;var b=-1,S=[],k=n.length;for(l=Ae(l,3);++b<k;){var D=n[b];l(D,b,n)&&(m.push(D),S.push(b))}return _w(n,S),m}function Nb(n){return n==null?n:rR.call(n)}function d6(n,l,m){var b=n==null?0:n.length;return b?(m&&typeof m!="number"&&jr(n,l,m)?(l=0,m=b):(l=l==null?0:Ue(l),m=m===e?b:Ue(m)),zo(n,l,m)):[]}function m6(n,l){return uu(n,l)}function u6(n,l,m){return xb(n,l,Ae(m,2))}function p6(n,l){var m=n==null?0:n.length;if(m){var b=uu(n,l);if(b<m&&xn(n[b],l))return b}return-1}function f6(n,l){return uu(n,l,!0)}function g6(n,l,m){return xb(n,l,Ae(m,2),!0)}function h6(n,l){var m=n==null?0:n.length;if(m){var b=uu(n,l,!0)-1;if(xn(n[b],l))return b}return-1}function b6(n){return n&&n.length?kw(n):[]}function x6(n,l){return n&&n.length?kw(n,Ae(l,2)):[]}function v6(n){var l=n==null?0:n.length;return l?zo(n,1,l):[]}function y6(n,l,m){return n&&n.length?(l=m||l===e?1:Ue(l),zo(n,0,l<0?0:l)):[]}function E6(n,l,m){var b=n==null?0:n.length;return b?(l=m||l===e?1:Ue(l),l=b-l,zo(n,l<0?0:l,b)):[]}function w6(n,l){return n&&n.length?pu(n,Ae(l,3),!1,!0):[]}function S6(n,l){return n&&n.length?pu(n,Ae(l,3)):[]}var T6=Ke(function(n){return Ji(Cr(n,1,Jt,!0))}),C6=Ke(function(n){var l=$o(n);return Jt(l)&&(l=e),Ji(Cr(n,1,Jt,!0),Ae(l,2))}),I6=Ke(function(n){var l=$o(n);return l=typeof l=="function"?l:e,Ji(Cr(n,1,Jt,!0),e,l)});function _6(n){return n&&n.length?Ji(n):[]}function A6(n,l){return n&&n.length?Ji(n,Ae(l,2)):[]}function k6(n,l){return l=typeof l=="function"?l:e,n&&n.length?Ji(n,e,l):[]}function Ob(n){if(!(n&&n.length))return[];var l=0;return n=Yi(n,function(m){if(Jt(m))return l=pr(m.length,l),!0}),Qh(l,function(m){return Ft(n,qh(m))})}function g1(n,l){if(!(n&&n.length))return[];var m=Ob(n);return l==null?m:Ft(m,function(b){return Eo(l,e,b)})}var M6=Ke(function(n,l){return Jt(n)?Yc(n,l):[]}),P6=Ke(function(n){return yb(Yi(n,Jt))}),L6=Ke(function(n){var l=$o(n);return Jt(l)&&(l=e),yb(Yi(n,Jt),Ae(l,2))}),R6=Ke(function(n){var l=$o(n);return l=typeof l=="function"?l:e,yb(Yi(n,Jt),e,l)}),D6=Ke(Ob);function N6(n,l){return Rw(n||[],l||[],Kc)}function O6(n,l){return Rw(n||[],l||[],Zc)}var F6=Ke(function(n){var l=n.length,m=l>1?n[l-1]:e;return m=typeof m=="function"?(n.pop(),m):e,g1(n,m)});function h1(n){var l=C(n);return l.__chain__=!0,l}function B6(n,l){return l(n),n}function wu(n,l){return l(n)}var z6=si(function(n){var l=n.length,m=l?n[0]:0,b=this.__wrapped__,S=function(k){return lb(k,n)};return l>1||this.__actions__.length||!(b instanceof Qe)||!ci(m)?this.thru(S):(b=b.slice(m,+m+(l?1:0)),b.__actions__.push({func:wu,args:[S],thisArg:e}),new Fo(b,this.__chain__).thru(function(k){return l&&!k.length&&k.push(e),k}))});function $6(){return h1(this)}function H6(){return new Fo(this.value(),this.__chain__)}function U6(){this.__values__===e&&(this.__values__=M1(this.value()));var n=this.__index__>=this.__values__.length,l=n?e:this.__values__[this.__index__++];return{done:n,value:l}}function G6(){return this}function W6(n){for(var l,m=this;m instanceof lu;){var b=c1(m);b.__index__=0,b.__values__=e,l?S.__wrapped__=b:l=b;var S=b;m=m.__wrapped__}return S.__wrapped__=n,l}function K6(){var n=this.__wrapped__;if(n instanceof Qe){var l=n;return this.__actions__.length&&(l=new Qe(this)),l=l.reverse(),l.__actions__.push({func:wu,args:[Nb],thisArg:e}),new Fo(l,this.__chain__)}return this.thru(Nb)}function Y6(){return Lw(this.__wrapped__,this.__actions__)}var V6=fu(function(n,l,m){bt.call(n,m)?++n[m]:ai(n,m,1)});function X6(n,l,m){var b=Be(n)?K0:BR;return m&&jr(n,l,m)&&(l=e),b(n,Ae(l,3))}function Z6(n,l){var m=Be(n)?Yi:gw;return m(n,Ae(l,3))}var q6=Gw(d1),j6=Gw(m1);function J6(n,l){return Cr(Su(n,l),1)}function Q6(n,l){return Cr(Su(n,l),xe)}function e4(n,l,m){return m=m===e?1:Ue(m),Cr(Su(n,l),m)}function b1(n,l){var m=Be(n)?No:ji;return m(n,Ae(l,3))}function x1(n,l){var m=Be(n)?vL:fw;return m(n,Ae(l,3))}var t4=fu(function(n,l,m){bt.call(n,m)?n[m].push(l):ai(n,m,[l])});function r4(n,l,m,b){n=lo(n)?n:as(n),m=m&&!b?Ue(m):0;var S=n.length;return m<0&&(m=pr(S+m,0)),Au(n)?m<=S&&n.indexOf(l,m)>-1:!!S&&Zl(n,l,m)>-1}var o4=Ke(function(n,l,m){var b=-1,S=typeof l=="function",k=lo(n)?X(n.length):[];return ji(n,function(D){k[++b]=S?Eo(l,D,m):Vc(D,l,m)}),k}),n4=fu(function(n,l,m){ai(n,m,l)});function Su(n,l){var m=Be(n)?Ft:Ew;return m(n,Ae(l,3))}function i4(n,l,m,b){return n==null?[]:(Be(l)||(l=l==null?[]:[l]),m=b?e:m,Be(m)||(m=m==null?[]:[m]),Cw(n,l,m))}var a4=fu(function(n,l,m){n[m?0:1].push(l)},function(){return[[],[]]});function l4(n,l,m){var b=Be(n)?Xh:Z0,S=arguments.length<3;return b(n,Ae(l,4),m,S,ji)}function s4(n,l,m){var b=Be(n)?yL:Z0,S=arguments.length<3;return b(n,Ae(l,4),m,S,fw)}function c4(n,l){var m=Be(n)?Yi:gw;return m(n,Iu(Ae(l,3)))}function d4(n){var l=Be(n)?dw:rD;return l(n)}function m4(n,l,m){(m?jr(n,l,m):l===e)?l=1:l=Ue(l);var b=Be(n)?RR:oD;return b(n,l)}function u4(n){var l=Be(n)?DR:iD;return l(n)}function p4(n){if(n==null)return 0;if(lo(n))return Au(n)?jl(n):n.length;var l=Nr(n);return l==Ot||l==br?n.size:pb(n).length}function f4(n,l,m){var b=Be(n)?Zh:aD;return m&&jr(n,l,m)&&(l=e),b(n,Ae(l,3))}var g4=Ke(function(n,l){if(n==null)return[];var m=l.length;return m>1&&jr(n,l[0],l[1])?l=[]:m>2&&jr(l[0],l[1],l[2])&&(l=[l[0]]),Cw(n,Cr(l,1),[])}),Tu=ZL||function(){return xr.Date.now()};function h4(n,l){if(typeof l!="function")throw new Oo(i);return n=Ue(n),function(){if(--n<1)return l.apply(this,arguments)}}function v1(n,l,m){return l=m?e:l,l=n&&l==null?n.length:l,li(n,U,e,e,e,e,l)}function y1(n,l){var m;if(typeof l!="function")throw new Oo(i);return n=Ue(n),function(){return--n>0&&(m=l.apply(this,arguments)),n<=1&&(l=e),m}}var Fb=Ke(function(n,l,m){var b=x;if(m.length){var S=Xi(m,ns(Fb));b|=A}return li(n,b,l,m,S)}),E1=Ke(function(n,l,m){var b=x|E;if(m.length){var S=Xi(m,ns(E1));b|=A}return li(l,b,n,m,S)});function w1(n,l,m){l=m?e:l;var b=li(n,M,e,e,e,e,e,l);return b.placeholder=w1.placeholder,b}function S1(n,l,m){l=m?e:l;var b=li(n,I,e,e,e,e,e,l);return b.placeholder=S1.placeholder,b}function T1(n,l,m){var b,S,k,D,O,$,Q=0,ee=!1,ie=!1,fe=!0;if(typeof n!="function")throw new Oo(i);l=Ho(l)||0,Ht(m)&&(ee=!!m.leading,ie="maxWait"in m,k=ie?pr(Ho(m.maxWait)||0,l):k,fe="trailing"in m?!!m.trailing:fe);function we(Qt){var vn=b,ui=S;return b=S=e,Q=Qt,D=n.apply(ui,vn),D}function ke(Qt){return Q=Qt,O=Jc(qe,l),ee?we(Qt):D}function Ge(Qt){var vn=Qt-$,ui=Qt-Q,G1=l-vn;return ie?Dr(G1,k-ui):G1}function Me(Qt){var vn=Qt-$,ui=Qt-Q;return $===e||vn>=l||vn<0||ie&&ui>=k}function qe(){var Qt=Tu();if(Me(Qt))return rt(Qt);O=Jc(qe,Ge(Qt))}function rt(Qt){return O=e,fe&&b?we(Qt):(b=S=e,D)}function Co(){O!==e&&Dw(O),Q=0,b=$=S=O=e}function Jr(){return O===e?D:rt(Tu())}function Io(){var Qt=Tu(),vn=Me(Qt);if(b=arguments,S=this,$=Qt,vn){if(O===e)return ke($);if(ie)return Dw(O),O=Jc(qe,l),we($)}return O===e&&(O=Jc(qe,l)),D}return Io.cancel=Co,Io.flush=Jr,Io}var b4=Ke(function(n,l){return pw(n,1,l)}),x4=Ke(function(n,l,m){return pw(n,Ho(l)||0,m)});function v4(n){return li(n,F)}function Cu(n,l){if(typeof n!="function"||l!=null&&typeof l!="function")throw new Oo(i);var m=function(){var b=arguments,S=l?l.apply(this,b):b[0],k=m.cache;if(k.has(S))return k.get(S);var D=n.apply(this,b);return m.cache=k.set(S,D)||k,D};return m.cache=new(Cu.Cache||ii),m}Cu.Cache=ii;function Iu(n){if(typeof n!="function")throw new Oo(i);return function(){var l=arguments;switch(l.length){case 0:return!n.call(this);case 1:return!n.call(this,l[0]);case 2:return!n.call(this,l[0],l[1]);case 3:return!n.call(this,l[0],l[1],l[2])}return!n.apply(this,l)}}function y4(n){return y1(2,n)}var E4=lD(function(n,l){l=l.length==1&&Be(l[0])?Ft(l[0],wo(Ae())):Ft(Cr(l,1),wo(Ae()));var m=l.length;return Ke(function(b){for(var S=-1,k=Dr(b.length,m);++S<k;)b[S]=l[S].call(this,b[S]);return Eo(n,this,b)})}),Bb=Ke(function(n,l){var m=Xi(l,ns(Bb));return li(n,A,e,l,m)}),C1=Ke(function(n,l){var m=Xi(l,ns(C1));return li(n,N,e,l,m)}),w4=si(function(n,l){return li(n,R,e,e,e,l)});function S4(n,l){if(typeof n!="function")throw new Oo(i);return l=l===e?l:Ue(l),Ke(n,l)}function T4(n,l){if(typeof n!="function")throw new Oo(i);return l=l==null?0:pr(Ue(l),0),Ke(function(m){var b=m[l],S=ea(m,0,l);return b&&Vi(S,b),Eo(n,this,S)})}function C4(n,l,m){var b=!0,S=!0;if(typeof n!="function")throw new Oo(i);return Ht(m)&&(b="leading"in m?!!m.leading:b,S="trailing"in m?!!m.trailing:S),T1(n,l,{leading:b,maxWait:l,trailing:S})}function I4(n){return v1(n,1)}function _4(n,l){return Bb(wb(l),n)}function A4(){if(!arguments.length)return[];var n=arguments[0];return Be(n)?n:[n]}function k4(n){return Bo(n,u)}function M4(n,l){return l=typeof l=="function"?l:e,Bo(n,u,l)}function P4(n){return Bo(n,p|u)}function L4(n,l){return l=typeof l=="function"?l:e,Bo(n,p|u,l)}function R4(n,l){return l==null||uw(n,l,vr(l))}function xn(n,l){return n===l||n!==n&&l!==l}var D4=xu(db),N4=xu(function(n,l){return n>=l}),ja=xw(function(){return arguments}())?xw:function(n){return Vt(n)&&bt.call(n,"callee")&&!nw.call(n,"callee")},Be=X.isArray,O4=z0?wo(z0):WR;function lo(n){return n!=null&&_u(n.length)&&!di(n)}function Jt(n){return Vt(n)&&lo(n)}function F4(n){return n===!0||n===!1||Vt(n)&&qr(n)==pe}var ta=jL||Zb,B4=$0?wo($0):KR;function z4(n){return Vt(n)&&n.nodeType===1&&!Qc(n)}function $4(n){if(n==null)return!0;if(lo(n)&&(Be(n)||typeof n=="string"||typeof n.splice=="function"||ta(n)||is(n)||ja(n)))return!n.length;var l=Nr(n);if(l==Ot||l==br)return!n.size;if(jc(n))return!pb(n).length;for(var m in n)if(bt.call(n,m))return!1;return!0}function H4(n,l){return Xc(n,l)}function U4(n,l,m){m=typeof m=="function"?m:e;var b=m?m(n,l):e;return b===e?Xc(n,l,e,m):!!b}function zb(n){if(!Vt(n))return!1;var l=qr(n);return l==vt||l==Tt||typeof n.message=="string"&&typeof n.name=="string"&&!Qc(n)}function G4(n){return typeof n=="number"&&aw(n)}function di(n){if(!Ht(n))return!1;var l=qr(n);return l==At||l==ht||l==ce||l==_h}function I1(n){return typeof n=="number"&&n==Ue(n)}function _u(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=Se}function Ht(n){var l=typeof n;return n!=null&&(l=="object"||l=="function")}function Vt(n){return n!=null&&typeof n=="object"}var _1=H0?wo(H0):VR;function W4(n,l){return n===l||ub(n,l,kb(l))}function K4(n,l,m){return m=typeof m=="function"?m:e,ub(n,l,kb(l),m)}function Y4(n){return A1(n)&&n!=+n}function V4(n){if(MD(n))throw new Oe(o);return vw(n)}function X4(n){return n===null}function Z4(n){return n==null}function A1(n){return typeof n=="number"||Vt(n)&&qr(n)==mr}function Qc(n){if(!Vt(n)||qr(n)!=fn)return!1;var l=eu(n);if(l===null)return!0;var m=bt.call(l,"constructor")&&l.constructor;return typeof m=="function"&&m instanceof m&&qm.call(m)==KL}var $b=U0?wo(U0):XR;function q4(n){return I1(n)&&n>=-Se&&n<=Se}var k1=G0?wo(G0):ZR;function Au(n){return typeof n=="string"||!Be(n)&&Vt(n)&&qr(n)==gn}function To(n){return typeof n=="symbol"||Vt(n)&&qr(n)==Ha}var is=W0?wo(W0):qR;function j4(n){return n===e}function J4(n){return Vt(n)&&Nr(n)==Ua}function Q4(n){return Vt(n)&&qr(n)==Ah}var eN=xu(fb),tN=xu(function(n,l){return n<=l});function M1(n){if(!n)return[];if(lo(n))return Au(n)?hn(n):ao(n);if($c&&n[$c])return RL(n[$c]());var l=Nr(n),m=l==Ot?tb:l==br?Vm:as;return m(n)}function mi(n){if(!n)return n===0?n:0;if(n=Ho(n),n===xe||n===-xe){var l=n<0?-1:1;return l*Je}return n===n?n:0}function Ue(n){var l=mi(n),m=l%1;return l===l?m?l-m:l:0}function P1(n){return n?Va(Ue(n),0,ue):0}function Ho(n){if(typeof n=="number")return n;if(To(n))return Ee;if(Ht(n)){var l=typeof n.valueOf=="function"?n.valueOf():n;n=Ht(l)?l+"":l}if(typeof n!="string")return n===0?n:+n;n=q0(n);var m=OP.test(n);return m||BP.test(n)?hL(n.slice(2),m?2:8):NP.test(n)?Ee:+n}function L1(n){return Un(n,so(n))}function rN(n){return n?Va(Ue(n),-Se,Se):n===0?n:0}function mt(n){return n==null?"":So(n)}var oN=rs(function(n,l){if(jc(l)||lo(l)){Un(l,vr(l),n);return}for(var m in l)bt.call(l,m)&&Kc(n,m,l[m])}),R1=rs(function(n,l){Un(l,so(l),n)}),ku=rs(function(n,l,m,b){Un(l,so(l),n,b)}),nN=rs(function(n,l,m,b){Un(l,vr(l),n,b)}),iN=si(lb);function aN(n,l){var m=ts(n);return l==null?m:mw(m,l)}var lN=Ke(function(n,l){n=Et(n);var m=-1,b=l.length,S=b>2?l[2]:e;for(S&&jr(l[0],l[1],S)&&(b=1);++m<b;)for(var k=l[m],D=so(k),O=-1,$=D.length;++O<$;){var Q=D[O],ee=n[Q];(ee===e||xn(ee,Jl[Q])&&!bt.call(n,Q))&&(n[Q]=k[Q])}return n}),sN=Ke(function(n){return n.push(e,qw),Eo(D1,e,n)});function cN(n,l){return Y0(n,Ae(l,3),Hn)}function dN(n,l){return Y0(n,Ae(l,3),cb)}function mN(n,l){return n==null?n:sb(n,Ae(l,3),so)}function uN(n,l){return n==null?n:hw(n,Ae(l,3),so)}function pN(n,l){return n&&Hn(n,Ae(l,3))}function fN(n,l){return n&&cb(n,Ae(l,3))}function gN(n){return n==null?[]:du(n,vr(n))}function hN(n){return n==null?[]:du(n,so(n))}function Hb(n,l,m){var b=n==null?e:Xa(n,l);return b===e?m:b}function bN(n,l){return n!=null&&Qw(n,l,$R)}function Ub(n,l){return n!=null&&Qw(n,l,HR)}var xN=Kw(function(n,l,m){l!=null&&typeof l.toString!="function"&&(l=jm.call(l)),n[l]=m},Wb(co)),vN=Kw(function(n,l,m){l!=null&&typeof l.toString!="function"&&(l=jm.call(l)),bt.call(n,l)?n[l].push(m):n[l]=[m]},Ae),yN=Ke(Vc);function vr(n){return lo(n)?cw(n):pb(n)}function so(n){return lo(n)?cw(n,!0):jR(n)}function EN(n,l){var m={};return l=Ae(l,3),Hn(n,function(b,S,k){ai(m,l(b,S,k),b)}),m}function wN(n,l){var m={};return l=Ae(l,3),Hn(n,function(b,S,k){ai(m,S,l(b,S,k))}),m}var SN=rs(function(n,l,m){mu(n,l,m)}),D1=rs(function(n,l,m,b){mu(n,l,m,b)}),TN=si(function(n,l){var m={};if(n==null)return m;var b=!1;l=Ft(l,function(k){return k=Qi(k,n),b||(b=k.length>1),k}),Un(n,_b(n),m),b&&(m=Bo(m,p|f|u,xD));for(var S=l.length;S--;)vb(m,l[S]);return m});function CN(n,l){return N1(n,Iu(Ae(l)))}var IN=si(function(n,l){return n==null?{}:QR(n,l)});function N1(n,l){if(n==null)return{};var m=Ft(_b(n),function(b){return[b]});return l=Ae(l),Iw(n,m,function(b,S){return l(b,S[0])})}function _N(n,l,m){l=Qi(l,n);var b=-1,S=l.length;for(S||(S=1,n=e);++b<S;){var k=n==null?e:n[Gn(l[b])];k===e&&(b=S,k=m),n=di(k)?k.call(n):k}return n}function AN(n,l,m){return n==null?n:Zc(n,l,m)}function kN(n,l,m,b){return b=typeof b=="function"?b:e,n==null?n:Zc(n,l,m,b)}var O1=Xw(vr),F1=Xw(so);function MN(n,l,m){var b=Be(n),S=b||ta(n)||is(n);if(l=Ae(l,4),m==null){var k=n&&n.constructor;S?m=b?new k:[]:Ht(n)?m=di(k)?ts(eu(n)):{}:m={}}return(S?No:Hn)(n,function(D,O,$){return l(m,D,O,$)}),m}function PN(n,l){return n==null?!0:vb(n,l)}function LN(n,l,m){return n==null?n:Pw(n,l,wb(m))}function RN(n,l,m,b){return b=typeof b=="function"?b:e,n==null?n:Pw(n,l,wb(m),b)}function as(n){return n==null?[]:eb(n,vr(n))}function DN(n){return n==null?[]:eb(n,so(n))}function NN(n,l,m){return m===e&&(m=l,l=e),m!==e&&(m=Ho(m),m=m===m?m:0),l!==e&&(l=Ho(l),l=l===l?l:0),Va(Ho(n),l,m)}function ON(n,l,m){return l=mi(l),m===e?(m=l,l=0):m=mi(m),n=Ho(n),UR(n,l,m)}function FN(n,l,m){if(m&&typeof m!="boolean"&&jr(n,l,m)&&(l=m=e),m===e&&(typeof l=="boolean"?(m=l,l=e):typeof n=="boolean"&&(m=n,n=e)),n===e&&l===e?(n=0,l=1):(n=mi(n),l===e?(l=n,n=0):l=mi(l)),n>l){var b=n;n=l,l=b}if(m||n%1||l%1){var S=lw();return Dr(n+S*(l-n+gL("1e-"+((S+"").length-1))),l)}return hb(n,l)}var BN=os(function(n,l,m){return l=l.toLowerCase(),n+(m?B1(l):l)});function B1(n){return Gb(mt(n).toLowerCase())}function z1(n){return n=mt(n),n&&n.replace($P,AL).replace(iL,"")}function zN(n,l,m){n=mt(n),l=So(l);var b=n.length;m=m===e?b:Va(Ue(m),0,b);var S=m;return m-=l.length,m>=0&&n.slice(m,S)==l}function $N(n){return n=mt(n),n&&yP.test(n)?n.replace(h0,kL):n}function HN(n){return n=mt(n),n&&IP.test(n)?n.replace(Bh,"\\$&"):n}var UN=os(function(n,l,m){return n+(m?"-":"")+l.toLowerCase()}),GN=os(function(n,l,m){return n+(m?" ":"")+l.toLowerCase()}),WN=Uw("toLowerCase");function KN(n,l,m){n=mt(n),l=Ue(l);var b=l?jl(n):0;if(!l||b>=l)return n;var S=(l-b)/2;return bu(nu(S),m)+n+bu(ou(S),m)}function YN(n,l,m){n=mt(n),l=Ue(l);var b=l?jl(n):0;return l&&b<l?n+bu(l-b,m):n}function VN(n,l,m){n=mt(n),l=Ue(l);var b=l?jl(n):0;return l&&b<l?bu(l-b,m)+n:n}function XN(n,l,m){return m||l==null?l=0:l&&(l=+l),tR(mt(n).replace(zh,""),l||0)}function ZN(n,l,m){return(m?jr(n,l,m):l===e)?l=1:l=Ue(l),bb(mt(n),l)}function qN(){var n=arguments,l=mt(n[0]);return n.length<3?l:l.replace(n[1],n[2])}var jN=os(function(n,l,m){return n+(m?"_":"")+l.toLowerCase()});function JN(n,l,m){return m&&typeof m!="number"&&jr(n,l,m)&&(l=m=e),m=m===e?ue:m>>>0,m?(n=mt(n),n&&(typeof l=="string"||l!=null&&!$b(l))&&(l=So(l),!l&&ql(n))?ea(hn(n),0,m):n.split(l,m)):[]}var QN=os(function(n,l,m){return n+(m?" ":"")+Gb(l)});function e8(n,l,m){return n=mt(n),m=m==null?0:Va(Ue(m),0,n.length),l=So(l),n.slice(m,m+l.length)==l}function t8(n,l,m){var b=C.templateSettings;m&&jr(n,l,m)&&(l=e),n=mt(n),l=ku({},l,b,Zw);var S=ku({},l.imports,b.imports,Zw),k=vr(S),D=eb(S,k),O,$,Q=0,ee=l.interpolate||Um,ie="__p += '",fe=rb((l.escape||Um).source+"|"+ee.source+"|"+(ee===b0?DP:Um).source+"|"+(l.evaluate||Um).source+"|$","g"),we="//# sourceURL="+(bt.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++dL+"]")+`
4
+ `;n.replace(fe,function(Me,qe,rt,Co,Jr,Io){return rt||(rt=Co),ie+=n.slice(Q,Io).replace(HP,ML),qe&&(O=!0,ie+=`' +
5
+ __e(`+qe+`) +
6
+ '`),Jr&&($=!0,ie+=`';
7
+ `+Jr+`;
8
+ __p += '`),rt&&(ie+=`' +
9
+ ((__t = (`+rt+`)) == null ? '' : __t) +
10
+ '`),Q=Io+Me.length,Me}),ie+=`';
11
+ `;var ke=bt.call(l,"variable")&&l.variable;if(!ke)ie=`with (obj) {
12
+ `+ie+`
13
+ }
14
+ `;else if(LP.test(ke))throw new Oe(a);ie=($?ie.replace(hP,""):ie).replace(bP,"$1").replace(xP,"$1;"),ie="function("+(ke||"obj")+`) {
15
+ `+(ke?"":`obj || (obj = {});
16
+ `)+"var __t, __p = ''"+(O?", __e = _.escape":"")+($?`, __j = Array.prototype.join;
17
+ function print() { __p += __j.call(arguments, '') }
18
+ `:`;
19
+ `)+ie+`return __p
20
+ }`;var Ge=H1(function(){return ct(k,we+"return "+ie).apply(e,D)});if(Ge.source=ie,zb(Ge))throw Ge;return Ge}function r8(n){return mt(n).toLowerCase()}function o8(n){return mt(n).toUpperCase()}function n8(n,l,m){if(n=mt(n),n&&(m||l===e))return q0(n);if(!n||!(l=So(l)))return n;var b=hn(n),S=hn(l),k=j0(b,S),D=J0(b,S)+1;return ea(b,k,D).join("")}function i8(n,l,m){if(n=mt(n),n&&(m||l===e))return n.slice(0,ew(n)+1);if(!n||!(l=So(l)))return n;var b=hn(n),S=J0(b,hn(l))+1;return ea(b,0,S).join("")}function a8(n,l,m){if(n=mt(n),n&&(m||l===e))return n.replace(zh,"");if(!n||!(l=So(l)))return n;var b=hn(n),S=j0(b,hn(l));return ea(b,S).join("")}function l8(n,l){var m=B,b=Z;if(Ht(l)){var S="separator"in l?l.separator:S;m="length"in l?Ue(l.length):m,b="omission"in l?So(l.omission):b}n=mt(n);var k=n.length;if(ql(n)){var D=hn(n);k=D.length}if(m>=k)return n;var O=m-jl(b);if(O<1)return b;var $=D?ea(D,0,O).join(""):n.slice(0,O);if(S===e)return $+b;if(D&&(O+=$.length-O),$b(S)){if(n.slice(O).search(S)){var Q,ee=$;for(S.global||(S=rb(S.source,mt(x0.exec(S))+"g")),S.lastIndex=0;Q=S.exec(ee);)var ie=Q.index;$=$.slice(0,ie===e?O:ie)}}else if(n.indexOf(So(S),O)!=O){var fe=$.lastIndexOf(S);fe>-1&&($=$.slice(0,fe))}return $+b}function s8(n){return n=mt(n),n&&vP.test(n)?n.replace(g0,FL):n}var c8=os(function(n,l,m){return n+(m?" ":"")+l.toUpperCase()}),Gb=Uw("toUpperCase");function $1(n,l,m){return n=mt(n),l=m?e:l,l===e?LL(n)?$L(n):SL(n):n.match(l)||[]}var H1=Ke(function(n,l){try{return Eo(n,e,l)}catch(m){return zb(m)?m:new Oe(m)}}),d8=si(function(n,l){return No(l,function(m){m=Gn(m),ai(n,m,Fb(n[m],n))}),n});function m8(n){var l=n==null?0:n.length,m=Ae();return n=l?Ft(n,function(b){if(typeof b[1]!="function")throw new Oo(i);return[m(b[0]),b[1]]}):[],Ke(function(b){for(var S=-1;++S<l;){var k=n[S];if(Eo(k[0],this,b))return Eo(k[1],this,b)}})}function u8(n){return FR(Bo(n,p))}function Wb(n){return function(){return n}}function p8(n,l){return n==null||n!==n?l:n}var f8=Ww(),g8=Ww(!0);function co(n){return n}function Kb(n){return yw(typeof n=="function"?n:Bo(n,p))}function h8(n){return ww(Bo(n,p))}function b8(n,l){return Sw(n,Bo(l,p))}var x8=Ke(function(n,l){return function(m){return Vc(m,n,l)}}),v8=Ke(function(n,l){return function(m){return Vc(n,m,l)}});function Yb(n,l,m){var b=vr(l),S=du(l,b);m==null&&!(Ht(l)&&(S.length||!b.length))&&(m=l,l=n,n=this,S=du(l,vr(l)));var k=!(Ht(m)&&"chain"in m)||!!m.chain,D=di(n);return No(S,function(O){var $=l[O];n[O]=$,D&&(n.prototype[O]=function(){var Q=this.__chain__;if(k||Q){var ee=n(this.__wrapped__),ie=ee.__actions__=ao(this.__actions__);return ie.push({func:$,args:arguments,thisArg:n}),ee.__chain__=Q,ee}return $.apply(n,Vi([this.value()],arguments))})}),n}function y8(){return xr._===this&&(xr._=YL),this}function Vb(){}function E8(n){return n=Ue(n),Ke(function(l){return Tw(l,n)})}var w8=Tb(Ft),S8=Tb(K0),T8=Tb(Zh);function U1(n){return Pb(n)?qh(Gn(n)):eD(n)}function C8(n){return function(l){return n==null?e:Xa(n,l)}}var I8=Yw(),_8=Yw(!0);function Xb(){return[]}function Zb(){return!1}function A8(){return{}}function k8(){return""}function M8(){return!0}function P8(n,l){if(n=Ue(n),n<1||n>Se)return[];var m=ue,b=Dr(n,ue);l=Ae(l),n-=ue;for(var S=Qh(b,l);++m<n;)l(m);return S}function L8(n){return Be(n)?Ft(n,Gn):To(n)?[n]:ao(s1(mt(n)))}function R8(n){var l=++WL;return mt(n)+l}var D8=hu(function(n,l){return n+l},0),N8=Cb("ceil"),O8=hu(function(n,l){return n/l},1),F8=Cb("floor");function B8(n){return n&&n.length?cu(n,co,db):e}function z8(n,l){return n&&n.length?cu(n,Ae(l,2),db):e}function $8(n){return X0(n,co)}function H8(n,l){return X0(n,Ae(l,2))}function U8(n){return n&&n.length?cu(n,co,fb):e}function G8(n,l){return n&&n.length?cu(n,Ae(l,2),fb):e}var W8=hu(function(n,l){return n*l},1),K8=Cb("round"),Y8=hu(function(n,l){return n-l},0);function V8(n){return n&&n.length?Jh(n,co):0}function X8(n,l){return n&&n.length?Jh(n,Ae(l,2)):0}return C.after=h4,C.ary=v1,C.assign=oN,C.assignIn=R1,C.assignInWith=ku,C.assignWith=nN,C.at=iN,C.before=y1,C.bind=Fb,C.bindAll=d8,C.bindKey=E1,C.castArray=A4,C.chain=h1,C.chunk=FD,C.compact=BD,C.concat=zD,C.cond=m8,C.conforms=u8,C.constant=Wb,C.countBy=V6,C.create=aN,C.curry=w1,C.curryRight=S1,C.debounce=T1,C.defaults=lN,C.defaultsDeep=sN,C.defer=b4,C.delay=x4,C.difference=$D,C.differenceBy=HD,C.differenceWith=UD,C.drop=GD,C.dropRight=WD,C.dropRightWhile=KD,C.dropWhile=YD,C.fill=VD,C.filter=Z6,C.flatMap=J6,C.flatMapDeep=Q6,C.flatMapDepth=e4,C.flatten=u1,C.flattenDeep=XD,C.flattenDepth=ZD,C.flip=v4,C.flow=f8,C.flowRight=g8,C.fromPairs=qD,C.functions=gN,C.functionsIn=hN,C.groupBy=t4,C.initial=JD,C.intersection=QD,C.intersectionBy=e6,C.intersectionWith=t6,C.invert=xN,C.invertBy=vN,C.invokeMap=o4,C.iteratee=Kb,C.keyBy=n4,C.keys=vr,C.keysIn=so,C.map=Su,C.mapKeys=EN,C.mapValues=wN,C.matches=h8,C.matchesProperty=b8,C.memoize=Cu,C.merge=SN,C.mergeWith=D1,C.method=x8,C.methodOf=v8,C.mixin=Yb,C.negate=Iu,C.nthArg=E8,C.omit=TN,C.omitBy=CN,C.once=y4,C.orderBy=i4,C.over=w8,C.overArgs=E4,C.overEvery=S8,C.overSome=T8,C.partial=Bb,C.partialRight=C1,C.partition=a4,C.pick=IN,C.pickBy=N1,C.property=U1,C.propertyOf=C8,C.pull=i6,C.pullAll=f1,C.pullAllBy=a6,C.pullAllWith=l6,C.pullAt=s6,C.range=I8,C.rangeRight=_8,C.rearg=w4,C.reject=c4,C.remove=c6,C.rest=S4,C.reverse=Nb,C.sampleSize=m4,C.set=AN,C.setWith=kN,C.shuffle=u4,C.slice=d6,C.sortBy=g4,C.sortedUniq=b6,C.sortedUniqBy=x6,C.split=JN,C.spread=T4,C.tail=v6,C.take=y6,C.takeRight=E6,C.takeRightWhile=w6,C.takeWhile=S6,C.tap=B6,C.throttle=C4,C.thru=wu,C.toArray=M1,C.toPairs=O1,C.toPairsIn=F1,C.toPath=L8,C.toPlainObject=L1,C.transform=MN,C.unary=I4,C.union=T6,C.unionBy=C6,C.unionWith=I6,C.uniq=_6,C.uniqBy=A6,C.uniqWith=k6,C.unset=PN,C.unzip=Ob,C.unzipWith=g1,C.update=LN,C.updateWith=RN,C.values=as,C.valuesIn=DN,C.without=M6,C.words=$1,C.wrap=_4,C.xor=P6,C.xorBy=L6,C.xorWith=R6,C.zip=D6,C.zipObject=N6,C.zipObjectDeep=O6,C.zipWith=F6,C.entries=O1,C.entriesIn=F1,C.extend=R1,C.extendWith=ku,Yb(C,C),C.add=D8,C.attempt=H1,C.camelCase=BN,C.capitalize=B1,C.ceil=N8,C.clamp=NN,C.clone=k4,C.cloneDeep=P4,C.cloneDeepWith=L4,C.cloneWith=M4,C.conformsTo=R4,C.deburr=z1,C.defaultTo=p8,C.divide=O8,C.endsWith=zN,C.eq=xn,C.escape=$N,C.escapeRegExp=HN,C.every=X6,C.find=q6,C.findIndex=d1,C.findKey=cN,C.findLast=j6,C.findLastIndex=m1,C.findLastKey=dN,C.floor=F8,C.forEach=b1,C.forEachRight=x1,C.forIn=mN,C.forInRight=uN,C.forOwn=pN,C.forOwnRight=fN,C.get=Hb,C.gt=D4,C.gte=N4,C.has=bN,C.hasIn=Ub,C.head=p1,C.identity=co,C.includes=r4,C.indexOf=jD,C.inRange=ON,C.invoke=yN,C.isArguments=ja,C.isArray=Be,C.isArrayBuffer=O4,C.isArrayLike=lo,C.isArrayLikeObject=Jt,C.isBoolean=F4,C.isBuffer=ta,C.isDate=B4,C.isElement=z4,C.isEmpty=$4,C.isEqual=H4,C.isEqualWith=U4,C.isError=zb,C.isFinite=G4,C.isFunction=di,C.isInteger=I1,C.isLength=_u,C.isMap=_1,C.isMatch=W4,C.isMatchWith=K4,C.isNaN=Y4,C.isNative=V4,C.isNil=Z4,C.isNull=X4,C.isNumber=A1,C.isObject=Ht,C.isObjectLike=Vt,C.isPlainObject=Qc,C.isRegExp=$b,C.isSafeInteger=q4,C.isSet=k1,C.isString=Au,C.isSymbol=To,C.isTypedArray=is,C.isUndefined=j4,C.isWeakMap=J4,C.isWeakSet=Q4,C.join=r6,C.kebabCase=UN,C.last=$o,C.lastIndexOf=o6,C.lowerCase=GN,C.lowerFirst=WN,C.lt=eN,C.lte=tN,C.max=B8,C.maxBy=z8,C.mean=$8,C.meanBy=H8,C.min=U8,C.minBy=G8,C.stubArray=Xb,C.stubFalse=Zb,C.stubObject=A8,C.stubString=k8,C.stubTrue=M8,C.multiply=W8,C.nth=n6,C.noConflict=y8,C.noop=Vb,C.now=Tu,C.pad=KN,C.padEnd=YN,C.padStart=VN,C.parseInt=XN,C.random=FN,C.reduce=l4,C.reduceRight=s4,C.repeat=ZN,C.replace=qN,C.result=_N,C.round=K8,C.runInContext=z,C.sample=d4,C.size=p4,C.snakeCase=jN,C.some=f4,C.sortedIndex=m6,C.sortedIndexBy=u6,C.sortedIndexOf=p6,C.sortedLastIndex=f6,C.sortedLastIndexBy=g6,C.sortedLastIndexOf=h6,C.startCase=QN,C.startsWith=e8,C.subtract=Y8,C.sum=V8,C.sumBy=X8,C.template=t8,C.times=P8,C.toFinite=mi,C.toInteger=Ue,C.toLength=P1,C.toLower=r8,C.toNumber=Ho,C.toSafeInteger=rN,C.toString=mt,C.toUpper=o8,C.trim=n8,C.trimEnd=i8,C.trimStart=a8,C.truncate=l8,C.unescape=s8,C.uniqueId=R8,C.upperCase=c8,C.upperFirst=Gb,C.each=b1,C.eachRight=x1,C.first=p1,Yb(C,function(){var n={};return Hn(C,function(l,m){bt.call(C.prototype,m)||(n[m]=l)}),n}(),{chain:!1}),C.VERSION=t,No(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){C[n].placeholder=C}),No(["drop","take"],function(n,l){Qe.prototype[n]=function(m){m=m===e?1:pr(Ue(m),0);var b=this.__filtered__&&!l?new Qe(this):this.clone();return b.__filtered__?b.__takeCount__=Dr(m,b.__takeCount__):b.__views__.push({size:Dr(m,ue),type:n+(b.__dir__<0?"Right":"")}),b},Qe.prototype[n+"Right"]=function(m){return this.reverse()[n](m).reverse()}}),No(["filter","map","takeWhile"],function(n,l){var m=l+1,b=m==de||m==se;Qe.prototype[n]=function(S){var k=this.clone();return k.__iteratees__.push({iteratee:Ae(S,3),type:m}),k.__filtered__=k.__filtered__||b,k}}),No(["head","last"],function(n,l){var m="take"+(l?"Right":"");Qe.prototype[n]=function(){return this[m](1).value()[0]}}),No(["initial","tail"],function(n,l){var m="drop"+(l?"":"Right");Qe.prototype[n]=function(){return this.__filtered__?new Qe(this):this[m](1)}}),Qe.prototype.compact=function(){return this.filter(co)},Qe.prototype.find=function(n){return this.filter(n).head()},Qe.prototype.findLast=function(n){return this.reverse().find(n)},Qe.prototype.invokeMap=Ke(function(n,l){return typeof n=="function"?new Qe(this):this.map(function(m){return Vc(m,n,l)})}),Qe.prototype.reject=function(n){return this.filter(Iu(Ae(n)))},Qe.prototype.slice=function(n,l){n=Ue(n);var m=this;return m.__filtered__&&(n>0||l<0)?new Qe(m):(n<0?m=m.takeRight(-n):n&&(m=m.drop(n)),l!==e&&(l=Ue(l),m=l<0?m.dropRight(-l):m.take(l-n)),m)},Qe.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Qe.prototype.toArray=function(){return this.take(ue)},Hn(Qe.prototype,function(n,l){var m=/^(?:filter|find|map|reject)|While$/.test(l),b=/^(?:head|last)$/.test(l),S=C[b?"take"+(l=="last"?"Right":""):l],k=b||/^find/.test(l);S&&(C.prototype[l]=function(){var D=this.__wrapped__,O=b?[1]:arguments,$=D instanceof Qe,Q=O[0],ee=$||Be(D),ie=function(qe){var rt=S.apply(C,Vi([qe],O));return b&&fe?rt[0]:rt};ee&&m&&typeof Q=="function"&&Q.length!=1&&($=ee=!1);var fe=this.__chain__,we=!!this.__actions__.length,ke=k&&!fe,Ge=$&&!we;if(!k&&ee){D=Ge?D:new Qe(this);var Me=n.apply(D,O);return Me.__actions__.push({func:wu,args:[ie],thisArg:e}),new Fo(Me,fe)}return ke&&Ge?n.apply(this,O):(Me=this.thru(ie),ke?b?Me.value()[0]:Me.value():Me)})}),No(["pop","push","shift","sort","splice","unshift"],function(n){var l=Xm[n],m=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",b=/^(?:pop|shift)$/.test(n);C.prototype[n]=function(){var S=arguments;if(b&&!this.__chain__){var k=this.value();return l.apply(Be(k)?k:[],S)}return this[m](function(D){return l.apply(Be(D)?D:[],S)})}}),Hn(Qe.prototype,function(n,l){var m=C[l];if(m){var b=m.name+"";bt.call(es,b)||(es[b]=[]),es[b].push({name:l,func:m})}}),es[gu(e,E).name]=[{name:"wrapper",func:e}],Qe.prototype.clone=sR,Qe.prototype.reverse=cR,Qe.prototype.value=dR,C.prototype.at=z6,C.prototype.chain=$6,C.prototype.commit=H6,C.prototype.next=U6,C.prototype.plant=W6,C.prototype.reverse=K6,C.prototype.toJSON=C.prototype.valueOf=C.prototype.value=Y6,C.prototype.first=C.prototype.head,$c&&(C.prototype[$c]=G6),C},Zi=HL();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(xr._=Zi,define(function(){return Zi})):Ga?((Ga.exports=Zi)._=Zi,Kh._=Zi):xr._=Zi}).call(_c)});v();var Ch=w(J(),1);v();var gf=w(J(),1);v();v();v();v();var tr=w(J(),1);v();var rO=0;function eI(e,t){let r=`atom${++rO}`,o={toString:()=>r};return typeof e=="function"?o.read=e:(o.init=e,o.read=i=>i(o),o.write=(i,a,s)=>a(o,typeof s=="function"?s(i(o)):s)),t&&(o.write=t),o}var ha=Symbol(),mv=e=>!!e[ha],rf=e=>!e[ha].c,Od=e=>{var t;let{b:r,c:o}=e[ha];o&&(o(),(t=nO.get(r))==null||t())},nf=(e,t)=>{let r=e[ha].o,o=t[ha].o;return r===o||e===o||mv(r)&&nf(r,t)},uv=(e,t)=>{let r={b:e,o:t,c:null},o=new Promise(i=>{r.c=()=>{r.c=null,i()},t.finally(r.c)});return o[ha]=r,o},oO=e=>uv(e[ha].b,e[ha].o),nO=new WeakMap;var of=e=>"init"in e,Fd="r",af="w",Bd="c",lf="s",tI="h",iO="n",aO="l",lO="a",sO="m",rI=e=>{let t=new WeakMap,r=new WeakMap,o=new Map,i,a;if((_&&_.MODE)!=="production"&&(i=new Set,a=new Set),e)for(let[H,Y]of e){let le={v:Y,r:0,y:!0,d:new Map};(_&&_.MODE)!=="production"&&(Object.freeze(le),of(H)||console.warn("Found initial value for derived atom which can cause unexpected behavior",H)),t.set(H,le)}let s=new WeakMap,c=(H,Y,le)=>{let oe=s.get(Y);oe||(oe=new Map,s.set(Y,oe)),le.then(()=>{oe.get(H)===le&&(oe.delete(H),oe.size||s.delete(Y))}),oe.set(H,le)},d=H=>{let Y=new Set,le=s.get(H);return le&&(s.delete(H),le.forEach((oe,ne)=>{Od(oe),Y.add(ne)})),Y},p=new WeakMap,f=H=>{let Y=p.get(H);return Y||(Y=new Map,p.set(H,Y)),Y},u=(H,Y)=>{if(H){let le=f(H),oe=le.get(Y);return oe||(oe=u(H.p,Y),oe&&"p"in oe&&rf(oe.p)&&(oe=void 0),oe&&le.set(Y,oe)),oe}return t.get(Y)},g=(H,Y,le)=>{if((_&&_.MODE)!=="production"&&Object.freeze(le),H)f(H).set(Y,le);else{let oe=t.get(Y);t.set(Y,le),o.has(Y)||o.set(Y,oe)}},h=(H,Y=new Map,le)=>{if(!le)return Y;let oe=new Map,ne=!1;return le.forEach(ce=>{var pe;let ye=((pe=u(H,ce))==null?void 0:pe.r)||0;oe.set(ce,ye),Y.get(ce)!==ye&&(ne=!0)}),Y.size===oe.size&&!ne?Y:oe},x=(H,Y,le,oe,ne)=>{let ce=u(H,Y);if(ce){if(ne&&(!("p"in ce)||!nf(ce.p,ne)))return ce;"p"in ce&&Od(ce.p)}let pe={v:le,r:ce?.r||0,y:!0,d:h(H,ce?.d,oe)},ye=!ce?.y;return!ce||!("v"in ce)||!Object.is(ce.v,le)?(ye=!0,++pe.r,pe.d.has(Y)&&(pe.d=new Map(pe.d).set(Y,pe.r))):pe.d!==ce.d&&(pe.d.size!==ce.d.size||!Array.from(pe.d.keys()).every(Tt=>ce.d.has(Tt)))&&(ye=!0,Promise.resolve().then(()=>{xe(H)})),ce&&!ye?ce:(g(H,Y,pe),pe)},E=(H,Y,le,oe,ne)=>{let ce=u(H,Y);if(ce){if(ne&&(!("p"in ce)||!nf(ce.p,ne)))return ce;"p"in ce&&Od(ce.p)}let pe={e:le,r:(ce?.r||0)+1,y:!0,d:h(H,ce?.d,oe)};return g(H,Y,pe),pe},T=(H,Y,le,oe)=>{let ne=u(H,Y);if(ne&&"p"in ne){if(nf(ne.p,le)&&!rf(ne.p))return ne.y?ne:{...ne,y:!0};Od(ne.p)}c(H,Y,le);let ce={p:le,r:(ne?.r||0)+1,y:!0,d:h(H,ne?.d,oe)};return g(H,Y,ce),ce},M=(H,Y,le,oe)=>{if(le instanceof Promise){let ne=uv(le,le.then(ce=>{x(H,Y,ce,oe,ne)}).catch(ce=>{if(ce instanceof Promise)return mv(ce)?ce.then(()=>{A(H,Y,!0)}):ce;E(H,Y,ce,oe,ne)}));return T(H,Y,ne,oe)}return x(H,Y,le,oe)},I=(H,Y)=>{let le=u(H,Y);if(le){let oe={...le,y:!1};g(H,Y,oe)}else(_&&_.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",Y)},A=(H,Y,le)=>{if(!le){let ne=u(H,Y);if(ne){if(ne.y&&"p"in ne&&!rf(ne.p))return ne;if(ne.d.forEach((ce,pe)=>{if(pe!==Y)if(!r.has(pe))A(H,pe);else{let ye=u(H,pe);ye&&!ye.y&&A(H,pe)}}),Array.from(ne.d).every(([ce,pe])=>{let ye=u(H,ce);return ye&&!("p"in ye)&&ye.r===pe}))return ne.y?ne:{...ne,y:!0}}}let oe=new Set;try{let ne=Y.read(ce=>{oe.add(ce);let pe=ce===Y?u(H,ce):A(H,ce);if(pe){if("e"in pe)throw pe.e;if("p"in pe)throw pe.p;return pe.v}if(of(ce))return ce.init;throw new Error("no atom init")});return M(H,Y,ne,oe)}catch(ne){if(ne instanceof Promise){let ce=mv(ne)&&rf(ne)?oO(ne):uv(ne,ne);return T(H,Y,ce,oe)}return E(H,Y,ne,oe)}},N=(H,Y)=>A(Y,H),U=(H,Y)=>{let le=r.get(Y);return le||(le=de(H,Y)),le},R=(H,Y)=>!Y.l.size&&(!Y.t.size||Y.t.size===1&&Y.t.has(H)),F=(H,Y)=>{let le=r.get(Y);le&&R(Y,le)&&W(H,Y)},B=(H,Y)=>{let le=r.get(Y);le?.t.forEach(oe=>{oe!==Y&&(I(H,oe),B(H,oe))})},Z=(H,Y,le)=>{let oe=!0,ne=(ye,Tt)=>{let vt=A(H,ye);if("e"in vt)throw vt.e;if("p"in vt){if(Tt?.unstable_promise)return vt.p.then(()=>{let At=u(H,ye);return At&&"p"in At&&At.p===vt.p?new Promise(ht=>setTimeout(ht)).then(()=>ne(ye,Tt)):ne(ye,Tt)});throw(_&&_.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",ye),vt.p}if("v"in vt)return vt.v;throw(_&&_.MODE)!=="production"&&console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",ye),new Error("no value found")},ce=(ye,Tt)=>{let vt;if(ye===Y){if(!of(ye))throw new Error("atom not writable");d(ye).forEach(mr=>{mr!==H&&M(mr,ye,Tt)});let ht=u(H,ye),Ot=M(H,ye,Tt);ht!==Ot&&B(H,ye)}else vt=Z(H,ye,Tt);return oe||xe(H),vt},pe=Y.write(ne,ce,le);return oe=!1,pe},G=(H,Y,le)=>{let oe=Z(le,H,Y);return xe(le),oe},te=H=>!!H.write,de=(H,Y,le)=>{let oe={t:new Set(le&&[le]),l:new Set};if(r.set(Y,oe),(_&&_.MODE)!=="production"&&a.add(Y),A(void 0,Y).d.forEach((ce,pe)=>{let ye=r.get(pe);ye?ye.t.add(Y):pe!==Y&&de(H,pe,Y)}),te(Y)&&Y.onMount){let ce=ye=>G(Y,ye,H),pe=Y.onMount(ce);H=void 0,pe&&(oe.u=pe)}return oe},W=(H,Y)=>{var le;let oe=(le=r.get(Y))==null?void 0:le.u;oe&&oe(),r.delete(Y),(_&&_.MODE)!=="production"&&a.delete(Y);let ne=u(H,Y);ne?("p"in ne&&Od(ne.p),ne.d.forEach((ce,pe)=>{if(pe!==Y){let ye=r.get(pe);ye&&(ye.t.delete(Y),R(pe,ye)&&W(H,pe))}})):(_&&_.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",Y)},se=(H,Y,le,oe)=>{let ne=new Set(le.d.keys());oe?.forEach((ce,pe)=>{if(ne.has(pe)){ne.delete(pe);return}let ye=r.get(pe);ye&&(ye.t.delete(Y),R(pe,ye)&&W(H,pe))}),ne.forEach(ce=>{let pe=r.get(ce);pe?pe.t.add(Y):r.has(Y)&&de(H,ce,Y)})},xe=H=>{if(H){f(H).forEach((le,oe)=>{let ne=t.get(oe);if(le!==ne){let ce=r.get(oe);ce?.l.forEach(pe=>pe(H))}});return}for(;o.size;){let Y=Array.from(o);o.clear(),Y.forEach(([le,oe])=>{let ne=u(void 0,le);if(ne&&ne.d!==oe?.d&&se(void 0,le,ne,oe?.d),oe&&!oe.y&&ne?.y)return;let ce=r.get(le);ce?.l.forEach(pe=>pe())})}(_&&_.MODE)!=="production"&&i.forEach(Y=>Y())},Se=H=>{f(H).forEach((le,oe)=>{let ne=t.get(oe);(!ne||le.r>ne.r||le.y!==ne.y||le.r===ne.r&&le.d!==ne.d)&&(t.set(oe,le),le.d!==ne?.d&&se(H,oe,le,ne?.d))})},Je=(H,Y)=>{Y&&Se(Y),xe(void 0)},Ee=(H,Y,le)=>{let ne=U(le,H).l;return ne.add(Y),()=>{ne.delete(Y),F(le,H)}},ue=(H,Y)=>{for(let[le,oe]of H)of(le)&&(M(Y,le,oe),B(Y,le));xe(Y)};return(_&&_.MODE)!=="production"?{[Fd]:N,[af]:G,[Bd]:Je,[lf]:Ee,[tI]:ue,[iO]:H=>(i.add(H),()=>{i.delete(H)}),[aO]:()=>a.values(),[lO]:H=>t.get(H),[sO]:H=>r.get(H)}:{[Fd]:N,[af]:G,[Bd]:Je,[lf]:Ee,[tI]:ue}},oI=e=>{let t=rI(e),r=s=>{let c=t[Fd](s);if("e"in c)throw c.e;if(!("p"in c))return c.v},o=s=>new Promise((c,d)=>{let p=t[Fd](s);"e"in p?d(p.e):"p"in p?c(p.p.then(()=>o(s))):c(p.v)});return{get:r,asyncGet:o,set:(s,c)=>t[af](s,c),sub:(s,c)=>t[lf](s,c),SECRET_INTERNAL_store:t}},nI=(e,t)=>({s:t?t(e).SECRET_INTERNAL_store:rI(e)}),dv=new Map,pv=e=>(dv.has(e)||dv.set(e,(0,tr.createContext)(nI())),dv.get(e)),sf=({children:e,initialValues:t,scope:r,unstable_createStore:o,unstable_enableVersionedWrite:i})=>{let[a,s]=(0,tr.useState)({});(0,tr.useEffect)(()=>{let p=c.current;p.w&&(p.s[Bd](null,a),delete a.p,p.v=a)},[a]);let c=(0,tr.useRef)();if(!c.current){let p=nI(t,o);if(i){let f=0;p.w=u=>{s(g=>{let h=f?g:{p:g};return u(h),h})},p.v=a,p.r=u=>{++f,u(),--f}}c.current=p}let d=pv(r);return(0,tr.createElement)(d.Provider,{value:c.current},e)};function wt(e,t){return eI(e,t)}function zd(e,t){let r=pv(t),o=(0,tr.useContext)(r),{s:i,v:a}=o,s=g=>{let h=i[Fd](e,g);if((_&&_.MODE)!=="production"&&!h.y)throw new Error("should not be invalidated");if("e"in h)throw h.e;if("p"in h)throw h.p;if("v"in h)return h.v;throw new Error("no atom value")},[[c,d,p],f]=(0,tr.useReducer)((g,h)=>{let x=s(h);return Object.is(g[1],x)&&g[2]===e?g:[h,x,e]},a,g=>{let h=s(g);return[g,h,e]}),u=d;return p!==e&&(f(c),u=s(c)),(0,tr.useEffect)(()=>{let{v:g}=o;g&&i[Bd](e,g);let h=i[lf](e,f,g);return f(g),h},[i,e,o]),(0,tr.useEffect)(()=>{i[Bd](e,c)}),(0,tr.useDebugValue)(u),u}function Ai(e,t){let r=pv(t),{s:o,w:i}=(0,tr.useContext)(r);return(0,tr.useCallback)(s=>{if((_&&_.MODE)!=="production"&&!("write"in e))throw new Error("not writable atom");let c=d=>o[af](e,s,d);return i?i(c):c()},[o,i,e])}function Ve(e,t){return"scope"in e&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),t=e.scope),[zd(e,t),Ai(e,t)]}var cO=w(J(),1),dt=Symbol(),zr=oI();var dO=W1({"./locales/ar-SA.json":()=>import("./excalidraw-assets/ar-SA-MV5ZQ2W5.js"),"./locales/az-AZ.json":()=>import("./excalidraw-assets/az-AZ-BK6PNAXT.js"),"./locales/bg-BG.json":()=>import("./excalidraw-assets/bg-BG-GCTBXIHZ.js"),"./locales/bn-BD.json":()=>import("./excalidraw-assets/bn-BD-QTMQMM2A.js"),"./locales/ca-ES.json":()=>import("./excalidraw-assets/ca-ES-CJKR7U4D.js"),"./locales/cs-CZ.json":()=>import("./excalidraw-assets/cs-CZ-E6RD7VRF.js"),"./locales/da-DK.json":()=>import("./excalidraw-assets/da-DK-GA7WAOB4.js"),"./locales/de-DE.json":()=>import("./excalidraw-assets/de-DE-WQGVYODE.js"),"./locales/el-GR.json":()=>import("./excalidraw-assets/el-GR-JRKZ7DCA.js"),"./locales/en.json":()=>import("./excalidraw-assets/en-6E7MYLWO.js"),"./locales/es-ES.json":()=>import("./excalidraw-assets/es-ES-NNAEPTPN.js"),"./locales/eu-ES.json":()=>import("./excalidraw-assets/eu-ES-UXVZRSMJ.js"),"./locales/fa-IR.json":()=>import("./excalidraw-assets/fa-IR-FFXQODN6.js"),"./locales/fi-FI.json":()=>import("./excalidraw-assets/fi-FI-FVRWY4PK.js"),"./locales/fr-FR.json":()=>import("./excalidraw-assets/fr-FR-YRAHLNH4.js"),"./locales/gl-ES.json":()=>import("./excalidraw-assets/gl-ES-O3MFXO2J.js"),"./locales/he-IL.json":()=>import("./excalidraw-assets/he-IL-UQHONTOV.js"),"./locales/hi-IN.json":()=>import("./excalidraw-assets/hi-IN-QGM3FMHS.js"),"./locales/hu-HU.json":()=>import("./excalidraw-assets/hu-HU-FW4UHMDU.js"),"./locales/id-ID.json":()=>import("./excalidraw-assets/id-ID-QOMISFYK.js"),"./locales/it-IT.json":()=>import("./excalidraw-assets/it-IT-NXPSTWVC.js"),"./locales/ja-JP.json":()=>import("./excalidraw-assets/ja-JP-Z7I24KT4.js"),"./locales/kaa.json":()=>import("./excalidraw-assets/kaa-TXMSCJDQ.js"),"./locales/kab-KAB.json":()=>import("./excalidraw-assets/kab-KAB-RJXRUTDO.js"),"./locales/kk-KZ.json":()=>import("./excalidraw-assets/kk-KZ-JXPULSST.js"),"./locales/km-KH.json":()=>import("./excalidraw-assets/km-KH-WRGO6AYW.js"),"./locales/ko-KR.json":()=>import("./excalidraw-assets/ko-KR-GAYOVASS.js"),"./locales/ku-TR.json":()=>import("./excalidraw-assets/ku-TR-DJF4NWRZ.js"),"./locales/lt-LT.json":()=>import("./excalidraw-assets/lt-LT-QQGY3S4X.js"),"./locales/lv-LV.json":()=>import("./excalidraw-assets/lv-LV-H55DY45V.js"),"./locales/mr-IN.json":()=>import("./excalidraw-assets/mr-IN-QYT2ELER.js"),"./locales/my-MM.json":()=>import("./excalidraw-assets/my-MM-RRPBSH5R.js"),"./locales/nb-NO.json":()=>import("./excalidraw-assets/nb-NO-AMX3MAHH.js"),"./locales/nl-NL.json":()=>import("./excalidraw-assets/nl-NL-LZSLKN37.js"),"./locales/nn-NO.json":()=>import("./excalidraw-assets/nn-NO-WWXPMJY7.js"),"./locales/oc-FR.json":()=>import("./excalidraw-assets/oc-FR-GPZCMCGX.js"),"./locales/pa-IN.json":()=>import("./excalidraw-assets/pa-IN-L5H3H4OA.js"),"./locales/percentages.json":()=>import("./excalidraw-assets/percentages-L6Y3A3ZS.js"),"./locales/pl-PL.json":()=>import("./excalidraw-assets/pl-PL-SYTLCLU7.js"),"./locales/pt-BR.json":()=>import("./excalidraw-assets/pt-BR-BJOSVXBP.js"),"./locales/pt-PT.json":()=>import("./excalidraw-assets/pt-PT-QHWDKICL.js"),"./locales/ro-RO.json":()=>import("./excalidraw-assets/ro-RO-AVSXCJHH.js"),"./locales/ru-RU.json":()=>import("./excalidraw-assets/ru-RU-5Z6AY4FG.js"),"./locales/si-LK.json":()=>import("./excalidraw-assets/si-LK-OMROCHR3.js"),"./locales/sk-SK.json":()=>import("./excalidraw-assets/sk-SK-TLXIBWPH.js"),"./locales/sl-SI.json":()=>import("./excalidraw-assets/sl-SI-JELDMWCI.js"),"./locales/sv-SE.json":()=>import("./excalidraw-assets/sv-SE-2FAONS47.js"),"./locales/ta-IN.json":()=>import("./excalidraw-assets/ta-IN-XN7DVSDK.js"),"./locales/th-TH.json":()=>import("./excalidraw-assets/th-TH-VCIYWJPR.js"),"./locales/tr-TR.json":()=>import("./excalidraw-assets/tr-TR-6QL6T7SM.js"),"./locales/uk-UA.json":()=>import("./excalidraw-assets/uk-UA-Y6YRBHAO.js"),"./locales/vi-VN.json":()=>import("./excalidraw-assets/vi-VN-34I6LTAE.js"),"./locales/zh-CN.json":()=>import("./excalidraw-assets/zh-CN-IGKEMUHO.js"),"./locales/zh-HK.json":()=>import("./excalidraw-assets/zh-HK-MDAU5TWB.js"),"./locales/zh-TW.json":()=>import("./excalidraw-assets/zh-TW-DOGEFI3C.js")});var mO=85,Kn={code:"en",label:"English"},Fs=[Kn,...[{code:"ar-SA",label:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",rtl:!0},{code:"bg-BG",label:"\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438"},{code:"ca-ES",label:"Catal\xE0"},{code:"cs-CZ",label:"\u010Cesky"},{code:"de-DE",label:"Deutsch"},{code:"el-GR",label:"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC"},{code:"es-ES",label:"Espa\xF1ol"},{code:"eu-ES",label:"Euskara"},{code:"fa-IR",label:"\u0641\u0627\u0631\u0633\u06CC",rtl:!0},{code:"fi-FI",label:"Suomi"},{code:"fr-FR",label:"Fran\xE7ais"},{code:"gl-ES",label:"Galego"},{code:"he-IL",label:"\u05E2\u05D1\u05E8\u05D9\u05EA",rtl:!0},{code:"hi-IN",label:"\u0939\u093F\u0928\u094D\u0926\u0940"},{code:"hu-HU",label:"Magyar"},{code:"id-ID",label:"Bahasa Indonesia"},{code:"it-IT",label:"Italiano"},{code:"ja-JP",label:"\u65E5\u672C\u8A9E"},{code:"kab-KAB",label:"Taqbaylit"},{code:"kk-KZ",label:"\u049A\u0430\u0437\u0430\u049B \u0442\u0456\u043B\u0456"},{code:"ko-KR",label:"\uD55C\uAD6D\uC5B4"},{code:"ku-TR",label:"Kurd\xEE"},{code:"lt-LT",label:"Lietuvi\u0173"},{code:"lv-LV",label:"Latvie\u0161u"},{code:"my-MM",label:"Burmese"},{code:"nb-NO",label:"Norsk bokm\xE5l"},{code:"nl-NL",label:"Nederlands"},{code:"nn-NO",label:"Norsk nynorsk"},{code:"oc-FR",label:"Occitan"},{code:"pa-IN",label:"\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40"},{code:"pl-PL",label:"Polski"},{code:"pt-BR",label:"Portugu\xEAs Brasileiro"},{code:"pt-PT",label:"Portugu\xEAs"},{code:"ro-RO",label:"Rom\xE2n\u0103"},{code:"ru-RU",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{code:"sk-SK",label:"Sloven\u010Dina"},{code:"sv-SE",label:"Svenska"},{code:"sl-SI",label:"Sloven\u0161\u010Dina"},{code:"tr-TR",label:"T\xFCrk\xE7e"},{code:"uk-UA",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},{code:"zh-CN",label:"\u7B80\u4F53\u4E2D\u6587"},{code:"zh-TW",label:"\u7E41\u9AD4\u4E2D\u6587"},{code:"vi-VN",label:"Ti\u1EBFng Vi\u1EC7t"},{code:"mr-IN",label:"\u092E\u0930\u093E\u0920\u0940"}].filter(e=>Y1[e.code]>=mO).sort((e,t)=>e.label>t.label?1:-1)],df="__test__";_.DEV&&Fs.unshift({code:df,label:"test language"},{code:`${df}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var Os=Kn,cf={},mf=async e=>{if(Os=e,document.documentElement.dir=Os.rtl?"rtl":"ltr",document.documentElement.lang=Os.code,e.code.startsWith(df))cf={};else try{cf=await dO(`./locales/${Os.code}.json`)}catch(t){console.error(`Failed to load language ${e.code}:`,t.message),cf=qb}zr.set(aI,e.code)},ki=()=>Os,iI=(e,t)=>{for(let r=0;r<t.length;++r){let o=t[r];if(e[o]===void 0)return;e=e[o]}if(typeof e=="string")return e},y=(e,t,r)=>{if(Os.code.startsWith(df))return`\u202A[[${t?`${e}(${JSON.stringify(t).slice(1,-1)})`:e}]]\u202C`;let o=e.split("."),i=iI(cf,o)||iI(qb,o)||r;if(i===void 0){let a=`Can't find translation for ${e}`;if(_.PROD)return console.warn(a),"";throw new Error(a)}if(t)for(let a in t)i=i.replace(`{{${a}}}`,String(t[a]));return i},aI=wt(Kn.code),nr=()=>{let e=zd(aI,dt);return{t:y,langCode:e}};var pf=w(J(),1);v();var lI=w(J(),1);var uf=w(P(),1),uO=({size:e="1em",circleWidth:t=8,synchronized:r=!1})=>{let i=-(lI.default.useRef(Date.now()).current%1600);return(0,uf.jsx)("div",{className:"Spinner",children:(0,uf.jsx)("svg",{viewBox:"0 0 100 100",style:{width:e,height:e,"--spinner-delay":r?`${i}ms`:0},children:(0,uf.jsx)("circle",{cx:"50",cy:"50",r:50-t/2,strokeWidth:t,fill:"none",strokeMiterlimit:"10"})})})},kr=uO;var Bs=w(P(),1),ff=({delay:e,theme:t})=>{let[r,o]=(0,pf.useState)(!!e);return(0,pf.useEffect)(()=>{if(!e)return;let i=setTimeout(()=>{o(!1)},e);return()=>clearTimeout(i)},[e]),r?null:(0,Bs.jsxs)("div",{className:j("LoadingMessage",{"LoadingMessage--dark":t===$e.DARK}),children:[(0,Bs.jsx)("div",{children:(0,Bs.jsx)(kr,{})}),(0,Bs.jsx)("div",{className:"LoadingMessage-text",children:y("labels.loadingScene")})]})};var cI=w(P(),1),sI=e=>{let[t,r]=(0,gf.useState)(!0);return(0,gf.useEffect)(()=>{let o=async()=>{await mf(i),r(!1)},i=Fs.find(a=>a.code===e.langCode)||Kn;o()},[e.langCode]),t?(0,cI.jsx)(ff,{theme:e.theme}):e.children};v();var dr=w(J(),1),xh=w(Yn(),1);v();v();v();var kn=w(J(),1);var Jo=w(P(),1),Ie=kn.default.forwardRef((e,t)=>{let{id:r}=Er(),o=kn.default.useRef(null);kn.default.useImperativeHandle(t,()=>o.current);let i=`ToolIcon_size_${e.size}`,[a,s]=(0,kn.useState)(!1),c=(0,kn.useRef)(!0),d=async f=>{let u="onClick"in e&&e.onClick?.(f);if(cs(u))try{s(!0),await u}catch(g){if(g instanceof us)console.warn(g);else throw g}finally{c.current&&s(!1)}};(0,kn.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]);let p=(0,kn.useRef)(null);if(e.type==="button"||e.type==="icon"||e.type==="submit"){let f=e.type==="icon"?"button":e.type;return(0,Jo.jsxs)("button",{className:j("ToolIcon_type_button",i,e.className,e.visible&&!e.hidden?"ToolIcon_type_button--show":"ToolIcon_type_button--hide",{ToolIcon:!e.hidden,"ToolIcon--selected":e.selected,"ToolIcon--plain":e.type==="icon"}),style:e.style,"data-testid":e["data-testid"],hidden:e.hidden,title:e.title,"aria-label":e["aria-label"],type:f,onClick:d,ref:o,disabled:a||e.isLoading||!!e.disabled,children:[(e.icon||e.label)&&(0,Jo.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true","aria-disabled":!!e.disabled,children:[e.icon||e.label,e.keyBindingLabel&&(0,Jo.jsx)("span",{className:"ToolIcon__keybinding",children:e.keyBindingLabel}),e.isLoading&&(0,Jo.jsx)(kr,{})]}),e.showAriaLabel&&(0,Jo.jsxs)("div",{className:"ToolIcon__label",children:[e["aria-label"]," ",a&&(0,Jo.jsx)(kr,{})]}),e.children]})}return(0,Jo.jsxs)("label",{className:j("ToolIcon",e.className),title:e.title,onPointerDown:f=>{p.current=f.pointerType||null,e.onPointerDown?.({pointerType:f.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{p.current=null})},children:[(0,Jo.jsx)("input",{className:`ToolIcon_type_radio ${i}`,type:"radio",name:e.name,"aria-label":e["aria-label"],"aria-keyshortcuts":e["aria-keyshortcuts"],"data-testid":e["data-testid"],id:`${r}-${e.id}`,onChange:()=>{e.onChange?.({pointerType:p.current})},checked:e.checked,ref:o}),(0,Jo.jsxs)("div",{className:"ToolIcon__icon",children:[e.icon,e.keyBindingLabel&&(0,Jo.jsx)("span",{className:"ToolIcon__keybinding",children:e.keyBindingLabel})]})]})});Ie.defaultProps={visible:!0,className:"",size:"medium"};Ie.displayName="ToolButton";var uI=w(P(),1),pO=(e,t)=>{let r=new Set(ze(e.filter(o=>He(o)),t).map(o=>o.id));return{elements:e.map(o=>t.selectedElementIds[o.id]?Re(o,{isDeleted:!0}):o.frameId&&r.has(o.frameId)?Re(o,{isDeleted:!0}):yr(o)&&t.selectedElementIds[o.containerId]?Re(o,{isDeleted:!0}):o),appState:{...t,selectedElementIds:{},selectedGroupIds:{}}}},mI=(e,t)=>{if(e.editingGroupId){let r=Wt(We(t),e.editingGroupId);if(r.length)return{...e,selectedElementIds:{[r[0].id]:!0}}}return e},$d=re({name:"deleteSelectedElements",label:"labels.delete",icon:Cn,trackEvent:{category:"element",action:"delete"},perform:(e,t,r,o)=>{if(t.editingLinearElement){let{elementId:s,selectedPointsIndices:c,startBindingElement:d,endBindingElement:p}=t.editingLinearElement,f=o.scene.getNonDeletedElementsMap(),u=Le.getElement(s,f);if(!u||c==null)return!1;if(u.points.length<2){let h=e.map(E=>E.id===u.id?Re(E,{isDeleted:!0}):E),x=mI(t,h);return{elements:h,appState:{...x,editingLinearElement:null},storeAction:K.CAPTURE}}let g={startBindingElement:c?.includes(0)?null:d,endBindingElement:c?.includes(u.points.length-1)?null:p};return Le.deletePoints(u,c),{elements:e,appState:{...t,editingLinearElement:{...t.editingLinearElement,...g,selectedPointsIndices:c?.[0]>0?[c[0]-1]:[0]}},storeAction:K.CAPTURE}}let{elements:i,appState:a}=pO(e,t);return wp(i,e.filter(({id:s})=>t.selectedElementIds[s])),a=mI(a,i),{elements:i,appState:{...a,activeTool:Ut(t,{type:"selection"}),multiElement:null,activeEmbeddable:null},storeAction:ft(We(e),t)?K.CAPTURE:K.NONE}},keyTest:(e,t,r)=>(e.key===L.BACKSPACE||e.key===L.DELETE)&&!e[L.CTRL_OR_CMD],PanelComponent:({elements:e,appState:t,updateData:r})=>(0,uI.jsx)(Ie,{type:"button",icon:Cn,title:y("labels.delete"),"aria-label":y("labels.delete"),onClick:()=>r(null),visible:ft(We(e),t)})});v();v();var fv=(e,t)=>e.frameId===t||e.id===t,fI=(e,t,r)=>{let o=[],i=[],a=null,s=-1,c=Pe(r||ze(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0}));for(;++s<e.length;){let d=e[s];c.get(d.id)?(i.length&&(o=o.concat(i),i=[]),o.push(s),a=s+1):d.isDeleted&&a===s?(a=s+1,i.push(s)):i=[]}return o},fO=e=>{let t=0;return e.reduce((r,o,i)=>(i>0&&e[i-1]!==o-1&&(t=++t),(r[t]||(r[t]=[])).push(o),r),[])},pI=(e,t,r)=>{if("containerId"in e&&e.containerId)if(r==="left"){let o=Yo.getScene(e).getElement(e.containerId);if(o)return t.indexOf(o)}else return t.indexOf(e);else{let o=e.boundElements?.find(i=>i.type!=="arrow")?.id;if(o){if(r==="left")return t.indexOf(e);let i=Yo.getScene(e).getElement(o);if(i)return t.indexOf(i)}}},gO=(e,t)=>{let r=-1,o=-1;return e.forEach((i,a)=>{fv(i,t)&&(r===-1&&(r=a),o=a)}),r===-1?[]:e.slice(r,o+1)},hO=(e,t,r,o,i)=>{let a=t[r],s=u=>u.isDeleted?!1:i?u.frameId===i:e.editingGroupId?u.groupIds.includes(e.editingGroupId):!0,c=o==="left"?sx(t,u=>s(u),Math.max(0,r-1)):lx(t,u=>s(u),r+1),d=t[c];if(!d)return-1;if(e.editingGroupId){if(a?.groupIds.join("")===d?.groupIds.join(""))return pI(d,t,o)??c;if(!d?.groupIds.includes(e.editingGroupId))return-1}if(!i&&(d.frameId||He(d))){let u=gO(t,d.frameId||d.id);return o==="left"?t.indexOf(u[0]):t.indexOf(u[u.length-1])}if(!d.groupIds.length)return pI(d,t,o)??c;let p=e.editingGroupId?d.groupIds[d.groupIds.indexOf(e.editingGroupId)-1]:d.groupIds[d.groupIds.length-1],f=Wt(t,p);return f.length?o==="left"?t.indexOf(f[0]):t.indexOf(f[f.length-1]):c},gI=(e,t)=>t.reduce((r,o)=>{let i=e[o];return r.set(i.id,i),r},new Map),hI=(e,t,r)=>{let o=fI(e,t),i=gI(e,o),a=fO(o);r==="right"&&(a=a.reverse());let s=new Set(o.filter(c=>He(e[c])).map(c=>e[c].id));return a.forEach((c,d)=>{let p=c[0],f=c[c.length-1],u=r==="left"?p:f,g=c.some(I=>{let A=e[I];return A.frameId&&s.has(A.frameId)})?null:e[u]?.frameId,h=hO(t,e,u,r,g);if(h===-1||u===h)return;let x=r==="left"?e.slice(0,h):e.slice(0,p),E=e.slice(p,f+1),T=r==="left"?e.slice(h,p):e.slice(f+1,h+1),M=r==="left"?e.slice(f+1):e.slice(h+1);e=r==="left"?[...x,...E,...T,...M]:[...x,...T,...E,...M]}),_o(e,i),e},bI=(e,t,r,o,i)=>{let a=fI(e,t,i),s=gI(e,a),c=[],d,p;if(r==="left"){if(o)d=lx(e,x=>fv(x,o));else if(t.editingGroupId){let x=Wt(e,t.editingGroupId);if(!x.length)return e;d=e.indexOf(x[0])}else d=0;p=a[a.length-1]}else{if(o)p=sx(e,x=>fv(x,o));else if(t.editingGroupId){let x=Wt(e,t.editingGroupId);if(!x.length)return e;p=e.indexOf(x[x.length-1])}else p=e.length-1;d=a[0]}d===-1&&(d=0);for(let x=d;x<p+1;x++)a.includes(x)||c.push(e[x]);let f=Array.from(s.values()),u=e.slice(0,d),g=e.slice(p+1),h=r==="left"?[...u,...f,...c,...g]:[...u,...c,...f,...g];return _o(h,s),h};function xI(e,t,r,o){let i=Pe(ze(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0})),a={regularElements:[],frameChildren:new Map},s=new Set;for(let p of e)i.has(p.id)&&He(p)&&s.add(p.id);for(let p of e)if(i.has(p.id))if(He(p)||p.frameId&&s.has(p.frameId))a.regularElements.push(p);else if(!p.frameId)a.regularElements.push(p);else{let f=a.frameChildren.get(p.frameId)||[];f.push(p),a.frameChildren.set(p.frameId,f)}let c=e,d=Array.from(a.frameChildren.entries());for(let[p,f]of d)c=o(e,t,r,p,f);return o(c,t,r,null,a.regularElements)}var vI=(e,t)=>hI(e,t,"left"),yI=(e,t)=>hI(e,t,"right"),EI=(e,t)=>xI(e,t,"left",bI),wI=(e,t)=>xI(e,t,"right",bI);var Hd=w(P(),1),gv=re({name:"sendBackward",label:"labels.sendBackward",keywords:["move down","zindex","layer"],icon:Ex,trackEvent:{category:"element"},perform:(e,t)=>({elements:vI(e,t),appState:t,storeAction:K.CAPTURE}),keyPriority:40,keyTest:e=>e[L.CTRL_OR_CMD]&&!e.shiftKey&&e.code===Ne.BRACKET_LEFT,PanelComponent:({updateData:e,appState:t})=>(0,Hd.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${y("labels.sendBackward")} \u2014 ${V("CtrlOrCmd+[")}`,children:Ex})}),hv=re({name:"bringForward",label:"labels.bringForward",keywords:["move up","zindex","layer"],icon:yx,trackEvent:{category:"element"},perform:(e,t)=>({elements:yI(e,t),appState:t,storeAction:K.CAPTURE}),keyPriority:40,keyTest:e=>e[L.CTRL_OR_CMD]&&!e.shiftKey&&e.code===Ne.BRACKET_RIGHT,PanelComponent:({updateData:e,appState:t})=>(0,Hd.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${y("labels.bringForward")} \u2014 ${V("CtrlOrCmd+]")}`,children:yx})}),bv=re({name:"sendToBack",label:"labels.sendToBack",keywords:["move down","zindex","layer"],icon:Sx,trackEvent:{category:"element"},perform:(e,t)=>({elements:EI(e,t),appState:t,storeAction:K.CAPTURE}),keyTest:e=>yn?e[L.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.BRACKET_LEFT:e[L.CTRL_OR_CMD]&&e.shiftKey&&e.code===Ne.BRACKET_LEFT,PanelComponent:({updateData:e,appState:t})=>(0,Hd.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${y("labels.sendToBack")} \u2014 ${yn?V("CtrlOrCmd+Alt+["):V("CtrlOrCmd+Shift+[")}`,children:Sx})}),xv=re({name:"bringToFront",label:"labels.bringToFront",keywords:["move up","zindex","layer"],icon:wx,trackEvent:{category:"element"},perform:(e,t)=>({elements:wI(e,t),appState:t,storeAction:K.CAPTURE}),keyTest:e=>yn?e[L.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.BRACKET_RIGHT:e[L.CTRL_OR_CMD]&&e.shiftKey&&e.code===Ne.BRACKET_RIGHT,PanelComponent:({updateData:e,appState:t})=>(0,Hd.jsx)("button",{type:"button",className:"zIndexButton",onClick:r=>e(null),title:`${y("labels.bringToFront")} \u2014 ${yn?V("CtrlOrCmd+Alt+]"):V("CtrlOrCmd+Shift+]")}`,children:wx})});v();var vv=re({name:"selectAll",label:"labels.selectAll",icon:mC,trackEvent:{category:"canvas"},viewMode:!1,perform:(e,t,r,o)=>{if(t.editingLinearElement)return!1;let i=Ns(e.filter(a=>!a.isDeleted&&!(ge(a)&&a.containerId)&&!a.locked)).reduce((a,s)=>(a[s.id]=!0,a),{});return{appState:{...t,...Ar({editingGroupId:null,selectedElementIds:i},We(e),t,o),selectedLinearElement:Object.keys(i).length===1&&et(e[0])?new Le(e[0]):null},storeAction:K.CAPTURE}},keyTest:e=>e[L.CTRL_OR_CMD]&&e.key===L.A});v();v();var bO=e=>{let t=e.slice(),r=new Set,o=a=>{let s=a[0]?.groupIds?.join(""),c=[a[0]],d=[];for(let p of a.slice(1))p.groupIds?.join("")===s?c.push(p):d.push(p);return d.length?[...c,...o(d)]:c},i=new Map;return t.forEach((a,s)=>{if(!i.has(a.id))if(a.groupIds?.length){let c=a.groupIds[a.groupIds.length-1],d=t.slice(s).filter(p=>{let f=p?.groupIds?.some(u=>u===c);return f&&i.set(p.id,!0),f});for(let p of o(d))r.add(p)}else r.add(a)}),r.size!==e.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),e):[...r]},xO=e=>{let t=RS(e),r=e.slice(),o=new Set;return r.forEach((i,a)=>{i&&(i.boundElements?.length?(o.add(i),r[a]=null,i.boundElements.forEach(s=>{let c=t.get(s.id);c&&s.type==="text"&&(o.add(c[0]),r[c[1]]=null)})):i.type==="text"&&i.containerId&&t.get(i.containerId)?.[0].boundElements?.find(c=>c.id===i.id)||(o.add(i),r[a]=null))}),o.size!==e.length?(console.error("normalizeBoundElementsOrder: lost some elements... bailing!"),e):[...o]},SI=e=>xO(bO(e));var TI=w(P(),1),yv=re({name:"duplicateSelection",label:"labels.duplicateSelection",icon:vd,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=o.scene.getNonDeletedElementsMap();if(t.editingLinearElement){let a=Le.duplicateSelectedPoints(t,i);return a?{elements:e,appState:a.appState,storeAction:K.CAPTURE}:!1}return{...vO(e,t),storeAction:K.CAPTURE}},keyTest:e=>e[L.CTRL_OR_CMD]&&e.key===L.D,PanelComponent:({elements:e,appState:t,updateData:r})=>(0,TI.jsx)(Ie,{type:"button",icon:vd,title:`${y("labels.duplicateSelection")} \u2014 ${V("CtrlOrCmd+D")}`,"aria-label":y("labels.duplicateSelection"),onClick:()=>r(null),visible:ft(We(e),t)})}),vO=(e,t)=>{let r=SI(e),o=new Map,i=[],a=[],s=new Map,c=new Map,d=I=>{let A=Np(t.editingGroupId,o,I,{x:I.x+gi/2,y:I.y+gi/2});return c.set(A.id,A),s.set(I.id,A.id),a.push(I),i.push(A),A},p=Pe(ze(r,t,{includeBoundTextElement:!0,includeElementsInFrames:!0})),f=new Map,u=I=>{for(let A of I)f.set(A.id,!0);return I},g=[],h=-1;for(;++h<r.length;){let I=r[h];if(f.get(I.id))continue;let A=je(I,Pe(e)),N=He(I);if(p.get(I.id)){if(I.groupIds.length||A||N){let U=KC(t,I);if(U){let R=Wt(r,U).flatMap(F=>He(F)?[...ga(e,F.id),F]:[F]);g.push(...u([...R,...R.map(F=>d(F))]));continue}if(A){g.push(...u([I,A,d(I),d(A)]));continue}if(N){let R=ga(r,I.id);g.push(...u([...R,I,...R.map(F=>d(F)),d(I)]));continue}}(!I.frameId||!p.has(I.frameId))&&g.push(...u([I,d(I)]))}else g.push(...u([I]))}let x=[],E=new Map;for(h=g.length;--h>=0;){let I=g[h];E.get(I.id)||(E.set(I.id,!0),x.push(I))}let T=_o(x.reverse(),Pe(i));Sp(g,a,s),Ep(g,a,s),Yp(T,a,s);let M=Ns(i);return{elements:T,appState:{...t,...Ar({editingGroupId:t.editingGroupId,selectedElementIds:M.reduce((I,A)=>(yr(A)||(I[A.id]=!0),I),{})},We(T),t,null)}}};v();v();var yO=["ai","command_palette"],Fe=(e,t,r,o)=>{try{if(typeof window>"u"||_.VITE_WORKER_ID||_.PROD||!yO.includes(e))return;_.PROD||console.info("trackEvent",{category:e,action:t,label:r,value:o}),window.sa_event&&window.sa_event(t,{category:e,label:r,value:o})}catch(i){console.error("error during analytics",i)}};v();var zs=w(P(),1),Vn=e=>(0,zs.jsx)("div",{className:"buttonList buttonListIcon",children:e.options.map(t=>e.type==="button"?(0,zs.jsx)("button",{type:"button",onClick:r=>e.onClick(t.value,r),className:j({active:t.active??e.value===t.value}),"data-testid":t.testId,title:t.text,children:t.icon},t.text):(0,zs.jsxs)("label",{className:j({active:e.value===t.value}),title:t.text,children:[(0,zs.jsx)("input",{type:"radio",name:e.group,onChange:()=>e.onChange(t.value),checked:e.value===t.value,"data-testid":t.testId}),t.icon]},t.text))});v();v();var hf=w(P(),1),CI=({onChange:e,type:t,activeColor:r,topPicks:o})=>{let i;return t==="elementStroke"&&(i=Mu),t==="elementBackground"&&(i=Pu),t==="canvasBackground"&&(i=Lu),o&&(i=o),i?(0,hf.jsx)("div",{className:"color-picker__top-picks",children:i.map(a=>(0,hf.jsx)("button",{className:j("color-picker__button",{active:a===r,"is-transparent":a==="transparent"||!a}),style:{"--swatch-color":a},type:"button",title:a,onClick:()=>e(a),"data-testid":`color-top-pick-${a}`,children:(0,hf.jsx)("div",{className:"color-picker__button-outline"})},a))}):(console.error("Invalid type for TopPicks"),null)};v();var xa=w(J(),1);v();var bf=w(J(),1);v();var ba=({palette:e,color:t})=>{for(let[r,o]of Object.entries(e))if(Array.isArray(o)){let i=o.indexOf(t);if(i>-1)return{colorName:r,shade:i}}else if(o===t)return{colorName:r,shade:null};return null},Ud=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),Ev=({color:e,palette:t})=>!Object.values(t).flat().includes(e),_I=(e,t,r)=>{let o={elementBackground:"backgroundColor",elementStroke:"strokeColor"},i=e.filter(s=>{if(s.isDeleted)return!1;let c=s[o[t]];return Ev({color:c,palette:r})}),a=new Map;return i.forEach(s=>{let c=s[o[t]];a.has(c)?a.set(c,a.get(c)+1):a.set(c,1)}),[...a.entries()].sort((s,c)=>c[1]-s[1]).map(s=>s[0]).slice(0,V1)},Qo=wt(null),II=(e,t,r)=>(e*299+t*587+r*114)/1e3>=160?"black":"white",AI=(e,t)=>{if(t){let a=new Option().style;if(a.color=e,a.color){let s=a.color.replace(/^(rgb|rgba)\(/,"").replace(/\)$/,"").replace(/\s/g,"").split(","),c=parseInt(s[0]),d=parseInt(s[1]),p=parseInt(s[2]);return II(c,d,p)}}if(e==="transparent")return"black";let r=parseInt(e.substring(1,3),16),o=parseInt(e.substring(3,5),16),i=parseInt(e.substring(5,7),16);return II(r,o,i)};v();var kI=w(P(),1),EO=({color:e,keyLabel:t,isCustomColor:r=!1,isShade:o=!1})=>(0,kI.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:AI(e,r)},children:[o&&"\u21E7",t]}),$s=EO;var Mi=w(P(),1),MI=({hex:e,onChange:t,palette:r})=>{let o=ba({color:e||"transparent",palette:r}),[i,a]=Ve(Qo),s=(0,bf.useRef)(null);if((0,bf.useEffect)(()=>{s.current&&i==="shades"&&s.current.focus()},[o,i]),o){let{colorName:c,shade:d}=o,p=r[c];if(Array.isArray(p))return(0,Mi.jsx)("div",{className:"color-picker-content--default shades",children:p.map((f,u)=>(0,Mi.jsxs)("button",{ref:u===d&&i==="shades"?s:void 0,tabIndex:-1,type:"button",className:j("color-picker__button color-picker__button--large",{active:u===d}),"aria-label":"Shade",title:`${c} - ${u+1}`,style:f?{"--swatch-color":f}:void 0,onClick:()=>{t(f),a("shades")},children:[(0,Mi.jsx)("div",{className:"color-picker__button-outline"}),(0,Mi.jsx)($s,{color:f,keyLabel:u+1,isShade:!0})]},u))})}return(0,Mi.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,Mi.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,Mi.jsx)("div",{tabIndex:-1,style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",fontSize:"0.75rem"},children:y("colorPicker.noShades")})]})};v();var xf=w(J(),1);var Hs=w(P(),1),wO=({palette:e,color:t,onChange:r,label:o,activeShade:i})=>{let a=ba({color:t||"transparent",palette:e}),[s,c]=Ve(Qo),d=(0,xf.useRef)(null);return(0,xf.useEffect)(()=>{d.current&&s==="baseColors"&&d.current.focus()},[a?.colorName,s]),(0,Hs.jsx)("div",{className:"color-picker-content--default",children:Object.entries(e).map(([p,f],u)=>{let g=(Array.isArray(f)?f[i]:f)||"transparent",h=Ud[u],x=y(`colors.${p.replace(/\d+/,"")}`,null,"");return(0,Hs.jsxs)("button",{ref:a?.colorName===p?d:void 0,tabIndex:-1,type:"button",className:j("color-picker__button color-picker__button--large",{active:a?.colorName===p,"is-transparent":g==="transparent"||!g}),onClick:()=>{r(g),c("baseColors")},title:`${x}${g.startsWith("#")?` ${g}`:""} \u2014 ${h}`,"aria-label":`${x} \u2014 ${h}`,style:g?{"--swatch-color":g}:void 0,"data-testid":`color-${p}`,children:[(0,Hs.jsx)("div",{className:"color-picker__button-outline"}),(0,Hs.jsx)($s,{color:g,keyLabel:h})]},p)})})},PI=wO;v();var vf=w(J(),1);var Us=w(P(),1),LI=({colors:e,color:t,onChange:r,label:o})=>{let[i,a]=Ve(Qo),s=(0,vf.useRef)(null);return(0,vf.useEffect)(()=>{s.current&&s.current.focus()},[t,i]),(0,Us.jsx)("div",{className:"color-picker-content--default",children:e.map((c,d)=>(0,Us.jsxs)("button",{ref:t===c?s:void 0,tabIndex:-1,type:"button",className:j("color-picker__button color-picker__button--large",{active:t===c,"is-transparent":c==="transparent"||!c}),onClick:()=>{r(c),a("custom")},title:c,"aria-label":o,style:{"--swatch-color":c},children:[(0,Us.jsx)("div",{className:"color-picker__button-outline"}),(0,Us.jsx)($s,{color:c,keyLabel:d+1,isCustomColor:!0})]},d))})};v();var wv=(e,t,r)=>{let o=Math.ceil(r/Ja);switch(t=t??-1,e){case"ArrowLeft":{let i=t-1;return i<0?r-1:i}case"ArrowRight":return(t+1)%r;case"ArrowDown":{let i=t+Ja;return i>=r?t%Ja:i}case"ArrowUp":{let i=t-Ja,a=i<0?Ja*o+i:i;return a>=r?void 0:a}}},SO=({e,colorObj:t,onChange:r,palette:o,customColors:i,setActiveColorPickerSection:a,activeShade:s})=>{if(t?.shade!=null&&["Digit1","Digit2","Digit3","Digit4","Digit5"].includes(e.code)&&e.shiftKey){let c=Number(e.code.slice(-1))-1;return r(o[t.colorName][c]),a("shades"),!0}if(["1","2","3","4","5"].includes(e.key)&&i[Number(e.key)-1])return r(i[Number(e.key)-1]),a("custom"),!0;if(Ud.includes(e.key)){let c=Ud.indexOf(e.key),d=Object.keys(o)[c],p=o[d],f=Array.isArray(p)?p[s]:p;return r(f),a("baseColors"),!0}return!1},RI=({event:e,activeColorPickerSection:t,palette:r,color:o,onChange:i,customColors:a,setActiveColorPickerSection:s,updateData:c,activeShade:d,onEyeDropperToggle:p,onEscape:f})=>{if(e[L.CTRL_OR_CMD])return!1;if(e.key===L.ESCAPE)return f(e),!0;if(e.key===L.ALT)return p(!0),!0;if(e.key===L.I)return p(),!0;let u=ba({color:o,palette:r});if(e.key===L.TAB){let g={custom:!!a.length,baseColors:!0,shades:u?.shade!=null,hex:!0},h=Object.entries(g).reduce((I,[A,N])=>(N&&I.push(A),I),[]),x=h.indexOf(t),E=e.shiftKey?-1:1,T=x+E>h.length-1?0:x+E<0?h.length-1:x+E,M=h[T];return M&&s(M),M==="custom"?i(a[0]):M==="baseColors"&&(Object.entries(r).find(([A,N])=>Array.isArray(N)?N.includes(o):N===o?A:null)||i(pi.black)),e.preventDefault(),e.stopPropagation(),!0}if(SO({e,colorObj:u,onChange:i,palette:r,customColors:a,setActiveColorPickerSection:s,activeShade:d}))return!0;if(t==="shades"&&u){let{shade:g}=u,h=wv(e.key,g,Ja);if(h!==void 0)return i(r[u.colorName][h]),!0}if(t==="baseColors"&&u){let{colorName:g}=u,h=Object.keys(r),x=h.indexOf(g),E=wv(e.key,x,h.length);if(E!==void 0){let T=h[E],M=r[T];return i(Array.isArray(M)?M[d]:M),!0}}if(t==="custom"){let g=a.indexOf(o),h=wv(e.key,g,a.length);if(h!==void 0){let x=a[h];return i(x),!0}}return!1};v();var DI=w(P(),1),TO=({children:e})=>(0,DI.jsx)("div",{className:"color-picker__heading",children:e}),Gs=TO;var Ao=w(P(),1),NI=({color:e,onChange:t,label:r,type:o,elements:i,palette:a,updateData:s,children:c,onEyeDropperToggle:d,onEscape:p})=>{let[f]=xa.default.useState(()=>o==="canvasBackground"?[]:_I(i,o,a)),[u,g]=Ve(Qo),h=ba({color:e,palette:a});(0,xa.useEffect)(()=>{if(!u){let M=Ev({color:e,palette:a}),I=M&&!f.includes(e);g(I?"hex":M?"custom":h?.shade!=null?"shades":"baseColors")}},[u,e,a,g,h,f]);let[x,E]=(0,xa.useState)(h?.shade??(o==="elementBackground"?Z1:X1));(0,xa.useEffect)(()=>{h?.shade!=null&&E(h.shade);let M=I=>{I.key===L.ALT&&d(!1)};return document.addEventListener("keyup",M,{capture:!0}),()=>{document.removeEventListener("keyup",M,{capture:!0})}},[h,d]);let T=xa.default.useRef(null);return(0,Ao.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":y("labels.colorPicker"),children:(0,Ao.jsxs)("div",{ref:T,onKeyDown:M=>{RI({event:M,activeColorPickerSection:u,palette:a,color:e,onChange:t,onEyeDropperToggle:d,customColors:f,setActiveColorPickerSection:g,updateData:s,activeShade:x,onEscape:p})&&(M.preventDefault(),M.stopPropagation())},className:"color-picker-content",tabIndex:-1,children:[!!f.length&&(0,Ao.jsxs)("div",{children:[(0,Ao.jsx)(Gs,{children:y("colorPicker.mostUsedCustomColors")}),(0,Ao.jsx)(LI,{colors:f,color:e,label:y("colorPicker.mostUsedCustomColors"),onChange:t})]}),(0,Ao.jsxs)("div",{children:[(0,Ao.jsx)(Gs,{children:y("colorPicker.colors")}),(0,Ao.jsx)(PI,{color:e,label:r,palette:a,onChange:t,activeShade:x})]}),(0,Ao.jsxs)("div",{children:[(0,Ao.jsx)(Gs,{children:y("colorPicker.shades")}),(0,Ao.jsx)(MI,{hex:e,onChange:t,palette:a})]}),c]})})};v();v();function Ye(){return Ye=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},Ye.apply(this,arguments)}var Xe=w(J());v();function ir(e,t,{checkForDefaultPrevented:r=!0}={}){return function(i){if(e?.(i),r===!1||!i.defaultPrevented)return t?.(i)}}v();var OI=w(J());function CO(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Sv(...e){return t=>e.forEach(r=>CO(r,t))}function Mr(...e){return(0,OI.useCallback)(Sv(...e),e)}v();var Pn=w(J());function Xn(e,t=[]){let r=[];function o(a,s){let c=(0,Pn.createContext)(s),d=r.length;r=[...r,s];function p(u){let{scope:g,children:h,...x}=u,E=g?.[e][d]||c,T=(0,Pn.useMemo)(()=>x,Object.values(x));return(0,Pn.createElement)(E.Provider,{value:T},h)}function f(u,g){let h=g?.[e][d]||c,x=(0,Pn.useContext)(h);if(x)return x;if(s!==void 0)return s;throw new Error(`\`${u}\` must be used within \`${a}\``)}return p.displayName=a+"Provider",[p,f]}let i=()=>{let a=r.map(s=>(0,Pn.createContext)(s));return function(c){let d=c?.[e]||a;return(0,Pn.useMemo)(()=>({[`__scope${e}`]:{...c,[e]:d}}),[c,d])}};return i.scopeName=e,[o,IO(i,...t)]}function IO(...e){let t=e[0];if(e.length===1)return t;let r=()=>{let o=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(a){let s=o.reduce((c,{useScope:d,scopeName:p})=>{let u=d(a)[`__scope${p}`];return{...c,...u}},{});return(0,Pn.useMemo)(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}v();var rr=w(J());v();var Ws=w(J()),FI=w(Yn());v();var Kt=w(J());var va=(0,Kt.forwardRef)((e,t)=>{let{children:r,...o}=e,i=Kt.Children.toArray(r),a=i.find(AO);if(a){let s=a.props.children,c=i.map(d=>d===a?Kt.Children.count(s)>1?Kt.Children.only(null):(0,Kt.isValidElement)(s)?s.props.children:null:d);return(0,Kt.createElement)(Tv,Ye({},o,{ref:t}),(0,Kt.isValidElement)(s)?(0,Kt.cloneElement)(s,void 0,c):null)}return(0,Kt.createElement)(Tv,Ye({},o,{ref:t}),r)});va.displayName="Slot";var Tv=(0,Kt.forwardRef)((e,t)=>{let{children:r,...o}=e;return(0,Kt.isValidElement)(r)?(0,Kt.cloneElement)(r,{...kO(o,r.props),ref:Sv(t,r.ref)}):Kt.Children.count(r)>1?Kt.Children.only(null):null});Tv.displayName="SlotClone";var _O=({children:e})=>(0,Kt.createElement)(Kt.Fragment,null,e);function AO(e){return(0,Kt.isValidElement)(e)&&e.type===_O}function kO(e,t){let r={...t};for(let o in t){let i=e[o],a=t[o];/^on[A-Z]/.test(o)?i&&a?r[o]=(...c)=>{a(...c),i(...c)}:i&&(r[o]=i):o==="style"?r[o]={...i,...a}:o==="className"&&(r[o]=[i,a].filter(Boolean).join(" "))}return{...e,...r}}var MO=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],Zt=MO.reduce((e,t)=>{let r=(0,Ws.forwardRef)((o,i)=>{let{asChild:a,...s}=o,c=a?va:t;return(0,Ws.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,Ws.createElement)(c,Ye({},s,{ref:i}))});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function BI(e,t){e&&(0,FI.flushSync)(()=>e.dispatchEvent(t))}v();var Ks=w(J());function to(e){let t=(0,Ks.useRef)(e);return(0,Ks.useEffect)(()=>{t.current=e}),(0,Ks.useMemo)(()=>(...r)=>{var o;return(o=t.current)===null||o===void 0?void 0:o.call(t,...r)},[])}v();var zI=w(J());function $I(e,t=globalThis?.document){let r=to(e);(0,zI.useEffect)(()=>{let o=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",o),()=>t.removeEventListener("keydown",o)},[r,t])}var Cv="dismissableLayer.update",PO="dismissableLayer.pointerDownOutside",LO="dismissableLayer.focusOutside",HI,RO=(0,rr.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),GI=(0,rr.forwardRef)((e,t)=>{var r;let{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:c,onDismiss:d,...p}=e,f=(0,rr.useContext)(RO),[u,g]=(0,rr.useState)(null),h=(r=u?.ownerDocument)!==null&&r!==void 0?r:globalThis?.document,[,x]=(0,rr.useState)({}),E=Mr(t,B=>g(B)),T=Array.from(f.layers),[M]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),I=T.indexOf(M),A=u?T.indexOf(u):-1,N=f.layersWithOutsidePointerEventsDisabled.size>0,U=A>=I,R=DO(B=>{let Z=B.target,G=[...f.branches].some(te=>te.contains(Z));!U||G||(a?.(B),c?.(B),B.defaultPrevented||d?.())},h),F=NO(B=>{let Z=B.target;[...f.branches].some(te=>te.contains(Z))||(s?.(B),c?.(B),B.defaultPrevented||d?.())},h);return $I(B=>{A===f.layers.size-1&&(i?.(B),!B.defaultPrevented&&d&&(B.preventDefault(),d()))},h),(0,rr.useEffect)(()=>{if(u)return o&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(HI=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(u)),f.layers.add(u),UI(),()=>{o&&f.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=HI)}},[u,h,o,f]),(0,rr.useEffect)(()=>()=>{u&&(f.layers.delete(u),f.layersWithOutsidePointerEventsDisabled.delete(u),UI())},[u,f]),(0,rr.useEffect)(()=>{let B=()=>x({});return document.addEventListener(Cv,B),()=>document.removeEventListener(Cv,B)},[]),(0,rr.createElement)(Zt.div,Ye({},p,{ref:E,style:{pointerEvents:N?U?"auto":"none":void 0,...e.style},onFocusCapture:ir(e.onFocusCapture,F.onFocusCapture),onBlurCapture:ir(e.onBlurCapture,F.onBlurCapture),onPointerDownCapture:ir(e.onPointerDownCapture,R.onPointerDownCapture)}))});function DO(e,t=globalThis?.document){let r=to(e),o=(0,rr.useRef)(!1),i=(0,rr.useRef)(()=>{});return(0,rr.useEffect)(()=>{let a=c=>{if(c.target&&!o.current){let p=function(){WI(PO,r,d,{discrete:!0})},d={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=p,t.addEventListener("click",i.current,{once:!0})):p()}o.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",a),t.removeEventListener("click",i.current)}},[t,r]),{onPointerDownCapture:()=>o.current=!0}}function NO(e,t=globalThis?.document){let r=to(e),o=(0,rr.useRef)(!1);return(0,rr.useEffect)(()=>{let i=a=>{a.target&&!o.current&&WI(LO,r,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,r]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function UI(){let e=new CustomEvent(Cv);document.dispatchEvent(e)}function WI(e,t,r,{discrete:o}){let i=r.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&i.addEventListener(e,t,{once:!0}),o?BI(i,a):i.dispatchEvent(a)}v();var YI=w(J()),Iv=0;function VI(){(0,YI.useEffect)(()=>{var e,t;let r=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(e=r[0])!==null&&e!==void 0?e:KI()),document.body.insertAdjacentElement("beforeend",(t=r[1])!==null&&t!==void 0?t:KI()),Iv++,()=>{Iv===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(o=>o.remove()),Iv--}},[])}function KI(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}v();var go=w(J());var _v="focusScope.autoFocusOnMount",Av="focusScope.autoFocusOnUnmount",XI={bubbles:!1,cancelable:!0};var JI=(0,go.forwardRef)((e,t)=>{let{loop:r=!1,trapped:o=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...s}=e,[c,d]=(0,go.useState)(null),p=to(i),f=to(a),u=(0,go.useRef)(null),g=Mr(t,E=>d(E)),h=(0,go.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,go.useEffect)(()=>{if(o){let E=function(M){if(h.paused||!c)return;let I=M.target;c.contains(I)?u.current=I:bl(u.current,{select:!0})},T=function(M){h.paused||!c||c.contains(M.relatedTarget)||bl(u.current,{select:!0})};return document.addEventListener("focusin",E),document.addEventListener("focusout",T),()=>{document.removeEventListener("focusin",E),document.removeEventListener("focusout",T)}}},[o,c,h.paused]),(0,go.useEffect)(()=>{if(c){qI.add(h);let E=document.activeElement;if(!c.contains(E)){let M=new CustomEvent(_v,XI);c.addEventListener(_v,p),c.dispatchEvent(M),M.defaultPrevented||(OO(HO(QI(c)),{select:!0}),document.activeElement===E&&bl(c))}return()=>{c.removeEventListener(_v,p),setTimeout(()=>{let M=new CustomEvent(Av,XI);c.addEventListener(Av,f),c.dispatchEvent(M),M.defaultPrevented||bl(E??document.body,{select:!0}),c.removeEventListener(Av,f),qI.remove(h)},0)}}},[c,p,f,h]);let x=(0,go.useCallback)(E=>{if(!r&&!o||h.paused)return;let T=E.key==="Tab"&&!E.altKey&&!E.ctrlKey&&!E.metaKey,M=document.activeElement;if(T&&M){let I=E.currentTarget,[A,N]=FO(I);A&&N?!E.shiftKey&&M===N?(E.preventDefault(),r&&bl(A,{select:!0})):E.shiftKey&&M===A&&(E.preventDefault(),r&&bl(N,{select:!0})):M===I&&E.preventDefault()}},[r,o,h.paused]);return(0,go.createElement)(Zt.div,Ye({tabIndex:-1},s,{ref:g,onKeyDown:x}))});function OO(e,{select:t=!1}={}){let r=document.activeElement;for(let o of e)if(bl(o,{select:t}),document.activeElement!==r)return}function FO(e){let t=QI(e),r=ZI(t,e),o=ZI(t.reverse(),e);return[r,o]}function QI(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{let i=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||i?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function ZI(e,t){for(let r of e)if(!BO(r,{upTo:t}))return r}function BO(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function zO(e){return e instanceof HTMLInputElement&&"select"in e}function bl(e,{select:t=!1}={}){if(e&&e.focus){let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&zO(e)&&t&&e.select()}}var qI=$O();function $O(){let e=[];return{add(t){let r=e[0];t!==r&&r?.pause(),e=jI(e,t),e.unshift(t)},remove(t){var r;e=jI(e,t),(r=e[0])===null||r===void 0||r.resume()}}}function jI(e,t){let r=[...e],o=r.indexOf(t);return o!==-1&&r.splice(o,1),r}function HO(e){return e.filter(t=>t.tagName!=="A")}v();var yf=w(J());v();var e_=w(J()),en=globalThis?.document?e_.useLayoutEffect:()=>{};var UO=yf.useId||(()=>{}),GO=0;function Ys(e){let[t,r]=yf.useState(UO());return en(()=>{e||r(o=>o??String(GO++))},[e]),e||(t?`radix-${t}`:"")}v();var Pt=w(J());v();v();v();function vl(e){return e.split("-")[0]}function Wd(e){return e.split("-")[1]}function Xs(e){return["top","bottom"].includes(vl(e))?"x":"y"}function Mv(e){return e==="y"?"height":"width"}function t_(e,t,r){let{reference:o,floating:i}=e,a=o.x+o.width/2-i.width/2,s=o.y+o.height/2-i.height/2,c=Xs(t),d=Mv(c),p=o[d]/2-i[d]/2,f=c==="x",u;switch(vl(t)){case"top":u={x:a,y:o.y-i.height};break;case"bottom":u={x:a,y:o.y+o.height};break;case"right":u={x:o.x+o.width,y:s};break;case"left":u={x:o.x-i.width,y:s};break;default:u={x:o.x,y:o.y}}switch(Wd(t)){case"start":u[c]-=p*(r&&f?-1:1);break;case"end":u[c]+=p*(r&&f?-1:1)}return u}var i_=async(e,t,r)=>{let{placement:o="bottom",strategy:i="absolute",middleware:a=[],platform:s}=r,c=await(s.isRTL==null?void 0:s.isRTL(t)),d=await s.getElementRects({reference:e,floating:t,strategy:i}),{x:p,y:f}=t_(d,o,c),u=o,g={},h=0;for(let x=0;x<a.length;x++){let{name:E,fn:T}=a[x],{x:M,y:I,data:A,reset:N}=await T({x:p,y:f,initialPlacement:o,placement:u,strategy:i,middlewareData:g,rects:d,platform:s,elements:{reference:e,floating:t}});p=M??p,f=I??f,g={...g,[E]:{...g[E],...A}},N&&h<=50&&(h++,typeof N=="object"&&(N.placement&&(u=N.placement),N.rects&&(d=N.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:i}):N.rects),{x:p,y:f}=t_(d,u,c)),x=-1)}return{x:p,y:f,placement:u,strategy:i,middlewareData:g}};function a_(e){return typeof e!="number"?function(t){return{top:0,right:0,bottom:0,left:0,...t}}(e):{top:e,right:e,bottom:e,left:e}}function Gd(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function Vs(e,t){var r;t===void 0&&(t={});let{x:o,y:i,platform:a,rects:s,elements:c,strategy:d}=e,{boundary:p="clippingAncestors",rootBoundary:f="viewport",elementContext:u="floating",altBoundary:g=!1,padding:h=0}=t,x=a_(h),E=c[g?u==="floating"?"reference":"floating":u],T=Gd(await a.getClippingRect({element:(r=await(a.isElement==null?void 0:a.isElement(E)))==null||r?E:E.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(c.floating)),boundary:p,rootBoundary:f,strategy:d})),M=Gd(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({rect:u==="floating"?{...s.floating,x:o,y:i}:s.reference,offsetParent:await(a.getOffsetParent==null?void 0:a.getOffsetParent(c.floating)),strategy:d}):s[u]);return{top:T.top-M.top+x.top,bottom:M.bottom-T.bottom+x.bottom,left:T.left-M.left+x.left,right:M.right-T.right+x.right}}var WO=Math.min,xl=Math.max;function kv(e,t,r){return xl(e,WO(t,r))}var wf=e=>({name:"arrow",options:e,async fn(t){let{element:r,padding:o=0}=e??{},{x:i,y:a,placement:s,rects:c,platform:d}=t;if(r==null)return{};let p=a_(o),f={x:i,y:a},u=Xs(s),g=Wd(s),h=Mv(u),x=await d.getDimensions(r),E=u==="y"?"top":"left",T=u==="y"?"bottom":"right",M=c.reference[h]+c.reference[u]-f[u]-c.floating[h],I=f[u]-c.reference[u],A=await(d.getOffsetParent==null?void 0:d.getOffsetParent(r)),N=A?u==="y"?A.clientHeight||0:A.clientWidth||0:0;N===0&&(N=c.floating[h]);let U=M/2-I/2,R=p[E],F=N-x[h]-p[T],B=N/2-x[h]/2+U,Z=kv(R,B,F),G=(g==="start"?p[E]:p[T])>0&&B!==Z&&c.reference[h]<=c.floating[h];return{[u]:f[u]-(G?B<R?R-B:F-B:0),data:{[u]:Z,centerOffset:B-Z}}}}),KO={left:"right",right:"left",bottom:"top",top:"bottom"};function Ef(e){return e.replace(/left|right|bottom|top/g,t=>KO[t])}function YO(e,t,r){r===void 0&&(r=!1);let o=Wd(e),i=Xs(e),a=Mv(i),s=i==="x"?o===(r?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(s=Ef(s)),{main:s,cross:Ef(s)}}var VO={start:"end",end:"start"};function r_(e){return e.replace(/start|end/g,t=>VO[t])}var l_=["top","right","bottom","left"],LW=l_.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);var Pv=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var r;let{placement:o,middlewareData:i,rects:a,initialPlacement:s,platform:c,elements:d}=t,{mainAxis:p=!0,crossAxis:f=!0,fallbackPlacements:u,fallbackStrategy:g="bestFit",flipAlignment:h=!0,...x}=e,E=vl(o),T=u||(E===s||!h?[Ef(s)]:function(B){let Z=Ef(B);return[r_(B),Z,r_(Z)]}(s)),M=[s,...T],I=await Vs(t,x),A=[],N=((r=i.flip)==null?void 0:r.overflows)||[];if(p&&A.push(I[E]),f){let{main:B,cross:Z}=YO(o,a,await(c.isRTL==null?void 0:c.isRTL(d.floating)));A.push(I[B],I[Z])}if(N=[...N,{placement:o,overflows:A}],!A.every(B=>B<=0)){var U,R;let B=((U=(R=i.flip)==null?void 0:R.index)!=null?U:0)+1,Z=M[B];if(Z)return{data:{index:B,overflows:N},reset:{placement:Z}};let G="bottom";switch(g){case"bestFit":{var F;let te=(F=N.map(de=>[de,de.overflows.filter(W=>W>0).reduce((W,se)=>W+se,0)]).sort((de,W)=>de[1]-W[1])[0])==null?void 0:F[0].placement;te&&(G=te);break}case"initialPlacement":G=s}if(o!==G)return{reset:{placement:G}}}return{}}}};function o_(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function n_(e){return l_.some(t=>e[t]>=0)}var Lv=function(e){let{strategy:t="referenceHidden",...r}=e===void 0?{}:e;return{name:"hide",async fn(o){let{rects:i}=o;switch(t){case"referenceHidden":{let a=o_(await Vs(o,{...r,elementContext:"reference"}),i.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:n_(a)}}}case"escaped":{let a=o_(await Vs(o,{...r,altBoundary:!0}),i.floating);return{data:{escapedOffsets:a,escaped:n_(a)}}}default:return{}}}}},Rv=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){let{x:r,y:o}=t,i=await async function(a,s){let{placement:c,platform:d,elements:p}=a,f=await(d.isRTL==null?void 0:d.isRTL(p.floating)),u=vl(c),g=Wd(c),h=Xs(c)==="x",x=["left","top"].includes(u)?-1:1,E=f&&h?-1:1,T=typeof s=="function"?s(a):s,{mainAxis:M,crossAxis:I,alignmentAxis:A}=typeof T=="number"?{mainAxis:T,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...T};return g&&typeof A=="number"&&(I=g==="end"?-1*A:A),h?{x:I*E,y:M*x}:{x:M*x,y:I*E}}(t,e);return{x:r+i.x,y:o+i.y,data:i}}}};function s_(e){return e==="x"?"y":"x"}var Dv=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){let{x:r,y:o,placement:i}=t,{mainAxis:a=!0,crossAxis:s=!1,limiter:c={fn:T=>{let{x:M,y:I}=T;return{x:M,y:I}}},...d}=e,p={x:r,y:o},f=await Vs(t,d),u=Xs(vl(i)),g=s_(u),h=p[u],x=p[g];if(a){let T=u==="y"?"bottom":"right";h=kv(h+f[u==="y"?"top":"left"],h,h-f[T])}if(s){let T=g==="y"?"bottom":"right";x=kv(x+f[g==="y"?"top":"left"],x,x-f[T])}let E=c.fn({...t,[u]:h,[g]:x});return{...E,data:{x:E.x-r,y:E.y-o}}}}},Nv=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:r,y:o,placement:i,rects:a,middlewareData:s}=t,{offset:c=0,mainAxis:d=!0,crossAxis:p=!0}=e,f={x:r,y:o},u=Xs(i),g=s_(u),h=f[u],x=f[g],E=typeof c=="function"?c({...a,placement:i}):c,T=typeof E=="number"?{mainAxis:E,crossAxis:0}:{mainAxis:0,crossAxis:0,...E};if(d){let U=u==="y"?"height":"width",R=a.reference[u]-a.floating[U]+T.mainAxis,F=a.reference[u]+a.reference[U]-T.mainAxis;h<R?h=R:h>F&&(h=F)}if(p){var M,I,A,N;let U=u==="y"?"width":"height",R=["top","left"].includes(vl(i)),F=a.reference[g]-a.floating[U]+(R&&(M=(I=s.offset)==null?void 0:I[g])!=null?M:0)+(R?0:T.crossAxis),B=a.reference[g]+a.reference[U]+(R?0:(A=(N=s.offset)==null?void 0:N[g])!=null?A:0)-(R?T.crossAxis:0);x<F?x=F:x>B&&(x=B)}return{[u]:h,[g]:x}}}},Ov=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){let{placement:r,rects:o,platform:i,elements:a}=t,{apply:s,...c}=e,d=await Vs(t,c),p=vl(r),f=Wd(r),u,g;p==="top"||p==="bottom"?(u=p,g=f===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?"start":"end")?"left":"right"):(g=p,u=f==="end"?"top":"bottom");let h=xl(d.left,0),x=xl(d.right,0),E=xl(d.top,0),T=xl(d.bottom,0),M={availableHeight:o.floating.height-(["left","right"].includes(r)?2*(E!==0||T!==0?E+T:xl(d.top,d.bottom)):d[u]),availableWidth:o.floating.width-(["top","bottom"].includes(r)?2*(h!==0||x!==0?h+x:xl(d.left,d.right)):d[g])},I=await i.getDimensions(a.floating);s?.({...t,...M});let A=await i.getDimensions(a.floating);return I.width!==A.width||I.height!==A.height?{reset:{rects:!0}}:{}}}};function f_(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function Ri(e){if(e==null)return window;if(!f_(e)){let t=e.ownerDocument;return t&&t.defaultView||window}return e}function Yd(e){return Ri(e).getComputedStyle(e)}function Pi(e){return f_(e)?"":e?(e.nodeName||"").toLowerCase():""}function g_(){let e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(t=>t.brand+"/"+t.version).join(" "):navigator.userAgent}function Zn(e){return e instanceof Ri(e).HTMLElement}function Ea(e){return e instanceof Ri(e).Element}function Bv(e){return typeof ShadowRoot>"u"?!1:e instanceof Ri(e).ShadowRoot||e instanceof ShadowRoot}function Cf(e){let{overflow:t,overflowX:r,overflowY:o}=Yd(e);return/auto|scroll|overlay|hidden/.test(t+o+r)}function XO(e){return["table","td","th"].includes(Pi(e))}function c_(e){let t=/firefox/i.test(g_()),r=Yd(e);return r.transform!=="none"||r.perspective!=="none"||r.contain==="paint"||["transform","perspective"].includes(r.willChange)||t&&r.willChange==="filter"||t&&!!r.filter&&r.filter!=="none"}function h_(){return!/^((?!chrome|android).)*safari/i.test(g_())}var d_=Math.min,Kd=Math.max,Sf=Math.round;function Li(e,t,r){var o,i,a,s;t===void 0&&(t=!1),r===void 0&&(r=!1);let c=e.getBoundingClientRect(),d=1,p=1;t&&Zn(e)&&(d=e.offsetWidth>0&&Sf(c.width)/e.offsetWidth||1,p=e.offsetHeight>0&&Sf(c.height)/e.offsetHeight||1);let f=Ea(e)?Ri(e):window,u=!h_()&&r,g=(c.left+(u&&(o=(i=f.visualViewport)==null?void 0:i.offsetLeft)!=null?o:0))/d,h=(c.top+(u&&(a=(s=f.visualViewport)==null?void 0:s.offsetTop)!=null?a:0))/p,x=c.width/d,E=c.height/p;return{width:x,height:E,top:h,right:g+x,bottom:h+E,left:g,x:g,y:h}}function ya(e){return(t=e,(t instanceof Ri(t).Node?e.ownerDocument:e.document)||window.document).documentElement;var t}function If(e){return Ea(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function b_(e){return Li(ya(e)).left+If(e).scrollLeft}function ZO(e,t,r){let o=Zn(t),i=ya(t),a=Li(e,o&&function(d){let p=Li(d);return Sf(p.width)!==d.offsetWidth||Sf(p.height)!==d.offsetHeight}(t),r==="fixed"),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if(o||!o&&r!=="fixed")if((Pi(t)!=="body"||Cf(i))&&(s=If(t)),Zn(t)){let d=Li(t,!0);c.x=d.x+t.clientLeft,c.y=d.y+t.clientTop}else i&&(c.x=b_(i));return{x:a.left+s.scrollLeft-c.x,y:a.top+s.scrollTop-c.y,width:a.width,height:a.height}}function x_(e){return Pi(e)==="html"?e:e.assignedSlot||e.parentNode||(Bv(e)?e.host:null)||ya(e)}function m_(e){return Zn(e)&&getComputedStyle(e).position!=="fixed"?e.offsetParent:null}function Fv(e){let t=Ri(e),r=m_(e);for(;r&&XO(r)&&getComputedStyle(r).position==="static";)r=m_(r);return r&&(Pi(r)==="html"||Pi(r)==="body"&&getComputedStyle(r).position==="static"&&!c_(r))?t:r||function(o){let i=x_(o);for(Bv(i)&&(i=i.host);Zn(i)&&!["html","body"].includes(Pi(i));){if(c_(i))return i;i=i.parentNode}return null}(e)||t}function u_(e){if(Zn(e))return{width:e.offsetWidth,height:e.offsetHeight};let t=Li(e);return{width:t.width,height:t.height}}function v_(e){let t=x_(e);return["html","body","#document"].includes(Pi(t))?e.ownerDocument.body:Zn(t)&&Cf(t)?t:v_(t)}function Tf(e,t){var r;t===void 0&&(t=[]);let o=v_(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),a=Ri(o),s=i?[a].concat(a.visualViewport||[],Cf(o)?o:[]):o,c=t.concat(s);return i?c:c.concat(Tf(s))}function p_(e,t,r){return t==="viewport"?Gd(function(o,i){let a=Ri(o),s=ya(o),c=a.visualViewport,d=s.clientWidth,p=s.clientHeight,f=0,u=0;if(c){d=c.width,p=c.height;let g=h_();(g||!g&&i==="fixed")&&(f=c.offsetLeft,u=c.offsetTop)}return{width:d,height:p,x:f,y:u}}(e,r)):Ea(t)?function(o,i){let a=Li(o,!1,i==="fixed"),s=a.top+o.clientTop,c=a.left+o.clientLeft;return{top:s,left:c,x:c,y:s,right:c+o.clientWidth,bottom:s+o.clientHeight,width:o.clientWidth,height:o.clientHeight}}(t,r):Gd(function(o){var i;let a=ya(o),s=If(o),c=(i=o.ownerDocument)==null?void 0:i.body,d=Kd(a.scrollWidth,a.clientWidth,c?c.scrollWidth:0,c?c.clientWidth:0),p=Kd(a.scrollHeight,a.clientHeight,c?c.scrollHeight:0,c?c.clientHeight:0),f=-s.scrollLeft+b_(o),u=-s.scrollTop;return Yd(c||a).direction==="rtl"&&(f+=Kd(a.clientWidth,c?c.clientWidth:0)-d),{width:d,height:p,x:f,y:u}}(ya(e)))}function qO(e){let t=Tf(e),r=["absolute","fixed"].includes(Yd(e).position)&&Zn(e)?Fv(e):e;return Ea(r)?t.filter(o=>Ea(o)&&function(i,a){let s=a.getRootNode==null?void 0:a.getRootNode();if(i.contains(a))return!0;if(s&&Bv(s)){let c=a;do{if(c&&i===c)return!0;c=c.parentNode||c.host}while(c)}return!1}(o,r)&&Pi(o)!=="body"):[]}var jO={getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:o,strategy:i}=e,a=[...r==="clippingAncestors"?qO(t):[].concat(r),o],s=a[0],c=a.reduce((d,p)=>{let f=p_(t,p,i);return d.top=Kd(f.top,d.top),d.right=d_(f.right,d.right),d.bottom=d_(f.bottom,d.bottom),d.left=Kd(f.left,d.left),d},p_(t,s,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:r,strategy:o}=e,i=Zn(r),a=ya(r);if(r===a)return t;let s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if((i||!i&&o!=="fixed")&&((Pi(r)!=="body"||Cf(a))&&(s=If(r)),Zn(r))){let d=Li(r,!0);c.x=d.x+r.clientLeft,c.y=d.y+r.clientTop}return{...t,x:t.x-s.scrollLeft+c.x,y:t.y-s.scrollTop+c.y}},isElement:Ea,getDimensions:u_,getOffsetParent:Fv,getDocumentElement:ya,getElementRects:e=>{let{reference:t,floating:r,strategy:o}=e;return{reference:ZO(t,Fv(r),o),floating:{...u_(r),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>Yd(e).direction==="rtl"};function y_(e,t,r,o){o===void 0&&(o={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:s=!0,animationFrame:c=!1}=o,d=i&&!c,p=a&&!c,f=d||p?[...Ea(e)?Tf(e):[],...Tf(t)]:[];f.forEach(x=>{d&&x.addEventListener("scroll",r,{passive:!0}),p&&x.addEventListener("resize",r)});let u,g=null;if(s){let x=!0;g=new ResizeObserver(()=>{x||r(),x=!1}),Ea(e)&&!c&&g.observe(e),g.observe(t)}let h=c?Li(e):null;return c&&function x(){let E=Li(e);!h||E.x===h.x&&E.y===h.y&&E.width===h.width&&E.height===h.height||r(),h=E,u=requestAnimationFrame(x)}(),r(),()=>{var x;f.forEach(E=>{d&&E.removeEventListener("scroll",r),p&&E.removeEventListener("resize",r)}),(x=g)==null||x.disconnect(),g=null,c&&cancelAnimationFrame(u)}}var E_=(e,t,r)=>i_(e,t,{platform:jO,...r});var Pr=w(J()),_f=w(J()),w_=w(Yn()),zv=typeof document<"u"?_f.useLayoutEffect:_f.useEffect;function $v(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let r,o,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(r=e.length,r!=t.length)return!1;for(o=r;o--!==0;)if(!$v(e[o],t[o]))return!1;return!0}if(i=Object.keys(e),r=i.length,r!==Object.keys(t).length)return!1;for(o=r;o--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[o]))return!1;for(o=r;o--!==0;){let a=i[o];if(!(a==="_owner"&&e.$$typeof)&&!$v(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function JO(e){let t=Pr.useRef(e);return zv(()=>{t.current=e}),t}function S_(e){let{middleware:t,placement:r="bottom",strategy:o="absolute",whileElementsMounted:i}=e===void 0?{}:e,a=Pr.useRef(null),s=Pr.useRef(null),c=JO(i),d=Pr.useRef(null),[p,f]=Pr.useState({x:null,y:null,strategy:o,placement:r,middlewareData:{}}),[u,g]=Pr.useState(t);$v(u?.map(A=>{let{options:N}=A;return N}),t?.map(A=>{let{options:N}=A;return N}))||g(t);let h=Pr.useCallback(()=>{!a.current||!s.current||E_(a.current,s.current,{middleware:u,placement:r,strategy:o}).then(A=>{x.current&&w_.flushSync(()=>{f(A)})})},[u,r,o]);zv(()=>{x.current&&h()},[h]);let x=Pr.useRef(!1);zv(()=>(x.current=!0,()=>{x.current=!1}),[]);let E=Pr.useCallback(()=>{if(typeof d.current=="function"&&(d.current(),d.current=null),a.current&&s.current)if(c.current){let A=c.current(a.current,s.current,h);d.current=A}else h()},[h,c]),T=Pr.useCallback(A=>{a.current=A,E()},[E]),M=Pr.useCallback(A=>{s.current=A,E()},[E]),I=Pr.useMemo(()=>({reference:a,floating:s}),[]);return Pr.useMemo(()=>({...p,update:h,refs:I,reference:T,floating:M}),[p,h,I,T,M])}var T_=e=>{let{element:t,padding:r}=e;function o(i){return Object.prototype.hasOwnProperty.call(i,"current")}return{name:"arrow",options:e,fn(i){return o(t)?t.current!=null?wf({element:t.current,padding:r}).fn(i):{}:t?wf({element:t,padding:r}).fn(i):{}}}};v();var Vd=w(J());var QO=(0,Vd.forwardRef)((e,t)=>{let{children:r,width:o=10,height:i=5,...a}=e;return(0,Vd.createElement)(Zt.svg,Ye({},a,{ref:t,width:o,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),e.asChild?r:(0,Vd.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),C_=QO;v();var I_=w(J());function __(e){let[t,r]=(0,I_.useState)(void 0);return en(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let o=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;let a=i[0],s,c;if("borderBoxSize"in a){let d=a.borderBoxSize,p=Array.isArray(d)?d[0]:d;s=p.inlineSize,c=p.blockSize}else s=e.offsetWidth,c=e.offsetHeight;r({width:s,height:c})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else r(void 0)},[e]),t}var A_="Popper",[Hv,Uv]=Xn(A_),[e7,k_]=Hv(A_),t7=e=>{let{__scopePopper:t,children:r}=e,[o,i]=(0,Pt.useState)(null);return(0,Pt.createElement)(e7,{scope:t,anchor:o,onAnchorChange:i},r)},r7="PopperAnchor",o7=(0,Pt.forwardRef)((e,t)=>{let{__scopePopper:r,virtualRef:o,...i}=e,a=k_(r7,r),s=(0,Pt.useRef)(null),c=Mr(t,s);return(0,Pt.useEffect)(()=>{a.onAnchorChange(o?.current||s.current)}),o?null:(0,Pt.createElement)(Zt.div,Ye({},i,{ref:c}))}),Af="PopperContent",[n7,i7]=Hv(Af),[a7,l7]=Hv(Af,{hasParent:!1,positionUpdateFns:new Set}),s7=(0,Pt.forwardRef)((e,t)=>{var r,o,i,a,s,c,d,p;let{__scopePopper:f,side:u="bottom",sideOffset:g=0,align:h="center",alignOffset:x=0,arrowPadding:E=0,collisionBoundary:T=[],collisionPadding:M=0,sticky:I="partial",hideWhenDetached:A=!1,avoidCollisions:N=!0,onPlaced:U,...R}=e,F=k_(Af,f),[B,Z]=(0,Pt.useState)(null),G=Mr(t,Ki=>Z(Ki)),[te,de]=(0,Pt.useState)(null),W=__(te),se=(r=W?.width)!==null&&r!==void 0?r:0,xe=(o=W?.height)!==null&&o!==void 0?o:0,Se=u+(h!=="center"?"-"+h:""),Je=typeof M=="number"?M:{top:0,right:0,bottom:0,left:0,...M},Ee=Array.isArray(T)?T:[T],ue=Ee.length>0,H={padding:Je,boundary:Ee.filter(p7),altBoundary:ue},{reference:Y,floating:le,strategy:oe,x:ne,y:ce,placement:pe,middlewareData:ye,update:Tt}=S_({strategy:"fixed",placement:Se,whileElementsMounted:y_,middleware:[f7(),Rv({mainAxis:g+xe,alignmentAxis:x}),N?Dv({mainAxis:!0,crossAxis:!1,limiter:I==="partial"?Nv():void 0,...H}):void 0,te?T_({element:te,padding:E}):void 0,N?Pv({...H}):void 0,Ov({...H,apply:({elements:Ki,availableWidth:Ua,availableHeight:Ah})=>{Ki.floating.style.setProperty("--radix-popper-available-width",`${Ua}px`),Ki.floating.style.setProperty("--radix-popper-available-height",`${Ah}px`)}}),g7({arrowWidth:se,arrowHeight:xe}),A?Lv({strategy:"referenceHidden"}):void 0].filter(u7)});en(()=>{Y(F.anchor)},[Y,F.anchor]);let vt=ne!==null&&ce!==null,[At,ht]=M_(pe),Ot=to(U);en(()=>{vt&&Ot?.()},[vt,Ot]);let mr=(i=ye.arrow)===null||i===void 0?void 0:i.x,Ih=(a=ye.arrow)===null||a===void 0?void 0:a.y,fn=((s=ye.arrow)===null||s===void 0?void 0:s.centerOffset)!==0,[Hm,_h]=(0,Pt.useState)();en(()=>{B&&_h(window.getComputedStyle(B).zIndex)},[B]);let{hasParent:$a,positionUpdateFns:br}=l7(Af,f),gn=!$a;(0,Pt.useLayoutEffect)(()=>{if(!gn)return br.add(Tt),()=>{br.delete(Tt)}},[gn,br,Tt]),en(()=>{gn&&vt&&Array.from(br).reverse().forEach(Ki=>requestAnimationFrame(Ki))},[gn,vt,br]);let Ha={"data-side":At,"data-align":ht,...R,ref:G,style:{...R.style,animation:vt?void 0:"none",opacity:(c=ye.hide)!==null&&c!==void 0&&c.referenceHidden?0:void 0}};return(0,Pt.createElement)("div",{ref:le,"data-radix-popper-content-wrapper":"",style:{position:oe,left:0,top:0,transform:vt?`translate3d(${Math.round(ne)}px, ${Math.round(ce)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:Hm,"--radix-popper-transform-origin":[(d=ye.transformOrigin)===null||d===void 0?void 0:d.x,(p=ye.transformOrigin)===null||p===void 0?void 0:p.y].join(" ")},dir:e.dir},(0,Pt.createElement)(n7,{scope:f,placedSide:At,onArrowChange:de,arrowX:mr,arrowY:Ih,shouldHideArrow:fn},gn?(0,Pt.createElement)(a7,{scope:f,hasParent:!0,positionUpdateFns:br},(0,Pt.createElement)(Zt.div,Ha)):(0,Pt.createElement)(Zt.div,Ha)))}),c7="PopperArrow",d7={top:"bottom",right:"left",bottom:"top",left:"right"},m7=(0,Pt.forwardRef)(function(t,r){let{__scopePopper:o,...i}=t,a=i7(c7,o),s=d7[a.placedSide];return(0,Pt.createElement)("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[s]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0}},(0,Pt.createElement)(C_,Ye({},i,{ref:r,style:{...i.style,display:"block"}})))});function u7(e){return e!==void 0}function p7(e){return e!==null}var f7=()=>({name:"anchorCssProperties",fn(e){let{rects:t,elements:r}=e,{width:o,height:i}=t.reference;return r.floating.style.setProperty("--radix-popper-anchor-width",`${o}px`),r.floating.style.setProperty("--radix-popper-anchor-height",`${i}px`),{}}}),g7=e=>({name:"transformOrigin",options:e,fn(t){var r,o,i,a,s;let{placement:c,rects:d,middlewareData:p}=t,u=((r=p.arrow)===null||r===void 0?void 0:r.centerOffset)!==0,g=u?0:e.arrowWidth,h=u?0:e.arrowHeight,[x,E]=M_(c),T={start:"0%",center:"50%",end:"100%"}[E],M=((o=(i=p.arrow)===null||i===void 0?void 0:i.x)!==null&&o!==void 0?o:0)+g/2,I=((a=(s=p.arrow)===null||s===void 0?void 0:s.y)!==null&&a!==void 0?a:0)+h/2,A="",N="";return x==="bottom"?(A=u?T:`${M}px`,N=`${-h}px`):x==="top"?(A=u?T:`${M}px`,N=`${d.floating.height+h}px`):x==="right"?(A=`${-h}px`,N=u?T:`${I}px`):x==="left"&&(A=`${d.floating.width+h}px`,N=u?T:`${I}px`),{data:{x:A,y:N}}}});function M_(e){let[t,r="center"]=e.split("-");return[t,r]}var P_=t7,L_=o7,R_=s7,D_=m7;v();var kf=w(J()),N_=w(Yn());var O_=(0,kf.forwardRef)((e,t)=>{var r;let{container:o=globalThis==null||(r=globalThis.document)===null||r===void 0?void 0:r.body,...i}=e;return o?N_.default.createPortal((0,kf.createElement)(Zt.div,Ye({},i,{ref:t})),o):null});v();var $r=w(J()),F_=w(Yn());function h7(e,t){return(0,$r.useReducer)((r,o)=>{let i=t[r][o];return i??r},e)}var Zs=e=>{let{present:t,children:r}=e,o=b7(t),i=typeof r=="function"?r({present:o.isPresent}):$r.Children.only(r),a=Mr(o.ref,i.ref);return typeof r=="function"||o.isPresent?(0,$r.cloneElement)(i,{ref:a}):null};Zs.displayName="Presence";function b7(e){let[t,r]=(0,$r.useState)(),o=(0,$r.useRef)({}),i=(0,$r.useRef)(e),a=(0,$r.useRef)("none"),s=e?"mounted":"unmounted",[c,d]=h7(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,$r.useEffect)(()=>{let p=Mf(o.current);a.current=c==="mounted"?p:"none"},[c]),en(()=>{let p=o.current,f=i.current;if(f!==e){let g=a.current,h=Mf(p);e?d("MOUNT"):h==="none"||p?.display==="none"?d("UNMOUNT"):d(f&&g!==h?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,d]),en(()=>{if(t){let p=u=>{let h=Mf(o.current).includes(u.animationName);u.target===t&&h&&(0,F_.flushSync)(()=>d("ANIMATION_END"))},f=u=>{u.target===t&&(a.current=Mf(o.current))};return t.addEventListener("animationstart",f),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{t.removeEventListener("animationstart",f),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:(0,$r.useCallback)(p=>{p&&(o.current=getComputedStyle(p)),r(p)},[])}}function Mf(e){return e?.animationName||"none"}v();var wa=w(J());function qs({prop:e,defaultProp:t,onChange:r=()=>{}}){let[o,i]=x7({defaultProp:t,onChange:r}),a=e!==void 0,s=a?e:o,c=to(r),d=(0,wa.useCallback)(p=>{if(a){let u=typeof p=="function"?p(e):p;u!==e&&c(u)}else i(p)},[a,e,i,c]);return[s,d]}function x7({defaultProp:e,onChange:t}){let r=(0,wa.useState)(e),[o]=r,i=(0,wa.useRef)(o),a=to(t);return(0,wa.useEffect)(()=>{i.current!==o&&(a(o),i.current=o)},[o,i,a]),r}v();var v7=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},js=new WeakMap,Pf=new WeakMap,Lf={},Gv=0,B_=function(e){return e&&(e.host||B_(e.parentNode))},y7=function(e,t){return t.map(function(r){if(e.contains(r))return r;var o=B_(r);return o&&e.contains(o)?o:(console.error("aria-hidden",r,"in not contained inside",e,". Doing nothing"),null)}).filter(function(r){return!!r})},E7=function(e,t,r,o){var i=y7(t,Array.isArray(e)?e:[e]);Lf[r]||(Lf[r]=new WeakMap);var a=Lf[r],s=[],c=new Set,d=new Set(i),p=function(u){!u||c.has(u)||(c.add(u),p(u.parentNode))};i.forEach(p);var f=function(u){!u||d.has(u)||Array.prototype.forEach.call(u.children,function(g){if(c.has(g))f(g);else try{var h=g.getAttribute(o),x=h!==null&&h!=="false",E=(js.get(g)||0)+1,T=(a.get(g)||0)+1;js.set(g,E),a.set(g,T),s.push(g),E===1&&x&&Pf.set(g,!0),T===1&&g.setAttribute(r,"true"),x||g.setAttribute(o,"true")}catch(M){console.error("aria-hidden: cannot operate on ",g,M)}})};return f(t),c.clear(),Gv++,function(){s.forEach(function(u){var g=js.get(u)-1,h=a.get(u)-1;js.set(u,g),a.set(u,h),g||(Pf.has(u)||u.removeAttribute(o),Pf.delete(u)),h||u.removeAttribute(r)}),Gv--,Gv||(js=new WeakMap,js=new WeakMap,Pf=new WeakMap,Lf={})}},z_=function(e,t,r){r===void 0&&(r="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),i=t||v7(e);return i?(o.push.apply(o,Array.from(i.querySelectorAll("[aria-live]"))),E7(o,i,r,"aria-hidden")):function(){return null}};v();v();v();var ho=function(){return ho=Object.assign||function(t){for(var r,o=1,i=arguments.length;o<i;o++){r=arguments[o];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},ho.apply(this,arguments)};function Rf(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,o=Object.getOwnPropertySymbols(e);i<o.length;i++)t.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(e,o[i])&&(r[o[i]]=e[o[i]]);return r}function $_(e,t,r){if(r||arguments.length===2)for(var o=0,i=t.length,a;o<i;o++)(a||!(o in t))&&(a||(a=Array.prototype.slice.call(t,0,o)),a[o]=t[o]);return e.concat(a||Array.prototype.slice.call(t))}var Bf=w(J());v();var Hr=w(J());v();var yl="right-scroll-bar-position",El="width-before-scroll-bar",Wv="with-scroll-bars-hidden",Kv="--removed-body-scroll-bar-size";v();v();function Df(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}v();var H_=w(J());function U_(e,t){var r=(0,H_.useState)(function(){return{value:e,callback:t,facade:{get current(){return r.value},set current(o){var i=r.value;i!==o&&(r.value=o,r.callback(o,i))}}}})[0];return r.callback=t,r.facade}v();var Nf=w(J());var w7=typeof window<"u"?Nf.useLayoutEffect:Nf.useEffect,G_=new WeakMap;function Yv(e,t){var r=U_(t||null,function(o){return e.forEach(function(i){return Df(i,o)})});return w7(function(){var o=G_.get(r);if(o){var i=new Set(o),a=new Set(e),s=r.current;i.forEach(function(c){a.has(c)||Df(c,null)}),a.forEach(function(c){i.has(c)||Df(c,s)})}G_.set(r,e)},[e]),r}v();v();v();function S7(e){return e}function T7(e,t){t===void 0&&(t=S7);var r=[],o=!1,i={read:function(){if(o)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:e},useMedium:function(a){var s=t(a,o);return r.push(s),function(){r=r.filter(function(c){return c!==s})}},assignSyncMedium:function(a){for(o=!0;r.length;){var s=r;r=[],s.forEach(a)}r={push:function(c){return a(c)},filter:function(){return r}}},assignMedium:function(a){o=!0;var s=[];if(r.length){var c=r;r=[],c.forEach(a),s=r}var d=function(){var f=s;s=[],f.forEach(a)},p=function(){return Promise.resolve().then(d)};p(),r={push:function(f){s.push(f),p()},filter:function(f){return s=s.filter(f),r}}}};return i}function Vv(e){e===void 0&&(e={});var t=T7(null);return t.options=ho({async:!0,ssr:!1},e),t}v();var W_=w(J()),K_=function(e){var t=e.sideCar,r=Rf(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var o=t.read();if(!o)throw new Error("Sidecar medium not found");return W_.createElement(o,ho({},r))};K_.isSideCarExport=!0;function Xv(e,t){return e.useMedium(t),K_}var Of=Vv();var Zv=function(){},Xd=Hr.forwardRef(function(e,t){var r=Hr.useRef(null),o=Hr.useState({onScrollCapture:Zv,onWheelCapture:Zv,onTouchMoveCapture:Zv}),i=o[0],a=o[1],s=e.forwardProps,c=e.children,d=e.className,p=e.removeScrollBar,f=e.enabled,u=e.shards,g=e.sideCar,h=e.noIsolation,x=e.inert,E=e.allowPinchZoom,T=e.as,M=T===void 0?"div":T,I=Rf(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),A=g,N=Yv([r,t]),U=ho(ho({},I),i);return Hr.createElement(Hr.Fragment,null,f&&Hr.createElement(A,{sideCar:Of,removeScrollBar:p,shards:u,noIsolation:h,inert:x,setCallbacks:a,allowPinchZoom:!!E,lockRef:r}),s?Hr.cloneElement(Hr.Children.only(c),ho(ho({},U),{ref:N})):Hr.createElement(M,ho({},U,{className:d,ref:N}),c))});Xd.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Xd.classNames={fullWidth:El,zeroRight:yl};v();v();var Lt=w(J());v();v();var Qs=w(J());v();v();v();var X_=w(J());v();v();var Y_;var V_=function(){if(Y_)return Y_;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function C7(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=V_();return t&&e.setAttribute("nonce",t),e}function I7(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function _7(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var qv=function(){var e=0,t=null;return{add:function(r){e==0&&(t=C7())&&(I7(t,r),_7(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}};var jv=function(){var e=qv();return function(t,r){X_.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}};var Zd=function(){var e=jv(),t=function(r){var o=r.styles,i=r.dynamic;return e(o,i),null};return t};v();var A7={left:0,top:0,right:0,gap:0},Jv=function(e){return parseInt(e||"",10)||0},k7=function(e){var t=window.getComputedStyle(document.body),r=t[e==="padding"?"paddingLeft":"marginLeft"],o=t[e==="padding"?"paddingTop":"marginTop"],i=t[e==="padding"?"paddingRight":"marginRight"];return[Jv(r),Jv(o),Jv(i)]},Qv=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return A7;var t=k7(e),r=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-r+t[2]-t[0])}};var M7=Zd(),Js="data-scroll-locked",P7=function(e,t,r,o){var i=e.left,a=e.top,s=e.right,c=e.gap;return r===void 0&&(r="margin"),`
21
+ .`.concat(Wv,` {
22
+ overflow: hidden `).concat(o,`;
23
+ padding-right: `).concat(c,"px ").concat(o,`;
5
24
  }
6
- body[`).concat(ka,`] {
7
- overflow: hidden `).concat(r,`;
25
+ body[`).concat(Js,`] {
26
+ overflow: hidden `).concat(o,`;
8
27
  overscroll-behavior: contain;
9
- `).concat([e&&"position: relative ".concat(r,";"),o==="margin"&&`
10
- padding-left: `.concat(n,`px;
11
- padding-top: `).concat(i,`px;
12
- padding-right: `).concat(a,`px;
28
+ `).concat([t&&"position: relative ".concat(o,";"),r==="margin"&&`
29
+ padding-left: `.concat(i,`px;
30
+ padding-top: `).concat(a,`px;
31
+ padding-right: `).concat(s,`px;
13
32
  margin-left:0;
14
33
  margin-top:0;
15
- margin-right: `).concat(l,"px ").concat(r,`;
16
- `),o==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),`
34
+ margin-right: `).concat(c,"px ").concat(o,`;
35
+ `),r==="padding"&&"padding-right: ".concat(c,"px ").concat(o,";")].filter(Boolean).join(""),`
17
36
  }
18
37
 
19
- .`).concat(si,` {
20
- right: `).concat(l,"px ").concat(r,`;
38
+ .`).concat(yl,` {
39
+ right: `).concat(c,"px ").concat(o,`;
21
40
  }
22
41
 
23
- .`).concat(ci,` {
24
- margin-right: `).concat(l,"px ").concat(r,`;
42
+ .`).concat(El,` {
43
+ margin-right: `).concat(c,"px ").concat(o,`;
25
44
  }
26
45
 
27
- .`).concat(si," .").concat(si,` {
28
- right: 0 `).concat(r,`;
46
+ .`).concat(yl," .").concat(yl,` {
47
+ right: 0 `).concat(o,`;
29
48
  }
30
49
 
31
- .`).concat(ci," .").concat(ci,` {
32
- margin-right: 0 `).concat(r,`;
50
+ .`).concat(El," .").concat(El,` {
51
+ margin-right: 0 `).concat(o,`;
33
52
  }
34
53
 
35
- body[`).concat(ka,`] {
36
- `).concat(Nf,": ").concat(l,`px;
54
+ body[`).concat(Js,`] {
55
+ `).concat(Kv,": ").concat(c,`px;
37
56
  }
38
- `)},TE=function(){var t=parseInt(document.body.getAttribute(ka)||"0",10);return isFinite(t)?t:0},xC=function(){Ia.useEffect(function(){return document.body.setAttribute(ka,(TE()+1).toString()),function(){var t=TE()-1;t<=0?document.body.removeAttribute(ka):document.body.setAttribute(ka,t.toString())}},[])},Gf=function(t){var e=t.noRelative,o=t.noImportant,r=t.gapMode,n=r===void 0?"margin":r;xC();var i=Ia.useMemo(function(){return Wf(n)},[n]);return Ia.createElement(gC,{styles:bC(i,!e,n,o?"":"!important")})};h();var Vf=!1;if(typeof window<"u")try{ts=Object.defineProperty({},"passive",{get:function(){return Vf=!0,!0}}),window.addEventListener("test",ts,ts),window.removeEventListener("test",ts,ts)}catch{Vf=!1}var ts,di=Vf?{passive:!1}:!1;h();var vC=function(t){return t.tagName==="TEXTAREA"},kE=function(t,e){var o=window.getComputedStyle(t);return o[e]!=="hidden"&&!(o.overflowY===o.overflowX&&!vC(t)&&o[e]==="visible")},EC=function(t){return kE(t,"overflowY")},yC=function(t){return kE(t,"overflowX")},Kf=function(t,e){var o=e;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=IE(t,o);if(r){var n=AE(t,o),i=n[1],a=n[2];if(i>a)return!0}o=o.parentNode}while(o&&o!==document.body);return!1},wC=function(t){var e=t.scrollTop,o=t.scrollHeight,r=t.clientHeight;return[e,o,r]},CC=function(t){var e=t.scrollLeft,o=t.scrollWidth,r=t.clientWidth;return[e,o,r]},IE=function(t,e){return t==="v"?EC(e):yC(e)},AE=function(t,e){return t==="v"?wC(e):CC(e)},SC=function(t,e){return t==="h"&&e==="rtl"?-1:1},ME=function(t,e,o,r,n){var i=SC(t,window.getComputedStyle(e).direction),a=i*r,l=o.target,s=e.contains(l),d=!1,c=a>0,m=0,u=0;do{var f=AE(t,l),b=f[0],x=f[1],E=f[2],T=x-E-i*b;(b||T)&&IE(t,l)&&(m+=T,u+=b),l=l.parentNode}while(!s&&l!==document.body||s&&(e.contains(l)||e===l));return(c&&(n&&m===0||!n&&a>m)||!c&&(n&&u===0||!n&&-a>u))&&(d=!0),d};var Gd=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},_E=function(t){return[t.deltaX,t.deltaY]},LE=function(t){return t&&"current"in t?t.current:t},TC=function(t,e){return t[0]===e[0]&&t[1]===e[1]},kC=function(t){return`
39
- .block-interactivity-`.concat(t,` {pointer-events: none;}
40
- .allow-interactivity-`).concat(t,` {pointer-events: all;}
41
- `)},IC=0,Aa=[];function PE(t){var e=Xe.useRef([]),o=Xe.useRef([0,0]),r=Xe.useRef(),n=Xe.useState(IC++)[0],i=Xe.useState(function(){return es()})[0],a=Xe.useRef(t);Xe.useEffect(function(){a.current=t},[t]),Xe.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(n));var x=gE([t.lockRef.current],(t.shards||[]).map(LE),!0).filter(Boolean);return x.forEach(function(E){return E.classList.add("allow-interactivity-".concat(n))}),function(){document.body.classList.remove("block-interactivity-".concat(n)),x.forEach(function(E){return E.classList.remove("allow-interactivity-".concat(n))})}}},[t.inert,t.lockRef.current,t.shards]);var l=Xe.useCallback(function(x,E){if("touches"in x&&x.touches.length===2)return!a.current.allowPinchZoom;var T=Gd(x),C=o.current,w="deltaX"in x?x.deltaX:C[0]-T[0],A="deltaY"in x?x.deltaY:C[1]-T[1],z,I=x.target,M=Math.abs(w)>Math.abs(A)?"h":"v";if("touches"in x&&M==="h"&&I.type==="range")return!1;var _=Kf(M,I);if(!_)return!0;if(_?z=M:(z=M==="v"?"h":"v",_=Kf(M,I)),!_)return!1;if(!r.current&&"changedTouches"in x&&(w||A)&&(r.current=z),!z)return!0;var U=r.current||z;return ME(U,E,x,U==="h"?w:A,!0)},[]),s=Xe.useCallback(function(x){var E=x;if(!(!Aa.length||Aa[Aa.length-1]!==i)){var T="deltaY"in E?_E(E):Gd(E),C=e.current.filter(function(z){return z.name===E.type&&z.target===E.target&&TC(z.delta,T)})[0];if(C&&C.should){E.cancelable&&E.preventDefault();return}if(!C){var w=(a.current.shards||[]).map(LE).filter(Boolean).filter(function(z){return z.contains(E.target)}),A=w.length>0?l(E,w[0]):!a.current.noIsolation;A&&E.cancelable&&E.preventDefault()}}},[]),d=Xe.useCallback(function(x,E,T,C){var w={name:x,delta:E,target:T,should:C};e.current.push(w),setTimeout(function(){e.current=e.current.filter(function(A){return A!==w})},1)},[]),c=Xe.useCallback(function(x){o.current=Gd(x),r.current=void 0},[]),m=Xe.useCallback(function(x){d(x.type,_E(x),x.target,l(x,t.lockRef.current))},[]),u=Xe.useCallback(function(x){d(x.type,Gd(x),x.target,l(x,t.lockRef.current))},[]);Xe.useEffect(function(){return Aa.push(i),t.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:u}),document.addEventListener("wheel",s,di),document.addEventListener("touchmove",s,di),document.addEventListener("touchstart",c,di),function(){Aa=Aa.filter(function(x){return x!==i}),document.removeEventListener("wheel",s,di),document.removeEventListener("touchmove",s,di),document.removeEventListener("touchstart",c,di)}},[]);var f=t.removeScrollBar,b=t.inert;return Xe.createElement(Xe.Fragment,null,b?Xe.createElement(i,{styles:kC(n)}):null,f?Xe.createElement(Gf,{gapMode:"margin"}):null)}var RE=Bf(Wd,PE);var DE=Vd.forwardRef(function(t,e){return Vd.createElement(Ql,co({},t,{ref:e,sideCar:RE}))});DE.classNames=Ql.classNames;var Yf=DE;var NE="Popover",[OE,xP]=Er(NE,[Pf]),Kd=Pf(),[AC,Ma]=OE(NE),MC=t=>{let{__scopePopover:e,children:o,open:r,defaultOpen:n,onOpenChange:i,modal:a=!1}=t,l=Kd(e),s=(0,Te.useRef)(null),[d,c]=(0,Te.useState)(!1),[m=!1,u]=Sa({prop:r,defaultProp:n,onChange:i});return(0,Te.createElement)(lE,l,(0,Te.createElement)(AC,{scope:e,contentId:Ea(),triggerRef:s,open:m,onOpenChange:u,onOpenToggle:(0,Te.useCallback)(()=>u(f=>!f),[u]),hasCustomAnchor:d,onCustomAnchorAdd:(0,Te.useCallback)(()=>c(!0),[]),onCustomAnchorRemove:(0,Te.useCallback)(()=>c(!1),[]),modal:a},o))};var _C="PopoverTrigger",LC=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=Ma(_C,o),i=Kd(o),a=Ft(e,n.triggerRef),l=(0,Te.createElement)(dt.button,Ce({type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":zE(n.open)},r,{ref:a,onClick:Et(t.onClick,n.onOpenToggle)}));return n.hasCustomAnchor?l:(0,Te.createElement)(sE,Ce({asChild:!0},i),l)}),FE="PopoverPortal",[PC,RC]=OE(FE,{forceMount:void 0}),DC=t=>{let{__scopePopover:e,forceMount:o,children:r,container:n}=t,i=Ma(FE,e);return(0,Te.createElement)(PC,{scope:e,forceMount:o},(0,Te.createElement)(Ca,{present:o||i.open},(0,Te.createElement)(pE,{asChild:!0,container:n},r)))},os="PopoverContent",NC=(0,Te.forwardRef)((t,e)=>{let o=RC(os,t.__scopePopover),{forceMount:r=o.forceMount,...n}=t,i=Ma(os,t.__scopePopover);return(0,Te.createElement)(Ca,{present:r||i.open},i.modal?(0,Te.createElement)(OC,Ce({},n,{ref:e})):(0,Te.createElement)(FC,Ce({},n,{ref:e})))}),OC=(0,Te.forwardRef)((t,e)=>{let o=Ma(os,t.__scopePopover),r=(0,Te.useRef)(null),n=Ft(e,r),i=(0,Te.useRef)(!1);return(0,Te.useEffect)(()=>{let a=r.current;if(a)return hE(a)},[]),(0,Te.createElement)(Yf,{as:yn,allowPinchZoom:!0},(0,Te.createElement)(BE,Ce({},t,{ref:n,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Et(t.onCloseAutoFocus,a=>{var l;a.preventDefault(),i.current||(l=o.triggerRef.current)===null||l===void 0||l.focus()}),onPointerDownOutside:Et(t.onPointerDownOutside,a=>{let l=a.detail.originalEvent,s=l.button===0&&l.ctrlKey===!0,d=l.button===2||s;i.current=d},{checkForDefaultPrevented:!1}),onFocusOutside:Et(t.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})))}),FC=(0,Te.forwardRef)((t,e)=>{let o=Ma(os,t.__scopePopover),r=(0,Te.useRef)(!1);return(0,Te.createElement)(BE,Ce({},t,{ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:n=>{var i;if((i=t.onCloseAutoFocus)===null||i===void 0||i.call(t,n),!n.defaultPrevented){var a;r.current||(a=o.triggerRef.current)===null||a===void 0||a.focus(),n.preventDefault()}r.current=!1},onInteractOutside:n=>{var i,a;(i=t.onInteractOutside)===null||i===void 0||i.call(t,n),n.defaultPrevented||(r.current=!0);let l=n.target;((a=o.triggerRef.current)===null||a===void 0?void 0:a.contains(l))&&n.preventDefault()}}))}),BE=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:i,disableOutsidePointerEvents:a,onEscapeKeyDown:l,onPointerDownOutside:s,onFocusOutside:d,onInteractOutside:c,...m}=t,u=Ma(os,o),f=Kd(o);return C2(),(0,Te.createElement)(A2,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:n,onUnmountAutoFocus:i},(0,Te.createElement)(v2,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:c,onEscapeKeyDown:l,onPointerDownOutside:s,onFocusOutside:d,onDismiss:()=>u.onOpenChange(!1)},(0,Te.createElement)(cE,Ce({"data-state":zE(u.open),role:"dialog",id:u.contentId},f,m,{ref:e,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))});var BC=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=Kd(o);return(0,Te.createElement)(dE,Ce({},n,r,{ref:e}))});function zE(t){return t?"open":"closed"}var Yd=MC;var Zd=LC,$E=DC,jd=NC;var HE=BC;h();var or=v(H(),1);h();var qd=v(H(),1),VE=v(br(),1);h();var Zf=v(H(),1),jf=Zf.default.createContext(null),_e=()=>Zf.default.useContext(jf);h();var rs=v(H(),1);var Xd=t=>{let[e,o]=(0,rs.useState)(null),r=Me(),{theme:n}=_e(),{container:i}=_t();return(0,rs.useLayoutEffect)(()=>{e&&(e.className="",e.classList.add("excalidraw",...t?.className?.split(/\s+/)||[]),e.classList.toggle("excalidraw--mobile",r.editor.isMobile),e.classList.toggle("theme--dark",n===be.DARK))},[e,n,r.editor.isMobile,t?.className]),(0,rs.useLayoutEffect)(()=>{let a=t?.parentSelector?i?.querySelector(t.parentSelector):document.body;if(!a)return;let l=document.createElement("div");return a.appendChild(l),o(l),()=>{a.removeChild(l)}},[i,t?.parentSelector]),e};h();var WE=v(H(),1);function _a(t,e,o){(0,WE.useEffect)(()=>{function r(n){let i=n;if(!t.current)return;let a=o?.(i,t.current);if(a===!0)return;if(a===!1)return e(i);t.current.contains(i.target)||!document.documentElement.contains(i.target)||i.target.closest("[data-radix-portal]")||i.target===document.documentElement&&document.body.style.pointerEvents==="none"||i.target.closest("[data-prevent-outside-click]")||e(i)}return document.addEventListener("pointerdown",r),document.addEventListener("touchstart",r),()=>{document.removeEventListener("pointerdown",r),document.removeEventListener("touchstart",r)}},[t,e,o])}h();var GE=v(H(),1),La=t=>{let e=(0,GE.useRef)(t);return Object.assign(e.current,t),e.current};var YE=v(k(),1),Tn=We(null),KE=({onCancel:t,onChange:e,onSelect:o,colorPickerType:r})=>{let n=Xd({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),i=_e(),a=kn(),l=mo(),s=we(a,i),d=La({app:l,onCancel:t,onChange:e,onSelect:o,selectedElements:s}),{container:c}=_t();(0,qd.useEffect)(()=>{let u=m.current;if(!u||!l.canvas||!n)return;let f=!1,b=l.canvas.getContext("2d"),x=({clientX:I,clientY:M})=>{let _=b.getImageData((I-i.offsetLeft)*window.devicePixelRatio,(M-i.offsetTop)*window.devicePixelRatio,1,1).data;return c1(_[0],_[1],_[2])},E=({clientX:I,clientY:M,altKey:_})=>{u.style.top=`${M+20}px`,u.style.left=`${I+20}px`;let U=x({clientX:I,clientY:M});f&&d.onChange(r,U,d.selectedElements,{altKey:_}),u.style.background=U},T=()=>{d.onCancel()},C=(I,M)=>{d.onSelect(I,M)},w=I=>{f=!0,I.stopImmediatePropagation()},A=I=>{f=!1,c?.focus(),I.stopImmediatePropagation(),I.preventDefault(),C(x(I),I)},z=I=>{I.key===S.ESCAPE&&(I.preventDefault(),I.stopImmediatePropagation(),T())};return n.tabIndex=-1,n.focus(),E({clientX:d.app.lastViewportPosition.x,clientY:d.app.lastViewportPosition.y,altKey:!1}),n.addEventListener("keydown",z),n.addEventListener("pointerdown",w),n.addEventListener("pointerup",A),window.addEventListener("pointermove",E,{passive:!0}),window.addEventListener("blur",T),()=>{f=!1,n.removeEventListener("keydown",z),n.removeEventListener("pointerdown",w),n.removeEventListener("pointerup",A),window.removeEventListener("pointermove",E),window.removeEventListener("blur",T)}},[d,l.canvas,n,r,c,i.offsetLeft,i.offsetTop]);let m=(0,qd.useRef)(null);return _a(m,()=>{t()},u=>!!u.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),n?(0,VE.createPortal)((0,YE.jsx)("div",{ref:m,className:"excalidraw-eye-dropper-preview"}),n):null};var wr=v(k(),1),ZE=({color:t,onChange:e,label:o,colorPickerType:r})=>{let n=Me(),[i,a]=(0,or.useState)(t),[l,s]=Se(Do);(0,or.useEffect)(()=>{a(t)},[t]);let d=(0,or.useCallback)(b=>{let x=b.toLowerCase(),E=jE(x);E&&e(E),a(x)},[e]),c=(0,or.useRef)(null),m=(0,or.useRef)(null);(0,or.useEffect)(()=>{c.current&&c.current.focus()},[l]);let[u,f]=Se(Tn,De);return(0,or.useEffect)(()=>()=>{f(null)},[f]),(0,wr.jsxs)("div",{className:"color-picker__input-label",children:[(0,wr.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,wr.jsx)("input",{ref:l==="hex"?c:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":o,onChange:b=>{d(b.target.value)},value:(i||"").replace(/^#/,""),onBlur:()=>{a(t)},tabIndex:-1,onFocus:()=>s("hex"),onKeyDown:b=>{b.key!==S.TAB&&(b.key===S.ESCAPE&&m.current?.focus(),b.stopPropagation())}}),!n.editor.isMobile&&(0,wr.jsxs)(wr.Fragment,{children:[(0,wr.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,wr.jsx)("div",{ref:m,className:$("excalidraw-eye-dropper-trigger",{selected:u}),onClick:()=>f(b=>b?null:{keepOpenOnAlt:!1,onSelect:x=>e(x),colorPickerType:r}),title:`${g("labels.eyeDropper")} \u2014 ${S.I.toLocaleUpperCase()} or ${F("Alt")} `,children:yv})]})]})};var qE=v(H(),1);var Lt=v(k(),1),XE=t=>{let e=new Option().style;return e.color=t,!!e.color},jE=t=>jn(t)?t:XE(`#${t}`)?`#${t}`:XE(t)?t:null,zC=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=Ar,updateData:a})=>{let[,l]=Se(Do),[s,d]=Se(Tn,De),{container:c}=_t(),m=Me(),u=(0,Lt.jsxs)("div",{children:[(0,Lt.jsx)(ba,{children:g("colorPicker.hexCode")}),(0,Lt.jsx)(ZE,{color:e,label:r,onChange:x=>{o(x)},colorPickerType:t})]}),f=(0,qE.useRef)(null),b=()=>{f.current?.querySelector(".color-picker-content")?.focus()};return(0,Lt.jsx)($E,{container:c,children:(0,Lt.jsxs)(jd,{ref:f,className:"focus-visible-none","data-prevent-outside-click":!0,onFocusOutside:x=>{b(),x.preventDefault()},onPointerDownOutside:x=>{s&&x.preventDefault()},onCloseAutoFocus:x=>{x.stopPropagation(),x.preventDefault(),c&&!z1(document.activeElement)&&c.focus(),a({openPopup:null}),l(null)},side:m.editor.isMobile&&!m.viewport.isLandscape?"bottom":"right",align:m.editor.isMobile&&!m.viewport.isLandscape?"center":"start",alignOffset:-16,sideOffset:20,style:{zIndex:"var(--zIndex-layerUI)",backgroundColor:"var(--popup-bg-color)",maxWidth:"208px",maxHeight:window.innerHeight,padding:"12px",borderRadius:"8px",boxSizing:"border-box",overflowY:"auto",boxShadow:"0px 7px 14px rgba(0, 0, 0, 0.05), 0px 0px 3.12708px rgba(0, 0, 0, 0.0798), 0px 0px 0.931014px rgba(0, 0, 0, 0.1702)"},children:[i?(0,Lt.jsx)(m2,{palette:i,color:e,onChange:x=>{o(x)},onEyeDropperToggle:x=>{d(E=>x?(E=E||{keepOpenOnAlt:!0,onSelect:o,colorPickerType:t},E.keepOpenOnAlt=!0,E):x===!1||E?null:{keepOpenOnAlt:!1,onSelect:o,colorPickerType:t})},onEscape:x=>{s?d(null):To(x.target)?b():a({openPopup:null})},label:r,type:t,elements:n,updateData:a,children:u}):u,(0,Lt.jsx)(HE,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})},$C=({label:t,color:e,type:o})=>(0,Lt.jsx)(Zd,{type:"button",className:$("color-picker__button active-color",{"is-transparent":e==="transparent"||!e}),"aria-label":t,style:e?{"--swatch-color":e}:void 0,title:o==="elementStroke"?g("labels.showStroke"):g("labels.showBackground"),children:(0,Lt.jsx)("div",{className:"color-picker__button-outline"})}),ns=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=Ar,topPicks:a,updateData:l,appState:s})=>(0,Lt.jsx)("div",{children:(0,Lt.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,Lt.jsx)(t2,{activeColor:e,onChange:o,type:t,topPicks:a}),(0,Lt.jsx)("div",{style:{width:1,height:"100%",backgroundColor:"var(--default-border-color)",margin:"0 auto"}}),(0,Lt.jsxs)(Yd,{open:s.openPopup===t,onOpenChange:d=>{l({openPopup:d?t:null})},children:[(0,Lt.jsx)($C,{color:e,label:r,type:t}),s.openPopup===t&&(0,Lt.jsx)(zC,{type:t,color:e,onChange:o,label:r,elements:n,palette:i,updateData:l})]})]})});h();var An=v(H(),1);h();var In=v(H(),1);var JE=v(br(),1);var QE=v(k(),1),Jd=({children:t,left:e,top:o,onCloseRequest:r,fitInViewport:n=!1,offsetLeft:i=0,offsetTop:a=0,viewportWidth:l=window.innerWidth,viewportHeight:s=window.innerHeight})=>{let d=(0,In.useRef)(null);(0,In.useEffect)(()=>{let m=d.current;if(!m)return;m.contains(document.activeElement)||m.focus();let u=f=>{if(f.key===S.TAB){let b=hl(m),{activeElement:x}=document,E=b.findIndex(T=>T===x);x===m?(f.shiftKey?b[b.length-1]?.focus():b[0].focus(),f.preventDefault(),f.stopImmediatePropagation()):E===0&&f.shiftKey?(b[b.length-1]?.focus(),f.preventDefault(),f.stopImmediatePropagation()):E===b.length-1&&!f.shiftKey&&(b[0]?.focus(),f.preventDefault(),f.stopImmediatePropagation())}};return m.addEventListener("keydown",u),()=>m.removeEventListener("keydown",u)},[]);let c=(0,In.useRef)(null);return(0,In.useLayoutEffect)(()=>{if(n&&d.current&&o!=null&&e!=null){let m=d.current,{width:u,height:f}=m.getBoundingClientRect();if(c.current?.top===o&&c.current?.left===e)return;c.current={top:o,left:e},u>=l?(m.style.width=`${l}px`,m.style.left="0px",m.style.overflowX="scroll"):e+u-i>l?m.style.left=`${l-u-10}px`:m.style.left=`${e}px`,f>=s?(m.style.height=`${s-20}px`,m.style.top="10px",m.style.overflowY="scroll"):o+f-a>s?m.style.top=`${s-f}px`:m.style.top=`${o}px`}},[o,e,n,l,s,i,a]),(0,In.useEffect)(()=>{if(r){let m=u=>{d.current?.contains(u.target)||(0,JE.unstable_batchedUpdates)(()=>r(u))};return document.addEventListener("pointerdown",m,!1),()=>document.removeEventListener("pointerdown",m,!1)}},[r]),(0,QE.jsx)("div",{className:"popover",ref:d,tabIndex:-1,children:t})};var ro=v(k(),1);function HC({options:t,value:e,label:o,onChange:r,onClose:n}){let i=An.default.useRef(),a=An.default.useRef(),l=An.default.useRef(null);return An.default.useEffect(()=>{a.current?a.current.focus():l.current&&l.current.focus()},[]),(0,ro.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":o,onKeyDown:d=>{let c=t.find(m=>m.keyBinding===d.key.toLowerCase());if(!(d.metaKey||d.altKey||d.ctrlKey)&&c){let m=t.indexOf(c);l.current.children[m].focus(),d.preventDefault()}else if(d.key===S.TAB)setTimeout(()=>{let m=a.current,u=document.activeElement;m!==u&&n()},0);else if(Wi(d.key)){let{activeElement:m}=document,u=Gr().rtl,f=Array.prototype.indexOf.call(l.current.children,m);if(f!==-1){let b=t.length,x=f;switch(d.key){case(u?S.ARROW_LEFT:S.ARROW_RIGHT):case S.ARROW_DOWN:{x=(f+1)%b;break}case(u?S.ARROW_RIGHT:S.ARROW_LEFT):case S.ARROW_UP:{x=(b+f-1)%b;break}}l.current.children[x].focus()}d.preventDefault()}else(d.key===S.ESCAPE||d.key===S.ENTER)&&(d.preventDefault(),n());d.nativeEvent.stopImmediatePropagation(),d.stopPropagation()},children:(0,ro.jsx)("div",{className:"picker-content",ref:l,children:t.map((d,c)=>(0,ro.jsxs)("button",{className:$("picker-option",{active:e===d.value}),onClick:m=>{m.currentTarget.focus(),r(d.value)},title:`${d.text} ${d.keyBinding&&`\u2014 ${d.keyBinding.toUpperCase()}`}`,"aria-label":d.text||"none","aria-keyshortcuts":d.keyBinding||void 0,ref:m=>{m&&c===0&&(i.current=m),m&&d.value===e&&(a.current=m)},onFocus:()=>{r(d.value)},children:[d.icon,d.keyBinding&&(0,ro.jsx)("span",{className:"picker-keybinding",children:d.keyBinding})]},d.text))})})}function Xf({value:t,label:e,options:o,onChange:r,group:n=""}){let[i,a]=An.default.useState(!1),l=An.default.useRef(null),s=Gr().rtl;return(0,ro.jsxs)("div",{children:[(0,ro.jsx)("button",{name:n,className:i?"active":"","aria-label":e,onClick:()=>a(!i),ref:l,children:o.find(d=>d.value===t)?.icon}),(0,ro.jsx)(An.default.Suspense,{fallback:"",children:i?(0,ro.jsxs)(ro.Fragment,{children:[(0,ro.jsx)(Jd,{onCloseRequest:d=>d.target!==l.current&&a(!1),...s?{right:5.5}:{left:-5.5},children:(0,ro.jsx)(HC,{options:o.filter(d=>d.showInPicker!==!1),value:t,label:e,onChange:r,onClose:()=>{a(!1),l.current?.focus()}})}),(0,ro.jsx)("div",{className:"picker-triangle"})]}):null})]})}var le=v(k(),1),ty=.1,bo=(t,e,o,r=!1)=>{let n=pe(we(t,e,{includeBoundTextElement:r}));return t.map(i=>n.get(i.id)||i.id===e.editingElement?.id?o(i):i)},po=function(t,e,o,r,n){let i=e.editingElement,a=ye(t),l=null;return i&&(l=o(i)),l||(Fe(a,e)?l=U0(r===!0?a:a.filter(d=>r(d)),e,o)??(typeof n=="function"?n(!0):n):l=typeof n=="function"?n(!1):n),l},UC=(t,e)=>xt(e)?e:re(e,{x:t.textAlign==="left"?t.x:t.x+(t.width-e.width)/(t.textAlign==="center"?2:1),y:t.y+(t.height-e.height)/2},!1),qf=(t,e,o,r,n)=>{let i=new Set;return{elements:bo(t,e,a=>{if(se(a)){let l=r(a);i.add(l);let s=he(a,{fontSize:l});return Ut(s,o.scene.getContainerElement(a),o.scene.getNonDeletedElementsMap()),s=UC(a,s),s}return a},!0),appState:{...e,currentItemFontSize:i.size===1?[...i][0]:n??e.currentItemFontSize},storeAction:P.CAPTURE}},WC=W({name:"changeStrokeColor",label:"labels.stroke",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemStrokeColor&&{elements:bo(t,e,r=>wl(r.type)?he(r,{strokeColor:o.currentItemStrokeColor}):r,!0)},appState:{...e,...o},storeAction:o.currentItemStrokeColor?P.CAPTURE:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("h3",{"aria-hidden":"true",children:g("labels.stroke")}),(0,le.jsx)(ns,{topPicks:Ks,palette:l1,type:"elementStroke",label:g("labels.stroke"),color:po(t,e,n=>n.strokeColor,!0,e.currentItemStrokeColor),onChange:n=>o({currentItemStrokeColor:n}),elements:t,appState:e,updateData:o})]})}),GC=W({name:"changeBackgroundColor",label:"labels.changeBackground",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemBackgroundColor&&{elements:bo(t,e,r=>he(r,{backgroundColor:o.currentItemBackgroundColor}))},appState:{...e,...o},storeAction:o.currentItemBackgroundColor?P.CAPTURE:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("h3",{"aria-hidden":"true",children:g("labels.background")}),(0,le.jsx)(ns,{topPicks:Ys,palette:s1,type:"elementBackground",label:g("labels.background"),color:po(t,e,n=>n.backgroundColor,!0,e.currentItemBackgroundColor),onChange:n=>o({currentItemBackgroundColor:n}),elements:t,appState:e,updateData:o})]})}),VC=W({name:"changeFillStyle",label:"labels.fill",trackEvent:!1,perform:(t,e,o,r)=>(xe("element","changeFillStyle",`${o} (${r.device.editor.isMobile?"mobile":"desktop"})`),{elements:bo(t,e,n=>he(n,{fillStyle:o})),appState:{...e,currentItemFillStyle:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=we(t,e),n=r.length>0&&r.every(i=>i.fillStyle==="zigzag");return(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.fill")}),(0,le.jsx)(xr,{type:"button",options:[{value:"hachure",text:`${n?g("labels.zigzag"):g("labels.hachure")} (${F("Alt-Click")})`,icon:n?Bx:zx,active:n?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:g("labels.crossHatch"),icon:$x,testId:"fill-cross-hatch"},{value:"solid",text:g("labels.solid"),icon:Hx,testId:"fill-solid"}],value:po(t,e,i=>i.fillStyle,i=>i.hasOwnProperty("fillStyle"),i=>i?null:e.currentItemFillStyle),onClick:(i,a)=>{let l=a.altKey&&i==="hachure"&&r.every(s=>s.fillStyle==="hachure")?"zigzag":i;o(l)}})]})}}),KC=W({name:"changeStrokeWidth",label:"labels.strokeWidth",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{strokeWidth:o})),appState:{...e,currentItemStrokeWidth:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.strokeWidth")}),(0,le.jsx)(xr,{group:"stroke-width",options:[{value:nc.thin,text:g("labels.thin"),icon:Ju,testId:"strokeWidth-thin"},{value:nc.bold,text:g("labels.bold"),icon:Ux,testId:"strokeWidth-bold"},{value:nc.extraBold,text:g("labels.extraBold"),icon:Wx,testId:"strokeWidth-extraBold"}],value:po(t,e,r=>r.strokeWidth,r=>r.hasOwnProperty("strokeWidth"),r=>r?null:e.currentItemStrokeWidth),onChange:r=>o(r)})]})}),YC=W({name:"changeSloppiness",label:"labels.sloppiness",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{seed:ob(),roughness:o})),appState:{...e,currentItemRoughness:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.sloppiness")}),(0,le.jsx)(xr,{group:"sloppiness",options:[{value:0,text:g("labels.architect"),icon:Kx},{value:1,text:g("labels.artist"),icon:Yx},{value:2,text:g("labels.cartoonist"),icon:Zx}],value:po(t,e,r=>r.roughness,r=>r.hasOwnProperty("roughness"),r=>r?null:e.currentItemRoughness),onChange:r=>o(r)})]})}),dD=W({name:"changeStrokeStyle",label:"labels.strokeStyle",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{strokeStyle:o})),appState:{...e,currentItemStrokeStyle:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.strokeStyle")}),(0,le.jsx)(xr,{group:"strokeStyle",options:[{value:"solid",text:g("labels.strokeStyle_solid"),icon:Ju},{value:"dashed",text:g("labels.strokeStyle_dashed"),icon:Gx},{value:"dotted",text:g("labels.strokeStyle_dotted"),icon:Vx}],value:po(t,e,r=>r.strokeStyle,r=>r.hasOwnProperty("strokeStyle"),r=>r?null:e.currentItemStrokeStyle),onChange:r=>o(r)})]})}),ZC=W({name:"changeOpacity",label:"labels.opacity",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{opacity:o}),!0),appState:{...e,currentItemOpacity:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,le.jsxs)("label",{className:"control-label",children:[g("labels.opacity"),(0,le.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:r=>o(+r.target.value),value:po(t,e,r=>r.opacity,!0,e.currentItemOpacity)??void 0})]})}),jC=W({name:"changeFontSize",label:"labels.fontSize",trackEvent:!1,perform:(t,e,o,r)=>qf(t,e,r,()=>o,o),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.fontSize")}),(0,le.jsx)(xr,{group:"font-size",options:[{value:16,text:g("labels.small"),icon:iv,testId:"fontSize-small"},{value:20,text:g("labels.medium"),icon:av,testId:"fontSize-medium"},{value:28,text:g("labels.large"),icon:lv,testId:"fontSize-large"},{value:36,text:g("labels.veryLarge"),icon:sv,testId:"fontSize-veryLarge"}],value:po(t,e,n=>{if(se(n))return n.fontSize;let i=ct(n,r.scene.getNonDeletedElementsMap());return i?i.fontSize:null},n=>se(n)||ct(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:e.currentItemFontSize||_r),onChange:n=>o(n)})]})}),Jf=W({name:"decreaseFontSize",label:"labels.decreaseFontSize",icon:ef,trackEvent:!1,perform:(t,e,o,r)=>qf(t,e,r,n=>Math.round(1/(1+ty)*n.fontSize)),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_LEFT||t.key===S.COMMA)}),Qf=W({name:"increaseFontSize",label:"labels.increaseFontSize",icon:ef,trackEvent:!1,perform:(t,e,o,r)=>qf(t,e,r,n=>Math.round(n.fontSize*(1+ty))),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_RIGHT||t.key===S.PERIOD)}),XC=W({name:"changeFontFamily",label:"labels.fontFamily",trackEvent:!1,perform:(t,e,o,r)=>({elements:bo(t,e,n=>{if(se(n)){let i=he(n,{fontFamily:o,lineHeight:Or(o)});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemFontFamily:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=[{value:cl.Virgil,text:g("labels.handDrawn"),icon:la,testId:"font-family-virgil"},{value:cl.Helvetica,text:g("labels.normal"),icon:cv,testId:"font-family-normal"},{value:cl.Cascadia,text:g("labels.code"),icon:dv,testId:"font-family-code"}];return(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.fontFamily")}),(0,le.jsx)(xr,{group:"font-family",options:n,value:po(t,e,i=>{if(se(i))return i.fontFamily;let a=ct(i,r.scene.getNonDeletedElementsMap());return a?a.fontFamily:null},i=>se(i)||ct(i,r.scene.getNonDeletedElementsMap())!==null,i=>i?null:e.currentItemFontFamily||Oi),onChange:i=>o(i)})]})}}),qC=W({name:"changeTextAlign",label:"Change text alignment",trackEvent:!1,perform:(t,e,o,r)=>({elements:bo(t,e,n=>{if(se(n)){let i=he(n,{textAlign:o});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemTextAlign:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=r.scene.getNonDeletedElementsMap();return(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.textAlign")}),(0,le.jsx)(xr,{group:"text-align",options:[{value:"left",text:g("labels.left"),icon:mv,testId:"align-left"},{value:"center",text:g("labels.center"),icon:pv,testId:"align-horizontal-center"},{value:"right",text:g("labels.right"),icon:uv,testId:"align-right"}],value:po(t,e,i=>{if(se(i))return i.textAlign;let a=ct(i,n);return a?a.textAlign:null},i=>se(i)||ct(i,n)!==null,i=>i?null:e.currentItemTextAlign),onChange:i=>o(i)})]})}}),JC=W({name:"changeVerticalAlign",label:"Change vertical alignment",trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:bo(t,e,n=>{if(se(n)){let i=he(n,{verticalAlign:o});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,le.jsx)("fieldset",{children:(0,le.jsx)(xr,{group:"text-align",options:[{value:wo.TOP,text:g("labels.alignTop"),icon:(0,le.jsx)(fv,{theme:e.theme}),testId:"align-top"},{value:wo.MIDDLE,text:g("labels.centerVertically"),icon:(0,le.jsx)(gv,{theme:e.theme}),testId:"align-middle"},{value:wo.BOTTOM,text:g("labels.alignBottom"),icon:(0,le.jsx)(hv,{theme:e.theme}),testId:"align-bottom"}],value:po(t,e,n=>{if(se(n)&&n.containerId)return n.verticalAlign;let i=ct(n,r.scene.getNonDeletedElementsMap());return i?i.verticalAlign:null},n=>se(n)||ct(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:wo.MIDDLE),onChange:n=>o(n)})})}),mD=W({name:"changeRoundness",label:"Change edge roundness",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{roundness:o==="round"?{type:$i(r.type)?Co.ADAPTIVE_RADIUS:Co.PROPORTIONAL_RADIUS}:null})),appState:{...e,currentItemRoundness:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let n=oa(ye(t),e).some(i=>i.roundness?.type===Co.LEGACY);return(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.edges")}),(0,le.jsx)(xr,{group:"edges",options:[{value:"sharp",text:g("labels.sharp"),icon:jx},{value:"round",text:g("labels.round"),icon:Xx}],value:po(t,e,i=>n?null:i.roundness?"round":"sharp",i=>i.hasOwnProperty("roundness"),i=>i?null:e.currentItemRoundness),onChange:i=>o(i)})]})}}),ey=t=>[{value:null,text:g("labels.arrowhead_none"),keyBinding:"q",icon:qx},{value:"arrow",text:g("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,le.jsx)(Jx,{flip:t})},{value:"bar",text:g("labels.arrowhead_bar"),keyBinding:"e",icon:(0,le.jsx)(ev,{flip:t})},{value:"dot",text:g("labels.arrowhead_circle"),keyBinding:null,icon:(0,le.jsx)(Qu,{flip:t}),showInPicker:!1},{value:"circle",text:g("labels.arrowhead_circle"),keyBinding:"r",icon:(0,le.jsx)(Qu,{flip:t}),showInPicker:!1},{value:"circle_outline",text:g("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,le.jsx)(Qx,{flip:t}),showInPicker:!1},{value:"triangle",text:g("labels.arrowhead_triangle"),icon:(0,le.jsx)(tv,{flip:t}),keyBinding:"t"},{value:"triangle_outline",text:g("labels.arrowhead_triangle_outline"),icon:(0,le.jsx)(ov,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond",text:g("labels.arrowhead_diamond"),icon:(0,le.jsx)(rv,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:g("labels.arrowhead_diamond_outline"),icon:(0,le.jsx)(nv,{flip:t}),keyBinding:null,showInPicker:!1}],pD=W({name:"changeArrowhead",label:"Change arrowheads",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>{if($e(r)){let{position:n,type:i}=o;if(n==="start")return he(r,{startArrowhead:i});if(n==="end")return he(r,{endArrowhead:i})}return r}),appState:{...e,[o.position==="start"?"currentItemStartArrowhead":"currentItemEndArrowhead"]:o.type},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=Gr().rtl;return(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.arrowheads")}),(0,le.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,le.jsx)(Xf,{label:"arrowhead_start",options:ey(!r),value:po(t,e,n=>$e(n)&&Ui(n.type)?n.startArrowhead:e.currentItemStartArrowhead,!0,e.currentItemStartArrowhead),onChange:n=>o({position:"start",type:n})}),(0,le.jsx)(Xf,{label:"arrowhead_end",group:"arrowheads",options:ey(!!r),value:po(t,e,n=>$e(n)&&Ui(n.type)?n.endArrowhead:e.currentItemEndArrowhead,!0,e.currentItemEndArrowhead),onChange:n=>o({position:"end",type:n})})]})]})}});h();h();var oy=v(H(),1),ry=v(k(),1),Pa=()=>{let t=document.querySelector(".excalidraw-tooltip");if(t)return t;let e=document.createElement("div");return document.body.appendChild(e),e.classList.add("excalidraw-tooltip"),e},eh=(t,e,o="bottom")=>{let r=t.getBoundingClientRect(),n=window.innerWidth,i=window.innerHeight,a=5,l=e.left+e.width/2-r.width/2;l<0?l=a:l+r.width>=n&&(l=n-r.width-a);let s;o==="bottom"?(s=e.top+e.height+a,s+r.height>=i&&(s=e.top-r.height-a)):(s=e.top-r.height-a,s<0&&(s=e.top+e.height+a)),Object.assign(t.style,{top:`${s}px`,left:`${l}px`})},QC=(t,e,o,r)=>{e.classList.add("excalidraw-tooltip--visible"),e.style.minWidth=r?"50ch":"10ch",e.style.maxWidth=r?"50ch":"15ch",e.textContent=o;let n=t.getBoundingClientRect();eh(e,n)},xo=({children:t,label:e,long:o=!1,style:r,disabled:n})=>((0,oy.useEffect)(()=>()=>Pa().classList.remove("excalidraw-tooltip--visible"),[]),n?null:(0,ry.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:i=>QC(i.currentTarget,Pa(),e,o),onPointerLeave:()=>Pa().classList.remove("excalidraw-tooltip--visible"),style:r,children:t}));var pi=v(k(),1),eS=W({name:"changeViewBackgroundColor",label:"labels.canvasBackground",paletteName:"Change canvas background color",trackEvent:!1,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.changeViewBackgroundColor&&!e.viewModeEnabled,perform:(t,e,o)=>({appState:{...e,...o},storeAction:o.viewBackgroundColor?P.CAPTURE:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,pi.jsx)(ns,{palette:null,topPicks:Zs,label:g("labels.canvasBackground"),type:"canvasBackground",color:e.viewBackgroundColor,onChange:n=>o({viewBackgroundColor:n}),"data-testid":"canvas-background-picker",elements:t,appState:e,updateData:o})}),jr=W({name:"clearCanvas",label:"labels.clearCanvas",paletteName:"Clear canvas",icon:er,trackEvent:{category:"canvas"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.clearCanvas&&!e.viewModeEnabled,perform:(t,e,o,r)=>(r.imageCache.clear(),{elements:t.map(n=>he(n,{isDeleted:!0})),appState:{...Ki(),files:{},theme:e.theme,penMode:e.penMode,penDetected:e.penDetected,exportBackground:e.exportBackground,exportEmbedScene:e.exportEmbedScene,gridSize:e.gridSize,showStats:e.showStats,pasteDialog:e.pasteDialog,activeTool:e.activeTool.type==="image"?{...e.activeTool,type:"selection"}:e.activeTool},storeAction:P.CAPTURE})}),Qd=W({name:"zoomIn",label:"buttons.zoomIn",viewMode:!0,icon:Nu,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ur({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Hr(e.zoom.value+Kn)},e),userToFollow:null},storeAction:P.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,pi.jsx)(ce,{type:"button",className:"zoom-in-button zoom-button",icon:Nu,title:`${g("buttons.zoomIn")} \u2014 ${F("CtrlOrCmd++")}`,"aria-label":g("buttons.zoomIn"),disabled:e.zoom.value>=Hp,onClick:()=>{t(null)}}),keyTest:t=>(t.code===fe.EQUAL||t.code===fe.NUM_ADD)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),em=W({name:"zoomOut",label:"buttons.zoomOut",icon:Ou,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ur({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Hr(e.zoom.value-Kn)},e),userToFollow:null},storeAction:P.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,pi.jsx)(ce,{type:"button",className:"zoom-out-button zoom-button",icon:Ou,title:`${g("buttons.zoomOut")} \u2014 ${F("CtrlOrCmd+-")}`,"aria-label":g("buttons.zoomOut"),disabled:e.zoom.value<=Qs,onClick:()=>{t(null)}}),keyTest:t=>(t.code===fe.MINUS||t.code===fe.NUM_SUBTRACT)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),tS=W({name:"resetZoom",label:"buttons.resetZoom",icon:Cx,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ur({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Hr(1)},e),userToFollow:null},storeAction:P.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,pi.jsx)(xo,{label:g("buttons.resetZoom"),style:{height:"100%"},children:(0,pi.jsxs)(ce,{type:"button",className:"reset-zoom-button zoom-button",title:g("buttons.resetZoom"),"aria-label":g("buttons.resetZoom"),onClick:()=>{t(null)},children:[(e.zoom.value*100).toFixed(0),"%"]})}),keyTest:t=>(t.code===fe.ZERO||t.code===fe.NUM_ZERO)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),oS=(t,e)=>{let[o,r,n,i]=t,a=n-o,l=e.width/a,s=i-r,d=e.height/s,c=Math.min(l,d),m=Math.floor(c/Kn)*Kn;return Math.min(Math.max(m,Qs),1)},ny=({bounds:t,appState:e,fitToViewport:o=!1,viewportZoomFactor:r=.7})=>{let[n,i,a,l]=t,s=(n+a)/2,d=(i+l)/2,c,m,u;if(o){let f=a-n,b=l-i;c=Math.min(e.width/f,e.height/b)*Math.min(1,Math.max(r,.1)),c=Math.min(Math.max(c,Qs),Hp);let x=e.width;if(e.openSidebar){let T=document.querySelector(".sidebar")?.offsetWidth??0;x=document.documentElement.getAttribute("dir")==="rtl"?e.width+T:e.width-T}m=x/2*(1/c)-s,u=e.height/2*(1/c)-d}else{c=oS(t,{width:e.width,height:e.height});let f=W0({scenePoint:{x:s,y:d},viewportDimensions:{width:e.width,height:e.height},zoom:{value:c}});m=f.scrollX,u=f.scrollY}return{appState:{...e,scrollX:m,scrollY:u,zoom:{value:c}},storeAction:P.NONE}},is=({targetElements:t,appState:e,fitToViewport:o,viewportZoomFactor:r})=>{let n=Ze(ye(t));return ny({bounds:n,appState:e,fitToViewport:o,viewportZoomFactor:r})},zD=W({name:"zoomToFitSelectionInViewport",label:"labels.zoomToFitViewport",icon:wd,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return is({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!1})},keyTest:t=>t.code===fe.TWO&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),$D=W({name:"zoomToFitSelection",label:"helpDialog.zoomToSelection",icon:wd,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return is({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!0})},keyTest:t=>t.code===fe.THREE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),rS=W({name:"zoomToFit",label:"helpDialog.zoomToFit",icon:wd,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>is({targetElements:t,appState:{...e,userToFollow:null},fitToViewport:!1}),keyTest:t=>t.code===fe.ONE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),mi=W({name:"toggleTheme",label:(t,e)=>e.theme===be.DARK?"buttons.lightMode":"buttons.darkMode",keywords:["toggle","dark","light","mode","theme"],icon:t=>t.theme===be.LIGHT?Hl:Ul,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o)=>({appState:{...e,theme:o||(e.theme===be.LIGHT?be.DARK:be.LIGHT)},storeAction:P.NONE}),keyTest:t=>t.altKey&&t.shiftKey&&t.code===fe.D,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.toggleTheme}),HD=W({name:"toggleEraserTool",label:"toolBar.eraser",trackEvent:{category:"toolbar"},perform:(t,e)=>{let o;return Ao(e)?o=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):o=it(e,{type:"eraser",lastActiveToolBeforeEraser:e.activeTool}),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:o},storeAction:P.CAPTURE}},keyTest:t=>t.key===S.E}),iy=W({name:"toggleHandTool",label:"toolBar.hand",paletteName:"Toggle hand tool",trackEvent:{category:"toolbar"},icon:hd,viewMode:!1,perform:(t,e,o,r)=>{let n;return Fr(e)?n=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(n=it(e,{type:"hand",lastActiveToolBeforeEraser:e.activeTool}),Oe(r.interactiveCanvas,Ne.GRAB)),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:n},storeAction:P.CAPTURE}},keyTest:t=>!t.altKey&&!t[S.CTRL_OR_CMD]&&t.key===S.H});h();var ay=v(k(),1),Oo=W({name:"finalize",label:"",trackEvent:!1,perform:(t,e,o,r)=>{let{interactiveCanvas:n,focusContainer:i,scene:a}=r,l=a.getNonDeletedElementsMap();if(e.editingLinearElement){let{elementId:u,startBindingElement:f,endBindingElement:b}=e.editingLinearElement,x=ue.getElement(u,l);if(x)return Pr(x)&&bc(x,f,b,l),{elements:x.points.length<2||ti(x)?t.filter(E=>E.id!==x.id):void 0,appState:{...e,cursorButton:"up",editingLinearElement:null,selectedLinearElement:null},storeAction:P.CAPTURE}}let s=t,d=e.pendingImageElementId&&a.getElement(e.pendingImageElementId);d&&re(d,{isDeleted:!0},!1),window.document.activeElement instanceof HTMLElement&&i();let c=e.multiElement?e.multiElement:e.editingElement?.type==="freedraw"?e.editingElement:null;if(c){if(c.type!=="freedraw"&&e.lastPointerDownWith!=="touch"){let{points:f,lastCommittedPoint:b}=c;(!b||f[f.length-1]!==b)&&re(c,{points:c.points.slice(0,-1)})}ti(c)&&(s=s.filter(f=>f.id!==c.id));let u=vl(c.points,e.zoom.value);if((c.type==="line"||c.type==="freedraw")&&u){let f=c.points,b=f[0];re(c,{points:f.map((x,E)=>E===f.length-1?[b[0],b[1]]:x)})}if(Pr(c)&&!u&&c.points.length>1){let[f,b]=ue.getPointAtIndexGlobalCoordinates(c,-1,pe(t));Sl(c,e,{x:f,y:b},r)}}(!e.activeTool.locked&&e.activeTool.type!=="freedraw"||!c)&&Mo(n);let m;return e.activeTool.type==="eraser"?m=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):m=it(e,{type:"selection"}),{elements:s,appState:{...e,cursorButton:"up",activeTool:(e.activeTool.locked||e.activeTool.type==="freedraw")&&c?e.activeTool:m,activeEmbeddable:null,draggingElement:null,multiElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:c&&!e.activeTool.locked&&e.activeTool.type!=="freedraw"?{...e.selectedElementIds,[c.id]:!0}:e.selectedElementIds,selectedLinearElement:c&&$e(c)?new ue(c):e.selectedLinearElement,pendingImageElementId:null},storeAction:P.CAPTURE}},keyTest:(t,e)=>t.key===S.ESCAPE&&(e.editingLinearElement!==null||!e.draggingElement&&e.multiElement===null)||(t.key===S.ESCAPE||t.key===S.ENTER)&&e.multiElement!==null,PanelComponent:({appState:t,updateData:e,data:o})=>(0,ay.jsx)(ce,{type:"button",icon:Rx,title:g("buttons.done"),"aria-label":g("buttons.done"),onClick:e,visible:t.multiElement!=null,size:o?.size||"medium"})});h();h();var ly=v(H(),1);var as=v(k(),1),sy=t=>{let{id:e}=_t(),[o,r]=(0,ly.useState)(t.value),n=a=>{t.ignoreFocus||W1(a.target);let l=a.target.value;l!==t.value&&t.onChange(l)},i=a=>{if(a.key===S.ENTER){if(a.preventDefault(),a.nativeEvent.isComposing||a.keyCode===229)return;a.currentTarget.blur()}};return(0,as.jsxs)("div",{className:"ProjectName",children:[(0,as.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${t.label}:`}),(0,as.jsx)("input",{type:"text",className:"TextInput",onBlur:n,onKeyDown:i,id:`${e}-filename`,value:o,onChange:a=>r(a.target.value)})]})};h();var Ra=v(k(),1),dy=t=>{let e=t.title||(t.value===be.DARK?g("buttons.lightMode"):g("buttons.darkMode"));return(0,Ra.jsx)(ce,{type:"icon",icon:t.value===be.LIGHT?cy.MOON:cy.SUN,title:e,"aria-label":e,onClick:()=>t.onChange(t.value===be.DARK?be.LIGHT:be.DARK),"data-testid":"toggle-dark-mode"})},cy={SUN:(0,Ra.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Ra.jsx)("path",{fill:"currentColor",d:"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"})}),MOON:(0,Ra.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Ra.jsx)("path",{fill:"currentColor",d:"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"})})};h();var ui=(t,{selectedElementIds:e},o)=>{t=ye(t);let r=o&&Fe(t,{selectedElementIds:e}),n=null,i=r?we(t,{selectedElementIds:e},{includeBoundTextElement:!0}):t;return r&&(i.length===1&&Ee(i[0])?(n=i[0],i=Kc(t,n)):i.length>1&&(i=we(t,{selectedElementIds:e},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:n,exportedElements:pr(i)}},fi=async(t,e,o,r,{exportBackground:n,exportPadding:i=ln,viewBackgroundColor:a,name:l=o.name||D1,fileHandle:s=null,exportingFrame:d=null})=>{if(e.length===0)throw new Error(g("alerts.cannotExportEmptyCanvas"));if(t==="svg"||t==="clipboard-svg"){let m=zc(e,{exportBackground:n,exportWithDarkMode:o.exportWithDarkMode,viewBackgroundColor:a,exportPadding:i,exportScale:o.exportScale,exportEmbedScene:o.exportEmbedScene&&t==="svg"},r,{exportingFrame:d});if(t==="svg")return lu(m.then(u=>new Blob([u.outerHTML],{type:Dt.svg})),{description:"Export to SVG",name:l,extension:o.exportEmbedScene?"excalidraw.svg":"svg",fileHandle:s});if(t==="clipboard-svg"){let u=await m.then(f=>f.outerHTML);try{await Ji(u)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return}}let c=g0(e,o,r,{exportBackground:n,viewBackgroundColor:a,exportPadding:i,exportingFrame:d});if(t==="png"){let m=$r(c);return o.exportEmbedScene&&(m=m.then(u=>import("./excalidraw-assets/image-ISQJGWLB.js").then(({encodePngMetadata:f})=>f({blob:u,metadata:uu(e,o,r,"local")})))),lu(m,{description:"Export to PNG",name:l,extension:"png",fileHandle:s})}else if(t==="clipboard")try{let m=$r(c);await w0(m)}catch(m){throw console.warn(m),m.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):Mr&&m.name==="TypeError"?new Error(`${g("alerts.couldNotCopyToClipboard")}
57
+ `)},Z_=function(){var e=parseInt(document.body.getAttribute(Js)||"0",10);return isFinite(e)?e:0},L7=function(){Qs.useEffect(function(){return document.body.setAttribute(Js,(Z_()+1).toString()),function(){var e=Z_()-1;e<=0?document.body.removeAttribute(Js):document.body.setAttribute(Js,e.toString())}},[])},ey=function(e){var t=e.noRelative,r=e.noImportant,o=e.gapMode,i=o===void 0?"margin":o;L7();var a=Qs.useMemo(function(){return Qv(i)},[i]);return Qs.createElement(M7,{styles:P7(a,!t,i,r?"":"!important")})};v();var ty=!1;if(typeof window<"u")try{qd=Object.defineProperty({},"passive",{get:function(){return ty=!0,!0}}),window.addEventListener("test",qd,qd),window.removeEventListener("test",qd,qd)}catch{ty=!1}var qd,wl=ty?{passive:!1}:!1;v();var R7=function(e){return e.tagName==="TEXTAREA"},q_=function(e,t){var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!R7(e)&&r[t]==="visible")},D7=function(e){return q_(e,"overflowY")},N7=function(e){return q_(e,"overflowX")},ry=function(e,t){var r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=j_(e,r);if(o){var i=J_(e,r),a=i[1],s=i[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==document.body);return!1},O7=function(e){var t=e.scrollTop,r=e.scrollHeight,o=e.clientHeight;return[t,r,o]},F7=function(e){var t=e.scrollLeft,r=e.scrollWidth,o=e.clientWidth;return[t,r,o]},j_=function(e,t){return e==="v"?D7(t):N7(t)},J_=function(e,t){return e==="v"?O7(t):F7(t)},B7=function(e,t){return e==="h"&&t==="rtl"?-1:1},Q_=function(e,t,r,o,i){var a=B7(e,window.getComputedStyle(t).direction),s=a*o,c=r.target,d=t.contains(c),p=!1,f=s>0,u=0,g=0;do{var h=J_(e,c),x=h[0],E=h[1],T=h[2],M=E-T-a*x;(x||M)&&j_(e,c)&&(u+=M,g+=x),c=c.parentNode}while(!d&&c!==document.body||d&&(t.contains(c)||t===c));return(f&&(i&&u===0||!i&&s>u)||!f&&(i&&g===0||!i&&-s>g))&&(p=!0),p};var Ff=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},eA=function(e){return[e.deltaX,e.deltaY]},tA=function(e){return e&&"current"in e?e.current:e},z7=function(e,t){return e[0]===t[0]&&e[1]===t[1]},$7=function(e){return`
58
+ .block-interactivity-`.concat(e,` {pointer-events: none;}
59
+ .allow-interactivity-`).concat(e,` {pointer-events: all;}
60
+ `)},H7=0,ec=[];function rA(e){var t=Lt.useRef([]),r=Lt.useRef([0,0]),o=Lt.useRef(),i=Lt.useState(H7++)[0],a=Lt.useState(function(){return Zd()})[0],s=Lt.useRef(e);Lt.useEffect(function(){s.current=e},[e]),Lt.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var E=$_([e.lockRef.current],(e.shards||[]).map(tA),!0).filter(Boolean);return E.forEach(function(T){return T.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),E.forEach(function(T){return T.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var c=Lt.useCallback(function(E,T){if("touches"in E&&E.touches.length===2)return!s.current.allowPinchZoom;var M=Ff(E),I=r.current,A="deltaX"in E?E.deltaX:I[0]-M[0],N="deltaY"in E?E.deltaY:I[1]-M[1],U,R=E.target,F=Math.abs(A)>Math.abs(N)?"h":"v";if("touches"in E&&F==="h"&&R.type==="range")return!1;var B=ry(F,R);if(!B)return!0;if(B?U=F:(U=F==="v"?"h":"v",B=ry(F,R)),!B)return!1;if(!o.current&&"changedTouches"in E&&(A||N)&&(o.current=U),!U)return!0;var Z=o.current||U;return Q_(Z,T,E,Z==="h"?A:N,!0)},[]),d=Lt.useCallback(function(E){var T=E;if(!(!ec.length||ec[ec.length-1]!==a)){var M="deltaY"in T?eA(T):Ff(T),I=t.current.filter(function(U){return U.name===T.type&&U.target===T.target&&z7(U.delta,M)})[0];if(I&&I.should){T.cancelable&&T.preventDefault();return}if(!I){var A=(s.current.shards||[]).map(tA).filter(Boolean).filter(function(U){return U.contains(T.target)}),N=A.length>0?c(T,A[0]):!s.current.noIsolation;N&&T.cancelable&&T.preventDefault()}}},[]),p=Lt.useCallback(function(E,T,M,I){var A={name:E,delta:T,target:M,should:I};t.current.push(A),setTimeout(function(){t.current=t.current.filter(function(N){return N!==A})},1)},[]),f=Lt.useCallback(function(E){r.current=Ff(E),o.current=void 0},[]),u=Lt.useCallback(function(E){p(E.type,eA(E),E.target,c(E,e.lockRef.current))},[]),g=Lt.useCallback(function(E){p(E.type,Ff(E),E.target,c(E,e.lockRef.current))},[]);Lt.useEffect(function(){return ec.push(a),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:g}),document.addEventListener("wheel",d,wl),document.addEventListener("touchmove",d,wl),document.addEventListener("touchstart",f,wl),function(){ec=ec.filter(function(E){return E!==a}),document.removeEventListener("wheel",d,wl),document.removeEventListener("touchmove",d,wl),document.removeEventListener("touchstart",f,wl)}},[]);var h=e.removeScrollBar,x=e.inert;return Lt.createElement(Lt.Fragment,null,x?Lt.createElement(a,{styles:$7(i)}):null,h?Lt.createElement(ey,{gapMode:"margin"}):null)}var oA=Xv(Of,rA);var nA=Bf.forwardRef(function(e,t){return Bf.createElement(Xd,ho({},e,{ref:t,sideCar:oA}))});nA.classNames=Xd.classNames;var oy=nA;var iA="Popover",[aA,bV]=Xn(iA,[Uv]),zf=Uv(),[U7,tc]=aA(iA),G7=e=>{let{__scopePopover:t,children:r,open:o,defaultOpen:i,onOpenChange:a,modal:s=!1}=e,c=zf(t),d=(0,Xe.useRef)(null),[p,f]=(0,Xe.useState)(!1),[u=!1,g]=qs({prop:o,defaultProp:i,onChange:a});return(0,Xe.createElement)(P_,c,(0,Xe.createElement)(U7,{scope:t,contentId:Ys(),triggerRef:d,open:u,onOpenChange:g,onOpenToggle:(0,Xe.useCallback)(()=>g(h=>!h),[g]),hasCustomAnchor:p,onCustomAnchorAdd:(0,Xe.useCallback)(()=>f(!0),[]),onCustomAnchorRemove:(0,Xe.useCallback)(()=>f(!1),[]),modal:s},r))};var W7="PopoverTrigger",K7=(0,Xe.forwardRef)((e,t)=>{let{__scopePopover:r,...o}=e,i=tc(W7,r),a=zf(r),s=Mr(t,i.triggerRef),c=(0,Xe.createElement)(Zt.button,Ye({type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":cA(i.open)},o,{ref:s,onClick:ir(e.onClick,i.onOpenToggle)}));return i.hasCustomAnchor?c:(0,Xe.createElement)(L_,Ye({asChild:!0},a),c)}),lA="PopoverPortal",[Y7,V7]=aA(lA,{forceMount:void 0}),X7=e=>{let{__scopePopover:t,forceMount:r,children:o,container:i}=e,a=tc(lA,t);return(0,Xe.createElement)(Y7,{scope:t,forceMount:r},(0,Xe.createElement)(Zs,{present:r||a.open},(0,Xe.createElement)(O_,{asChild:!0,container:i},o)))},jd="PopoverContent",Z7=(0,Xe.forwardRef)((e,t)=>{let r=V7(jd,e.__scopePopover),{forceMount:o=r.forceMount,...i}=e,a=tc(jd,e.__scopePopover);return(0,Xe.createElement)(Zs,{present:o||a.open},a.modal?(0,Xe.createElement)(q7,Ye({},i,{ref:t})):(0,Xe.createElement)(j7,Ye({},i,{ref:t})))}),q7=(0,Xe.forwardRef)((e,t)=>{let r=tc(jd,e.__scopePopover),o=(0,Xe.useRef)(null),i=Mr(t,o),a=(0,Xe.useRef)(!1);return(0,Xe.useEffect)(()=>{let s=o.current;if(s)return z_(s)},[]),(0,Xe.createElement)(oy,{as:va,allowPinchZoom:!0},(0,Xe.createElement)(sA,Ye({},e,{ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:ir(e.onCloseAutoFocus,s=>{var c;s.preventDefault(),a.current||(c=r.triggerRef.current)===null||c===void 0||c.focus()}),onPointerDownOutside:ir(e.onPointerDownOutside,s=>{let c=s.detail.originalEvent,d=c.button===0&&c.ctrlKey===!0,p=c.button===2||d;a.current=p},{checkForDefaultPrevented:!1}),onFocusOutside:ir(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1})})))}),j7=(0,Xe.forwardRef)((e,t)=>{let r=tc(jd,e.__scopePopover),o=(0,Xe.useRef)(!1);return(0,Xe.createElement)(sA,Ye({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var a;if((a=e.onCloseAutoFocus)===null||a===void 0||a.call(e,i),!i.defaultPrevented){var s;o.current||(s=r.triggerRef.current)===null||s===void 0||s.focus(),i.preventDefault()}o.current=!1},onInteractOutside:i=>{var a,s;(a=e.onInteractOutside)===null||a===void 0||a.call(e,i),i.defaultPrevented||(o.current=!0);let c=i.target;((s=r.triggerRef.current)===null||s===void 0?void 0:s.contains(c))&&i.preventDefault()}}))}),sA=(0,Xe.forwardRef)((e,t)=>{let{__scopePopover:r,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:p,onInteractOutside:f,...u}=e,g=tc(jd,r),h=zf(r);return VI(),(0,Xe.createElement)(JI,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:i,onUnmountAutoFocus:a},(0,Xe.createElement)(GI,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:f,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:p,onDismiss:()=>g.onOpenChange(!1)},(0,Xe.createElement)(R_,Ye({"data-state":cA(g.open),role:"dialog",id:g.contentId},h,u,{ref:t,style:{...u.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))});var J7=(0,Xe.forwardRef)((e,t)=>{let{__scopePopover:r,...o}=e,i=zf(r);return(0,Xe.createElement)(D_,Ye({},i,o,{ref:t}))});function cA(e){return e?"open":"closed"}var $f=G7;var Hf=K7,dA=X7,Uf=Z7;var mA=J7;v();var Ln=w(J(),1);v();var Wf=w(J(),1),gA=w(Yn(),1);v();var ny=w(J(),1),iy=ny.default.createContext(null),it=()=>ny.default.useContext(iy);v();var Jd=w(J(),1);var Gf=e=>{let[t,r]=(0,Jd.useState)(null),o=ot(),{theme:i}=it(),{container:a}=Er();return(0,Jd.useLayoutEffect)(()=>{t&&(t.className="",t.classList.add("excalidraw",...e?.className?.split(/\s+/)||[]),t.classList.toggle("excalidraw--mobile",o.editor.isMobile),t.classList.toggle("theme--dark",i===$e.DARK))},[t,i,o.editor.isMobile,e?.className]),(0,Jd.useLayoutEffect)(()=>{let s=e?.parentSelector?a?.querySelector(e.parentSelector):document.body;if(!s)return;let c=document.createElement("div");return s.appendChild(c),r(c),()=>{s.removeChild(c)}},[a,e?.parentSelector]),t};v();var pA=w(J(),1);function rc(e,t,r){(0,pA.useEffect)(()=>{function o(i){let a=i;if(!e.current)return;let s=r?.(a,e.current);if(s===!0)return;if(s===!1)return t(a);e.current.contains(a.target)||!document.documentElement.contains(a.target)||a.target.closest("[data-radix-portal]")||a.target===document.documentElement&&document.body.style.pointerEvents==="none"||a.target.closest("[data-prevent-outside-click]")||t(a)}return document.addEventListener("pointerdown",o),document.addEventListener("touchstart",o),()=>{document.removeEventListener("pointerdown",o),document.removeEventListener("touchstart",o)}},[e,t,r])}v();var fA=w(J(),1),oc=e=>{let t=(0,fA.useRef)(e);return Object.assign(t.current,e),t.current};var bA=w(P(),1),Sa=wt(null),hA=({onCancel:e,onChange:t,onSelect:r,colorPickerType:o})=>{let i=Gf({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),a=it(),s=Ta(),c=Ur(),d=ze(s,a),p=oc({app:c,onCancel:e,onChange:t,onSelect:r,selectedElements:d}),{container:f}=Er();(0,Wf.useEffect)(()=>{let g=u.current;if(!g||!c.canvas||!i)return;let h=!1,x=c.canvas.getContext("2d"),E=({clientX:R,clientY:F})=>{let B=x.getImageData((R-a.offsetLeft)*window.devicePixelRatio,(F-a.offsetTop)*window.devicePixelRatio,1,1).data;return J1(B[0],B[1],B[2])},T=({clientX:R,clientY:F,altKey:B})=>{g.style.top=`${F+20}px`,g.style.left=`${R+20}px`;let Z=E({clientX:R,clientY:F});h&&p.onChange(o,Z,p.selectedElements,{altKey:B}),g.style.background=Z},M=()=>{p.onCancel()},I=(R,F)=>{p.onSelect(R,F)},A=R=>{h=!0,R.stopImmediatePropagation()},N=R=>{h=!1,f?.focus(),R.stopImmediatePropagation(),R.preventDefault(),I(E(R),R)},U=R=>{R.key===L.ESCAPE&&(R.preventDefault(),R.stopImmediatePropagation(),M())};return i.tabIndex=-1,i.focus(),T({clientX:p.app.lastViewportPosition.x,clientY:p.app.lastViewportPosition.y,altKey:!1}),i.addEventListener("keydown",U),i.addEventListener("pointerdown",A),i.addEventListener("pointerup",N),window.addEventListener("pointermove",T,{passive:!0}),window.addEventListener("blur",M),()=>{h=!1,i.removeEventListener("keydown",U),i.removeEventListener("pointerdown",A),i.removeEventListener("pointerup",N),window.removeEventListener("pointermove",T),window.removeEventListener("blur",M)}},[p,c.canvas,i,o,f,a.offsetLeft,a.offsetTop]);let u=(0,Wf.useRef)(null);return rc(u,()=>{e()},g=>!!g.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),i?(0,gA.createPortal)((0,bA.jsx)("div",{ref:u,className:"excalidraw-eye-dropper-preview"}),i):null};var qn=w(P(),1),xA=({color:e,onChange:t,label:r,colorPickerType:o})=>{let i=ot(),[a,s]=(0,Ln.useState)(e),[c,d]=Ve(Qo);(0,Ln.useEffect)(()=>{s(e)},[e]);let p=(0,Ln.useCallback)(x=>{let E=x.toLowerCase(),T=vA(E);T&&t(T),s(E)},[t]),f=(0,Ln.useRef)(null),u=(0,Ln.useRef)(null);(0,Ln.useEffect)(()=>{f.current&&f.current.focus()},[c]);let[g,h]=Ve(Sa,dt);return(0,Ln.useEffect)(()=>()=>{h(null)},[h]),(0,qn.jsxs)("div",{className:"color-picker__input-label",children:[(0,qn.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,qn.jsx)("input",{ref:c==="hex"?f:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":r,onChange:x=>{p(x.target.value)},value:(a||"").replace(/^#/,""),onBlur:()=>{s(e)},tabIndex:-1,onFocus:()=>d("hex"),onKeyDown:x=>{x.key!==L.TAB&&(x.key===L.ESCAPE&&u.current?.focus(),x.stopPropagation())}}),!i.editor.isMobile&&(0,qn.jsxs)(qn.Fragment,{children:[(0,qn.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,qn.jsx)("div",{ref:u,className:j("excalidraw-eye-dropper-trigger",{selected:g}),onClick:()=>h(x=>x?null:{keepOpenOnAlt:!1,onSelect:E=>t(E),colorPickerType:o}),title:`${y("labels.eyeDropper")} \u2014 ${L.I.toLocaleUpperCase()} or ${V("Alt")} `,children:rC})]})]})};var EA=w(J(),1);var wr=w(P(),1),yA=e=>{let t=new Option().style;return t.color=e,!!t.color},vA=e=>nl(e)?e:yA(`#${e}`)?`#${e}`:yA(e)?e:null,Q7=({type:e,color:t,onChange:r,label:o,elements:i,palette:a=pi,updateData:s})=>{let[,c]=Ve(Qo),[d,p]=Ve(Sa,dt),{container:f}=Er(),u=ot(),g=(0,wr.jsxs)("div",{children:[(0,wr.jsx)(Gs,{children:y("colorPicker.hexCode")}),(0,wr.jsx)(xA,{color:t,label:o,onChange:E=>{r(E)},colorPickerType:e})]}),h=(0,EA.useRef)(null),x=()=>{h.current?.querySelector(".color-picker-content")?.focus()};return(0,wr.jsx)(dA,{container:f,children:(0,wr.jsxs)(Uf,{ref:h,className:"focus-visible-none","data-prevent-outside-click":!0,onFocusOutside:E=>{x(),E.preventDefault()},onPointerDownOutside:E=>{d&&E.preventDefault()},onCloseAutoFocus:E=>{E.stopPropagation(),E.preventDefault(),f&&!_S(document.activeElement)&&f.focus(),s({openPopup:null}),c(null)},side:u.editor.isMobile&&!u.viewport.isLandscape?"bottom":"right",align:u.editor.isMobile&&!u.viewport.isLandscape?"center":"start",alignOffset:-16,sideOffset:20,style:{zIndex:"var(--zIndex-layerUI)",backgroundColor:"var(--popup-bg-color)",maxWidth:"208px",maxHeight:window.innerHeight,padding:"12px",borderRadius:"8px",boxSizing:"border-box",overflowY:"auto",boxShadow:"0px 7px 14px rgba(0, 0, 0, 0.05), 0px 0px 3.12708px rgba(0, 0, 0, 0.0798), 0px 0px 0.931014px rgba(0, 0, 0, 0.1702)"},children:[a?(0,wr.jsx)(NI,{palette:a,color:t,onChange:E=>{r(E)},onEyeDropperToggle:E=>{p(T=>E?(T=T||{keepOpenOnAlt:!0,onSelect:r,colorPickerType:e},T.keepOpenOnAlt=!0,T):E===!1||T?null:{keepOpenOnAlt:!1,onSelect:r,colorPickerType:e})},onEscape:E=>{d?p(null):Ko(E.target)?x():s({openPopup:null})},label:o,type:e,elements:i,updateData:s,children:g}):g,(0,wr.jsx)(mA,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})},e9=({label:e,color:t,type:r})=>(0,wr.jsx)(Hf,{type:"button",className:j("color-picker__button active-color",{"is-transparent":t==="transparent"||!t}),"aria-label":e,style:t?{"--swatch-color":t}:void 0,title:r==="elementStroke"?y("labels.showStroke"):y("labels.showBackground"),children:(0,wr.jsx)("div",{className:"color-picker__button-outline"})}),Qd=({type:e,color:t,onChange:r,label:o,elements:i,palette:a=pi,topPicks:s,updateData:c,appState:d})=>(0,wr.jsx)("div",{children:(0,wr.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,wr.jsx)(CI,{activeColor:t,onChange:r,type:e,topPicks:s}),(0,wr.jsx)("div",{style:{width:1,height:"100%",backgroundColor:"var(--default-border-color)",margin:"0 auto"}}),(0,wr.jsxs)($f,{open:d.openPopup===e,onOpenChange:p=>{c({openPopup:p?e:null})},children:[(0,wr.jsx)(e9,{color:t,label:o,type:e}),d.openPopup===e&&(0,wr.jsx)(Q7,{type:e,color:t,onChange:r,label:o,elements:i,palette:a,updateData:c})]})]})});v();var Ia=w(J(),1);v();var Ca=w(J(),1);var wA=w(Yn(),1);var SA=w(P(),1),Kf=({children:e,left:t,top:r,onCloseRequest:o,fitInViewport:i=!1,offsetLeft:a=0,offsetTop:s=0,viewportWidth:c=window.innerWidth,viewportHeight:d=window.innerHeight})=>{let p=(0,Ca.useRef)(null);(0,Ca.useEffect)(()=>{let u=p.current;if(!u)return;u.contains(document.activeElement)||u.focus();let g=h=>{if(h.key===L.TAB){let x=md(u),{activeElement:E}=document,T=x.findIndex(M=>M===E);E===u?(h.shiftKey?x[x.length-1]?.focus():x[0].focus(),h.preventDefault(),h.stopImmediatePropagation()):T===0&&h.shiftKey?(x[x.length-1]?.focus(),h.preventDefault(),h.stopImmediatePropagation()):T===x.length-1&&!h.shiftKey&&(x[0]?.focus(),h.preventDefault(),h.stopImmediatePropagation())}};return u.addEventListener("keydown",g),()=>u.removeEventListener("keydown",g)},[]);let f=(0,Ca.useRef)(null);return(0,Ca.useLayoutEffect)(()=>{if(i&&p.current&&r!=null&&t!=null){let u=p.current,{width:g,height:h}=u.getBoundingClientRect();if(f.current?.top===r&&f.current?.left===t)return;f.current={top:r,left:t},g>=c?(u.style.width=`${c}px`,u.style.left="0px",u.style.overflowX="scroll"):t+g-a>c?u.style.left=`${c-g-10}px`:u.style.left=`${t}px`,h>=d?(u.style.height=`${d-20}px`,u.style.top="10px",u.style.overflowY="scroll"):r+h-s>d?u.style.top=`${d-h}px`:u.style.top=`${r}px`}},[r,t,i,c,d,a,s]),(0,Ca.useEffect)(()=>{if(o){let u=g=>{p.current?.contains(g.target)||(0,wA.unstable_batchedUpdates)(()=>o(g))};return document.addEventListener("pointerdown",u,!1),()=>document.removeEventListener("pointerdown",u,!1)}},[o]),(0,SA.jsx)("div",{className:"popover",ref:p,tabIndex:-1,children:e})};var ro=w(P(),1);function t9({options:e,value:t,label:r,onChange:o,onClose:i}){let a=Ia.default.useRef(),s=Ia.default.useRef(),c=Ia.default.useRef(null);return Ia.default.useEffect(()=>{s.current?s.current.focus():c.current&&c.current.focus()},[]),(0,ro.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":r,onKeyDown:p=>{let f=e.find(u=>u.keyBinding===p.key.toLowerCase());if(!(p.metaKey||p.altKey||p.ctrlKey)&&f){let u=e.indexOf(f);c.current.children[u].focus(),p.preventDefault()}else if(p.key===L.TAB)setTimeout(()=>{let u=s.current,g=document.activeElement;u!==g&&i()},0);else if(hs(p.key)){let{activeElement:u}=document,g=ki().rtl,h=Array.prototype.indexOf.call(c.current.children,u);if(h!==-1){let x=e.length,E=h;switch(p.key){case(g?L.ARROW_LEFT:L.ARROW_RIGHT):case L.ARROW_DOWN:{E=(h+1)%x;break}case(g?L.ARROW_RIGHT:L.ARROW_LEFT):case L.ARROW_UP:{E=(x+h-1)%x;break}}c.current.children[E].focus()}p.preventDefault()}else(p.key===L.ESCAPE||p.key===L.ENTER)&&(p.preventDefault(),i());p.nativeEvent.stopImmediatePropagation(),p.stopPropagation()},children:(0,ro.jsx)("div",{className:"picker-content",ref:c,children:e.map((p,f)=>(0,ro.jsxs)("button",{type:"button",className:j("picker-option",{active:t===p.value}),onClick:u=>{u.currentTarget.focus(),o(p.value)},title:`${p.text} ${p.keyBinding&&`\u2014 ${p.keyBinding.toUpperCase()}`}`,"aria-label":p.text||"none","aria-keyshortcuts":p.keyBinding||void 0,ref:u=>{u&&f===0&&(a.current=u),u&&p.value===t&&(s.current=u)},onFocus:()=>{o(p.value)},children:[p.icon,p.keyBinding&&(0,ro.jsx)("span",{className:"picker-keybinding",children:p.keyBinding})]},p.text))})})}function ay({value:e,label:t,options:r,onChange:o,group:i=""}){let[a,s]=Ia.default.useState(!1),c=Ia.default.useRef(null),d=ki().rtl;return(0,ro.jsxs)("div",{children:[(0,ro.jsx)("button",{name:i,type:"button",className:a?"active":"","aria-label":t,onClick:()=>s(!a),ref:c,children:r.find(p=>p.value===e)?.icon}),(0,ro.jsx)(Ia.default.Suspense,{fallback:"",children:a?(0,ro.jsxs)(ro.Fragment,{children:[(0,ro.jsx)(Kf,{onCloseRequest:p=>p.target!==c.current&&s(!1),...d?{right:5.5}:{left:-5.5},children:(0,ro.jsx)(t9,{options:r.filter(p=>p.showInPicker!==!1),value:e,label:t,onChange:o,onClose:()=>{s(!1),c.current?.focus()}})}),(0,ro.jsx)("div",{className:"picker-triangle"})]}):null})]})}var _e=w(P(),1),CA=.1,ko=(e,t,r,o=!1)=>{let i=Pe(ze(e,t,{includeBoundTextElement:o}));return e.map(a=>i.get(a.id)||a.id===t.editingElement?.id?r(a):a)},bo=function(e,t,r,o,i){let a=t.editingElement,s=We(e),c=null;return a&&(c=r(a)),c||(ft(s,t)?c=J2(o===!0?s:s.filter(p=>o(p)),t,r)??(typeof i=="function"?i(!0):i):c=typeof i=="function"?i(!1):i),c},r9=(e,t)=>yr(t)||!t.autoResize?t:me(t,{x:e.textAlign==="left"?e.x:e.x+(e.width-t.width)/(e.textAlign==="center"?2:1),y:e.y+(e.height-t.height)/2},!1),ly=(e,t,r,o,i)=>{let a=new Set;return{elements:ko(e,t,s=>{if(ge(s)){let c=o(s);a.add(c);let d=Re(s,{fontSize:c});return er(d,r.scene.getContainerElement(s),r.scene.getNonDeletedElementsMap()),d=r9(s,d),d}return s},!0),appState:{...t,currentItemFontSize:a.size===1?[...a][0]:i??t.currentItemFontSize},storeAction:K.CAPTURE}},o9=re({name:"changeStrokeColor",label:"labels.stroke",trackEvent:!1,perform:(e,t,r)=>({...r.currentItemStrokeColor&&{elements:ko(e,t,o=>xd(o.type)?Re(o,{strokeColor:r.currentItemStrokeColor}):o,!0)},appState:{...t,...r},storeAction:r.currentItemStrokeColor?K.CAPTURE:K.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsx)("h3",{"aria-hidden":"true",children:y("labels.stroke")}),(0,_e.jsx)(Qd,{topPicks:Mu,palette:q1,type:"elementStroke",label:y("labels.stroke"),color:bo(e,t,i=>i.strokeColor,!0,t.currentItemStrokeColor),onChange:i=>r({currentItemStrokeColor:i}),elements:e,appState:t,updateData:r})]})}),n9=re({name:"changeBackgroundColor",label:"labels.changeBackground",trackEvent:!1,perform:(e,t,r)=>({...r.currentItemBackgroundColor&&{elements:ko(e,t,o=>Re(o,{backgroundColor:r.currentItemBackgroundColor}))},appState:{...t,...r},storeAction:r.currentItemBackgroundColor?K.CAPTURE:K.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsx)("h3",{"aria-hidden":"true",children:y("labels.background")}),(0,_e.jsx)(Qd,{topPicks:Pu,palette:j1,type:"elementBackground",label:y("labels.background"),color:bo(e,t,i=>i.backgroundColor,!0,t.currentItemBackgroundColor),onChange:i=>r({currentItemBackgroundColor:i}),elements:e,appState:t,updateData:r})]})}),i9=re({name:"changeFillStyle",label:"labels.fill",trackEvent:!1,perform:(e,t,r,o)=>(Fe("element","changeFillStyle",`${r} (${o.device.editor.isMobile?"mobile":"desktop"})`),{elements:ko(e,t,i=>Re(i,{fillStyle:r})),appState:{...t,currentItemFillStyle:r},storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=ze(e,t),i=o.length>0&&o.every(a=>a.fillStyle==="zigzag");return(0,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:y("labels.fill")}),(0,_e.jsx)(Vn,{type:"button",options:[{value:"hachure",text:`${i?y("labels.zigzag"):y("labels.hachure")} (${V("Alt-Click")})`,icon:i?vT:yT,active:i?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:y("labels.crossHatch"),icon:ET,testId:"fill-cross-hatch"},{value:"solid",text:y("labels.solid"),icon:wT,testId:"fill-solid"}],value:bo(e,t,a=>a.fillStyle,a=>a.hasOwnProperty("fillStyle"),a=>a?null:t.currentItemFillStyle),onClick:(a,s)=>{let c=s.altKey&&a==="hachure"&&o.every(d=>d.fillStyle==="hachure")?"zigzag":a;r(c)}})]})}}),a9=re({name:"changeStrokeWidth",label:"labels.strokeWidth",trackEvent:!1,perform:(e,t,r)=>({elements:ko(e,t,o=>Re(o,{strokeWidth:r})),appState:{...t,currentItemStrokeWidth:r},storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:y("labels.strokeWidth")}),(0,_e.jsx)(Vn,{group:"stroke-width",options:[{value:Wu.thin,text:y("labels.thin"),icon:Lx,testId:"strokeWidth-thin"},{value:Wu.bold,text:y("labels.bold"),icon:ST,testId:"strokeWidth-bold"},{value:Wu.extraBold,text:y("labels.extraBold"),icon:TT,testId:"strokeWidth-extraBold"}],value:bo(e,t,o=>o.strokeWidth,o=>o.hasOwnProperty("strokeWidth"),o=>o?null:t.currentItemStrokeWidth),onChange:o=>r(o)})]})}),l9=re({name:"changeSloppiness",label:"labels.sloppiness",trackEvent:!1,perform:(e,t,r)=>({elements:ko(e,t,o=>Re(o,{seed:WS(),roughness:r})),appState:{...t,currentItemRoughness:r},storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:y("labels.sloppiness")}),(0,_e.jsx)(Vn,{group:"sloppiness",options:[{value:0,text:y("labels.architect"),icon:_T},{value:1,text:y("labels.artist"),icon:AT},{value:2,text:y("labels.cartoonist"),icon:kT}],value:bo(e,t,o=>o.roughness,o=>o.hasOwnProperty("roughness"),o=>o?null:t.currentItemRoughness),onChange:o=>r(o)})]})}),iZ=re({name:"changeStrokeStyle",label:"labels.strokeStyle",trackEvent:!1,perform:(e,t,r)=>({elements:ko(e,t,o=>Re(o,{strokeStyle:r})),appState:{...t,currentItemStrokeStyle:r},storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:y("labels.strokeStyle")}),(0,_e.jsx)(Vn,{group:"strokeStyle",options:[{value:"solid",text:y("labels.strokeStyle_solid"),icon:Lx},{value:"dashed",text:y("labels.strokeStyle_dashed"),icon:CT},{value:"dotted",text:y("labels.strokeStyle_dotted"),icon:IT}],value:bo(e,t,o=>o.strokeStyle,o=>o.hasOwnProperty("strokeStyle"),o=>o?null:t.currentItemStrokeStyle),onChange:o=>r(o)})]})}),s9=re({name:"changeOpacity",label:"labels.opacity",trackEvent:!1,perform:(e,t,r)=>({elements:ko(e,t,o=>Re(o,{opacity:r}),!0),appState:{...t,currentItemOpacity:r},storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,_e.jsxs)("label",{className:"control-label",children:[y("labels.opacity"),(0,_e.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:o=>r(+o.target.value),value:bo(e,t,o=>o.opacity,!0,t.currentItemOpacity)??void 0})]})}),c9=re({name:"changeFontSize",label:"labels.fontSize",trackEvent:!1,perform:(e,t,r,o)=>ly(e,t,o,()=>r,r),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:y("labels.fontSize")}),(0,_e.jsx)(Vn,{group:"font-size",options:[{value:16,text:y("labels.small"),icon:$T,testId:"fontSize-small"},{value:20,text:y("labels.medium"),icon:HT,testId:"fontSize-medium"},{value:28,text:y("labels.large"),icon:UT,testId:"fontSize-large"},{value:36,text:y("labels.veryLarge"),icon:GT,testId:"fontSize-veryLarge"}],value:bo(e,t,i=>{if(ge(i))return i.fontSize;let a=je(i,o.scene.getNonDeletedElementsMap());return a?a.fontSize:null},i=>ge(i)||je(i,o.scene.getNonDeletedElementsMap())!==null,i=>i?null:t.currentItemFontSize||wn),onChange:i=>r(i)})]})}),sy=re({name:"decreaseFontSize",label:"labels.decreaseFontSize",icon:sl,trackEvent:!1,perform:(e,t,r,o)=>ly(e,t,o,i=>Math.round(1/(1+CA)*i.fontSize)),keyTest:e=>e[L.CTRL_OR_CMD]&&e.shiftKey&&(e.key===L.CHEVRON_LEFT||e.key===L.COMMA)}),cy=re({name:"increaseFontSize",label:"labels.increaseFontSize",icon:sl,trackEvent:!1,perform:(e,t,r,o)=>ly(e,t,o,i=>Math.round(i.fontSize*(1+CA))),keyTest:e=>e[L.CTRL_OR_CMD]&&e.shiftKey&&(e.key===L.CHEVRON_RIGHT||e.key===L.PERIOD)}),d9=re({name:"changeFontFamily",label:"labels.fontFamily",trackEvent:!1,perform:(e,t,r,o)=>({elements:ko(e,t,i=>{if(ge(i)){let a=Re(i,{fontFamily:r,lineHeight:wi(r)});return er(a,o.scene.getContainerElement(i),o.scene.getNonDeletedElementsMap()),a}return i},!0),appState:{...t,currentItemFontFamily:r},storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>{let i=[{value:od.Virgil,text:y("labels.handDrawn"),icon:op,testId:"font-family-virgil"},{value:od.Helvetica,text:y("labels.normal"),icon:WT,testId:"font-family-normal"},{value:od.Cascadia,text:y("labels.code"),icon:KT,testId:"font-family-code"}];return(0,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:y("labels.fontFamily")}),(0,_e.jsx)(Vn,{group:"font-family",options:i,value:bo(e,t,a=>{if(ge(a))return a.fontFamily;let s=je(a,o.scene.getNonDeletedElementsMap());return s?s.fontFamily:null},a=>ge(a)||je(a,o.scene.getNonDeletedElementsMap())!==null,a=>a?null:t.currentItemFontFamily||ls),onChange:a=>r(a)})]})}}),m9=re({name:"changeTextAlign",label:"Change text alignment",trackEvent:!1,perform:(e,t,r,o)=>({elements:ko(e,t,i=>{if(ge(i)){let a=Re(i,{textAlign:r});return er(a,o.scene.getContainerElement(i),o.scene.getNonDeletedElementsMap()),a}return i},!0),appState:{...t,currentItemTextAlign:r},storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>{let i=o.scene.getNonDeletedElementsMap();return(0,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:y("labels.textAlign")}),(0,_e.jsx)(Vn,{group:"text-align",options:[{value:"left",text:y("labels.left"),icon:YT,testId:"align-left"},{value:"center",text:y("labels.center"),icon:VT,testId:"align-horizontal-center"},{value:"right",text:y("labels.right"),icon:XT,testId:"align-right"}],value:bo(e,t,a=>{if(ge(a))return a.textAlign;let s=je(a,i);return s?s.textAlign:null},a=>ge(a)||je(a,i)!==null,a=>a?null:t.currentItemTextAlign),onChange:a=>r(a)})]})}}),u9=re({name:"changeVerticalAlign",label:"Change vertical alignment",trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:ko(e,t,i=>{if(ge(i)){let a=Re(i,{verticalAlign:r});return er(a,o.scene.getContainerElement(i),o.scene.getNonDeletedElementsMap()),a}return i},!0),appState:{...t},storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,_e.jsx)("fieldset",{children:(0,_e.jsx)(Vn,{group:"text-align",options:[{value:Uo.TOP,text:y("labels.alignTop"),icon:(0,_e.jsx)(ZT,{theme:t.theme}),testId:"align-top"},{value:Uo.MIDDLE,text:y("labels.centerVertically"),icon:(0,_e.jsx)(jT,{theme:t.theme}),testId:"align-middle"},{value:Uo.BOTTOM,text:y("labels.alignBottom"),icon:(0,_e.jsx)(qT,{theme:t.theme}),testId:"align-bottom"}],value:bo(e,t,i=>{if(ge(i)&&i.containerId)return i.verticalAlign;let a=je(i,o.scene.getNonDeletedElementsMap());return a?a.verticalAlign:null},i=>ge(i)||je(i,o.scene.getNonDeletedElementsMap())!==null,i=>i?null:Uo.MIDDLE),onChange:i=>r(i)})})}),aZ=re({name:"changeRoundness",label:"Change edge roundness",trackEvent:!1,perform:(e,t,r)=>({elements:ko(e,t,o=>Re(o,{roundness:r==="round"?{type:ms(o.type)?Go.ADAPTIVE_RADIUS:Go.PROPORTIONAL_RADIUS}:null})),appState:{...t,currentItemRoundness:r},storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let i=tf(We(e),t).some(a=>a.roundness?.type===Go.LEGACY);return(0,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:y("labels.edges")}),(0,_e.jsx)(Vn,{group:"edges",options:[{value:"sharp",text:y("labels.sharp"),icon:MT},{value:"round",text:y("labels.round"),icon:PT}],value:bo(e,t,a=>i?null:a.roundness?"round":"sharp",a=>a.hasOwnProperty("roundness"),a=>a?null:t.currentItemRoundness),onChange:a=>r(a)})]})}}),TA=e=>[{value:null,text:y("labels.arrowhead_none"),keyBinding:"q",icon:LT},{value:"arrow",text:y("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,_e.jsx)(RT,{flip:e})},{value:"bar",text:y("labels.arrowhead_bar"),keyBinding:"e",icon:(0,_e.jsx)(NT,{flip:e})},{value:"dot",text:y("labels.arrowhead_circle"),keyBinding:null,icon:(0,_e.jsx)(Rx,{flip:e}),showInPicker:!1},{value:"circle",text:y("labels.arrowhead_circle"),keyBinding:"r",icon:(0,_e.jsx)(Rx,{flip:e}),showInPicker:!1},{value:"circle_outline",text:y("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,_e.jsx)(DT,{flip:e}),showInPicker:!1},{value:"triangle",text:y("labels.arrowhead_triangle"),icon:(0,_e.jsx)(OT,{flip:e}),keyBinding:"t"},{value:"triangle_outline",text:y("labels.arrowhead_triangle_outline"),icon:(0,_e.jsx)(FT,{flip:e}),keyBinding:null,showInPicker:!1},{value:"diamond",text:y("labels.arrowhead_diamond"),icon:(0,_e.jsx)(BT,{flip:e}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:y("labels.arrowhead_diamond_outline"),icon:(0,_e.jsx)(zT,{flip:e}),keyBinding:null,showInPicker:!1}],lZ=re({name:"changeArrowhead",label:"Change arrowheads",trackEvent:!1,perform:(e,t,r)=>({elements:ko(e,t,o=>{if(et(o)){let{position:i,type:a}=r;if(i==="start")return Re(o,{startArrowhead:a});if(i==="end")return Re(o,{endArrowhead:a})}return o}),appState:{...t,[r.position==="start"?"currentItemStartArrowhead":"currentItemEndArrowhead"]:r.type},storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=ki().rtl;return(0,_e.jsxs)("fieldset",{children:[(0,_e.jsx)("legend",{children:y("labels.arrowheads")}),(0,_e.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,_e.jsx)(ay,{label:"arrowhead_start",options:TA(!o),value:bo(e,t,i=>et(i)&&gs(i.type)?i.startArrowhead:t.currentItemStartArrowhead,!0,t.currentItemStartArrowhead),onChange:i=>r({position:"start",type:i})}),(0,_e.jsx)(ay,{label:"arrowhead_end",group:"arrowheads",options:TA(!!o),value:bo(e,t,i=>et(i)&&gs(i.type)?i.endArrowhead:t.currentItemEndArrowhead,!0,t.currentItemEndArrowhead),onChange:i=>r({position:"end",type:i})})]})]})}});v();v();var IA=w(J(),1),_A=w(P(),1),nc=()=>{let e=document.querySelector(".excalidraw-tooltip");if(e)return e;let t=document.createElement("div");return document.body.appendChild(t),t.classList.add("excalidraw-tooltip"),t},dy=(e,t,r="bottom")=>{let o=e.getBoundingClientRect(),i=window.innerWidth,a=window.innerHeight,s=5,c=t.left+t.width/2-o.width/2;c<0?c=s:c+o.width>=i&&(c=i-o.width-s);let d;r==="bottom"?(d=t.top+t.height+s,d+o.height>=a&&(d=t.top-o.height-s)):(d=t.top-o.height-s,d<0&&(d=t.top+t.height+s)),Object.assign(e.style,{top:`${d}px`,left:`${c}px`})},p9=(e,t,r,o)=>{t.classList.add("excalidraw-tooltip--visible"),t.style.minWidth=o?"50ch":"10ch",t.style.maxWidth=o?"50ch":"15ch",t.textContent=r;let i=e.getBoundingClientRect();dy(t,i)},Mo=({children:e,label:t,long:r=!1,style:o,disabled:i})=>((0,IA.useEffect)(()=>()=>nc().classList.remove("excalidraw-tooltip--visible"),[]),i?null:(0,_A.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:a=>p9(a.currentTarget,nc(),t,r),onPointerLeave:()=>nc().classList.remove("excalidraw-tooltip--visible"),style:o,children:e}));var Tl=w(P(),1),f9=re({name:"changeViewBackgroundColor",label:"labels.canvasBackground",paletteName:"Change canvas background color",trackEvent:!1,predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.changeViewBackgroundColor&&!t.viewModeEnabled,perform:(e,t,r)=>({appState:{...t,...r},storeAction:r.viewBackgroundColor?K.CAPTURE:K.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,Tl.jsx)(Qd,{palette:null,topPicks:Lu,label:y("labels.canvasBackground"),type:"canvasBackground",color:t.viewBackgroundColor,onChange:i=>r({viewBackgroundColor:i}),"data-testid":"canvas-background-picker",elements:e,appState:t,updateData:r})}),Di=re({name:"clearCanvas",label:"labels.clearCanvas",paletteName:"Clear canvas",icon:Cn,trackEvent:{category:"canvas"},predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.clearCanvas&&!t.viewModeEnabled,perform:(e,t,r,o)=>(o.imageCache.clear(),{elements:e.map(i=>Re(i,{isDeleted:!0})),appState:{...Is(),files:{},theme:t.theme,penMode:t.penMode,penDetected:t.penDetected,exportBackground:t.exportBackground,exportEmbedScene:t.exportEmbedScene,gridSize:t.gridSize,stats:t.stats,pasteDialog:t.pasteDialog,activeTool:t.activeTool.type==="image"?{...t.activeTool,type:"selection"}:t.activeTool},storeAction:K.CAPTURE})}),Yf=re({name:"zoomIn",label:"buttons.zoomIn",viewMode:!0,icon:gx,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,..._i({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Ii(t.zoom.value+tl)},t),userToFollow:null},storeAction:K.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Tl.jsx)(Ie,{type:"button",className:"zoom-in-button zoom-button",icon:gx,title:`${y("buttons.zoomIn")} \u2014 ${V("CtrlOrCmd++")}`,"aria-label":y("buttons.zoomIn"),disabled:t.zoom.value>=tx,onClick:()=>{e(null)}}),keyTest:e=>(e.code===Ne.EQUAL||e.code===Ne.NUM_ADD)&&(e[L.CTRL_OR_CMD]||e.shiftKey)}),Vf=re({name:"zoomOut",label:"buttons.zoomOut",icon:hx,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,..._i({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Ii(t.zoom.value-tl)},t),userToFollow:null},storeAction:K.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Tl.jsx)(Ie,{type:"button",className:"zoom-out-button zoom-button",icon:hx,title:`${y("buttons.zoomOut")} \u2014 ${V("CtrlOrCmd+-")}`,"aria-label":y("buttons.zoomOut"),disabled:t.zoom.value<=zu,onClick:()=>{e(null)}}),keyTest:e=>(e.code===Ne.MINUS||e.code===Ne.NUM_SUBTRACT)&&(e[L.CTRL_OR_CMD]||e.shiftKey)}),g9=re({name:"resetZoom",label:"buttons.resetZoom",icon:nT,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,..._i({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Ii(1)},t),userToFollow:null},storeAction:K.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Tl.jsx)(Mo,{label:y("buttons.resetZoom"),style:{height:"100%"},children:(0,Tl.jsxs)(Ie,{type:"button",className:"reset-zoom-button zoom-button",title:y("buttons.resetZoom"),"aria-label":y("buttons.resetZoom"),onClick:()=>{e(null)},children:[(t.zoom.value*100).toFixed(0),"%"]})}),keyTest:e=>(e.code===Ne.ZERO||e.code===Ne.NUM_ZERO)&&(e[L.CTRL_OR_CMD]||e.shiftKey)}),h9=(e,t)=>{let[r,o,i,a]=e,s=i-r,c=t.width/s,d=a-o,p=t.height/d,f=Math.min(c,p),u=Math.floor(f/tl)*tl;return Math.min(Math.max(u,zu),1)},AA=({bounds:e,appState:t,fitToViewport:r=!1,viewportZoomFactor:o=.7})=>{let[i,a,s,c]=e,d=(i+s)/2,p=(a+c)/2,f,u,g;if(r){let h=s-i,x=c-a;f=Math.min(t.width/h,t.height/x)*Math.min(1,Math.max(o,.1)),f=Math.min(Math.max(f,zu),tx);let E=t.width;if(t.openSidebar){let M=document.querySelector(".sidebar")?.offsetWidth??0;E=document.documentElement.getAttribute("dir")==="rtl"?t.width+M:t.width-M}u=E/2*(1/f)-d,g=t.height/2*(1/f)-p}else{f=h9(e,{width:t.width,height:t.height});let h=Q2({scenePoint:{x:d,y:p},viewportDimensions:{width:t.width,height:t.height},zoom:{value:f}});u=h.scrollX,g=h.scrollY}return{appState:{...t,scrollX:u,scrollY:g,zoom:{value:f}},storeAction:K.NONE}},em=({targetElements:e,appState:t,fitToViewport:r,viewportZoomFactor:o})=>{let i=lt(We(e));return AA({bounds:i,appState:t,fitToViewport:r,viewportZoomFactor:o})},DZ=re({name:"zoomToFitSelectionInViewport",label:"labels.zoomToFitViewport",icon:bp,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return em({targetElements:i.length?i:e,appState:{...t,userToFollow:null},fitToViewport:!1})},keyTest:e=>e.code===Ne.TWO&&e.shiftKey&&!e.altKey&&!e[L.CTRL_OR_CMD]}),NZ=re({name:"zoomToFitSelection",label:"helpDialog.zoomToSelection",icon:bp,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return em({targetElements:i.length?i:e,appState:{...t,userToFollow:null},fitToViewport:!0})},keyTest:e=>e.code===Ne.THREE&&e.shiftKey&&!e.altKey&&!e[L.CTRL_OR_CMD]}),b9=re({name:"zoomToFit",label:"helpDialog.zoomToFit",icon:bp,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t)=>em({targetElements:e,appState:{...t,userToFollow:null},fitToViewport:!1}),keyTest:e=>e.code===Ne.ONE&&e.shiftKey&&!e.altKey&&!e[L.CTRL_OR_CMD]}),Sl=re({name:"toggleTheme",label:(e,t)=>t.theme===$e.DARK?"buttons.lightMode":"buttons.darkMode",keywords:["toggle","dark","light","mode","theme"],icon:e=>e.theme===$e.LIGHT?yd:Ed,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r)=>({appState:{...t,theme:r||(t.theme===$e.LIGHT?$e.DARK:$e.LIGHT)},storeAction:K.NONE}),keyTest:e=>e.altKey&&e.shiftKey&&e.code===Ne.D,predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.toggleTheme}),OZ=re({name:"toggleEraserTool",label:"toolBar.eraser",trackEvent:{category:"toolbar"},perform:(e,t)=>{let r;return Zo(t)?r=Ut(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):r=Ut(t,{type:"eraser",lastActiveToolBeforeEraser:t.activeTool}),{appState:{...t,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:r},storeAction:K.CAPTURE}},keyTest:e=>e.key===L.E}),kA=re({name:"toggleHandTool",label:"toolBar.hand",paletteName:"Toggle hand tool",trackEvent:{category:"toolbar"},icon:dp,viewMode:!1,perform:(e,t,r,o)=>{let i;return Si(t)?i=Ut(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(i=Ut(t,{type:"hand",lastActiveToolBeforeEraser:t.activeTool}),pt(o.interactiveCanvas,ut.GRAB)),{appState:{...t,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:i},storeAction:K.CAPTURE}},keyTest:e=>!e.altKey&&!e[L.CTRL_OR_CMD]&&e.key===L.H});v();var MA=w(P(),1),tn=re({name:"finalize",label:"",trackEvent:!1,perform:(e,t,r,o)=>{let{interactiveCanvas:i,focusContainer:a,scene:s}=o,c=s.getNonDeletedElementsMap();if(t.editingLinearElement){let{elementId:g,startBindingElement:h,endBindingElement:x}=t.editingLinearElement,E=Le.getElement(g,c);if(E)return hi(E)&&vp(E,h,x,c),{elements:E.points.length<2||gl(E)?e.filter(T=>T.id!==E.id):void 0,appState:{...t,cursorButton:"up",editingLinearElement:null,selectedLinearElement:null},storeAction:K.CAPTURE}}let d=e,p=t.pendingImageElementId&&s.getElement(t.pendingImageElementId);p&&me(p,{isDeleted:!0},!1),window.document.activeElement instanceof HTMLElement&&a();let f=t.multiElement?t.multiElement:t.editingElement?.type==="freedraw"?t.editingElement:null;if(f){if(f.type!=="freedraw"&&t.lastPointerDownWith!=="touch"){let{points:h,lastCommittedPoint:x}=f;(!x||h[h.length-1]!==x)&&me(f,{points:f.points.slice(0,-1)})}gl(f)&&(d=d.filter(h=>h.id!==f.id));let g=gd(f.points,t.zoom.value);if((f.type==="line"||f.type==="freedraw")&&g){let h=f.points,x=h[0];me(f,{points:h.map((E,T)=>T===h.length-1?[x[0],x[1]]:E)})}if(hi(f)&&!g&&f.points.length>1){let[h,x]=Le.getPointAtIndexGlobalCoordinates(f,-1,Pe(e));Td(f,t,{x:h,y:x},c)}}(!t.activeTool.locked&&t.activeTool.type!=="freedraw"||!f)&&qo(i);let u;return t.activeTool.type==="eraser"?u=Ut(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):u=Ut(t,{type:"selection"}),{elements:d,appState:{...t,cursorButton:"up",activeTool:(t.activeTool.locked||t.activeTool.type==="freedraw")&&f?t.activeTool:u,activeEmbeddable:null,draggingElement:null,multiElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:f&&!t.activeTool.locked&&t.activeTool.type!=="freedraw"?{...t.selectedElementIds,[f.id]:!0}:t.selectedElementIds,selectedLinearElement:f&&et(f)?new Le(f):t.selectedLinearElement,pendingImageElementId:null},storeAction:K.CAPTURE}},keyTest:(e,t)=>e.key===L.ESCAPE&&(t.editingLinearElement!==null||!t.draggingElement&&t.multiElement===null)||(e.key===L.ESCAPE||e.key===L.ENTER)&&t.multiElement!==null,PanelComponent:({appState:e,updateData:t,data:r})=>(0,MA.jsx)(Ie,{type:"button",icon:fT,title:y("buttons.done"),"aria-label":y("buttons.done"),onClick:t,visible:e.multiElement!=null,size:r?.size||"medium"})});v();v();var PA=w(J(),1);var tm=w(P(),1),LA=e=>{let{id:t}=Er(),[r,o]=(0,PA.useState)(e.value),i=s=>{e.ignoreFocus||PS(s.target);let c=s.target.value;c!==e.value&&e.onChange(c)},a=s=>{if(s.key===L.ENTER){if(s.preventDefault(),s.nativeEvent.isComposing||s.keyCode===229)return;s.currentTarget.blur()}};return(0,tm.jsxs)("div",{className:"ProjectName",children:[(0,tm.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${e.label}:`}),(0,tm.jsx)("input",{type:"text",className:"TextInput",onBlur:i,onKeyDown:a,id:`${t}-filename`,value:r,onChange:s=>o(s.target.value)})]})};v();var ic=w(P(),1),DA=e=>{let t=e.title||(e.value===$e.DARK?y("buttons.lightMode"):y("buttons.darkMode"));return(0,ic.jsx)(Ie,{type:"icon",icon:e.value===$e.LIGHT?RA.MOON:RA.SUN,title:t,"aria-label":t,onClick:()=>e.onChange(e.value===$e.DARK?$e.LIGHT:$e.DARK),"data-testid":"toggle-dark-mode"})},RA={SUN:(0,ic.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,ic.jsx)("path",{fill:"currentColor",d:"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"})}),MOON:(0,ic.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,ic.jsx)("path",{fill:"currentColor",d:"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"})})};v();var Cl=(e,{selectedElementIds:t},r)=>{e=We(e);let o=r&&ft(e,{selectedElementIds:t}),i=null,a=o?ze(e,{selectedElementIds:t},{includeBoundTextElement:!0}):e;return o&&(a.length===1&&He(a[0])?(i=a[0],a=jp(e,i)):a.length>1&&(a=ze(e,{selectedElementIds:t},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:i,exportedElements:uo(a)}},Il=async(e,t,r,o,{exportBackground:i,exportPadding:a=na,viewBackgroundColor:s,name:c=r.name||wS,fileHandle:d=null,exportingFrame:p=null})=>{if(t.length===0)throw new Error(y("alerts.cannotExportEmptyCanvas"));if(e==="svg"||e==="clipboard-svg"){let u=Wp(t,{exportBackground:i,exportWithDarkMode:r.exportWithDarkMode,viewBackgroundColor:s,exportPadding:a,exportScale:r.exportScale,exportEmbedScene:r.exportEmbedScene&&e==="svg"},o,{exportingFrame:p});if(e==="svg")return Hx(u.then(g=>new Blob([g.outerHTML],{type:Ir.svg})),{description:"Export to SVG",name:c,extension:r.exportEmbedScene?"excalidraw.svg":"svg",fileHandle:d});if(e==="clipboard-svg"){let g=await u.then(h=>h.outerHTML);try{await Ls(g)}catch{throw new Error(y("errors.copyToSystemClipboardFailed"))}return}}let f=C2(t,r,o,{exportBackground:i,viewBackgroundColor:s,exportPadding:a,exportingFrame:p});if(e==="png"){let u=Ci(f);return r.exportEmbedScene&&(u=u.then(g=>import("./excalidraw-assets/image-LQAMCFQI.js").then(({encodePngMetadata:h})=>h({blob:g,metadata:Vx(t,r,o,"local")})))),Hx(u,{description:"Export to PNG",name:c,extension:"png",fileHandle:d})}else if(e==="clipboard")try{let u=Ci(f);await P2(u)}catch(u){throw console.warn(u),u.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(y("canvasError.canvasTooBig")):fi&&u.name==="TypeError"?new Error(`${y("alerts.couldNotCopyToClipboard")}
42
61
 
43
- ${g("hints.firefox_clipboard_write")}`):new Error(g("alerts.couldNotCopyToClipboard"))}else throw new Error("Unsupported export type")};h();var my=async(t,e,o,r)=>{let{exportBackground:n,viewBackgroundColor:i,fileHandle:a}=e,l=Ub(a);if(!a||!Wb(l))throw new Error("fileHandle should exist and should be of type svg or png when resaving");e={...e,exportEmbedScene:!0};let{exportedElements:s,exportingFrame:d}=ui(t,e,!1);return await fi(l,s,e,o,{exportBackground:n,viewBackgroundColor:i,name:r,fileHandle:a,exportingFrame:d}),{fileHandle:a}};h();var ls=v(k(),1),hi=({children:t,checked:e,onChange:o,className:r})=>(0,ls.jsxs)("div",{className:$("Checkbox",r,{"is-checked":e}),onClick:n=>{o(!e,n),n.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,ls.jsx)("button",{className:"Checkbox-box",role:"checkbox","aria-checked":e,children:Ax}),(0,ls.jsx)("div",{className:"Checkbox-label",children:t})]});var uo=v(k(),1),th=W({name:"changeProjectName",label:"labels.fileTitle",trackEvent:!1,perform:(t,e,o)=>({appState:{...e,name:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e,appProps:o,data:r,app:n})=>(0,uo.jsx)(sy,{label:g("labels.fileTitle"),value:n.getName(),onChange:i=>e(i),ignoreFocus:r?.ignoreFocus??!1})}),py=W({name:"changeExportScale",label:"imageExportDialog.scale",trackEvent:{category:"export",action:"scale"},perform:(t,e,o)=>({appState:{...e,exportScale:o},storeAction:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=ye(t),i=Fe(r,e)?we(r,e):r;return(0,uo.jsx)(uo.Fragment,{children:oc.map(a=>{let[l,s]=b0(i,ln,a),d=`${g("imageExportDialog.label.scale")} ${a}x (${l}x${s})`;return(0,uo.jsx)(ce,{size:"small",type:"radio",icon:`${a}x`,name:"export-canvas-scale",title:d,"aria-label":d,id:"export-canvas-scale",checked:a===e.exportScale,onChange:()=>o(a)},a)})})}}),oh=W({name:"changeExportBackground",label:"imageExportDialog.label.withBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(t,e,o)=>({appState:{...e,exportBackground:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsx)(hi,{checked:t.exportBackground,onChange:o=>e(o),children:g("imageExportDialog.label.withBackground")})}),tm=W({name:"changeExportEmbedScene",label:"imageExportDialog.tooltip.embedScene",trackEvent:{category:"export",action:"embedScene"},perform:(t,e,o)=>({appState:{...e,exportEmbedScene:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsxs)(hi,{checked:t.exportEmbedScene,onChange:o=>e(o),children:[g("imageExportDialog.label.embedScene"),(0,uo.jsx)(xo,{label:g("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,uo.jsx)("div",{className:"excalidraw-tooltip-icon",children:Dx})})]})}),om=W({name:"saveToActiveFile",label:"buttons.save",icon:ni,trackEvent:{category:"export"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.saveToActiveFile&&!!e.fileHandle&&!e.viewModeEnabled,perform:async(t,e,o,r)=>{let n=!!e.fileHandle;try{let{fileHandle:i}=Rc(e.fileHandle)?await my(t,e,r.files,r.getName()):await Fc(t,e,r.files,r.getName());return{storeAction:P.NONE,appState:{...e,fileHandle:i,toast:n?{message:i?.name?g("toast.fileSavedToFilename").replace("{filename}",`"${i.name}"`):g("toast.fileSaved")}:null}}}catch(i){return i?.name!=="AbortError"?console.error(i):console.warn(i),{storeAction:P.NONE}}},keyTest:t=>t.key===S.S&&t[S.CTRL_OR_CMD]&&!t.shiftKey}),ss=W({name:"saveFileToDisk",label:"exportDialog.disk_title",icon:ni,viewMode:!0,trackEvent:{category:"export"},perform:async(t,e,o,r)=>{try{let{fileHandle:n}=await Fc(t,{...e,fileHandle:null},r.files,r.getName());return{storeAction:P.NONE,appState:{...e,openDialog:null,fileHandle:n,toast:{message:g("toast.fileSaved")}}}}catch(n){return n?.name!=="AbortError"?console.error(n):console.warn(n),{storeAction:P.NONE}}},keyTest:t=>t.key===S.S&&t.shiftKey&&t[S.CTRL_OR_CMD],PanelComponent:({updateData:t})=>(0,uo.jsx)(ce,{type:"button",icon:_x,title:g("buttons.saveAs"),"aria-label":g("buttons.saveAs"),showAriaLabel:Me().editor.isMobile,hidden:!ji,onClick:()=>t(null),"data-testid":"save-as-button"})}),Da=W({name:"loadScene",label:"buttons.load",trackEvent:{category:"export"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.loadScene&&!e.viewModeEnabled,perform:async(t,e,o,r)=>{try{let{elements:n,appState:i,files:a}=await fu(e,t);return{elements:n,appState:i,files:a,storeAction:P.CAPTURE}}catch(n){return n?.name==="AbortError"?(console.warn(n),!1):{elements:t,appState:{...e,errorMessage:n.message},files:r.files,storeAction:P.NONE}}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.O}),uy=W({name:"exportWithDarkMode",label:"imageExportDialog.label.darkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(t,e,o)=>({appState:{...e,exportWithDarkMode:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,uo.jsx)(dy,{value:t.exportWithDarkMode?be.DARK:be.LIGHT,onChange:o=>{e(o===be.DARK)},title:g("imageExportDialog.label.darkMode")})})});h();var fy="{}",rh=W({name:"copyStyles",label:"labels.copyStyles",icon:of,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=[],i=t.find(a=>e.selectedElementIds[a.id]);if(n.push(i),i&&fr(i)){let a=ct(i,r.scene.getNonDeletedElementsMap());n.push(a)}return i&&(fy=JSON.stringify(n)),{appState:{...e,toast:{message:g("toast.copyStyles")}},storeAction:P.NONE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.C}),nh=W({name:"pasteStyles",label:"labels.pasteStyles",icon:of,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=JSON.parse(fy),i=n[0],a=n[1];if(!Q1(i))return{elements:t,storeAction:P.NONE};let l=we(t,e,{includeBoundTextElement:!0}),s=l.map(d=>d.id);return{elements:t.map(d=>{if(s.includes(d.id)){let c=i;if(se(d)&&d.containerId&&(c=a),!c)return d;let m=he(d,{backgroundColor:c?.backgroundColor,strokeWidth:c?.strokeWidth,strokeColor:c?.strokeColor,strokeStyle:c?.strokeStyle,fillStyle:c?.fillStyle,opacity:c?.opacity,roughness:c?.roughness,roundness:c.roundness?eb(c.roundness.type,d)?c.roundness:tb(d):null});if(se(m)){let u=c.fontSize||_r,f=c.fontFamily||Oi;m=he(m,{fontSize:u,fontFamily:f,textAlign:c.textAlign||f1,lineHeight:c.lineHeight||Or(f)});let b=null;m.containerId&&(b=l.find(x=>se(m)&&x.id===m.containerId)||null),Ut(m,b,r.scene.getNonDeletedElementsMap())}return m.type==="arrow"&&ur(c)&&(m=he(m,{startArrowhead:c.startArrowhead,endArrowhead:c.endArrowhead})),Ee(d)&&(m=he(m,{roundness:null,backgroundColor:"transparent"})),m}return d}),storeAction:P.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.V});h();var ih=v(k(),1),nS=W({name:"toggleCanvasMenu",label:"buttons.menu",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="canvas"?null:"canvas"},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,ih.jsx)(ce,{type:"button",icon:dd,"aria-label":g("buttons.menu"),onClick:e,selected:t.openMenu==="canvas"})}),iS=W({name:"toggleEditMenu",label:"buttons.edit",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="shape"?null:"shape"},storeAction:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,ih.jsx)(ce,{visible:ea(e,ye(t)),type:"button",icon:Lx,"aria-label":g("buttons.edit"),onClick:o,selected:e.openMenu==="shape"})}),gi=W({name:"toggleShortcuts",label:"welcomeScreen.defaults.helpHint",icon:Tx,viewMode:!0,trackEvent:{category:"menu",action:"toggleHelpDialog"},perform:(t,e,o,{focusContainer:r})=>(e.openDialog?.name==="help"&&r(),{appState:{...e,openDialog:e.openDialog?.name==="help"?null:{name:"help"}},storeAction:P.NONE}),keyTest:t=>t.key===S.QUESTION_MARK});h();var bi=v(k(),1),aS=t=>{if(t.length>=2){let e=t[0].groupIds;for(let o of e)if(t.reduce((r,n)=>r&&Yi(n,o),!0))return!0}return!1},hy=(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0});return r.length>=2&&!aS(r)},ah=W({name:"group",label:"labels.group",icon:t=>(0,bi.jsx)(Xu,{theme:t.theme}),trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0});if(n.length<2)return{appState:e,elements:t,storeAction:P.NONE};let i=Br(e);if(i.length===1){let E=i[0],T=new Set(ft(t,E).map(A=>A.id)),C=new Set(n.map(A=>A.id));if(new Set([...Array.from(T),...Array.from(C)]).size===T.size)return{appState:e,elements:t,storeAction:P.NONE}}let a=[...t];new Set(n.map(E=>E.frameId)).size>1&&S0(n).forEach((T,C)=>{Gc(T,r.scene.getNonDeletedElementsMap())});let s=mn(),d=pe(n);a=a.map(E=>d.get(E.id)?he(E,{groupIds:Lb(E.groupIds,s,e.editingGroupId)}):E);let c=ft(a,s),m=c[c.length-1],u=a.lastIndexOf(m),f=a.slice(u+1),b=a.slice(0,u).filter(E=>!Yi(E,s)),x=ho([...b,...c,...f],pe(c));return{appState:{...e,...kb(s,{...e,selectedGroupIds:{}},ye(a))},elements:x,storeAction:P.CAPTURE}},predicate:(t,e,o,r)=>hy(t,e,r),keyTest:t=>!t.shiftKey&&t[S.CTRL_OR_CMD]&&t.key===S.G,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,bi.jsx)(ce,{hidden:!hy(t,e,r),type:"button",icon:(0,bi.jsx)(Xu,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.group")} \u2014 ${F("CtrlOrCmd+G")}`,"aria-label":g("labels.group"),visible:Fe(ye(t),e)})}),lh=W({name:"ungroup",label:"labels.ungroup",icon:t=>(0,bi.jsx)(qu,{theme:t.theme}),trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=Br(e),i=pe(t);if(n.length===0)return{appState:e,elements:t,storeAction:P.NONE};let a=[...t],l=[];a=a.map(u=>{xt(u)&&l.push(u.id);let f=Pb(u.groupIds,e.selectedGroupIds);return f.length===u.groupIds.length?u:he(u,{groupIds:f})});let s=Nt(e,ye(a),e,null),d=r.scene.getSelectedElements(e),c=new Set(d.filter(u=>u.frameId).map(u=>u.frameId));return T0(t).filter(u=>c.has(u.id)).forEach(u=>{u&&(a=Vc(a,Qi(a,u,e,i),u,r))}),s.selectedElementIds=Object.entries(s.selectedElementIds).reduce((u,[f,b])=>(b&&!l.includes(f)&&(u[f]=!0),u),{}),{appState:{...e,...s},elements:a,storeAction:P.CAPTURE}},keyTest:t=>t.shiftKey&&t[S.CTRL_OR_CMD]&&t.key===S.G.toUpperCase(),predicate:(t,e)=>Br(e).length>0,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,bi.jsx)(ce,{type:"button",hidden:Br(e).length===0,icon:(0,bi.jsx)(qu,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.ungroup")} \u2014 ${F("CtrlOrCmd+Shift+G")}`,"aria-label":g("labels.ungroup"),visible:Fe(ye(t),e)})});h();h();h();var rm=(t,e,o,r,n,i,a)=>{t.beginPath(),t.moveTo(e+i,o),t.lineTo(e+r-i,o),t.quadraticCurveTo(e+r,o,e+r,o+i),t.lineTo(e+r,o+n-i),t.quadraticCurveTo(e+r,o+n,e+r-i,o+n),t.lineTo(e+i,o+n),t.quadraticCurveTo(e,o+n,e,o+n-i),t.lineTo(e,o+i),t.quadraticCurveTo(e,o,e+i,o),t.closePath(),t.fill(),a&&(t.strokeStyle=a),t.stroke()};h();function lS(t){let e=0;if(t.length===0)return e;for(let o=0;o<t.length;o++){let r=t.charCodeAt(o);e=(e<<5)-e+r}return e}var xi=(t,e)=>`hsl(${Math.abs(lS(e?.id||t))%37*10}, 100%, 83%)`,gy=t=>{let e=t?.trim()?.codePointAt(0);return(e?String.fromCodePoint(e):"?").toUpperCase()},by=({context:t,renderConfig:e,appState:o,normalizedWidth:r,normalizedHeight:n})=>{for(let[i,a]of e.remotePointerViewportCoords){let{x:l,y:s}=a,d=o.collaborators.get(i);l-=o.offsetLeft,s-=o.offsetTop;let c=11,m=14,u=l<0||l>r-c||s<0||s>n-m;l=Math.max(l,0),l=Math.min(l,r-c),s=Math.max(s,0),s=Math.min(s,n-m);let f=xi(i,d);t.save(),t.strokeStyle=f,t.fillStyle=f;let b=e.remotePointerUserStates.get(i),x=u||b==="idle"||b==="away";x&&(t.globalAlpha=.3),e.remotePointerButton.get(i)==="down"&&(t.beginPath(),t.arc(l,s,15,0,2*Math.PI,!1),t.lineWidth=3,t.strokeStyle="#ffffff88",t.stroke(),t.closePath(),t.beginPath(),t.arc(l,s,15,0,2*Math.PI,!1),t.lineWidth=1,t.strokeStyle=f,t.stroke(),t.closePath());let E=o.theme===be.DARK?"#2f6330":b1,T=d?.isSpeaking;T&&(t.fillStyle=E,t.strokeStyle=E,t.lineWidth=10,t.lineJoin="round",t.beginPath(),t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.stroke(),t.fill()),t.fillStyle=dl,t.strokeStyle=dl,t.lineWidth=6,t.lineJoin="round",t.beginPath(),t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.stroke(),t.fill(),t.fillStyle=f,t.strokeStyle=f,t.lineWidth=2,t.lineJoin="round",t.beginPath(),x?(t.moveTo(l-1,s-1),t.lineTo(l-1,s+15),t.lineTo(l+5,s+10),t.lineTo(l+12,s+9),t.closePath(),t.fill()):(t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.fill(),t.stroke());let C=e.remotePointerUsernames.get(i)||"";if(!u&&C){t.font="600 12px sans-serif";let w=(T?l+0:l)+c/2,A=(T?s+0:s)+m+2,z=5,I=3,M=t.measureText(C),_=M.actualBoundingBoxDescent+M.actualBoundingBoxAscent,U=Math.max(_,12),D=w-1,G=A-1,O=M.width+2+z*2+2,B=U+2+I*2+2;if(t.roundRect?(t.beginPath(),t.roundRect(D,G,O,B,8),t.fillStyle=f,t.fill(),t.strokeStyle=dl,t.stroke(),T&&(t.beginPath(),t.roundRect(D-2,G-2,O+4,B+4,8),t.strokeStyle=E,t.stroke())):rm(t,D,G,O,B,8,dl),t.fillStyle=g1,t.fillText(C,w+z+1,A+I+M.actualBoundingBoxAscent+Math.floor((U-_)/2)+2),T){t.fillStyle=E;let te=8,oe=8,ve=5;t.fillRect(D+O+oe,G+(B/2-te/2),2,te),t.fillRect(D+O+oe+ve,G+(B/2-te*2/2),2,te*2),t.fillRect(D+O+oe+ve*2,G+(B/2-te/2),2,te)}}t.restore(),t.closePath()}};h();var xy=v(H(),1);var sh=v(k(),1),ch=({color:t,onClick:e,name:o,src:r,className:n})=>{let i=gy(o),[a,l]=(0,xy.useState)(!1),s=!a&&r,d=s?void 0:{background:t};return(0,sh.jsx)("div",{className:$("Avatar",n),style:d,onClick:e,children:s?(0,sh.jsx)("img",{className:"Avatar-img",src:r,alt:i,referrerPolicy:"no-referrer",onError:()=>l(!0)}):i})};var Yt=v(k(),1),sS=W({name:"goToCollaborator",label:"Go to a collaborator",viewMode:!0,trackEvent:{category:"collab"},perform:(t,e,o)=>!o.socketId||e.userToFollow?.socketId===o.socketId||o.isCurrentUser?{appState:{...e,userToFollow:null},storeAction:P.NONE}:{appState:{...e,userToFollow:{socketId:o.socketId,username:o.username||""},openMenu:e.openMenu==="canvas"?null:e.openMenu},storeAction:P.NONE},PanelComponent:({updateData:t,data:e,appState:o})=>{let{socketId:r,collaborator:n,withName:i,isBeingFollowed:a}=e,l=xi(r,n),s=$({"is-followed":a,"is-current-user":n.isCurrentUser===!0,"is-speaking":n.isSpeaking,"is-in-call":n.isInCall,"is-muted":n.isMuted}),d=n.isInCall?n.isSpeaking?(0,Yt.jsxs)("div",{className:"UserList__collaborator-status-icon-speaking-indicator",title:g("userList.hint.isSpeaking"),children:[(0,Yt.jsx)("div",{}),(0,Yt.jsx)("div",{}),(0,Yt.jsx)("div",{})]}):n.isMuted?(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon-microphone-muted",title:g("userList.hint.micMuted"),children:Mv}):(0,Yt.jsx)("div",{title:g("userList.hint.inCall"),children:Av}):null;return i?(0,Yt.jsxs)("div",{className:`dropdown-menu-item dropdown-menu-item-base UserList__collaborator ${s}`,style:{"--avatar-size":"1.5rem"},onClick:()=>t(n),children:[(0,Yt.jsx)(ch,{color:l,onClick:()=>{},name:n.username||"",src:n.avatarUrl,className:s}),(0,Yt.jsx)("div",{className:"UserList__collaborator-name",children:n.username}),(0,Yt.jsxs)("div",{className:"UserList__collaborator-status-icons","aria-hidden":!0,children:[a&&(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon-is-followed",title:g("userList.hint.followStatus"),children:pa}),d]})]}):(0,Yt.jsxs)("div",{className:`UserList__collaborator UserList__collaborator--avatar-only ${s}`,children:[(0,Yt.jsx)(ch,{color:l,onClick:()=>{t(n)},name:n.username||"",src:n.avatarUrl,className:s}),d&&(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon",children:d})]})}});h();var dh=W({name:"addToLibrary",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});for(let i of ac)if(n.some(a=>a.type===i))return{storeAction:P.NONE,appState:{...e,errorMessage:g(`errors.libraryElementTypeError.${i}`)}};return r.library.getLatestLibrary().then(i=>r.library.setLibrary([{id:mn(),status:"unpublished",elements:n.map(Mc),created:Date.now()},...i])).then(()=>({storeAction:P.NONE,appState:{...e,toast:{message:g("toast.addedToLibrary")}}})).catch(i=>({storeAction:P.NONE,appState:{...e,errorMessage:i.message}}))},label:"labels.addToLibrary"});h();h();var vy=(t,e,o)=>{let r=Jn(t,e),n=Io(t);return r.flatMap(i=>{let a=cS(i,n,o);return i.map(l=>he(l,{x:l.x+a.x,y:l.y+a.y}))})},cS=(t,e,{axis:o,position:r})=>{let n=Io(t),[i,a]=o==="x"?["minX","maxX"]:["minY","maxY"],l={x:0,y:0};return r==="start"?{...l,[o]:e[i]-n[i]}:r==="end"?{...l,[o]:e[a]-n[a]}:{...l,[o]:(e[i]+e[a])/2-(n[i]+n[a])/2}};var vi=v(k(),1),Fo=(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return n.length>1&&!n.some(i=>Ee(i))},Na=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=pe(t),a=vy(n,i,r),l=pe(a);return hr(t.map(s=>l.get(s.id)||s),e,o)},dS=W({name:"alignTop",label:"labels.alignTop",icon:Gu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"start",axis:"y"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_UP,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:Gu,onClick:()=>o(null),title:`${g("labels.alignTop")} \u2014 ${F("CtrlOrCmd+Shift+Up")}`,"aria-label":g("labels.alignTop"),visible:Fe(ye(t),e)})}),mS=W({name:"alignBottom",label:"labels.alignBottom",icon:Vu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"end",axis:"y"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_DOWN,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:Vu,onClick:()=>o(null),title:`${g("labels.alignBottom")} \u2014 ${F("CtrlOrCmd+Shift+Down")}`,"aria-label":g("labels.alignBottom"),visible:Fe(ye(t),e)})}),pS=W({name:"alignLeft",label:"labels.alignLeft",icon:Ku,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"start",axis:"x"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_LEFT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:Ku,onClick:()=>o(null),title:`${g("labels.alignLeft")} \u2014 ${F("CtrlOrCmd+Shift+Left")}`,"aria-label":g("labels.alignLeft"),visible:Fe(ye(t),e)})}),uS=W({name:"alignRight",label:"labels.alignRight",icon:Yu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"end",axis:"x"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_RIGHT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:Yu,onClick:()=>o(null),title:`${g("labels.alignRight")} \u2014 ${F("CtrlOrCmd+Shift+Right")}`,"aria-label":g("labels.alignRight"),visible:Fe(ye(t),e)})}),fS=W({name:"alignVerticallyCentered",label:"labels.centerVertically",icon:Zu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"center",axis:"y"}),storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:Zu,onClick:()=>o(null),title:g("labels.centerVertically"),"aria-label":g("labels.centerVertically"),visible:Fe(ye(t),e)})}),hS=W({name:"alignHorizontallyCentered",label:"labels.centerHorizontally",icon:ju,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"center",axis:"x"}),storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:ju,onClick:()=>o(null),title:g("labels.centerHorizontally"),"aria-label":g("labels.centerHorizontally"),visible:Fe(ye(t),e)})});h();h();var Ey=(t,e,o)=>{let[r,n,i,a]=o.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],l=Io(t),s=Jn(t,e).map(u=>[u,Io(u)]).sort((u,f)=>u[1][n]-f[1][n]),d=0;for(let u of s)d+=u[1][a];let c=(l[a]-d)/(s.length-1);if(c<0){let u=s.findIndex(E=>E[1][r]===l[r]),f=s.findIndex(E=>E[1][i]===l[i]),b=(s[f][1][n]-s[u][1][n])/(s.length-1),x=s[u][1][n];return s.flatMap(([E,T],C)=>{let w={x:0,y:0};return C!==u&&C!==f&&(x+=b,w[o.axis]=x-T[n]),E.map(A=>he(A,{x:A.x+w.x,y:A.y+w.y}))})}let m=l[r];return s.flatMap(([u,f])=>{let b={x:0,y:0};return b[o.axis]=m-f[r],m+=c,m+=f[a],u.map(x=>he(x,{x:x.x+b.x,y:x.y+b.y}))})};var mh=v(k(),1),yy=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length>1&&!o.some(r=>Ee(r))},wy=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=Ey(n,o.scene.getNonDeletedElementsMap(),r),a=pe(i);return hr(t.map(l=>a.get(l.id)||l),e,o)},gS=W({name:"distributeHorizontally",label:"labels.distributeHorizontally",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:wy(t,e,r,{space:"between",axis:"x"}),storeAction:P.CAPTURE}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.H,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,mh.jsx)(ce,{hidden:!yy(e,r),type:"button",icon:Ox,onClick:()=>o(null),title:`${g("labels.distributeHorizontally")} \u2014 ${F("Alt+H")}`,"aria-label":g("labels.distributeHorizontally"),visible:Fe(ye(t),e)})}),bS=W({name:"distributeVertically",label:"labels.distributeVertically",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:wy(t,e,r,{space:"between",axis:"y"}),storeAction:P.CAPTURE}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.V,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,mh.jsx)(ce,{hidden:!yy(e,r),type:"button",icon:Fx,onClick:()=>o(null),title:`${g("labels.distributeVertically")} \u2014 ${F("Alt+V")}`,"aria-label":g("labels.distributeVertically"),visible:Fe(ye(t),e)})});h();var ph=W({name:"flipHorizontal",label:"labels.flipHorizontal",icon:Rv,trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:hr(Cy(t,r.scene.getNonDeletedElementsMap(),e,"horizontal",r),e,r),appState:e,storeAction:P.CAPTURE}),keyTest:t=>t.shiftKey&&t.code===fe.H}),uh=W({name:"flipVertical",label:"labels.flipVertical",icon:Pv,trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:hr(Cy(t,r.scene.getNonDeletedElementsMap(),e,"vertical",r),e,r),appState:e,storeAction:P.CAPTURE}),keyTest:t=>t.shiftKey&&t.code===fe.V&&!t[S.CTRL_OR_CMD]}),Cy=(t,e,o,r,n)=>{let i=we(ye(t),o,{includeBoundTextElement:!0,includeElementsInFrames:!0}),a=xS(i,t,e,o,r,n),l=pe(a);return t.map(s=>l.get(s.id)||s)},xS=(t,e,o,r,n,i)=>{let{minX:a,minY:l,maxX:s,maxY:d}=Io(t);return O0(o,t,o,"nw",!0,!0,n==="horizontal"?s:a,n==="horizontal"?l:d),qn(r)?Cl(t,i):Tl(t,o),t};h();var Oa=W({name:"copy",label:"labels.copy",icon:$l,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await E0(n,r.files,o)}catch(i){return{storeAction:P.NONE,appState:{...e,errorMessage:i.message}}}return{storeAction:P.NONE}},keyTest:void 0}),fh=W({name:"paste",label:"labels.paste",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n;try{n=await y0()}catch(i){return i.name==="AbortError"||i.name==="NotAllowedError"?!1:(console.error(`actionPaste ${i.name}: ${i.message}`),Mr?{storeAction:P.NONE,appState:{...e,errorMessage:g("hints.firefox_clipboard_write")}}:{storeAction:P.NONE,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnRead")}})}try{r.pasteFromClipboard(v0({types:n}))}catch(i){return console.error(i),{storeAction:P.NONE,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnParse")}}}return{storeAction:P.NONE}},keyTest:void 0}),nm=W({name:"cut",label:"labels.cut",icon:xv,trackEvent:{category:"element"},perform:(t,e,o,r)=>(Oa.perform(t,e,o,r),Vl.perform(t,e,null,r)),keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.X}),im=W({name:"copyAsSvg",label:"labels.copyAsSvg",icon:Dv,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{storeAction:P.NONE};let{exportedElements:n,exportingFrame:i}=ui(t,e,!0);try{return await fi("clipboard-svg",n,e,r.files,{...e,exportingFrame:i,name:r.getName()}),{storeAction:P.NONE}}catch(a){return console.error(a),{appState:{...e,errorMessage:a.message},storeAction:P.NONE}}},predicate:t=>bu&&t.length>0,keywords:["svg","clipboard","copy"]}),am=W({name:"copyAsPng",label:"labels.copyAsPng",icon:Nv,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{storeAction:P.NONE};let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:i,exportingFrame:a}=ui(t,e,!0);try{return await fi("clipboard",i,e,r.files,{...e,exportingFrame:a,name:r.getName()}),{appState:{...e,toast:{message:g("toast.copyToClipboardAsPng",{exportSelection:n.length?g("toast.selection"):g("toast.canvas"),exportColorScheme:e.exportWithDarkMode?g("buttons.darkMode"):g("buttons.lightMode")})}},storeAction:P.NONE}}catch(l){return console.error(l),{appState:{...e,errorMessage:l.message},storeAction:P.NONE}}},predicate:t=>qi&&t.length>0,keyTest:t=>t.code===fe.C&&t.altKey&&t.shiftKey,keywords:["png","clipboard","copy"]}),lm=W({name:"copyText",label:"labels.copyText",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let i=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).reduce((a,l)=>(se(l)&&a.push(l.text),a),[]).join(`
62
+ ${y("hints.firefox_clipboard_write")}`):new Error(y("alerts.couldNotCopyToClipboard"))}else throw new Error("Unsupported export type")};v();var NA=async(e,t,r,o)=>{let{exportBackground:i,viewBackgroundColor:a,fileHandle:s}=t,c=a2(s);if(!s||!l2(c))throw new Error("fileHandle should exist and should be of type svg or png when resaving");t={...t,exportEmbedScene:!0};let{exportedElements:d,exportingFrame:p}=Cl(e,t,!1);return await Il(c,d,t,r,{exportBackground:i,viewBackgroundColor:a,name:o,fileHandle:s,exportingFrame:p}),{fileHandle:s}};v();var rm=w(P(),1),_l=({children:e,checked:t,onChange:r,className:o})=>(0,rm.jsxs)("div",{className:j("Checkbox",o,{"is-checked":t}),onClick:i=>{r(!t,i),i.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,rm.jsx)("button",{type:"button",className:"Checkbox-box",role:"checkbox","aria-checked":t,children:cT}),(0,rm.jsx)("div",{className:"Checkbox-label",children:e})]});var xo=w(P(),1),my=re({name:"changeProjectName",label:"labels.fileTitle",trackEvent:!1,perform:(e,t,r)=>({appState:{...t,name:r},storeAction:K.NONE}),PanelComponent:({appState:e,updateData:t,appProps:r,data:o,app:i})=>(0,xo.jsx)(LA,{label:y("labels.fileTitle"),value:i.getName(),onChange:a=>t(a),ignoreFocus:o?.ignoreFocus??!1})}),OA=re({name:"changeExportScale",label:"imageExportDialog.scale",trackEvent:{category:"export",action:"scale"},perform:(e,t,r)=>({appState:{...t,exportScale:r},storeAction:K.NONE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=We(e),a=ft(o,t)?ze(o,t):o;return(0,xo.jsx)(xo.Fragment,{children:Uu.map(s=>{let[c,d]=I2(a,na,s),p=`${y("imageExportDialog.label.scale")} ${s}x (${c}x${d})`;return(0,xo.jsx)(Ie,{size:"small",type:"radio",icon:`${s}x`,name:"export-canvas-scale",title:p,"aria-label":p,id:"export-canvas-scale",checked:s===t.exportScale,onChange:()=>r(s)},s)})})}}),uy=re({name:"changeExportBackground",label:"imageExportDialog.label.withBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(e,t,r)=>({appState:{...t,exportBackground:r},storeAction:K.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,xo.jsx)(_l,{checked:e.exportBackground,onChange:r=>t(r),children:y("imageExportDialog.label.withBackground")})}),Xf=re({name:"changeExportEmbedScene",label:"imageExportDialog.tooltip.embedScene",trackEvent:{category:"export",action:"embedScene"},perform:(e,t,r)=>({appState:{...t,exportEmbedScene:r},storeAction:K.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,xo.jsxs)(_l,{checked:e.exportEmbedScene,onChange:r=>t(r),children:[y("imageExportDialog.label.embedScene"),(0,xo.jsx)(Mo,{label:y("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,xo.jsx)("div",{className:"excalidraw-tooltip-icon",children:gT})})]})}),Zf=re({name:"saveToActiveFile",label:"buttons.save",icon:ll,trackEvent:{category:"export"},predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.saveToActiveFile&&!!t.fileHandle&&!t.viewModeEnabled,perform:async(e,t,r,o)=>{let i=!!t.fileHandle;try{let{fileHandle:a}=Bp(t.fileHandle)?await NA(e,t,o.files,o.getName()):await Up(e,t,o.files,o.getName());return{storeAction:K.NONE,appState:{...t,fileHandle:a,toast:i?{message:a?.name?y("toast.fileSavedToFilename").replace("{filename}",`"${a.name}"`):y("toast.fileSaved")}:null}}}catch(a){return a?.name!=="AbortError"?console.error(a):console.warn(a),{storeAction:K.NONE}}},keyTest:e=>e.key===L.S&&e[L.CTRL_OR_CMD]&&!e.shiftKey}),om=re({name:"saveFileToDisk",label:"exportDialog.disk_title",icon:ll,viewMode:!0,trackEvent:{category:"export"},perform:async(e,t,r,o)=>{try{let{fileHandle:i}=await Up(e,{...t,fileHandle:null},o.files,o.getName());return{storeAction:K.NONE,appState:{...t,openDialog:null,fileHandle:i,toast:{message:y("toast.fileSaved")}}}}catch(i){return i?.name!=="AbortError"?console.error(i):console.warn(i),{storeAction:K.NONE}}},keyTest:e=>e.key===L.S&&e.shiftKey&&e[L.CTRL_OR_CMD],PanelComponent:({updateData:e})=>(0,xo.jsx)(Ie,{type:"button",icon:mT,title:y("buttons.saveAs"),"aria-label":y("buttons.saveAs"),showAriaLabel:ot().editor.isMobile,hidden:!Ms,onClick:()=>e(null),"data-testid":"save-as-button"})}),ac=re({name:"loadScene",label:"buttons.load",trackEvent:{category:"export"},predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.loadScene&&!t.viewModeEnabled,perform:async(e,t,r,o)=>{try{let{elements:i,appState:a,files:s}=await Xx(t,e);return{elements:i,appState:a,files:s,storeAction:K.CAPTURE}}catch(i){return i?.name==="AbortError"?(console.warn(i),!1):{elements:e,appState:{...t,errorMessage:i.message},files:o.files,storeAction:K.NONE}}},keyTest:e=>e[L.CTRL_OR_CMD]&&e.key===L.O}),FA=re({name:"exportWithDarkMode",label:"imageExportDialog.label.darkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(e,t,r)=>({appState:{...t,exportWithDarkMode:r},storeAction:K.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,xo.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,xo.jsx)(DA,{value:e.exportWithDarkMode?$e.DARK:$e.LIGHT,onChange:r=>{t(r===$e.DARK)},title:y("imageExportDialog.label.darkMode")})})});v();var BA="{}",py=re({name:"copyStyles",label:"labels.copyStyles",icon:Nx,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=[],a=e.find(s=>t.selectedElementIds[s.id]);if(i.push(a),a&&po(a)){let s=je(a,o.scene.getNonDeletedElementsMap());i.push(s)}return a&&(BA=JSON.stringify(i)),{appState:{...t,toast:{message:y("toast.copyStyles")}},storeAction:K.NONE}},keyTest:e=>e[L.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.C}),fy=re({name:"pasteStyles",label:"labels.pasteStyles",icon:Nx,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=JSON.parse(BA),a=i[0],s=i[1];if(!HS(a))return{elements:e,storeAction:K.NONE};let c=ze(e,t,{includeBoundTextElement:!0}),d=c.map(p=>p.id);return{elements:e.map(p=>{if(d.includes(p.id)){let f=a;if(ge(p)&&p.containerId&&(f=s),!f)return p;let u=Re(p,{backgroundColor:f?.backgroundColor,strokeWidth:f?.strokeWidth,strokeColor:f?.strokeColor,strokeStyle:f?.strokeStyle,fillStyle:f?.fillStyle,opacity:f?.opacity,roughness:f?.roughness,roundness:f.roundness?US(f.roundness.type,p)?f.roundness:GS(p):null});if(ge(u)){let g=f.fontSize||wn,h=f.fontFamily||ls;u=Re(u,{fontSize:g,fontFamily:h,textAlign:f.textAlign||Ou,lineHeight:f.lineHeight||wi(h)});let x=null;u.containerId&&(x=c.find(E=>ge(u)&&E.id===u.containerId)||null),er(u,x,o.scene.getNonDeletedElementsMap())}return u.type==="arrow"&&Br(f)&&(u=Re(u,{startArrowhead:f.startArrowhead,endArrowhead:f.endArrowhead})),He(p)&&(u=Re(u,{roundness:null,backgroundColor:"transparent"})),u}return p}),storeAction:K.CAPTURE}},keyTest:e=>e[L.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.V});v();var gy=w(P(),1),x9=re({name:"toggleCanvasMenu",label:"buttons.menu",trackEvent:{category:"menu"},perform:(e,t)=>({appState:{...t,openMenu:t.openMenu==="canvas"?null:"canvas"},storeAction:K.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,gy.jsx)(Ie,{type:"button",icon:np,"aria-label":y("buttons.menu"),onClick:t,selected:e.openMenu==="canvas"})}),v9=re({name:"toggleEditMenu",label:"buttons.edit",trackEvent:{category:"menu"},perform:(e,t)=>({appState:{...t,openMenu:t.openMenu==="shape"?null:"shape"},storeAction:K.NONE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,gy.jsx)(Ie,{visible:Ds(t,We(e)),type:"button",icon:uT,"aria-label":y("buttons.edit"),onClick:r,selected:t.openMenu==="shape"})}),Al=re({name:"toggleShortcuts",label:"welcomeScreen.defaults.helpHint",icon:aT,viewMode:!0,trackEvent:{category:"menu",action:"toggleHelpDialog"},perform:(e,t,r,{focusContainer:o})=>(t.openDialog?.name==="help"&&o(),{appState:{...t,openDialog:t.openDialog?.name==="help"?null:{name:"help"}},storeAction:K.NONE}),keyTest:e=>e.key===L.QUESTION_MARK});v();var kl=w(P(),1),y9=e=>{if(e.length>=2){let t=e[0].groupIds;for(let r of t)if(e.reduce((o,i)=>o&&_s(i,r),!0))return!0}return!1},zA=(e,t,r)=>{let o=r.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0});return o.length>=2&&!y9(o)},hy=re({name:"group",label:"labels.group",icon:e=>(0,kl.jsx)(Mx,{theme:e.theme}),trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0});if(i.length<2)return{appState:t,elements:e,storeAction:K.NONE};let a=In(t);if(a.length===1){let T=a[0],M=new Set(Wt(e,T).map(N=>N.id)),I=new Set(i.map(N=>N.id));if(new Set([...Array.from(M),...Array.from(I)]).size===M.size)return{appState:t,elements:e,storeAction:K.NONE}}let s=[...e];new Set(i.map(T=>T.frameId)).size>1&&R2(i).forEach((M,I)=>{Zp(M,o.scene.getNonDeletedElementsMap())});let d=sa(),p=Pe(i);s=s.map(T=>p.get(T.id)?Re(T,{groupIds:ZC(T.groupIds,d,t.editingGroupId)}):T);let f=Wt(s,d),u=f[f.length-1],g=s.lastIndexOf(u),h=s.slice(g+1),x=s.slice(0,g).filter(T=>!_s(T,d)),E=_o([...x,...f,...h],Pe(f));return{appState:{...t,...WC(d,{...t,selectedGroupIds:{}},We(s))},elements:E,storeAction:K.CAPTURE}},predicate:(e,t,r,o)=>zA(e,t,o),keyTest:e=>!e.shiftKey&&e[L.CTRL_OR_CMD]&&e.key===L.G,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,kl.jsx)(Ie,{hidden:!zA(e,t,o),type:"button",icon:(0,kl.jsx)(Mx,{theme:t.theme}),onClick:()=>r(null),title:`${y("labels.group")} \u2014 ${V("CtrlOrCmd+G")}`,"aria-label":y("labels.group"),visible:ft(We(e),t)})}),by=re({name:"ungroup",label:"labels.ungroup",icon:e=>(0,kl.jsx)(Px,{theme:e.theme}),trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=In(t),a=Pe(e);if(i.length===0)return{appState:t,elements:e,storeAction:K.NONE};let s=[...e],c=[];s=s.map(g=>{yr(g)&&c.push(g.id);let h=qC(g.groupIds,t.selectedGroupIds);return h.length===g.groupIds.length?g:Re(g,{groupIds:h})});let d=Ar(t,We(s),t,null),p=o.scene.getSelectedElements(t),f=new Set(p.filter(g=>g.frameId).map(g=>g.frameId));return D2(e).filter(g=>f.has(g.id)).forEach(g=>{g&&(s=qp(s,Rs(s,g,t,a),g,o))}),d.selectedElementIds=Object.entries(d.selectedElementIds).reduce((g,[h,x])=>(x&&!c.includes(h)&&(g[h]=!0),g),{}),{appState:{...t,...d},elements:s,storeAction:K.CAPTURE}},keyTest:e=>e.shiftKey&&e[L.CTRL_OR_CMD]&&e.key===L.G.toUpperCase(),predicate:(e,t)=>In(t).length>0,PanelComponent:({elements:e,appState:t,updateData:r})=>(0,kl.jsx)(Ie,{type:"button",hidden:In(t).length===0,icon:(0,kl.jsx)(Px,{theme:t.theme}),onClick:()=>r(null),title:`${y("labels.ungroup")} \u2014 ${V("CtrlOrCmd+Shift+G")}`,"aria-label":y("labels.ungroup"),visible:ft(We(e),t)})});v();v();v();var qf=(e,t,r,o,i,a,s)=>{e.beginPath(),e.moveTo(t+a,r),e.lineTo(t+o-a,r),e.quadraticCurveTo(t+o,r,t+o,r+a),e.lineTo(t+o,r+i-a),e.quadraticCurveTo(t+o,r+i,t+o-a,r+i),e.lineTo(t+a,r+i),e.quadraticCurveTo(t,r+i,t,r+i-a),e.lineTo(t,r+a),e.quadraticCurveTo(t,r,t+a,r),e.closePath(),e.fill(),s&&(e.strokeStyle=s),e.stroke()};v();function E9(e){let t=0;if(e.length===0)return t;for(let r=0;r<e.length;r++){let o=e.charCodeAt(r);t=(t<<5)-t+o}return t}var Ml=(e,t)=>`hsl(${Math.abs(E9(t?.id||e))%37*10}, 100%, 83%)`,$A=e=>{let t=e?.trim()?.codePointAt(0);return(t?String.fromCodePoint(t):"?").toUpperCase()},HA=({context:e,renderConfig:t,appState:r,normalizedWidth:o,normalizedHeight:i})=>{for(let[a,s]of t.remotePointerViewportCoords){let{x:c,y:d}=s,p=r.collaborators.get(a);c-=r.offsetLeft,d-=r.offsetTop;let f=11,u=14,g=c<0||c>o-f||d<0||d>i-u;c=Math.max(c,0),c=Math.min(c,o-f),d=Math.max(d,0),d=Math.min(d,i-u);let h=Ml(a,p);e.save(),e.strokeStyle=h,e.fillStyle=h;let x=t.remotePointerUserStates.get(a),E=g||x==="idle"||x==="away";E&&(e.globalAlpha=.3),t.remotePointerButton.get(a)==="down"&&(e.beginPath(),e.arc(c,d,15,0,2*Math.PI,!1),e.lineWidth=3,e.strokeStyle="#ffffff88",e.stroke(),e.closePath(),e.beginPath(),e.arc(c,d,15,0,2*Math.PI,!1),e.lineWidth=1,e.strokeStyle=h,e.stroke(),e.closePath());let T=r.theme===$e.DARK?"#2f6330":iS,M=p?.isSpeaking;M&&(e.fillStyle=T,e.strokeStyle=T,e.lineWidth=10,e.lineJoin="round",e.beginPath(),e.moveTo(c,d),e.lineTo(c+0,d+14),e.lineTo(c+4,d+9),e.lineTo(c+11,d+8),e.closePath(),e.stroke(),e.fill()),e.fillStyle=nd,e.strokeStyle=nd,e.lineWidth=6,e.lineJoin="round",e.beginPath(),e.moveTo(c,d),e.lineTo(c+0,d+14),e.lineTo(c+4,d+9),e.lineTo(c+11,d+8),e.closePath(),e.stroke(),e.fill(),e.fillStyle=h,e.strokeStyle=h,e.lineWidth=2,e.lineJoin="round",e.beginPath(),E?(e.moveTo(c-1,d-1),e.lineTo(c-1,d+15),e.lineTo(c+5,d+10),e.lineTo(c+12,d+9),e.closePath(),e.fill()):(e.moveTo(c,d),e.lineTo(c+0,d+14),e.lineTo(c+4,d+9),e.lineTo(c+11,d+8),e.closePath(),e.fill(),e.stroke());let I=t.remotePointerUsernames.get(a)||"";if(!g&&I){e.font="600 12px sans-serif";let A=(M?c+0:c)+f/2,N=(M?d+0:d)+u+2,U=5,R=3,F=e.measureText(I),B=F.actualBoundingBoxDescent+F.actualBoundingBoxAscent,Z=Math.max(B,12),G=A-1,te=N-1,de=F.width+2+U*2+2,W=Z+2+R*2+2;if(e.roundRect?(e.beginPath(),e.roundRect(G,te,de,W,8),e.fillStyle=h,e.fill(),e.strokeStyle=nd,e.stroke(),M&&(e.beginPath(),e.roundRect(G-2,te-2,de+4,W+4,8),e.strokeStyle=T,e.stroke())):qf(e,G,te,de,W,8,nd),e.fillStyle=nS,e.fillText(I,A+U+1,N+R+F.actualBoundingBoxAscent+Math.floor((Z-B)/2)+2),M){e.fillStyle=T;let se=8,xe=8,Se=5;e.fillRect(G+de+xe,te+(W/2-se/2),2,se),e.fillRect(G+de+xe+Se,te+(W/2-se*2/2),2,se*2),e.fillRect(G+de+xe+Se*2,te+(W/2-se/2),2,se)}}e.restore(),e.closePath()}};v();var UA=w(J(),1);var xy=w(P(),1),vy=({color:e,onClick:t,name:r,src:o,className:i})=>{let a=$A(r),[s,c]=(0,UA.useState)(!1),d=!s&&o,p=d?void 0:{background:e};return(0,xy.jsx)("div",{className:j("Avatar",i),style:p,onClick:t,children:d?(0,xy.jsx)("img",{className:"Avatar-img",src:o,alt:a,referrerPolicy:"no-referrer",onError:()=>c(!0)}):a})};var Gr=w(P(),1),w9=re({name:"goToCollaborator",label:"Go to a collaborator",viewMode:!0,trackEvent:{category:"collab"},perform:(e,t,r)=>!r.socketId||t.userToFollow?.socketId===r.socketId||r.isCurrentUser?{appState:{...t,userToFollow:null},storeAction:K.NONE}:{appState:{...t,userToFollow:{socketId:r.socketId,username:r.username||""},openMenu:t.openMenu==="canvas"?null:t.openMenu},storeAction:K.NONE},PanelComponent:({updateData:e,data:t,appState:r})=>{let{socketId:o,collaborator:i,withName:a,isBeingFollowed:s}=t,c=Ml(o,i),d=j({"is-followed":s,"is-current-user":i.isCurrentUser===!0,"is-speaking":i.isSpeaking,"is-in-call":i.isInCall,"is-muted":i.isMuted}),p=i.isInCall?i.isSpeaking?(0,Gr.jsxs)("div",{className:"UserList__collaborator-status-icon-speaking-indicator",title:y("userList.hint.isSpeaking"),children:[(0,Gr.jsx)("div",{}),(0,Gr.jsx)("div",{}),(0,Gr.jsx)("div",{})]}):i.isMuted?(0,Gr.jsx)("div",{className:"UserList__collaborator-status-icon-microphone-muted",title:y("userList.hint.micMuted"),children:dC}):(0,Gr.jsx)("div",{title:y("userList.hint.inCall"),children:cC}):null;return a?(0,Gr.jsxs)("div",{className:`dropdown-menu-item dropdown-menu-item-base UserList__collaborator ${d}`,style:{"--avatar-size":"1.5rem"},onClick:()=>e(i),children:[(0,Gr.jsx)(vy,{color:c,onClick:()=>{},name:i.username||"",src:i.avatarUrl,className:d}),(0,Gr.jsx)("div",{className:"UserList__collaborator-name",children:i.username}),(0,Gr.jsxs)("div",{className:"UserList__collaborator-status-icons","aria-hidden":!0,children:[s&&(0,Gr.jsx)("div",{className:"UserList__collaborator-status-icon-is-followed",title:y("userList.hint.followStatus"),children:Ss}),p]})]}):(0,Gr.jsxs)("div",{className:`UserList__collaborator UserList__collaborator--avatar-only ${d}`,children:[(0,Gr.jsx)(vy,{color:c,onClick:()=>{e(i)},name:i.username||"",src:i.avatarUrl,className:d}),p&&(0,Gr.jsx)("div",{className:"UserList__collaborator-status-icon",children:p})]})}});v();var yy=re({name:"addToLibrary",trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});for(let a of Yu)if(i.some(s=>s.type===a))return{storeAction:K.NONE,appState:{...t,errorMessage:y(`errors.libraryElementTypeError.${a}`)}};return o.library.getLatestLibrary().then(a=>o.library.setLibrary([{id:sa(),status:"unpublished",elements:i.map(As),created:Date.now()},...a])).then(()=>({storeAction:K.NONE,appState:{...t,toast:{message:y("toast.addedToLibrary")}}})).catch(a=>({storeAction:K.NONE,appState:{...t,errorMessage:a.message}}))},label:"labels.addToLibrary"});v();v();var GA=(e,t,r)=>{let o=ul(e,t),i=Xo(e);return o.flatMap(a=>{let s=S9(a,i,r);return a.map(c=>Re(c,{x:c.x+s.x,y:c.y+s.y}))})},S9=(e,t,{axis:r,position:o})=>{let i=Xo(e),[a,s]=r==="x"?["minX","maxX"]:["minY","maxY"],c={x:0,y:0};return o==="start"?{...c,[r]:t[a]-i[a]}:o==="end"?{...c,[r]:t[s]-i[s]}:{...c,[r]:(t[a]+t[s])/2-(i[a]+i[s])/2}};var Pl=w(P(),1),rn=(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return i.length>1&&!i.some(a=>He(a))},lc=(e,t,r,o)=>{let i=r.scene.getSelectedElements(t),a=Pe(e),s=GA(i,a,o),c=Pe(s);return Wn(e.map(d=>c.get(d.id)||d),t,r)},T9=re({name:"alignTop",label:"labels.alignTop",icon:Tx,trackEvent:{category:"element"},predicate:rn,perform:(e,t,r,o)=>({appState:t,elements:lc(e,t,o,{position:"start",axis:"y"}),storeAction:K.CAPTURE}),keyTest:e=>e[L.CTRL_OR_CMD]&&e.shiftKey&&e.key===L.ARROW_UP,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Pl.jsx)(Ie,{hidden:!rn(e,t,null,o),type:"button",icon:Tx,onClick:()=>r(null),title:`${y("labels.alignTop")} \u2014 ${V("CtrlOrCmd+Shift+Up")}`,"aria-label":y("labels.alignTop"),visible:ft(We(e),t)})}),C9=re({name:"alignBottom",label:"labels.alignBottom",icon:Cx,trackEvent:{category:"element"},predicate:rn,perform:(e,t,r,o)=>({appState:t,elements:lc(e,t,o,{position:"end",axis:"y"}),storeAction:K.CAPTURE}),keyTest:e=>e[L.CTRL_OR_CMD]&&e.shiftKey&&e.key===L.ARROW_DOWN,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Pl.jsx)(Ie,{hidden:!rn(e,t,null,o),type:"button",icon:Cx,onClick:()=>r(null),title:`${y("labels.alignBottom")} \u2014 ${V("CtrlOrCmd+Shift+Down")}`,"aria-label":y("labels.alignBottom"),visible:ft(We(e),t)})}),I9=re({name:"alignLeft",label:"labels.alignLeft",icon:Ix,trackEvent:{category:"element"},predicate:rn,perform:(e,t,r,o)=>({appState:t,elements:lc(e,t,o,{position:"start",axis:"x"}),storeAction:K.CAPTURE}),keyTest:e=>e[L.CTRL_OR_CMD]&&e.shiftKey&&e.key===L.ARROW_LEFT,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Pl.jsx)(Ie,{hidden:!rn(e,t,null,o),type:"button",icon:Ix,onClick:()=>r(null),title:`${y("labels.alignLeft")} \u2014 ${V("CtrlOrCmd+Shift+Left")}`,"aria-label":y("labels.alignLeft"),visible:ft(We(e),t)})}),_9=re({name:"alignRight",label:"labels.alignRight",icon:_x,trackEvent:{category:"element"},predicate:rn,perform:(e,t,r,o)=>({appState:t,elements:lc(e,t,o,{position:"end",axis:"x"}),storeAction:K.CAPTURE}),keyTest:e=>e[L.CTRL_OR_CMD]&&e.shiftKey&&e.key===L.ARROW_RIGHT,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Pl.jsx)(Ie,{hidden:!rn(e,t,null,o),type:"button",icon:_x,onClick:()=>r(null),title:`${y("labels.alignRight")} \u2014 ${V("CtrlOrCmd+Shift+Right")}`,"aria-label":y("labels.alignRight"),visible:ft(We(e),t)})}),A9=re({name:"alignVerticallyCentered",label:"labels.centerVertically",icon:Ax,trackEvent:{category:"element"},predicate:rn,perform:(e,t,r,o)=>({appState:t,elements:lc(e,t,o,{position:"center",axis:"y"}),storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Pl.jsx)(Ie,{hidden:!rn(e,t,null,o),type:"button",icon:Ax,onClick:()=>r(null),title:y("labels.centerVertically"),"aria-label":y("labels.centerVertically"),visible:ft(We(e),t)})}),k9=re({name:"alignHorizontallyCentered",label:"labels.centerHorizontally",icon:kx,trackEvent:{category:"element"},predicate:rn,perform:(e,t,r,o)=>({appState:t,elements:lc(e,t,o,{position:"center",axis:"x"}),storeAction:K.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Pl.jsx)(Ie,{hidden:!rn(e,t,null,o),type:"button",icon:kx,onClick:()=>r(null),title:y("labels.centerHorizontally"),"aria-label":y("labels.centerHorizontally"),visible:ft(We(e),t)})});v();v();var WA=(e,t,r)=>{let[o,i,a,s]=r.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],c=Xo(e),d=ul(e,t).map(g=>[g,Xo(g)]).sort((g,h)=>g[1][i]-h[1][i]),p=0;for(let g of d)p+=g[1][s];let f=(c[s]-p)/(d.length-1);if(f<0){let g=d.findIndex(T=>T[1][o]===c[o]),h=d.findIndex(T=>T[1][a]===c[a]),x=(d[h][1][i]-d[g][1][i])/(d.length-1),E=d[g][1][i];return d.flatMap(([T,M],I)=>{let A={x:0,y:0};return I!==g&&I!==h&&(E+=x,A[r.axis]=E-M[i]),T.map(N=>Re(N,{x:N.x+A.x,y:N.y+A.y}))})}let u=c[o];return d.flatMap(([g,h])=>{let x={x:0,y:0};return x[r.axis]=u-h[o],u+=f,u+=h[s],g.map(E=>Re(E,{x:E.x+x.x,y:E.y+x.y}))})};var Ey=w(P(),1),KA=(e,t)=>{let r=t.scene.getSelectedElements(e);return r.length>1&&!r.some(o=>He(o))},YA=(e,t,r,o)=>{let i=r.scene.getSelectedElements(t),a=WA(i,r.scene.getNonDeletedElementsMap(),o),s=Pe(a);return Wn(e.map(c=>s.get(c.id)||c),t,r)},M9=re({name:"distributeHorizontally",label:"labels.distributeHorizontally",trackEvent:{category:"element"},perform:(e,t,r,o)=>({appState:t,elements:YA(e,t,o,{space:"between",axis:"x"}),storeAction:K.CAPTURE}),keyTest:e=>!e[L.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.H,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Ey.jsx)(Ie,{hidden:!KA(t,o),type:"button",icon:bT,onClick:()=>r(null),title:`${y("labels.distributeHorizontally")} \u2014 ${V("Alt+H")}`,"aria-label":y("labels.distributeHorizontally"),visible:ft(We(e),t)})}),P9=re({name:"distributeVertically",label:"labels.distributeVertically",trackEvent:{category:"element"},perform:(e,t,r,o)=>({appState:t,elements:YA(e,t,o,{space:"between",axis:"y"}),storeAction:K.CAPTURE}),keyTest:e=>!e[L.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.V,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Ey.jsx)(Ie,{hidden:!KA(t,o),type:"button",icon:xT,onClick:()=>r(null),title:`${y("labels.distributeVertically")} \u2014 ${V("Alt+V")}`,"aria-label":y("labels.distributeVertically"),visible:ft(We(e),t)})});v();var wy=re({name:"flipHorizontal",label:"labels.flipHorizontal",icon:fC,trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:Wn(VA(e,o.scene.getNonDeletedElementsMap(),t,"horizontal",o),t,o),appState:t,storeAction:K.CAPTURE}),keyTest:e=>e.shiftKey&&e.code===Ne.H}),Sy=re({name:"flipVertical",label:"labels.flipVertical",icon:pC,trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:Wn(VA(e,o.scene.getNonDeletedElementsMap(),t,"vertical",o),t,o),appState:t,storeAction:K.CAPTURE}),keyTest:e=>e.shiftKey&&e.code===Ne.V&&!e[L.CTRL_OR_CMD]}),VA=(e,t,r,o,i)=>{let a=ze(We(e),r,{includeBoundTextElement:!0,includeElementsInFrames:!0}),s=L9(a,t,r,o,i),c=Pe(s);return e.map(d=>c.get(d.id)||d)},L9=(e,t,r,o,i)=>{let{minX:a,minY:s,maxX:c,maxY:d}=Xo(e);return Y2(t,e,t,"nw",!0,!0,o==="horizontal"?c:a,o==="horizontal"?s:d),dl(e.filter(et),t,cl(r),[]),e};v();var sc=re({name:"copy",label:"labels.copy",icon:vd,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await k2(i,o.files,r)}catch(a){return{storeAction:K.NONE,appState:{...t,errorMessage:a.message}}}return{storeAction:K.NONE}},keyTest:void 0}),Ty=re({name:"paste",label:"labels.paste",trackEvent:{category:"element"},perform:async(e,t,r,o)=>{let i;try{i=await M2()}catch(a){return a.name==="AbortError"||a.name==="NotAllowedError"?!1:(console.error(`actionPaste ${a.name}: ${a.message}`),fi?{storeAction:K.NONE,appState:{...t,errorMessage:y("hints.firefox_clipboard_write")}}:{storeAction:K.NONE,appState:{...t,errorMessage:y("errors.asyncPasteFailedOnRead")}})}try{o.pasteFromClipboard(A2({types:i}))}catch(a){return console.error(a),{storeAction:K.NONE,appState:{...t,errorMessage:y("errors.asyncPasteFailedOnParse")}}}return{storeAction:K.NONE}},keyTest:void 0}),jf=re({name:"cut",label:"labels.cut",icon:QT,trackEvent:{category:"element"},perform:(e,t,r,o)=>(sc.perform(e,t,r,o),$d.perform(e,t,null,o)),keyTest:e=>e[L.CTRL_OR_CMD]&&e.key===L.X}),Jf=re({name:"copyAsSvg",label:"labels.copyAsSvg",icon:gC,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{if(!o.canvas)return{storeAction:K.NONE};let{exportedElements:i,exportingFrame:a}=Cl(e,t,!0);try{return await Il("clipboard-svg",i,t,o.files,{...t,exportingFrame:a,name:o.getName()}),{storeAction:K.NONE}}catch(s){return console.error(s),{appState:{...t,errorMessage:s.message},storeAction:K.NONE}}},predicate:e=>qx&&e.length>0,keywords:["svg","clipboard","copy"]}),Qf=re({name:"copyAsPng",label:"labels.copyAsPng",icon:hC,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{if(!o.canvas)return{storeAction:K.NONE};let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:a,exportingFrame:s}=Cl(e,t,!0);try{return await Il("clipboard",a,t,o.files,{...t,exportingFrame:s,name:o.getName()}),{appState:{...t,toast:{message:y("toast.copyToClipboardAsPng",{exportSelection:i.length?y("toast.selection"):y("toast.canvas"),exportColorScheme:t.exportWithDarkMode?y("buttons.darkMode"):y("buttons.lightMode")})}},storeAction:K.NONE}}catch(c){return console.error(c),{appState:{...t,errorMessage:c.message},storeAction:K.NONE}}},predicate:e=>Ps&&e.length>0,keyTest:e=>e.code===Ne.C&&e.altKey&&e.shiftKey,keywords:["png","clipboard","copy"]}),eg=re({name:"copyText",label:"labels.copyText",trackEvent:{category:"element"},perform:(e,t,r,o)=>{let a=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0}).reduce((s,c)=>(ge(c)&&s.push(c.text),s),[]).join(`
44
63
 
45
- `);try{Ji(i)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return{storeAction:P.NONE}},predicate:(t,e,o,r)=>bu&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).some(se),keywords:["text","clipboard","copy"]});h();var sm=W({name:"gridMode",icon:$v,keywords:["snap"],label:"labels.toggleGrid",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.gridSize},perform(t,e){return{appState:{...e,gridSize:this.checked(e)?null:Lr,objectsSnapModeEnabled:!1},storeAction:P.NONE}},checked:t=>t.gridSize!==null,predicate:(t,e,o)=>typeof o.gridModeEnabled>"u",keyTest:t=>t[S.CTRL_OR_CMD]&&t.code===fe.QUOTE});h();var Fa=W({name:"zenMode",label:"buttons.zenMode",icon:Fv,paletteName:"Toggle zen mode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.zenModeEnabled},perform(t,e){return{appState:{...e,zenModeEnabled:!this.checked(e)},storeAction:P.NONE}},checked:t=>t.zenModeEnabled,predicate:(t,e,o)=>typeof o.zenModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.Z});h();var hh=W({name:"objectsSnapMode",label:"buttons.objectsSnapMode",icon:Ov,viewMode:!1,trackEvent:{category:"canvas",predicate:t=>!t.objectsSnapModeEnabled},perform(t,e){return{appState:{...e,objectsSnapModeEnabled:!this.checked(e),gridSize:null},storeAction:P.NONE}},checked:t=>t.objectsSnapModeEnabled,predicate:(t,e,o)=>typeof o.objectsSnapModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.S});h();var Mn=W({name:"stats",label:"stats.title",icon:Lv,paletteName:"Toggle stats",viewMode:!0,trackEvent:{category:"menu"},perform(t,e){return{appState:{...e,showStats:!this.checked(e)},storeAction:P.NONE}},checked:t=>t.showStats,keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.SLASH});h();var gh=W({name:"unbindText",label:"labels.unbindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>r.scene.getSelectedElements(e).some(i=>fr(i)),perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=r.scene.getNonDeletedElementsMap();return n.forEach(a=>{let l=ct(a,i);if(l){let{width:s,height:d}=wc(l.originalText,Xo(l),l.lineHeight),c=ub(a.id);pb(a.id);let{x:m,y:u}=yc(a,l,i);re(l,{containerId:null,width:s,height:d,text:l.originalText,x:m,y:u}),re(a,{boundElements:a.boundElements?.filter(f=>f.id!==l.id),height:c||a.height})}}),{elements:t,appState:e,storeAction:P.CAPTURE}}}),bh=W({name:"bindText",label:"labels.bindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);if(n.length===2){let i=se(n[0])||se(n[1]),a;if(Rr(n[0])?a=n[0]:Rr(n[1])&&(a=n[1]),i&&a&&ct(a,r.scene.getNonDeletedElementsMap())===null)return!0}return!1},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i,a;se(n[0])&&Rr(n[1])?(i=n[0],a=n[1]):(i=n[1],a=n[0]),re(i,{containerId:a.id,verticalAlign:wo.MIDDLE,textAlign:ml.CENTER}),re(a,{boundElements:(a.boundElements||[]).concat({type:"text",id:i.id})});let l=a.height;return Ut(i,a,r.scene.getNonDeletedElementsMap()),Il(a.id,l),{elements:vS(t,a,i),appState:{...e,selectedElementIds:{[a.id]:!0}},storeAction:P.CAPTURE}}}),vS=(t,e,o)=>{let r=t.slice(),n=r.findIndex(a=>a.id===o.id);r.splice(n,1);let i=r.findIndex(a=>a.id===e.id);return r.splice(i+1,0,o),ho(r,pe([e,o])),r},ES=(t,e,o)=>{let r=t.slice(),n=r.findIndex(a=>a.id===e.id);r.splice(n,1);let i=r.findIndex(a=>a.id===o.id);return r.splice(i,0,e),ho(r,pe([e,o])),r},Sy=W({name:"wrapTextInContainer",label:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=n.every(a=>se(a));return n.length>0&&i},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=t.slice(),a={};for(let l of n)if(se(l)){let s=hn({type:"rectangle",backgroundColor:e.currentItemBackgroundColor,boundElements:[...l.boundElements||[],{id:l.id,type:"text"}],angle:l.angle,fillStyle:e.currentItemFillStyle,strokeColor:e.currentItemStrokeColor,roughness:e.currentItemRoughness,strokeWidth:e.currentItemStrokeWidth,strokeStyle:e.currentItemStrokeStyle,roundness:e.currentItemRoundness==="round"?{type:$i("rectangle")?Co.ADAPTIVE_RADIUS:Co.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:l.x-Gp,y:l.y-Gp,width:Vi(l.width,"rectangle"),height:Vi(l.height,"rectangle"),groupIds:l.groupIds,frameId:l.frameId});if(l.boundElements?.length){let d=l.boundElements.filter(m=>m.type==="arrow").map(m=>m.id);i.filter(m=>d.includes(m.id)).forEach(m=>{let u=m.startBinding,f=m.endBinding;u?.elementId===l.id&&(u={...u,elementId:s.id}),f?.elementId===l.id&&(f={...f,elementId:s.id}),(u||f)&&re(m,{startBinding:u,endBinding:f},!1)})}re(l,{containerId:s.id,verticalAlign:wo.MIDDLE,boundElements:null,textAlign:ml.CENTER},!1),Ut(l,s,r.scene.getNonDeletedElementsMap()),i=ES([...i,s],s,l),a[s.id]=!0}return{elements:i,appState:{...e,selectedElementIds:a},storeAction:P.CAPTURE}}});h();h();var rr=v(H(),1);var Xr=v(k(),1),Eh=320,Ty=85,xh=5,yS=42,wS=500,vh=!1,cm=new Map,ky=({element:t,elementsMap:e,setAppState:o,onLinkOpen:r,setToast:n,updateEmbedValidationStatus:i})=>{let a=Ba(),l=_n(),s=t.link||"",[d,c]=(0,rr.useState)(s),m=(0,rr.useRef)(null),u=a.showHyperlinkPopup==="editor",f=(0,rr.useCallback)(()=>{if(!m.current)return;let C=zr(m.current.value)||null;if(!t.link&&C&&xe("hyperlink","create"),Ht(t)){if(a.activeEmbeddable?.element===t&&o({activeEmbeddable:null}),!C){re(t,{link:null}),i(t,!1);return}if(!Zi(C,l.validateEmbeddable))C&&n({message:g("toast.unableToEmbed"),closable:!0}),t.link&&cm.set(t.id,t.link),re(t,{link:C}),i(t,!1);else{let{width:w,height:A}=t,z=Qn(C);z?.error instanceof URIError&&n({message:g("toast.unrecognizedLinkFormat"),closable:!0});let I=z?z.intrinsicSize.w/z.intrinsicSize.h:1,M=cm.get(t.id)!==t.link;re(t,{...M?{width:z?.type==="video"?w>A?w:A*I:w,height:z?.type==="video"&&w>A?w/I:A}:{},link:C}),i(t,!0),cm.has(t.id)&&cm.delete(t.id)}}else re(t,{link:C})},[t,n,l.validateEmbeddable,a.activeEmbeddable,o,i]);(0,rr.useLayoutEffect)(()=>()=>{f()},[f]),(0,rr.useEffect)(()=>{let C=null,w=A=>{if(u)return;C&&clearTimeout(C),SS(t,e,a,[A.clientX,A.clientY])&&(C=window.setTimeout(()=>{o({showHyperlinkPopup:!1})},wS))};return window.addEventListener("pointermove",w,!1),()=>{window.removeEventListener("pointermove",w,!1),C&&clearTimeout(C)}},[a,t,u,o,e]);let b=(0,rr.useCallback)(()=>{xe("hyperlink","delete"),re(t,{link:null}),u&&(m.current.value=""),o({showHyperlinkPopup:!1})},[o,t,u]),x=()=>{xe("hyperlink","edit","popup-ui"),o({showHyperlinkPopup:"editor"})},{x:E,y:T}=Iy(t,a,e);return a.contextMenu||a.draggingElement||a.resizingElement||a.isRotating||a.openMenu||a.viewModeEnabled?null:(0,Xr.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${T}px`,left:`${E}px`,width:Eh,padding:xh},onClick:()=>{!t.link&&!u&&o({showHyperlinkPopup:"editor"})},children:[u?(0,Xr.jsx)("input",{className:$("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:m,value:d,onChange:C=>c(C.target.value),autoFocus:!0,onKeyDown:C=>{C.stopPropagation(),C[S.CTRL_OR_CMD]&&C.key===S.K&&C.preventDefault(),(C.key===S.ENTER||C.key===S.ESCAPE)&&(f(),o({showHyperlinkPopup:"info"}))}}):t.link?(0,Xr.jsx)("a",{href:zr(t.link||""),className:"excalidraw-hyperlinkContainer-link",target:kc(t.link)?"_self":"_blank",onClick:C=>{if(t.link&&r){let w=mc("excalidraw-link",C.nativeEvent);r({...t,link:zr(t.link)},w),w.defaultPrevented&&C.preventDefault()}},rel:"noopener noreferrer",children:t.link}):(0,Xr.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:g("labels.link.empty")}),(0,Xr.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!u&&(0,Xr.jsx)(ce,{type:"button",title:g("buttons.edit"),"aria-label":g("buttons.edit"),label:g("buttons.edit"),onClick:x,className:"excalidraw-hyperlinkContainer--edit",icon:la}),s&&!Ht(t)&&(0,Xr.jsx)(ce,{type:"button",title:g("buttons.remove"),"aria-label":g("buttons.remove"),label:g("buttons.remove"),onClick:b,className:"excalidraw-hyperlinkContainer--remove",icon:er})]})]})},Iy=(t,e,o)=>{let[r,n]=Wt(t,o),{x:i,y:a}=Qt({sceneX:r+t.width/2,sceneY:n},e),l=i-e.offsetLeft-Eh/2,s=a-e.offsetTop-Ty;return{x:l,y:s}},yh=(t,e)=>{let o=we(t,e);return o[0]?.link?Ht(o[0])?"labels.link.editEmbed":"labels.link.edit":Ht(o[0])?"labels.link.createEmbed":"labels.link.create"},cs=null,Ay=(t,e,o)=>{cs&&clearTimeout(cs),cs=window.setTimeout(()=>CS(t,e,o),T1)},CS=(t,e,o)=>{if(!t.link)return;let r=Pa();r.classList.add("excalidraw-tooltip--visible"),r.style.maxWidth="20rem",r.textContent=t.link;let[n,i,a,l]=Wt(t,o),[s,d,c,m]=d0([n,i,a,l],t.angle,e),u=Qt({sceneX:s,sceneY:d},e);eh(r,{left:u.x,top:u.y,width:c,height:m},"top"),xe("hyperlink","tooltip","link-icon"),vh=!0},My=()=>{cs&&clearTimeout(cs),vh&&(vh=!1,Pa().classList.remove("excalidraw-tooltip--visible"))},SS=(t,e,o,[r,n])=>{let{x:i,y:a}=Ye({clientX:r,clientY:n},o),l=15/o.zoom.value;if(l0(i,a,t,e))return!1;let[s,d,c]=Wt(t,e);if(i>=s&&i<=c&&a>=d-Ty&&a<=d)return!1;let{x:m,y:u}=Iy(t,o,e);return!(r>=m-l&&r<=m+Eh+xh*2+l&&n>=u-l&&n<=u+l+xh*2+yS)};var _y=v(k(),1),ds=W({name:"hyperlink",label:(t,e)=>yh(t,e),icon:Wl,perform:(t,e)=>e.showHyperlinkPopup==="editor"?!1:{elements:t,appState:{...e,showHyperlinkPopup:"editor",openMenu:null},storeAction:P.CAPTURE},trackEvent:{category:"hyperlink",action:"click"},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.K,predicate:(t,e)=>we(t,e).length===1,PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=we(t,e);return(0,_y.jsx)(ce,{type:"button",icon:Wl,"aria-label":g(yh(t,e)),title:`${Ht(t[0])?g("labels.link.labelEmbed"):g("labels.link.label")} - ${F("CtrlOrCmd+K")}`,onClick:()=>o(null),selected:r.length===1&&!!r[0].link})}});h();var wh=t=>t.every(e=>!e.locked),Ch=W({name:"toggleElementLock",label:(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1});return r.length===1&&!Ee(r[0])?r[0].locked?"labels.elementLock.unlock":"labels.elementLock.lock":wh(r)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},icon:(t,e)=>{let o=we(e,t);return wh(o)?aa:ri},trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return n.length>0&&!n.some(i=>i.locked&&i.frameId)},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});if(!n.length)return!1;let i=wh(n),a=pe(n);return{elements:t.map(l=>a.has(l.id)?he(l,{locked:i}):l),appState:{...e,selectedLinearElement:i?null:e.selectedLinearElement},storeAction:P.CAPTURE}},keyTest:(t,e,o,r)=>t.key.toLocaleLowerCase()===S.L&&t[S.CTRL_OR_CMD]&&t.shiftKey&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1}).length>0}),Ly=W({name:"unlockAllElements",paletteName:"Unlock all elements",trackEvent:{category:"canvas"},viewMode:!1,icon:ri,predicate:(t,e)=>we(t,e).length===0&&t.some(r=>r.locked),perform:(t,e)=>{let o=t.filter(r=>r.locked);return{elements:t.map(r=>r.locked?he(r,{locked:!1}):r),appState:{...e,selectedElementIds:Object.fromEntries(o.map(r=>[r.id,!0]))},storeAction:P.CAPTURE}},label:"labels.elementLock.unlockAll"});h();h();var $o=v(H(),1);h();var Lm=v(H(),1);h();var dm=v(H(),1),Py=()=>{let[t,e]=(0,dm.useState)(null),o=(0,dm.useCallback)(r=>e(r),[]);return[t,o]};h();var Ry=v(H(),1);var Dy=v(k(),1),zt=Ry.default.forwardRef(({children:t,padding:e,className:o,style:r},n)=>(0,Dy.jsx)("div",{className:$("Island",o),style:{"--padding":e,...r},ref:n,children:t}));h();var Ny=v(br(),1);var Oy=v(H(),1),ms=v(k(),1),Fy=t=>{let{closeOnClickOutside:e=!0}=t,o=Xd({className:"excalidraw-modal-container"}),r=(0,Oy.useRef)(document.body.classList.contains("excalidraw-animations-disabled"));if(!o)return null;let n=i=>{i.key===S.ESCAPE&&(i.nativeEvent.stopImmediatePropagation(),i.stopPropagation(),t.onCloseRequest())};return(0,Ny.createPortal)((0,ms.jsxs)("div",{className:$("Modal",t.className,{"animations-disabled":r.current}),role:"dialog","aria-modal":"true",onKeyDown:n,"aria-labelledby":t.labelledBy,"data-prevent-outside-click":!0,children:[(0,ms.jsx)("div",{className:"Modal__background",onClick:e?t.onCloseRequest:void 0}),(0,ms.jsx)("div",{className:"Modal__content",style:{"--max-width":`${t.maxWidth}px`},tabIndex:0,children:t.children})]}),o)};h();var Eo=v(H(),1);h();var $a=v(H(),1);h();var mm=v(H(),1);var Sh=We(new Map),By=async t=>await Dl({elements:t,appState:{exportBackground:!1,viewBackgroundColor:Ar.white},files:null,renderEmbeddables:!1}),zy=(t,e,o)=>{let[r,n]=(0,mm.useState)();return(0,mm.useEffect)(()=>{if(e)if(t){let i=o.get(t);i?n(i):(async()=>{let a=await By(e);a.querySelector(".style-fonts")?.remove(),a&&(o.set(t,a),n(a))})()}else(async()=>{let i=await By(e);n(i)})()},[t,e,o,n]),r},pm=()=>{let[t]=Se(Sh,De);return{clearLibraryCache:()=>t.clear(),deleteItemsFromLibraryCache:r=>{r.forEach(n=>t.delete(n))},svgCache:t}};h();var um=class{jobs=[];running=!1;tick(){if(this.running)return;let e=this.jobs.shift();e?(this.running=!0,e.promise.resolve(gl(e.jobFactory,...e.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(e,...o){let r=cc();return this.jobs.push({jobFactory:e,promise:r,args:o}),this.tick(),r}};var Hy=new _o,Ei=We({status:"loaded",isInitialized:!1,libraryItems:[]}),ps=t=>pr(t),TS=(t,e)=>!t.find(o=>o.elements.length!==e.elements.length?!1:o.elements.every((r,n)=>r.id===e.elements[n].id&&r.versionNonce===e.elements[n].versionNonce)),Uy=(t,e)=>{let o=[];for(let r of e)TS(t,r)&&o.push(r);return[...o,...t]},Wy=(t,e)=>{let o=pe(e),r={deletedItems:new Map,addedItems:new Map};for(let i of t)o.has(i.id)||r.deletedItems.set(i.id,i);let n=pe(t);for(let i of e)n.has(i.id)||r.addedItems.set(i.id,i);return r},Th=class{currLibraryItems=[];prevLibraryItems=ps(this.currLibraryItems);app;constructor(e){this.app=e}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)Gt.set(Ei,e=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:e.isInitialized}));else{Gt.set(Ei,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let e=this.prevLibraryItems;this.prevLibraryItems=ps(this.currLibraryItems);let o=ps(this.currLibraryItems);this.app.props.onLibraryChange?.(o),Hy.trigger(Wy(e,o),o)}catch(e){console.error(e)}}};destroy=()=>{this.updateQueue=[],this.currLibraryItems=[],Gt.set(Sh,new Map)};resetLibrary=()=>this.setLibrary([]);getLatestLibrary=()=>new Promise(async e=>{try{let o=await(this.getLastUpdateTask()||this.currLibraryItems);this.updateQueue.length>0?e(this.getLatestLibrary()):e(ps(o))}catch{return e(this.currLibraryItems)}});updateLibrary=async({libraryItems:e,prompt:o=!1,merge:r=!1,openLibraryMenu:n=!1,defaultStatus:i="unpublished"})=>(n&&this.app.setState({openSidebar:{name:jo.name,tab:ic}}),this.setLibrary(()=>new Promise(async(a,l)=>{try{let s=await(typeof e=="function"&&!(e instanceof Blob)?e(this.currLibraryItems):e),d;s instanceof Blob?d=await mu(s,i):d=Ll(s,i),!o||window.confirm(g("alerts.confirmAddLibrary",{numShapes:d.length}))?(o&&this.app.focusContainer(),a(r?Uy(this.currLibraryItems,d):d)):l(new Hi)}catch(s){l(s)}})));setLibrary=e=>{let o=new Promise(async(r,n)=>{try{await this.getLastUpdateTask(),typeof e=="function"&&(e=e(this.currLibraryItems)),this.currLibraryItems=ps(await e),r(this.currLibraryItems)}catch(i){n(i)}}).catch(r=>{if(r.name==="AbortError")return console.warn("Library update aborted by user"),this.currLibraryItems;throw r}).finally(()=>{this.updateQueue=this.updateQueue.filter(r=>r!==o),this.notifyListeners()});return this.updateQueue.push(o),this.notifyListeners(),o}},Gy=Th,gm=t=>{let o=Math.ceil(Math.sqrt(t.length)),r=[],n=f=>t.slice(f*o,f*o+o).reduce((x,E)=>{let{height:T}=Io(E.elements);return Math.max(x,T)},0),i=f=>{let b=0,x=0,E=0;for(let T of t){if(b%o===0&&(x=0),x===f){let{width:C}=Io(T.elements);E=Math.max(E,C)}b++,x++}return E},a=0,l=0,s=0,d=0,c=0,m=0,u=0;for(let f of t){c&&c%o===0&&(l+=s+50,a=0,m=0,u++),m===0&&(s=n(u)),d=i(m);let{minX:b,minY:x,width:E,height:T}=Io(f.elements),C=(d-E)/2,w=(s-T)/2;r.push(...f.elements.map(A=>({...A,x:A.x+a+C-b,y:A.y+l+w-x}))),a+=d+50,c++,m++}return r},kh=()=>{let t=new URLSearchParams(window.location.hash.slice(1)).get(tc.addLibrary)||new URLSearchParams(window.location.search).get(ec.addLibrary),e=t?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return t?{libraryUrl:t,idToken:e}:null},za=class t{static queue=new um;static async getLibraryItems(e,o,r=!0){let n=()=>new Promise(async(i,a)=>{try{let l=await e.load({source:o});i(Ll(l?.libraryItems||[],"published"))}catch(l){a(l)}});return r?t.queue.push(n):n()}static run=async(e,o)=>{let r=new t(e);return t.queue.push(()=>o(r))};adapter;constructor(e){this.adapter=e}getLibraryItems(e){return t.getLibraryItems(this.adapter,e,!1)}},us=0,fm=0,hm=t=>Au(t.map(e=>`${e.id}:${Iu(e.elements)}`).sort().join()),$y=async(t,e)=>{try{return fm++,await za.run(t,async o=>{let r=pe(await o.getLibraryItems("save"));for(let[l]of e.deletedItems)r.delete(l);let n=[];for(let[l,s]of e.addedItems)r.has(l)?r.set(l,s):n.push(s);let i=n.concat(Array.from(r.values())),a=hm(i);return a!==us&&await t.save({libraryItems:i}),us=a,i})}finally{fm--}},kS=t=>{let{excalidrawAPI:e}=t,o=(0,$a.useRef)(t);o.current=t;let r=(0,$a.useRef)(!1);(0,$a.useEffect)(()=>{if(!e)return;r.current=!1;let n=async({libraryUrl:l,idToken:s})=>{let d=new Promise(async(m,u)=>{try{let b=await(await fetch(decodeURIComponent(l))).blob();m(b)}catch(f){u(f)}}),c=s!==e.id;await(c&&document.hidden?new Promise(m=>{window.addEventListener("focus",()=>m(),{once:!0})}):null);try{await e.updateLibrary({libraryItems:d,prompt:c,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(m){throw m}finally{if(window.location.hash.includes(tc.addLibrary)){let m=new URLSearchParams(window.location.hash.slice(1));m.delete(tc.addLibrary),window.history.replaceState({},ll,`#${m.toString()}`)}else if(window.location.search.includes(ec.addLibrary)){let m=new URLSearchParams(window.location.search);m.delete(ec.addLibrary),window.history.replaceState({},ll,`?${m.toString()}`)}}},i=l=>{l.preventDefault();let s=kh();s&&(l.stopImmediatePropagation(),window.history.replaceState({},"",l.oldURL),n(s))},a=kh();if(a&&n(a),"getInitialLibraryItems"in o.current&&o.current.getInitialLibraryItems&&(console.warn("useHandleLibrar `opts.getInitialLibraryItems` is deprecated. Use `opts.adapter` instead."),Promise.resolve(o.current.getInitialLibraryItems()).then(l=>{e.updateLibrary({libraryItems:l,merge:!0})}).catch(l=>{console.error(`UseHandeLibrary getInitialLibraryItems failed: ${l?.message}`)})),"adapter"in o.current&&o.current.adapter){let l=o.current.adapter,s=o.current.migrationAdapter,d=cc();s?d.resolve(gl(s.load).then(async c=>{let m=null;try{if(!c)return za.getLibraryItems(l,"load");m=Ll(c.libraryItems||[],"published");let u=await $y(l,Wy([],m));try{await s.clear()}catch(f){console.error(`couldn't delete legacy library data: ${f.message}`)}return u}catch(u){return console.error(`couldn't migrate legacy library data: ${u.message}`),m}}).catch(c=>(console.error(`error during library migration: ${c.message}`),za.getLibraryItems(l,"load")))):d.resolve(gl(za.getLibraryItems,l,"load")),e.updateLibrary({libraryItems:d.then(c=>{let m=c||[];return us=hm(m),m}),merge:!0}).finally(()=>{r.current=!0})}return window.addEventListener("hashchange",i),()=>{window.removeEventListener("hashchange",i)}},[e]),(0,$a.useEffect)(()=>{let n=Hy.on(async(a,l)=>{let s=r.current,d="adapter"in o.current&&o.current.adapter||null;try{d&&us!==hm(l)&&await $y(d,a)}catch(c){console.error(`couldn't persist library update: ${c.message}`,a),s&&o.current.excalidrawAPI&&o.current.excalidrawAPI.updateScene({appState:{errorMessage:g("errors.saveLibraryError")}})}}),i=a=>{fm&&G1(a)};return window.addEventListener("beforeunload",i),()=>{window.removeEventListener("beforeunload",i),n(),us=0,fm=0}},[])};h();var Zt=v(H(),1);h();var Ih=v(H(),1);var Ah=v(k(),1),IS=(0,Ih.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Ah.jsx)("div",{className:$("Stack Stack_horizontal",n),style:{"--gap":e,alignItems:o,justifyContent:r,...i},ref:a,children:t})),AS=(0,Ih.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Ah.jsx)("div",{className:$("Stack Stack_vertical",n),style:{"--gap":e,justifyItems:o,justifyContent:r,...i},ref:a,children:t})),Pt={Row:IS,Col:AS};h();h();var Ky=v(k(),1),MS=({theme:t,id:e,libraryReturnUrl:o})=>{let r=o||window.location.origin+window.location.pathname;return(0,Ky.jsx)("a",{className:"library-menu-browse-button",href:`${y.VITE_APP_LIBRARY_URL}?target=${window.name||"_blank"}&referrer=${r}&useHash=true&token=${e}&theme=${t}&version=${rc.excalidrawLibrary}`,target:"_excalidraw_libraries",children:g("labels.libraries")})},Vy=MS;var xm=v(k(),1),bm=({libraryReturnUrl:t,theme:e,id:o,style:r,children:n,className:i})=>(0,xm.jsxs)("div",{className:$("library-menu-control-buttons",i),style:r,children:[(0,xm.jsx)(Vy,{id:o,libraryReturnUrl:t,theme:e}),n]});h();var Va=v(H(),1);h();var fs=v(H(),1);var _S=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,LS=/{{([\w-]+)}}/,PS=/<([\w-]+)>/,RS=/<\/([\w-]+)>/,DS=(t,e)=>{let o=[{name:"",children:[]}];return t.split(_S).filter(Boolean).forEach(r=>{let n=r.match(PS),i=r.match(RS),a=r.match(LS);if(n!==null){let l=n[1];e.hasOwnProperty(l)?o.push({name:l,children:[]}):console.warn(`Trans: missed to pass in prop ${l} for interpolating ${t}`)}else if(i!==null)if(i[1]===o[o.length-1].name){let s=o.pop(),d=fs.default.createElement(fs.default.Fragment,{},...s.children),c=e[s.name];typeof c=="function"&&o[o.length-1].children.push(c(d))}else console.warn(`Trans: unexpected end tag ${r} for interpolating ${t}`);else if(a!==null){let l=a[1];e.hasOwnProperty(l)?o[o.length-1].children.push(e[l]):console.warn(`Trans: key ${l} not in props for interpolating ${t}`)}else o[o.length-1].children.push(r)}),o.length!==1&&console.warn(`Trans: stack not empty for interpolating ${t}`),o[0].children},NS=({i18nKey:t,children:e,...o})=>{let{t:r}=vt();return fs.default.createElement(fs.default.Fragment,{},...DS(r(t),o))},no=NS;h();h();var yi=v(k(),1),OS=({label:t,onClick:e,className:o,children:r,actionType:n,type:i="button",isLoading:a,...l})=>{let s=n?`Dialog__action-button--${n}`:"";return(0,yi.jsxs)("button",{className:$("Dialog__action-button",s,o),type:i,"aria-label":t,onClick:e,...l,children:[r&&(0,yi.jsx)("div",{style:a?{visibility:"hidden"}:{},children:r}),(0,yi.jsx)("div",{style:a?{visibility:"hidden"}:{},children:t}),a&&(0,yi.jsx)("div",{style:{position:"absolute",inset:0},children:(0,yi.jsx)(Ot,{})})]})},Ha=OS;var Ua=v(k(),1),FS=t=>{let{onConfirm:e,onCancel:o,children:r,confirmText:n=g("buttons.confirm"),cancelText:i=g("buttons.cancel"),className:a="",...l}=t,s=Le(),d=Wr(Wa,De),{container:c}=_t();return(0,Ua.jsxs)(et,{onCloseRequest:o,size:"small",...l,className:`confirm-dialog ${a}`,children:[r,(0,Ua.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,Ua.jsx)(Ha,{label:i,onClick:()=>{s({openMenu:null}),d(!1),o(),c?.focus()}}),(0,Ua.jsx)(Ha,{label:n,onClick:()=>{s({openMenu:null}),d(!1),e(),c?.focus()},actionType:"danger"})]})]})},vm=FS;h();var vo=v(H(),1);h();var fo=class{static has(e){try{return!!window.localStorage.getItem(e)}catch(o){return console.warn(`localStorage.getItem error: ${o.message}`),!1}}static get(e){try{let o=window.localStorage.getItem(e);return o?JSON.parse(o):null}catch(o){return console.warn(`localStorage.getItem error: ${o.message}`),null}}static set=(e,o)=>{try{return window.localStorage.setItem(e,JSON.stringify(o)),!0}catch(r){return console.warn(`localStorage.setItem error: ${r.message}`),!1}};static delete=e=>{try{window.localStorage.removeItem(e)}catch(o){console.warn(`localStorage.removeItem error: ${o.message}`)}}};var ie=v(k(),1),BS=async t=>{let r=Math.round(8),n=Math.max(Math.round(128/64),2),i=H1(t,6),a=document.createElement("canvas");a.width=i[0].length*128+(i[0].length+1)*(r*2)-r*2,a.height=i.length*128+(i.length+1)*(r*2)-r*2;let l=a.getContext("2d");l.fillStyle=Mt.white,l.fillRect(0,0,a.width,a.height);for(let[s,d]of t.entries()){let c=await ei({elements:d.elements,files:null,maxWidthOrHeight:128}),{width:m,height:u}=c,f=Math.floor(s/6)*(128+r*2),b=s%6*(128+r*2);l.drawImage(c,b+(128-m)/2+r,f+(128-u)/2+r),l.lineWidth=n,l.strokeStyle=Mt.gray[4],l.strokeRect(b+r/2,f+r/2,128+r,128+r)}return await Pl(new File([await $r(a)],"preview",{type:Dt.png}),{outputType:Dt.jpg,maxWidthOrHeight:5e3})},zS=({libItem:t,appState:e,index:o,onChange:r,onRemove:n})=>{let i=(0,vo.useRef)(null),a=(0,vo.useRef)(null);return(0,vo.useEffect)(()=>{let l=i.current;l&&(async()=>{let s=await Dl({elements:t.elements,appState:{...e,viewBackgroundColor:Mt.white,exportBackground:!0},files:null});l.innerHTML=s.outerHTML})()},[t.elements,e]),(0,ie.jsxs)("div",{className:"single-library-item",children:[t.status==="published"&&(0,ie.jsx)("span",{className:"single-library-item-status",children:g("labels.statusPublished")}),(0,ie.jsx)("div",{ref:i,className:"single-library-item__svg"}),(0,ie.jsx)(ce,{"aria-label":g("buttons.remove"),type:"button",icon:Ro,className:"single-library-item--remove",onClick:n.bind(null,t.id),title:g("buttons.remove")}),(0,ie.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,ie.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,ie.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,ie.jsx)("span",{style:{fontWeight:500,color:Mt.gray[6]},children:g("publishDialog.itemName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("input",{type:"text",ref:a,style:{width:"80%",padding:"0.2rem"},defaultValue:t.name,placeholder:"Item name",onChange:l=>{r(l.target.value,o)}})]}),(0,ie.jsx)("span",{className:"error",children:t.error})]})]})},$S=({onClose:t,libraryItems:e,appState:o,onSuccess:r,onError:n,updateItemsInStorage:i,onRemove:a})=>{let[l,s]=(0,vo.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[d,c]=(0,vo.useState)(!1);(0,vo.useEffect)(()=>{let w=fo.get(So.PUBLISH_LIBRARY);w&&s(w)},[]);let[m,u]=(0,vo.useState)(e.slice());(0,vo.useEffect)(()=>{u(e.slice())},[e]);let f=w=>{s({...l,[w.target.name]:w.target.value})},b=async w=>{w.preventDefault(),c(!0);let A=[],z=!1;if(m.forEach(G=>{let O="";G.name||(O=g("publishDialog.errors.required"),z=!0),A.push({...G,error:O})}),z){u(A),c(!1);return}let I=await BS(m),M={type:v1.excalidrawLibrary,version:rc.excalidrawLibrary,source:E1,libraryItems:m},_=JSON.stringify(M,null,2),U=new Blob([_],{type:"application/json"}),D=new FormData;D.append("excalidrawLib",U),D.append("previewImage",I),D.append("previewImageType",I.type),D.append("title",l.name),D.append("authorName",l.authorName),D.append("githubHandle",l.githubHandle),D.append("name",l.name),D.append("description",l.description),D.append("twitterHandle",l.twitterHandle),D.append("website",l.website),fetch(`${y.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:D}).then(G=>G.ok?G.json().then(({url:O})=>{fo.delete(So.PUBLISH_LIBRARY),r({url:O,authorName:l.authorName,items:m})}):G.json().catch(()=>{throw new Error(G.statusText||"something went wrong")}).then(O=>{throw new Error(O.message||G.statusText||"something went wrong")}),G=>{console.error(G),n(G),c(!1)}).catch(G=>{console.error(G),n(G),c(!1)})},x=()=>{let w=[];return m.forEach((A,z)=>{w.push((0,ie.jsx)("div",{className:"single-library-item-wrapper",children:(0,ie.jsx)(zS,{libItem:A,appState:o,index:z,onChange:(I,M)=>{let _=m.slice();_[M].name=I,u(_)},onRemove:a})},z))}),(0,ie.jsx)("div",{className:"selected-library-items",children:w})},E=(0,vo.useCallback)(()=>{i(m),fo.set(So.PUBLISH_LIBRARY,l),t()},[m,t,i,l]),T=!!e.length,C=e.some(w=>w.status==="published");return(0,ie.jsx)(et,{onCloseRequest:E,title:g("publishDialog.title"),className:"publish-library",children:T?(0,ie.jsxs)("form",{onSubmit:b,children:[(0,ie.jsx)("div",{className:"publish-library-note",children:(0,ie.jsx)(no,{i18nKey:"publishDialog.noteDescription",link:w=>(0,ie.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:w})})}),(0,ie.jsx)("span",{className:"publish-library-note",children:(0,ie.jsx)(no,{i18nKey:"publishDialog.noteGuidelines",link:w=>(0,ie.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:w})})}),(0,ie.jsx)("div",{className:"publish-library-note",children:g("publishDialog.noteItems")}),C&&(0,ie.jsx)("span",{className:"publish-library-note publish-library-warning",children:g("publishDialog.republishWarning")}),x(),(0,ie.jsxs)("div",{className:"publish-library__fields",children:[(0,ie.jsxs)("label",{children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.libraryName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("input",{type:"text",name:"name",required:!0,value:l.name,onChange:f,placeholder:g("publishDialog.placeholder.libraryName")})]}),(0,ie.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.libraryDesc")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("textarea",{name:"description",rows:4,required:!0,value:l.description,onChange:f,placeholder:g("publishDialog.placeholder.libraryDesc")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.authorName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("input",{type:"text",name:"authorName",required:!0,value:l.authorName,onChange:f,placeholder:g("publishDialog.placeholder.authorName")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.githubUsername")}),(0,ie.jsx)("input",{type:"text",name:"githubHandle",value:l.githubHandle,onChange:f,placeholder:g("publishDialog.placeholder.githubHandle")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.twitterUsername")}),(0,ie.jsx)("input",{type:"text",name:"twitterHandle",value:l.twitterHandle,onChange:f,placeholder:g("publishDialog.placeholder.twitterHandle")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.website")}),(0,ie.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:g("publishDialog.errors.website"),value:l.website,onChange:f,placeholder:g("publishDialog.placeholder.website")})]}),(0,ie.jsx)("span",{className:"publish-library-note",children:(0,ie.jsx)(no,{i18nKey:"publishDialog.noteLicense",link:w=>(0,ie.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:w})})})]}),(0,ie.jsxs)("div",{className:"publish-library__buttons",children:[(0,ie.jsx)(Ha,{label:g("buttons.cancel"),onClick:E,"data-testid":"cancel-clear-canvas-button"}),(0,ie.jsx)(Ha,{type:"submit",label:g("buttons.submit"),actionType:"primary",isLoading:d})]})]}):(0,ie.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:g("publishDialog.atleastOneLibItem")})})},Yy=$S;h();h();var Xy=v(k(),1),Zy=({className:t="",children:e,onToggle:o,title:r,...n})=>{let i=Me(),a=$(`dropdown-menu-button ${t}`,"zen-mode-transition",{"dropdown-menu-button--mobile":i.editor.isMobile}).trim();return(0,Xy.jsx)("button",{"data-prevent-outside-click":!0,className:a,onClick:o,type:"button","data-testid":"dropdown-menu-button",title:r,...n,children:e})},jy=Zy;Zy.displayName="DropdownMenuTrigger";h();h();var Em=v(H(),1);var Mh=Em.default.createContext({}),ym=(t="",e=!1)=>`dropdown-menu-item dropdown-menu-item-base ${t} ${e?"dropdown-menu-item--selected":""}`.trim(),wm=(t,e)=>{let o=(0,Em.useContext)(Mh);return cn(t,r=>{let n=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});e?.(n),n.defaultPrevented||o.onSelect?.(n)})};h();var Ln=v(k(),1),HS=({icon:t,shortcut:e,children:o})=>{let r=Me();return(0,Ln.jsxs)(Ln.Fragment,{children:[(0,Ln.jsx)("div",{className:"dropdown-menu-item__icon",children:t}),(0,Ln.jsx)("div",{className:"dropdown-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,Ln.jsx)("div",{className:"dropdown-menu-item__shortcut",children:e})]})},Cm=HS;var Sm=v(k(),1),_h=({icon:t,onSelect:e,children:o,shortcut:r,className:n,selected:i,...a})=>{let l=wm(a.onClick,e);return(0,Sm.jsx)("button",{...a,onClick:l,type:"button",className:ym(n,i),title:a.title??a["aria-label"],children:(0,Sm.jsx)(Cm,{icon:t,shortcut:r,children:o})})};_h.displayName="DropdownMenuItem";var qy=({children:t})=>(0,Sm.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",background:"pink",borderRadius:6,fontSize:9,color:"black",fontFamily:"Cascadia, monospace"},children:t});qy.displayName="DropdownMenuItemBadge";_h.Badge=qy;var Bo=_h;h();var ew=v(k(),1),Jy=()=>(0,ew.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),Qy=Jy;Jy.displayName="DropdownMenuSeparator";h();var Tm=v(k(),1),tw=({children:t,className:e="",style:o,title:r})=>(0,Tm.jsxs)("div",{className:`dropdown-menu-group ${e}`,style:o,children:[r&&(0,Tm.jsx)("p",{className:"dropdown-menu-group-title",children:r}),t]}),ow=tw;tw.displayName="DropdownMenuGroup";h();var km=v(H(),1);var hs=v(k(),1),rw=({children:t,onClickOutside:e,className:o="",onSelect:r,style:n})=>{let i=Me(),a=(0,km.useRef)(null),l=La({onClickOutside:e});_a(a,()=>{l.onClickOutside?.()}),(0,km.useEffect)(()=>{let d=m=>{m.key===S.ESCAPE&&(m.stopImmediatePropagation(),l.onClickOutside?.())},c={capture:!0};return document.addEventListener("keydown",d,c),()=>{document.removeEventListener("keydown",d,c)}},[l]);let s=$(`dropdown-menu ${o}`,{"dropdown-menu--mobile":i.editor.isMobile}).trim();return(0,hs.jsx)(Mh.Provider,{value:{onSelect:r},children:(0,hs.jsx)("div",{ref:a,className:s,style:n,"data-testid":"dropdown-menu",children:i.editor.isMobile?(0,hs.jsx)(Pt.Col,{className:"dropdown-menu-container",children:t}):(0,hs.jsx)(zt,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:t})})})};rw.displayName="DropdownMenuContent";var nw=rw;h();var Lh=v(k(),1),iw=({icon:t,shortcut:e,href:o,children:r,onSelect:n,className:i="",selected:a,...l})=>{let s=wm(l.onClick,n);return(0,Lh.jsx)("a",{...l,href:o,target:"_blank",rel:"noreferrer",className:ym(i,a),title:l.title??l["aria-label"],onClick:s,children:(0,Lh.jsx)(Cm,{icon:t,shortcut:e,children:r})})},Ga=iw;iw.displayName="DropdownMenuItemLink";h();var lw=v(k(),1),US=({children:t,className:e="",selected:o,...r})=>(0,lw.jsx)("div",{...r,className:`dropdown-menu-item-base dropdown-menu-item-custom ${e} ${o?"dropdown-menu-item--selected":""}`.trim(),children:t}),aw=US;h();var gs=v(H(),1),sw=t=>{let e=gs.default.Children.toArray(t).find(o=>gs.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuTrigger");return e||null},cw=t=>{let e=gs.default.Children.toArray(t).find(o=>gs.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuContent");return e||null};var Im=v(k(),1),qr=({children:t,open:e})=>{let o=sw(t),r=cw(t);return(0,Im.jsxs)(Im.Fragment,{children:[o,e&&r]})};qr.Trigger=jy;qr.Content=nw;qr.Item=Bo;qr.ItemLink=Ga;qr.ItemCustom=aw;qr.Group=ow;qr.Separator=Qy;var Re=qr;qr.displayName="DropdownMenu";var yt=v(k(),1),WS=(t,e)=>t.filter(o=>e.includes(o.id)),GS=({setAppState:t,selectedItems:e,library:o,onRemoveFromLibrary:r,resetLibrary:n,onSelectItems:i,appState:a,className:l})=>{let[s]=Se(Ei,De),[d,c]=Se(Wa,De),m=()=>{let D=e.length?g("alerts.removeItemsFromsLibrary",{count:e.length}):g("alerts.resetLibrary"),G=e.length?g("confirmDialog.removeItemsFromLib"):g("confirmDialog.resetLibrary");return(0,yt.jsx)(vm,{onConfirm:()=>{e.length?r():n(),f(!1)},onCancel:()=>{f(!1)},title:G,children:(0,yt.jsx)("p",{children:D})})},[u,f]=(0,Va.useState)(!1),b=!!e.length,x=b?s.libraryItems.filter(D=>e.includes(D.id)):s.libraryItems,E=b?g("buttons.remove"):g("buttons.resetLibrary"),[T,C]=(0,Va.useState)(!1),[w,A]=(0,Va.useState)(null),z=(0,Va.useCallback)(()=>(0,yt.jsxs)(et,{onCloseRequest:()=>A(null),title:g("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,yt.jsx)("p",{children:(0,yt.jsx)(no,{i18nKey:"publishSuccessDialog.content",authorName:w.authorName,link:D=>(0,yt.jsx)("a",{href:w?.url,target:"_blank",rel:"noopener noreferrer",children:D})})}),(0,yt.jsx)(ce,{type:"button",title:g("buttons.close"),"aria-label":g("buttons.close"),label:g("buttons.close"),onClick:()=>A(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[A,w]),I=(D,G)=>{C(!1),A({url:D.url,authorName:D.authorName});let O=G.slice();O.forEach(B=>{e.includes(B.id)&&(B.status="published")}),o.setLibrary(O)},M=async()=>{try{await o.updateLibrary({libraryItems:Pc({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(D){if(D?.name==="AbortError"){console.warn(D);return}t({errorMessage:g("errors.importLibraryError")})}},_=async()=>{let D=b?x:await o.getLatestLibrary();Xb(D).catch(sc).catch(G=>{t({errorMessage:G.message})})},U=()=>(0,yt.jsxs)(Re,{open:d,children:[(0,yt.jsx)(Re.Trigger,{onToggle:()=>c(!d),children:sx}),(0,yt.jsxs)(Re.Content,{onClickOutside:()=>c(!1),onSelect:()=>c(!1),className:"library-menu",children:[!b&&(0,yt.jsx)(Re.Item,{onSelect:M,icon:ca,"data-testid":"lib-dropdown--load",children:g("buttons.load")}),!!x.length&&(0,yt.jsx)(Re.Item,{onSelect:_,icon:ni,"data-testid":"lib-dropdown--export",children:g("buttons.export")}),!!x.length&&(0,yt.jsx)(Re.Item,{onSelect:()=>f(!0),icon:er,children:E}),b&&(0,yt.jsx)(Re.Item,{icon:bv,onSelect:()=>C(!0),"data-testid":"lib-dropdown--remove",children:g("buttons.publishLibrary")})]})]});return(0,yt.jsxs)("div",{className:$("library-menu-dropdown-container",l),children:[U(),e.length>0&&(0,yt.jsx)("div",{className:"library-actions-counter",children:e.length}),u&&m(),T&&(0,yt.jsx)(Yy,{onClose:()=>C(!1),libraryItems:WS(s.libraryItems,e),appState:a,onSuccess:D=>I(D,s.libraryItems),onError:D=>window.alert(D),updateItemsInStorage:()=>o.setLibrary(s.libraryItems),onRemove:D=>i(e.filter(G=>G!==D))}),w&&z()]})},Ph=({selectedItems:t,onSelectItems:e,className:o})=>{let{library:r}=mo(),{clearLibraryCache:n,deleteItemsFromLibraryCache:i}=pm(),a=_e(),l=Le(),[s]=Se(Ei,De),d=async m=>{let u=m.filter(f=>!t.includes(f.id));r.setLibrary(u).catch(()=>{l({errorMessage:g("alerts.errorRemovingFromLibrary")})}),i(t),e([])};return(0,yt.jsx)(GS,{appState:a,setAppState:l,selectedItems:t,onSelectItems:e,library:r,onRemoveFromLibrary:()=>d(s.libraryItems),resetLibrary:()=>{r.resetLibrary(),n()},className:o})};h();var Ka=v(H(),1);h();var Pn=v(H(),1);var wi=v(k(),1),dw=(0,Pn.memo)(({id:t,elements:e,isPending:o,onClick:r,selected:n,onToggle:i,onDrag:a,svgCache:l})=>{let s=(0,Pn.useRef)(null),d=zy(t,e,l);(0,Pn.useEffect)(()=>{let b=s.current;if(b)return d&&(b.innerHTML=d.outerHTML),()=>{b.innerHTML=""}},[d]);let[c,m]=(0,Pn.useState)(!1),u=Me().editor.isMobile,f=o&&(0,wi.jsx)("div",{className:"library-unit__adder",children:lx});return(0,wi.jsxs)("div",{className:$("library-unit",{"library-unit__active":e,"library-unit--hover":e&&c,"library-unit--selected":n,"library-unit--skeleton":!d}),onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[(0,wi.jsx)("div",{className:$("library-unit__dragger",{"library-unit__pulse":!!o}),ref:s,draggable:!!e,onClick:e||o?b=>{t&&b.shiftKey?i(t,b):r(t)}:void 0,onDragStart:b=>{if(!t){b.preventDefault();return}m(!1),a(t,b)}}),f,t&&e&&(c||u||n)&&(0,wi.jsx)(hi,{checked:n,onChange:(b,x)=>i(t,x),className:"library-unit__checkbox"})]})}),mw=()=>(0,wi.jsx)("div",{className:"library-unit library-unit--skeleton"});h();var Am=v(H(),1);function VS(){return[!1,(0,Am.useCallback)(e=>e(),[])]}var pw=Am.default.useTransition||VS;var Ci=v(k(),1),Rh=({children:t})=>(0,Ci.jsx)("div",{className:"library-menu-items-container__grid",children:t}),Mm=(0,Ka.memo)(({items:t,onItemSelectToggle:e,onItemDrag:o,isItemSelected:r,onClick:n,svgCache:i,itemsRenderedPerBatch:a})=>{let[,l]=pw(),[s,d]=(0,Ka.useState)(0);return(0,Ka.useEffect)(()=>{s<t.length&&l(()=>{d(s+a)})},[s,t.length,l,a]),(0,Ci.jsx)(Ci.Fragment,{children:t.map((c,m)=>m<s?(0,Ci.jsx)(dw,{elements:c?.elements,isPending:!c?.id&&!!c?.elements,onClick:n,svgCache:i,id:c?.id,selected:r(c.id),onToggle:e,onDrag:o},c?.id??m):(0,Ci.jsx)(mw,{},m))})});h();var bw=v(H(),1);var xw=v(Nh(),1),cT=We(0),vw=t=>{let[e,o]=Se(cT);return(0,bw.useEffect)(()=>{let{current:r}=t;if(!r)return;let n=(0,xw.default)(()=>{let{scrollTop:i}=r;o(i)},200);return r.addEventListener("scroll",n),()=>{n.cancel(),r.removeEventListener("scroll",n)}},[t,o]),e};var qe=v(k(),1),dT=17,mT=64;function Oh({isLoading:t,libraryItems:e,onAddToLibrary:o,onInsertLibraryItems:r,pendingElements:n,theme:i,id:a,libraryReturnUrl:l,onSelectItems:s,selectedItems:d}){let c=(0,Zt.useRef)(null),m=vw(c);(0,Zt.useEffect)(()=>{m>0&&c.current?.scrollTo(0,m)},[]);let{svgCache:u}=pm(),f=(0,Zt.useMemo)(()=>e.filter(D=>D.status!=="published"),[e]),b=(0,Zt.useMemo)(()=>e.filter(D=>D.status==="published"),[e]),x=!e.length&&!n.length,E=!n.length&&!f.length&&!b.length,[T,C]=(0,Zt.useState)(null),w=(0,Zt.useCallback)((D,G)=>{let O=!d.includes(D),B=[...f,...b];if(O){if(G.shiftKey&&T){let te=B.findIndex(me=>me.id===T),oe=B.findIndex(me=>me.id===D);if(te===-1||oe===-1){s([...d,D]);return}let ve=pe(d),Ie=B.reduce((me,j,R)=>((R>=te&&R<=oe||ve.has(j.id))&&me.push(j.id),me),[]);s(Ie)}else s([...d,D]);C(D)}else C(null),s(d.filter(te=>te!==D))},[T,s,b,d,f]),A=(0,Zt.useCallback)(D=>{let G;return d.includes(D)?G=e.filter(O=>d.includes(O.id)):G=e.filter(O=>O.id===D),G.map(O=>({...O,elements:Lc(O.elements,{randomizeSeed:!0})}))},[e,d]),z=(0,Zt.useCallback)((D,G)=>{G.dataTransfer.setData(Dt.excalidrawlib,hu(A(D)))},[A]),I=(0,Zt.useCallback)(D=>D?d.includes(D):!1,[d]),M=(0,Zt.useCallback)(()=>{o(n)},[n,o]),_=(0,Zt.useCallback)(D=>{D&&r(A(D))},[A,r]),U=u.size>=e.length?mT:dT;return(0,qe.jsxs)("div",{className:"library-menu-items-container",style:n.length||f.length||b.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!E&&(0,qe.jsx)(Ph,{selectedItems:d,onSelectItems:s,className:"library-menu-dropdown-container--in-heading"}),(0,qe.jsxs)(Pt.Col,{className:"library-menu-items-container__items",align:"start",gap:1,style:{flex:b.length>0?1:"0 1 auto",marginBottom:0},ref:c,children:[(0,qe.jsxs)(qe.Fragment,{children:[!E&&(0,qe.jsx)("div",{className:"library-menu-items-container__header",children:g("labels.personalLib")}),t&&(0,qe.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,qe.jsx)(Ot,{})}),!n.length&&!f.length?(0,qe.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,qe.jsx)("div",{className:"library-menu-items__no-items__label",children:g("library.noItems")}),(0,qe.jsx)("div",{className:"library-menu-items__no-items__hint",children:b.length>0?g("library.hint_emptyPrivateLibrary"):g("library.hint_emptyLibrary")})]}):(0,qe.jsxs)(Rh,{children:[n.length>0&&(0,qe.jsx)(Mm,{itemsRenderedPerBatch:U,items:[{id:null,elements:n}],onItemSelectToggle:w,onItemDrag:z,onClick:M,isItemSelected:I,svgCache:u}),(0,qe.jsx)(Mm,{itemsRenderedPerBatch:U,items:f,onItemSelectToggle:w,onItemDrag:z,onClick:_,isItemSelected:I,svgCache:u})]})]}),(0,qe.jsxs)(qe.Fragment,{children:[(b.length>0||n.length>0||f.length>0)&&(0,qe.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:g("labels.excalidrawLib")}),b.length>0?(0,qe.jsx)(Rh,{children:(0,qe.jsx)(Mm,{itemsRenderedPerBatch:U,items:b,onItemSelectToggle:w,onItemDrag:z,onClick:_,isItemSelected:I,svgCache:u})}):f.length>0?(0,qe.jsx)("div",{style:{margin:"1rem 0",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",fontSize:".9rem"},children:g("library.noItems")}):null]}),x&&(0,qe.jsx)(bm,{style:{padding:"16px 0",width:"100%"},id:a,libraryReturnUrl:l,theme:i,children:(0,qe.jsx)(Ph,{selectedItems:d,onSelectItems:s})})]})]})}var zo=v(k(),1),Wa=We(!1),Ew=({children:t})=>(0,zo.jsx)("div",{className:"layer-ui__library",children:t}),pT=({onInsertLibraryItems:t,pendingElements:e,onAddToLibrary:o,setAppState:r,libraryReturnUrl:n,library:i,id:a,theme:l,selectedItems:s,onSelectItems:d})=>{let[c]=Se(Ei,De),m=(0,Eo.useCallback)(b=>{(async(E,T)=>{xe("element","addToLibrary","ui");for(let w of ac)if(E.some(A=>A.type===w))return r({errorMessage:g(`errors.libraryElementTypeError.${w}`)});let C=[{status:"unpublished",elements:E,id:mn(),created:Date.now()},...T];o(),i.setLibrary(C).catch(()=>{r({errorMessage:g("alerts.errorAddingToLibrary")})})})(b,c.libraryItems)},[o,i,r,c.libraryItems]),u=(0,Eo.useMemo)(()=>c.libraryItems,[c]);if(c.status==="loading"&&!c.isInitialized)return(0,zo.jsx)(Ew,{children:(0,zo.jsx)("div",{className:"layer-ui__library-message",children:(0,zo.jsxs)("div",{children:[(0,zo.jsx)(Ot,{size:"2em"}),(0,zo.jsx)("span",{children:g("labels.libraryLoadingMessage")})]})})});let f=c.libraryItems.length>0||e.length>0;return(0,zo.jsxs)(Ew,{children:[(0,zo.jsx)(Oh,{isLoading:c.status==="loading",libraryItems:u,onAddToLibrary:m,onInsertLibraryItems:t,pendingElements:e,id:a,libraryReturnUrl:n,theme:l,onSelectItems:d,selectedItems:s}),f&&(0,zo.jsx)(bm,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:a,libraryReturnUrl:n,theme:l})]})},uT=(t,e)=>{let o=()=>we(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0}),r=(0,Eo.useRef)(o()),n=(0,Eo.useRef)(t),i=(0,Eo.useRef)(e);return(!kt(t.selectedElementIds,n.current.selectedElementIds)||!kt(e,i.current))&&(r.current=o(),n.current=t,i.current=e),r.current},yw=()=>{let{library:t,id:e,onInsertElements:o}=mo(),r=_n(),n=_e(),i=Le(),a=kn(),[l,s]=(0,Eo.useState)([]),d=(0,Eo.useMemo)(()=>t,[t]),c=uT(n,a),m=(0,Eo.useCallback)(f=>{o(gm(f))},[o]),u=(0,Eo.useCallback)(()=>{i({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[i]);return(0,zo.jsx)(pT,{pendingElements:c,onInsertLibraryItems:m,onAddToLibrary:u,setAppState:i,libraryReturnUrl:r.libraryReturnUrl,library:d,id:e,theme:n.theme,selectedItems:l,onSelectItems:s})};var Rn=v(k(),1);function fT(t){if(t&&typeof t=="number")return t;switch(t){case"small":return 550;case"wide":return 1024;case"regular":default:return 800}}var et=t=>{let[e,o]=Py(),[r]=(0,Lm.useState)(document.activeElement),{id:n}=_t(),i=Me().viewport.isMobile;(0,Lm.useEffect)(()=>{if(!e)return;let d=hl(e);setTimeout(()=>{d.length>0&&t.autofocus!==!1&&(d[1]||d[0]).focus()});let c=m=>{if(m.key===S.TAB){let u=hl(e),{activeElement:f}=document,b=u.findIndex(x=>x===f);b===0&&m.shiftKey?(u[u.length-1].focus(),m.preventDefault()):b===u.length-1&&!m.shiftKey&&(u[0].focus(),m.preventDefault())}};return e.addEventListener("keydown",c),()=>e.removeEventListener("keydown",c)},[e,t.autofocus]);let a=Le(),l=Wr(Wa,De),s=()=>{a({openMenu:null}),l(!1),r.focus(),t.onCloseRequest()};return(0,Rn.jsx)(Fy,{className:$("Dialog",t.className,{"Dialog--fullscreen":i}),labelledBy:"dialog-title",maxWidth:fT(t.size),onCloseRequest:s,closeOnClickOutside:t.closeOnClickOutside,children:(0,Rn.jsxs)(zt,{ref:o,children:[t.title&&(0,Rn.jsx)("h2",{id:`${n}-dialog-title`,className:"Dialog__title",children:(0,Rn.jsx)("span",{className:"Dialog__titleContent",children:t.title})}),i&&(0,Rn.jsx)("button",{className:"Dialog__close",onClick:s,title:g("buttons.close"),"aria-label":g("buttons.close"),children:Ro}),(0,Rn.jsx)("div",{className:"Dialog__content",children:t.children})]})})};h();var Sr=v(H(),1);h();var ww=v(k(),1),Cr=({type:t="button",onSelect:e,selected:o,children:r,className:n="",...i})=>(0,ww.jsx)("button",{onClick:cn(i.onClick,a=>{e()}),type:t,className:$("excalidraw-button",n,{selected:o}),...i,children:r});var Si=v(k(),1),Pm=(0,Sr.forwardRef)(({onChange:t,label:e,fullWidth:o,placeholder:r,readonly:n,selectOnRender:i,onKeyDown:a,isRedacted:l=!1,...s},d)=>{let c=(0,Sr.useRef)(null);(0,Sr.useImperativeHandle)(d,()=>c.current),(0,Sr.useLayoutEffect)(()=>{i&&c.current?.select()},[i]);let[m,u]=(0,Sr.useState)(!1);return(0,Si.jsxs)("div",{className:$("ExcTextField",{"ExcTextField--fullWidth":o}),onClick:()=>{c.current?.focus()},children:[(0,Si.jsx)("div",{className:"ExcTextField__label",children:e}),(0,Si.jsxs)("div",{className:$("ExcTextField__input",{"ExcTextField__input--readonly":n}),children:[(0,Si.jsx)("input",{className:$({"is-redacted":"value"in s&&s.value&&l&&!m}),readOnly:n,value:"value"in s?s.value:void 0,defaultValue:"defaultValue"in s?s.defaultValue:void 0,placeholder:r,ref:c,onChange:f=>t?.(f.target.value),onKeyDown:a}),l&&(0,Si.jsx)(Cr,{onSelect:()=>u(!m),style:{border:0,userSelect:"none"},children:m?Sv:pa})]})]})});h();var hT={toggleTheme:[F("Shift+Alt+D")],saveScene:[F("CtrlOrCmd+S")],loadScene:[F("CtrlOrCmd+O")],clearCanvas:[F("CtrlOrCmd+Delete")],imageExport:[F("CtrlOrCmd+Shift+E")],commandPalette:[F("CtrlOrCmd+/"),F("CtrlOrCmd+Shift+P")],cut:[F("CtrlOrCmd+X")],copy:[F("CtrlOrCmd+C")],paste:[F("CtrlOrCmd+V")],copyStyles:[F("CtrlOrCmd+Alt+C")],pasteStyles:[F("CtrlOrCmd+Alt+V")],selectAll:[F("CtrlOrCmd+A")],deleteSelectedElements:[F("Delete")],duplicateSelection:[F("CtrlOrCmd+D"),F(`Alt+${g("helpDialog.drag")}`)],sendBackward:[F("CtrlOrCmd+[")],bringForward:[F("CtrlOrCmd+]")],sendToBack:[Yo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")],bringToFront:[Yo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")],copyAsPng:[F("Shift+Alt+C")],copyAsSvg:[],group:[F("CtrlOrCmd+G")],ungroup:[F("CtrlOrCmd+Shift+G")],gridMode:[F("CtrlOrCmd+'")],zenMode:[F("Alt+Z")],objectsSnapMode:[F("Alt+S")],stats:[F("Alt+/")],addToLibrary:[],flipHorizontal:[F("Shift+H")],flipVertical:[F("Shift+V")],viewMode:[F("Alt+R")],hyperlink:[F("CtrlOrCmd+K")],toggleElementLock:[F("CtrlOrCmd+Shift+L")],resetZoom:[F("CtrlOrCmd+0")],zoomOut:[F("CtrlOrCmd+-")],zoomIn:[F("CtrlOrCmd++")],zoomToFitSelection:[F("Shift+3")],zoomToFit:[F("Shift+1")],zoomToFitSelectionInViewport:[F("Shift+2")],toggleEraserTool:[F("E")],toggleHandTool:[F("H")],setFrameAsActiveTool:[F("F")],saveFileToDisk:[F("CtrlOrCmd+S")],saveToActiveFile:[F("CtrlOrCmd+S")],toggleShortcuts:[F("?")]},wt=(t,e=0)=>{let o=hT[t];return o&&o.length>0?o[e]||o[0]:""};var t3=v(Tw(),1);h();var gT="\\u0300-\\u036f",bT="\\ufe20-\\ufe2f",xT="\\u20d0-\\u20ff",vT=gT+bT+xT,ET=`[${vT}]`,yT=RegExp(ET,"g"),wT=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,CT={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"E",\u00E6:"e",\u00DE:"T",\u00FE:"t",\u00DF:"s",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"I",\u0133:"i",\u0152:"E",\u0153:"e",\u0149:"n",\u017F:"s"},Fh=t=>t.replace(wT,e=>CT[e]||e).replace(yT,"");h();var kw=v(k(),1),Dn=({icon:t})=>(0,kw.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:t});h();var bs=[{icon:ux,value:"selection",key:S.V,numericKey:S[1],fillable:!0},{icon:fx,value:"rectangle",key:S.R,numericKey:S[2],fillable:!0},{icon:hx,value:"diamond",key:S.D,numericKey:S[3],fillable:!0},{icon:gx,value:"ellipse",key:S.O,numericKey:S[4],fillable:!0},{icon:bx,value:"arrow",key:S.A,numericKey:S[5],fillable:!0},{icon:xx,value:"line",key:S.L,numericKey:S[6],fillable:!0},{icon:la,value:"freedraw",key:[S.P,S.X],numericKey:S[7],fillable:!1},{icon:Ex,value:"text",key:S.T,numericKey:S[8],fillable:!1},{icon:yx,value:"image",key:null,numericKey:S[9],fillable:!1},{icon:wx,value:"eraser",key:S.E,numericKey:S[0],fillable:!1}],Iw=t=>bs.find((o,r)=>o.numericKey!=null&&t===o.numericKey.toString()||o.key&&(typeof o.key=="string"?o.key===t:o.key.includes(t)))?.value||null;h();var Yw=v(H(),1);h();var Dm=v(H(),1);h();var xs=v(H());h();h();var Aw=t=>{let e,o=new Set,r=(c,m)=>{let u=typeof c=="function"?c(e):c;if(!Object.is(u,e)){let f=e;e=m??(typeof u!="object"||u===null)?u:Object.assign({},e,u),o.forEach(b=>b(e,f))}},n=()=>e,s={setState:r,getState:n,getInitialState:()=>d,subscribe:c=>(o.add(c),()=>o.delete(c)),destroy:()=>{(y?y.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),o.clear()}},d=e=t(r,n,s);return s},Mw=t=>t?Aw(t):Aw;var $w=v(H(),1),Hw=v(Fw(),1),{useDebugValue:HT}=$w.default,{useSyncExternalStoreWithSelector:UT}=Hw.default,Bw=!1,WT=t=>t;function GT(t,e=WT,o){(y?y.MODE:void 0)!=="production"&&o&&!Bw&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),Bw=!0);let r=UT(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,o);return HT(r),r}var zw=t=>{(y?y.MODE:void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");let e=typeof t=="function"?Mw(t):t,o=(r,n)=>GT(e,r,n);return Object.assign(o,e),o},Uw=t=>t?zw(t):zw;var Ww,Gw,Vw=typeof window<"u"&&((Ww=window.document)!=null&&Ww.createElement||((Gw=window.navigator)==null?void 0:Gw.product)==="ReactNative")?xs.default.useLayoutEffect:xs.default.useEffect;function nr(){let t=Uw(e=>({current:new Array,version:0,set:e}));return{In:({children:e})=>{let o=t(n=>n.set),r=t(n=>n.version);return Vw(()=>{o(n=>({version:n.version+1}))},[]),Vw(()=>(o(({current:n})=>({current:[...n,e]})),()=>o(({current:n})=>({current:n.filter(i=>i!==e)}))),[e,r]),null},Out:()=>{let e=t(o=>o.current);return xs.default.createElement(xs.default.Fragment,null,e)}}}var zh=Dm.default.createContext(null),Ve=()=>Dm.default.useContext(zh),Kw=()=>Dm.default.useMemo(()=>({MainMenuTunnel:nr(),WelcomeScreenMenuHintTunnel:nr(),WelcomeScreenToolbarHintTunnel:nr(),WelcomeScreenHelpHintTunnel:nr(),WelcomeScreenCenterTunnel:nr(),FooterCenterTunnel:nr(),DefaultSidebarTriggerTunnel:nr(),DefaultSidebarTabTriggersTunnel:nr(),OverwriteConfirmDialogTunnel:nr(),TTDDialogTriggerTunnel:nr(),jotaiScope:Symbol()}),[]);var ae=v(k(),1),$h=(t,e)=>{let o=e[0]?.type||null;for(let r of e)if(r.type!==o){o=null;break}return wl(t.activeTool.type)&&t.activeTool.type!=="image"&&o!=="image"&&o!=="frame"&&o!=="magicframe"||e.some(r=>wl(r.type))},Hh=(t,e)=>fn(t.activeTool.type)||e.some(o=>fn(o.type)),Nm=({appState:t,elementsMap:e,renderAction:o})=>{let r=oa(e,t),n=!1;r.length===2&&(fr(r[0])||fr(r[1]))&&(n=!0);let i=!!t.editingElement,a=Me(),l=document.documentElement.getAttribute("dir")==="rtl",s=fn(t.activeTool.type)&&!jn(t.currentItemBackgroundColor)||r.some(c=>fn(c.type)&&!jn(c.backgroundColor)),d=r.length===1||n;return(0,ae.jsxs)("div",{className:"panelColumn",children:[(0,ae.jsx)("div",{children:$h(t,r)&&o("changeStrokeColor")}),Hh(t,r)&&(0,ae.jsx)("div",{children:o("changeBackgroundColor")}),s&&o("changeFillStyle"),(Jp(t.activeTool.type)||r.some(c=>Jp(c.type)))&&o("changeStrokeWidth"),(t.activeTool.type==="freedraw"||r.some(c=>c.type==="freedraw"))&&o("changeStrokeShape"),(Qp(t.activeTool.type)||r.some(c=>Qp(c.type)))&&(0,ae.jsxs)(ae.Fragment,{children:[o("changeStrokeStyle"),o("changeSloppiness")]}),(eu(t.activeTool.type)||r.some(c=>eu(c.type)))&&(0,ae.jsx)(ae.Fragment,{children:o("changeRoundness")}),(t.activeTool.type==="text"||r.some(se))&&(0,ae.jsxs)(ae.Fragment,{children:[o("changeFontSize"),o("changeFontFamily"),(t.activeTool.type==="text"||wb(r,e))&&o("changeTextAlign")]}),yb(r,e)&&o("changeVerticalAlign"),(Ui(t.activeTool.type)||r.some(c=>Ui(c.type)))&&(0,ae.jsx)(ae.Fragment,{children:o("changeArrowhead")}),o("changeOpacity"),(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.layers")}),(0,ae.jsxs)("div",{className:"buttonList",children:[o("sendToBack"),o("sendBackward"),o("bringToFront"),o("bringForward")]})]}),r.length>1&&!n&&(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.align")}),(0,ae.jsxs)("div",{className:"buttonList",children:[l?(0,ae.jsxs)(ae.Fragment,{children:[o("alignRight"),o("alignHorizontallyCentered"),o("alignLeft")]}):(0,ae.jsxs)(ae.Fragment,{children:[o("alignLeft"),o("alignHorizontallyCentered"),o("alignRight")]}),r.length>2&&o("distributeHorizontally"),(0,ae.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,ae.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:"-0.5rem"},children:[o("alignTop"),o("alignVerticallyCentered"),o("alignBottom"),r.length>2&&o("distributeVertically")]})]})]}),!i&&r.length>0&&(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.actions")}),(0,ae.jsxs)("div",{className:"buttonList",children:[!a.editor.isMobile&&o("duplicateSelection"),!a.editor.isMobile&&o("deleteSelectedElements"),o("group"),o("ungroup"),d&&o("hyperlink")]})]})]})},Om=({activeTool:t,appState:e,app:o,UIOptions:r})=>{let[n,i]=(0,Yw.useState)(!1),a=t.type==="frame",l=t.type==="laser",s=t.type==="embeddable",{TTDDialogTriggerTunnel:d}=Ve();return(0,ae.jsxs)(ae.Fragment,{children:[bs.map(({value:c,icon:m,key:u,numericKey:f,fillable:b},x)=>{if(r.tools?.[c]===!1)return null;let E=g(`toolBar.${c}`),T=u&&sn(typeof u=="string"?u:u[0]),C=T?`${T} ${g("helpDialog.or")} ${f}`:`${f}`;return(0,ae.jsx)(ce,{className:$("Shape",{fillable:b}),type:"radio",icon:m,checked:t.type===c,name:"editor-current-shape",title:`${sn(E)} \u2014 ${C}`,keyBindingLabel:f||T,"aria-label":sn(E),"aria-keyshortcuts":C,"data-testid":`toolbar-${c}`,onPointerDown:({pointerType:w})=>{!e.penDetected&&w==="pen"&&o.togglePenMode(!0)},onChange:({pointerType:w})=>{e.activeTool.type!==c&&xe("toolbar",c,"ui"),c==="image"?o.setActiveTool({type:c,insertOnCanvasDirectly:w!=="mouse"}):o.setActiveTool({type:c})}},c)}),(0,ae.jsx)("div",{className:"App-toolbar__divider"}),(0,ae.jsxs)(Re,{open:n,children:[(0,ae.jsxs)(Re.Trigger,{className:$("App-toolbar__extra-tools-trigger",{"App-toolbar__extra-tools-trigger--selected":a||s||l&&!o.props.isCollaborating}),onToggle:()=>i(!n),title:g("toolBar.extraTools"),children:[wv,o.props.aiEnabled!==!1&&(0,ae.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",borderRadius:6,fontSize:8,fontFamily:"Cascadia, monospace",position:"absolute",background:"pink",color:"black",bottom:3,right:4},children:"AI"})]}),(0,ae.jsxs)(Re.Content,{onClickOutside:()=>i(!1),onSelect:()=>i(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,ae.jsx)(Re.Item,{onSelect:()=>o.setActiveTool({type:"frame"}),icon:bd,shortcut:S.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:a,children:g("toolBar.frame")}),(0,ae.jsx)(Re.Item,{onSelect:()=>o.setActiveTool({type:"embeddable"}),icon:Sx,"data-testid":"toolbar-embeddable",selected:s,children:g("toolBar.embeddable")}),(0,ae.jsx)(Re.Item,{onSelect:()=>o.setActiveTool({type:"laser"}),icon:vd,"data-testid":"toolbar-laser",selected:l,shortcut:S.K.toLocaleUpperCase(),children:g("toolBar.laser")}),(0,ae.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),o.props.aiEnabled!==!1&&(0,ae.jsx)(d.Out,{}),(0,ae.jsx)(Re.Item,{onSelect:()=>o.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:xd,"data-testid":"toolbar-embeddable",children:g("toolBar.mermaidToExcalidraw")}),o.props.aiEnabled!==!1&&(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsxs)(Re.Item,{onSelect:()=>o.onMagicframeToolSelect(),icon:ma,"data-testid":"toolbar-magicframe",children:[g("toolBar.magicframe"),(0,ae.jsx)(Re.Item.Badge,{children:"AI"})]}),(0,ae.jsx)(Re.Item,{onSelect:()=>{xe("ai","open-settings","d2c"),o.setOpenDialog({name:"settings",source:"settings",tab:"diagram-to-code"})},icon:Gl,"data-testid":"toolbar-magicSettings",children:g("toolBar.magicSettings")})]})]})]})]})},Zw=({renderAction:t,zoom:e})=>(0,ae.jsx)(Pt.Col,{gap:1,className:"zoom-actions",children:(0,ae.jsxs)(Pt.Row,{align:"center",children:[t("zoomOut"),t("resetZoom"),t("zoomIn")]})}),jw=({renderAction:t,className:e})=>(0,ae.jsxs)("div",{className:`undo-redo-buttons ${e}`,children:[(0,ae.jsx)("div",{className:"undo-button-container",children:(0,ae.jsx)(xo,{label:g("buttons.undo"),children:t("undo")})}),(0,ae.jsx)("div",{className:"redo-button-container",children:(0,ae.jsxs)(xo,{label:g("buttons.redo"),children:[" ",t("redo")]})})]}),Xw=({actionManager:t,showExitZenModeBtn:e})=>(0,ae.jsx)("button",{className:$("disable-zen-mode",{"disable-zen-mode--visible":e}),onClick:()=>t.executeAction(Fa),children:g("buttons.exitZenMode")}),qw=({renderAction:t,className:e})=>(0,ae.jsx)("div",{className:`finalize-button ${e}`,children:t("finalize",{size:"small"})});h();var Jw=v(H(),1),Uh=t=>{let e=(0,Jw.useRef)({userFn:t});return e.current.userFn=t,e.current.stableFn||(e.current.stableFn=(...o)=>e.current.userFn(...o)),e.current.stableFn};h();var Fm=v(k(),1),Ti=We(null),Qw=()=>{let[t,e]=Se(Ti,De),o=It();return t&&t==="clearCanvas"?(0,Fm.jsx)(vm,{onConfirm:()=>{o.executeAction(jr),e(null)},onCancel:()=>e(null),title:g("clearCanvasDialog.title"),children:(0,Fm.jsxs)("p",{className:"clear-canvas__content",children:[" ",g("alerts.clearReset")]})}):null};var Wh={};o1(Wh,{toggleTheme:()=>VT});h();var VT={...mi,category:"App",label:"Toggle theme",perform:({actionManager:t})=>{t.executeAction(mi,"commandPalette")}};var Ge=v(k(),1),KT=We(null),mt={app:"App",export:"Export",tools:"Tools",editor:"Editor",elements:"Elements",links:"Links"},YT=t=>{switch(t){case mt.app:return 1;case mt.export:return 2;case mt.editor:return 3;case mt.tools:return 4;case mt.elements:return 5;case mt.links:return 6;default:return 10}},Bm=({shortcut:t,className:e,children:o})=>{let r=t.replace("++","+$").split("+");return(0,Ge.jsxs)("div",{className:$("shortcut",e),children:[r.map((n,i)=>(0,Ge.jsx)("div",{className:"shortcut-wrapper",children:(0,Ge.jsx)("div",{className:"shortcut-key",children:n==="$"?"+":n})},n)),(0,Ge.jsx)("div",{className:"shortcut-desc",children:o})]})},o3=t=>!t.altKey&&t[S.CTRL_OR_CMD]&&(t.shiftKey&&t.key.toLowerCase()===S.P||t.key===S.SLASH),vY=Object.assign(t=>{let e=_e(),o=Le();return(0,$o.useEffect)(()=>{let r=n=>{o3(n)&&(n.preventDefault(),n.stopPropagation(),o(i=>{let a=i.openDialog?.name==="commandPalette"?null:{name:"commandPalette"};return a&&xe("command_palette","open","shortcut"),{openDialog:a}}))};return window.addEventListener("keydown",r,{capture:!0}),()=>window.removeEventListener("keydown",r,{capture:!0})},[o]),e.openDialog?.name!=="commandPalette"?null:(0,Ge.jsx)(ZT,{...t})},{defaultItems:Wh});function ZT({customCommandPaletteItems:t}){let e=mo(),o=_e(),r=Le(),n=_n(),i=It(),[a,l]=Se(KT),[s,d]=(0,$o.useState)(null),c=(0,$o.useRef)(null),m=La({uiAppState:o,customCommandPaletteItems:t,appProps:n});(0,$o.useEffect)(()=>{let{uiAppState:I,customCommandPaletteItems:M,appProps:_}=m,U=B=>{let te="";return B.label&&(typeof B.label=="function"?te=g(B.label(e.scene.getNonDeletedElements(),I,e)):te=g(B.label)),te},D=B=>typeof B.icon=="function"?B.icon(I,e.scene.getNonDeletedElements()):B.icon,G=[],O=(B,te,oe)=>{let ve={label:U(B),icon:D(B),category:te,shortcut:wt(B.name),keywords:B.keywords,predicate:B.predicate,viewMode:B.viewMode,perform:()=>{i.executeAction(B,"commandPalette")}};return oe?oe(ve,B):ve};if(I&&e.scene&&i){let B=[i.actions.group,i.actions.ungroup,i.actions.cut,i.actions.copy,i.actions.deleteSelectedElements,i.actions.copyStyles,i.actions.pasteStyles,i.actions.sendBackward,i.actions.sendToBack,i.actions.bringForward,i.actions.bringToFront,i.actions.alignTop,i.actions.alignBottom,i.actions.alignLeft,i.actions.alignRight,i.actions.alignVerticallyCentered,i.actions.alignHorizontallyCentered,i.actions.duplicateSelection,i.actions.flipHorizontal,i.actions.flipVertical,i.actions.zoomToFitSelection,i.actions.zoomToFitSelectionInViewport,i.actions.increaseFontSize,i.actions.decreaseFontSize,i.actions.toggleLinearEditor,ds].map(j=>O(j,mt.elements,(R,N)=>({...R,predicate:N.predicate?N.predicate:(K,Y,Z,X)=>we(K,Y).length>0}))),te=[i.actions.toggleHandTool,i.actions.setFrameAsActiveTool].map(j=>O(j,mt.tools)),oe=[i.actions.undo,i.actions.redo,i.actions.zoomIn,i.actions.zoomOut,i.actions.resetZoom,i.actions.zoomToFit,i.actions.zenMode,i.actions.viewMode,i.actions.gridMode,i.actions.objectsSnapMode,i.actions.toggleShortcuts,i.actions.selectAll,i.actions.toggleElementLock,i.actions.unlockAllElements,i.actions.stats].map(j=>O(j,mt.editor)),ve=[i.actions.saveToActiveFile,i.actions.saveFileToDisk,i.actions.copyAsPng,i.actions.copyAsSvg].map(j=>O(j,mt.export));G=[...B,...oe,{label:U(jr),icon:D(jr),shortcut:wt(jr.name),category:mt.editor,keywords:["delete","destroy"],viewMode:!1,perform:()=>{Gt.set(Ti,"clearCanvas")}},{label:g("buttons.exportImage"),category:mt.export,icon:ud,shortcut:wt("imageExport"),keywords:["export","image","png","jpeg","svg","clipboard","picture"],perform:()=>{r({openDialog:{name:"imageExport"}})}},...ve];let Ie=[{label:g("toolBar.library"),category:mt.app,icon:cd,viewMode:!1,perform:()=>{I.openSidebar?r({openSidebar:null}):r({openSidebar:{name:jo.name,tab:jo.defaultTab}})}},{label:g("labels.changeStroke"),keywords:["color","outline"],category:mt.elements,icon:pd,viewMode:!1,predicate:(j,R)=>{let N=we(j,R);return N.length>0&&$h(R,N)},perform:()=>{r(j=>({openMenu:j.openMenu==="shape"?null:"shape",openPopup:"elementStroke"}))}},{label:g("labels.changeBackground"),keywords:["color","fill"],icon:pd,category:mt.elements,viewMode:!1,predicate:(j,R)=>{let N=we(j,R);return N.length>0&&Hh(R,N)},perform:()=>{r(j=>({openMenu:j.openMenu==="shape"?null:"shape",openPopup:"elementBackground"}))}},{label:g("labels.canvasBackground"),keywords:["color"],icon:pd,category:mt.editor,viewMode:!1,perform:()=>{r(j=>({openMenu:j.openMenu==="canvas"?null:"canvas",openPopup:"canvasBackground"}))}},...bs.reduce((j,R)=>{let{value:N,icon:K,key:Y,numericKey:Z}=R;if(_.UIOptions.tools?.[N]===!1)return j;let ee=Y&&sn(typeof Y=="string"?Y:Y[0])||Z,ne={label:g(`toolBar.${N}`),category:mt.tools,shortcut:ee,icon:K,keywords:["toolbar"],viewMode:!1,perform:({event:rt})=>{N==="image"?e.setActiveTool({type:N,insertOnCanvasDirectly:rt.type==="keydown"}):e.setActiveTool({type:N})}};return j.push(ne),j},[]),...te,{label:g("toolBar.lock"),category:mt.tools,icon:I.activeTool.locked?aa:ri,shortcut:S.Q.toLocaleUpperCase(),viewMode:!1,perform:()=>{e.toggleLock()}},{label:`${g("labels.textToDiagram")}...`,category:mt.tools,icon:kv,viewMode:!1,predicate:_.aiEnabled,perform:()=>{r(j=>({...j,openDialog:{name:"ttd",tab:"text-to-diagram"}}))}},{label:`${g("toolBar.mermaidToExcalidraw")}...`,category:mt.tools,icon:xd,viewMode:!1,predicate:_.aiEnabled,perform:()=>{r(j=>({...j,openDialog:{name:"ttd",tab:"mermaid"}}))}}],me=[...G,...Ie,...M||[]].map(j=>({...j,icon:j.icon||yd,order:j.order??YT(j.category),haystack:`${Fh(j.label)} ${j.keywords?.join(" ")||""}`}));d(me),l(me.find(j=>j.label===a?.label)??null)}},[m,e,i,d,a?.label,l,r]);let[u,f]=(0,$o.useState)(""),[b,x]=(0,$o.useState)(null),[E,T]=(0,$o.useState)({}),C=I=>{r({openDialog:null},I),f("")},w=(I,M)=>{o.openDialog?.name==="commandPalette"&&(M.stopPropagation(),M.preventDefault(),document.body.classList.add("excalidraw-animations-disabled"),C(()=>{I.perform({actionManager:i,event:M}),l(I),requestAnimationFrame(()=>{document.body.classList.remove("excalidraw-animations-disabled")})}))},A=Uh(I=>I.viewMode===!1&&o.viewModeEnabled?!1:typeof I.predicate=="function"?I.predicate(e.scene.getNonDeletedElements(),o,n,e):I.predicate===void 0||I.predicate),z=Uh(I=>{let M=To(I.target)||o3(I)||I.key===S.ESCAPE;if(M&&I.key!==S.ARROW_UP&&I.key!==S.ARROW_DOWN&&I.key!==S.ENTER)return;let _=Object.values(E).flat(),U=a&&!u&&A(a);if(I.key===S.ARROW_UP){I.preventDefault();let D=_.findIndex(B=>B.label===b?.label);if(U){if(D===0){x(a);return}if(b===a){let B=_[_.length-1];B&&x(B);return}}let G;D===-1?G=_.length-1:G=D===0?_.length-1:(D-1)%_.length;let O=_[G];O&&x(O);return}if(I.key===S.ARROW_DOWN){I.preventDefault();let D=_.findIndex(B=>B.label===b?.label);if(U){if(!b||D===_.length-1){x(a);return}if(b===a){let B=_[0];B&&x(B);return}}let G=(D+1)%_.length,O=_[G];O&&x(O);return}if(I.key===S.ENTER&&b&&setTimeout(()=>{w(b,I)}),!M){if(I.stopPropagation(),/^[a-zA-Z0-9]$/.test(I.key)){c?.current?.focus();return}I.preventDefault()}});return(0,$o.useEffect)(()=>(window.addEventListener("keydown",z,{capture:!0}),()=>window.removeEventListener("keydown",z,{capture:!0})),[z]),(0,$o.useEffect)(()=>{if(!s)return;let I=D=>{let G={};for(let O of D)G[O.category]?G[O.category].push(O):G[O.category]=[O];return G},M=s.filter(A).sort((D,G)=>D.order-G.order),_=!u&&a&&A(a);if(!u){T(I(_?M.filter(D=>D.label!==a?.label):M)),x(_?a:M[0]||null);return}let U=Fh(u.replace(/[<>-_| ]/g,""));M=t3.default.filter(U,M,{extract:D=>D.haystack}).sort((D,G)=>G.score-D.score).map(D=>D.original),T(I(M)),x(M[0]??null)},[u,s,A,a]),(0,Ge.jsxs)(et,{onCloseRequest:()=>C(),closeOnClickOutside:!0,title:!1,size:720,autofocus:!0,className:"command-palette-dialog",children:[(0,Ge.jsx)(Pm,{value:u,placeholder:g("commandPalette.search.placeholder"),onChange:I=>{f(I)},selectOnRender:!0,ref:c}),!e.device.viewport.isMobile&&(0,Ge.jsxs)("div",{className:"shortcuts-wrapper",children:[(0,Ge.jsx)(Bm,{shortcut:"\u2191\u2193",children:g("commandPalette.shortcuts.select")}),(0,Ge.jsx)(Bm,{shortcut:"\u21B5",children:g("commandPalette.shortcuts.confirm")}),(0,Ge.jsx)(Bm,{shortcut:F("Esc"),children:g("commandPalette.shortcuts.close")})]}),(0,Ge.jsxs)("div",{className:"commands",children:[a&&!u&&(0,Ge.jsxs)("div",{className:"command-category",children:[(0,Ge.jsxs)("div",{className:"command-category-title",children:[g("commandPalette.recents"),(0,Ge.jsx)("div",{className:"icon",style:{marginLeft:"6px"},children:Iv})]}),(0,Ge.jsx)(e3,{command:a,isSelected:a.label===b?.label,onClick:I=>w(a,I),disabled:!A(a),onMouseMove:()=>x(a),showShortcut:!e.device.viewport.isMobile,appState:o})]}),Object.keys(E).length>0?Object.keys(E).map((I,M)=>(0,Ge.jsxs)("div",{className:"command-category",children:[(0,Ge.jsx)("div",{className:"command-category-title",children:I}),E[I].map(_=>(0,Ge.jsx)(e3,{command:_,isSelected:_.label===b?.label,onClick:U=>w(_,U),onMouseMove:()=>x(_),showShortcut:!e.device.viewport.isMobile,appState:o},_.label))]},I)):s?(0,Ge.jsxs)("div",{className:"no-match",children:[(0,Ge.jsx)("div",{className:"icon",children:Ed})," ",g("commandPalette.search.noMatch")]}):null]})]})}var e3=({command:t,isSelected:e,disabled:o,onMouseMove:r,onClick:n,showShortcut:i,appState:a})=>{let l=()=>{};return(0,Ge.jsxs)("div",{className:$("command-item",{"item-selected":e,"item-disabled":o}),ref:s=>{e&&!o&&s?.scrollIntoView?.({block:"nearest"})},onClick:o?l:n,onMouseMove:o?l:r,title:o?g("commandPalette.itemNotAvailable"):"",children:[(0,Ge.jsxs)("div",{className:"name",children:[t.icon&&(0,Ge.jsx)(Dn,{icon:typeof t.icon=="function"?t.icon(a):t.icon}),t.label]}),i&&t.shortcut&&(0,Ge.jsx)(Bm,{shortcut:t.shortcut})]})};var Gh=W({name:"toggleLinearEditor",category:mt.elements,label:(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0})[0];return e.editingLinearElement?.elementId===r?.id?"labels.lineEditor.exit":"labels.lineEditor.edit"},trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return!!(n.length===1&&$e(n[0]))},perform(t,e,o,r){let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0})[0],i=e.editingLinearElement?.elementId===n.id?null:new ue(n);return{appState:{...e,editingLinearElement:i},storeAction:P.CAPTURE}}});h();h();var ki=class{constructor(e=!0,o=!0){this.isUndoStackEmpty=e;this.isRedoStackEmpty=o}},vs=class t{onHistoryChangedEmitter=new _o;undoStack=[];redoStack=[];get isUndoStackEmpty(){return this.undoStack.length===0}get isRedoStackEmpty(){return this.redoStack.length===0}clear(){this.undoStack.length=0,this.redoStack.length=0}record(e,o){let r=Vh.create(o,e);r.isEmpty()||(this.undoStack.push(r.inverse()),r.elementsChange.isEmpty()||(this.redoStack.length=0),this.onHistoryChangedEmitter.trigger(new ki(this.isUndoStackEmpty,this.isRedoStackEmpty)))}undo(e,o,r){return this.perform(e,o,r,()=>t.pop(this.undoStack),n=>t.push(this.redoStack,n,e))}redo(e,o,r){return this.perform(e,o,r,()=>t.pop(this.redoStack),n=>t.push(this.undoStack,n,e))}perform(e,o,r,n,i){try{let a=n();if(a===null)return;let l=e,s=o,d=!1;for(;a;){try{[l,s,d]=a.applyTo(l,s,r)}finally{i(a)}if(d)break;a=n()}return[l,s]}finally{this.onHistoryChangedEmitter.trigger(new ki(this.isUndoStackEmpty,this.isRedoStackEmpty))}}static pop(e){if(!e.length)return null;let o=e.pop();return o!==void 0?o:null}static push(e,o,r){let n=o.inverse().applyLatestChanges(r);return e.push(n)}},Vh=class t{constructor(e,o){this.appStateChange=e;this.elementsChange=o}static create(e,o){return new t(e,o)}inverse(){return new t(this.appStateChange.inverse(),this.elementsChange.inverse())}applyTo(e,o,r){let[n,i]=this.elementsChange.applyTo(e,r.elements),[a,l]=this.appStateChange.applyTo(o,n);return[n,a,i||l]}applyLatestChanges(e){let o=this.elementsChange.applyLatestChanges(e);return t.create(this.appStateChange,o)}isEmpty(){return this.appStateChange.isEmpty()&&this.elementsChange.isEmpty()}};h();var zm=v(H(),1),Kh=(t,e)=>{let[o,r]=(0,zm.useState)(e);return(0,zm.useEffect)(()=>{let n=t.on(i=>{r(i)});return()=>{n()}},[t]),o};var Yh=v(k(),1),r3=(t,e)=>{if(!t.multiElement&&!t.resizingElement&&!t.editingElement&&!t.draggingElement){let o=e();if(!o)return{storeAction:P.NONE};let[r,n]=o,i=Array.from(r.values());return{appState:n,elements:i,storeAction:P.UPDATE}}return{storeAction:P.NONE}},n3=(t,e)=>({name:"undo",label:"buttons.undo",icon:Bu,trackEvent:{category:"history"},viewMode:!1,perform:(o,r)=>r3(r,()=>t.undo(pe(o),r,e.snapshot)),keyTest:o=>o[S.CTRL_OR_CMD]&&o.key.toLowerCase()===S.Z&&!o.shiftKey,PanelComponent:({updateData:o,data:r})=>{let{isUndoStackEmpty:n}=Kh(t.onHistoryChangedEmitter,new ki);return(0,Yh.jsx)(ce,{type:"button",icon:Bu,"aria-label":g("buttons.undo"),onClick:o,size:r?.size||"medium",disabled:n})}}),i3=(t,e)=>({name:"redo",label:"buttons.redo",icon:zu,trackEvent:{category:"history"},viewMode:!1,perform:(o,r)=>r3(r,()=>t.redo(pe(o),r,e.snapshot)),keyTest:o=>o[S.CTRL_OR_CMD]&&o.shiftKey&&o.key.toLowerCase()===S.Z||js&&o.ctrlKey&&!o.shiftKey&&o.key===S.Y,PanelComponent:({updateData:o,data:r})=>{let{isRedoStackEmpty:n}=Kh(t.onHistoryChangedEmitter,new ki);return(0,Yh.jsx)(ce,{type:"button",icon:zu,"aria-label":g("buttons.redo"),onClick:o,size:r?.size||"medium",disabled:n})}});h();var a3=v(k(),1),Zh=(t,e,o,r,n,i)=>{if(t.trackEvent)try{typeof t.trackEvent=="object"&&(!t.trackEvent.predicate||t.trackEvent.predicate(o,r,i))&&xe(t.trackEvent.category,t.trackEvent.action||t.name,`${e} (${n.device.editor.isMobile?"mobile":"desktop"})`)}catch(a){console.error("error while logging action:",a)}},$m=class{actions={};updater;getAppState;getElementsIncludingDeleted;app;constructor(e,o,r,n){this.updater=i=>{if(Bi(i))i.then(a=>e(a));else return e(i)},this.getAppState=o,this.getElementsIncludingDeleted=r,this.app=n}registerAction(e){this.actions[e.name]=e}registerAll(e){e.forEach(o=>this.registerAction(o))}handleKeyDown(e){let o=this.app.props.UIOptions.canvasActions,r=Object.values(this.actions).sort((s,d)=>(d.keyPriority||0)-(s.keyPriority||0)).filter(s=>(s.name in o?o[s.name]:!0)&&s.keyTest&&s.keyTest(e,this.getAppState(),this.getElementsIncludingDeleted(),this.app));if(r.length!==1)return r.length>1&&console.warn("Canceling as multiple actions match this shortcut",r),!1;let n=r[0];if(this.getAppState().viewModeEnabled&&n.viewMode!==!0)return!1;let i=this.getElementsIncludingDeleted(),a=this.getAppState(),l=null;return Zh(n,"keyboard",a,i,this.app,null),e.preventDefault(),e.stopPropagation(),this.updater(r[0].perform(i,a,l,this.app)),!0}executeAction(e,o="api",r=null){let n=this.getElementsIncludingDeleted(),i=this.getAppState();Zh(e,o,i,n,this.app,r),this.updater(e.perform(n,i,r,this.app))}renderAction=(e,o)=>{let r=this.app.props.UIOptions.canvasActions;if(this.actions[e]&&"PanelComponent"in this.actions[e]&&(!(e in r)||r[e])){let n=this.actions[e],i=n.PanelComponent;i.displayName="PanelComponent";let a=this.getElementsIncludingDeleted(),l=this.getAppState(),s=d=>{Zh(n,"ui",l,a,this.app,d),this.updater(n.perform(this.getElementsIncludingDeleted(),this.getAppState(),d,this.app))};return(0,a3.jsx)(i,{elements:this.getElementsIncludingDeleted(),appState:this.getAppState(),updateData:s,appProps:this.app.props,app:this.app,data:o})}return null};isActionEnabled=e=>{let o=this.getElementsIncludingDeleted(),r=this.getAppState();return!e.predicate||e.predicate(o,r,this.app.props,this.app)}};h();var jh=t=>{let e=Array.from(t.values());return{x:l3(e,o=>o.x)/e.length,y:l3(e,o=>o.y)/e.length}},Xh=([t,e])=>Math.hypot(t.x-e.x,t.y-e.y),l3=(t,e)=>t.reduce((o,r)=>o+e(r),0);h();var s3=v(H(),1),Jr=v(k(),1),io="separator",c3=s3.default.memo(({actionManager:t,items:e,top:o,left:r,onClose:n})=>{let i=Ba(),a=kn(),l=e.reduce((s,d)=>(d&&(d===io||!d.predicate||d.predicate(a,i,t.app.props,t.app))&&s.push(d),s),[]);return(0,Jr.jsx)(Jd,{onCloseRequest:()=>{n()},top:o,left:r,fitInViewport:!0,offsetLeft:i.offsetLeft,offsetTop:i.offsetTop,viewportWidth:i.width,viewportHeight:i.height,children:(0,Jr.jsx)("ul",{className:"context-menu",onContextMenu:s=>s.preventDefault(),children:l.map((s,d)=>{if(s===io)return!l[d-1]||l[d-1]===io?null:(0,Jr.jsx)("hr",{className:"context-menu-item-separator"},d);let c=s.name,m="";return s.label&&(typeof s.label=="function"?m=g(s.label(a,i,t.app)):m=g(s.label)),(0,Jr.jsx)("li",{"data-testid":c,onClick:()=>{n(()=>{t.executeAction(s,"contextMenu")})},children:(0,Jr.jsxs)("button",{className:$("context-menu-item",{dangerous:c==="deleteSelectedElements",checkmark:s.checked?.(i)}),children:[(0,Jr.jsx)("div",{className:"context-menu-item__label",children:m}),(0,Jr.jsx)("kbd",{className:"context-menu-item__shortcut",children:c?wt(c):""})]})},d)})})})});h();var y5=v(H(),1);h();var Hm=v(H(),1);var Za=v(k(),1),d3=({children:t,onClose:e})=>{let[o,r]=(0,Hm.useState)(!!t),{container:n}=_t(),i=Hm.default.useCallback(()=>{r(!1),e&&e(),n?.focus()},[e,n]);return(0,Za.jsx)(Za.Fragment,{children:o&&(0,Za.jsx)(et,{size:"small",onCloseRequest:i,title:g("errorDialog.title"),children:(0,Za.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:t})})})};h();var yo=v(H(),1);h();var Es=v(k(),1),Um=function({onChange:t,value:e,choices:o,name:r}){return(0,Es.jsx)("div",{className:"RadioGroup",children:o.map(n=>(0,Es.jsxs)("div",{className:$("RadioGroup__choice",{active:n.value===e}),title:n.ariaLabel,children:[(0,Es.jsx)("input",{name:r,type:"radio",checked:n.value===e,onChange:()=>t(n.value),"aria-label":n.ariaLabel}),n.label]},String(n.value)))})};h();var qh=v(k(),1),ys=({title:t,name:e,checked:o,onChange:r,disabled:n=!1})=>(0,qh.jsx)("div",{className:$("Switch",{toggled:o,disabled:n}),children:(0,qh.jsx)("input",{name:e,id:e,title:t,type:"checkbox",checked:o,disabled:n,onChange:()=>r(!o),onKeyDown:i=>{i.key===" "&&r(!o)}})});h();var Wm=v(H(),1);var ja=v(k(),1),Tr=(0,Wm.forwardRef)(({children:t,icon:e,onClick:o,label:r,variant:n="filled",color:i="primary",size:a="medium",fullWidth:l,className:s},d)=>{let[c,m]=(0,Wm.useState)(!1),u=async f=>{let b=o?.(f);if(Bi(b))try{m(!0),await b}catch(x){if(x instanceof Hi)console.warn(x);else throw x}finally{m(!1)}};return(0,ja.jsx)("button",{className:$("ExcButton",`ExcButton--color-${i}`,`ExcButton--variant-${n}`,`ExcButton--size-${a}`,{"ExcButton--fullWidth":l},s),onClick:u,type:"button","aria-label":r,ref:d,disabled:c,children:(0,ja.jsxs)("div",{className:"ExcButton__contents",children:[c&&(0,ja.jsx)(Ot,{}),e&&(0,ja.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:e}),n!=="icon"&&(t??r)]})})});var Ae=v(k(),1),jT="filter"in document.createElement("canvas").getContext("2d"),XT=()=>(0,Ae.jsxs)("div",{children:[(0,Ae.jsx)("h3",{children:g("canvasError.cannotShowPreview")}),(0,Ae.jsx)("p",{children:(0,Ae.jsx)("span",{children:g("canvasError.canvasTooBig")})}),(0,Ae.jsxs)("em",{children:["(",g("canvasError.canvasTooBigTip"),")"]})]}),qT=({appStateSnapshot:t,elementsSnapshot:e,files:o,actionManager:r,onExportImage:n,name:i})=>{let a=Fe(e,t),[l,s]=(0,yo.useState)(i),[d,c]=(0,yo.useState)(a),[m,u]=(0,yo.useState)(t.exportBackground),[f,b]=(0,yo.useState)(t.exportWithDarkMode),[x,E]=(0,yo.useState)(t.exportEmbedScene),[T,C]=(0,yo.useState)(t.exportScale),w=(0,yo.useRef)(null),[A,z]=(0,yo.useState)(null),{exportedElements:I,exportingFrame:M}=ui(e,t,d);return(0,yo.useEffect)(()=>{let _=w.current;if(!_)return;let U=_.offsetWidth,D=_.offsetHeight;U&&ei({elements:I,appState:{...t,name:l,exportBackground:m,exportWithDarkMode:f,exportScale:T,exportEmbedScene:x},files:o,exportPadding:ln,maxWidthOrHeight:Math.max(U,D),exportingFrame:M}).then(G=>(z(null),$r(G).then(()=>{_.replaceChildren(G)}).catch(O=>{throw O.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):O}))).catch(G=>{console.error(G),z(G)})},[t,o,I,M,l,m,f,T,x]),(0,Ae.jsxs)("div",{className:"ImageExportModal",children:[(0,Ae.jsx)("h3",{children:g("imageExportDialog.header")}),(0,Ae.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,Ae.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:w,children:A&&(0,Ae.jsx)(XT,{})}),(0,Ae.jsx)("div",{className:"ImageExportModal__preview__filename",children:!ji&&(0,Ae.jsx)("input",{type:"text",className:"TextInput",value:l,style:{width:"30ch"},onChange:_=>{s(_.target.value),r.executeAction(th,"ui",_.target.value)}})})]}),(0,Ae.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,Ae.jsx)("h3",{children:g("imageExportDialog.header")}),a&&(0,Ae.jsx)(ws,{label:g("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,Ae.jsx)(ys,{name:"exportOnlySelected",checked:d,onChange:_=>{c(_)}})}),(0,Ae.jsx)(ws,{label:g("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,Ae.jsx)(ys,{name:"exportBackgroundSwitch",checked:m,onChange:_=>{u(_),r.executeAction(oh,"ui",_)}})}),jT&&(0,Ae.jsx)(ws,{label:g("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,Ae.jsx)(ys,{name:"exportDarkModeSwitch",checked:f,onChange:_=>{b(_),r.executeAction(uy,"ui",_)}})}),(0,Ae.jsx)(ws,{label:g("imageExportDialog.label.embedScene"),tooltip:g("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,Ae.jsx)(ys,{name:"exportEmbedSwitch",checked:x,onChange:_=>{E(_),r.executeAction(tm,"ui",_)}})}),(0,Ae.jsx)(ws,{label:g("imageExportDialog.label.scale"),name:"exportScale",children:(0,Ae.jsx)(Um,{name:"exportScale",value:T,onChange:_=>{C(_),r.executeAction(py,"ui",_)},choices:oc.map(_=>({value:_,label:`${_}\xD7`}))})}),(0,Ae.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,Ae.jsx)(Tr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToPng"),onClick:()=>n(Js.png,I,{exportingFrame:M}),icon:tf,children:g("imageExportDialog.button.exportToPng")}),(0,Ae.jsx)(Tr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToSvg"),onClick:()=>n(Js.svg,I,{exportingFrame:M}),icon:tf,children:g("imageExportDialog.button.exportToSvg")}),(qi||Mr)&&(0,Ae.jsx)(Tr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.copyPngToClipboard"),onClick:()=>n(Js.clipboard,I,{exportingFrame:M}),icon:gd,children:g("imageExportDialog.button.copyPngToClipboard")})]})]})]})},ws=({label:t,children:e,tooltip:o,name:r})=>(0,Ae.jsxs)("div",{className:"ImageExportModal__settings__setting",title:t,children:[(0,Ae.jsxs)("label",{htmlFor:r,className:"ImageExportModal__settings__setting__label",children:[t,o&&(0,Ae.jsx)(xo,{label:o,long:!0,children:vv})]}),(0,Ae.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:e})]}),m3=({elements:t,appState:e,files:o,actionManager:r,onExportImage:n,onCloseRequest:i,name:a})=>{let[{appStateSnapshot:l,elementsSnapshot:s}]=(0,yo.useState)(()=>({appStateSnapshot:pr(e),elementsSnapshot:pr(t)}));return(0,Ae.jsx)(et,{onCloseRequest:i,size:"wide",title:!1,children:(0,Ae.jsx)(qT,{elementsSnapshot:s,appStateSnapshot:l,files:o,actionManager:r,onExportImage:n,name:a})})};h();var p3=v(k(),1),Gm=({children:t,side:e,className:o})=>(0,p3.jsx)("div",{className:$("FixedSideContainer",`FixedSideContainer_side_${e}`,o),children:t});h();var Jh=v(k(),1),JT=({appState:t,isMobile:e,device:o,app:r})=>{let{activeTool:n,isResizing:i,isRotating:a,lastPointerDownWith:l}=t,s=t.multiElement!==null;if(t.openSidebar&&!o.editor.canFitSidebar)return null;if(Ao(t))return g("hints.eraserRevert");if(n.type==="arrow"||n.type==="line")return s?g("hints.linearElementMulti"):g("hints.linearElement");if(n.type==="freedraw")return g("hints.freeDraw");if(n.type==="text")return g("hints.text");if(n.type==="embeddable")return g("hints.embeddable");if(t.activeTool.type==="image"&&t.pendingImageElementId)return g("hints.placeImage");let d=r.scene.getSelectedElements(t);if(i&&l==="mouse"&&d.length===1){let c=d[0];return $e(c)&&c.points.length===2?g("hints.lockAngle"):dn(c)?g("hints.resizeImage"):g("hints.resize")}if(a&&l==="mouse")return g("hints.rotate");if(d.length===1&&se(d[0]))return g("hints.text_selected");if(t.editingElement&&se(t.editingElement))return g("hints.text_editing");if(n.type==="selection"){if(t.draggingElement?.type==="selection"&&!d.length&&!t.editingElement&&!t.editingLinearElement)return g("hints.deepBoxSelect");if(t.gridSize&&t.draggingElement)return g("hints.disableSnapping");if(!d.length&&!e)return g("hints.canvasPanning");if(d.length===1){if($e(d[0]))return t.editingLinearElement?t.editingLinearElement.selectedPointsIndices?g("hints.lineEditor_pointSelected"):g("hints.lineEditor_nothingSelected"):g("hints.lineEditor_info");if(!t.draggingElement&&Rr(d[0]))return g("hints.bindTextToElement")}}return null},Vm=({appState:t,isMobile:e,device:o,app:r})=>{let n=JT({appState:t,isMobile:e,device:o,app:r});return n?(n=F(n),(0,Jh.jsx)("div",{className:"HintViewer",children:(0,Jh.jsx)("span",{children:n})})):null};h();var Cs=v(k(),1),QT="medium",u3={CHECKED:aa,UNCHECKED:ri},Km=t=>(0,Cs.jsxs)("label",{className:$("ToolIcon ToolIcon__lock",`ToolIcon_size_${QT}`,{"is-mobile":t.isMobile}),title:`${t.title} \u2014 Q`,children:[(0,Cs.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title,"data-testid":"toolbar-lock"}),(0,Cs.jsx)("div",{className:"ToolIcon__icon",children:t.checked?u3.CHECKED:u3.UNCHECKED})]});h();h();var Ii=v(k(),1),Nn=({heading:t,children:e,...o})=>{let{id:r}=_t(),n=(0,Ii.jsx)("h2",{className:"visually-hidden",id:`${r}-${t}-title`,children:g(`headings.${t}`)});return(0,Ii.jsx)("section",{...o,"aria-labelledby":`${r}-${t}-title`,children:typeof e=="function"?e(n):(0,Ii.jsxs)(Ii.Fragment,{children:[n,e]})})};h();var ir=4,kr=6,f3="rgba(0,0,0,0.3)",h3=(t,e,o,r)=>{if(!t.length)return{horizontal:null,vertical:null};let[n,i,a,l]=Ze(t),s=e/r.zoom.value,d=o/r.zoom.value,c=e-s,m=o-d,u={top:parseInt(ul("sat"))||0,bottom:parseInt(ul("sab"))||0,left:parseInt(ul("sal"))||0,right:parseInt(ul("sar"))||0},f=Gr().rtl,b=-r.scrollX+c/2+u.left,x=-r.scrollY+m/2+u.top,E=b+s-u.right,T=x+d-u.bottom,C=Math.min(n,b),w=Math.min(i,x),A=Math.max(a,E),z=Math.max(l,T);return{horizontal:b===C&&E===A?null:{x:Math.max(u.left,ir)+(b-C)/(A-C)*e,y:o-kr-Math.max(ir,u.bottom),width:(E-b)/(A-C)*e-Math.max(ir*2,u.left+u.right),height:kr},vertical:x===w&&T===z?null:{x:f?Math.max(u.left,ir):e-kr-Math.max(u.right,ir),y:(x-w)/(z-w)*o+Math.max(u.top,ir),width:kr,height:(T-x)/(z-w)*o-Math.max(ir*2,u.top+u.bottom)}}},Qh=(t,e,o)=>{let[r,n]=[t.horizontal,t.vertical].map(a=>a!=null&&a.x<=e&&e<=a.x+a.width&&a.y<=o&&o<=a.y+a.height);return{isOverEither:r||n,isOverHorizontal:r,isOverVertical:n}};h();var Ss=v(k(),1),ek="medium",Ym=t=>t.penDetected?(0,Ss.jsxs)("label",{className:$("ToolIcon ToolIcon__penMode",`ToolIcon_size_${ek}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Ss.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,Ss.jsx)("div",{className:"ToolIcon__icon",children:vx})]}):null;h();var ge=v(k(),1),Zm=t=>{let e=Ze(t.elements),o=oa(t.elements,t.appState),r=Ze(o);return(0,ge.jsx)("div",{className:"Stats",children:(0,ge.jsxs)(zt,{padding:2,children:[(0,ge.jsx)("div",{className:"close",onClick:t.onClose,children:Ro}),(0,ge.jsx)("h3",{children:g("stats.title")}),(0,ge.jsx)("table",{children:(0,ge.jsxs)("tbody",{children:[(0,ge.jsx)("tr",{children:(0,ge.jsx)("th",{colSpan:2,children:g("stats.scene")})}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.elements")}),(0,ge.jsx)("td",{children:t.elements.length})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.width")}),(0,ge.jsx)("td",{children:Math.round(e[2])-Math.round(e[0])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.height")}),(0,ge.jsx)("td",{children:Math.round(e[3])-Math.round(e[1])})]}),o.length===1&&(0,ge.jsx)("tr",{children:(0,ge.jsx)("th",{colSpan:2,children:g("stats.element")})}),o.length>1&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)("tr",{children:(0,ge.jsx)("th",{colSpan:2,children:g("stats.selected")})}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.elements")}),(0,ge.jsx)("td",{children:o.length})]})]}),o.length>0&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:"x"}),(0,ge.jsx)("td",{children:Math.round(r[0])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:"y"}),(0,ge.jsx)("td",{children:Math.round(r[1])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.width")}),(0,ge.jsx)("td",{children:Math.round(r[2]-r[0])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.height")}),(0,ge.jsx)("td",{children:Math.round(r[3]-r[1])})]})]}),o.length===1&&(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.angle")}),(0,ge.jsx)("td",{children:`${Math.round(o[0].angle*180/Math.PI)}\xB0`})]}),t.renderCustomStats?.(t.elements,t.appState)]})})]})})};h();var g3=v(k(),1),jm=t=>(0,g3.jsx)(ce,{className:$("Shape",{fillable:!1}),type:"radio",icon:hd,name:"editor-current-shape",checked:t.checked,title:`${t.title} \u2014 H`,keyBindingLabel:t.isMobile?void 0:S.H.toLocaleUpperCase(),"aria-label":`${t.title} \u2014 H`,"aria-keyshortcuts":S.H,"data-testid":"toolbar-hand",onChange:()=>t.onChange?.()});var ze=v(k(),1),b3=({appState:t,elements:e,actionManager:o,setAppState:r,onLockToggle:n,onHandToolToggle:i,onPenModeToggle:a,renderTopRightUI:l,renderCustomStats:s,renderSidebars:d,device:c,renderWelcomeScreen:m,UIOptions:u,app:f})=>{let{WelcomeScreenCenterTunnel:b,MainMenuTunnel:x,DefaultSidebarTriggerTunnel:E}=Ve(),T=()=>(0,ze.jsxs)(Gm,{side:"top",className:"App-top-bar",children:[m&&(0,ze.jsx)(b.Out,{}),(0,ze.jsx)(Nn,{heading:"shapes",children:w=>(0,ze.jsx)(Pt.Col,{gap:4,align:"center",children:(0,ze.jsxs)(Pt.Row,{gap:1,className:"App-toolbar-container",children:[(0,ze.jsxs)(zt,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[w,(0,ze.jsx)(Pt.Row,{gap:1,children:(0,ze.jsx)(Om,{appState:t,activeTool:t.activeTool,UIOptions:u,app:f})})]}),l&&l(!0,t),(0,ze.jsxs)("div",{className:"mobile-misc-tools-container",children:[!t.viewModeEnabled&&(0,ze.jsx)(E.Out,{}),(0,ze.jsx)(Ym,{checked:t.penMode,onChange:()=>a(null),title:g("toolBar.penMode"),isMobile:!0,penDetected:t.penDetected}),(0,ze.jsx)(Km,{checked:t.activeTool.locked,onChange:n,title:g("toolBar.lock"),isMobile:!0}),(0,ze.jsx)(jm,{checked:Fr(t),onChange:()=>i(),title:g("toolBar.hand"),isMobile:!0})]})]})})}),(0,ze.jsx)(Vm,{appState:t,isMobile:!0,device:c,app:f})]}),C=()=>t.viewModeEnabled?(0,ze.jsx)("div",{className:"App-toolbar-content",children:(0,ze.jsx)(x.Out,{})}):(0,ze.jsxs)("div",{className:"App-toolbar-content",children:[(0,ze.jsx)(x.Out,{}),o.renderAction("toggleEditMenu"),o.renderAction("undo"),o.renderAction("redo"),o.renderAction(t.multiElement?"finalize":"duplicateSelection"),o.renderAction("deleteSelectedElements")]});return(0,ze.jsxs)(ze.Fragment,{children:[d(),!t.viewModeEnabled&&T(),!t.openMenu&&t.showStats&&(0,ze.jsx)(Zm,{appState:t,setAppState:r,elements:e,onClose:()=>{o.executeAction(Mn)},renderCustomStats:s}),(0,ze.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:kr+ir*2,marginLeft:kr+ir*2,marginRight:kr+ir*2},children:(0,ze.jsxs)(zt,{padding:0,children:[t.openMenu==="shape"&&!t.viewModeEnabled&&ea(t,e)?(0,ze.jsx)(Nn,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,ze.jsx)(Nm,{appState:t,elementsMap:f.scene.getNonDeletedElementsMap(),renderAction:o.renderAction})}):null,(0,ze.jsxs)("footer",{className:"App-toolbar",children:[C(),t.scrolledOutside&&!t.openMenu&&!t.openSidebar&&(0,ze.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(w=>({...oi(e,w)}))},children:g("buttons.scrollBackToContent")})]})]})})]})};h();var Fn=v(H(),1);var On=v(k(),1),x3=t=>{let e=(0,Fn.useRef)(null),[o,r]=(0,Fn.useState)(null);return(0,Fn.useLayoutEffect)(()=>{if(!t.spreadsheet)return;let n=x0(t.chartType,t.spreadsheet,0,0);r(n);let i,a=e.current;return(async()=>(i=await zc(n,{exportBackground:!1,viewBackgroundColor:Mt.white},null),i.querySelector(".style-fonts")?.remove(),a.replaceChildren(),a.appendChild(i),t.selected&&a.parentNode.focus()))(),()=>{a.replaceChildren()}},[t.spreadsheet,t.chartType,t.selected]),(0,On.jsx)("button",{className:"ChartPreview",onClick:()=>{o&&t.onClick(t.chartType,o)},children:(0,On.jsx)("div",{ref:e})})},v3=({setAppState:t,appState:e,onClose:o})=>{let{onInsertElements:r}=mo(),n=Fn.default.useCallback(()=>{o&&o()},[o]),i=(a,l)=>{r(l),xe("paste","chart",a),t({currentChartType:a,pasteDialog:{shown:!1,data:null}})};return(0,On.jsx)(et,{size:"small",onCloseRequest:n,title:g("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,On.jsxs)("div",{className:"container",children:[(0,On.jsx)(x3,{chartType:"bar",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="bar",onClick:i}),(0,On.jsx)(x3,{chartType:"line",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="line",onClick:i})]})})};h();var E3=v(H(),1);var V=v(k(),1),tk=()=>(0,V.jsxs)("div",{className:"HelpDialog__header",children:[(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:Fu}),g("helpDialog.documentation")]}),(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://blog.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:Fu}),g("helpDialog.blog")]}),(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:md}),g("helpDialog.github")]}),(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://youtube.com/@excalidraw",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:zv}),"YouTube"]})]}),ok=t=>(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)("h3",{children:t.title}),(0,V.jsx)("div",{className:"HelpDialog__islands-container",children:t.children})]}),eg=t=>(0,V.jsxs)("div",{className:`HelpDialog__island ${t.className}`,children:[(0,V.jsx)("h4",{className:"HelpDialog__island-title",children:t.caption}),(0,V.jsx)("div",{className:"HelpDialog__island-content",children:t.children})]});function*rk(t,e){let o=!0;for(let r of t)o||(yield e),o=!1,yield r}var nk=t=>t.replace(/\b[a-z]\b/,e=>e.toUpperCase()),J=({label:t,shortcuts:e,isOr:o=!0})=>{let r=e.map(n=>(n.endsWith("++")?[...n.slice(0,-2).split("+"),"+"]:n.split("+")).map(a=>(0,V.jsx)(ik,{children:nk(a)},a)));return(0,V.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,V.jsx)("div",{children:t}),(0,V.jsx)("div",{className:"HelpDialog__key-container",children:[...rk(r,o?g("helpDialog.or"):null)]})]})},ik=t=>(0,V.jsx)("kbd",{className:"HelpDialog__key",...t}),y3=({onClose:t})=>{let e=E3.default.useCallback(()=>{t&&t()},[t]);return(0,V.jsx)(V.Fragment,{children:(0,V.jsxs)(et,{onCloseRequest:e,title:g("helpDialog.title"),className:"HelpDialog",children:[(0,V.jsx)(tk,{}),(0,V.jsxs)(ok,{title:g("helpDialog.shortcuts"),children:[(0,V.jsxs)(eg,{className:"HelpDialog__island--tools",caption:g("helpDialog.tools"),children:[(0,V.jsx)(J,{label:g("toolBar.hand"),shortcuts:[S.H]}),(0,V.jsx)(J,{label:g("toolBar.selection"),shortcuts:[S.V,S[1]]}),(0,V.jsx)(J,{label:g("toolBar.rectangle"),shortcuts:[S.R,S[2]]}),(0,V.jsx)(J,{label:g("toolBar.diamond"),shortcuts:[S.D,S[3]]}),(0,V.jsx)(J,{label:g("toolBar.ellipse"),shortcuts:[S.O,S[4]]}),(0,V.jsx)(J,{label:g("toolBar.arrow"),shortcuts:[S.A,S[5]]}),(0,V.jsx)(J,{label:g("toolBar.line"),shortcuts:[S.L,S[6]]}),(0,V.jsx)(J,{label:g("toolBar.freedraw"),shortcuts:[S.P,S[7]]}),(0,V.jsx)(J,{label:g("toolBar.text"),shortcuts:[S.T,S[8]]}),(0,V.jsx)(J,{label:g("toolBar.image"),shortcuts:[S[9]]}),(0,V.jsx)(J,{label:g("toolBar.eraser"),shortcuts:[S.E,S[0]]}),(0,V.jsx)(J,{label:g("toolBar.frame"),shortcuts:[S.F]}),(0,V.jsx)(J,{label:g("toolBar.laser"),shortcuts:[S.K]}),(0,V.jsx)(J,{label:g("labels.eyeDropper"),shortcuts:[S.I,"Shift+S","Shift+G"]}),(0,V.jsx)(J,{label:g("helpDialog.editLineArrowPoints"),shortcuts:[F("CtrlOrCmd+Enter")]}),(0,V.jsx)(J,{label:g("helpDialog.editText"),shortcuts:[F("Enter")]}),(0,V.jsx)(J,{label:g("helpDialog.textNewLine"),shortcuts:[F("Enter"),F("Shift+Enter")]}),(0,V.jsx)(J,{label:g("helpDialog.textFinish"),shortcuts:[F("Esc"),F("CtrlOrCmd+Enter")]}),(0,V.jsx)(J,{label:g("helpDialog.curvedArrow"),shortcuts:["A",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,V.jsx)(J,{label:g("helpDialog.curvedLine"),shortcuts:["L",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,V.jsx)(J,{label:g("toolBar.lock"),shortcuts:[S.Q]}),(0,V.jsx)(J,{label:g("helpDialog.preventBinding"),shortcuts:[F("CtrlOrCmd")]}),(0,V.jsx)(J,{label:g("toolBar.link"),shortcuts:[F("CtrlOrCmd+K")]})]}),(0,V.jsxs)(eg,{className:"HelpDialog__island--view",caption:g("helpDialog.view"),children:[(0,V.jsx)(J,{label:g("buttons.zoomIn"),shortcuts:[F("CtrlOrCmd++")]}),(0,V.jsx)(J,{label:g("buttons.zoomOut"),shortcuts:[F("CtrlOrCmd+-")]}),(0,V.jsx)(J,{label:g("buttons.resetZoom"),shortcuts:[F("CtrlOrCmd+0")]}),(0,V.jsx)(J,{label:g("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,V.jsx)(J,{label:g("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,V.jsx)(J,{label:g("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,V.jsx)(J,{label:g("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,V.jsx)(J,{label:g("buttons.zenMode"),shortcuts:[F("Alt+Z")]}),(0,V.jsx)(J,{label:g("buttons.objectsSnapMode"),shortcuts:[F("Alt+S")]}),(0,V.jsx)(J,{label:g("labels.toggleGrid"),shortcuts:[F("CtrlOrCmd+'")]}),(0,V.jsx)(J,{label:g("labels.viewMode"),shortcuts:[F("Alt+R")]}),(0,V.jsx)(J,{label:g("labels.toggleTheme"),shortcuts:[F("Alt+Shift+D")]}),(0,V.jsx)(J,{label:g("stats.title"),shortcuts:[F("Alt+/")]}),(0,V.jsx)(J,{label:g("commandPalette.title"),shortcuts:Mr?[wt("commandPalette")]:[wt("commandPalette"),wt("commandPalette",1)]})]}),(0,V.jsxs)(eg,{className:"HelpDialog__island--editor",caption:g("helpDialog.editor"),children:[(0,V.jsx)(J,{label:g("labels.moveCanvas"),shortcuts:[F(`Space+${g("helpDialog.drag")}`),F(`Wheel+${g("helpDialog.drag")}`)],isOr:!0}),(0,V.jsx)(J,{label:g("buttons.clearReset"),shortcuts:[F("CtrlOrCmd+Delete")]}),(0,V.jsx)(J,{label:g("labels.delete"),shortcuts:[F("Delete")]}),(0,V.jsx)(J,{label:g("labels.cut"),shortcuts:[F("CtrlOrCmd+X")]}),(0,V.jsx)(J,{label:g("labels.copy"),shortcuts:[F("CtrlOrCmd+C")]}),(0,V.jsx)(J,{label:g("labels.paste"),shortcuts:[F("CtrlOrCmd+V")]}),(0,V.jsx)(J,{label:g("labels.pasteAsPlaintext"),shortcuts:[F("CtrlOrCmd+Shift+V")]}),(0,V.jsx)(J,{label:g("labels.selectAll"),shortcuts:[F("CtrlOrCmd+A")]}),(0,V.jsx)(J,{label:g("labels.multiSelect"),shortcuts:[F(`Shift+${g("helpDialog.click")}`)]}),(0,V.jsx)(J,{label:g("helpDialog.deepSelect"),shortcuts:[F(`CtrlOrCmd+${g("helpDialog.click")}`)]}),(0,V.jsx)(J,{label:g("helpDialog.deepBoxSelect"),shortcuts:[F(`CtrlOrCmd+${g("helpDialog.drag")}`)]}),(qi||Mr)&&(0,V.jsx)(J,{label:g("labels.copyAsPng"),shortcuts:[F("Shift+Alt+C")]}),(0,V.jsx)(J,{label:g("labels.copyStyles"),shortcuts:[F("CtrlOrCmd+Alt+C")]}),(0,V.jsx)(J,{label:g("labels.pasteStyles"),shortcuts:[F("CtrlOrCmd+Alt+V")]}),(0,V.jsx)(J,{label:g("labels.sendToBack"),shortcuts:[Yo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")]}),(0,V.jsx)(J,{label:g("labels.bringToFront"),shortcuts:[Yo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")]}),(0,V.jsx)(J,{label:g("labels.sendBackward"),shortcuts:[F("CtrlOrCmd+[")]}),(0,V.jsx)(J,{label:g("labels.bringForward"),shortcuts:[F("CtrlOrCmd+]")]}),(0,V.jsx)(J,{label:g("labels.alignTop"),shortcuts:[F("CtrlOrCmd+Shift+Up")]}),(0,V.jsx)(J,{label:g("labels.alignBottom"),shortcuts:[F("CtrlOrCmd+Shift+Down")]}),(0,V.jsx)(J,{label:g("labels.alignLeft"),shortcuts:[F("CtrlOrCmd+Shift+Left")]}),(0,V.jsx)(J,{label:g("labels.alignRight"),shortcuts:[F("CtrlOrCmd+Shift+Right")]}),(0,V.jsx)(J,{label:g("labels.duplicateSelection"),shortcuts:[F("CtrlOrCmd+D"),F(`Alt+${g("helpDialog.drag")}`)]}),(0,V.jsx)(J,{label:g("helpDialog.toggleElementLock"),shortcuts:[F("CtrlOrCmd+Shift+L")]}),(0,V.jsx)(J,{label:g("buttons.undo"),shortcuts:[F("CtrlOrCmd+Z")]}),(0,V.jsx)(J,{label:g("buttons.redo"),shortcuts:js?[F("CtrlOrCmd+Y"),F("CtrlOrCmd+Shift+Z")]:[F("CtrlOrCmd+Shift+Z")]}),(0,V.jsx)(J,{label:g("labels.group"),shortcuts:[F("CtrlOrCmd+G")]}),(0,V.jsx)(J,{label:g("labels.ungroup"),shortcuts:[F("CtrlOrCmd+Shift+G")]}),(0,V.jsx)(J,{label:g("labels.flipHorizontal"),shortcuts:[F("Shift+H")]}),(0,V.jsx)(J,{label:g("labels.flipVertical"),shortcuts:[F("Shift+V")]}),(0,V.jsx)(J,{label:g("labels.showStroke"),shortcuts:[F("S")]}),(0,V.jsx)(J,{label:g("labels.showBackground"),shortcuts:[F("G")]}),(0,V.jsx)(J,{label:g("labels.decreaseFontSize"),shortcuts:[F("CtrlOrCmd+Shift+<")]}),(0,V.jsx)(J,{label:g("labels.increaseFontSize"),shortcuts:[F("CtrlOrCmd+Shift+>")]})]})]})]})})};h();var Bn=v(H(),1);var $t=v(k(),1),ak=4,lk=8,sk=({shouldWrap:t,children:e,username:o})=>t?(0,$t.jsx)(xo,{label:o||"Unknown user",children:e}):(0,$t.jsx)(Bn.default.Fragment,{children:e}),tg=({actionManager:t,collaborator:e,socketId:o,withName:r=!1,shouldWrapWithTooltip:n=!1,isBeingFollowed:i})=>{let a={socketId:o,collaborator:e,withName:r,isBeingFollowed:i},l=t.renderAction("goToCollaborator",a);return(0,$t.jsx)(sk,{username:e.username,shouldWrap:n,children:l},o)},ck=["avatarUrl","id","socketId","username","isInCall","isSpeaking","isMuted"],Xm=Bn.default.memo(({className:t,mobile:e,collaborators:o,userToFollow:r})=>{let n=It(),i=new Map;o.forEach((E,T)=>{let C=E.id||T;i.set(C,{...E,socketId:T})});let a=Array.from(i.values()).filter(E=>E.username?.trim()),[l,s]=Bn.default.useState(""),d=Bn.default.useRef(null);(0,Bn.useLayoutEffect)(()=>{if(d.current){let E=C=>{let w=Math.max(1,Math.min(8,Math.floor(C/38)));m(w)};if(E(d.current.clientWidth),!al)return;let T=new ResizeObserver(C=>{for(let w of C){let{width:A}=w.contentRect;E(A)}});return T.observe(d.current),()=>{T.disconnect()}}},[]);let[c,m]=Bn.default.useState(ak),f=l.trim().toLowerCase()?a.filter(E=>E.username?.toLowerCase().includes(l)):a,x=a.slice(0,c-1).map(E=>tg({actionManager:n,collaborator:E,socketId:E.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:E.socketId===r}));return e?(0,$t.jsx)("div",{className:$("UserList UserList_mobile",t),children:a.map(E=>tg({actionManager:n,collaborator:E,socketId:E.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:E.socketId===r}))}):(0,$t.jsx)("div",{className:"UserList-wrapper",ref:d,children:(0,$t.jsxs)("div",{className:$("UserList",t),style:{"--max-avatars":c},children:[x,a.length>c-1&&(0,$t.jsxs)(Yd,{onOpenChange:E=>{E||s("")},children:[(0,$t.jsxs)(Zd,{className:"UserList__more",children:["+",a.length-c+1]}),(0,$t.jsx)(jd,{style:{zIndex:2,width:"15rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,$t.jsxs)(zt,{style:{overflow:"hidden"},children:[a.length>=lk&&(0,$t.jsxs)("div",{className:"UserList__search-wrapper",children:[Ed,(0,$t.jsx)("input",{className:"UserList__search",type:"text",placeholder:g("userList.search.placeholder"),value:l,onChange:E=>{s(E.target.value)}})]}),(0,$t.jsxs)("div",{className:"dropdown-menu UserList__collaborators",children:[f.length===0&&(0,$t.jsx)("div",{className:"UserList__collaborators__empty",children:g("userList.search.empty")}),(0,$t.jsx)("div",{className:"UserList__hint",children:g("userList.hint.text")}),f.map(E=>tg({actionManager:n,collaborator:E,socketId:E.socketId,withName:!0,isBeingFollowed:E.socketId===r}))]})]})})]})]})})},(t,e)=>{if(t.collaborators.size!==e.collaborators.size||t.mobile!==e.mobile||t.className!==e.className||t.userToFollow!==e.userToFollow)return!1;let o=e.collaborators.keys();for(let[r,n]of t.collaborators){let i=e.collaborators.get(r);if(!i||r!==o.next().value||!kt(n,i,ck))return!1}return!0});h();var C3=v(H(),1);h();var w3=v(k(),1),og=({children:t,color:e})=>(0,w3.jsx)("div",{className:"Card",style:{"--card-color":e==="primary"?"var(--color-primary)":Mt[e][7],"--card-color-darker":e==="primary"?"var(--color-primary-darker)":Mt[e][8],"--card-color-darkest":e==="primary"?"var(--color-primary-darkest)":Mt[e][9]},children:t});var At=v(k(),1),dk=({elements:t,appState:e,setAppState:o,files:r,actionManager:n,exportOpts:i,canvas:a,onCloseRequest:l})=>{let{onExportToBackend:s}=i;return(0,At.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,At.jsxs)("div",{className:"ExportDialog-cards",children:[i.saveFileToDisk&&(0,At.jsxs)(og,{color:"lime",children:[(0,At.jsx)("div",{className:"Card-icon",children:Px}),(0,At.jsx)("h2",{children:g("exportDialog.disk_title")}),(0,At.jsxs)("div",{className:"Card-details",children:[g("exportDialog.disk_details"),!ji&&n.renderAction("changeProjectName")]}),(0,At.jsx)(ce,{className:"Card-button",type:"button",title:g("exportDialog.disk_button"),"aria-label":g("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{n.executeAction(ss,"ui")}})]}),s&&(0,At.jsxs)(og,{color:"pink",children:[(0,At.jsx)("div",{className:"Card-icon",children:Wl}),(0,At.jsx)("h2",{children:g("exportDialog.link_title")}),(0,At.jsx)("div",{className:"Card-details",children:g("exportDialog.link_details")}),(0,At.jsx)(ce,{className:"Card-button",type:"button",title:g("exportDialog.link_button"),"aria-label":g("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{xe("export","link",`ui (${Y1()})`),await s(t,e,r),l()}catch(d){o({errorMessage:d.message})}}})]}),i.renderCustomUI&&i.renderCustomUI(t,e,r,a)]})})},S3=({elements:t,appState:e,files:o,actionManager:r,exportOpts:n,canvas:i,setAppState:a})=>{let l=C3.default.useCallback(()=>{a({openDialog:null})},[a]);return(0,At.jsx)(At.Fragment,{children:e.openDialog?.name==="jsonExport"&&(0,At.jsx)(et,{onCloseRequest:l,title:g("buttons.export"),children:(0,At.jsx)(dk,{elements:t,appState:e,setAppState:a,files:o,actionManager:r,onCloseRequest:l,exportOpts:n,canvas:i})})})};h();h();var k3=v(k(),1),T3=t=>(0,k3.jsx)("button",{className:"help-icon",onClick:t.onClick,type:"button",title:`${g("helpDialog.title")} \u2014 ?`,"aria-label":g("helpDialog.title"),children:sa});var ao=v(k(),1),I3=({appState:t,actionManager:e,showExitZenModeBtn:o,renderWelcomeScreen:r})=>{let{FooterCenterTunnel:n,WelcomeScreenHelpHintTunnel:i}=Ve(),a=Me(),l=!t.viewModeEnabled&&t.multiElement&&a.isTouchScreen;return(0,ao.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,ao.jsx)("div",{className:$("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled}),children:(0,ao.jsx)(Pt.Col,{gap:2,children:(0,ao.jsxs)(Nn,{heading:"canvasActions",children:[(0,ao.jsx)(Zw,{renderAction:e.renderAction,zoom:t.zoom}),!t.viewModeEnabled&&(0,ao.jsx)(jw,{renderAction:e.renderAction,className:$("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":t.zenModeEnabled})}),l&&(0,ao.jsx)(qw,{renderAction:e.renderAction,className:$("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled})})]})})}),(0,ao.jsx)(n.Out,{}),(0,ao.jsx)("div",{className:$("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":t.zenModeEnabled}),children:(0,ao.jsxs)("div",{style:{position:"relative"},children:[r&&(0,ao.jsx)(i.Out,{}),(0,ao.jsx)(T3,{onClick:()=>e.executeAction(gi)})]})}),(0,ao.jsx)(Xw,{actionManager:e,showExitZenModeBtn:o})]})},A3=I3;I3.displayName="Footer";h();var Ct=v(H(),1);h();var M3=v(H(),1),qm=M3.default.createContext({});h();var _3=v(H(),1);var Ai=v(k(),1),rg=({children:t,className:e})=>{let o=Me(),r=(0,_3.useContext)(qm),n=!!(o.editor.canFitSidebar&&r.shouldRenderDockButton);return(0,Ai.jsxs)("div",{className:$("sidebar__header",e),"data-testid":"sidebar-header",children:[t,(0,Ai.jsxs)("div",{className:"sidebar__header__buttons",children:[n&&(0,Ai.jsx)(xo,{label:g("labels.sidebarLock"),children:(0,Ai.jsx)(Cr,{onSelect:()=>r.onDock?.(!r.docked),selected:!!r.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":g("labels.sidebarLock"),children:cx})}),(0,Ai.jsx)(Cr,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:r.onCloseRequest,"aria-label":g("buttons.close"),children:Ro})]})]})};rg.displayName="SidebarHeader";h();var Mi=v(k(),1),ng=({name:t,tab:e,icon:o,title:r,children:n,onToggle:i,className:a,style:l})=>{let s=Le(),d=_e();return(0,Mi.jsxs)("label",{title:r,className:"sidebar-trigger__label-element",children:[(0,Mi.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:c=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let m=c.target.checked;s({openSidebar:m?{name:t,tab:e}:null}),i?.(m)},checked:d.openSidebar?.name===t,"aria-label":r,"aria-keyshortcuts":"0"}),(0,Mi.jsxs)("div",{className:$("sidebar-trigger",a),style:l,children:[o&&(0,Mi.jsx)("div",{children:o}),n&&(0,Mi.jsx)("div",{className:"sidebar-trigger__label",children:n})]})]})};ng.displayName="SidebarTrigger";h();h();var Rt=v(H());h();var Ke=v(H());h();var ar=v(H());function L3(t){let e=t+"CollectionProvider",[o,r]=Er(e),[n,i]=o(e,{collectionRef:{current:null},itemMap:new Map}),a=f=>{let{scope:b,children:x}=f,E=ar.default.useRef(null),T=ar.default.useRef(new Map).current;return ar.default.createElement(n,{scope:b,itemMap:T,collectionRef:E},x)},l=t+"CollectionSlot",s=ar.default.forwardRef((f,b)=>{let{scope:x,children:E}=f,T=i(l,x),C=Ft(b,T.collectionRef);return ar.default.createElement(yn,{ref:C},E)}),d=t+"CollectionItemSlot",c="data-radix-collection-item",m=ar.default.forwardRef((f,b)=>{let{scope:x,children:E,...T}=f,C=ar.default.useRef(null),w=Ft(b,C),A=i(d,x);return ar.default.useEffect(()=>(A.itemMap.set(C,{ref:C,...T}),()=>void A.itemMap.delete(C))),ar.default.createElement(yn,{[c]:"",ref:w},E)});function u(f){let b=i(t+"CollectionConsumer",f);return ar.default.useCallback(()=>{let E=b.collectionRef.current;if(!E)return[];let T=Array.from(E.querySelectorAll(`[${c}]`));return Array.from(b.itemMap.values()).sort((A,z)=>T.indexOf(A.ref.current)-T.indexOf(z.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:s,ItemSlot:m},u,r]}h();var Ts=v(H()),mk=(0,Ts.createContext)(void 0);function Jm(t){let e=(0,Ts.useContext)(mk);return t||e||"ltr"}var ig="rovingFocusGroup.onEntryFocus",pk={bubbles:!1,cancelable:!0},lg="RovingFocusGroup",[ag,P3,uk]=L3(lg),[fk,sg]=Er(lg,[uk]),[hk,gk]=fk(lg),bk=(0,Ke.forwardRef)((t,e)=>(0,Ke.createElement)(ag.Provider,{scope:t.__scopeRovingFocusGroup},(0,Ke.createElement)(ag.Slot,{scope:t.__scopeRovingFocusGroup},(0,Ke.createElement)(xk,Ce({},t,{ref:e}))))),xk=(0,Ke.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,orientation:r,loop:n=!1,dir:i,currentTabStopId:a,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:s,onEntryFocus:d,...c}=t,m=(0,Ke.useRef)(null),u=Ft(e,m),f=Jm(i),[b=null,x]=Sa({prop:a,defaultProp:l,onChange:s}),[E,T]=(0,Ke.useState)(!1),C=oo(d),w=P3(o),A=(0,Ke.useRef)(!1),[z,I]=(0,Ke.useState)(0);return(0,Ke.useEffect)(()=>{let M=m.current;if(M)return M.addEventListener(ig,C),()=>M.removeEventListener(ig,C)},[C]),(0,Ke.createElement)(hk,{scope:o,orientation:r,dir:f,loop:n,currentTabStopId:b,onItemFocus:(0,Ke.useCallback)(M=>x(M),[x]),onItemShiftTab:(0,Ke.useCallback)(()=>T(!0),[]),onFocusableItemAdd:(0,Ke.useCallback)(()=>I(M=>M+1),[]),onFocusableItemRemove:(0,Ke.useCallback)(()=>I(M=>M-1),[])},(0,Ke.createElement)(dt.div,Ce({tabIndex:E||z===0?-1:0,"data-orientation":r},c,{ref:u,style:{outline:"none",...t.style},onMouseDown:Et(t.onMouseDown,()=>{A.current=!0}),onFocus:Et(t.onFocus,M=>{let _=!A.current;if(M.target===M.currentTarget&&_&&!E){let U=new CustomEvent(ig,pk);if(M.currentTarget.dispatchEvent(U),!U.defaultPrevented){let D=w().filter(oe=>oe.focusable),G=D.find(oe=>oe.active),O=D.find(oe=>oe.id===b),te=[G,O,...D].filter(Boolean).map(oe=>oe.ref.current);R3(te)}}A.current=!1}),onBlur:Et(t.onBlur,()=>T(!1))})))}),vk="RovingFocusGroupItem",Ek=(0,Ke.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,focusable:r=!0,active:n=!1,tabStopId:i,...a}=t,l=Ea(),s=i||l,d=gk(vk,o),c=d.currentTabStopId===s,m=P3(o),{onFocusableItemAdd:u,onFocusableItemRemove:f}=d;return(0,Ke.useEffect)(()=>{if(r)return u(),()=>f()},[r,u,f]),(0,Ke.createElement)(ag.ItemSlot,{scope:o,id:s,focusable:r,active:n},(0,Ke.createElement)(dt.span,Ce({tabIndex:c?0:-1,"data-orientation":d.orientation},a,{ref:e,onMouseDown:Et(t.onMouseDown,b=>{r?d.onItemFocus(s):b.preventDefault()}),onFocus:Et(t.onFocus,()=>d.onItemFocus(s)),onKeyDown:Et(t.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){d.onItemShiftTab();return}if(b.target!==b.currentTarget)return;let x=Ck(b,d.orientation,d.dir);if(x!==void 0){b.preventDefault();let T=m().filter(C=>C.focusable).map(C=>C.ref.current);if(x==="last")T.reverse();else if(x==="prev"||x==="next"){x==="prev"&&T.reverse();let C=T.indexOf(b.currentTarget);T=d.loop?Sk(T,C+1):T.slice(C+1)}setTimeout(()=>R3(T))}})})))}),yk={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function wk(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function Ck(t,e,o){let r=wk(t.key,o);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return yk[r]}function R3(t){let e=document.activeElement;for(let o of t)if(o===e||(o.focus(),document.activeElement!==e))return}function Sk(t,e){return t.map((o,r)=>t[(e+r)%t.length])}var D3=bk,N3=Ek;var O3="Tabs",[Tk,sQ]=Er(O3,[sg]),F3=sg(),[kk,cg]=Tk(O3),Ik=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,onValueChange:n,defaultValue:i,orientation:a="horizontal",dir:l,activationMode:s="automatic",...d}=t,c=Jm(l),[m,u]=Sa({prop:r,onChange:n,defaultProp:i});return(0,Rt.createElement)(kk,{scope:o,baseId:Ea(),value:m,onValueChange:u,orientation:a,dir:c,activationMode:s},(0,Rt.createElement)(dt.div,Ce({dir:c,"data-orientation":a},d,{ref:e})))}),Ak="TabsList",Mk=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,loop:r=!0,...n}=t,i=cg(Ak,o),a=F3(o);return(0,Rt.createElement)(D3,Ce({asChild:!0},a,{orientation:i.orientation,dir:i.dir,loop:r}),(0,Rt.createElement)(dt.div,Ce({role:"tablist","aria-orientation":i.orientation},n,{ref:e})))}),_k="TabsTrigger",Lk=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,disabled:n=!1,...i}=t,a=cg(_k,o),l=F3(o),s=B3(a.baseId,r),d=z3(a.baseId,r),c=r===a.value;return(0,Rt.createElement)(N3,Ce({asChild:!0},l,{focusable:!n,active:c}),(0,Rt.createElement)(dt.button,Ce({type:"button",role:"tab","aria-selected":c,"aria-controls":d,"data-state":c?"active":"inactive","data-disabled":n?"":void 0,disabled:n,id:s},i,{ref:e,onMouseDown:Et(t.onMouseDown,m=>{!n&&m.button===0&&m.ctrlKey===!1?a.onValueChange(r):m.preventDefault()}),onKeyDown:Et(t.onKeyDown,m=>{[" ","Enter"].includes(m.key)&&a.onValueChange(r)}),onFocus:Et(t.onFocus,()=>{let m=a.activationMode!=="manual";!c&&!n&&m&&a.onValueChange(r)})})))}),Pk="TabsContent",Rk=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,forceMount:n,children:i,...a}=t,l=cg(Pk,o),s=B3(l.baseId,r),d=z3(l.baseId,r),c=r===l.value,m=(0,Rt.useRef)(c);return(0,Rt.useEffect)(()=>{let u=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(u)},[]),(0,Rt.createElement)(Ca,{present:n||c},({present:u})=>(0,Rt.createElement)(dt.div,Ce({"data-state":c?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":s,hidden:!u,id:d,tabIndex:0},a,{ref:e,style:{...t.style,animationDuration:m.current?"0s":void 0}}),u&&i))});function B3(t,e){return`${t}-trigger-${e}`}function z3(t,e){return`${t}-content-${e}`}var Qm=Ik,ep=Mk,tp=Lk,op=Rk;var $3=v(k(),1),dg=({children:t,...e})=>(0,$3.jsx)(ep,{className:"sidebar-triggers",...e,children:t});dg.displayName="SidebarTabTriggers";h();var mg=v(k(),1),pg=({children:t,tab:e,onSelect:o,...r})=>(0,mg.jsx)(tp,{value:e,asChild:!0,onSelect:o,children:(0,mg.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...r,children:t})});pg.displayName="SidebarTabTrigger";h();var H3=v(k(),1),ug=({children:t,...e})=>{let o=_e(),r=Le();if(!o.openSidebar)return null;let{name:n}=o.openSidebar;return(0,H3.jsx)(Qm,{className:"sidebar-tabs-root",value:o.openSidebar.tab,onValueChange:i=>r(a=>({...a,openSidebar:{...a.openSidebar,name:n,tab:i}})),...e,children:t})};ug.displayName="SidebarTabs";h();var U3=v(k(),1),fg=({tab:t,children:e,...o})=>(0,U3.jsx)(op,{...o,value:t,"data-testid":t,children:e});fg.displayName="SidebarTab";var hg=v(k(),1),G3=v(H(),1),ks=We(!1),W3=(0,Ct.forwardRef)(({name:t,children:e,onDock:o,docked:r,className:n,...i},a)=>{y.DEV&&o&&r==null&&console.warn("Sidebar: `docked` must be set when `onDock` is supplied for the sidebar to be user-dockable. To hide this message, either pass `docked` or remove `onDock`");let l=Le(),s=Wr(ks,De);(0,Ct.useLayoutEffect)(()=>(s(!!r),()=>{s(!1)}),[s,r]);let d=(0,Ct.useRef)({});d.current.onCloseRequest=()=>{l({openSidebar:null})},d.current.onDock=f=>o?.(f),d.current=Fi(d.current,{docked:r,shouldRenderDockButton:!!o&&r!=null});let c=(0,Ct.useRef)(null);(0,Ct.useImperativeHandle)(a,()=>c.current);let m=Me(),u=(0,Ct.useCallback)(()=>{document.querySelector(".Dialog")||l({openSidebar:null})},[l]);return _a(c,(0,Ct.useCallback)(f=>{f.target.closest(".sidebar-trigger")||(!r||!m.editor.canFitSidebar)&&u()},[u,r,m.editor.canFitSidebar])),(0,Ct.useEffect)(()=>{let f=b=>{b.key===S.ESCAPE&&(!r||!m.editor.canFitSidebar)&&u()};return document.addEventListener("keydown",f),()=>{document.removeEventListener("keydown",f)}},[u,r,m.editor.canFitSidebar]),(0,hg.jsx)(zt,{...i,className:$("sidebar",{"sidebar--docked":r},n),ref:c,children:(0,hg.jsx)(qm.Provider,{value:d.current,children:e})})});W3.displayName="SidebarInner";var Qr=Object.assign((0,Ct.forwardRef)((t,e)=>{let o=_e(),{onStateChange:r}=t,n=(0,Ct.useRef)(o.openSidebar);(0,Ct.useEffect)(()=>{(!o.openSidebar&&n?.current?.name===t.name||o.openSidebar?.name===t.name&&n?.current?.name!==t.name||n.current?.name===t.name)&&o.openSidebar!==n.current&&r?.(o.openSidebar?.name!==t.name?null:o.openSidebar),n.current=o.openSidebar},[o.openSidebar,r,t.name]);let[i,a]=(0,Ct.useState)(!1);return(0,Ct.useLayoutEffect)(()=>(a(!0),()=>a(!1)),[]),i&&o.openSidebar?.name===t.name?(0,G3.createElement)(W3,{...t,ref:e,key:t.name}):null}),{Header:rg,TabTriggers:dg,TabTrigger:pg,Tabs:ug,Tab:fg,Trigger:ng});Qr.displayName="Sidebar";h();var bg={};o1(bg,{ChangeCanvasBackground:()=>t5,ClearCanvas:()=>Q3,CommandPalette:()=>q3,Export:()=>o5,Help:()=>J3,LiveCollaborationTrigger:()=>n5,LoadScene:()=>Z3,SaveAsImage:()=>X3,SaveToActiveFile:()=>j3,Socials:()=>r5,ToggleTheme:()=>e5});h();h();var gg=We({active:!1});async function V3({title:t,description:e,actionLabel:o,color:r}){return new Promise(n=>{Gt.set(gg,{active:!0,onConfirm:()=>n(!0),onClose:()=>n(!1),onReject:()=>n(!1),title:t,description:e,actionLabel:o,color:r})})}h();var en=v(k(),1),K3=({value:t,shortcut:e,onChange:o,choices:r,children:n,name:i})=>{let a=Me();return(0,en.jsxs)(en.Fragment,{children:[(0,en.jsxs)("div",{className:"dropdown-menu-item-base dropdown-menu-item-bare",children:[(0,en.jsx)("label",{className:"dropdown-menu-item__text",htmlFor:i,children:n}),(0,en.jsx)(Um,{name:i,value:t,onChange:o,choices:r})]}),e&&!a.editor.isMobile&&(0,en.jsx)("div",{className:"dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned",children:e})]})};K3.displayName="DropdownMenuItemContentRadio";var Y3=K3;var tt=v(k(),1),Z3=()=>{let{t}=vt(),e=It(),o=kn();return e.isActionEnabled(Da)?(0,tt.jsx)(Bo,{icon:ca,onSelect:async()=>{(!o.length||await V3({title:t("overwriteConfirm.modal.loadFromFile.title"),actionLabel:t("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,tt.jsx)(no,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:n=>(0,tt.jsx)("strong",{children:n}),br:()=>(0,tt.jsx)("br",{})})}))&&e.executeAction(Da)},"data-testid":"load-button",shortcut:wt("loadScene"),"aria-label":t("buttons.load"),children:t("buttons.load")}):null};Z3.displayName="LoadScene";var j3=()=>{let{t}=vt(),e=It();return e.isActionEnabled(om)?(0,tt.jsx)(Bo,{shortcut:wt("saveScene"),"data-testid":"save-button",onSelect:()=>e.executeAction(om),icon:Mx,"aria-label":`${t("buttons.save")}`,children:`${t("buttons.save")}`}):null};j3.displayName="SaveToActiveFile";var X3=()=>{let t=Le(),{t:e}=vt();return(0,tt.jsx)(Bo,{icon:ud,"data-testid":"image-export-button",onSelect:()=>t({openDialog:{name:"imageExport"}}),shortcut:wt("imageExport"),"aria-label":e("buttons.exportImage"),children:e("buttons.exportImage")})};X3.displayName="SaveAsImage";var q3=t=>{let e=Le(),{t:o}=vt();return(0,tt.jsx)(Bo,{icon:yd,"data-testid":"command-palette-button",onSelect:()=>{xe("command_palette","open","menu"),e({openDialog:{name:"commandPalette"}})},shortcut:wt("commandPalette"),"aria-label":o("commandPalette.title"),className:t?.className,children:o("commandPalette.title")})};q3.displayName="CommandPalette";var J3=()=>{let{t}=vt(),e=It();return(0,tt.jsx)(Bo,{"data-testid":"help-menu-item",icon:sa,onSelect:()=>e.executeAction(gi),shortcut:"?","aria-label":t("helpDialog.title"),children:t("helpDialog.title")})};J3.displayName="Help";var Q3=()=>{let{t}=vt(),e=Wr(Ti,De);return It().isActionEnabled(jr)?(0,tt.jsx)(Bo,{icon:er,onSelect:()=>e("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":t("buttons.clearReset"),children:t("buttons.clearReset")}):null};Q3.displayName="ClearCanvas";var e5=t=>{let{t:e}=vt(),o=_e(),r=It(),n=wt("toggleTheme");return r.isActionEnabled(mi)?t?.allowSystemTheme?(0,tt.jsx)(Y3,{name:"theme",value:t.theme,onChange:i=>t.onSelect(i),choices:[{value:be.LIGHT,label:Ul,ariaLabel:`${e("buttons.lightMode")} - ${n}`},{value:be.DARK,label:Hl,ariaLabel:`${e("buttons.darkMode")} - ${n}`},{value:"system",label:Bv,ariaLabel:e("buttons.systemMode")}],children:e("labels.theme")}):(0,tt.jsx)(Bo,{onSelect:i=>{if(i.preventDefault(),t?.onSelect)t.onSelect(o.theme===be.DARK?be.LIGHT:be.DARK);else return r.executeAction(mi)},icon:o.theme===be.DARK?Ul:Hl,"data-testid":"toggle-dark-mode",shortcut:n,"aria-label":o.theme===be.DARK?e("buttons.lightMode"):e("buttons.darkMode"),children:o.theme===be.DARK?e("buttons.lightMode"):e("buttons.darkMode")}):null};e5.displayName="ToggleTheme";var t5=()=>{let{t}=vt(),e=_e(),o=It(),r=_n();return e.viewModeEnabled||!r.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,tt.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,tt.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:t("labels.canvasBackground")}),(0,tt.jsx)("div",{style:{padding:"0 0.625rem"},children:o.renderAction("changeViewBackgroundColor")})]})};t5.displayName="ChangeCanvasBackground";var o5=()=>{let{t}=vt(),e=Le();return(0,tt.jsx)(Bo,{icon:ni,onSelect:()=>{e({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":t("buttons.export"),children:t("buttons.export")})};o5.displayName="Export";var r5=()=>{let{t}=vt();return(0,tt.jsxs)(tt.Fragment,{children:[(0,tt.jsx)(Ga,{icon:md,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,tt.jsx)(Ga,{icon:Ix,href:"https://x.com/excalidraw","aria-label":"X",children:t("labels.followUs")}),(0,tt.jsx)(Ga,{icon:kx,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:t("labels.discordChat")})]})};r5.displayName="Socials";var n5=({onSelect:t,isCollaborating:e})=>{let{t:o}=vt();return(0,tt.jsx)(Bo,{"data-testid":"collab-button",icon:fd,className:$({"active-collab":e}),onSelect:t,children:o("labels.liveCollaboration")})};n5.displayName="LiveCollaborationTrigger";h();var rp=v(H(),1);var i5=v(k(),1),tn=(t,e)=>{let o=We(0),r=n=>{let{jotaiScope:i}=Ve(),[,a]=Se(o,i),l=(0,rp.useRef)({preferHost:!1,counter:0});return(0,rp.useLayoutEffect)(()=>{let s=l.current;return a(d=>{let c=d+1;return s.counter=c,c}),()=>{a(d=>{let c=d-1;return s.counter=c,c||(s.preferHost=!1),c})}},[a]),n.__fallback||(l.current.preferHost=!0),!l.current.counter&&n.__fallback&&l.current.preferHost||l.current.counter>1&&n.__fallback?null:(0,i5.jsx)(e,{...n})};return r.displayName=t,r};var on=v(k(),1),Dk=Object.assign(tn("MainMenu",({children:t,onSelect:e})=>{let{MainMenuTunnel:o}=Ve(),r=Me(),n=_e(),i=Le(),a=r.editor.isMobile?void 0:()=>i({openMenu:null});return(0,on.jsx)(o.In,{children:(0,on.jsxs)(Re,{open:n.openMenu==="canvas",children:[(0,on.jsx)(Re.Trigger,{onToggle:()=>{i({openMenu:n.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:dd}),(0,on.jsxs)(Re.Content,{onClickOutside:a,onSelect:cn(e,()=>{i({openMenu:null})}),children:[t,r.editor.isMobile&&n.collaborators.size>0&&(0,on.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,on.jsx)("legend",{children:g("labels.collaborators")}),(0,on.jsx)(Xm,{mobile:!0,collaborators:n.collaborators,userToFollow:n.userToFollow?.socketId||null})]})]})]})})}),{Trigger:Re.Trigger,Item:Re.Item,ItemLink:Re.ItemLink,ItemCustom:Re.ItemCustom,Group:Re.Group,Separator:Re.Separator,DefaultItems:bg}),lo=Dk;h();h();var rn=v(k(),1),np=({title:t,children:e,actionLabel:o,onClick:r})=>(0,rn.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,rn.jsx)("h4",{children:t}),(0,rn.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:e}),(0,rn.jsx)(Tr,{variant:"outlined",color:"muted",label:o,size:"large",fullWidth:!0,onClick:r})]}),Nk=()=>{let{t}=vt(),e=It(),o=Le();return(0,rn.jsx)(np,{title:t("overwriteConfirm.action.exportToImage.title"),actionLabel:t("overwriteConfirm.action.exportToImage.button"),onClick:()=>{e.executeAction(tm,"ui",!0),o({openDialog:{name:"imageExport"}})},children:t("overwriteConfirm.action.exportToImage.description")})},Ok=()=>{let{t}=vt(),e=It();return(0,rn.jsx)(np,{title:t("overwriteConfirm.action.saveToDisk.title"),actionLabel:t("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{e.executeAction(ss,"ui")},children:t("overwriteConfirm.action.saveToDisk.description")})},xg=Object.assign(({children:t})=>(0,rn.jsx)("div",{className:"OverwriteConfirm__Actions",children:t}),{ExportToImage:Nk,SaveToDisk:Ok});var Ho=v(k(),1),ip=Object.assign(tn("OverwriteConfirmDialog",({children:t})=>{let{OverwriteConfirmDialogTunnel:e}=Ve(),[o,r]=Se(gg,De);if(!o.active)return null;let n=()=>{o.onClose(),r(a=>({...a,active:!1}))},i=()=>{o.onConfirm(),r(a=>({...a,active:!1}))};return(0,Ho.jsx)(e.In,{children:(0,Ho.jsx)(et,{onCloseRequest:n,title:!1,size:916,children:(0,Ho.jsxs)("div",{className:"OverwriteConfirm",children:[(0,Ho.jsx)("h3",{children:o.title}),(0,Ho.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${o.color}`,children:[(0,Ho.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:Ev}),(0,Ho.jsx)("div",{children:o.description}),(0,Ho.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,Ho.jsx)(Tr,{color:o.color,size:"large",label:o.actionLabel,onClick:i})]}),(0,Ho.jsx)(xg,{children:t})]})})})}),{Actions:xg,Action:np});h();var Uo=v(k(),1),s5=v(H(),1),a5=tn("DefaultSidebarTrigger",t=>{let{DefaultSidebarTriggerTunnel:e}=Ve();return(0,Uo.jsx)(e.In,{children:(0,Uo.jsx)(Qr.Trigger,{...t,className:"default-sidebar-trigger",name:jo.name})})});a5.displayName="DefaultSidebarTrigger";var l5=({children:t,...e})=>{let{DefaultSidebarTabTriggersTunnel:o}=Ve();return(0,Uo.jsx)(o.In,{children:(0,Uo.jsx)(Qr.TabTriggers,{...e,children:t})})};l5.displayName="DefaultTabTriggers";var ap=Object.assign(tn("DefaultSidebar",({children:t,className:e,onDock:o,docked:r,...n})=>{let i=_e(),a=Le(),{DefaultSidebarTabTriggersTunnel:l}=Ve();return(0,s5.createElement)(Qr,{...n,name:"default",key:"default",className:$("default-sidebar",e),docked:r??i.defaultSidebarDockedPreference,onDock:o===!1||!o&&r!=null?void 0:cn(o,s=>{a({defaultSidebarDockedPreference:s})})},(0,Uo.jsxs)(Qr.Tabs,{children:[(0,Uo.jsxs)(Qr.Header,{children:[n.__fallback&&(0,Uo.jsx)("div",{style:{color:"var(--color-primary)",fontSize:"1.2em",fontWeight:"bold",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",paddingRight:"1em"},children:g("toolBar.library")}),(0,Uo.jsx)(l.Out,{})]}),(0,Uo.jsx)(Qr.Tab,{tab:ic,children:(0,Uo.jsx)(yw,{})}),t]}))}),{Trigger:a5,TabTriggers:l5});h();var Is=v(k(),1),Fk="small",c5=t=>(0,Is.jsxs)("label",{className:$("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${Fk}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Is.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title,"data-testid":"toolbar-LaserPointer"}),(0,Is.jsx)("div",{className:"ToolIcon__icon",children:vd})]});h();var Eg=v(H(),1);h();var d5=v(k(),1),Xa=t=>(0,d5.jsx)("p",{className:"excalidraw__paragraph",style:t.style,children:t.children});h();var vg=v(H(),1);var p5=v(k(),1),m5=t=>{let e=Le(),o=(0,vg.useRef)(null),r=(0,vg.useRef)(0);return(0,p5.jsx)(Qm,{ref:o,className:"ttd-dialog-tabs-root",value:t.tab,onValueChange:n=>{if(!n)return;let i=o.current?.closest(".Modal__content");if(i){let a=i.offsetHeight||0;a>r.current&&(r.current=a,i.style.minHeight=`min(${r.current}px, 100%)`)}t.dialog==="settings"&&jp(["text-to-diagram","diagram-to-code"],n)?e({openDialog:{name:t.dialog,tab:n,source:"settings"}}):t.dialog==="ttd"&&jp(["text-to-diagram","mermaid"],n)&&e({openDialog:{name:t.dialog,tab:n}})},children:t.children})};m5.displayName="TTDDialogTabs";var lp=m5;h();var u5=v(k(),1),qa=({tab:t,children:e,...o})=>(0,u5.jsx)(op,{...o,value:t,children:e});qa.displayName="TTDDialogTab";var bt=v(k(),1),f5=t=>{let[e,o]=(0,Eg.useState)(t.openAIKey||""),[r,n]=(0,Eg.useState)(t.isPersisted),i=_e(),a=()=>{t.onConfirm(e.trim(),r)};return i.openDialog?.name!=="settings"?null:(0,bt.jsx)(et,{onCloseRequest:()=>{t.onClose(),t.onConfirm(e.trim(),r)},title:(0,bt.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,bt.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"0.1rem 0.5rem",marginLeft:"1rem",fontSize:14,borderRadius:"12px",color:"#000",background:"pink"},children:"Experimental"})]}),className:"MagicSettings",autofocus:!1,children:(0,bt.jsx)(lp,{dialog:"settings",tab:i.openDialog.tab,children:(0,bt.jsxs)(qa,{tab:"diagram-to-code",children:[(0,bt.jsxs)(Xa,{children:["For the diagram-to-code feature we use"," ",(0,bt.jsx)(Dn,{icon:Gl}),"OpenAI."]}),(0,bt.jsxs)(Xa,{children:["While the OpenAI API is in beta, its use is strictly limited \u2014 as such we require you use your own API key. You can create an"," ",(0,bt.jsx)("a",{href:"https://platform.openai.com/login?launch",rel:"noopener noreferrer",target:"_blank",children:"OpenAI account"}),", add a small credit (5 USD minimum), and"," ",(0,bt.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,bt.jsx)(Xa,{children:"Your OpenAI key does not leave the browser, and you can also set your own limit in your OpenAI account dashboard if needed."}),(0,bt.jsx)(Pm,{isRedacted:!0,value:e,placeholder:"Paste your API key here",label:"OpenAI API key",onChange:l=>{o(l),t.onChange(l.trim(),r)},selectOnRender:!0,onKeyDown:l=>l.key===S.ENTER&&a()}),(0,bt.jsx)(Xa,{children:"By default, your API token is not persisted anywhere so you'll need to insert it again after reload. But, you can persist locally in your browser below."}),(0,bt.jsx)(hi,{checked:r,onChange:n,children:"Persist API key in browser storage"}),(0,bt.jsxs)(Xa,{children:["Once API key is set, you can use the ",(0,bt.jsx)(Dn,{icon:ma})," ","tool to wrap your elements in a frame that will then allow you to turn it into code. This dialog can be accessed using the"," ",(0,bt.jsx)("b",{children:"AI Settings"})," ",(0,bt.jsx)(Dn,{icon:Gl}),"."]}),(0,bt.jsx)(Tr,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:a})]})})})};h();h();var lr=v(H(),1);h();var Bk=({canvasRef:t,setError:e})=>{let o=t.current;if(!o)return;let r=o.parentElement;r&&(r.style.background="",e(null),o.replaceChildren())},sp=async({canvasRef:t,mermaidToExcalidrawLib:e,mermaidDefinition:o,setError:r,data:n})=>{let i=t.current,a=i?.parentElement;if(!(!i||!a)){if(!o){Bk({canvasRef:t,setError:r});return}try{let l=await e.api,s;try{s=await l.parseMermaidToExcalidraw(o,{fontSize:_r})}catch{s=await l.parseMermaidToExcalidraw(o.replace(/"/g,"'"),{fontSize:_r})}let{elements:d,files:c}=s;r(null),n.current={elements:Ms(d,{regenerateIds:!0}),files:c};let m=await ei({elements:n.current.elements,files:n.current.files,exportPadding:ln,maxWidthOrHeight:Math.max(a.offsetWidth,a.offsetHeight)*window.devicePixelRatio});try{await $r(m)}catch(u){throw u.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):u}a.style.background="var(--default-bg-color)",i.replaceChildren(m)}catch(l){throw a.style.background="var(--default-bg-color)",o&&r(l),l}}},As=t=>{fo.set(So.MERMAID_TO_EXCALIDRAW,t)},cp=({app:t,data:e,text:o,shouldSaveMermaidDataToStorage:r})=>{let{elements:n,files:i}=e.current;n.length&&(t.addElementsFromPasteOrLibrary({elements:n,files:i,position:"center",fitToContent:!0}),t.setOpenDialog(null),r&&o&&As(o))};h();var h5=v(k(),1),dp=({children:t})=>(0,h5.jsx)("div",{className:"ttd-dialog-panels",children:t});h();var Ir=v(k(),1),Ja=({label:t,children:e,panelAction:o,panelActionDisabled:r=!1,onTextSubmitInProgess:n,renderTopRight:i,renderSubmitShortcut:a,renderBottomRight:l})=>(0,Ir.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,Ir.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,Ir.jsx)("label",{children:t}),i?.()]}),e,(0,Ir.jsxs)("div",{className:$("ttd-dialog-panel-button-container",{invisible:!o}),style:{display:"flex",alignItems:"center"},children:[(0,Ir.jsxs)(Cr,{className:"ttd-dialog-panel-button",onSelect:o?o.action:()=>{},disabled:r||n,children:[(0,Ir.jsxs)("div",{className:$({invisible:n}),children:[o?.label,o?.icon&&(0,Ir.jsx)("span",{children:o.icon})]}),n&&(0,Ir.jsx)(Ot,{})]}),!r&&!n&&a?.(),l?.()]})]});h();var _s=v(H(),1);var g5=v(k(),1),mp=({input:t,placeholder:e,onChange:o,onKeyboardSubmit:r})=>{let n=(0,_s.useRef)(null),i=(0,_s.useRef)(r);return i.current=r,(0,_s.useEffect)(()=>{if(!i.current)return;let a=n.current;if(a){let l=s=>{s[S.CTRL_OR_CMD]&&s.key===S.ENTER&&(s.preventDefault(),i.current?.())};return a.addEventListener("keydown",l),()=>{a.removeEventListener("keydown",l)}}},[]),(0,g5.jsx)("textarea",{className:"ttd-dialog-input",onChange:o,value:t,placeholder:e,autoFocus:!0,ref:n})};h();var $n=v(k(),1),zk=({error:t})=>(0,$n.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,$n.jsx)("p",{children:t})]}),pp=({error:t,canvasRef:e,loaded:o})=>(0,$n.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[t&&(0,$n.jsx)(zk,{error:t.message}),o?(0,$n.jsx)("div",{ref:e,style:{opacity:t?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,$n.jsx)(Ot,{size:"2rem"})]});h();var Ls=v(k(),1),up=()=>(0,Ls.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,Ls.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:F("CtrlOrCmd")}),(0,Ls.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:F("Enter")})]});var jt=v(k(),1),$k=`flowchart TD
64
+ `);try{Ls(a)}catch{throw new Error(y("errors.copyToSystemClipboardFailed"))}return{storeAction:K.NONE}},predicate:(e,t,r,o)=>qx&&o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0}).some(ge),keywords:["text","clipboard","copy"]});v();var tg=re({name:"gridMode",icon:EC,keywords:["snap"],label:"labels.toggleGrid",viewMode:!0,trackEvent:{category:"canvas",predicate:e=>!e.gridSize},perform(e,t){return{appState:{...t,gridSize:this.checked(t)?null:gi,objectsSnapModeEnabled:!1},storeAction:K.NONE}},checked:e=>e.gridSize!==null,predicate:(e,t,r)=>typeof r.gridModeEnabled>"u",keyTest:e=>e[L.CTRL_OR_CMD]&&e.code===Ne.QUOTE});v();var cc=re({name:"zenMode",label:"buttons.zenMode",icon:xC,paletteName:"Toggle zen mode",viewMode:!0,trackEvent:{category:"canvas",predicate:e=>!e.zenModeEnabled},perform(e,t){return{appState:{...t,zenModeEnabled:!this.checked(t)},storeAction:K.NONE}},checked:e=>e.zenModeEnabled,predicate:(e,t,r)=>typeof r.zenModeEnabled>"u",keyTest:e=>!e[L.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.Z});v();var Cy=re({name:"objectsSnapMode",label:"buttons.objectsSnapMode",icon:bC,viewMode:!1,trackEvent:{category:"canvas",predicate:e=>!e.objectsSnapModeEnabled},perform(e,t){return{appState:{...t,objectsSnapModeEnabled:!this.checked(t),gridSize:null},storeAction:K.NONE}},checked:e=>e.objectsSnapModeEnabled,predicate:(e,t,r)=>typeof r.objectsSnapModeEnabled>"u",keyTest:e=>!e[L.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.S});v();var dc=re({name:"stats",label:"stats.fullTitle",icon:uC,paletteName:"Toggle stats",viewMode:!0,trackEvent:{category:"menu"},keywords:["edit","attributes","customize"],perform(e,t){return{appState:{...t,stats:{...t.stats,open:!this.checked(t)}},storeAction:K.NONE}},checked:e=>e.stats.open,keyTest:e=>!e[L.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.SLASH});v();var Iy=re({name:"unbindText",label:"labels.unbindText",trackEvent:{category:"element"},predicate:(e,t,r,o)=>o.scene.getSelectedElements(t).some(a=>po(a)),perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a=o.scene.getNonDeletedElementsMap();return i.forEach(s=>{let c=je(s,a);if(c){let{width:d,height:p}=yi(c.originalText,_r(c),c.lineHeight),f=RC(s.id);LC(s.id);let{x:u,y:g}=Cp(s,c,a);me(c,{containerId:null,width:d,height:p,text:c.originalText,x:u,y:g}),me(s,{boundElements:s.boundElements?.filter(h=>h.id!==c.id),height:f||s.height})}}),{elements:e,appState:t,storeAction:K.CAPTURE}}}),_y=re({name:"bindText",label:"labels.bindText",trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);if(i.length===2){let a=ge(i[0])||ge(i[1]),s;if(bi(i[0])?s=i[0]:bi(i[1])&&(s=i[1]),a&&s&&je(s,o.scene.getNonDeletedElementsMap())===null)return!0}return!1},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a,s;ge(i[0])&&bi(i[1])?(a=i[0],s=i[1]):(a=i[1],s=i[0]),me(a,{containerId:s.id,verticalAlign:Uo.MIDDLE,textAlign:id.CENTER,autoResize:!0}),me(s,{boundElements:(s.boundElements||[]).concat({type:"text",id:a.id})});let c=s.height;return er(a,s,o.scene.getNonDeletedElementsMap()),Id(s.id,c),{elements:R9(e,s,a),appState:{...t,selectedElementIds:{[s.id]:!0}},storeAction:K.CAPTURE}}}),R9=(e,t,r)=>{let o=e.slice(),i=o.findIndex(s=>s.id===r.id);o.splice(i,1);let a=o.findIndex(s=>s.id===t.id);return o.splice(a+1,0,r),_o(o,Pe([t,r])),o},D9=(e,t,r)=>{let o=e.slice(),i=o.findIndex(s=>s.id===t.id);o.splice(i,1);let a=o.findIndex(s=>s.id===r.id);return o.splice(a,0,t),_o(o,Pe([t,r])),o},XA=re({name:"wrapTextInContainer",label:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a=i.every(s=>ge(s));return i.length>0&&a},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a=e.slice(),s={};for(let c of i)if(ge(c)){let d=pa({type:"rectangle",backgroundColor:t.currentItemBackgroundColor,boundElements:[...c.boundElements||[],{id:c.id,type:"text"}],angle:c.angle,fillStyle:t.currentItemFillStyle,strokeColor:t.currentItemStrokeColor,roughness:t.currentItemRoughness,strokeWidth:t.currentItemStrokeWidth,strokeStyle:t.currentItemStrokeStyle,roundness:t.currentItemRoundness==="round"?{type:ms("rectangle")?Go.ADAPTIVE_RADIUS:Go.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:c.x-nx,y:c.y-nx,width:Cs(c.width,"rectangle"),height:Cs(c.height,"rectangle"),groupIds:c.groupIds,frameId:c.frameId});if(c.boundElements?.length){let p=c.boundElements.filter(u=>u.type==="arrow").map(u=>u.id);a.filter(u=>p.includes(u.id)).forEach(u=>{let g=u.startBinding,h=u.endBinding;g?.elementId===c.id&&(g={...g,elementId:d.id}),h?.elementId===c.id&&(h={...h,elementId:d.id}),(g||h)&&me(u,{startBinding:g,endBinding:h},!1)})}me(c,{containerId:d.id,verticalAlign:Uo.MIDDLE,boundElements:null,textAlign:id.CENTER,autoResize:!0},!1),er(c,d,o.scene.getNonDeletedElementsMap()),a=D9([...a,d],d,c),s[d.id]=!0}return{elements:a,appState:{...t,selectedElementIds:s},storeAction:K.CAPTURE}}});v();v();var Rn=w(J(),1);var Ni=w(P(),1),My=320,ZA=85,Ay=5,N9=42,O9=500,ky=!1,rg=new Map,qA=({element:e,elementsMap:t,setAppState:r,onLinkOpen:o,setToast:i,updateEmbedValidationStatus:a})=>{let s=Aa(),c=_a(),d=e.link||"",[p,f]=(0,Rn.useState)(d),u=(0,Rn.useRef)(null),g=s.showHyperlinkPopup==="editor",h=(0,Rn.useCallback)(()=>{if(!u.current)return;let I=Ti(u.current.value)||null;if(!e.link&&I&&Fe("hyperlink","create"),Fr(e)){if(s.activeEmbeddable?.element===e&&r({activeEmbeddable:null}),!I){me(e,{link:null}),a(e,!1);return}if(!ks(I,c.validateEmbeddable))I&&i({message:y("toast.unableToEmbed"),closable:!0}),e.link&&rg.set(e.id,e.link),me(e,{link:I}),a(e,!1);else{let{width:A,height:N}=e,U=pl(I);U?.error instanceof URIError&&i({message:y("toast.unrecognizedLinkFormat"),closable:!0});let R=U?U.intrinsicSize.w/U.intrinsicSize.h:1,F=rg.get(e.id)!==e.link;me(e,{...F?{width:U?.type==="video"?A>N?A:N*R:A,height:U?.type==="video"&&A>N?A/R:N}:{},link:I}),a(e,!0),rg.has(e.id)&&rg.delete(e.id)}}else me(e,{link:I})},[e,i,c.validateEmbeddable,s.activeEmbeddable,r,a]);(0,Rn.useLayoutEffect)(()=>()=>{h()},[h]),(0,Rn.useEffect)(()=>{let I=null,A=N=>{if(g)return;I&&clearTimeout(I),B9(e,t,s,[N.clientX,N.clientY])&&(I=window.setTimeout(()=>{r({showHyperlinkPopup:!1})},O9))};return window.addEventListener("pointermove",A,!1),()=>{window.removeEventListener("pointermove",A,!1),I&&clearTimeout(I)}},[s,e,g,r,t]);let x=(0,Rn.useCallback)(()=>{Fe("hyperlink","delete"),me(e,{link:null}),g&&(u.current.value=""),r({showHyperlinkPopup:!1})},[r,e,g]),E=()=>{Fe("hyperlink","edit","popup-ui"),r({showHyperlinkPopup:"editor"})},{x:T,y:M}=jA(e,s,t);return s.contextMenu||s.draggingElement||s.resizingElement||s.isRotating||s.openMenu||s.viewModeEnabled?null:(0,Ni.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${M}px`,left:`${T}px`,width:My,padding:Ay},onClick:()=>{!e.link&&!g&&r({showHyperlinkPopup:"editor"})},children:[g?(0,Ni.jsx)("input",{className:j("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:u,value:p,onChange:I=>f(I.target.value),autoFocus:!0,onKeyDown:I=>{I.stopPropagation(),I[L.CTRL_OR_CMD]&&I.key===L.K&&I.preventDefault(),(I.key===L.ENTER||I.key===L.ESCAPE)&&(h(),r({showHyperlinkPopup:"info"}))}}):e.link?(0,Ni.jsx)("a",{href:Ti(e.link||""),className:"excalidraw-hyperlinkContainer-link",target:Lp(e.link)?"_self":"_blank",onClick:I=>{if(e.link&&o){let A=qu("excalidraw-link",I.nativeEvent);o({...e,link:Ti(e.link)},A),A.defaultPrevented&&I.preventDefault()}},rel:"noopener noreferrer",children:e.link}):(0,Ni.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:y("labels.link.empty")}),(0,Ni.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!g&&(0,Ni.jsx)(Ie,{type:"button",title:y("buttons.edit"),"aria-label":y("buttons.edit"),label:y("buttons.edit"),onClick:E,className:"excalidraw-hyperlinkContainer--edit",icon:op}),d&&!Fr(e)&&(0,Ni.jsx)(Ie,{type:"button",title:y("buttons.remove"),"aria-label":y("buttons.remove"),label:y("buttons.remove"),onClick:x,className:"excalidraw-hyperlinkContainer--remove",icon:Cn})]})]})},jA=(e,t,r)=>{let[o,i]=fo(e,r),{x:a,y:s}=Qr({sceneX:o+e.width/2,sceneY:i},t),c=a-t.offsetLeft-My/2,d=s-t.offsetTop-ZA;return{x:c,y:d}},Py=(e,t)=>{let r=ze(e,t);return r[0]?.link?Fr(r[0])?"labels.link.editEmbed":"labels.link.edit":Fr(r[0])?"labels.link.createEmbed":"labels.link.create"},nm=null,JA=(e,t,r)=>{nm&&clearTimeout(nm),nm=window.setTimeout(()=>F9(e,t,r),pS)},F9=(e,t,r)=>{if(!e.link)return;let o=nc();o.classList.add("excalidraw-tooltip--visible"),o.style.maxWidth="20rem",o.textContent=e.link;let[i,a,s,c]=fo(e,r),[d,p,f,u]=v2([i,a,s,c],e.angle,t),g=Qr({sceneX:d,sceneY:p},t);dy(o,{left:g.x,top:g.y,width:f,height:u},"top"),Fe("hyperlink","tooltip","link-icon"),ky=!0},QA=()=>{nm&&clearTimeout(nm),ky&&(ky=!1,nc().classList.remove("excalidraw-tooltip--visible"))},B9=(e,t,r,[o,i])=>{let{x:a,y:s}=Mt({clientX:o,clientY:i},r),c=15/r.zoom.value;if(CC(a,s,e,t))return!1;let[d,p,f]=fo(e,t);if(a>=d&&a<=f&&s>=p-ZA&&s<=p)return!1;let{x:u,y:g}=jA(e,r,t);return!(o>=u-c&&o<=u+My+Ay*2+c&&i>=g-c&&i<=g+c+Ay*2+N9)};var ek=w(P(),1),im=re({name:"hyperlink",label:(e,t)=>Py(e,t),icon:wd,perform:(e,t)=>t.showHyperlinkPopup==="editor"?!1:{elements:e,appState:{...t,showHyperlinkPopup:"editor",openMenu:null},storeAction:K.CAPTURE},trackEvent:{category:"hyperlink",action:"click"},keyTest:e=>e[L.CTRL_OR_CMD]&&e.key===L.K,predicate:(e,t)=>ze(e,t).length===1,PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=ze(e,t);return(0,ek.jsx)(Ie,{type:"button",icon:wd,"aria-label":y(Py(e,t)),title:`${Fr(e[0])?y("labels.link.labelEmbed"):y("labels.link.label")} - ${V("CtrlOrCmd+K")}`,onClick:()=>r(null),selected:o.length===1&&!!o[0].link})}});v();var Ly=e=>e.every(t=>!t.locked),Ry=re({name:"toggleElementLock",label:(e,t,r)=>{let o=r.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1});return o.length===1&&!He(o[0])?o[0].locked?"labels.elementLock.unlock":"labels.elementLock.lock":Ly(o)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},icon:(e,t)=>{let r=ze(t,e);return Ly(r)?xs:al},trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return i.length>0&&!i.some(a=>a.locked&&a.frameId)},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});if(!i.length)return!1;let a=Ly(i),s=Pe(i);return{elements:e.map(c=>s.has(c.id)?Re(c,{locked:a}):c),appState:{...t,selectedLinearElement:a?null:t.selectedLinearElement},storeAction:K.CAPTURE}},keyTest:(e,t,r,o)=>e.key.toLocaleLowerCase()===L.L&&e[L.CTRL_OR_CMD]&&e.shiftKey&&o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1}).length>0}),tk=re({name:"unlockAllElements",paletteName:"Unlock all elements",trackEvent:{category:"canvas"},viewMode:!1,icon:al,predicate:(e,t)=>ze(e,t).length===0&&e.some(o=>o.locked),perform:(e,t)=>{let r=e.filter(o=>o.locked);return{elements:e.map(o=>o.locked?Re(o,{locked:!1}):o),appState:{...t,selectedElementIds:Object.fromEntries(r.map(o=>[o.id,!0]))},storeAction:K.CAPTURE}},label:"labels.elementLock.unlockAll"});v();v();var ln=w(J(),1);v();var Tg=w(J(),1);v();var og=w(J(),1),rk=()=>{let[e,t]=(0,og.useState)(null),r=(0,og.useCallback)(o=>t(o),[]);return[e,r]};v();var ok=w(J(),1);var nk=w(P(),1),Lr=ok.default.forwardRef(({children:e,padding:t,className:r,style:o},i)=>(0,nk.jsx)("div",{className:j("Island",r),style:{"--padding":t,...o},ref:i,children:e}));v();var ik=w(Yn(),1);var ak=w(J(),1),am=w(P(),1),lk=e=>{let{closeOnClickOutside:t=!0}=e,r=Gf({className:"excalidraw-modal-container"}),o=(0,ak.useRef)(document.body.classList.contains("excalidraw-animations-disabled"));if(!r)return null;let i=a=>{a.key===L.ESCAPE&&(a.nativeEvent.stopImmediatePropagation(),a.stopPropagation(),e.onCloseRequest())};return(0,ik.createPortal)((0,am.jsxs)("div",{className:j("Modal",e.className,{"animations-disabled":o.current}),role:"dialog","aria-modal":"true",onKeyDown:i,"aria-labelledby":e.labelledBy,"data-prevent-outside-click":!0,children:[(0,am.jsx)("div",{className:"Modal__background",onClick:t?e.onCloseRequest:void 0}),(0,am.jsx)("div",{className:"Modal__content",style:{"--max-width":`${e.maxWidth}px`},tabIndex:0,children:e.children})]}),r)};v();var Lo=w(J(),1);v();var uc=w(J(),1);v();var ng=w(J(),1);var Dy=wt(new Map),sk=async e=>await Dd({elements:e,appState:{exportBackground:!1,viewBackgroundColor:pi.white},files:null,renderEmbeddables:!1}),ck=(e,t,r)=>{let[o,i]=(0,ng.useState)();return(0,ng.useEffect)(()=>{if(t)if(e){let a=r.get(e);a?i(a):(async()=>{let s=await sk(t);s.querySelector(".style-fonts")?.remove(),s&&(r.set(e,s),i(s))})()}else(async()=>{let a=await sk(t);i(a)})()},[e,t,r,i]),o},ig=()=>{let[e]=Ve(Dy,dt);return{clearLibraryCache:()=>e.clear(),deleteItemsFromLibraryCache:o=>{o.forEach(i=>e.delete(i))},svgCache:e}};v();var ag=class{jobs=[];running=!1;tick(){if(this.running)return;let t=this.jobs.shift();t?(this.running=!0,t.promise.resolve(ud(t.jobFactory,...t.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(t,...r){let o=Zu();return this.jobs.push({jobFactory:t,promise:o,args:r}),this.tick(),o}};var mk=new jo,Ll=wt({status:"loaded",isInitialized:!1,libraryItems:[]}),lm=e=>uo(e),z9=(e,t)=>!e.find(r=>r.elements.length!==t.elements.length?!1:r.elements.every((o,i)=>o.id===t.elements[i].id&&o.versionNonce===t.elements[i].versionNonce)),uk=(e,t)=>{let r=[];for(let o of t)z9(e,o)&&r.push(o);return[...r,...e]},pk=(e,t)=>{let r=Pe(t),o={deletedItems:new Map,addedItems:new Map};for(let a of e)r.has(a.id)||o.deletedItems.set(a.id,a);let i=Pe(e);for(let a of t)i.has(a.id)||o.addedItems.set(a.id,a);return o},Ny=class{currLibraryItems=[];prevLibraryItems=lm(this.currLibraryItems);app;constructor(t){this.app=t}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)zr.set(Ll,t=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:t.isInitialized}));else{zr.set(Ll,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let t=this.prevLibraryItems;this.prevLibraryItems=lm(this.currLibraryItems);let r=lm(this.currLibraryItems);this.app.props.onLibraryChange?.(r),mk.trigger(pk(t,r),r)}catch(t){console.error(t)}}};destroy=()=>{this.updateQueue=[],this.currLibraryItems=[],zr.set(Dy,new Map)};resetLibrary=()=>this.setLibrary([]);getLatestLibrary=()=>new Promise(async t=>{try{let r=await(this.getLastUpdateTask()||this.currLibraryItems);this.updateQueue.length>0?t(this.getLatestLibrary()):t(lm(r))}catch{return t(this.currLibraryItems)}});updateLibrary=async({libraryItems:t,prompt:r=!1,merge:o=!1,openLibraryMenu:i=!1,defaultStatus:a="unpublished"})=>(i&&this.app.setState({openSidebar:{name:Sn.name,tab:Ku}}),this.setLibrary(()=>new Promise(async(s,c)=>{try{let d=await(typeof t=="function"&&!(t instanceof Blob)?t(this.currLibraryItems):t),p;d instanceof Blob?p=await Kx(d,a):p=Pd(d,a),!r||window.confirm(y("alerts.confirmAddLibrary",{numShapes:p.length}))?(r&&this.app.focusContainer(),s(o?uk(this.currLibraryItems,p):p)):c(new us)}catch(d){c(d)}})));setLibrary=t=>{let r=new Promise(async(o,i)=>{try{await this.getLastUpdateTask(),typeof t=="function"&&(t=t(this.currLibraryItems)),this.currLibraryItems=lm(await t),o(this.currLibraryItems)}catch(a){i(a)}}).catch(o=>{if(o.name==="AbortError")return console.warn("Library update aborted by user"),this.currLibraryItems;throw o}).finally(()=>{this.updateQueue=this.updateQueue.filter(o=>o!==r),this.notifyListeners()});return this.updateQueue.push(r),this.notifyListeners(),r}},fk=Ny,cg=e=>{let r=Math.ceil(Math.sqrt(e.length)),o=[],i=h=>e.slice(h*r,h*r+r).reduce((E,T)=>{let{height:M}=Xo(T.elements);return Math.max(E,M)},0),a=h=>{let x=0,E=0,T=0;for(let M of e){if(x%r===0&&(E=0),E===h){let{width:I}=Xo(M.elements);T=Math.max(T,I)}x++,E++}return T},s=0,c=0,d=0,p=0,f=0,u=0,g=0;for(let h of e){f&&f%r===0&&(c+=d+50,s=0,u=0,g++),u===0&&(d=i(g)),p=a(u);let{minX:x,minY:E,width:T,height:M}=Xo(h.elements),I=(p-T)/2,A=(d-M)/2;o.push(...h.elements.map(N=>({...N,x:N.x+s+I-x,y:N.y+c+A-E}))),s+=p+50,f++,u++}return o},Oy=()=>{let e=new URLSearchParams(window.location.hash.slice(1)).get(Hu.addLibrary)||new URLSearchParams(window.location.search).get($u.addLibrary),t=e?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return e?{libraryUrl:e,idToken:t}:null},mc=class e{static queue=new ag;static async getLibraryItems(t,r,o=!0){let i=()=>new Promise(async(a,s)=>{try{let c=await t.load({source:r});a(Pd(c?.libraryItems||[],"published"))}catch(c){s(c)}});return o?e.queue.push(i):i()}static run=async(t,r)=>{let o=new e(t);return e.queue.push(()=>r(o))};adapter;constructor(t){this.adapter=t}getLibraryItems(t){return e.getLibraryItems(this.adapter,t,!1)}},sm=0,lg=0,sg=e=>lv(e.map(t=>`${t.id}:${av(t.elements)}`).sort().join()),dk=async(e,t)=>{try{return lg++,await mc.run(e,async r=>{let o=Pe(await r.getLibraryItems("save"));for(let[c]of t.deletedItems)o.delete(c);let i=[];for(let[c,d]of t.addedItems)o.has(c)?o.set(c,d):i.push(d);let a=i.concat(Array.from(o.values())),s=sg(a);return s!==sm&&await e.save({libraryItems:a}),sm=s,a})}finally{lg--}},$9=e=>{let{excalidrawAPI:t}=e,r=(0,uc.useRef)(e);r.current=e;let o=(0,uc.useRef)(!1);(0,uc.useEffect)(()=>{if(!t)return;o.current=!1;let i=async({libraryUrl:c,idToken:d})=>{let p=new Promise(async(u,g)=>{try{let x=await(await fetch(decodeURIComponent(c))).blob();u(x)}catch(h){g(h)}}),f=d!==t.id;await(f&&document.hidden?new Promise(u=>{window.addEventListener("focus",()=>u(),{once:!0})}):null);try{await t.updateLibrary({libraryItems:p,prompt:f,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(u){throw u}finally{if(window.location.hash.includes(Hu.addLibrary)){let u=new URLSearchParams(window.location.hash.slice(1));u.delete(Hu.addLibrary),window.history.replaceState({},td,`#${u.toString()}`)}else if(window.location.search.includes($u.addLibrary)){let u=new URLSearchParams(window.location.search);u.delete($u.addLibrary),window.history.replaceState({},td,`?${u.toString()}`)}}},a=c=>{c.preventDefault();let d=Oy();d&&(c.stopImmediatePropagation(),window.history.replaceState({},"",c.oldURL),i(d))},s=Oy();if(s&&i(s),"getInitialLibraryItems"in r.current&&r.current.getInitialLibraryItems&&(console.warn("useHandleLibrar `opts.getInitialLibraryItems` is deprecated. Use `opts.adapter` instead."),Promise.resolve(r.current.getInitialLibraryItems()).then(c=>{t.updateLibrary({libraryItems:c,merge:!0})}).catch(c=>{console.error(`UseHandeLibrary getInitialLibraryItems failed: ${c?.message}`)})),"adapter"in r.current&&r.current.adapter){let c=r.current.adapter,d=r.current.migrationAdapter,p=Zu();d?p.resolve(ud(d.load).then(async f=>{let u=null;try{if(!f)return mc.getLibraryItems(c,"load");u=Pd(f.libraryItems||[],"published");let g=await dk(c,pk([],u));try{await d.clear()}catch(h){console.error(`couldn't delete legacy library data: ${h.message}`)}return g}catch(g){return console.error(`couldn't migrate legacy library data: ${g.message}`),u}}).catch(f=>(console.error(`error during library migration: ${f.message}`),mc.getLibraryItems(c,"load")))):p.resolve(ud(mc.getLibraryItems,c,"load")),t.updateLibrary({libraryItems:p.then(f=>{let u=f||[];return sm=sg(u),u}),merge:!0}).finally(()=>{o.current=!0})}return window.addEventListener("hashchange",a),()=>{window.removeEventListener("hashchange",a)}},[t]),(0,uc.useEffect)(()=>{let i=mk.on(async(s,c)=>{let d=o.current,p="adapter"in r.current&&r.current.adapter||null;try{p&&sm!==sg(c)&&await dk(p,s)}catch(f){console.error(`couldn't persist library update: ${f.message}`,s),d&&r.current.excalidrawAPI&&r.current.excalidrawAPI.updateScene({appState:{errorMessage:y("errors.saveLibraryError")}})}}),a=s=>{lg&&LS(s)};return window.addEventListener("beforeunload",a),()=>{window.removeEventListener("beforeunload",a),i(),sm=0,lg=0}},[])};v();var Wr=w(J(),1);v();var Fy=w(J(),1);var By=w(P(),1),H9=(0,Fy.forwardRef)(({children:e,gap:t,align:r,justifyContent:o,className:i,style:a},s)=>(0,By.jsx)("div",{className:j("Stack Stack_horizontal",i),style:{"--gap":t,alignItems:r,justifyContent:o,...a},ref:s,children:e})),U9=(0,Fy.forwardRef)(({children:e,gap:t,align:r,justifyContent:o,className:i,style:a},s)=>(0,By.jsx)("div",{className:j("Stack Stack_vertical",i),style:{"--gap":t,justifyItems:r,justifyContent:o,...a},ref:s,children:e})),Sr={Row:H9,Col:U9};v();v();var hk=w(P(),1),G9=({theme:e,id:t,libraryReturnUrl:r})=>{let o=r||window.location.origin+window.location.pathname;return(0,hk.jsx)("a",{className:"library-menu-browse-button",href:`${_.VITE_APP_LIBRARY_URL}?target=${window.name||"_blank"}&referrer=${o}&useHash=true&token=${t}&theme=${e}&version=${Gu.excalidrawLibrary}`,target:"_excalidraw_libraries",children:y("labels.libraries")})},gk=G9;var mg=w(P(),1),dg=({libraryReturnUrl:e,theme:t,id:r,style:o,children:i,className:a})=>(0,mg.jsxs)("div",{className:j("library-menu-control-buttons",a),style:o,children:[(0,mg.jsx)(gk,{id:r,libraryReturnUrl:e,theme:t}),i]});v();var bc=w(J(),1);v();var cm=w(J(),1);var W9=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,K9=/{{([\w-]+)}}/,Y9=/<([\w-]+)>/,V9=/<\/([\w-]+)>/,X9=(e,t)=>{let r=[{name:"",children:[]}];return e.split(W9).filter(Boolean).forEach(o=>{let i=o.match(Y9),a=o.match(V9),s=o.match(K9);if(i!==null){let c=i[1];t.hasOwnProperty(c)?r.push({name:c,children:[]}):console.warn(`Trans: missed to pass in prop ${c} for interpolating ${e}`)}else if(a!==null)if(a[1]===r[r.length-1].name){let d=r.pop(),p=cm.default.createElement(cm.default.Fragment,{},...d.children),f=t[d.name];typeof f=="function"&&r[r.length-1].children.push(f(p))}else console.warn(`Trans: unexpected end tag ${o} for interpolating ${e}`);else if(s!==null){let c=s[1];t.hasOwnProperty(c)?r[r.length-1].children.push(t[c]):console.warn(`Trans: key ${c} not in props for interpolating ${e}`)}else r[r.length-1].children.push(o)}),r.length!==1&&console.warn(`Trans: stack not empty for interpolating ${e}`),r[0].children},Z9=({i18nKey:e,children:t,...r})=>{let{t:o}=nr();return cm.default.createElement(cm.default.Fragment,{},...X9(o(e),r))},oo=Z9;v();v();var Rl=w(P(),1),q9=({label:e,onClick:t,className:r,children:o,actionType:i,type:a="button",isLoading:s,...c})=>{let d=i?`Dialog__action-button--${i}`:"";return(0,Rl.jsxs)("button",{className:j("Dialog__action-button",d,r),type:a,"aria-label":e,onClick:t,...c,children:[o&&(0,Rl.jsx)("div",{style:s?{visibility:"hidden"}:{},children:o}),(0,Rl.jsx)("div",{style:s?{visibility:"hidden"}:{},children:e}),s&&(0,Rl.jsx)("div",{style:{position:"absolute",inset:0},children:(0,Rl.jsx)(kr,{})})]})},pc=q9;var fc=w(P(),1),j9=e=>{let{onConfirm:t,onCancel:r,children:o,confirmText:i=y("buttons.confirm"),cancelText:a=y("buttons.cancel"),className:s="",...c}=e,d=nt(),p=Ai(gc,dt),{container:f}=Er();return(0,fc.jsxs)(Bt,{onCloseRequest:r,size:"small",...c,className:`confirm-dialog ${s}`,children:[o,(0,fc.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,fc.jsx)(pc,{label:a,onClick:()=>{d({openMenu:null}),p(!1),r(),f?.focus()}}),(0,fc.jsx)(pc,{label:i,onClick:()=>{d({openMenu:null}),p(!1),t(),f?.focus()},actionType:"danger"})]})]})},ug=j9;v();var Po=w(J(),1);v();var vo=class{static has(t){try{return!!window.localStorage.getItem(t)}catch(r){return console.warn(`localStorage.getItem error: ${r.message}`),!1}}static get(t){try{let r=window.localStorage.getItem(t);return r?JSON.parse(r):null}catch(r){return console.warn(`localStorage.getItem error: ${r.message}`),null}}static set=(t,r)=>{try{return window.localStorage.setItem(t,JSON.stringify(r)),!0}catch(o){return console.warn(`localStorage.setItem error: ${o.message}`),!1}};static delete=t=>{try{window.localStorage.removeItem(t)}catch(r){console.warn(`localStorage.removeItem error: ${r.message}`)}}};var Te=w(P(),1),J9=async e=>{let o=Math.round(8),i=Math.max(Math.round(128/64),2),a=kS(e,6),s=document.createElement("canvas");s.width=a[0].length*128+(a[0].length+1)*(o*2)-o*2,s.height=a.length*128+(a.length+1)*(o*2)-o*2;let c=s.getContext("2d");c.fillStyle=Or.white,c.fillRect(0,0,s.width,s.height);for(let[d,p]of e.entries()){let f=await fl({elements:p.elements,files:null,maxWidthOrHeight:128}),{width:u,height:g}=f,h=Math.floor(d/6)*(128+o*2),x=d%6*(128+o*2);c.drawImage(f,x+(128-u)/2+o,h+(128-g)/2+o),c.lineWidth=i,c.strokeStyle=Or.gray[4],c.strokeRect(x+o/2,h+o/2,128+o,128+o)}return await Ld(new File([await Ci(s)],"preview",{type:Ir.png}),{outputType:Ir.jpg,maxWidthOrHeight:5e3})},Q9=({libItem:e,appState:t,index:r,onChange:o,onRemove:i})=>{let a=(0,Po.useRef)(null),s=(0,Po.useRef)(null);return(0,Po.useEffect)(()=>{let c=a.current;c&&(async()=>{let d=await Dd({elements:e.elements,appState:{...t,viewBackgroundColor:Or.white,exportBackground:!0},files:null});c.innerHTML=d.outerHTML})()},[e.elements,t]),(0,Te.jsxs)("div",{className:"single-library-item",children:[e.status==="published"&&(0,Te.jsx)("span",{className:"single-library-item-status",children:y("labels.statusPublished")}),(0,Te.jsx)("div",{ref:a,className:"single-library-item__svg"}),(0,Te.jsx)(Ie,{"aria-label":y("buttons.remove"),type:"button",icon:Vo,className:"single-library-item--remove",onClick:i.bind(null,e.id),title:y("buttons.remove")}),(0,Te.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,Te.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,Te.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,Te.jsx)("span",{style:{fontWeight:500,color:Or.gray[6]},children:y("publishDialog.itemName")}),(0,Te.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Te.jsx)("input",{type:"text",ref:s,style:{width:"80%",padding:"0.2rem"},defaultValue:e.name,placeholder:"Item name",onChange:c=>{o(c.target.value,r)}})]}),(0,Te.jsx)("span",{className:"error",children:e.error})]})]})},eF=({onClose:e,libraryItems:t,appState:r,onSuccess:o,onError:i,updateItemsInStorage:a,onRemove:s})=>{let[c,d]=(0,Po.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[p,f]=(0,Po.useState)(!1);(0,Po.useEffect)(()=>{let A=vo.get(Wo.PUBLISH_LIBRARY);A&&d(A)},[]);let[u,g]=(0,Po.useState)(t.slice());(0,Po.useEffect)(()=>{g(t.slice())},[t]);let h=A=>{d({...c,[A.target.name]:A.target.value})},x=async A=>{A.preventDefault(),f(!0);let N=[],U=!1;if(u.forEach(te=>{let de="";te.name||(de=y("publishDialog.errors.required"),U=!0),N.push({...te,error:de})}),U){g(N),f(!1);return}let R=await J9(u),F={type:lS.excalidrawLibrary,version:Gu.excalidrawLibrary,source:sS,libraryItems:u},B=JSON.stringify(F,null,2),Z=new Blob([B],{type:"application/json"}),G=new FormData;G.append("excalidrawLib",Z),G.append("previewImage",R),G.append("previewImageType",R.type),G.append("title",c.name),G.append("authorName",c.authorName),G.append("githubHandle",c.githubHandle),G.append("name",c.name),G.append("description",c.description),G.append("twitterHandle",c.twitterHandle),G.append("website",c.website),fetch(`${_.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:G}).then(te=>te.ok?te.json().then(({url:de})=>{vo.delete(Wo.PUBLISH_LIBRARY),o({url:de,authorName:c.authorName,items:u})}):te.json().catch(()=>{throw new Error(te.statusText||"something went wrong")}).then(de=>{throw new Error(de.message||te.statusText||"something went wrong")}),te=>{console.error(te),i(te),f(!1)}).catch(te=>{console.error(te),i(te),f(!1)})},E=()=>{let A=[];return u.forEach((N,U)=>{A.push((0,Te.jsx)("div",{className:"single-library-item-wrapper",children:(0,Te.jsx)(Q9,{libItem:N,appState:r,index:U,onChange:(R,F)=>{let B=u.slice();B[F].name=R,g(B)},onRemove:s})},U))}),(0,Te.jsx)("div",{className:"selected-library-items",children:A})},T=(0,Po.useCallback)(()=>{a(u),vo.set(Wo.PUBLISH_LIBRARY,c),e()},[u,e,a,c]),M=!!t.length,I=t.some(A=>A.status==="published");return(0,Te.jsx)(Bt,{onCloseRequest:T,title:y("publishDialog.title"),className:"publish-library",children:M?(0,Te.jsxs)("form",{onSubmit:x,children:[(0,Te.jsx)("div",{className:"publish-library-note",children:(0,Te.jsx)(oo,{i18nKey:"publishDialog.noteDescription",link:A=>(0,Te.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:A})})}),(0,Te.jsx)("span",{className:"publish-library-note",children:(0,Te.jsx)(oo,{i18nKey:"publishDialog.noteGuidelines",link:A=>(0,Te.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:A})})}),(0,Te.jsx)("div",{className:"publish-library-note",children:y("publishDialog.noteItems")}),I&&(0,Te.jsx)("span",{className:"publish-library-note publish-library-warning",children:y("publishDialog.republishWarning")}),E(),(0,Te.jsxs)("div",{className:"publish-library__fields",children:[(0,Te.jsxs)("label",{children:[(0,Te.jsxs)("div",{children:[(0,Te.jsx)("span",{children:y("publishDialog.libraryName")}),(0,Te.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Te.jsx)("input",{type:"text",name:"name",required:!0,value:c.name,onChange:h,placeholder:y("publishDialog.placeholder.libraryName")})]}),(0,Te.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,Te.jsxs)("div",{children:[(0,Te.jsx)("span",{children:y("publishDialog.libraryDesc")}),(0,Te.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Te.jsx)("textarea",{name:"description",rows:4,required:!0,value:c.description,onChange:h,placeholder:y("publishDialog.placeholder.libraryDesc")})]}),(0,Te.jsxs)("label",{children:[(0,Te.jsxs)("div",{children:[(0,Te.jsx)("span",{children:y("publishDialog.authorName")}),(0,Te.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Te.jsx)("input",{type:"text",name:"authorName",required:!0,value:c.authorName,onChange:h,placeholder:y("publishDialog.placeholder.authorName")})]}),(0,Te.jsxs)("label",{children:[(0,Te.jsx)("span",{children:y("publishDialog.githubUsername")}),(0,Te.jsx)("input",{type:"text",name:"githubHandle",value:c.githubHandle,onChange:h,placeholder:y("publishDialog.placeholder.githubHandle")})]}),(0,Te.jsxs)("label",{children:[(0,Te.jsx)("span",{children:y("publishDialog.twitterUsername")}),(0,Te.jsx)("input",{type:"text",name:"twitterHandle",value:c.twitterHandle,onChange:h,placeholder:y("publishDialog.placeholder.twitterHandle")})]}),(0,Te.jsxs)("label",{children:[(0,Te.jsx)("span",{children:y("publishDialog.website")}),(0,Te.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:y("publishDialog.errors.website"),value:c.website,onChange:h,placeholder:y("publishDialog.placeholder.website")})]}),(0,Te.jsx)("span",{className:"publish-library-note",children:(0,Te.jsx)(oo,{i18nKey:"publishDialog.noteLicense",link:A=>(0,Te.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:A})})})]}),(0,Te.jsxs)("div",{className:"publish-library__buttons",children:[(0,Te.jsx)(pc,{label:y("buttons.cancel"),onClick:T,"data-testid":"cancel-clear-canvas-button"}),(0,Te.jsx)(pc,{type:"submit",label:y("buttons.submit"),actionType:"primary",isLoading:p})]})]}):(0,Te.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:y("publishDialog.atleastOneLibItem")})})},bk=eF;v();v();var yk=w(P(),1),xk=({className:e="",children:t,onToggle:r,title:o,...i})=>{let a=ot(),s=j(`dropdown-menu-button ${e}`,"zen-mode-transition",{"dropdown-menu-button--mobile":a.editor.isMobile}).trim();return(0,yk.jsx)("button",{"data-prevent-outside-click":!0,className:s,onClick:r,type:"button","data-testid":"dropdown-menu-button",title:o,...i,children:t})},vk=xk;xk.displayName="DropdownMenuTrigger";v();v();var pg=w(J(),1);var zy=pg.default.createContext({}),fg=(e="",t=!1)=>`dropdown-menu-item dropdown-menu-item-base ${e} ${t?"dropdown-menu-item--selected":""}`.trim(),gg=(e,t)=>{let r=(0,pg.useContext)(zy);return aa(e,o=>{let i=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});t?.(i),i.defaultPrevented||r.onSelect?.(i)})};v();var ka=w(P(),1),tF=({icon:e,shortcut:t,children:r})=>{let o=ot();return(0,ka.jsxs)(ka.Fragment,{children:[(0,ka.jsx)("div",{className:"dropdown-menu-item__icon",children:e}),(0,ka.jsx)("div",{className:"dropdown-menu-item__text",children:r}),t&&!o.editor.isMobile&&(0,ka.jsx)("div",{className:"dropdown-menu-item__shortcut",children:t})]})},hg=tF;var bg=w(P(),1),$y=({icon:e,onSelect:t,children:r,shortcut:o,className:i,selected:a,...s})=>{let c=gg(s.onClick,t);return(0,bg.jsx)("button",{...s,onClick:c,type:"button",className:fg(i,a),title:s.title??s["aria-label"],children:(0,bg.jsx)(hg,{icon:e,shortcut:o,children:r})})};$y.displayName="DropdownMenuItem";var Ek=({children:e})=>(0,bg.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",background:"var(--color-promo)",color:"var(--color-surface-lowest)",borderRadius:6,fontSize:9,fontFamily:"Cascadia, monospace"},children:e});Ek.displayName="DropdownMenuItemBadge";$y.Badge=Ek;var on=$y;v();var Tk=w(P(),1),wk=()=>(0,Tk.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),Sk=wk;wk.displayName="DropdownMenuSeparator";v();var xg=w(P(),1),Ck=({children:e,className:t="",style:r,title:o})=>(0,xg.jsxs)("div",{className:`dropdown-menu-group ${t}`,style:r,children:[o&&(0,xg.jsx)("p",{className:"dropdown-menu-group-title",children:o}),e]}),Ik=Ck;Ck.displayName="DropdownMenuGroup";v();var vg=w(J(),1);var dm=w(P(),1),_k=({children:e,onClickOutside:t,className:r="",onSelect:o,style:i})=>{let a=ot(),s=(0,vg.useRef)(null),c=oc({onClickOutside:t});rc(s,()=>{c.onClickOutside?.()}),(0,vg.useEffect)(()=>{let p=u=>{u.key===L.ESCAPE&&(u.stopImmediatePropagation(),c.onClickOutside?.())},f={capture:!0};return document.addEventListener("keydown",p,f),()=>{document.removeEventListener("keydown",p,f)}},[c]);let d=j(`dropdown-menu ${r}`,{"dropdown-menu--mobile":a.editor.isMobile}).trim();return(0,dm.jsx)(zy.Provider,{value:{onSelect:o},children:(0,dm.jsx)("div",{ref:s,className:d,style:i,"data-testid":"dropdown-menu",children:a.editor.isMobile?(0,dm.jsx)(Sr.Col,{className:"dropdown-menu-container",children:e}):(0,dm.jsx)(Lr,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:e})})})};_k.displayName="DropdownMenuContent";var Ak=_k;v();var Hy=w(P(),1),kk=({icon:e,shortcut:t,href:r,children:o,onSelect:i,className:a="",selected:s,...c})=>{let d=gg(c.onClick,i);return(0,Hy.jsx)("a",{...c,href:r,target:"_blank",rel:"noreferrer",className:fg(a,s),title:c.title??c["aria-label"],onClick:d,children:(0,Hy.jsx)(hg,{icon:e,shortcut:t,children:o})})},hc=kk;kk.displayName="DropdownMenuItemLink";v();var Pk=w(P(),1),rF=({children:e,className:t="",selected:r,...o})=>(0,Pk.jsx)("div",{...o,className:`dropdown-menu-item-base dropdown-menu-item-custom ${t} ${r?"dropdown-menu-item--selected":""}`.trim(),children:e}),Mk=rF;v();var mm=w(J(),1),Lk=e=>{let t=mm.default.Children.toArray(e).find(r=>mm.default.isValidElement(r)&&typeof r.type!="string"&&r?.type.displayName&&r.type.displayName==="DropdownMenuTrigger");return t||null},Rk=e=>{let t=mm.default.Children.toArray(e).find(r=>mm.default.isValidElement(r)&&typeof r.type!="string"&&r?.type.displayName&&r.type.displayName==="DropdownMenuContent");return t||null};var yg=w(P(),1),Oi=({children:e,open:t})=>{let r=Lk(e),o=Rk(e);return(0,yg.jsxs)(yg.Fragment,{children:[r,t&&o]})};Oi.Trigger=vk;Oi.Content=Ak;Oi.Item=on;Oi.ItemLink=hc;Oi.ItemCustom=Mk;Oi.Group=Ik;Oi.Separator=Sk;var st=Oi;Oi.displayName="DropdownMenu";var ar=w(P(),1),oF=(e,t)=>e.filter(r=>t.includes(r.id)),nF=({setAppState:e,selectedItems:t,library:r,onRemoveFromLibrary:o,resetLibrary:i,onSelectItems:a,appState:s,className:c})=>{let[d]=Ve(Ll,dt),[p,f]=Ve(gc,dt),u=()=>{let G=t.length?y("alerts.removeItemsFromsLibrary",{count:t.length}):y("alerts.resetLibrary"),te=t.length?y("confirmDialog.removeItemsFromLib"):y("confirmDialog.resetLibrary");return(0,ar.jsx)(ug,{onConfirm:()=>{t.length?o():i(),h(!1)},onCancel:()=>{h(!1)},title:te,children:(0,ar.jsx)("p",{children:G})})},[g,h]=(0,bc.useState)(!1),x=!!t.length,E=x?d.libraryItems.filter(G=>t.includes(G.id)):d.libraryItems,T=x?y("buttons.remove"):y("buttons.resetLibrary"),[M,I]=(0,bc.useState)(!1),[A,N]=(0,bc.useState)(null),U=(0,bc.useCallback)(()=>(0,ar.jsxs)(Bt,{onCloseRequest:()=>N(null),title:y("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,ar.jsx)("p",{children:(0,ar.jsx)(oo,{i18nKey:"publishSuccessDialog.content",authorName:A.authorName,link:G=>(0,ar.jsx)("a",{href:A?.url,target:"_blank",rel:"noopener noreferrer",children:G})})}),(0,ar.jsx)(Ie,{type:"button",title:y("buttons.close"),"aria-label":y("buttons.close"),label:y("buttons.close"),onClick:()=>N(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[N,A]),R=(G,te)=>{I(!1),N({url:G.url,authorName:G.authorName});let de=te.slice();de.forEach(W=>{t.includes(W.id)&&(W.status="published")}),r.setLibrary(de)},F=async()=>{try{await r.updateLibrary({libraryItems:Fp({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(G){if(G?.name==="AbortError"){console.warn(G);return}e({errorMessage:y("errors.importLibraryError")})}},B=async()=>{let G=x?E:await r.getLatestLibrary();f2(G).catch(Xu).catch(te=>{e({errorMessage:te.message})})},Z=()=>(0,ar.jsxs)(st,{open:p,children:[(0,ar.jsx)(st.Trigger,{onToggle:()=>f(!p),children:JS}),(0,ar.jsxs)(st.Content,{onClickOutside:()=>f(!1),onSelect:()=>f(!1),className:"library-menu",children:[!x&&(0,ar.jsx)(st.Item,{onSelect:F,icon:ys,"data-testid":"lib-dropdown--load",children:y("buttons.load")}),!!E.length&&(0,ar.jsx)(st.Item,{onSelect:B,icon:ll,"data-testid":"lib-dropdown--export",children:y("buttons.export")}),!!E.length&&(0,ar.jsx)(st.Item,{onSelect:()=>h(!0),icon:Cn,children:T}),x&&(0,ar.jsx)(st.Item,{icon:JT,onSelect:()=>I(!0),"data-testid":"lib-dropdown--remove",children:y("buttons.publishLibrary")})]})]});return(0,ar.jsxs)("div",{className:j("library-menu-dropdown-container",c),children:[Z(),t.length>0&&(0,ar.jsx)("div",{className:"library-actions-counter",children:t.length}),g&&u(),M&&(0,ar.jsx)(bk,{onClose:()=>I(!1),libraryItems:oF(d.libraryItems,t),appState:s,onSuccess:G=>R(G,d.libraryItems),onError:G=>window.alert(G),updateItemsInStorage:()=>r.setLibrary(d.libraryItems),onRemove:G=>a(t.filter(te=>te!==G))}),A&&U()]})},Uy=({selectedItems:e,onSelectItems:t,className:r})=>{let{library:o}=Ur(),{clearLibraryCache:i,deleteItemsFromLibraryCache:a}=ig(),s=it(),c=nt(),[d]=Ve(Ll,dt),p=async u=>{let g=u.filter(h=>!e.includes(h.id));o.setLibrary(g).catch(()=>{c({errorMessage:y("alerts.errorRemovingFromLibrary")})}),a(e),t([])};return(0,ar.jsx)(nF,{appState:s,setAppState:c,selectedItems:e,onSelectItems:t,library:o,onRemoveFromLibrary:()=>p(d.libraryItems),resetLibrary:()=>{o.resetLibrary(),i()},className:r})};v();var xc=w(J(),1);v();var Ma=w(J(),1);var Dl=w(P(),1),Dk=(0,Ma.memo)(({id:e,elements:t,isPending:r,onClick:o,selected:i,onToggle:a,onDrag:s,svgCache:c})=>{let d=(0,Ma.useRef)(null),p=ck(e,t,c);(0,Ma.useEffect)(()=>{let x=d.current;if(x)return p&&(x.innerHTML=p.outerHTML),()=>{x.innerHTML=""}},[p]);let[f,u]=(0,Ma.useState)(!1),g=ot().editor.isMobile,h=r&&(0,Dl.jsx)("div",{className:"library-unit__adder",children:jS});return(0,Dl.jsxs)("div",{className:j("library-unit",{"library-unit__active":t,"library-unit--hover":t&&f,"library-unit--selected":i,"library-unit--skeleton":!p}),onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),children:[(0,Dl.jsx)("div",{className:j("library-unit__dragger",{"library-unit__pulse":!!r}),ref:d,draggable:!!t,onClick:t||r?x=>{e&&x.shiftKey?a(e,x):o(e)}:void 0,onDragStart:x=>{if(!e){x.preventDefault();return}u(!1),s(e,x)}}),h,e&&t&&(f||g||i)&&(0,Dl.jsx)(_l,{checked:i,onChange:(x,E)=>a(e,E),className:"library-unit__checkbox"})]})}),Nk=()=>(0,Dl.jsx)("div",{className:"library-unit library-unit--skeleton"});v();var Eg=w(J(),1);function iF(){return[!1,(0,Eg.useCallback)(t=>t(),[])]}var Ok=Eg.default.useTransition||iF;var Nl=w(P(),1),Gy=({children:e})=>(0,Nl.jsx)("div",{className:"library-menu-items-container__grid",children:e}),wg=(0,xc.memo)(({items:e,onItemSelectToggle:t,onItemDrag:r,isItemSelected:o,onClick:i,svgCache:a,itemsRenderedPerBatch:s})=>{let[,c]=Ok(),[d,p]=(0,xc.useState)(0);return(0,xc.useEffect)(()=>{d<e.length&&c(()=>{p(d+s)})},[d,e.length,c,s]),(0,Nl.jsx)(Nl.Fragment,{children:e.map((f,u)=>u<d?(0,Nl.jsx)(Dk,{elements:f?.elements,isPending:!f?.id&&!!f?.elements,onClick:i,svgCache:a,id:f?.id,selected:o(f.id),onToggle:t,onDrag:r},f?.id??u):(0,Nl.jsx)(Nk,{},u))})});v();var Hk=w(J(),1);var Uk=w(Ky(),1),SF=wt(0),Gk=e=>{let[t,r]=Ve(SF);return(0,Hk.useEffect)(()=>{let{current:o}=e;if(!o)return;let i=(0,Uk.default)(()=>{let{scrollTop:a}=o;r(a)},200);return o.addEventListener("scroll",i),()=>{i.cancel(),o.removeEventListener("scroll",i)}},[e,r]),t};var Rt=w(P(),1),TF=17,CF=64;function Yy({isLoading:e,libraryItems:t,onAddToLibrary:r,onInsertLibraryItems:o,pendingElements:i,theme:a,id:s,libraryReturnUrl:c,onSelectItems:d,selectedItems:p}){let f=(0,Wr.useRef)(null),u=Gk(f);(0,Wr.useEffect)(()=>{u>0&&f.current?.scrollTo(0,u)},[]);let{svgCache:g}=ig(),h=(0,Wr.useMemo)(()=>t.filter(G=>G.status!=="published"),[t]),x=(0,Wr.useMemo)(()=>t.filter(G=>G.status==="published"),[t]),E=!t.length&&!i.length,T=!i.length&&!h.length&&!x.length,[M,I]=(0,Wr.useState)(null),A=(0,Wr.useCallback)((G,te)=>{let de=!p.includes(G),W=[...h,...x];if(de){if(te.shiftKey&&M){let se=W.findIndex(Ee=>Ee.id===M),xe=W.findIndex(Ee=>Ee.id===G);if(se===-1||xe===-1){d([...p,G]);return}let Se=Pe(p),Je=W.reduce((Ee,ue,H)=>((H>=se&&H<=xe||Se.has(ue.id))&&Ee.push(ue.id),Ee),[]);d(Je)}else d([...p,G]);I(G)}else I(null),d(p.filter(se=>se!==G))},[M,d,x,p,h]),N=(0,Wr.useCallback)(G=>{let te;return p.includes(G)?te=t.filter(de=>p.includes(de.id)):te=t.filter(de=>de.id===G),te.map(de=>({...de,elements:Op(de.elements,{randomizeSeed:!0})}))},[t,p]),U=(0,Wr.useCallback)((G,te)=>{te.dataTransfer.setData(Ir.excalidrawlib,Zx(N(G)))},[N]),R=(0,Wr.useCallback)(G=>G?p.includes(G):!1,[p]),F=(0,Wr.useCallback)(()=>{r(i)},[i,r]),B=(0,Wr.useCallback)(G=>{G&&o(N(G))},[N,o]),Z=g.size>=t.length?CF:TF;return(0,Rt.jsxs)("div",{className:"library-menu-items-container",style:i.length||h.length||x.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!T&&(0,Rt.jsx)(Uy,{selectedItems:p,onSelectItems:d,className:"library-menu-dropdown-container--in-heading"}),(0,Rt.jsxs)(Sr.Col,{className:"library-menu-items-container__items",align:"start",gap:1,style:{flex:x.length>0?1:"0 1 auto",marginBottom:0},ref:f,children:[(0,Rt.jsxs)(Rt.Fragment,{children:[!T&&(0,Rt.jsx)("div",{className:"library-menu-items-container__header",children:y("labels.personalLib")}),e&&(0,Rt.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,Rt.jsx)(kr,{})}),!i.length&&!h.length?(0,Rt.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,Rt.jsx)("div",{className:"library-menu-items__no-items__label",children:y("library.noItems")}),(0,Rt.jsx)("div",{className:"library-menu-items__no-items__hint",children:x.length>0?y("library.hint_emptyPrivateLibrary"):y("library.hint_emptyLibrary")})]}):(0,Rt.jsxs)(Gy,{children:[i.length>0&&(0,Rt.jsx)(wg,{itemsRenderedPerBatch:Z,items:[{id:null,elements:i}],onItemSelectToggle:A,onItemDrag:U,onClick:F,isItemSelected:R,svgCache:g}),(0,Rt.jsx)(wg,{itemsRenderedPerBatch:Z,items:h,onItemSelectToggle:A,onItemDrag:U,onClick:B,isItemSelected:R,svgCache:g})]})]}),(0,Rt.jsxs)(Rt.Fragment,{children:[(x.length>0||i.length>0||h.length>0)&&(0,Rt.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:y("labels.excalidrawLib")}),x.length>0?(0,Rt.jsx)(Gy,{children:(0,Rt.jsx)(wg,{itemsRenderedPerBatch:Z,items:x,onItemSelectToggle:A,onItemDrag:U,onClick:B,isItemSelected:R,svgCache:g})}):h.length>0?(0,Rt.jsx)("div",{style:{margin:"1rem 0",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",fontSize:".9rem"},children:y("library.noItems")}):null]}),E&&(0,Rt.jsx)(dg,{style:{padding:"16px 0",width:"100%"},id:s,libraryReturnUrl:c,theme:a,children:(0,Rt.jsx)(Uy,{selectedItems:p,onSelectItems:d})})]})]})}var nn=w(P(),1),gc=wt(!1),Wk=({children:e})=>(0,nn.jsx)("div",{className:"layer-ui__library",children:e}),IF=({onInsertLibraryItems:e,pendingElements:t,onAddToLibrary:r,setAppState:o,libraryReturnUrl:i,library:a,id:s,theme:c,selectedItems:d,onSelectItems:p})=>{let[f]=Ve(Ll,dt),u=(0,Lo.useCallback)(x=>{(async(T,M)=>{Fe("element","addToLibrary","ui");for(let A of Yu)if(T.some(N=>N.type===A))return o({errorMessage:y(`errors.libraryElementTypeError.${A}`)});let I=[{status:"unpublished",elements:T,id:sa(),created:Date.now()},...M];r(),a.setLibrary(I).catch(()=>{o({errorMessage:y("alerts.errorAddingToLibrary")})})})(x,f.libraryItems)},[r,a,o,f.libraryItems]),g=(0,Lo.useMemo)(()=>f.libraryItems,[f]);if(f.status==="loading"&&!f.isInitialized)return(0,nn.jsx)(Wk,{children:(0,nn.jsx)("div",{className:"layer-ui__library-message",children:(0,nn.jsxs)("div",{children:[(0,nn.jsx)(kr,{size:"2em"}),(0,nn.jsx)("span",{children:y("labels.libraryLoadingMessage")})]})})});let h=f.libraryItems.length>0||t.length>0;return(0,nn.jsxs)(Wk,{children:[(0,nn.jsx)(Yy,{isLoading:f.status==="loading",libraryItems:g,onAddToLibrary:u,onInsertLibraryItems:e,pendingElements:t,id:s,libraryReturnUrl:i,theme:c,onSelectItems:p,selectedItems:d}),h&&(0,nn.jsx)(dg,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:s,libraryReturnUrl:i,theme:c})]})},_F=(e,t)=>{let r=()=>ze(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0}),o=(0,Lo.useRef)(r()),i=(0,Lo.useRef)(e),a=(0,Lo.useRef)(t);return(!fr(e.selectedElementIds,i.current.selectedElementIds)||!fr(t,a.current))&&(o.current=r(),i.current=e,a.current=t),o.current},Kk=()=>{let{library:e,id:t,onInsertElements:r}=Ur(),o=_a(),i=it(),a=nt(),s=Ta(),[c,d]=(0,Lo.useState)([]),p=(0,Lo.useMemo)(()=>e,[e]),f=_F(i,s),u=(0,Lo.useCallback)(h=>{r(cg(h))},[r]),g=(0,Lo.useCallback)(()=>{a({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[a]);return(0,nn.jsx)(IF,{pendingElements:f,onInsertLibraryItems:u,onAddToLibrary:g,setAppState:a,libraryReturnUrl:o.libraryReturnUrl,library:p,id:t,theme:i.theme,selectedItems:c,onSelectItems:d})};var Pa=w(P(),1);function AF(e){if(e&&typeof e=="number")return e;switch(e){case"small":return 550;case"wide":return 1024;case"regular":default:return 800}}var Bt=e=>{let[t,r]=rk(),[o]=(0,Tg.useState)(document.activeElement),{id:i}=Er(),a=ot().viewport.isMobile;(0,Tg.useEffect)(()=>{if(!t)return;let p=md(t);setTimeout(()=>{p.length>0&&e.autofocus!==!1&&(p[1]||p[0]).focus()});let f=u=>{if(u.key===L.TAB){let g=md(t),{activeElement:h}=document,x=g.findIndex(E=>E===h);x===0&&u.shiftKey?(g[g.length-1].focus(),u.preventDefault()):x===g.length-1&&!u.shiftKey&&(g[0].focus(),u.preventDefault())}};return t.addEventListener("keydown",f),()=>t.removeEventListener("keydown",f)},[t,e.autofocus]);let s=nt(),c=Ai(gc,dt),d=()=>{s({openMenu:null}),c(!1),o.focus(),e.onCloseRequest()};return(0,Pa.jsx)(lk,{className:j("Dialog",e.className,{"Dialog--fullscreen":a}),labelledBy:"dialog-title",maxWidth:AF(e.size),onCloseRequest:d,closeOnClickOutside:e.closeOnClickOutside,children:(0,Pa.jsxs)(Lr,{ref:r,children:[e.title&&(0,Pa.jsx)("h2",{id:`${i}-dialog-title`,className:"Dialog__title",children:(0,Pa.jsx)("span",{className:"Dialog__titleContent",children:e.title})}),a&&(0,Pa.jsx)("button",{className:"Dialog__close",onClick:d,title:y("buttons.close"),"aria-label":y("buttons.close"),type:"button",children:Vo}),(0,Pa.jsx)("div",{className:"Dialog__content",children:e.children})]})})};v();var Jn=w(J(),1);v();var Yk=w(P(),1),jn=({type:e="button",onSelect:t,selected:r,children:o,className:i="",...a})=>(0,Yk.jsx)("button",{onClick:aa(a.onClick,s=>{t()}),type:e,className:j("excalidraw-button",i,{selected:r}),...a,children:o});var Ol=w(P(),1),Cg=(0,Jn.forwardRef)(({onChange:e,label:t,fullWidth:r,placeholder:o,readonly:i,selectOnRender:a,onKeyDown:s,isRedacted:c=!1,...d},p)=>{let f=(0,Jn.useRef)(null);(0,Jn.useImperativeHandle)(p,()=>f.current),(0,Jn.useLayoutEffect)(()=>{a&&f.current?.select()},[a]);let[u,g]=(0,Jn.useState)(!1);return(0,Ol.jsxs)("div",{className:j("ExcTextField",{"ExcTextField--fullWidth":r}),onClick:()=>{f.current?.focus()},children:[(0,Ol.jsx)("div",{className:"ExcTextField__label",children:t}),(0,Ol.jsxs)("div",{className:j("ExcTextField__input",{"ExcTextField__input--readonly":i}),children:[(0,Ol.jsx)("input",{className:j({"is-redacted":"value"in d&&d.value&&c&&!u}),readOnly:i,value:"value"in d?d.value:void 0,defaultValue:"defaultValue"in d?d.defaultValue:void 0,placeholder:o,ref:f,onChange:h=>e?.(h.target.value),onKeyDown:s}),c&&(0,Ol.jsx)(jn,{onSelect:()=>g(!u),style:{border:0,userSelect:"none"},children:u?iC:Ss})]})]})});v();var kF={toggleTheme:[V("Shift+Alt+D")],saveScene:[V("CtrlOrCmd+S")],loadScene:[V("CtrlOrCmd+O")],clearCanvas:[V("CtrlOrCmd+Delete")],imageExport:[V("CtrlOrCmd+Shift+E")],commandPalette:[V("CtrlOrCmd+/"),V("CtrlOrCmd+Shift+P")],cut:[V("CtrlOrCmd+X")],copy:[V("CtrlOrCmd+C")],paste:[V("CtrlOrCmd+V")],copyStyles:[V("CtrlOrCmd+Alt+C")],pasteStyles:[V("CtrlOrCmd+Alt+V")],selectAll:[V("CtrlOrCmd+A")],deleteSelectedElements:[V("Delete")],duplicateSelection:[V("CtrlOrCmd+D"),V(`Alt+${y("helpDialog.drag")}`)],sendBackward:[V("CtrlOrCmd+[")],bringForward:[V("CtrlOrCmd+]")],sendToBack:[yn?V("CtrlOrCmd+Alt+["):V("CtrlOrCmd+Shift+[")],bringToFront:[yn?V("CtrlOrCmd+Alt+]"):V("CtrlOrCmd+Shift+]")],copyAsPng:[V("Shift+Alt+C")],copyAsSvg:[],group:[V("CtrlOrCmd+G")],ungroup:[V("CtrlOrCmd+Shift+G")],gridMode:[V("CtrlOrCmd+'")],zenMode:[V("Alt+Z")],objectsSnapMode:[V("Alt+S")],stats:[V("Alt+/")],addToLibrary:[],flipHorizontal:[V("Shift+H")],flipVertical:[V("Shift+V")],viewMode:[V("Alt+R")],hyperlink:[V("CtrlOrCmd+K")],toggleElementLock:[V("CtrlOrCmd+Shift+L")],resetZoom:[V("CtrlOrCmd+0")],zoomOut:[V("CtrlOrCmd+-")],zoomIn:[V("CtrlOrCmd++")],zoomToFitSelection:[V("Shift+3")],zoomToFit:[V("Shift+1")],zoomToFitSelectionInViewport:[V("Shift+2")],toggleEraserTool:[V("E")],toggleHandTool:[V("H")],setFrameAsActiveTool:[V("F")],saveFileToDisk:[V("CtrlOrCmd+S")],saveToActiveFile:[V("CtrlOrCmd+S")],toggleShortcuts:[V("?")]},lr=(e,t=0)=>{let r=kF[e];return r&&r.length>0?r[t]||r[0]:""};var T3=w(Zk(),1);v();var MF="\\u0300-\\u036f",PF="\\ufe20-\\ufe2f",LF="\\u20d0-\\u20ff",RF=MF+PF+LF,DF=`[${RF}]`,NF=RegExp(DF,"g"),OF=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,FF={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"E",\u00E6:"e",\u00DE:"T",\u00FE:"t",\u00DF:"s",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"I",\u0133:"i",\u0152:"E",\u0153:"e",\u0149:"n",\u017F:"s"},Vy=e=>e.replace(OF,t=>FF[t]||t).replace(NF,"");v();var qk=w(P(),1),an=({icon:e})=>(0,qk.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:e});v();var h3=w(J(),1);v();var _g=w(J(),1);v();var um=w(J());v();v();var jk=e=>{let t,r=new Set,o=(f,u)=>{let g=typeof f=="function"?f(t):f;if(!Object.is(g,t)){let h=t;t=u??(typeof g!="object"||g===null)?g:Object.assign({},t,g),r.forEach(x=>x(t,h))}},i=()=>t,d={setState:o,getState:i,getInitialState:()=>p,subscribe:f=>(r.add(f),()=>r.delete(f)),destroy:()=>{(_?_.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}},p=t=e(o,i,d);return d},Jk=e=>e?jk(e):jk;var c3=w(J(),1),d3=w(a3(),1),{useDebugValue:tB}=c3.default,{useSyncExternalStoreWithSelector:rB}=d3.default,l3=!1,oB=e=>e;function nB(e,t=oB,r){(_?_.MODE:void 0)!=="production"&&r&&!l3&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),l3=!0);let o=rB(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,r);return tB(o),o}var s3=e=>{(_?_.MODE:void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");let t=typeof e=="function"?Jk(e):e,r=(o,i)=>nB(t,o,i);return Object.assign(r,t),r},m3=e=>e?s3(e):s3;var u3,p3,f3=typeof window<"u"&&((u3=window.document)!=null&&u3.createElement||((p3=window.navigator)==null?void 0:p3.product)==="ReactNative")?um.default.useLayoutEffect:um.default.useEffect;function Dn(){let e=m3(t=>({current:new Array,version:0,set:t}));return{In:({children:t})=>{let r=e(i=>i.set),o=e(i=>i.version);return f3(()=>{r(i=>({version:i.version+1}))},[]),f3(()=>(r(({current:i})=>({current:[...i,t]})),()=>r(({current:i})=>({current:i.filter(a=>a!==t)}))),[t,o]),null},Out:()=>{let t=e(r=>r.current);return um.default.createElement(um.default.Fragment,null,t)}}}var Zy=_g.default.createContext(null),It=()=>_g.default.useContext(Zy),g3=()=>_g.default.useMemo(()=>({MainMenuTunnel:Dn(),WelcomeScreenMenuHintTunnel:Dn(),WelcomeScreenToolbarHintTunnel:Dn(),WelcomeScreenHelpHintTunnel:Dn(),WelcomeScreenCenterTunnel:Dn(),FooterCenterTunnel:Dn(),DefaultSidebarTriggerTunnel:Dn(),DefaultSidebarTabTriggersTunnel:Dn(),OverwriteConfirmDialogTunnel:Dn(),TTDDialogTriggerTunnel:Dn(),jotaiScope:Symbol()}),[]);var Ce=w(P(),1),qy=(e,t)=>{let r=t[0]?.type||null;for(let o of t)if(o.type!==r){r=null;break}return xd(e.activeTool.type)&&e.activeTool.type!=="image"&&r!=="image"&&r!=="frame"&&r!=="magicframe"||t.some(o=>xd(o.type))},jy=(e,t)=>ma(e.activeTool.type)||t.some(r=>ma(r.type)),Ag=({appState:e,elementsMap:t,renderAction:r})=>{let o=tf(t,e),i=!1;o.length===2&&(po(o[0])||po(o[1]))&&(i=!0);let a=!!e.editingElement,s=ot(),c=document.documentElement.getAttribute("dir")==="rtl",d=ma(e.activeTool.type)&&!nl(e.currentItemBackgroundColor)||o.some(u=>ma(u.type)&&!nl(u.backgroundColor)),p=o.length===1||i,f=!e.editingLinearElement&&o.length===1&&et(o[0]);return(0,Ce.jsxs)("div",{className:"panelColumn",children:[(0,Ce.jsx)("div",{children:qy(e,o)&&r("changeStrokeColor")}),jy(e,o)&&(0,Ce.jsx)("div",{children:r("changeBackgroundColor")}),d&&r("changeFillStyle"),(ux(e.activeTool.type)||o.some(u=>ux(u.type)))&&r("changeStrokeWidth"),(e.activeTool.type==="freedraw"||o.some(u=>u.type==="freedraw"))&&r("changeStrokeShape"),(px(e.activeTool.type)||o.some(u=>px(u.type)))&&(0,Ce.jsxs)(Ce.Fragment,{children:[r("changeStrokeStyle"),r("changeSloppiness")]}),(fx(e.activeTool.type)||o.some(u=>fx(u.type)))&&(0,Ce.jsx)(Ce.Fragment,{children:r("changeRoundness")}),(e.activeTool.type==="text"||o.some(ge))&&(0,Ce.jsxs)(Ce.Fragment,{children:[r("changeFontSize"),r("changeFontFamily"),(e.activeTool.type==="text"||zC(o,t))&&r("changeTextAlign")]}),BC(o,t)&&r("changeVerticalAlign"),(gs(e.activeTool.type)||o.some(u=>gs(u.type)))&&(0,Ce.jsx)(Ce.Fragment,{children:r("changeArrowhead")}),r("changeOpacity"),(0,Ce.jsxs)("fieldset",{children:[(0,Ce.jsx)("legend",{children:y("labels.layers")}),(0,Ce.jsxs)("div",{className:"buttonList",children:[r("sendToBack"),r("sendBackward"),r("bringForward"),r("bringToFront")]})]}),o.length>1&&!i&&(0,Ce.jsxs)("fieldset",{children:[(0,Ce.jsx)("legend",{children:y("labels.align")}),(0,Ce.jsxs)("div",{className:"buttonList",children:[c?(0,Ce.jsxs)(Ce.Fragment,{children:[r("alignRight"),r("alignHorizontallyCentered"),r("alignLeft")]}):(0,Ce.jsxs)(Ce.Fragment,{children:[r("alignLeft"),r("alignHorizontallyCentered"),r("alignRight")]}),o.length>2&&r("distributeHorizontally"),(0,Ce.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,Ce.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:"-0.5rem"},children:[r("alignTop"),r("alignVerticallyCentered"),r("alignBottom"),o.length>2&&r("distributeVertically")]})]})]}),!a&&o.length>0&&(0,Ce.jsxs)("fieldset",{children:[(0,Ce.jsx)("legend",{children:y("labels.actions")}),(0,Ce.jsxs)("div",{className:"buttonList",children:[!s.editor.isMobile&&r("duplicateSelection"),!s.editor.isMobile&&r("deleteSelectedElements"),r("group"),r("ungroup"),p&&r("hyperlink"),f&&r("toggleLinearEditor")]})]})]})},kg=({activeTool:e,appState:t,app:r,UIOptions:o})=>{let[i,a]=(0,h3.useState)(!1),s=e.type==="frame",c=e.type==="laser",d=e.type==="embeddable",{TTDDialogTriggerTunnel:p}=It();return(0,Ce.jsxs)(Ce.Fragment,{children:[xp.map(({value:f,icon:u,key:g,numericKey:h,fillable:x},E)=>{if(o.tools?.[f]===!1)return null;let T=y(`toolBar.${f}`),M=g&&ia(typeof g=="string"?g:g[0]),I=M?`${M} ${y("helpDialog.or")} ${h}`:`${h}`;return(0,Ce.jsx)(Ie,{className:j("Shape",{fillable:x}),type:"radio",icon:u,checked:e.type===f,name:"editor-current-shape",title:`${ia(T)} \u2014 ${I}`,keyBindingLabel:h||M,"aria-label":ia(T),"aria-keyshortcuts":I,"data-testid":`toolbar-${f}`,onPointerDown:({pointerType:A})=>{!t.penDetected&&A==="pen"&&r.togglePenMode(!0)},onChange:({pointerType:A})=>{t.activeTool.type!==f&&Fe("toolbar",f,"ui"),f==="image"?r.setActiveTool({type:f,insertOnCanvasDirectly:A!=="mouse"}):r.setActiveTool({type:f})}},f)}),(0,Ce.jsx)("div",{className:"App-toolbar__divider"}),(0,Ce.jsxs)(st,{open:i,children:[(0,Ce.jsxs)(st.Trigger,{className:j("App-toolbar__extra-tools-trigger",{"App-toolbar__extra-tools-trigger--selected":s||d||c&&!r.props.isCollaborating}),onToggle:()=>a(!i),title:y("toolBar.extraTools"),children:[oC,r.props.aiEnabled!==!1&&(0,Ce.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",borderRadius:6,fontSize:8,fontFamily:"Cascadia, monospace",position:"absolute",background:"var(--color-promo)",color:"var(--color-surface-lowest)",bottom:3,right:4},children:"AI"})]}),(0,Ce.jsxs)(st.Content,{onClickOutside:()=>a(!1),onSelect:()=>a(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,Ce.jsx)(st.Item,{onSelect:()=>r.setActiveTool({type:"frame"}),icon:up,shortcut:L.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:s,children:y("toolBar.frame")}),(0,Ce.jsx)(st.Item,{onSelect:()=>r.setActiveTool({type:"embeddable"}),icon:iT,"data-testid":"toolbar-embeddable",selected:d,children:y("toolBar.embeddable")}),(0,Ce.jsx)(st.Item,{onSelect:()=>r.setActiveTool({type:"laser"}),icon:fp,"data-testid":"toolbar-laser",selected:c,shortcut:L.K.toLocaleUpperCase(),children:y("toolBar.laser")}),(0,Ce.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),r.props.aiEnabled!==!1&&(0,Ce.jsx)(p.Out,{}),(0,Ce.jsx)(st.Item,{onSelect:()=>r.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:pp,"data-testid":"toolbar-embeddable",children:y("toolBar.mermaidToExcalidraw")}),r.props.aiEnabled!==!1&&(0,Ce.jsxs)(Ce.Fragment,{children:[(0,Ce.jsxs)(st.Item,{onSelect:()=>r.onMagicframeToolSelect(),icon:ws,"data-testid":"toolbar-magicframe",children:[y("toolBar.magicframe"),(0,Ce.jsx)(st.Item.Badge,{children:"AI"})]}),(0,Ce.jsx)(st.Item,{onSelect:()=>{Fe("ai","open-settings","d2c"),r.setOpenDialog({name:"settings",source:"settings",tab:"diagram-to-code"})},icon:Sd,"data-testid":"toolbar-magicSettings",children:y("toolBar.magicSettings")})]})]})]})]})},b3=({renderAction:e,zoom:t})=>(0,Ce.jsx)(Sr.Col,{gap:1,className:"zoom-actions",children:(0,Ce.jsxs)(Sr.Row,{align:"center",children:[e("zoomOut"),e("resetZoom"),e("zoomIn")]})}),x3=({renderAction:e,className:t})=>(0,Ce.jsxs)("div",{className:`undo-redo-buttons ${t}`,children:[(0,Ce.jsx)("div",{className:"undo-button-container",children:(0,Ce.jsx)(Mo,{label:y("buttons.undo"),children:e("undo")})}),(0,Ce.jsx)("div",{className:"redo-button-container",children:(0,Ce.jsxs)(Mo,{label:y("buttons.redo"),children:[" ",e("redo")]})})]}),v3=({actionManager:e,showExitZenModeBtn:t})=>(0,Ce.jsx)("button",{type:"button",className:j("disable-zen-mode",{"disable-zen-mode--visible":t}),onClick:()=>e.executeAction(cc),children:y("buttons.exitZenMode")}),y3=({renderAction:e,className:t})=>(0,Ce.jsx)("div",{className:`finalize-button ${t}`,children:e("finalize",{size:"small"})});v();var E3=w(J(),1),Jy=e=>{let t=(0,E3.useRef)({userFn:e});return t.current.userFn=e,t.current.stableFn||(t.current.stableFn=(...r)=>t.current.userFn(...r)),t.current.stableFn};v();var Mg=w(P(),1),Fl=wt(null),w3=()=>{let[e,t]=Ve(Fl,dt),r=gr();return e&&e==="clearCanvas"?(0,Mg.jsx)(ug,{onConfirm:()=>{r.executeAction(Di),t(null)},onCancel:()=>t(null),title:y("clearCanvasDialog.title"),children:(0,Mg.jsxs)("p",{className:"clear-canvas__content",children:[" ",y("alerts.clearReset")]})}):null};var Qy={};K1(Qy,{toggleTheme:()=>iB});v();var iB={...Sl,category:"App",label:"Toggle theme",perform:({actionManager:e})=>{e.executeAction(Sl,"commandPalette")}};var St=w(P(),1),aB=wt(null),qt={app:"App",export:"Export",tools:"Tools",editor:"Editor",elements:"Elements",links:"Links"},lB=e=>{switch(e){case qt.app:return 1;case qt.export:return 2;case qt.editor:return 3;case qt.tools:return 4;case qt.elements:return 5;case qt.links:return 6;default:return 10}},Pg=({shortcut:e,className:t,children:r})=>{let o=e.replace("++","+$").split("+");return(0,St.jsxs)("div",{className:j("shortcut",t),children:[o.map((i,a)=>(0,St.jsx)("div",{className:"shortcut-wrapper",children:(0,St.jsx)("div",{className:"shortcut-key",children:i==="$"?"+":i})},i)),(0,St.jsx)("div",{className:"shortcut-desc",children:r})]})},C3=e=>!e.altKey&&e[L.CTRL_OR_CMD]&&(e.shiftKey&&e.key.toLowerCase()===L.P||e.key===L.SLASH),Vle=Object.assign(e=>{let t=it(),r=nt();return(0,ln.useEffect)(()=>{let o=i=>{C3(i)&&(i.preventDefault(),i.stopPropagation(),r(a=>{let s=a.openDialog?.name==="commandPalette"?null:{name:"commandPalette"};return s&&Fe("command_palette","open","shortcut"),{openDialog:s}}))};return window.addEventListener("keydown",o,{capture:!0}),()=>window.removeEventListener("keydown",o,{capture:!0})},[r]),t.openDialog?.name!=="commandPalette"?null:(0,St.jsx)(sB,{...e})},{defaultItems:Qy});function sB({customCommandPaletteItems:e}){let t=Ur(),r=it(),o=nt(),i=_a(),a=gr(),[s,c]=Ve(aB),[d,p]=(0,ln.useState)(null),f=(0,ln.useRef)(null),u=oc({uiAppState:r,customCommandPaletteItems:e,appProps:i});(0,ln.useEffect)(()=>{let{uiAppState:R,customCommandPaletteItems:F,appProps:B}=u,Z=W=>{let se="";return W.label&&(typeof W.label=="function"?se=y(W.label(t.scene.getNonDeletedElements(),R,t)):se=y(W.label)),se},G=W=>typeof W.icon=="function"?W.icon(R,t.scene.getNonDeletedElements()):W.icon,te=[],de=(W,se,xe)=>{let Se={label:Z(W),icon:G(W),category:se,shortcut:lr(W.name),keywords:W.keywords,predicate:W.predicate,viewMode:W.viewMode,perform:()=>{a.executeAction(W,"commandPalette")}};return xe?xe(Se,W):Se};if(R&&t.scene&&a){let W=[a.actions.group,a.actions.ungroup,a.actions.cut,a.actions.copy,a.actions.deleteSelectedElements,a.actions.copyStyles,a.actions.pasteStyles,a.actions.bringToFront,a.actions.bringForward,a.actions.sendBackward,a.actions.sendToBack,a.actions.alignTop,a.actions.alignBottom,a.actions.alignLeft,a.actions.alignRight,a.actions.alignVerticallyCentered,a.actions.alignHorizontallyCentered,a.actions.duplicateSelection,a.actions.flipHorizontal,a.actions.flipVertical,a.actions.zoomToFitSelection,a.actions.zoomToFitSelectionInViewport,a.actions.increaseFontSize,a.actions.decreaseFontSize,a.actions.toggleLinearEditor,im].map(ue=>de(ue,qt.elements,(H,Y)=>({...H,predicate:Y.predicate?Y.predicate:(le,oe,ne,ce)=>ze(le,oe).length>0}))),se=[a.actions.toggleHandTool,a.actions.setFrameAsActiveTool].map(ue=>de(ue,qt.tools)),xe=[a.actions.undo,a.actions.redo,a.actions.zoomIn,a.actions.zoomOut,a.actions.resetZoom,a.actions.zoomToFit,a.actions.zenMode,a.actions.viewMode,a.actions.gridMode,a.actions.objectsSnapMode,a.actions.toggleShortcuts,a.actions.selectAll,a.actions.toggleElementLock,a.actions.unlockAllElements,a.actions.stats].map(ue=>de(ue,qt.editor)),Se=[a.actions.saveToActiveFile,a.actions.saveFileToDisk,a.actions.copyAsPng,a.actions.copyAsSvg].map(ue=>de(ue,qt.export));te=[...W,...xe,{label:Z(Di),icon:G(Di),shortcut:lr(Di.name),category:qt.editor,keywords:["delete","destroy"],viewMode:!1,perform:()=>{zr.set(Fl,"clearCanvas")}},{label:y("buttons.exportImage"),category:qt.export,icon:lp,shortcut:lr("imageExport"),keywords:["export","image","png","jpeg","svg","clipboard","picture"],perform:()=>{o({openDialog:{name:"imageExport"}})}},...Se];let Je=[{label:y("toolBar.library"),category:qt.app,icon:rp,viewMode:!1,perform:()=>{R.openSidebar?o({openSidebar:null}):o({openSidebar:{name:Sn.name,tab:Sn.defaultTab}})}},{label:y("labels.changeStroke"),keywords:["color","outline"],category:qt.elements,icon:ap,viewMode:!1,predicate:(ue,H)=>{let Y=ze(ue,H);return Y.length>0&&qy(H,Y)},perform:()=>{o(ue=>({openMenu:ue.openMenu==="shape"?null:"shape",openPopup:"elementStroke"}))}},{label:y("labels.changeBackground"),keywords:["color","fill"],icon:ap,category:qt.elements,viewMode:!1,predicate:(ue,H)=>{let Y=ze(ue,H);return Y.length>0&&jy(H,Y)},perform:()=>{o(ue=>({openMenu:ue.openMenu==="shape"?null:"shape",openPopup:"elementBackground"}))}},{label:y("labels.canvasBackground"),keywords:["color"],icon:ap,category:qt.editor,viewMode:!1,perform:()=>{o(ue=>({openMenu:ue.openMenu==="canvas"?null:"canvas",openPopup:"canvasBackground"}))}},...xp.reduce((ue,H)=>{let{value:Y,icon:le,key:oe,numericKey:ne}=H;if(B.UIOptions.tools?.[Y]===!1)return ue;let pe=oe&&ia(typeof oe=="string"?oe:oe[0])||ne,ye={label:y(`toolBar.${Y}`),category:qt.tools,shortcut:pe,icon:le,keywords:["toolbar"],viewMode:!1,perform:({event:Tt})=>{Y==="image"?t.setActiveTool({type:Y,insertOnCanvasDirectly:Tt.type==="keydown"}):t.setActiveTool({type:Y})}};return ue.push(ye),ue},[]),...se,{label:y("toolBar.lock"),category:qt.tools,icon:R.activeTool.locked?xs:al,shortcut:L.Q.toLocaleUpperCase(),viewMode:!1,perform:()=>{t.toggleLock()}},{label:`${y("labels.textToDiagram")}...`,category:qt.tools,icon:lC,viewMode:!1,predicate:B.aiEnabled,perform:()=>{o(ue=>({...ue,openDialog:{name:"ttd",tab:"text-to-diagram"}}))}},{label:`${y("toolBar.mermaidToExcalidraw")}...`,category:qt.tools,icon:pp,viewMode:!1,predicate:B.aiEnabled,perform:()=>{o(ue=>({...ue,openDialog:{name:"ttd",tab:"mermaid"}}))}}],Ee=[...te,...Je,...F||[]].map(ue=>({...ue,icon:ue.icon||hp,order:ue.order??lB(ue.category),haystack:`${Vy(ue.label.toLocaleLowerCase())} ${ue.keywords?.join(" ")||""}`}));p(Ee),c(Ee.find(ue=>ue.label===s?.label)??null)}},[u,t,a,p,s?.label,c,o]);let[g,h]=(0,ln.useState)(""),[x,E]=(0,ln.useState)(null),[T,M]=(0,ln.useState)({}),I=R=>{o({openDialog:null},R),h("")},A=(R,F)=>{r.openDialog?.name==="commandPalette"&&(F.stopPropagation(),F.preventDefault(),document.body.classList.add("excalidraw-animations-disabled"),I(()=>{R.perform({actionManager:a,event:F}),c(R),requestAnimationFrame(()=>{document.body.classList.remove("excalidraw-animations-disabled")})}))},N=Jy(R=>R.viewMode===!1&&r.viewModeEnabled?!1:typeof R.predicate=="function"?R.predicate(t.scene.getNonDeletedElements(),r,i,t):R.predicate===void 0||R.predicate),U=Jy(R=>{let F=Ko(R.target)||C3(R)||R.key===L.ESCAPE;if(F&&R.key!==L.ARROW_UP&&R.key!==L.ARROW_DOWN&&R.key!==L.ENTER)return;let B=Object.values(T).flat(),Z=s&&!g&&N(s);if(R.key===L.ARROW_UP){R.preventDefault();let G=B.findIndex(W=>W.label===x?.label);if(Z){if(G===0){E(s);return}if(x===s){let W=B[B.length-1];W&&E(W);return}}let te;G===-1?te=B.length-1:te=G===0?B.length-1:(G-1)%B.length;let de=B[te];de&&E(de);return}if(R.key===L.ARROW_DOWN){R.preventDefault();let G=B.findIndex(W=>W.label===x?.label);if(Z){if(!x||G===B.length-1){E(s);return}if(x===s){let W=B[0];W&&E(W);return}}let te=(G+1)%B.length,de=B[te];de&&E(de);return}if(R.key===L.ENTER&&x&&setTimeout(()=>{A(x,R)}),!F){if(R.stopPropagation(),/^[a-zA-Z0-9]$/.test(R.key)){f?.current?.focus();return}R.preventDefault()}});return(0,ln.useEffect)(()=>(window.addEventListener("keydown",U,{capture:!0}),()=>window.removeEventListener("keydown",U,{capture:!0})),[U]),(0,ln.useEffect)(()=>{if(!d)return;let R=G=>{let te={};for(let de of G)te[de.category]?te[de.category].push(de):te[de.category]=[de];return te},F=d.filter(N).sort((G,te)=>G.order-te.order),B=!g&&s&&N(s);if(!g){M(R(B?F.filter(G=>G.label!==s?.label):F)),E(B?s:F[0]||null);return}let Z=Vy(g.toLocaleLowerCase().replace(/[<>_| -]/g,""));F=T3.default.filter(Z,F,{extract:G=>G.haystack}).sort((G,te)=>te.score-G.score).map(G=>G.original),M(R(F)),E(F[0]??null)},[g,d,N,s]),(0,St.jsxs)(Bt,{onCloseRequest:()=>I(),closeOnClickOutside:!0,title:!1,size:720,autofocus:!0,className:"command-palette-dialog",children:[(0,St.jsx)(Cg,{value:g,placeholder:y("commandPalette.search.placeholder"),onChange:R=>{h(R)},selectOnRender:!0,ref:f}),!t.device.viewport.isMobile&&(0,St.jsxs)("div",{className:"shortcuts-wrapper",children:[(0,St.jsx)(Pg,{shortcut:"\u2191\u2193",children:y("commandPalette.shortcuts.select")}),(0,St.jsx)(Pg,{shortcut:"\u21B5",children:y("commandPalette.shortcuts.confirm")}),(0,St.jsx)(Pg,{shortcut:V("Esc"),children:y("commandPalette.shortcuts.close")})]}),(0,St.jsxs)("div",{className:"commands",children:[s&&!g&&(0,St.jsxs)("div",{className:"command-category",children:[(0,St.jsxs)("div",{className:"command-category-title",children:[y("commandPalette.recents"),(0,St.jsx)("div",{className:"icon",style:{marginLeft:"6px"},children:sC})]}),(0,St.jsx)(S3,{command:s,isSelected:s.label===x?.label,onClick:R=>A(s,R),disabled:!N(s),onMouseMove:()=>E(s),showShortcut:!t.device.viewport.isMobile,appState:r})]}),Object.keys(T).length>0?Object.keys(T).map((R,F)=>(0,St.jsxs)("div",{className:"command-category",children:[(0,St.jsx)("div",{className:"command-category-title",children:R}),T[R].map(B=>(0,St.jsx)(S3,{command:B,isSelected:B.label===x?.label,onClick:Z=>A(B,Z),onMouseMove:()=>E(B),showShortcut:!t.device.viewport.isMobile,appState:r},B.label))]},R)):d?(0,St.jsxs)("div",{className:"no-match",children:[(0,St.jsx)("div",{className:"icon",children:gp})," ",y("commandPalette.search.noMatch")]}):null]})]})}var S3=({command:e,isSelected:t,disabled:r,onMouseMove:o,onClick:i,showShortcut:a,appState:s})=>{let c=()=>{};return(0,St.jsxs)("div",{className:j("command-item",{"item-selected":t,"item-disabled":r}),ref:d=>{t&&!r&&d?.scrollIntoView?.({block:"nearest"})},onClick:r?c:i,onMouseMove:r?c:o,title:r?y("commandPalette.itemNotAvailable"):"",children:[(0,St.jsxs)("div",{className:"name",children:[e.icon&&(0,St.jsx)(an,{icon:typeof e.icon=="function"?e.icon(s):e.icon}),e.label]}),a&&e.shortcut&&(0,St.jsx)(Pg,{shortcut:e.shortcut})]})};var I3=w(P(),1),eE=re({name:"toggleLinearEditor",category:qt.elements,label:(e,t,r)=>r.scene.getSelectedElements({selectedElementIds:t.selectedElementIds})[0]?.type==="arrow"?"labels.lineEditor.editArrow":"labels.lineEditor.edit",keywords:["line"],trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return!!(!t.editingLinearElement&&i.length===1&&et(i[0]))},perform(e,t,r,o){let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0})[0],a=t.editingLinearElement?.elementId===i.id?null:new Le(i);return{appState:{...t,editingLinearElement:a},storeAction:K.CAPTURE}},PanelComponent:({appState:e,updateData:t,app:r})=>{let o=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds})[0],i=y(o.type==="arrow"?"labels.lineEditor.editArrow":"labels.lineEditor.edit");return(0,I3.jsx)(Ie,{type:"button",icon:wC,title:i,"aria-label":i,onClick:()=>t(null)})}});v();v();var Bl=class{constructor(t=!0,r=!0){this.isUndoStackEmpty=t;this.isRedoStackEmpty=r}},pm=class e{onHistoryChangedEmitter=new jo;undoStack=[];redoStack=[];get isUndoStackEmpty(){return this.undoStack.length===0}get isRedoStackEmpty(){return this.redoStack.length===0}clear(){this.undoStack.length=0,this.redoStack.length=0}record(t,r){let o=tE.create(r,t);o.isEmpty()||(this.undoStack.push(o.inverse()),o.elementsChange.isEmpty()||(this.redoStack.length=0),this.onHistoryChangedEmitter.trigger(new Bl(this.isUndoStackEmpty,this.isRedoStackEmpty)))}undo(t,r,o){return this.perform(t,r,o,()=>e.pop(this.undoStack),i=>e.push(this.redoStack,i,t))}redo(t,r,o){return this.perform(t,r,o,()=>e.pop(this.redoStack),i=>e.push(this.undoStack,i,t))}perform(t,r,o,i,a){try{let s=i();if(s===null)return;let c=t,d=r,p=!1;for(;s;){try{[c,d,p]=s.applyTo(c,d,o)}finally{a(s)}if(p)break;s=i()}return[c,d]}finally{this.onHistoryChangedEmitter.trigger(new Bl(this.isUndoStackEmpty,this.isRedoStackEmpty))}}static pop(t){if(!t.length)return null;let r=t.pop();return r!==void 0?r:null}static push(t,r,o){let i=r.inverse().applyLatestChanges(o);return t.push(i)}},tE=class e{constructor(t,r){this.appStateChange=t;this.elementsChange=r}static create(t,r){return new e(t,r)}inverse(){return new e(this.appStateChange.inverse(),this.elementsChange.inverse())}applyTo(t,r,o){let[i,a]=this.elementsChange.applyTo(t,o.elements),[s,c]=this.appStateChange.applyTo(r,i);return[i,s,a||c]}applyLatestChanges(t){let r=this.elementsChange.applyLatestChanges(t);return e.create(this.appStateChange,r)}isEmpty(){return this.appStateChange.isEmpty()&&this.elementsChange.isEmpty()}};v();var Lg=w(J(),1),rE=(e,t)=>{let[r,o]=(0,Lg.useState)(t);return(0,Lg.useEffect)(()=>{let i=e.on(a=>{o(a)});return()=>{i()}},[e]),r};var oE=w(P(),1),_3=(e,t)=>{if(!e.multiElement&&!e.resizingElement&&!e.editingElement&&!e.draggingElement){let r=t();if(!r)return{storeAction:K.NONE};let[o,i]=r,a=Array.from(o.values());return{appState:i,elements:a,storeAction:K.UPDATE}}return{storeAction:K.NONE}},A3=(e,t)=>({name:"undo",label:"buttons.undo",icon:xx,trackEvent:{category:"history"},viewMode:!1,perform:(r,o)=>_3(o,()=>e.undo(Pe(r),o,t.snapshot)),keyTest:r=>r[L.CTRL_OR_CMD]&&r.key.toLowerCase()===L.Z&&!r.shiftKey,PanelComponent:({updateData:r,data:o})=>{let{isUndoStackEmpty:i}=rE(e.onHistoryChangedEmitter,new Bl(e.isUndoStackEmpty,e.isRedoStackEmpty));return(0,oE.jsx)(Ie,{type:"button",icon:xx,"aria-label":y("buttons.undo"),onClick:r,size:o?.size||"medium",disabled:i,"data-testid":"button-undo"})}}),k3=(e,t)=>({name:"redo",label:"buttons.redo",icon:vx,trackEvent:{category:"history"},viewMode:!1,perform:(r,o)=>_3(o,()=>e.redo(Pe(r),o,t.snapshot)),keyTest:r=>r[L.CTRL_OR_CMD]&&r.shiftKey&&r.key.toLowerCase()===L.Z||Ru&&r.ctrlKey&&!r.shiftKey&&r.key===L.Y,PanelComponent:({updateData:r,data:o})=>{let{isRedoStackEmpty:i}=rE(e.onHistoryChangedEmitter,new Bl(e.isUndoStackEmpty,e.isRedoStackEmpty));return(0,oE.jsx)(Ie,{type:"button",icon:vx,"aria-label":y("buttons.redo"),onClick:r,size:o?.size||"medium",disabled:i,"data-testid":"button-redo"})}});v();var M3=w(P(),1),nE=(e,t,r,o,i,a)=>{if(e.trackEvent)try{typeof e.trackEvent=="object"&&(!e.trackEvent.predicate||e.trackEvent.predicate(r,o,a))&&Fe(e.trackEvent.category,e.trackEvent.action||e.name,`${t} (${i.device.editor.isMobile?"mobile":"desktop"})`)}catch(s){console.error("error while logging action:",s)}},Rg=class{actions={};updater;getAppState;getElementsIncludingDeleted;app;constructor(t,r,o,i){this.updater=a=>{if(cs(a))a.then(s=>t(s));else return t(a)},this.getAppState=r,this.getElementsIncludingDeleted=o,this.app=i}registerAction(t){this.actions[t.name]=t}registerAll(t){t.forEach(r=>this.registerAction(r))}handleKeyDown(t){let r=this.app.props.UIOptions.canvasActions,o=Object.values(this.actions).sort((d,p)=>(p.keyPriority||0)-(d.keyPriority||0)).filter(d=>(d.name in r?r[d.name]:!0)&&d.keyTest&&d.keyTest(t,this.getAppState(),this.getElementsIncludingDeleted(),this.app));if(o.length!==1)return o.length>1&&console.warn("Canceling as multiple actions match this shortcut",o),!1;let i=o[0];if(this.getAppState().viewModeEnabled&&i.viewMode!==!0)return!1;let a=this.getElementsIncludingDeleted(),s=this.getAppState(),c=null;return nE(i,"keyboard",s,a,this.app,null),t.preventDefault(),t.stopPropagation(),this.updater(o[0].perform(a,s,c,this.app)),!0}executeAction(t,r="api",o=null){let i=this.getElementsIncludingDeleted(),a=this.getAppState();nE(t,r,a,i,this.app,o),this.updater(t.perform(i,a,o,this.app))}renderAction=(t,r)=>{let o=this.app.props.UIOptions.canvasActions;if(this.actions[t]&&"PanelComponent"in this.actions[t]&&(!(t in o)||o[t])){let i=this.actions[t],a=i.PanelComponent;a.displayName="PanelComponent";let s=this.getElementsIncludingDeleted(),c=this.getAppState(),d=p=>{nE(i,"ui",c,s,this.app,p),this.updater(i.perform(this.getElementsIncludingDeleted(),this.getAppState(),p,this.app))};return(0,M3.jsx)(a,{elements:this.getElementsIncludingDeleted(),appState:this.getAppState(),updateData:d,appProps:this.app.props,app:this.app,data:r})}return null};isActionEnabled=t=>{let r=this.getElementsIncludingDeleted(),o=this.getAppState();return!t.predicate||t.predicate(r,o,this.app.props,this.app)}};v();var iE=e=>{let t=Array.from(e.values());return{x:P3(t,r=>r.x)/t.length,y:P3(t,r=>r.y)/t.length}},aE=([e,t])=>Math.hypot(e.x-t.x,e.y-t.y),P3=(e,t)=>e.reduce((r,o)=>r+t(o),0);v();var L3=w(J(),1),Fi=w(P(),1),Kr="separator",R3=L3.default.memo(({actionManager:e,items:t,top:r,left:o,onClose:i})=>{let a=Aa(),s=Ta(),c=t.reduce((d,p)=>(p&&(p===Kr||!p.predicate||p.predicate(s,a,e.app.props,e.app))&&d.push(p),d),[]);return(0,Fi.jsx)(Kf,{onCloseRequest:()=>{i()},top:r,left:o,fitInViewport:!0,offsetLeft:a.offsetLeft,offsetTop:a.offsetTop,viewportWidth:a.width,viewportHeight:a.height,children:(0,Fi.jsx)("ul",{className:"context-menu",onContextMenu:d=>d.preventDefault(),children:c.map((d,p)=>{if(d===Kr)return!c[p-1]||c[p-1]===Kr?null:(0,Fi.jsx)("hr",{className:"context-menu-item-separator"},p);let f=d.name,u="";return d.label&&(typeof d.label=="function"?u=y(d.label(s,a,e.app)):u=y(d.label)),(0,Fi.jsx)("li",{"data-testid":f,onClick:()=>{i(()=>{e.executeAction(d,"contextMenu")})},children:(0,Fi.jsxs)("button",{type:"button",className:j("context-menu-item",{dangerous:f==="deleteSelectedElements",checkmark:d.checked?.(a)}),children:[(0,Fi.jsx)("div",{className:"context-menu-item__label",children:u}),(0,Fi.jsx)("kbd",{className:"context-menu-item__shortcut",children:f?lr(f):""})]})},p)})})})});v();var fM=w(J(),1);v();var Dg=w(J(),1);var yc=w(P(),1),D3=({children:e,onClose:t})=>{let[r,o]=(0,Dg.useState)(!!e),{container:i}=Er(),a=Dg.default.useCallback(()=>{o(!1),t&&t(),i?.focus()},[t,i]);return(0,yc.jsx)(yc.Fragment,{children:r&&(0,yc.jsx)(Bt,{size:"small",onCloseRequest:a,title:y("errorDialog.title"),children:(0,yc.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:e})})})};v();var Ro=w(J(),1);v();var fm=w(P(),1),Ng=function({onChange:e,value:t,choices:r,name:o}){return(0,fm.jsx)("div",{className:"RadioGroup",children:r.map(i=>(0,fm.jsxs)("div",{className:j("RadioGroup__choice",{active:i.value===t}),title:i.ariaLabel,children:[(0,fm.jsx)("input",{name:o,type:"radio",checked:i.value===t,onChange:()=>e(i.value),"aria-label":i.ariaLabel}),i.label]},String(i.value)))})};v();var lE=w(P(),1),gm=({title:e,name:t,checked:r,onChange:o,disabled:i=!1})=>(0,lE.jsx)("div",{className:j("Switch",{toggled:r,disabled:i}),children:(0,lE.jsx)("input",{name:t,id:t,title:e,type:"checkbox",checked:r,disabled:i,onChange:()=>o(!r),onKeyDown:a=>{a.key===" "&&o(!r)}})});v();var Og=w(J(),1);var Ec=w(P(),1),Qn=(0,Og.forwardRef)(({children:e,icon:t,onClick:r,label:o,variant:i="filled",color:a="primary",size:s="medium",fullWidth:c,className:d},p)=>{let[f,u]=(0,Og.useState)(!1),g=async h=>{let x=r?.(h);if(cs(x))try{u(!0),await x}catch(E){if(E instanceof us)console.warn(E);else throw E}finally{u(!1)}};return(0,Ec.jsx)("button",{className:j("ExcButton",`ExcButton--color-${a}`,`ExcButton--variant-${i}`,`ExcButton--size-${s}`,{"ExcButton--fullWidth":c},d),onClick:g,type:"button","aria-label":o,ref:p,disabled:f,children:(0,Ec.jsxs)("div",{className:"ExcButton__contents",children:[f&&(0,Ec.jsx)(kr,{}),t&&(0,Ec.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:t}),i!=="icon"&&(e??o)]})})});var tt=w(P(),1),cB="filter"in document.createElement("canvas").getContext("2d"),dB=()=>(0,tt.jsxs)("div",{children:[(0,tt.jsx)("h3",{children:y("canvasError.cannotShowPreview")}),(0,tt.jsx)("p",{children:(0,tt.jsx)("span",{children:y("canvasError.canvasTooBig")})}),(0,tt.jsxs)("em",{children:["(",y("canvasError.canvasTooBigTip"),")"]})]}),mB=({appStateSnapshot:e,elementsSnapshot:t,files:r,actionManager:o,onExportImage:i,name:a})=>{let s=ft(t,e),[c,d]=(0,Ro.useState)(a),[p,f]=(0,Ro.useState)(s),[u,g]=(0,Ro.useState)(e.exportBackground),[h,x]=(0,Ro.useState)(e.exportWithDarkMode),[E,T]=(0,Ro.useState)(e.exportEmbedScene),[M,I]=(0,Ro.useState)(e.exportScale),A=(0,Ro.useRef)(null),[N,U]=(0,Ro.useState)(null),{exportedElements:R,exportingFrame:F}=Cl(t,e,p);return(0,Ro.useEffect)(()=>{let B=A.current;if(!B)return;let Z=B.offsetWidth,G=B.offsetHeight;Z&&fl({elements:R,appState:{...e,name:c,exportBackground:u,exportWithDarkMode:h,exportScale:M,exportEmbedScene:E},files:r,exportPadding:na,maxWidthOrHeight:Math.max(Z,G),exportingFrame:F}).then(te=>(U(null),Ci(te).then(()=>{B.replaceChildren(te)}).catch(de=>{throw de.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(y("canvasError.canvasTooBig")):de}))).catch(te=>{console.error(te),U(te)})},[e,r,R,F,c,u,h,M,E]),(0,tt.jsxs)("div",{className:"ImageExportModal",children:[(0,tt.jsx)("h3",{children:y("imageExportDialog.header")}),(0,tt.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,tt.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:A,children:N&&(0,tt.jsx)(dB,{})}),(0,tt.jsx)("div",{className:"ImageExportModal__preview__filename",children:!Ms&&(0,tt.jsx)("input",{type:"text",className:"TextInput",value:c,style:{width:"30ch"},onChange:B=>{d(B.target.value),o.executeAction(my,"ui",B.target.value)}})})]}),(0,tt.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,tt.jsx)("h3",{children:y("imageExportDialog.header")}),s&&(0,tt.jsx)(hm,{label:y("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,tt.jsx)(gm,{name:"exportOnlySelected",checked:p,onChange:B=>{f(B)}})}),(0,tt.jsx)(hm,{label:y("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,tt.jsx)(gm,{name:"exportBackgroundSwitch",checked:u,onChange:B=>{g(B),o.executeAction(uy,"ui",B)}})}),cB&&(0,tt.jsx)(hm,{label:y("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,tt.jsx)(gm,{name:"exportDarkModeSwitch",checked:h,onChange:B=>{x(B),o.executeAction(FA,"ui",B)}})}),(0,tt.jsx)(hm,{label:y("imageExportDialog.label.embedScene"),tooltip:y("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,tt.jsx)(gm,{name:"exportEmbedSwitch",checked:E,onChange:B=>{T(B),o.executeAction(Xf,"ui",B)}})}),(0,tt.jsx)(hm,{label:y("imageExportDialog.label.scale"),name:"exportScale",children:(0,tt.jsx)(Ng,{name:"exportScale",value:M,onChange:B=>{I(B),o.executeAction(OA,"ui",B)},choices:Uu.map(B=>({value:B,label:`${B}\xD7`}))})}),(0,tt.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,tt.jsx)(Qn,{className:"ImageExportModal__settings__buttons__button",label:y("imageExportDialog.title.exportToPng"),onClick:()=>i(Bu.png,R,{exportingFrame:F}),icon:Dx,children:y("imageExportDialog.button.exportToPng")}),(0,tt.jsx)(Qn,{className:"ImageExportModal__settings__buttons__button",label:y("imageExportDialog.title.exportToSvg"),onClick:()=>i(Bu.svg,R,{exportingFrame:F}),icon:Dx,children:y("imageExportDialog.button.exportToSvg")}),(Ps||fi)&&(0,tt.jsx)(Qn,{className:"ImageExportModal__settings__buttons__button",label:y("imageExportDialog.title.copyPngToClipboard"),onClick:()=>i(Bu.clipboard,R,{exportingFrame:F}),icon:mp,children:y("imageExportDialog.button.copyPngToClipboard")})]})]})]})},hm=({label:e,children:t,tooltip:r,name:o})=>(0,tt.jsxs)("div",{className:"ImageExportModal__settings__setting",title:e,children:[(0,tt.jsxs)("label",{htmlFor:o,className:"ImageExportModal__settings__setting__label",children:[e,r&&(0,tt.jsx)(Mo,{label:r,long:!0,children:eC})]}),(0,tt.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:t})]}),N3=({elements:e,appState:t,files:r,actionManager:o,onExportImage:i,onCloseRequest:a,name:s})=>{let[{appStateSnapshot:c,elementsSnapshot:d}]=(0,Ro.useState)(()=>({appStateSnapshot:uo(t),elementsSnapshot:uo(e)}));return(0,tt.jsx)(Bt,{onCloseRequest:a,size:"wide",title:!1,children:(0,tt.jsx)(mB,{elementsSnapshot:d,appStateSnapshot:c,files:r,actionManager:o,onExportImage:i,name:s})})};v();var O3=w(P(),1),Fg=({children:e,side:t,className:r})=>(0,O3.jsx)("div",{className:j("FixedSideContainer",`FixedSideContainer_side_${t}`,r),children:e});v();var sE=w(P(),1),uB=({appState:e,isMobile:t,device:r,app:o})=>{let{activeTool:i,isResizing:a,isRotating:s,lastPointerDownWith:c}=e,d=e.multiElement!==null;if(e.openSidebar&&!r.editor.canFitSidebar)return null;if(Zo(e))return y("hints.eraserRevert");if(i.type==="arrow"||i.type==="line")return d?y("hints.linearElementMulti"):y("hints.linearElement");if(i.type==="freedraw")return y("hints.freeDraw");if(i.type==="text")return y("hints.text");if(i.type==="embeddable")return y("hints.embeddable");if(e.activeTool.type==="image"&&e.pendingImageElementId)return y("hints.placeImage");let p=o.scene.getSelectedElements(e);if(a&&c==="mouse"&&p.length===1){let f=p[0];return et(f)&&f.points.length===2?y("hints.lockAngle"):la(f)?y("hints.resizeImage"):y("hints.resize")}if(s&&c==="mouse")return y("hints.rotate");if(p.length===1&&ge(p[0]))return y("hints.text_selected");if(e.editingElement&&ge(e.editingElement))return y("hints.text_editing");if(i.type==="selection"){if(e.draggingElement?.type==="selection"&&!p.length&&!e.editingElement&&!e.editingLinearElement)return y("hints.deepBoxSelect");if(e.gridSize&&e.draggingElement)return y("hints.disableSnapping");if(!p.length&&!t)return y("hints.canvasPanning");if(p.length===1){if(et(p[0]))return e.editingLinearElement?e.editingLinearElement.selectedPointsIndices?y("hints.lineEditor_pointSelected"):y("hints.lineEditor_nothingSelected"):y("hints.lineEditor_info");if(!e.draggingElement&&bi(p[0]))return y("hints.bindTextToElement")}}return null},Bg=({appState:e,isMobile:t,device:r,app:o})=>{let i=uB({appState:e,isMobile:t,device:r,app:o});return i?(i=V(i),(0,sE.jsx)("div",{className:"HintViewer",children:(0,sE.jsx)("span",{children:i})})):null};v();var bm=w(P(),1),pB="medium",F3={CHECKED:xs,UNCHECKED:al},zg=e=>(0,bm.jsxs)("label",{className:j("ToolIcon ToolIcon__lock",`ToolIcon_size_${pB}`,{"is-mobile":e.isMobile}),title:`${e.title} \u2014 Q`,children:[(0,bm.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title,"data-testid":"toolbar-lock"}),(0,bm.jsx)("div",{className:"ToolIcon__icon",children:e.checked?F3.CHECKED:F3.UNCHECKED})]});v();v();var zl=w(P(),1),La=({heading:e,children:t,...r})=>{let{id:o}=Er(),i=(0,zl.jsx)("h2",{className:"visually-hidden",id:`${o}-${e}-title`,children:y(`headings.${e}`)});return(0,zl.jsx)("section",{...r,"aria-labelledby":`${o}-${e}-title`,children:typeof t=="function"?t(i):(0,zl.jsxs)(zl.Fragment,{children:[i,t]})})};v();var Nn=4,ei=6,B3="rgba(0,0,0,0.3)",z3=(e,t,r,o)=>{if(!e.length)return{horizontal:null,vertical:null};let[i,a,s,c]=lt(e),d=t/o.zoom.value,p=r/o.zoom.value,f=t-d,u=r-p,g={top:parseInt(sd("sat"))||0,bottom:parseInt(sd("sab"))||0,left:parseInt(sd("sal"))||0,right:parseInt(sd("sar"))||0},h=ki().rtl,x=-o.scrollX+f/2+g.left,E=-o.scrollY+u/2+g.top,T=x+d-g.right,M=E+p-g.bottom,I=Math.min(i,x),A=Math.min(a,E),N=Math.max(s,T),U=Math.max(c,M);return{horizontal:x===I&&T===N?null:{x:Math.max(g.left,Nn)+(x-I)/(N-I)*t,y:r-ei-Math.max(Nn,g.bottom),width:(T-x)/(N-I)*t-Math.max(Nn*2,g.left+g.right),height:ei},vertical:E===A&&M===U?null:{x:h?Math.max(g.left,Nn):t-ei-Math.max(g.right,Nn),y:(E-A)/(U-A)*r+Math.max(g.top,Nn),width:ei,height:(M-E)/(U-A)*r-Math.max(Nn*2,g.top+g.bottom)}}},cE=(e,t,r)=>{let[o,i]=[e.horizontal,e.vertical].map(s=>s!=null&&s.x<=t&&t<=s.x+s.width&&s.y<=r&&r<=s.y+s.height);return{isOverEither:o||i,isOverHorizontal:o,isOverVertical:i}};v();var xm=w(P(),1),fB="medium",$g=e=>e.penDetected?(0,xm.jsxs)("label",{className:j("ToolIcon ToolIcon__penMode",`ToolIcon_size_${fB}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,xm.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title}),(0,xm.jsx)("div",{className:"ToolIcon__icon",children:oT})]}):null;v();var $3=w(P(),1),Hg=e=>(0,$3.jsx)(Ie,{className:j("Shape",{fillable:!1}),type:"radio",icon:dp,name:"editor-current-shape",checked:e.checked,title:`${e.title} \u2014 H`,keyBindingLabel:e.isMobile?void 0:L.H.toLocaleUpperCase(),"aria-label":`${e.title} \u2014 H`,"aria-keyshortcuts":L.H,"data-testid":"toolbar-hand",onChange:()=>e.onChange?.()});var xt=w(P(),1),H3=({appState:e,elements:t,actionManager:r,setAppState:o,onLockToggle:i,onHandToolToggle:a,onPenModeToggle:s,renderTopRightUI:c,renderCustomStats:d,renderSidebars:p,device:f,renderWelcomeScreen:u,UIOptions:g,app:h})=>{let{WelcomeScreenCenterTunnel:x,MainMenuTunnel:E,DefaultSidebarTriggerTunnel:T}=It(),M=()=>(0,xt.jsxs)(Fg,{side:"top",className:"App-top-bar",children:[u&&(0,xt.jsx)(x.Out,{}),(0,xt.jsx)(La,{heading:"shapes",children:A=>(0,xt.jsx)(Sr.Col,{gap:4,align:"center",children:(0,xt.jsxs)(Sr.Row,{gap:1,className:"App-toolbar-container",children:[(0,xt.jsxs)(Lr,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[A,(0,xt.jsx)(Sr.Row,{gap:1,children:(0,xt.jsx)(kg,{appState:e,activeTool:e.activeTool,UIOptions:g,app:h})})]}),c&&c(!0,e),(0,xt.jsxs)("div",{className:"mobile-misc-tools-container",children:[!e.viewModeEnabled&&(0,xt.jsx)(T.Out,{}),(0,xt.jsx)($g,{checked:e.penMode,onChange:()=>s(null),title:y("toolBar.penMode"),isMobile:!0,penDetected:e.penDetected}),(0,xt.jsx)(zg,{checked:e.activeTool.locked,onChange:i,title:y("toolBar.lock"),isMobile:!0}),(0,xt.jsx)(Hg,{checked:Si(e),onChange:()=>a(),title:y("toolBar.hand"),isMobile:!0})]})]})})}),(0,xt.jsx)(Bg,{appState:e,isMobile:!0,device:f,app:h})]}),I=()=>e.viewModeEnabled?(0,xt.jsx)("div",{className:"App-toolbar-content",children:(0,xt.jsx)(E.Out,{})}):(0,xt.jsxs)("div",{className:"App-toolbar-content",children:[(0,xt.jsx)(E.Out,{}),r.renderAction("toggleEditMenu"),r.renderAction("undo"),r.renderAction("redo"),r.renderAction(e.multiElement?"finalize":"duplicateSelection"),r.renderAction("deleteSelectedElements")]});return(0,xt.jsxs)(xt.Fragment,{children:[p(),!e.viewModeEnabled&&M(),(0,xt.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:ei+Nn*2,marginLeft:ei+Nn*2,marginRight:ei+Nn*2},children:(0,xt.jsxs)(Lr,{padding:0,children:[e.openMenu==="shape"&&!e.viewModeEnabled&&Ds(e,t)?(0,xt.jsx)(La,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,xt.jsx)(Ag,{appState:e,elementsMap:h.scene.getNonDeletedElementsMap(),renderAction:r.renderAction})}):null,(0,xt.jsxs)("footer",{className:"App-toolbar",children:[I(),e.scrolledOutside&&!e.openMenu&&!e.openSidebar&&(0,xt.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{o(A=>({...hl(t,A)}))},children:y("buttons.scrollBackToContent")})]})]})})]})};v();var Da=w(J(),1);var Ra=w(P(),1),U3=e=>{let t=(0,Da.useRef)(null),[r,o]=(0,Da.useState)(null);return(0,Da.useLayoutEffect)(()=>{if(!e.spreadsheet)return;let i=_2(e.chartType,e.spreadsheet,0,0);o(i);let a,s=t.current;return(async()=>(a=await Wp(i,{exportBackground:!1,viewBackgroundColor:Or.white},null),a.querySelector(".style-fonts")?.remove(),s.replaceChildren(),s.appendChild(a),e.selected&&s.parentNode.focus()))(),()=>{s.replaceChildren()}},[e.spreadsheet,e.chartType,e.selected]),(0,Ra.jsx)("button",{type:"button",className:"ChartPreview",onClick:()=>{r&&e.onClick(e.chartType,r)},children:(0,Ra.jsx)("div",{ref:t})})},G3=({setAppState:e,appState:t,onClose:r})=>{let{onInsertElements:o}=Ur(),i=Da.default.useCallback(()=>{r&&r()},[r]),a=(s,c)=>{o(c),Fe("paste","chart",s),e({currentChartType:s,pasteDialog:{shown:!1,data:null}})};return(0,Ra.jsx)(Bt,{size:"small",onCloseRequest:i,title:y("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,Ra.jsxs)("div",{className:"container",children:[(0,Ra.jsx)(U3,{chartType:"bar",spreadsheet:t.pasteDialog.data,selected:t.currentChartType==="bar",onClick:a}),(0,Ra.jsx)(U3,{chartType:"line",spreadsheet:t.pasteDialog.data,selected:t.currentChartType==="line",onClick:a})]})})};v();var W3=w(J(),1);var ae=w(P(),1),gB=()=>(0,ae.jsxs)("div",{className:"HelpDialog__header",children:[(0,ae.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,ae.jsx)("div",{className:"HelpDialog__link-icon",children:bx}),y("helpDialog.documentation")]}),(0,ae.jsxs)("a",{className:"HelpDialog__btn",href:"https://blog.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,ae.jsx)("div",{className:"HelpDialog__link-icon",children:bx}),y("helpDialog.blog")]}),(0,ae.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[(0,ae.jsx)("div",{className:"HelpDialog__link-icon",children:ip}),y("helpDialog.github")]}),(0,ae.jsxs)("a",{className:"HelpDialog__btn",href:"https://youtube.com/@excalidraw",target:"_blank",rel:"noopener noreferrer",children:[(0,ae.jsx)("div",{className:"HelpDialog__link-icon",children:yC}),"YouTube"]})]}),hB=e=>(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("h3",{children:e.title}),(0,ae.jsx)("div",{className:"HelpDialog__islands-container",children:e.children})]}),dE=e=>(0,ae.jsxs)("div",{className:`HelpDialog__island ${e.className}`,children:[(0,ae.jsx)("h4",{className:"HelpDialog__island-title",children:e.caption}),(0,ae.jsx)("div",{className:"HelpDialog__island-content",children:e.children})]});function*bB(e,t){let r=!0;for(let o of e)r||(yield t),r=!1,yield o}var xB=e=>e.replace(/\b[a-z]\b/,t=>t.toUpperCase()),be=({label:e,shortcuts:t,isOr:r=!0})=>{let o=t.map(i=>(i.endsWith("++")?[...i.slice(0,-2).split("+"),"+"]:i.split("+")).map(s=>(0,ae.jsx)(vB,{children:xB(s)},s)));return(0,ae.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,ae.jsx)("div",{children:e}),(0,ae.jsx)("div",{className:"HelpDialog__key-container",children:[...bB(o,r?y("helpDialog.or"):null)]})]})},vB=e=>(0,ae.jsx)("kbd",{className:"HelpDialog__key",...e}),K3=({onClose:e})=>{let t=W3.default.useCallback(()=>{e&&e()},[e]);return(0,ae.jsx)(ae.Fragment,{children:(0,ae.jsxs)(Bt,{onCloseRequest:t,title:y("helpDialog.title"),className:"HelpDialog",children:[(0,ae.jsx)(gB,{}),(0,ae.jsxs)(hB,{title:y("helpDialog.shortcuts"),children:[(0,ae.jsxs)(dE,{className:"HelpDialog__island--tools",caption:y("helpDialog.tools"),children:[(0,ae.jsx)(be,{label:y("toolBar.hand"),shortcuts:[L.H]}),(0,ae.jsx)(be,{label:y("toolBar.selection"),shortcuts:[L.V,L[1]]}),(0,ae.jsx)(be,{label:y("toolBar.rectangle"),shortcuts:[L.R,L[2]]}),(0,ae.jsx)(be,{label:y("toolBar.diamond"),shortcuts:[L.D,L[3]]}),(0,ae.jsx)(be,{label:y("toolBar.ellipse"),shortcuts:[L.O,L[4]]}),(0,ae.jsx)(be,{label:y("toolBar.arrow"),shortcuts:[L.A,L[5]]}),(0,ae.jsx)(be,{label:y("toolBar.line"),shortcuts:[L.L,L[6]]}),(0,ae.jsx)(be,{label:y("toolBar.freedraw"),shortcuts:[L.P,L[7]]}),(0,ae.jsx)(be,{label:y("toolBar.text"),shortcuts:[L.T,L[8]]}),(0,ae.jsx)(be,{label:y("toolBar.image"),shortcuts:[L[9]]}),(0,ae.jsx)(be,{label:y("toolBar.eraser"),shortcuts:[L.E,L[0]]}),(0,ae.jsx)(be,{label:y("toolBar.frame"),shortcuts:[L.F]}),(0,ae.jsx)(be,{label:y("toolBar.laser"),shortcuts:[L.K]}),(0,ae.jsx)(be,{label:y("labels.eyeDropper"),shortcuts:[L.I,"Shift+S","Shift+G"]}),(0,ae.jsx)(be,{label:y("helpDialog.editLineArrowPoints"),shortcuts:[V("CtrlOrCmd+Enter")]}),(0,ae.jsx)(be,{label:y("helpDialog.editText"),shortcuts:[V("Enter")]}),(0,ae.jsx)(be,{label:y("helpDialog.textNewLine"),shortcuts:[V("Enter"),V("Shift+Enter")]}),(0,ae.jsx)(be,{label:y("helpDialog.textFinish"),shortcuts:[V("Esc"),V("CtrlOrCmd+Enter")]}),(0,ae.jsx)(be,{label:y("helpDialog.curvedArrow"),shortcuts:["A",y("helpDialog.click"),y("helpDialog.click"),y("helpDialog.click")],isOr:!1}),(0,ae.jsx)(be,{label:y("helpDialog.curvedLine"),shortcuts:["L",y("helpDialog.click"),y("helpDialog.click"),y("helpDialog.click")],isOr:!1}),(0,ae.jsx)(be,{label:y("toolBar.lock"),shortcuts:[L.Q]}),(0,ae.jsx)(be,{label:y("helpDialog.preventBinding"),shortcuts:[V("CtrlOrCmd")]}),(0,ae.jsx)(be,{label:y("toolBar.link"),shortcuts:[V("CtrlOrCmd+K")]})]}),(0,ae.jsxs)(dE,{className:"HelpDialog__island--view",caption:y("helpDialog.view"),children:[(0,ae.jsx)(be,{label:y("buttons.zoomIn"),shortcuts:[V("CtrlOrCmd++")]}),(0,ae.jsx)(be,{label:y("buttons.zoomOut"),shortcuts:[V("CtrlOrCmd+-")]}),(0,ae.jsx)(be,{label:y("buttons.resetZoom"),shortcuts:[V("CtrlOrCmd+0")]}),(0,ae.jsx)(be,{label:y("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,ae.jsx)(be,{label:y("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,ae.jsx)(be,{label:y("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,ae.jsx)(be,{label:y("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,ae.jsx)(be,{label:y("buttons.zenMode"),shortcuts:[V("Alt+Z")]}),(0,ae.jsx)(be,{label:y("buttons.objectsSnapMode"),shortcuts:[V("Alt+S")]}),(0,ae.jsx)(be,{label:y("labels.toggleGrid"),shortcuts:[V("CtrlOrCmd+'")]}),(0,ae.jsx)(be,{label:y("labels.viewMode"),shortcuts:[V("Alt+R")]}),(0,ae.jsx)(be,{label:y("labels.toggleTheme"),shortcuts:[V("Alt+Shift+D")]}),(0,ae.jsx)(be,{label:y("stats.fullTitle"),shortcuts:[V("Alt+/")]}),(0,ae.jsx)(be,{label:y("commandPalette.title"),shortcuts:fi?[lr("commandPalette")]:[lr("commandPalette"),lr("commandPalette",1)]})]}),(0,ae.jsxs)(dE,{className:"HelpDialog__island--editor",caption:y("helpDialog.editor"),children:[(0,ae.jsx)(be,{label:y("labels.moveCanvas"),shortcuts:[V(`Space+${y("helpDialog.drag")}`),V(`Wheel+${y("helpDialog.drag")}`)],isOr:!0}),(0,ae.jsx)(be,{label:y("buttons.clearReset"),shortcuts:[V("CtrlOrCmd+Delete")]}),(0,ae.jsx)(be,{label:y("labels.delete"),shortcuts:[V("Delete")]}),(0,ae.jsx)(be,{label:y("labels.cut"),shortcuts:[V("CtrlOrCmd+X")]}),(0,ae.jsx)(be,{label:y("labels.copy"),shortcuts:[V("CtrlOrCmd+C")]}),(0,ae.jsx)(be,{label:y("labels.paste"),shortcuts:[V("CtrlOrCmd+V")]}),(0,ae.jsx)(be,{label:y("labels.pasteAsPlaintext"),shortcuts:[V("CtrlOrCmd+Shift+V")]}),(0,ae.jsx)(be,{label:y("labels.selectAll"),shortcuts:[V("CtrlOrCmd+A")]}),(0,ae.jsx)(be,{label:y("labels.multiSelect"),shortcuts:[V(`Shift+${y("helpDialog.click")}`)]}),(0,ae.jsx)(be,{label:y("helpDialog.deepSelect"),shortcuts:[V(`CtrlOrCmd+${y("helpDialog.click")}`)]}),(0,ae.jsx)(be,{label:y("helpDialog.deepBoxSelect"),shortcuts:[V(`CtrlOrCmd+${y("helpDialog.drag")}`)]}),(Ps||fi)&&(0,ae.jsx)(be,{label:y("labels.copyAsPng"),shortcuts:[V("Shift+Alt+C")]}),(0,ae.jsx)(be,{label:y("labels.copyStyles"),shortcuts:[V("CtrlOrCmd+Alt+C")]}),(0,ae.jsx)(be,{label:y("labels.pasteStyles"),shortcuts:[V("CtrlOrCmd+Alt+V")]}),(0,ae.jsx)(be,{label:y("labels.sendToBack"),shortcuts:[yn?V("CtrlOrCmd+Alt+["):V("CtrlOrCmd+Shift+[")]}),(0,ae.jsx)(be,{label:y("labels.bringToFront"),shortcuts:[yn?V("CtrlOrCmd+Alt+]"):V("CtrlOrCmd+Shift+]")]}),(0,ae.jsx)(be,{label:y("labels.sendBackward"),shortcuts:[V("CtrlOrCmd+[")]}),(0,ae.jsx)(be,{label:y("labels.bringForward"),shortcuts:[V("CtrlOrCmd+]")]}),(0,ae.jsx)(be,{label:y("labels.alignTop"),shortcuts:[V("CtrlOrCmd+Shift+Up")]}),(0,ae.jsx)(be,{label:y("labels.alignBottom"),shortcuts:[V("CtrlOrCmd+Shift+Down")]}),(0,ae.jsx)(be,{label:y("labels.alignLeft"),shortcuts:[V("CtrlOrCmd+Shift+Left")]}),(0,ae.jsx)(be,{label:y("labels.alignRight"),shortcuts:[V("CtrlOrCmd+Shift+Right")]}),(0,ae.jsx)(be,{label:y("labels.duplicateSelection"),shortcuts:[V("CtrlOrCmd+D"),V(`Alt+${y("helpDialog.drag")}`)]}),(0,ae.jsx)(be,{label:y("helpDialog.toggleElementLock"),shortcuts:[V("CtrlOrCmd+Shift+L")]}),(0,ae.jsx)(be,{label:y("buttons.undo"),shortcuts:[V("CtrlOrCmd+Z")]}),(0,ae.jsx)(be,{label:y("buttons.redo"),shortcuts:Ru?[V("CtrlOrCmd+Y"),V("CtrlOrCmd+Shift+Z")]:[V("CtrlOrCmd+Shift+Z")]}),(0,ae.jsx)(be,{label:y("labels.group"),shortcuts:[V("CtrlOrCmd+G")]}),(0,ae.jsx)(be,{label:y("labels.ungroup"),shortcuts:[V("CtrlOrCmd+Shift+G")]}),(0,ae.jsx)(be,{label:y("labels.flipHorizontal"),shortcuts:[V("Shift+H")]}),(0,ae.jsx)(be,{label:y("labels.flipVertical"),shortcuts:[V("Shift+V")]}),(0,ae.jsx)(be,{label:y("labels.showStroke"),shortcuts:[V("S")]}),(0,ae.jsx)(be,{label:y("labels.showBackground"),shortcuts:[V("G")]}),(0,ae.jsx)(be,{label:y("labels.decreaseFontSize"),shortcuts:[V("CtrlOrCmd+Shift+<")]}),(0,ae.jsx)(be,{label:y("labels.increaseFontSize"),shortcuts:[V("CtrlOrCmd+Shift+>")]})]})]})]})})};v();var Na=w(J(),1);var Rr=w(P(),1),yB=4,EB=8,wB=({shouldWrap:e,children:t,username:r})=>e?(0,Rr.jsx)(Mo,{label:r||"Unknown user",children:t}):(0,Rr.jsx)(Na.default.Fragment,{children:t}),mE=({actionManager:e,collaborator:t,socketId:r,withName:o=!1,shouldWrapWithTooltip:i=!1,isBeingFollowed:a})=>{let s={socketId:r,collaborator:t,withName:o,isBeingFollowed:a},c=e.renderAction("goToCollaborator",s);return(0,Rr.jsx)(wB,{username:t.username,shouldWrap:i,children:c},r)},SB=["avatarUrl","id","socketId","username","isInCall","isSpeaking","isMuted"],Ug=Na.default.memo(({className:e,mobile:t,collaborators:r,userToFollow:o})=>{let i=gr(),a=new Map;r.forEach((T,M)=>{let I=T.id||M;a.set(I,{...T,socketId:M})});let s=Array.from(a.values()).filter(T=>T.username?.trim()),[c,d]=Na.default.useState(""),p=Na.default.useRef(null);(0,Na.useLayoutEffect)(()=>{if(p.current){let T=I=>{let A=Math.max(1,Math.min(8,Math.floor(I/38)));u(A)};if(T(p.current.clientWidth),!ed)return;let M=new ResizeObserver(I=>{for(let A of I){let{width:N}=A.contentRect;T(N)}});return M.observe(p.current),()=>{M.disconnect()}}},[]);let[f,u]=Na.default.useState(yB),h=c.trim().toLowerCase()?s.filter(T=>T.username?.toLowerCase().includes(c)):s,E=s.slice(0,f-1).map(T=>mE({actionManager:i,collaborator:T,socketId:T.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:T.socketId===o}));return t?(0,Rr.jsx)("div",{className:j("UserList UserList_mobile",e),children:s.map(T=>mE({actionManager:i,collaborator:T,socketId:T.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:T.socketId===o}))}):(0,Rr.jsx)("div",{className:"UserList-wrapper",ref:p,children:(0,Rr.jsxs)("div",{className:j("UserList",e),style:{"--max-avatars":f},children:[E,s.length>f-1&&(0,Rr.jsxs)($f,{onOpenChange:T=>{T||d("")},children:[(0,Rr.jsxs)(Hf,{className:"UserList__more",children:["+",s.length-f+1]}),(0,Rr.jsx)(Uf,{style:{zIndex:2,width:"15rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,Rr.jsxs)(Lr,{style:{overflow:"hidden"},children:[s.length>=EB&&(0,Rr.jsxs)("div",{className:"UserList__search-wrapper",children:[gp,(0,Rr.jsx)("input",{className:"UserList__search",type:"text",placeholder:y("userList.search.placeholder"),value:c,onChange:T=>{d(T.target.value)}})]}),(0,Rr.jsxs)("div",{className:"dropdown-menu UserList__collaborators",children:[h.length===0&&(0,Rr.jsx)("div",{className:"UserList__collaborators__empty",children:y("userList.search.empty")}),(0,Rr.jsx)("div",{className:"UserList__hint",children:y("userList.hint.text")}),h.map(T=>mE({actionManager:i,collaborator:T,socketId:T.socketId,withName:!0,isBeingFollowed:T.socketId===o}))]})]})})]})]})})},(e,t)=>{if(e.collaborators.size!==t.collaborators.size||e.mobile!==t.mobile||e.className!==t.className||e.userToFollow!==t.userToFollow)return!1;let r=t.collaborators.keys();for(let[o,i]of e.collaborators){let a=t.collaborators.get(o);if(!a||o!==r.next().value||!fr(i,a,SB))return!1}return!0});v();var V3=w(J(),1);v();var Y3=w(P(),1),uE=({children:e,color:t})=>(0,Y3.jsx)("div",{className:"Card",style:{"--card-color":t==="primary"?"var(--color-primary)":Or[t][7],"--card-color-darker":t==="primary"?"var(--color-primary-darker)":Or[t][8],"--card-color-darkest":t==="primary"?"var(--color-primary-darkest)":Or[t][9]},children:e});var hr=w(P(),1),TB=({elements:e,appState:t,setAppState:r,files:o,actionManager:i,exportOpts:a,canvas:s,onCloseRequest:c})=>{let{onExportToBackend:d}=a;return(0,hr.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,hr.jsxs)("div",{className:"ExportDialog-cards",children:[a.saveFileToDisk&&(0,hr.jsxs)(uE,{color:"lime",children:[(0,hr.jsx)("div",{className:"Card-icon",children:pT}),(0,hr.jsx)("h2",{children:y("exportDialog.disk_title")}),(0,hr.jsxs)("div",{className:"Card-details",children:[y("exportDialog.disk_details"),!Ms&&i.renderAction("changeProjectName")]}),(0,hr.jsx)(Ie,{className:"Card-button",type:"button",title:y("exportDialog.disk_button"),"aria-label":y("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{i.executeAction(om,"ui")}})]}),d&&(0,hr.jsxs)(uE,{color:"pink",children:[(0,hr.jsx)("div",{className:"Card-icon",children:wd}),(0,hr.jsx)("h2",{children:y("exportDialog.link_title")}),(0,hr.jsx)("div",{className:"Card-details",children:y("exportDialog.link_details")}),(0,hr.jsx)(Ie,{className:"Card-button",type:"button",title:y("exportDialog.link_button"),"aria-label":y("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{Fe("export","link",`ui (${NS()})`),await d(e,t,o),c()}catch(p){r({errorMessage:p.message})}}})]}),a.renderCustomUI&&a.renderCustomUI(e,t,o,s)]})})},X3=({elements:e,appState:t,files:r,actionManager:o,exportOpts:i,canvas:a,setAppState:s})=>{let c=V3.default.useCallback(()=>{s({openDialog:null})},[s]);return(0,hr.jsx)(hr.Fragment,{children:t.openDialog?.name==="jsonExport"&&(0,hr.jsx)(Bt,{onCloseRequest:c,title:y("buttons.export"),children:(0,hr.jsx)(TB,{elements:e,appState:t,setAppState:s,files:r,actionManager:o,onCloseRequest:c,exportOpts:i,canvas:a})})})};v();v();var q3=w(P(),1),Z3=e=>(0,q3.jsx)("button",{className:"help-icon",onClick:e.onClick,type:"button",title:`${y("helpDialog.title")} \u2014 ?`,"aria-label":y("helpDialog.title"),children:vs});var no=w(P(),1),j3=({appState:e,actionManager:t,showExitZenModeBtn:r,renderWelcomeScreen:o})=>{let{FooterCenterTunnel:i,WelcomeScreenHelpHintTunnel:a}=It(),s=ot(),c=!e.viewModeEnabled&&e.multiElement&&s.isTouchScreen;return(0,no.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,no.jsx)("div",{className:j("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":e.zenModeEnabled}),children:(0,no.jsx)(Sr.Col,{gap:2,children:(0,no.jsxs)(La,{heading:"canvasActions",children:[(0,no.jsx)(b3,{renderAction:t.renderAction,zoom:e.zoom}),!e.viewModeEnabled&&(0,no.jsx)(x3,{renderAction:t.renderAction,className:j("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":e.zenModeEnabled})}),c&&(0,no.jsx)(y3,{renderAction:t.renderAction,className:j("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":e.zenModeEnabled})})]})})}),(0,no.jsx)(i.Out,{}),(0,no.jsx)("div",{className:j("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:(0,no.jsxs)("div",{style:{position:"relative"},children:[o&&(0,no.jsx)(a.Out,{}),(0,no.jsx)(Z3,{onClick:()=>t.executeAction(Al)})]})}),(0,no.jsx)(v3,{actionManager:t,showExitZenModeBtn:r})]})},J3=j3;j3.displayName="Footer";v();var sr=w(J(),1);v();var Q3=w(J(),1),Gg=Q3.default.createContext({});v();var e5=w(J(),1);var $l=w(P(),1),pE=({children:e,className:t})=>{let r=ot(),o=(0,e5.useContext)(Gg),i=!!(r.editor.canFitSidebar&&o.shouldRenderDockButton);return(0,$l.jsxs)("div",{className:j("sidebar__header",t),"data-testid":"sidebar-header",children:[e,(0,$l.jsxs)("div",{className:"sidebar__header__buttons",children:[i&&(0,$l.jsx)(Mo,{label:y("labels.sidebarLock"),children:(0,$l.jsx)(jn,{onSelect:()=>o.onDock?.(!o.docked),selected:!!o.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":y("labels.sidebarLock"),children:QS})}),(0,$l.jsx)(jn,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:o.onCloseRequest,"aria-label":y("buttons.close"),children:Vo})]})]})};pE.displayName="SidebarHeader";v();var Hl=w(P(),1),fE=({name:e,tab:t,icon:r,title:o,children:i,onToggle:a,className:s,style:c})=>{let d=nt(),p=it();return(0,Hl.jsxs)("label",{title:o,className:"sidebar-trigger__label-element",children:[(0,Hl.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:f=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let u=f.target.checked;d({openSidebar:u?{name:e,tab:t}:null}),a?.(u)},checked:p.openSidebar?.name===e,"aria-label":o,"aria-keyshortcuts":"0"}),(0,Hl.jsxs)("div",{className:j("sidebar-trigger",s),style:c,children:[r&&(0,Hl.jsx)("div",{children:r}),i&&(0,Hl.jsx)("div",{className:"sidebar-trigger__label",children:i})]})]})};fE.displayName="SidebarTrigger";v();v();var Tr=w(J());v();var _t=w(J());v();var On=w(J());function t5(e){let t=e+"CollectionProvider",[r,o]=Xn(t),[i,a]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=h=>{let{scope:x,children:E}=h,T=On.default.useRef(null),M=On.default.useRef(new Map).current;return On.default.createElement(i,{scope:x,itemMap:M,collectionRef:T},E)},c=e+"CollectionSlot",d=On.default.forwardRef((h,x)=>{let{scope:E,children:T}=h,M=a(c,E),I=Mr(x,M.collectionRef);return On.default.createElement(va,{ref:I},T)}),p=e+"CollectionItemSlot",f="data-radix-collection-item",u=On.default.forwardRef((h,x)=>{let{scope:E,children:T,...M}=h,I=On.default.useRef(null),A=Mr(x,I),N=a(p,E);return On.default.useEffect(()=>(N.itemMap.set(I,{ref:I,...M}),()=>void N.itemMap.delete(I))),On.default.createElement(va,{[f]:"",ref:A},T)});function g(h){let x=a(e+"CollectionConsumer",h);return On.default.useCallback(()=>{let T=x.collectionRef.current;if(!T)return[];let M=Array.from(T.querySelectorAll(`[${f}]`));return Array.from(x.itemMap.values()).sort((N,U)=>M.indexOf(N.ref.current)-M.indexOf(U.ref.current))},[x.collectionRef,x.itemMap])}return[{Provider:s,Slot:d,ItemSlot:u},g,o]}v();var vm=w(J()),CB=(0,vm.createContext)(void 0);function Wg(e){let t=(0,vm.useContext)(CB);return e||t||"ltr"}var gE="rovingFocusGroup.onEntryFocus",IB={bubbles:!1,cancelable:!0},bE="RovingFocusGroup",[hE,r5,_B]=t5(bE),[AB,xE]=Xn(bE,[_B]),[kB,MB]=AB(bE),PB=(0,_t.forwardRef)((e,t)=>(0,_t.createElement)(hE.Provider,{scope:e.__scopeRovingFocusGroup},(0,_t.createElement)(hE.Slot,{scope:e.__scopeRovingFocusGroup},(0,_t.createElement)(LB,Ye({},e,{ref:t}))))),LB=(0,_t.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,orientation:o,loop:i=!1,dir:a,currentTabStopId:s,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:d,onEntryFocus:p,...f}=e,u=(0,_t.useRef)(null),g=Mr(t,u),h=Wg(a),[x=null,E]=qs({prop:s,defaultProp:c,onChange:d}),[T,M]=(0,_t.useState)(!1),I=to(p),A=r5(r),N=(0,_t.useRef)(!1),[U,R]=(0,_t.useState)(0);return(0,_t.useEffect)(()=>{let F=u.current;if(F)return F.addEventListener(gE,I),()=>F.removeEventListener(gE,I)},[I]),(0,_t.createElement)(kB,{scope:r,orientation:o,dir:h,loop:i,currentTabStopId:x,onItemFocus:(0,_t.useCallback)(F=>E(F),[E]),onItemShiftTab:(0,_t.useCallback)(()=>M(!0),[]),onFocusableItemAdd:(0,_t.useCallback)(()=>R(F=>F+1),[]),onFocusableItemRemove:(0,_t.useCallback)(()=>R(F=>F-1),[])},(0,_t.createElement)(Zt.div,Ye({tabIndex:T||U===0?-1:0,"data-orientation":o},f,{ref:g,style:{outline:"none",...e.style},onMouseDown:ir(e.onMouseDown,()=>{N.current=!0}),onFocus:ir(e.onFocus,F=>{let B=!N.current;if(F.target===F.currentTarget&&B&&!T){let Z=new CustomEvent(gE,IB);if(F.currentTarget.dispatchEvent(Z),!Z.defaultPrevented){let G=A().filter(xe=>xe.focusable),te=G.find(xe=>xe.active),de=G.find(xe=>xe.id===x),se=[te,de,...G].filter(Boolean).map(xe=>xe.ref.current);o5(se)}}N.current=!1}),onBlur:ir(e.onBlur,()=>M(!1))})))}),RB="RovingFocusGroupItem",DB=(0,_t.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:o=!0,active:i=!1,tabStopId:a,...s}=e,c=Ys(),d=a||c,p=MB(RB,r),f=p.currentTabStopId===d,u=r5(r),{onFocusableItemAdd:g,onFocusableItemRemove:h}=p;return(0,_t.useEffect)(()=>{if(o)return g(),()=>h()},[o,g,h]),(0,_t.createElement)(hE.ItemSlot,{scope:r,id:d,focusable:o,active:i},(0,_t.createElement)(Zt.span,Ye({tabIndex:f?0:-1,"data-orientation":p.orientation},s,{ref:t,onMouseDown:ir(e.onMouseDown,x=>{o?p.onItemFocus(d):x.preventDefault()}),onFocus:ir(e.onFocus,()=>p.onItemFocus(d)),onKeyDown:ir(e.onKeyDown,x=>{if(x.key==="Tab"&&x.shiftKey){p.onItemShiftTab();return}if(x.target!==x.currentTarget)return;let E=FB(x,p.orientation,p.dir);if(E!==void 0){x.preventDefault();let M=u().filter(I=>I.focusable).map(I=>I.ref.current);if(E==="last")M.reverse();else if(E==="prev"||E==="next"){E==="prev"&&M.reverse();let I=M.indexOf(x.currentTarget);M=p.loop?BB(M,I+1):M.slice(I+1)}setTimeout(()=>o5(M))}})})))}),NB={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function OB(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function FB(e,t,r){let o=OB(e.key,r);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return NB[o]}function o5(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}function BB(e,t){return e.map((r,o)=>e[(t+o)%e.length])}var n5=PB,i5=DB;var a5="Tabs",[zB,Epe]=Xn(a5,[xE]),l5=xE(),[$B,vE]=zB(a5),HB=(0,Tr.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,onValueChange:i,defaultValue:a,orientation:s="horizontal",dir:c,activationMode:d="automatic",...p}=e,f=Wg(c),[u,g]=qs({prop:o,onChange:i,defaultProp:a});return(0,Tr.createElement)($B,{scope:r,baseId:Ys(),value:u,onValueChange:g,orientation:s,dir:f,activationMode:d},(0,Tr.createElement)(Zt.div,Ye({dir:f,"data-orientation":s},p,{ref:t})))}),UB="TabsList",GB=(0,Tr.forwardRef)((e,t)=>{let{__scopeTabs:r,loop:o=!0,...i}=e,a=vE(UB,r),s=l5(r);return(0,Tr.createElement)(n5,Ye({asChild:!0},s,{orientation:a.orientation,dir:a.dir,loop:o}),(0,Tr.createElement)(Zt.div,Ye({role:"tablist","aria-orientation":a.orientation},i,{ref:t})))}),WB="TabsTrigger",KB=(0,Tr.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,disabled:i=!1,...a}=e,s=vE(WB,r),c=l5(r),d=s5(s.baseId,o),p=c5(s.baseId,o),f=o===s.value;return(0,Tr.createElement)(i5,Ye({asChild:!0},c,{focusable:!i,active:f}),(0,Tr.createElement)(Zt.button,Ye({type:"button",role:"tab","aria-selected":f,"aria-controls":p,"data-state":f?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:d},a,{ref:t,onMouseDown:ir(e.onMouseDown,u=>{!i&&u.button===0&&u.ctrlKey===!1?s.onValueChange(o):u.preventDefault()}),onKeyDown:ir(e.onKeyDown,u=>{[" ","Enter"].includes(u.key)&&s.onValueChange(o)}),onFocus:ir(e.onFocus,()=>{let u=s.activationMode!=="manual";!f&&!i&&u&&s.onValueChange(o)})})))}),YB="TabsContent",VB=(0,Tr.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,forceMount:i,children:a,...s}=e,c=vE(YB,r),d=s5(c.baseId,o),p=c5(c.baseId,o),f=o===c.value,u=(0,Tr.useRef)(f);return(0,Tr.useEffect)(()=>{let g=requestAnimationFrame(()=>u.current=!1);return()=>cancelAnimationFrame(g)},[]),(0,Tr.createElement)(Zs,{present:i||f},({present:g})=>(0,Tr.createElement)(Zt.div,Ye({"data-state":f?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:p,tabIndex:0},s,{ref:t,style:{...e.style,animationDuration:u.current?"0s":void 0}}),g&&a))});function s5(e,t){return`${e}-trigger-${t}`}function c5(e,t){return`${e}-content-${t}`}var Kg=HB,Yg=GB,Vg=KB,Xg=VB;var d5=w(P(),1),yE=({children:e,...t})=>(0,d5.jsx)(Yg,{className:"sidebar-triggers",...t,children:e});yE.displayName="SidebarTabTriggers";v();var EE=w(P(),1),wE=({children:e,tab:t,onSelect:r,...o})=>(0,EE.jsx)(Vg,{value:t,asChild:!0,onSelect:r,children:(0,EE.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...o,children:e})});wE.displayName="SidebarTabTrigger";v();var m5=w(P(),1),SE=({children:e,...t})=>{let r=it(),o=nt();if(!r.openSidebar)return null;let{name:i}=r.openSidebar;return(0,m5.jsx)(Kg,{className:"sidebar-tabs-root",value:r.openSidebar.tab,onValueChange:a=>o(s=>({...s,openSidebar:{...s.openSidebar,name:i,tab:a}})),...t,children:e})};SE.displayName="SidebarTabs";v();var u5=w(P(),1),TE=({tab:e,children:t,...r})=>(0,u5.jsx)(Xg,{...r,value:e,"data-testid":e,children:t});TE.displayName="SidebarTab";var CE=w(P(),1),f5=w(J(),1),ym=wt(!1),p5=(0,sr.forwardRef)(({name:e,children:t,onDock:r,docked:o,className:i,...a},s)=>{_.DEV&&r&&o==null&&console.warn("Sidebar: `docked` must be set when `onDock` is supplied for the sidebar to be user-dockable. To hide this message, either pass `docked` or remove `onDock`");let c=nt(),d=Ai(ym,dt);(0,sr.useLayoutEffect)(()=>(d(!!o),()=>{d(!1)}),[d,o]);let p=(0,sr.useRef)({});p.current.onCloseRequest=()=>{c({openSidebar:null})},p.current.onDock=h=>r?.(h),p.current=ss(p.current,{docked:o,shouldRenderDockButton:!!r&&o!=null});let f=(0,sr.useRef)(null);(0,sr.useImperativeHandle)(s,()=>f.current);let u=ot(),g=(0,sr.useCallback)(()=>{document.querySelector(".Dialog")||c({openSidebar:null})},[c]);return rc(f,(0,sr.useCallback)(h=>{h.target.closest(".sidebar-trigger")||(!o||!u.editor.canFitSidebar)&&g()},[g,o,u.editor.canFitSidebar])),(0,sr.useEffect)(()=>{let h=x=>{x.key===L.ESCAPE&&(!o||!u.editor.canFitSidebar)&&g()};return document.addEventListener("keydown",h),()=>{document.removeEventListener("keydown",h)}},[g,o,u.editor.canFitSidebar]),(0,CE.jsx)(Lr,{...a,className:j("sidebar",{"sidebar--docked":o},i),ref:f,children:(0,CE.jsx)(Gg.Provider,{value:p.current,children:t})})});p5.displayName="SidebarInner";var Bi=Object.assign((0,sr.forwardRef)((e,t)=>{let r=it(),{onStateChange:o}=e,i=(0,sr.useRef)(r.openSidebar);(0,sr.useEffect)(()=>{(!r.openSidebar&&i?.current?.name===e.name||r.openSidebar?.name===e.name&&i?.current?.name!==e.name||i.current?.name===e.name)&&r.openSidebar!==i.current&&o?.(r.openSidebar?.name!==e.name?null:r.openSidebar),i.current=r.openSidebar},[r.openSidebar,o,e.name]);let[a,s]=(0,sr.useState)(!1);return(0,sr.useLayoutEffect)(()=>(s(!0),()=>s(!1)),[]),a&&r.openSidebar?.name===e.name?(0,f5.createElement)(p5,{...e,ref:t,key:e.name}):null}),{Header:pE,TabTriggers:yE,TabTrigger:wE,Tabs:SE,Tab:TE,Trigger:fE});Bi.displayName="Sidebar";v();var _E={};K1(_E,{ChangeCanvasBackground:()=>C5,ClearCanvas:()=>S5,CommandPalette:()=>E5,Export:()=>I5,Help:()=>w5,LiveCollaborationTrigger:()=>A5,LoadScene:()=>x5,SaveAsImage:()=>y5,SaveToActiveFile:()=>v5,Socials:()=>_5,ToggleTheme:()=>T5});v();v();var IE=wt({active:!1});async function g5({title:e,description:t,actionLabel:r,color:o}){return new Promise(i=>{zr.set(IE,{active:!0,onConfirm:()=>i(!0),onClose:()=>i(!1),onReject:()=>i(!1),title:e,description:t,actionLabel:r,color:o})})}v();var zi=w(P(),1),h5=({value:e,shortcut:t,onChange:r,choices:o,children:i,name:a})=>{let s=ot();return(0,zi.jsxs)(zi.Fragment,{children:[(0,zi.jsxs)("div",{className:"dropdown-menu-item-base dropdown-menu-item-bare",children:[(0,zi.jsx)("label",{className:"dropdown-menu-item__text",htmlFor:a,children:i}),(0,zi.jsx)(Ng,{name:a,value:e,onChange:r,choices:o})]}),t&&!s.editor.isMobile&&(0,zi.jsx)("div",{className:"dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned",children:t})]})};h5.displayName="DropdownMenuItemContentRadio";var b5=h5;var zt=w(P(),1),x5=()=>{let{t:e}=nr(),t=gr(),r=Ta();return t.isActionEnabled(ac)?(0,zt.jsx)(on,{icon:ys,onSelect:async()=>{(!r.length||await g5({title:e("overwriteConfirm.modal.loadFromFile.title"),actionLabel:e("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,zt.jsx)(oo,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:i=>(0,zt.jsx)("strong",{children:i}),br:()=>(0,zt.jsx)("br",{})})}))&&t.executeAction(ac)},"data-testid":"load-button",shortcut:lr("loadScene"),"aria-label":e("buttons.load"),children:e("buttons.load")}):null};x5.displayName="LoadScene";var v5=()=>{let{t:e}=nr(),t=gr();return t.isActionEnabled(Zf)?(0,zt.jsx)(on,{shortcut:lr("saveScene"),"data-testid":"save-button",onSelect:()=>t.executeAction(Zf),icon:dT,"aria-label":`${e("buttons.save")}`,children:`${e("buttons.save")}`}):null};v5.displayName="SaveToActiveFile";var y5=()=>{let e=nt(),{t}=nr();return(0,zt.jsx)(on,{icon:lp,"data-testid":"image-export-button",onSelect:()=>e({openDialog:{name:"imageExport"}}),shortcut:lr("imageExport"),"aria-label":t("buttons.exportImage"),children:t("buttons.exportImage")})};y5.displayName="SaveAsImage";var E5=e=>{let t=nt(),{t:r}=nr();return(0,zt.jsx)(on,{icon:hp,"data-testid":"command-palette-button",onSelect:()=>{Fe("command_palette","open","menu"),t({openDialog:{name:"commandPalette"}})},shortcut:lr("commandPalette"),"aria-label":r("commandPalette.title"),className:e?.className,children:r("commandPalette.title")})};E5.displayName="CommandPalette";var w5=()=>{let{t:e}=nr(),t=gr();return(0,zt.jsx)(on,{"data-testid":"help-menu-item",icon:vs,onSelect:()=>t.executeAction(Al),shortcut:"?","aria-label":e("helpDialog.title"),children:e("helpDialog.title")})};w5.displayName="Help";var S5=()=>{let{t:e}=nr(),t=Ai(Fl,dt);return gr().isActionEnabled(Di)?(0,zt.jsx)(on,{icon:Cn,onSelect:()=>t("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":e("buttons.clearReset"),children:e("buttons.clearReset")}):null};S5.displayName="ClearCanvas";var T5=e=>{let{t}=nr(),r=it(),o=gr(),i=lr("toggleTheme");return o.isActionEnabled(Sl)?e?.allowSystemTheme?(0,zt.jsx)(b5,{name:"theme",value:e.theme,onChange:a=>e.onSelect(a),choices:[{value:$e.LIGHT,label:Ed,ariaLabel:`${t("buttons.lightMode")} - ${i}`},{value:$e.DARK,label:yd,ariaLabel:`${t("buttons.darkMode")} - ${i}`},{value:"system",label:vC,ariaLabel:t("buttons.systemMode")}],children:t("labels.theme")}):(0,zt.jsx)(on,{onSelect:a=>{if(a.preventDefault(),e?.onSelect)e.onSelect(r.theme===$e.DARK?$e.LIGHT:$e.DARK);else return o.executeAction(Sl)},icon:r.theme===$e.DARK?Ed:yd,"data-testid":"toggle-dark-mode",shortcut:i,"aria-label":r.theme===$e.DARK?t("buttons.lightMode"):t("buttons.darkMode"),children:r.theme===$e.DARK?t("buttons.lightMode"):t("buttons.darkMode")}):null};T5.displayName="ToggleTheme";var C5=()=>{let{t:e}=nr(),t=it(),r=gr(),o=_a();return t.viewModeEnabled||!o.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,zt.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,zt.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:e("labels.canvasBackground")}),(0,zt.jsx)("div",{style:{padding:"0 0.625rem"},children:r.renderAction("changeViewBackgroundColor")})]})};C5.displayName="ChangeCanvasBackground";var I5=()=>{let{t:e}=nr(),t=nt();return(0,zt.jsx)(on,{icon:ll,onSelect:()=>{t({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":e("buttons.export"),children:e("buttons.export")})};I5.displayName="Export";var _5=()=>{let{t:e}=nr();return(0,zt.jsxs)(zt.Fragment,{children:[(0,zt.jsx)(hc,{icon:ip,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,zt.jsx)(hc,{icon:sT,href:"https://x.com/excalidraw","aria-label":"X",children:e("labels.followUs")}),(0,zt.jsx)(hc,{icon:lT,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:e("labels.discordChat")})]})};_5.displayName="Socials";var A5=({onSelect:e,isCollaborating:t})=>{let{t:r}=nr();return(0,zt.jsx)(on,{"data-testid":"collab-button",icon:sp,className:j({"active-collab":t}),onSelect:e,children:r("labels.liveCollaboration")})};A5.displayName="LiveCollaborationTrigger";v();var Zg=w(J(),1);var k5=w(P(),1),$i=(e,t)=>{let r=wt(0),o=i=>{let{jotaiScope:a}=It(),[,s]=Ve(r,a),c=(0,Zg.useRef)({preferHost:!1,counter:0});return(0,Zg.useLayoutEffect)(()=>{let d=c.current;return s(p=>{let f=p+1;return d.counter=f,f}),()=>{s(p=>{let f=p-1;return d.counter=f,f||(d.preferHost=!1),f})}},[s]),i.__fallback||(c.current.preferHost=!0),!c.current.counter&&i.__fallback&&c.current.preferHost||c.current.counter>1&&i.__fallback?null:(0,k5.jsx)(t,{...i})};return o.displayName=e,o};var Hi=w(P(),1),XB=Object.assign($i("MainMenu",({children:e,onSelect:t})=>{let{MainMenuTunnel:r}=It(),o=ot(),i=it(),a=nt(),s=o.editor.isMobile?void 0:()=>a({openMenu:null});return(0,Hi.jsx)(r.In,{children:(0,Hi.jsxs)(st,{open:i.openMenu==="canvas",children:[(0,Hi.jsx)(st.Trigger,{onToggle:()=>{a({openMenu:i.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:np}),(0,Hi.jsxs)(st.Content,{onClickOutside:s,onSelect:aa(t,()=>{a({openMenu:null})}),children:[e,o.editor.isMobile&&i.collaborators.size>0&&(0,Hi.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,Hi.jsx)("legend",{children:y("labels.collaborators")}),(0,Hi.jsx)(Ug,{mobile:!0,collaborators:i.collaborators,userToFollow:i.userToFollow?.socketId||null})]})]})]})})}),{Trigger:st.Trigger,Item:st.Item,ItemLink:st.ItemLink,ItemCustom:st.ItemCustom,Group:st.Group,Separator:st.Separator,DefaultItems:_E}),io=XB;v();v();var Ui=w(P(),1),qg=({title:e,children:t,actionLabel:r,onClick:o})=>(0,Ui.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,Ui.jsx)("h4",{children:e}),(0,Ui.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:t}),(0,Ui.jsx)(Qn,{variant:"outlined",color:"muted",label:r,size:"large",fullWidth:!0,onClick:o})]}),ZB=()=>{let{t:e}=nr(),t=gr(),r=nt();return(0,Ui.jsx)(qg,{title:e("overwriteConfirm.action.exportToImage.title"),actionLabel:e("overwriteConfirm.action.exportToImage.button"),onClick:()=>{t.executeAction(Xf,"ui",!0),r({openDialog:{name:"imageExport"}})},children:e("overwriteConfirm.action.exportToImage.description")})},qB=()=>{let{t:e}=nr(),t=gr();return(0,Ui.jsx)(qg,{title:e("overwriteConfirm.action.saveToDisk.title"),actionLabel:e("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{t.executeAction(om,"ui")},children:e("overwriteConfirm.action.saveToDisk.description")})},AE=Object.assign(({children:e})=>(0,Ui.jsx)("div",{className:"OverwriteConfirm__Actions",children:e}),{ExportToImage:ZB,SaveToDisk:qB});var sn=w(P(),1),jg=Object.assign($i("OverwriteConfirmDialog",({children:e})=>{let{OverwriteConfirmDialogTunnel:t}=It(),[r,o]=Ve(IE,dt);if(!r.active)return null;let i=()=>{r.onClose(),o(s=>({...s,active:!1}))},a=()=>{r.onConfirm(),o(s=>({...s,active:!1}))};return(0,sn.jsx)(t.In,{children:(0,sn.jsx)(Bt,{onCloseRequest:i,title:!1,size:916,children:(0,sn.jsxs)("div",{className:"OverwriteConfirm",children:[(0,sn.jsx)("h3",{children:r.title}),(0,sn.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${r.color}`,children:[(0,sn.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:tC}),(0,sn.jsx)("div",{children:r.description}),(0,sn.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,sn.jsx)(Qn,{color:r.color,size:"large",label:r.actionLabel,onClick:a})]}),(0,sn.jsx)(AE,{children:e})]})})})}),{Actions:AE,Action:qg});v();var cn=w(P(),1),L5=w(J(),1),M5=$i("DefaultSidebarTrigger",e=>{let{DefaultSidebarTriggerTunnel:t}=It();return(0,cn.jsx)(t.In,{children:(0,cn.jsx)(Bi.Trigger,{...e,className:"default-sidebar-trigger",name:Sn.name})})});M5.displayName="DefaultSidebarTrigger";var P5=({children:e,...t})=>{let{DefaultSidebarTabTriggersTunnel:r}=It();return(0,cn.jsx)(r.In,{children:(0,cn.jsx)(Bi.TabTriggers,{...t,children:e})})};P5.displayName="DefaultTabTriggers";var Jg=Object.assign($i("DefaultSidebar",({children:e,className:t,onDock:r,docked:o,...i})=>{let a=it(),s=nt(),{DefaultSidebarTabTriggersTunnel:c}=It();return(0,L5.createElement)(Bi,{...i,name:"default",key:"default",className:j("default-sidebar",t),docked:o??a.defaultSidebarDockedPreference,onDock:r===!1||!r&&o!=null?void 0:aa(r,d=>{s({defaultSidebarDockedPreference:d})})},(0,cn.jsxs)(Bi.Tabs,{children:[(0,cn.jsxs)(Bi.Header,{children:[i.__fallback&&(0,cn.jsx)("div",{style:{color:"var(--color-primary)",fontSize:"1.2em",fontWeight:"bold",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",paddingRight:"1em"},children:y("toolBar.library")}),(0,cn.jsx)(c.Out,{})]}),(0,cn.jsx)(Bi.Tab,{tab:Ku,children:(0,cn.jsx)(Kk,{})}),e]}))}),{Trigger:M5,TabTriggers:P5});v();var Em=w(P(),1),jB="small",R5=e=>(0,Em.jsxs)("label",{className:j("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${jB}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,Em.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title,"data-testid":"toolbar-LaserPointer"}),(0,Em.jsx)("div",{className:"ToolIcon__icon",children:fp})]});v();var ME=w(J(),1);v();var D5=w(P(),1),wc=e=>(0,D5.jsx)("p",{className:"excalidraw__paragraph",style:e.style,children:e.children});v();var kE=w(J(),1);var O5=w(P(),1),N5=e=>{let t=nt(),r=(0,kE.useRef)(null),o=(0,kE.useRef)(0);return(0,O5.jsx)(Kg,{ref:r,className:"ttd-dialog-tabs-root",value:e.tab,onValueChange:i=>{if(!i)return;let a=r.current?.closest(".Modal__content");if(a){let s=a.offsetHeight||0;s>o.current&&(o.current=s,a.style.minHeight=`min(${o.current}px, 100%)`)}e.dialog==="settings"&&cx(["text-to-diagram","diagram-to-code"],i)?t({openDialog:{name:e.dialog,tab:i,source:"settings"}}):e.dialog==="ttd"&&cx(["text-to-diagram","mermaid"],i)&&t({openDialog:{name:e.dialog,tab:i}})},children:e.children})};N5.displayName="TTDDialogTabs";var Qg=N5;v();var F5=w(P(),1),Sc=({tab:e,children:t,...r})=>(0,F5.jsx)(Xg,{...r,value:e,children:t});Sc.displayName="TTDDialogTab";var or=w(P(),1),B5=e=>{let[t,r]=(0,ME.useState)(e.openAIKey||""),[o,i]=(0,ME.useState)(e.isPersisted),a=it(),s=()=>{e.onConfirm(t.trim(),o)};return a.openDialog?.name!=="settings"?null:(0,or.jsx)(Bt,{onCloseRequest:()=>{e.onClose(),e.onConfirm(t.trim(),o)},title:(0,or.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,or.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"0.1rem 0.5rem",marginLeft:"1rem",fontSize:14,borderRadius:"12px",background:"var(--color-promo)",color:"var(--color-surface-lowest)"},children:"Experimental"})]}),className:"MagicSettings",autofocus:!1,children:(0,or.jsx)(Qg,{dialog:"settings",tab:a.openDialog.tab,children:(0,or.jsxs)(Sc,{tab:"diagram-to-code",children:[(0,or.jsxs)(wc,{children:["For the diagram-to-code feature we use"," ",(0,or.jsx)(an,{icon:Sd}),"OpenAI."]}),(0,or.jsxs)(wc,{children:["While the OpenAI API is in beta, its use is strictly limited \u2014 as such we require you use your own API key. You can create an"," ",(0,or.jsx)("a",{href:"https://platform.openai.com/login?launch",rel:"noopener noreferrer",target:"_blank",children:"OpenAI account"}),", add a small credit (5 USD minimum), and"," ",(0,or.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,or.jsx)(wc,{children:"Your OpenAI key does not leave the browser, and you can also set your own limit in your OpenAI account dashboard if needed."}),(0,or.jsx)(Cg,{isRedacted:!0,value:t,placeholder:"Paste your API key here",label:"OpenAI API key",onChange:c=>{r(c),e.onChange(c.trim(),o)},selectOnRender:!0,onKeyDown:c=>c.key===L.ENTER&&s()}),(0,or.jsx)(wc,{children:"By default, your API token is not persisted anywhere so you'll need to insert it again after reload. But, you can persist locally in your browser below."}),(0,or.jsx)(_l,{checked:o,onChange:i,children:"Persist API key in browser storage"}),(0,or.jsxs)(wc,{children:["Once API key is set, you can use the ",(0,or.jsx)(an,{icon:ws})," ","tool to wrap your elements in a frame that will then allow you to turn it into code. This dialog can be accessed using the"," ",(0,or.jsx)("b",{children:"AI Settings"})," ",(0,or.jsx)(an,{icon:Sd}),"."]}),(0,or.jsx)(Qn,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:s})]})})})};v();v();var Fn=w(J(),1);v();var JB=({canvasRef:e,setError:t})=>{let r=e.current;if(!r)return;let o=r.parentElement;o&&(o.style.background="",t(null),r.replaceChildren())},eh=async({canvasRef:e,mermaidToExcalidrawLib:t,mermaidDefinition:r,setError:o,data:i})=>{let a=e.current,s=a?.parentElement;if(!(!a||!s)){if(!r){JB({canvasRef:e,setError:o});return}try{let c=await t.api,d;try{d=await c.parseMermaidToExcalidraw(r,{fontSize:wn})}catch{d=await c.parseMermaidToExcalidraw(r.replace(/"/g,"'"),{fontSize:wn})}let{elements:p,files:f}=d;o(null),i.current={elements:Tc(p,{regenerateIds:!0}),files:f};let u=await fl({elements:i.current.elements,files:i.current.files,exportPadding:na,maxWidthOrHeight:Math.max(s.offsetWidth,s.offsetHeight)*window.devicePixelRatio});try{await Ci(u)}catch(g){throw g.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(y("canvasError.canvasTooBig")):g}s.style.background="var(--default-bg-color)",a.replaceChildren(u)}catch(c){throw s.style.background="var(--default-bg-color)",r&&o(c),c}}},wm=e=>{vo.set(Wo.MERMAID_TO_EXCALIDRAW,e)},th=({app:e,data:t,text:r,shouldSaveMermaidDataToStorage:o})=>{let{elements:i,files:a}=t.current;i.length&&(e.addElementsFromPasteOrLibrary({elements:i,files:a,position:"center",fitToContent:!0}),e.setOpenDialog(null),o&&r&&wm(r))};v();var z5=w(P(),1),rh=({children:e})=>(0,z5.jsx)("div",{className:"ttd-dialog-panels",children:e});v();var ti=w(P(),1),Cc=({label:e,children:t,panelAction:r,panelActionDisabled:o=!1,onTextSubmitInProgess:i,renderTopRight:a,renderSubmitShortcut:s,renderBottomRight:c})=>(0,ti.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,ti.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,ti.jsx)("label",{children:e}),a?.()]}),t,(0,ti.jsxs)("div",{className:j("ttd-dialog-panel-button-container",{invisible:!r}),style:{display:"flex",alignItems:"center"},children:[(0,ti.jsxs)(jn,{className:"ttd-dialog-panel-button",onSelect:r?r.action:()=>{},disabled:o||i,children:[(0,ti.jsxs)("div",{className:j({invisible:i}),children:[r?.label,r?.icon&&(0,ti.jsx)("span",{children:r.icon})]}),i&&(0,ti.jsx)(kr,{})]}),!o&&!i&&s?.(),c?.()]})]});v();var Sm=w(J(),1);var $5=w(P(),1),oh=({input:e,placeholder:t,onChange:r,onKeyboardSubmit:o})=>{let i=(0,Sm.useRef)(null),a=(0,Sm.useRef)(o);return a.current=o,(0,Sm.useEffect)(()=>{if(!a.current)return;let s=i.current;if(s){let c=d=>{d[L.CTRL_OR_CMD]&&d.key===L.ENTER&&(d.preventDefault(),a.current?.())};return s.addEventListener("keydown",c),()=>{s.removeEventListener("keydown",c)}}},[]),(0,$5.jsx)("textarea",{className:"ttd-dialog-input",onChange:r,value:e,placeholder:t,autoFocus:!0,ref:i})};v();var Fa=w(P(),1),QB=({error:e})=>(0,Fa.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,Fa.jsx)("p",{children:e})]}),nh=({error:e,canvasRef:t,loaded:r})=>(0,Fa.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[e&&(0,Fa.jsx)(QB,{error:e.message}),r?(0,Fa.jsx)("div",{ref:t,style:{opacity:e?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,Fa.jsx)(kr,{size:"2rem"})]});v();var Tm=w(P(),1),ih=()=>(0,Tm.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,Tm.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:V("CtrlOrCmd")}),(0,Tm.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:V("Enter")})]});var Yr=w(P(),1),ez=`flowchart TD
46
65
  A[Christmas] -->|Get money| B(Go shopping)
47
66
  B --> C{Let me think}
48
67
  C -->|One| D[Laptop]
49
68
  C -->|Two| E[iPhone]
50
- C -->|Three| F[Car]`,b5=pl(As,300),Hk=({mermaidToExcalidrawLib:t})=>{let[e,o]=(0,lr.useState)(()=>fo.get(So.MERMAID_TO_EXCALIDRAW)||$k),r=(0,lr.useDeferredValue)(e.trim()),[n,i]=(0,lr.useState)(null),a=(0,lr.useRef)(null),l=(0,lr.useRef)({elements:[],files:null}),s=mo();(0,lr.useEffect)(()=>{sp({canvasRef:a,data:l,mermaidToExcalidrawLib:t,setError:i,mermaidDefinition:r}).catch(c=>{K1()&&console.error("Failed to parse mermaid definition",c)}),b5(r)},[r,t]),(0,lr.useEffect)(()=>()=>{b5.flush()},[]);let d=()=>{cp({app:s,data:l,text:e,shouldSaveMermaidDataToStorage:!0})};return(0,jt.jsxs)(jt.Fragment,{children:[(0,jt.jsx)("div",{className:"ttd-dialog-desc",children:(0,jt.jsx)(no,{i18nKey:"mermaid.description",flowchartLink:c=>(0,jt.jsx)("a",{href:"https://mermaid.js.org/syntax/flowchart.html",children:c}),sequenceLink:c=>(0,jt.jsx)("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",children:c}),classLink:c=>(0,jt.jsx)("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",children:c})})}),(0,jt.jsxs)(dp,{children:[(0,jt.jsx)(Ja,{label:g("mermaid.syntax"),children:(0,jt.jsx)(mp,{input:e,placeholder:"Write Mermaid diagram defintion here...",onChange:c=>o(c.target.value),onKeyboardSubmit:()=>{d()}})}),(0,jt.jsx)(Ja,{label:g("mermaid.preview"),panelAction:{action:()=>{d()},label:g("mermaid.button"),icon:da},renderSubmitShortcut:()=>(0,jt.jsx)(up,{}),children:(0,jt.jsx)(pp,{canvasRef:a,loaded:t.loaded,error:n})})]})]})},x5=Hk;var sr=v(H(),1);h();var v5=v(k(),1),yg=({children:t,...e})=>(0,v5.jsx)(ep,{className:"ttd-dialog-triggers",...e,children:t});yg.displayName="TTDDialogTabTriggers";h();var wg=v(k(),1),fp=({children:t,tab:e,onSelect:o,...r})=>(0,wg.jsx)(tp,{value:e,asChild:!0,onSelect:o,children:(0,wg.jsx)("button",{type:"button",className:"ttd-dialog-tab-trigger",...r,children:t})});fp.displayName="TTDDialogTabTrigger";var Je=v(k(),1),Cg=3,Qa=1e3,Uk=We(null),Wk=We(null),Sg=t=>{let e=_e();return e.openDialog?.name!=="ttd"?null:(0,Je.jsx)(Gk,{...t,tab:e.openDialog.tab})},Gk=tn("TTDDialogBase",({tab:t,...e})=>{let o=mo(),r=Le(),n=(0,sr.useRef)(null),[i,a]=Se(Wk),[l,s]=(0,sr.useState)(i?.prompt??""),d=l.trim(),c=I=>{s(I.target.value),a(M=>({generatedResponse:M?.generatedResponse??null,prompt:I.target.value}))},[m,u]=(0,sr.useState)(!1),[f,b]=Se(Uk),x=async()=>{if(d.length>Qa||d.length<Cg||m||f?.rateLimitRemaining===0||"__fallback"in e){d.length<Cg&&z(new Error(`Prompt is too short (min ${Cg} characters)`)),d.length>Qa&&z(new Error(`Prompt is too long (max ${Qa} characters)`));return}try{u(!0),xe("ai","generate","ttd");let{generatedResponse:I,error:M,rateLimit:_,rateLimitRemaining:U}=await e.onTextSubmit(d);if(typeof I=="string"&&a(D=>({generatedResponse:I,prompt:D?.prompt??null})),Xp(_)&&Xp(U)&&b({rateLimit:_,rateLimitRemaining:U}),M){z(M);return}if(!I){z(new Error("Generation failed"));return}try{await sp({canvasRef:n,data:w,mermaidToExcalidrawLib:T,setError:z,mermaidDefinition:I}),xe("ai","mermaid parse success","ttd")}catch(D){console.info(`%cTTD mermaid render errror: ${D.message}`,"color: red"),console.info(`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
51
- TTD mermaid definition render errror: ${D.message}`,"color: yellow"),xe("ai","mermaid parse failed","ttd"),z(new Error("Generated an invalid diagram :(. You may also try a different prompt."))}}catch(I){let M=I.message;(!M||M==="Failed to fetch")&&(M="Request failed"),z(new Error(M))}finally{u(!1)}},E=(0,sr.useRef)(x);E.current=x;let[T,C]=(0,sr.useState)({loaded:!1,api:import("./excalidraw-assets/dist-54276HPL.js")});(0,sr.useEffect)(()=>{(async()=>{await T.api,C(M=>({...M,loaded:!0}))})()},[T.api]);let w=(0,sr.useRef)({elements:[],files:null}),[A,z]=(0,sr.useState)(null);return(0,Je.jsx)(et,{className:"ttd-dialog",onCloseRequest:()=>{o.setOpenDialog(null)},size:1200,title:!1,...e,autofocus:!1,children:(0,Je.jsxs)(lp,{dialog:"ttd",tab:t,children:["__fallback"in e&&e.__fallback?(0,Je.jsx)("p",{className:"dialog-mermaid-title",children:g("mermaid.title")}):(0,Je.jsxs)(yg,{children:[(0,Je.jsx)(fp,{tab:"text-to-diagram",children:(0,Je.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[g("labels.textToDiagram"),(0,Je.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"1px 6px",marginLeft:"10px",fontSize:10,borderRadius:"12px",background:"pink",color:"#000"},children:"AI Beta"})]})}),(0,Je.jsx)(fp,{tab:"mermaid",children:"Mermaid"})]}),(0,Je.jsx)(qa,{className:"ttd-dialog-content",tab:"mermaid",children:(0,Je.jsx)(x5,{mermaidToExcalidrawLib:T})}),!("__fallback"in e)&&(0,Je.jsxs)(qa,{className:"ttd-dialog-content",tab:"text-to-diagram",children:[(0,Je.jsx)("div",{className:"ttd-dialog-desc",children:"Currently we use Mermaid as a middle step, so you'll get best results if you describe a diagram, workflow, flow chart, and similar."}),(0,Je.jsxs)(dp,{children:[(0,Je.jsx)(Ja,{label:g("labels.prompt"),panelAction:{action:x,label:"Generate",icon:da},onTextSubmitInProgess:m,panelActionDisabled:d.length>Qa||f?.rateLimitRemaining===0,renderTopRight:()=>f?(0,Je.jsxs)("div",{className:"ttd-dialog-rate-limit",style:{fontSize:12,marginLeft:"auto",color:f.rateLimitRemaining===0?"var(--color-danger)":void 0},children:[f.rateLimitRemaining," requests left today"]}):null,renderSubmitShortcut:()=>(0,Je.jsx)(up,{}),renderBottomRight:()=>{if(typeof i?.generatedResponse=="string")return(0,Je.jsxs)("div",{className:"excalidraw-link",style:{marginLeft:"auto",fontSize:14},onClick:()=>{typeof i?.generatedResponse=="string"&&(As(i.generatedResponse),r({openDialog:{name:"ttd",tab:"mermaid"}}))},children:["View as Mermaid",(0,Je.jsx)(Dn,{icon:da})]});let I=d.length/Qa;return I>.8?(0,Je.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:I>1?"var(--color-danger)":void 0},children:["Length: ",d.length,"/",Qa]}):null},children:(0,Je.jsx)(mp,{onChange:c,input:l,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{E.current()}})}),(0,Je.jsx)(Ja,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),cp({app:o,data:w})},label:"Insert",icon:da},children:(0,Je.jsx)(pp,{canvasRef:n,error:A,loaded:T.loaded})})]})]})]})})});var q=v(k(),1),Vk=({UIOptions:t})=>(0,q.jsxs)(lo,{__fallback:!0,children:[(0,q.jsx)(lo.DefaultItems.LoadScene,{}),(0,q.jsx)(lo.DefaultItems.SaveToActiveFile,{}),t.canvasActions.export&&(0,q.jsx)(lo.DefaultItems.Export,{}),t.canvasActions.saveAsImage&&(0,q.jsx)(lo.DefaultItems.SaveAsImage,{}),(0,q.jsx)(lo.DefaultItems.Help,{}),(0,q.jsx)(lo.DefaultItems.ClearCanvas,{}),(0,q.jsx)(lo.Separator,{}),(0,q.jsx)(lo.Group,{title:"Excalidraw links",children:(0,q.jsx)(lo.DefaultItems.Socials,{})}),(0,q.jsx)(lo.Separator,{}),(0,q.jsx)(lo.DefaultItems.ToggleTheme,{}),(0,q.jsx)(lo.DefaultItems.ChangeCanvasBackground,{})]}),Kk=()=>(0,q.jsxs)(ip,{__fallback:!0,children:[(0,q.jsx)(ip.Actions.SaveToDisk,{}),(0,q.jsx)(ip.Actions.ExportToImage,{})]}),Yk=({actionManager:t,appState:e,files:o,setAppState:r,elements:n,canvas:i,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:s,showExitZenModeBtn:d,renderTopRightUI:c,renderCustomStats:m,UIOptions:u,onExportImage:f,renderWelcomeScreen:b,children:x,app:E,isCollaborating:T,openAIKey:C,isOpenAIKeyPersisted:w,onOpenAIAPIKeyChange:A,onMagicSettingsConfirm:z})=>{let I=Me(),M=Kw(),[_,U]=Se(Tn,De),D=()=>u.canvasActions.export?(0,q.jsx)(S3,{elements:n,appState:e,files:o,actionManager:t,exportOpts:u.canvasActions.export,canvas:i,setAppState:r}):null,G=()=>!u.canvasActions.saveAsImage||e.openDialog?.name!=="imageExport"?null:(0,q.jsx)(m3,{elements:n,appState:e,files:o,actionManager:t,onExportImage:f,onCloseRequest:()=>r({openDialog:null}),name:E.getName()}),O=()=>(0,q.jsxs)("div",{style:{position:"relative"},children:[(0,q.jsx)(M.MainMenuTunnel.Out,{}),b&&(0,q.jsx)(M.WelcomeScreenMenuHintTunnel.Out,{})]}),B=()=>(0,q.jsx)(Nn,{heading:"selectedShapeActions",className:$("selected-shape-actions zen-mode-transition",{"transition-left":e.zenModeEnabled}),children:(0,q.jsx)(zt,{className:qs.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${e.height-166}px`},children:(0,q.jsx)(Nm,{appState:e,elementsMap:E.scene.getNonDeletedElementsMap(),renderAction:t.renderAction})})}),te=()=>{let me=ea(e,n);return(0,q.jsx)(Gm,{side:"top",children:(0,q.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,q.jsxs)(Pt.Col,{gap:6,className:$("App-menu_top__left"),children:[O(),me&&B()]}),!e.viewModeEnabled&&(0,q.jsx)(Nn,{heading:"shapes",className:"shapes-section",children:j=>(0,q.jsxs)("div",{style:{position:"relative"},children:[b&&(0,q.jsx)(M.WelcomeScreenToolbarHintTunnel.Out,{}),(0,q.jsx)(Pt.Col,{gap:4,align:"start",children:(0,q.jsxs)(Pt.Row,{gap:1,className:$("App-toolbar-container",{"zen-mode":e.zenModeEnabled}),children:[(0,q.jsxs)(zt,{padding:1,className:$("App-toolbar",{"zen-mode":e.zenModeEnabled}),children:[(0,q.jsx)(Vm,{appState:e,isMobile:I.editor.isMobile,device:I,app:E}),j,(0,q.jsxs)(Pt.Row,{gap:1,children:[(0,q.jsx)(Ym,{zenModeEnabled:e.zenModeEnabled,checked:e.penMode,onChange:()=>s(null),title:g("toolBar.penMode"),penDetected:e.penDetected}),(0,q.jsx)(Km,{checked:e.activeTool.locked,onChange:a,title:g("toolBar.lock")}),(0,q.jsx)("div",{className:"App-toolbar__divider"}),(0,q.jsx)(jm,{checked:Fr(e),onChange:()=>l(),title:g("toolBar.hand"),isMobile:!0}),(0,q.jsx)(Om,{appState:e,activeTool:e.activeTool,UIOptions:u,app:E})]})]}),T&&(0,q.jsx)(zt,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,q.jsx)(c5,{title:g("toolBar.laser"),checked:e.activeTool.type===ut.laser,onChange:()=>E.setActiveTool({type:ut.laser}),isMobile:!0})})]})})]})}),(0,q.jsxs)("div",{className:$("layer-ui__wrapper__top-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:[e.collaborators.size>0&&(0,q.jsx)(Xm,{collaborators:e.collaborators,userToFollow:e.userToFollow?.socketId||null}),c?.(I.editor.isMobile,e),!e.viewModeEnabled&&(!ve||e.openSidebar?.name!==jo.name)&&(0,q.jsx)(M.DefaultSidebarTriggerTunnel.Out,{})]})]})})},oe=()=>(0,q.jsx)(ap,{__fallback:!0,onDock:me=>{xe("sidebar",`toggleDock (${me?"dock":"undock"})`,`(${I.editor.isMobile?"mobile":"desktop"})`)}}),ve=zl(ks,De),Ie=(0,q.jsxs)(q.Fragment,{children:[x,(0,q.jsx)(Vk,{UIOptions:u}),(0,q.jsx)(ap.Trigger,{__fallback:!0,icon:cd,title:sn(g("toolBar.library")),onToggle:me=>{me&&xe("sidebar",`${jo.name} (open)`,`button (${I.editor.isMobile?"mobile":"desktop"})`)},tab:jo.defaultTab,children:g("toolBar.library")}),(0,q.jsx)(Kk,{}),e.openDialog?.name==="ttd"&&(0,q.jsx)(Sg,{__fallback:!0}),e.isLoading&&(0,q.jsx)(ld,{delay:250}),e.errorMessage&&(0,q.jsx)(d3,{onClose:()=>r({errorMessage:null}),children:e.errorMessage}),_&&!I.editor.isMobile&&(0,q.jsx)(KE,{colorPickerType:_.colorPickerType,onCancel:()=>{U(null)},onChange:(me,j,R,{altKey:N})=>{if(!(me!=="elementBackground"&&me!=="elementStroke"))if(R.length){for(let K of R)re(K,{[N&&_.swapPreviewOnAlt?me==="elementBackground"?"strokeColor":"backgroundColor":me==="elementBackground"?"backgroundColor":"strokeColor"]:j},!1),Lo.delete(K);ko.getScene(R[0])?.informMutation()}else r(me==="elementBackground"?{currentItemBackgroundColor:j}:{currentItemStrokeColor:j})},onSelect:(me,j)=>{U(R=>R?.keepOpenOnAlt&&j.altKey?R:null),_?.onSelect?.(me,j)}}),e.openDialog?.name==="help"&&(0,q.jsx)(y3,{onClose:()=>{r({openDialog:null})}}),e.openDialog?.name==="settings"&&(0,q.jsx)(f5,{openAIKey:C,isPersisted:w,onChange:A,onConfirm:(me,j)=>{let R=e.openDialog?.name==="settings"?e.openDialog?.source:"settings";r({openDialog:null},()=>{z(me,j,R)})},onClose:()=>{r({openDialog:null})}}),(0,q.jsx)(Qw,{}),(0,q.jsx)(M.OverwriteConfirmDialogTunnel.Out,{}),G(),D(),e.pasteDialog.shown&&(0,q.jsx)(v3,{setAppState:r,appState:e,onClose:()=>r({pasteDialog:{shown:!1,data:null}})}),I.editor.isMobile&&(0,q.jsx)(b3,{app:E,appState:e,elements:n,actionManager:t,renderJSONExportDialog:D,renderImageExportDialog:G,setAppState:r,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:s,renderTopRightUI:c,renderCustomStats:m,renderSidebars:oe,device:I,renderWelcomeScreen:b,UIOptions:u}),!I.editor.isMobile&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)("div",{className:"layer-ui__wrapper",style:e.openSidebar&&ve&&I.editor.canFitSidebar?{width:`calc(100% - ${L1}px)`}:{},children:[b&&(0,q.jsx)(M.WelcomeScreenCenterTunnel.Out,{}),te(),(0,q.jsx)(A3,{appState:e,actionManager:t,showExitZenModeBtn:d,renderWelcomeScreen:b}),e.showStats&&(0,q.jsx)(Zm,{appState:e,setAppState:r,elements:n,onClose:()=>{t.executeAction(Mn)},renderCustomStats:m}),e.scrolledOutside&&(0,q.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(me=>({...oi(n,me)}))},children:g("buttons.scrollBackToContent")})]}),oe()]})]});return(0,q.jsx)(jf.Provider,{value:e,children:(0,q.jsx)(ed,{scope:M.jotaiScope,children:(0,q.jsx)(zh.Provider,{value:M,children:Ie})})})},E5=t=>{let{suggestedBindings:e,startBoundElement:o,cursorButton:r,scrollX:n,scrollY:i,...a}=t;return a},Zk=(t,e)=>{if(t.children!==e.children)return!1;let{canvas:o,appState:r,...n}=t,{canvas:i,appState:a,...l}=e;return kt(E5(r),E5(a),{selectedElementIds:kt,selectedGroupIds:kt})&&kt(n,l)},w5=y5.default.memo(Yk,Zk);h();var el=v(H(),1);var Ps=v(k(),1),jk=5e3,C5=({message:t,onClose:e,closable:o=!1,duration:r=jk,style:n})=>{let i=(0,el.useRef)(0),a=r!==1/0,l=(0,el.useCallback)(()=>{a&&(i.current=window.setTimeout(()=>e(),r))},[e,r,a]);return(0,el.useEffect)(()=>{if(a)return l(),()=>clearTimeout(i.current)},[l,t,r,a]),(0,Ps.jsxs)("div",{className:"Toast",onMouseEnter:a?()=>clearTimeout(i?.current):void 0,onMouseLeave:a?l:void 0,style:n,children:[(0,Ps.jsx)("p",{className:"Toast__message",children:t}),o&&(0,Ps.jsx)(ce,{icon:Ro,"aria-label":"close",type:"icon",onClick:e,className:"close"})]})};h();var Tg=W({name:"viewMode",label:"labels.viewMode",paletteName:"Toggle view mode",icon:pa,viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.viewModeEnabled},perform(t,e){return{appState:{...e,viewModeEnabled:!this.checked(e)},storeAction:P.NONE}},checked:t=>t.viewModeEnabled,predicate:(t,e,o)=>typeof o.viewModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.R});var c6=v(Nh(),1);h();var hp=class t{scene;onSceneUpdated;constructor({scene:e,onSceneUpdated:o}){this.scene=e,this.onSceneUpdated=o}static loadedFontFaces=new Set;onFontsLoaded=e=>{if(e.every(r=>{let n=`${r.family}-${r.style}-${r.weight}`;return t.loadedFontFaces.has(n)?!0:(t.loadedFontFaces.add(n),!1)}))return!1;let o=!1;this.scene.mapElements(r=>se(r)&&!xt(r)?(Lo.delete(r),o=!0,he(r,{...Fb(r,Nr(r,this.scene.getNonDeletedElementsMap()),this.scene.getNonDeletedElementsMap())})):r),o&&this.onSceneUpdated()};loadFontsForElements=async e=>{let o=await Promise.all([...new Set(e.filter(r=>se(r)).map(r=>r.fontFamily))].map(r=>{let n=Xo({fontFamily:r,fontSize:16});if(!document.fonts?.check?.(n))return document.fonts?.load?.(n)}));this.onFontsLoaded(o.flat().filter(Boolean))}};h();var S5=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length===1&&Ee(o[0])},T5=W({name:"selectAllElementsInFrame",label:"labels.selectAllElementsInFrame",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;if(Ee(n)){let i=bn(ye(t),n.id).filter(a=>!(a.type==="text"&&a.containerId));return{elements:t,appState:{...e,selectedElementIds:i.reduce((a,l)=>(a[l.id]=!0,a),{})},storeAction:P.CAPTURE}}return{elements:t,appState:e,storeAction:P.NONE}},predicate:(t,e,o,r)=>S5(e,r)}),k5=W({name:"removeAllElementsFromFrame",label:"labels.removeAllElementsFromFrame",trackEvent:{category:"history"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;return Ee(n)?{elements:A0(t,n),appState:{...e,selectedElementIds:{[n.id]:!0}},storeAction:P.CAPTURE}:{elements:t,appState:e,storeAction:P.NONE}},predicate:(t,e,o,r)=>S5(e,r)}),Yne=W({name:"updateFrameRendering",label:"labels.updateFrameRendering",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>({elements:t,appState:{...e,frameRendering:{...e.frameRendering,enabled:!e.frameRendering.enabled}},storeAction:P.NONE}),checked:t=>t.frameRendering.enabled}),Zne=W({name:"setFrameAsActiveTool",label:"toolBar.frame",trackEvent:{category:"toolbar"},icon:bd,viewMode:!1,perform:(t,e,o,r)=>{let n=it(e,{type:"frame"});return qo(r.interactiveCanvas,{...e,activeTool:n}),{elements:t,appState:{...e,activeTool:it(e,{type:"frame"})},storeAction:P.NONE}},keyTest:t=>!t[S.CTRL_OR_CMD]&&!t.shiftKey&&!t.altKey&&t.key.toLocaleLowerCase()===S.F});h();var Xk=8,I5=99999,gp=t=>Xk/t,Wo=class t{static referenceSnapPoints=null;static visibleGaps=null;static setReferenceSnapPoints=e=>{t.referenceSnapPoints=e};static getReferenceSnapPoints=()=>t.referenceSnapPoints;static setVisibleGaps=e=>{t.visibleGaps=e};static getVisibleGaps=()=>t.visibleGaps;static destroy=()=>{t.referenceSnapPoints=null,t.visibleGaps=null}},nn=({event:t,appState:e,selectedElements:o})=>t?e.objectsSnapModeEnabled&&!t[S.CTRL_OR_CMD]||!e.objectsSnapModeEnabled&&t[S.CTRL_OR_CMD]&&e.gridSize===null:o.length===1&&o[0].type==="arrow"?!1:e.objectsSnapModeEnabled,qk=(t,e,o=.01)=>Math.abs(t-e)<=o,Rs=(t,e,{omitCenter:o,boundingBoxCorners:r,dragOffset:n}={omitCenter:!1,boundingBoxCorners:!1})=>{let i=[];if(t.length===1){let a=t[0],[l,s,d,c,m,u]=Wt(a,e);n&&(l+=n.x,d+=n.x,m+=n.x,s+=n.y,c+=n.y,u+=n.y);let f=(d-l)/2,b=(c-s)/2;if((a.type==="diamond"||a.type==="ellipse")&&!r){let x=Dr([l,s+b],[m,u],a.angle),E=Dr([l+f,s],[m,u],a.angle),T=Dr([d,s+b],[m,u],a.angle),C=Dr([l+f,c],[m,u],a.angle);i=o?[x,E,T,C]:[x,E,T,C,[m,u]]}else{let x=Dr([l,s],[m,u],a.angle),E=Dr([d,s],[m,u],a.angle),T=Dr([l,c],[m,u],a.angle),C=Dr([d,c],[m,u],a.angle);i=o?[x,E,T,C]:[x,E,T,C,[m,u]]}}else if(t.length>1){let[a,l,s,d]=Sc(t,n??{x:0,y:0}),c=s-a,m=d-l,u=[a,l],f=[s,l],b=[a,d],x=[s,d],E=[a+c/2,l+m/2];i=o?[u,f,b,x]:[u,f,b,x,E]}return i.map(a=>[ot(a[0]),ot(a[1])])},_5=(t,e,o,r)=>{let n=e.filter(i=>Ee(i)).map(i=>i.id);return _u(t,e,o,r).filter(i=>!(i.frameId&&n.includes(i.frameId)))},L5=(t,e,o,r)=>{let n=_5(t,e,o,r),i=Jn(n,r).filter(m=>!(m.length===1&&xt(m[0]))).map(m=>Ze(m).map(u=>ot(u))),a=i.sort((m,u)=>m[0]-u[0]),l=[],s=0;e:for(let m=0;m<a.length;m++){let u=a[m];for(let f=m+1;f<a.length;f++){if(++s>I5)break e;let b=a[f],[,x,E,T]=u,[C,w,,A]=b;E<C&&El([x,T],[w,A])&&l.push({startBounds:u,endBounds:b,startSide:[[E,x],[E,T]],endSide:[[C,w],[C,A]],length:C-E,overlap:yl([x,T],[w,A])})}}let d=i.sort((m,u)=>m[1]-u[1]),c=[];s=0;e:for(let m=0;m<d.length;m++){let u=d[m];for(let f=m+1;f<d.length;f++){if(++s>I5)break e;let b=d[f],[x,,E,T]=u,[C,w,A]=b;T<w&&El([x,E],[C,A])&&c.push({startBounds:u,endBounds:b,startSide:[[x,T],[E,T]],endSide:[[C,w],[A,w]],length:w-T,overlap:yl([x,E],[C,A])})}}return{horizontalGaps:l,verticalGaps:c}},A5=(t,e,o,r,n,i,a)=>{if(!nn({appState:o,event:r,selectedElements:t}))return[];if(t.length===0)return[];let l=Wo.getVisibleGaps();if(l){let{horizontalGaps:s,verticalGaps:d}=l,[c,m,u,f]=Sc(t,e).map(E=>ot(E)),b=(c+u)/2,x=(m+f)/2;for(let E of s){if(!El([m,f],E.overlap))continue;let T=E.startSide[0][0]+E.length/2,C=ot(T-b);if(E.length>u-c&&Math.abs(C)<=a.x){Math.abs(C)<a.x&&(n.length=0),a.x=Math.abs(C);let D={type:"gap",direction:"center_horizontal",gap:E,offset:C};n.push(D);continue}let[,,A]=E.endBounds,z=c-A,I=ot(E.length-z);if(Math.abs(I)<=a.x){Math.abs(I)<a.x&&(n.length=0),a.x=Math.abs(I);let D={type:"gap",direction:"side_right",gap:E,offset:I};n.push(D);continue}let[M,,,]=E.startBounds,_=M-u,U=ot(_-E.length);if(Math.abs(U)<=a.x){Math.abs(U)<a.x&&(n.length=0),a.x=Math.abs(U);let D={type:"gap",direction:"side_left",gap:E,offset:U};n.push(D);continue}}for(let E of d){if(!El([c,u],E.overlap))continue;let T=E.startSide[0][1]+E.length/2,C=ot(T-x);if(E.length>f-m&&Math.abs(C)<=a.y){Math.abs(C)<a.y&&(i.length=0),a.y=Math.abs(C);let D={type:"gap",direction:"center_vertical",gap:E,offset:C};i.push(D);continue}let[,A,,]=E.startBounds,z=A-f,I=ot(z-E.length);if(Math.abs(I)<=a.y){Math.abs(I)<a.y&&(i.length=0),a.y=Math.abs(I);let D={type:"gap",direction:"side_top",gap:E,offset:I};i.push(D);continue}let[,,,M]=E.endBounds,_=ot(m-M),U=E.length-_;if(Math.abs(U)<=a.y){Math.abs(U)<a.y&&(i.length=0),a.y=Math.abs(U);let D={type:"gap",direction:"side_bottom",gap:E,offset:U};i.push(D);continue}}}},P5=(t,e,o,r)=>{let n=_5(t,e,o,r);return Jn(n,r).filter(i=>!(i.length===1&&xt(i[0]))).flatMap(i=>Rs(i,r))},tl=(t,e,o,r,n,i,a)=>{if(!nn({appState:o,event:r,selectedElements:t})||t.length===0&&e.length===0)return[];let l=Wo.getReferenceSnapPoints();if(l)for(let s of e)for(let d of l){let c=d[0]-s[0],m=d[1]-s[1];Math.abs(c)<=a.x&&(Math.abs(c)<a.x&&(n.length=0),n.push({type:"point",points:[s,d],offset:c}),a.x=Math.abs(c)),Math.abs(m)<=a.y&&(Math.abs(m)<a.y&&(i.length=0),i.push({type:"point",points:[s,d],offset:m}),a.y=Math.abs(m))}},R5=(t,e,o,r,n)=>{let i=we(t,o);if(!nn({appState:o,event:r,selectedElements:i})||i.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};e.x=ot(e.x),e.y=ot(e.y);let a=[],l=[],s=gp(o.zoom.value),d={x:s,y:s},c=Rs(i,n,{dragOffset:e});tl(i,c,o,r,a,l,d),A5(i,e,o,r,a,l,d);let m={x:a[0]?.offset??0,y:l[0]?.offset??0};d.x=0,d.y=0,a.length=0,l.length=0;let u={x:ot(e.x+m.x),y:ot(e.y+m.y)};tl(i,Rs(i,n,{dragOffset:u}),o,r,a,l,d),A5(i,u,o,r,a,l,d);let f=kg(a,l),b=Qk(i,u,[...a,...l].filter(x=>x.type==="gap"));return{snapOffset:m,snapLines:[...f,...b]}},ot=t=>Math.round(t*10**6)/10**6,M5=t=>{let e=new Map;for(let o of t){let r=o.join(",");e.has(r)||e.set(r,o)}return Array.from(e.values())},kg=(t,e)=>{let o={},r={};if(t.length>0){for(let n of t)if(n.type==="point"){let i=ot(n.points[0][0]);o[i]||(o[i]=[]),o[i].push(...n.points.map(a=>[ot(a[0]),ot(a[1])]))}}if(e.length>0){for(let n of e)if(n.type==="point"){let i=ot(n.points[0][1]);r[i]||(r[i]=[]),r[i].push(...n.points.map(a=>[ot(a[0]),ot(a[1])]))}}return Object.entries(o).map(([n,i])=>({type:"points",points:M5(i.map(a=>[Number(n),a[1]]).sort((a,l)=>a[1]-l[1]))})).concat(Object.entries(r).map(([n,i])=>({type:"points",points:M5(i.map(a=>[a[0],Number(n)]).sort((a,l)=>a[0]-l[0]))})))},Jk=t=>{let e=new Map;for(let o of t){let r=o.points.flat().map(n=>[ot(n)]).join(",");e.has(r)||e.set(r,o)}return Array.from(e.values())},Qk=(t,e,o)=>{let[r,n,i,a]=Sc(t,e),l=[];for(let s of o){let[d,c,m,u]=s.gap.startBounds,[f,b,x,E]=s.gap.endBounds,T=yl([n,a],s.gap.overlap),C=yl([r,i],s.gap.overlap);switch(s.direction){case"center_horizontal":{if(T){let w=(T[0]+T[1])/2;l.push({type:"gap",direction:"horizontal",points:[[s.gap.startSide[0][0],w],[r,w]]},{type:"gap",direction:"horizontal",points:[[i,w],[s.gap.endSide[0][0],w]]})}break}case"center_vertical":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,s.gap.startSide[0][1]],[w,n]]},{type:"gap",direction:"vertical",points:[[w,a],[w,s.gap.endSide[0][1]]]})}break}case"side_right":{if(T){let w=(T[0]+T[1])/2;l.push({type:"gap",direction:"horizontal",points:[[m,w],[f,w]]},{type:"gap",direction:"horizontal",points:[[x,w],[r,w]]})}break}case"side_left":{if(T){let w=(T[0]+T[1])/2;l.push({type:"gap",direction:"horizontal",points:[[i,w],[d,w]]},{type:"gap",direction:"horizontal",points:[[m,w],[f,w]]})}break}case"side_top":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,a],[w,c]]},{type:"gap",direction:"vertical",points:[[w,u],[w,b]]})}break}case"side_bottom":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,u],[w,b]]},{type:"gap",direction:"vertical",points:[[w,E],[w,n]]})}break}}}return Jk(l.map(s=>({...s,points:s.points.map(d=>[ot(d[0]),ot(d[1])])})))},D5=(t,e,o,r,n,i)=>{if(!nn({event:r,selectedElements:t,appState:o})||t.length===0||t.length===1&&!qk(t[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[a,l,s,d]=Ze(e);i&&(i.includes("e")?s+=n.x:i.includes("w")&&(a+=n.x),i.includes("n")?l+=n.y:i.includes("s")&&(d+=n.y));let c=[];if(i)switch(i){case"e":{c.push([s,l],[s,d]);break}case"w":{c.push([a,l],[a,d]);break}case"n":{c.push([a,l],[s,l]);break}case"s":{c.push([a,d],[s,d]);break}case"ne":{c.push([s,l]);break}case"nw":{c.push([a,l]);break}case"se":{c.push([s,d]);break}case"sw":{c.push([a,d]);break}}let m=gp(o.zoom.value),u={x:m,y:m},f=[],b=[];tl(e,c,o,r,f,b,u);let x={x:f[0]?.offset??0,y:b[0]?.offset??0};u.x=0,u.y=0,f.length=0,b.length=0;let[E,T,C,w]=Ze(t).map(I=>ot(I));tl(t,[[E,T],[E,w],[C,T],[C,w]],o,r,f,b,u);let z=kg(f,b);return{snapOffset:x,snapLines:z}},N5=(t,e,o,r,n,i)=>{if(!nn({event:o,selectedElements:[t],appState:e}))return{snapOffset:{x:0,y:0},snapLines:[]};let a=[[r.x+n.x,r.y+n.y]],l=gp(e.zoom.value),s={x:l,y:l},d=[],c=[];tl([t],a,e,o,d,c,s);let m={x:d[0]?.offset??0,y:c[0]?.offset??0};s.x=0,s.y=0,d.length=0,c.length=0;let u=Rs([t],i,{boundingBoxCorners:!0,omitCenter:!0});tl([t],u,e,o,d,c,s);let f=kg(d,c);return{snapOffset:m,snapLines:f}},O5=(t,e,o,r,n)=>{if(!nn({event:r,selectedElements:[],appState:e}))return{originOffset:{x:0,y:0},snapLines:[]};let i=_u(t,[],e,n),a=gp(e.zoom.value),l={x:a,y:a},s=[],d=[];for(let c of i){let m=Rs([c],n);for(let u of m){let f=u[0]-o.x;Math.abs(f)<=Math.abs(l.x)&&(Math.abs(f)<Math.abs(l.x)&&(d.length=0),d.push({type:"pointer",points:[u,[u[0],o.y]],direction:"vertical"}),l.x=f);let b=u[1]-o.y;Math.abs(b)<=Math.abs(l.y)&&(Math.abs(b)<Math.abs(l.y)&&(s.length=0),s.push({type:"pointer",points:[u,[o.x,u[1]]],direction:"horizontal"}),l.y=b)}}return{originOffset:{x:d.length>0?d[0].points[0][0]-o.x:0,y:s.length>0?s[0].points[0][1]-o.y:0},snapLines:[...d,...s]}},F5=t=>t===ut.rectangle||t===ut.ellipse||t===ut.diamond||t===ut.frame||t===ut.magicframe||t===ut.image;h();var Xt=v(k(),1),eI=()=>(0,Xt.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line1",bold:t=>(0,Xt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line2",bold:t=>(0,Xt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line3",link:t=>(0,Xt.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:t})})}),(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:t=>(0,Xt.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:t}),discordLink:t=>(0,Xt.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[t,"."]})})})]}),B5=eI;h();var bp={width:100,height:0},Hn=100,tI=(t,e,o)=>{let r=gn({x:0,y:0,textAlign:ml.CENTER,verticalAlign:wo.MIDDLE,...e,containerId:t.id,strokeColor:e.strokeColor||t.strokeColor});return Object.assign(t,{boundElements:(t.boundElements||[]).concat({type:"text",id:r.id})}),Ut(r,t,o),[t,r]},z5=(t,e,o,r,n)=>{let i,a;if(Object.assign(t,{startBinding:t?.startBinding||null,endBinding:t.endBinding||null}),e){let c=e?.width??Hn,m=e?.height??Hn,u;e.id&&(u=r.getElement(e.id),u||console.error(`No element for start binding with id ${e.id} found`));let f=e.x||t.x-c,b=e.y||t.y-m/2,x=u?u.type:e.type;if(x){if(x==="text"){let E="";u&&u.type==="text"?E=u.text:e.type==="text"&&(E=e.text),E||console.error(`No text found for start binding text element for ${t.id}`),i=gn({x:f,y:b,type:"text",...u,...e,text:E}),Object.assign(i,{x:e.x||t.x-i.width,y:e.y||t.y-i.height/2})}else switch(x){case"rectangle":case"ellipse":case"diamond":{i=hn({x:f,y:b,width:c,height:m,...u,...e,type:x});break}default:pc(t,`Unhandled element start type "${e.type}"`,!0)}tu(t,i,"start",n)}}if(o){let c=o?.height??Hn,m=o?.width??Hn,u;o.id&&(u=r.getElement(o.id),u||console.error(`No element for end binding with id ${o.id} found`));let f=o.x||t.x+t.width,b=o.y||t.y-c/2,x=u?u.type:o.type;if(x){if(x==="text"){let E="";u&&u.type==="text"?E=u.text:o.type==="text"&&(E=o.text),E||console.error(`No text found for end binding text element for ${t.id}`),a=gn({x:f,y:b,type:"text",...u,...o,text:E}),Object.assign(a,{y:o.y||t.y-a.height/2})}else switch(x){case"rectangle":case"ellipse":case"diamond":{a=hn({x:f,y:b,width:m,height:c,...u,...o,type:x});break}default:pc(t,`Unhandled element end type "${x}"`,!0)}tu(t,a,"end",n)}}if(t.points.length<2)return{linearElement:t,startBoundElement:i,endBoundElement:a};let l=t.points.length-1,s=.5,d=pr(t.points);return t.points[l][0]>t.points[l-1][0]&&(d[0][0]=s,d[l][0]-=s),t.points[l][0]<t.points[l-1][0]&&(d[0][0]=-s,d[l][0]+=s),t.points[l][1]>t.points[l-1][1]&&(d[0][1]=s,d[l][1]-=s),t.points[l][1]<t.points[l-1][1]&&(d[0][1]=-s,d[l][1]+=s),Object.assign(t,{points:d}),{linearElement:t,startBoundElement:i,endBoundElement:a}},Ig=class{excalidrawElements=new Map;add=e=>{e&&this.excalidrawElements.set(e.id,e)};getElements=()=>pn(Array.from(this.excalidrawElements.values()));getElementsMap=()=>fc(pe(this.getElements()));getElement=e=>this.excalidrawElements.get(e)},Ms=(t,e)=>{if(!t)return[];let o=pr(t),r=new Ig,n=new Map,i=new Map;for(let l of o){let s,d=l.id;switch(e?.regenerateIds!==!1&&Object.assign(l,{id:mn()}),l.type){case"rectangle":case"ellipse":case"diamond":{let m=l?.label?.text&&l.width===void 0?0:l?.width||Hn,u=l?.label?.text&&l.height===void 0?0:l?.height||Hn;s=hn({...l,width:m,height:u});break}case"line":{let m=l.width||bp.width,u=l.height||bp.height;s=_l({width:m,height:u,points:[[0,0],[m,u]],...l});break}case"arrow":{let m=l.width||bp.width,u=l.height||bp.height;s=_l({width:m,height:u,endArrowhead:"arrow",points:[[0,0],[m,u]],...l}),Object.assign(s,ib(s.points));break}case"text":{let m=l?.fontFamily||Oi,u=l?.fontSize||_r,f=l?.lineHeight||Or(m),b=l.text??"",x=Al(b),E=wc(x,Xo({fontFamily:m,fontSize:u}),f);s=gn({width:E.width,height:E.height,fontFamily:m,fontSize:u,...l});break}case"image":{s=Ac({width:l?.width||Hn,height:l?.height||Hn,...l});break}case"frame":{s=Ic({x:0,y:0,...l});break}case"magicframe":{s=Ml({x:0,y:0,...l});break}case"freedraw":case"iframe":case"embeddable":{s=l;break}default:s=l,pc(l,`Unhandled element type "${l.type}"`,!0)}r.getElement(s.id)?console.error(`Duplicate id found for ${s.id}`):(r.add(s),n.set(s.id,l),d&&i.set(d,s.id))}let a=r.getElementsMap();for(let[l,s]of n){let d=r.getElement(l);switch(s.type){case"rectangle":case"ellipse":case"diamond":case"arrow":{if(s.label?.text){let[c,m]=tI(d,s?.label,a);if(r.add(c),r.add(m),c.type==="arrow"){let u=s.type==="arrow"?s?.start:void 0,f=s.type==="arrow"?s?.end:void 0;if(u&&u.id){let T=i.get(u.id);T&&Object.assign(u,{id:T})}if(f&&f.id){let T=i.get(f.id);T&&Object.assign(f,{id:T})}let{linearElement:b,startBoundElement:x,endBoundElement:E}=z5(c,u,f,r,a);c=b,r.add(b),r.add(x),r.add(E)}}else switch(s.type){case"arrow":{let{start:c,end:m}=s;if(c&&c.id){let x=i.get(c.id);Object.assign(c,{id:x})}if(m&&m.id){let x=i.get(m.id);Object.assign(m,{id:x})}let{linearElement:u,startBoundElement:f,endBoundElement:b}=z5(d,c,m,r,a);r.add(u),r.add(f),r.add(b);break}}break}}}for(let[l,s]of n){if(s.type!=="frame"&&s.type!=="magicframe")continue;let d=r.getElement(l);if(!d)throw new Error(`Excalidraw element with id ${l} doesn't exist`);let c=[];s.children.forEach(C=>{let w=i.get(C);if(!w)throw new Error(`Element with ${C} wasn't mapped correctly`);let A=r.getElement(w);if(!A)throw new Error(`Frame element with id ${w} doesn't exist`);Object.assign(A,{frameId:d.id}),A?.boundElements?.forEach(z=>{let I=r.getElement(z.id);if(!I)throw new Error(`Bound element with id ${z.id} doesn't exist`);Object.assign(I,{frameId:d.id}),c.push(I)}),c.push(A)});let[m,u,f,b]=Ze(c),x=10;m=m-x,u=u-x,f=f+x,b=b+x;let E=Math.max(d?.width,f-m),T=Math.max(d?.height,b-u);Object.assign(d,{x:m,y:u,width:E,height:T})}return r.getElements()};h();h();var ol=v(H(),1);h();var Ag=v(br(),1),$5=v(H(),1);var Qe=t=>e=>{(0,Ag.unstable_batchedUpdates)(t,e)},xp=t=>lc(e=>{(0,Ag.unstable_batchedUpdates)(t,e)}),vp=(()=>{let t;try{let o=$5.version.split(".");t=Number(o[0])>17}catch{t=!1}let e=!1;return()=>window.EXCALIDRAW_THROTTLE_RENDER===!0?t?!0:(e||(e=!0,console.warn("Excalidraw: render throttling is disabled on React versions < 18.")),!1):!1})();h();h();var oI="#ff6b6b",rI="#ff0000",H5=1,U5=2,W5=(t,e)=>{if(!e.snapLines.length)return;let o=e.theme===be.LIGHT||e.zenModeEnabled?oI:rI,r=(e.zenModeEnabled?H5*1.5:H5)/e.zoom.value;t.save(),t.translate(e.scrollX,e.scrollY);for(let n of e.snapLines)n.type==="pointer"?(t.lineWidth=r,t.strokeStyle=o,iI(n,t,e)):n.type==="gap"?(t.lineWidth=r,t.strokeStyle=o,aI(n.points[0],n.points[1],n.direction,e,t)):n.type==="points"&&(t.lineWidth=r,t.strokeStyle=o,nI(n,t,e));t.restore()},nI=(t,e,o)=>{if(!o.zenModeEnabled){let r=t.points[0],n=t.points[t.points.length-1];Go(r,n,e)}for(let r of t.points)G5(r,o,e)},iI=(t,e,o)=>{G5(t.points[0],o,e),o.zenModeEnabled||Go(t.points[0],t.points[1],e)},G5=([t,e],o,r)=>{r.save();let n=(o.zenModeEnabled?U5*1.5:U5)/o.zoom.value;r.beginPath(),r.moveTo(t-n,e-n),r.lineTo(t+n,e+n),r.moveTo(t+n,e-n),r.lineTo(t-n,e+n),r.stroke(),r.restore()},Go=(t,e,o)=>{o.beginPath(),o.lineTo(...t),o.lineTo(...e),o.stroke()},aI=(t,e,o,r,n)=>{let i=8/r.zoom.value,a=i/2,l=i/4;if(o==="horizontal"){let s=[(t[0]+e[0])/2,t[1]];r.zenModeEnabled||Go([t[0],t[1]-i],[t[0],t[1]+i],n),Go([s[0]-l,s[1]-a],[s[0]-l,s[1]+a],n),Go([s[0]+l,s[1]-a],[s[0]+l,s[1]+a],n),r.zenModeEnabled||(Go([e[0],e[1]-i],[e[0],e[1]+i],n),Go(t,e,n))}else{let s=[t[0],(t[1]+e[1])/2];r.zenModeEnabled||Go([t[0]-i,t[1]],[t[0]+i,t[1]],n),Go([s[0]-a,s[1]-l],[s[0]+a,s[1]-l],n),Go([s[0]-a,s[1]+l],[s[0]+a,s[1]+l],n),r.zenModeEnabled||(Go([e[0]-i,e[1]],[e[0]+i,e[1]],n),Go(t,e,n))}};var lI=(t,e,o)=>{let{elementId:r,hoverPointIndex:n}=e.selectedLinearElement;if(e.editingLinearElement?.selectedPointsIndices?.includes(n))return;let i=ue.getElement(r,o);if(!i)return;let a=ue.getPointAtIndexGlobalCoordinates(i,n,o);t.save(),t.translate(e.scrollX,e.scrollY),_g(a,t,e),t.restore()},_g=(t,e,o)=>{e.fillStyle="rgba(105, 101, 219, 0.4)",Rl(e,t[0],t[1],ue.POINT_HANDLE_SIZE/o.zoom.value,!1)},Ds=(t,e,o,r,n,i,a,l,s=!1,d=0)=>{t.save(),t.translate(i,a),t.rotate(l),s&&t.fillRect(e-i,o-a,r,n),d&&t.roundRect?(t.beginPath(),t.roundRect(e-i,o-a,r,n,d),t.stroke(),t.closePath()):t.strokeRect(e-i,o-a,r,n),t.restore()},sI=(t,e,o,r,n,i)=>{t.save(),t.translate(r,n),t.rotate(i),t.beginPath(),t.moveTo(0,o/2),t.lineTo(e/2,0),t.lineTo(0,-o/2),t.lineTo(-e/2,0),t.closePath(),t.stroke(),t.restore()},Ep=(t,e,o,r,n,i=!1)=>{t.strokeStyle="#5e5ad8",t.setLineDash([]),t.fillStyle="rgba(255, 255, 255, 0.9)",n?t.fillStyle="rgba(134, 131, 226, 0.9)":i&&(t.fillStyle="rgba(177, 151, 252, 0.7)"),Rl(t,o[0],o[1],r/e.zoom.value,!i)},cI=(t,e,o,r,n,i)=>{t.beginPath(),t.ellipse(r,n,e/2,o/2,i,0,Math.PI*2),t.stroke()},dI=(t,e,o)=>{let[r,n,i,a]=Wt(e,o),l=i-r,s=a-n,d=ru(e,l,s),c=4;t.strokeStyle="rgba(0,0,0,.05)",t.lineWidth=d-c;let m=c/2+d/2;switch(e.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":Ds(t,r-m,n-m,l+m*2,s+m*2,r+l/2,n+s/2,e.angle);break;case"diamond":let u=Math.hypot(l,s),f=m*u/s,b=m*u/l;sI(t,l+f*2,s+b*2,r+l/2,n+s/2,e.angle);break;case"ellipse":cI(t,l+m*2,s+m*2,r+l/2,n+s/2,e.angle);break}},mI=(t,e,o)=>{let[r,n,i]=e,a=ru(i,i.width,i.height);t.strokeStyle="rgba(0,0,0,0)",t.fillStyle="rgba(0,0,0,.05)",(n==="both"?[0,-1]:n==="start"?[0]:[-1]).forEach(s=>{let[d,c]=ue.getPointAtIndexGlobalCoordinates(r,s,o);Rl(t,d,c,a)})},K5=(t,e,o,r=$p*2)=>{let{angle:n,elementX1:i,elementY1:a,elementX2:l,elementY2:s,selectionColors:d,cx:c,cy:m,dashed:u,activeEmbeddable:f}=o,b=l-i,x=s-a,E=r/e.zoom.value,T=8/e.zoom.value,C=4/e.zoom.value;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=(f?4:1)/e.zoom.value;let w=d.length;for(let A=0;A<w;++A)t.strokeStyle=d[A],u&&t.setLineDash([T,C+(T+C)*(w-1)]),t.lineDashOffset=(T+C)*A,Ds(t,i-E,a-E,b+E*2,x+E*2,c,m,n);t.restore()},pI=(t,e,o,r)=>{let n=Array.isArray(o)?mI:dI;t.save(),t.translate(e.scrollX,e.scrollY),n(t,o,r),t.restore()},uI=(t,e,o,r)=>{let[n,i,a,l]=Wt(o,r),s=a-n,d=l-i;t.strokeStyle="rgb(0,118,255)",t.lineWidth=Zo.strokeWidth/e.zoom.value,t.save(),t.translate(e.scrollX,e.scrollY),Ds(t,n,i,s,d,n+s/2,i+d/2,o.angle,!1,Zo.radius/e.zoom.value),t.restore()},fI=(t,e,o)=>{let r=o.filter(l=>l.groupIds.length===0),n=o.filter(l=>l.groupIds.length>0),i=l=>{let[s,d,c,m]=Ze(l);return{angle:0,elementX1:s,elementX2:c,elementY1:d,elementY2:m,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:s+(c-s)/2,cy:d+(m-d)/2,activeEmbeddable:!1}},a=l=>{let s=ft(o,l);return i(s)};Object.entries(Ab(n,e)).filter(([l,s])=>s).map(([l,s])=>l).map(l=>a(l)).concat(r.map(l=>i([l]))).forEach(l=>K5(t,e,l))},Mg=(t,e,o,r)=>{if(!e.selectedLinearElement)return;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=1/e.zoom.value;let n=ue.getPointsGlobalCoordinates(o,r),{POINT_HANDLE_SIZE:i}=ue,a=e.editingLinearElement?i:i/2;n.forEach((s,d)=>{let c=!!e.editingLinearElement?.selectedPointsIndices?.includes(d);Ep(t,e,s,a,c)}),ue.getEditorMidPoints(o,r,e).filter(s=>s!==null).forEach(s=>{e?.selectedLinearElement?.segmentMidPointHoveredCoords&&ue.arePointsEqual(s,e.selectedLinearElement.segmentMidPointHoveredCoords)?e.editingLinearElement?(Ep(t,e,s,a,!1),_g(s,t,e)):(_g(s,t,e),Ep(t,e,s,a,!1)):(e.editingLinearElement||n.length===2)&&Ep(t,e,s,i/2,!1,!0)}),t.restore()},V5=(t,e,o,r,n)=>{Object.keys(r).forEach(i=>{let a=r[i];if(a!==void 0){let[l,s,d,c]=a;t.save(),t.lineWidth=1/o.zoom.value,e.selectionColor&&(t.strokeStyle=e.selectionColor),i==="rotation"?Rl(t,l+d/2,s+c/2,d/2):t.roundRect?(t.beginPath(),t.roundRect(l,s,d,c,2/o.zoom.value),t.fill(),t.stroke()):Ds(t,l,s,d,c,l+d/2,s+c/2,n,!0),t.restore()}})},Y5=({canvas:t,elementsMap:e,visibleElements:o,selectedElements:r,scale:n,appState:i,renderConfig:a,device:l})=>{if(t===null)return{atLeastOneVisibleElement:!1,elementsMap:e};let[s,d]=p0(t,n),c=u0({canvas:t,scale:n,normalizedWidth:s,normalizedHeight:d});c.save(),c.scale(i.zoom.value,i.zoom.value);let m;if(o.forEach(b=>{i.editingLinearElement?.elementId===b.id&&b&&(m=b)}),m&&Mg(c,i,m,e),i.selectionElement)try{L0(i.selectionElement,c,i)}catch(b){console.error(b)}i.isBindingEnabled&&i.suggestedBindings.filter(b=>b!=null).forEach(b=>{pI(c,i,b,e)}),i.frameToHighlight&&uI(c,i,i.frameToHighlight,e),i.elementsToHighlight&&fI(c,i,i.elementsToHighlight);let u=r.some(b=>Ee(b));if(r.length===1&&i.editingLinearElement?.elementId===r[0].id&&Mg(c,i,r[0],e),i.selectedLinearElement&&i.selectedLinearElement.hoverPointIndex>=0&&lI(c,i,e),!i.multiElement&&!i.editingLinearElement){let b=Zc(r,i);r.length===1&&$e(r[0])&&i.selectedLinearElement?.elementId===r[0].id&&!r[0].locked&&Mg(c,i,r[0],e);let E=a.selectionColor||Mt.black;if(b){let T=pe(r),C=[];for(let A of e.values()){let z=[];T.has(A.id)&&!Tc(i,A)&&z.push(E);let I=a.remoteSelectedElementIds.get(A.id);if(I&&z.push(...I.map(M=>xi(M,i.collaborators.get(M)))),z.length){let[M,_,U,D,G,O]=Wt(A,e,!0);C.push({angle:A.angle,elementX1:M,elementY1:_,elementX2:U,elementY2:D,selectionColors:z,dashed:!!I,cx:G,cy:O,activeEmbeddable:i.activeEmbeddable?.element===A&&i.activeEmbeddable.state==="active"})}}let w=A=>{let z=ft(e,A),[I,M,_,U]=Ze(z);C.push({angle:0,elementX1:I,elementX2:_,elementY1:M,elementY2:U,selectionColors:[Mt.black],dashed:!0,cx:I+(_-I)/2,cy:M+(U-M)/2,activeEmbeddable:!1})};for(let A of Br(i))w(A);i.editingGroupId&&w(i.editingGroupId),C.forEach(A=>K5(c,i,A))}if(c.save(),c.translate(i.scrollX,i.scrollY),r.length===1){c.fillStyle=Mt.white;let T=D0(r[0],i.zoom,e,"mouse",Yc(l));!i.viewModeEnabled&&b&&V5(c,a,i,T,r[0].angle)}else if(r.length>1&&!i.isRotating){let T=$p*2/i.zoom.value;c.fillStyle=Mt.white;let[C,w,A,z]=Ze(r),I=c.getLineDash();c.setLineDash([2/i.zoom.value]);let M=c.lineWidth;c.lineWidth=1/i.zoom.value,c.strokeStyle=E,Ds(c,C-T,w-T,A-C+T*2,z-w+T*2,(C+A)/2,(w+z)/2,0),c.lineWidth=M,c.setLineDash(I);let _=R0([C,w,A,z,(C+A)/2,(w+z)/2],0,i.zoom,"mouse",u?{...Yc(l),rotation:!0}:Yc(l));r.some(U=>!U.locked)&&V5(c,a,i,_,0)}c.restore()}W5(c,i),c.restore(),by({context:c,renderConfig:a,appState:i,normalizedWidth:s,normalizedHeight:d});let f;return a.renderScrollbars&&(f=h3(o,s,d,i),c.save(),c.fillStyle=f3,c.strokeStyle="rgba(255,255,255,0.8)",[f.horizontal,f.vertical].forEach(b=>{b&&rm(c,b.x,b.y,b.width,b.height,kr/2)}),c.restore()),{scrollBars:f,atLeastOneVisibleElement:o.length>0,elementsMap:e}},Lg=lc(t=>{let e=Y5(t);t.callback?.(e)},{trailing:!0}),Z5=(t,e)=>{if(e){Lg(t);return}let o=Y5(t);return t.callback(o),o};var X5=v(k(),1),hI=t=>{let e=(0,ol.useRef)(!1);return(0,ol.useEffect)(()=>{if(!e.current){e.current=!0;return}let o=new Map,r=new Map,n=new Map,i=new Map,a=new Map;t.appState.collaborators.forEach((s,d)=>{if(s.selectedElementIds)for(let c of Object.keys(s.selectedElementIds))n.has(c)||n.set(c,[]),n.get(c).push(d);!s.pointer||s.pointer.renderCursor===!1||(s.username&&i.set(d,s.username),s.userState&&a.set(d,s.userState),r.set(d,Qt({sceneX:s.pointer.x,sceneY:s.pointer.y},t.appState)),o.set(d,s.button))});let l=t.containerRef?.current&&getComputedStyle(t.containerRef.current).getPropertyValue("--color-selection")||"#6965db";Z5({canvas:t.canvas,elementsMap:t.elementsMap,visibleElements:t.visibleElements,selectedElements:t.selectedElements,scale:window.devicePixelRatio,appState:t.appState,renderConfig:{remotePointerViewportCoords:r,remotePointerButton:o,remoteSelectedElementIds:n,remotePointerUsernames:i,remotePointerUserStates:a,selectionColor:l,renderScrollbars:!1},device:t.device,callback:t.renderInteractiveSceneCallback},vp())}),(0,X5.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:t.appState.width,height:t.appState.height,cursor:t.appState.viewModeEnabled?Ne.GRAB:Ne.AUTO},width:t.appState.width*t.scale,height:t.appState.height*t.scale,ref:t.handleCanvasRef,onContextMenu:t.onContextMenu,onPointerMove:t.onPointerMove,onPointerUp:t.onPointerUp,onPointerCancel:t.onPointerCancel,onTouchMove:t.onTouchMove,onPointerDown:t.onPointerDown,onDoubleClick:t.appState.viewModeEnabled?void 0:t.onDoubleClick,children:g("labels.drawingCanvas")})},j5=t=>({zoom:t.zoom,scrollX:t.scrollX,scrollY:t.scrollY,width:t.width,height:t.height,viewModeEnabled:t.viewModeEnabled,editingGroupId:t.editingGroupId,editingLinearElement:t.editingLinearElement,selectedElementIds:t.selectedElementIds,frameToHighlight:t.frameToHighlight,offsetLeft:t.offsetLeft,offsetTop:t.offsetTop,theme:t.theme,pendingImageElementId:t.pendingImageElementId,selectionElement:t.selectionElement,selectedGroupIds:t.selectedGroupIds,selectedLinearElement:t.selectedLinearElement,multiElement:t.multiElement,isBindingEnabled:t.isBindingEnabled,suggestedBindings:t.suggestedBindings,isRotating:t.isRotating,elementsToHighlight:t.elementsToHighlight,collaborators:t.collaborators,activeEmbeddable:t.activeEmbeddable,snapLines:t.snapLines,zenModeEnabled:t.zenModeEnabled}),gI=(t,e)=>t.selectionNonce!==e.selectionNonce||t.versionNonce!==e.versionNonce||t.scale!==e.scale||t.elementsMap!==e.elementsMap||t.visibleElements!==e.visibleElements||t.selectedElements!==e.selectedElements?!1:kt(j5(t.appState),j5(e.appState)),Pg=ol.default.memo(hI,gI);h();var _i=v(H(),1);var J5=v(k(),1),bI=t=>{let e=(0,_i.useRef)(null),o=(0,_i.useRef)(!1);return(0,_i.useEffect)(()=>{let r=e.current;if(!r)return;let n=t.canvas;o.current||(o.current=!0,r.replaceChildren(n),n.classList.add("excalidraw__canvas","static"));let i=`${t.appState.width}px`,a=`${t.appState.height}px`;n.style.width!==i&&(n.style.width=i),n.style.height!==a&&(n.style.height=a);let l=t.appState.width*t.scale,s=t.appState.height*t.scale;n.width!==l&&(n.width=l),n.height!==s&&(n.height=s),h0({canvas:n,rc:t.rc,scale:t.scale,elementsMap:t.elementsMap,allElementsMap:t.allElementsMap,visibleElements:t.visibleElements,appState:t.appState,renderConfig:t.renderConfig},vp())}),(0,J5.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:e})},q5=t=>({zoom:t.zoom,scrollX:t.scrollX,scrollY:t.scrollY,width:t.width,height:t.height,viewModeEnabled:t.viewModeEnabled,offsetLeft:t.offsetLeft,offsetTop:t.offsetTop,theme:t.theme,pendingImageElementId:t.pendingImageElementId,shouldCacheIgnoreZoom:t.shouldCacheIgnoreZoom,viewBackgroundColor:t.viewBackgroundColor,exportScale:t.exportScale,selectedElementsAreBeingDragged:t.selectedElementsAreBeingDragged,gridSize:t.gridSize,frameRendering:t.frameRendering,selectedElementIds:t.selectedElementIds,frameToHighlight:t.frameToHighlight,editingGroupId:t.editingGroupId}),xI=(t,e)=>t.versionNonce!==e.versionNonce||t.scale!==e.scale||t.elementsMap!==e.elementsMap||t.visibleElements!==e.visibleElements?!1:kt(q5(t.appState),q5(e.appState))&&kt(t.renderConfig,e.renderConfig),Rg=_i.default.memo(bI,xI);h();var Ns=class{scene;constructor(e){this.scene=e}getRenderableElements=(()=>{let e=({elementsMap:r,zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:s,height:d,width:c})=>{let m=[];for(let u of r.values())Nl(u,c,d,{zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:s},r)&&m.push(u);return m},o=({elements:r,editingElement:n,pendingImageElementId:i})=>{let a=fc(new Map);for(let l of r)dn(l)&&i===l.id||(!n||n.type!=="text"||l.id!==n.id)&&a.set(l.id,l);return a};return Z1(({zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:s,width:d,editingElement:c,pendingImageElementId:m,versionNonce:u})=>{let f=this.scene.getNonDeletedElements(),b=o({elements:f,editingElement:c,pendingImageElementId:m}),x=e({elementsMap:b,zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:s,width:d});return{elementsMap:b,visibleElements:x}})})();destroy(){Lg.cancel(),f0.cancel(),this.getRenderableElements.clear()}};h();var yp=v(H(),1);var Dg=v(k(),1),Q5=({trails:t})=>{let e=(0,yp.useRef)(null);return(0,yp.useEffect)(()=>{if(e.current)for(let o of t)o.start(e.current);return()=>{for(let o of t)o.stop()}},t),(0,Dg.jsx)("div",{className:"SVGLayer",children:(0,Dg.jsx)("svg",{ref:e})})};h();var e6=v(k(),1),vI=5,EI=(t,e,o)=>{let[r,n]=Wt(t,o),{x:i,y:a}=Qt({sceneX:r+t.width,sceneY:n},e),l=i-e.offsetLeft+10,s=a-e.offsetTop;return{x:l,y:s}},Ng=({children:t,element:e,elementsMap:o})=>{let r=Ba();if(r.contextMenu||r.draggingElement||r.resizingElement||r.isRotating||r.openMenu||r.viewModeEnabled)return null;let{x:n,y:i}=EI(e,r,o);return(0,e6.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${i}px`,left:`${n}px`,padding:vI},children:t})};h();var yI=`You are a skilled front-end developer who builds interactive prototypes from wireframes, and is an expert at CSS Grid and Flex design.
69
+ C -->|Three| F[Car]`,H5=ld(wm,300),tz=({mermaidToExcalidrawLib:e})=>{let[t,r]=(0,Fn.useState)(()=>vo.get(Wo.MERMAID_TO_EXCALIDRAW)||ez),o=(0,Fn.useDeferredValue)(t.trim()),[i,a]=(0,Fn.useState)(null),s=(0,Fn.useRef)(null),c=(0,Fn.useRef)({elements:[],files:null}),d=Ur();(0,Fn.useEffect)(()=>{eh({canvasRef:s,data:c,mermaidToExcalidrawLib:e,setError:a,mermaidDefinition:o}).catch(f=>{DS()&&console.error("Failed to parse mermaid definition",f)}),H5(o)},[o,e]),(0,Fn.useEffect)(()=>()=>{H5.flush()},[]);let p=()=>{th({app:d,data:c,text:t,shouldSaveMermaidDataToStorage:!0})};return(0,Yr.jsxs)(Yr.Fragment,{children:[(0,Yr.jsx)("div",{className:"ttd-dialog-desc",children:(0,Yr.jsx)(oo,{i18nKey:"mermaid.description",flowchartLink:f=>(0,Yr.jsx)("a",{href:"https://mermaid.js.org/syntax/flowchart.html",children:f}),sequenceLink:f=>(0,Yr.jsx)("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",children:f}),classLink:f=>(0,Yr.jsx)("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",children:f})})}),(0,Yr.jsxs)(rh,{children:[(0,Yr.jsx)(Cc,{label:y("mermaid.syntax"),children:(0,Yr.jsx)(oh,{input:t,placeholder:"Write Mermaid diagram defintion here...",onChange:f=>r(f.target.value),onKeyboardSubmit:()=>{p()}})}),(0,Yr.jsx)(Cc,{label:y("mermaid.preview"),panelAction:{action:()=>{p()},label:y("mermaid.button"),icon:Es},renderSubmitShortcut:()=>(0,Yr.jsx)(ih,{}),children:(0,Yr.jsx)(nh,{canvasRef:s,loaded:e.loaded,error:i})})]})]})},U5=tz;var Bn=w(J(),1);v();var G5=w(P(),1),PE=({children:e,...t})=>(0,G5.jsx)(Yg,{className:"ttd-dialog-triggers",...t,children:e});PE.displayName="TTDDialogTabTriggers";v();var LE=w(P(),1),ah=({children:e,tab:t,onSelect:r,...o})=>(0,LE.jsx)(Vg,{value:t,asChild:!0,onSelect:r,children:(0,LE.jsx)("button",{type:"button",className:"ttd-dialog-tab-trigger",...o,children:e})});ah.displayName="TTDDialogTabTrigger";var Dt=w(P(),1),RE=3,Ic=1e3,rz=wt(null),oz=wt(null),DE=e=>{let t=it();return t.openDialog?.name!=="ttd"?null:(0,Dt.jsx)(nz,{...e,tab:t.openDialog.tab})},nz=$i("TTDDialogBase",({tab:e,...t})=>{let r=Ur(),o=nt(),i=(0,Bn.useRef)(null),[a,s]=Ve(oz),[c,d]=(0,Bn.useState)(a?.prompt??""),p=c.trim(),f=R=>{d(R.target.value),s(F=>({generatedResponse:F?.generatedResponse??null,prompt:R.target.value}))},[u,g]=(0,Bn.useState)(!1),[h,x]=Ve(rz),E=async()=>{if(p.length>Ic||p.length<RE||u||h?.rateLimitRemaining===0||"__fallback"in t){p.length<RE&&U(new Error(`Prompt is too short (min ${RE} characters)`)),p.length>Ic&&U(new Error(`Prompt is too long (max ${Ic} characters)`));return}try{g(!0),Fe("ai","generate","ttd");let{generatedResponse:R,error:F,rateLimit:B,rateLimitRemaining:Z}=await t.onTextSubmit(p);if(typeof R=="string"&&s(G=>({generatedResponse:R,prompt:G?.prompt??null})),dx(B)&&dx(Z)&&x({rateLimit:B,rateLimitRemaining:Z}),F){U(F);return}if(!R){U(new Error("Generation failed"));return}try{await eh({canvasRef:i,data:A,mermaidToExcalidrawLib:M,setError:U,mermaidDefinition:R}),Fe("ai","mermaid parse success","ttd")}catch(G){console.info(`%cTTD mermaid render errror: ${G.message}`,"color: red"),console.info(`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
70
+ TTD mermaid definition render errror: ${G.message}`,"color: yellow"),Fe("ai","mermaid parse failed","ttd"),U(new Error("Generated an invalid diagram :(. You may also try a different prompt."))}}catch(R){let F=R.message;(!F||F==="Failed to fetch")&&(F="Request failed"),U(new Error(F))}finally{g(!1)}},T=(0,Bn.useRef)(E);T.current=E;let[M,I]=(0,Bn.useState)({loaded:!1,api:import("./excalidraw-assets/dist-567JAXHK.js")});(0,Bn.useEffect)(()=>{(async()=>{await M.api,I(F=>({...F,loaded:!0}))})()},[M.api]);let A=(0,Bn.useRef)({elements:[],files:null}),[N,U]=(0,Bn.useState)(null);return(0,Dt.jsx)(Bt,{className:"ttd-dialog",onCloseRequest:()=>{r.setOpenDialog(null)},size:1200,title:!1,...t,autofocus:!1,children:(0,Dt.jsxs)(Qg,{dialog:"ttd",tab:e,children:["__fallback"in t&&t.__fallback?(0,Dt.jsx)("p",{className:"dialog-mermaid-title",children:y("mermaid.title")}):(0,Dt.jsxs)(PE,{children:[(0,Dt.jsx)(ah,{tab:"text-to-diagram",children:(0,Dt.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[y("labels.textToDiagram"),(0,Dt.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"1px 6px",marginLeft:"10px",fontSize:10,borderRadius:"12px",background:"var(--color-promo)",color:"var(--color-surface-lowest)"},children:"AI Beta"})]})}),(0,Dt.jsx)(ah,{tab:"mermaid",children:"Mermaid"})]}),(0,Dt.jsx)(Sc,{className:"ttd-dialog-content",tab:"mermaid",children:(0,Dt.jsx)(U5,{mermaidToExcalidrawLib:M})}),!("__fallback"in t)&&(0,Dt.jsxs)(Sc,{className:"ttd-dialog-content",tab:"text-to-diagram",children:[(0,Dt.jsx)("div",{className:"ttd-dialog-desc",children:"Currently we use Mermaid as a middle step, so you'll get best results if you describe a diagram, workflow, flow chart, and similar."}),(0,Dt.jsxs)(rh,{children:[(0,Dt.jsx)(Cc,{label:y("labels.prompt"),panelAction:{action:E,label:"Generate",icon:Es},onTextSubmitInProgess:u,panelActionDisabled:p.length>Ic||h?.rateLimitRemaining===0,renderTopRight:()=>h?(0,Dt.jsxs)("div",{className:"ttd-dialog-rate-limit",style:{fontSize:12,marginLeft:"auto",color:h.rateLimitRemaining===0?"var(--color-danger)":void 0},children:[h.rateLimitRemaining," requests left today"]}):null,renderSubmitShortcut:()=>(0,Dt.jsx)(ih,{}),renderBottomRight:()=>{if(typeof a?.generatedResponse=="string")return(0,Dt.jsxs)("div",{className:"excalidraw-link",style:{marginLeft:"auto",fontSize:14},onClick:()=>{typeof a?.generatedResponse=="string"&&(wm(a.generatedResponse),o({openDialog:{name:"ttd",tab:"mermaid"}}))},children:["View as Mermaid",(0,Dt.jsx)(an,{icon:Es})]});let R=p.length/Ic;return R>.8?(0,Dt.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:R>1?"var(--color-danger)":void 0},children:["Length: ",p.length,"/",Ic]}):null},children:(0,Dt.jsx)(oh,{onChange:f,input:c,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{T.current()}})}),(0,Dt.jsx)(Cc,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),th({app:r,data:A})},label:"Insert",icon:Es},children:(0,Dt.jsx)(nh,{canvasRef:i,error:N,loaded:M.loaded})})]})]})]})})});v();var oi=w(J(),1);var mM=w(W5(),1);v();v();var ri=w(J(),1);v();var K5=.01,yo=(e,t)=>!(t==="height"&&ge(e)||t==="width"&&ge(e)||t==="angle"&&He(e)),Yt=(e,t)=>{let r=e+t/2;return r-r%t},Ac=(e,t,r)=>Object.keys(e).map(o=>({original:(r??t).get(o),latest:t.get(o)})).filter(o=>o.original!==void 0&&o.latest!==void 0),iz=(e,t,r,o,i,a,s)=>({x:e+(r-i)/2+(i-r)/2*Math.cos(s)+(o-a)/2*Math.sin(s),y:t+(o-a)/2+(i-r)/2*Math.sin(s)+(a-o)/2*Math.cos(s)}),kc=(e,t,r,o,i,a=!0)=>{let s=i.get(o.id);if(!s)return;let c={},d=je(s,i);if(d){let p=Ap(_r(d),d.lineHeight),f=Ip(d.fontSize,d.lineHeight);e=Math.max(e,p),t=Math.max(t,f)}if(me(s,{...iz(s.x,s.y,s.width,s.height,e,t,s.angle),width:e,height:t,...ef(o,e,t,!0)},a),Im(s,i,{newSize:{width:e,height:t}}),d&&(c={fontSize:d.fontSize},r)){let p={...s,width:e,height:t};c={fontSize:K2(d,i,Ad(p,d))?.size??d.fontSize}}d&&c&&me(d,{fontSize:c.fontSize}),Tp(s,i,"e",r)},Ul=(e,t,r,o,i,a=!0)=>{let s=o.get(r.id);if(!s)return;let[c,d]=[r.x+r.width/2,r.y+r.height/2],[p,f]=Tn(r.x,r.y,c,d,r.angle),u=e-p,g=t-f,[h,x]=Tn(e,t,c+u,d+g,-r.angle);me(s,{x:h,y:x},a),Im(s,o);let E=je(r,i);if(E){let T=o.get(E.id);T&&me(T,{x:E.x+u,y:E.y+g},a)}},Mc=(e,t)=>{let o=In(t).map(i=>Wt(e,i).reduce((a,s)=>(a[s.id]=!0,a),{}));return e.filter(i=>!ua(i)).forEach(i=>{o.push({[i.id]:!0})}),o},Im=(e,t,r)=>{et(e)?dl([e],t,!0,[]):ml(e,t,r)};var Pc=w(P(),1),az=({label:e,icon:t,dragInputCallback:r,value:o,elements:i,editable:a=!0,shouldKeepAspectRatio:s,property:c,scene:d,appState:p})=>{let f=Ur(),u=(0,ri.useRef)(null),g=(0,ri.useRef)(null),[h,x]=(0,ri.useState)(o.toString()),E=(0,ri.useRef)(null);E.current||(E.current={originalAppState:uo(p),originalElements:i,lastUpdatedValue:h,updatePending:!1}),(0,ri.useEffect)(()=>{let I=o.toString();x(I),E.current.lastUpdatedValue=I},[o]);let T=(I,A,N)=>{if(!E.current.updatePending)return!1;E.current.updatePending=!1;let U=Number(I);if(isNaN(U)){x(o.toString());return}let R=Number(U.toFixed(2)),F=Number(o);(isNaN(F)||Math.abs(R-F)>=K5)&&(E.current.lastUpdatedValue=I,r({accumulatedChange:0,instantChange:0,originalElements:A,originalElementsMap:f.scene.getNonDeletedElementsMap(),shouldKeepAspectRatio:s,shouldChangeByStepSize:!1,nextValue:R,property:c,scene:d,originalAppState:N}),f.syncActionResult({storeAction:K.CAPTURE}))},M=(0,ri.useRef)(T);return M.current=T,(0,ri.useEffect)(()=>{let I=u.current;return()=>{let A=I?.value;A&&M.current(A,E.current.originalElements,E.current.originalAppState)}},[a]),a?(0,Pc.jsxs)("div",{className:j("drag-input-container",!a&&"disabled"),"data-testid":e,children:[(0,Pc.jsx)("div",{className:"drag-input-label",ref:g,onPointerDown:I=>{if(u.current&&a){let A=Number(u.current.value);isNaN(A)&&(A=0);let N=null,U=f.scene.getNonDeletedElements().reduce((G,te)=>(G.set(te.id,As(te)),G),new Map),R=i.map(G=>U.get(G.id)),F=uo(p),B=null;document.body.classList.add("excalidraw-cursor-resize");let Z=G=>{if(B||(B=0),N&&U!==null&&R!==null&&B!==null){let te=G.clientX-N.x;B+=te,r({accumulatedChange:B,instantChange:te,originalElements:R,originalElementsMap:U,shouldKeepAspectRatio:s,shouldChangeByStepSize:G.shiftKey,property:c,scene:d,originalAppState:F})}N={x:G.clientX,y:G.clientY}};window.addEventListener("pointermove",Z,!1),window.addEventListener("pointerup",()=>{window.removeEventListener("pointermove",Z,!1),f.syncActionResult({storeAction:K.CAPTURE}),N=null,B=null,R=null,U=null,document.body.classList.remove("excalidraw-cursor-resize")},!1)}},onPointerEnter:()=>{g.current&&(g.current.style.cursor="ew-resize")},children:t?(0,Pc.jsx)(an,{icon:t}):e}),(0,Pc.jsx)("input",{className:"drag-input",autoComplete:"off",spellCheck:"false",onKeyDown:I=>{if(a){let A=I.target;A instanceof HTMLInputElement&&I.key===L.ENTER&&(T(A.value,i,p),f.focusContainer())}},ref:u,value:h,onChange:I=>{E.current.updatePending=!0,x(I.target.value)},onFocus:I=>{I.target.select(),E.current.originalElements=i,E.current.originalAppState=uo(p)},onBlur:I=>{h?a&&T(I.target.value,E.current.originalElements,E.current.originalAppState):x(o.toString())},disabled:!a})]}):null},Vr=az;var V5=w(P(),1),Y5=10,lz=e=>e.type==="image",sz=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldKeepAspectRatio:o,shouldChangeByStepSize:i,nextValue:a,property:s,scene:c})=>{let d=c.getNonDeletedElementsMap(),p=t[0];if(p){let f=o||lz(p),u=p.width/p.height;if(a!==void 0){let T=Math.max(s==="width"?a:f?a*u:p.width,mo),M=Math.max(s==="height"?a:f?a/u:p.height,mo);kc(T,M,f,p,d);return}let g=s==="width"?e:0,h=s==="height"?e:0,x=Math.max(0,p.width+g);s==="width"&&(i?x=Yt(x,Y5):x=Math.round(x));let E=Math.max(0,p.height+h);s==="height"&&(i?E=Yt(E,Y5):E=Math.round(E)),f&&(s==="width"?E=Math.round(x/u*100)/100:x=Math.round(E*u*100)/100),E=Math.max(mo,E),x=Math.max(mo,x),kc(x,E,f,p,d)}},cz=({property:e,element:t,scene:r,appState:o})=>{let i=Math.round((e==="width"?t.width:t.height)*100)/100;return(0,V5.jsx)(Vr,{label:e==="width"?"W":"H",elements:[t],dragInputCallback:sz,value:i,editable:yo(t,e),scene:r,appState:o,property:e})},NE=cz;v();var Z5=w(P(),1),dz=15,mz=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,scene:i})=>{let a=i.getNonDeletedElementsMap(),s=t[0];if(s){let c=a.get(s.id);if(!c)return;if(o!==void 0){let h=fs(o);me(c,{angle:h}),Im(c,a);let x=je(c,a);x&&!Br(c)&&me(x,{angle:h});return}let d=Math.round(ps(s.angle)*100)/100,p=Math.round(e),f=(d+p)%360;r&&(f=Yt(f,dz)),f=f<0?f+360:f;let u=fs(f);me(c,{angle:u}),Im(c,a);let g=je(c,a);g&&!Br(c)&&me(g,{angle:u})}},uz=({element:e,scene:t,appState:r,property:o})=>(0,Z5.jsx)(Vr,{label:"A",icon:cp,value:Math.round(ps(e.angle)%360*100)/100,elements:[e],dragInputCallback:mz,editable:yo(e,"angle"),scene:t,appState:r,property:o}),X5=uz;v();var J5=w(P(),1),q5=4,pz=4,fz=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,scene:i})=>{let a=i.getNonDeletedElementsMap(),s=t[0];if(s){let c=a.get(s.id);if(!c||!ge(c))return;let d;if(o!==void 0)d=Math.max(Math.round(o),q5);else if(s.type==="text"){let p=Math.round(s.fontSize),f=Math.round(e);d=Math.max(p+f,q5),r&&(d=Yt(d,pz))}d&&(me(c,{fontSize:d}),er(c,i.getContainerElement(c),i.getNonDeletedElementsMap()))}},gz=({element:e,scene:t,appState:r,property:o})=>{let i=ge(e)?e:po(e)?je(e,t.getNonDeletedElementsMap()):null;return i?(0,J5.jsx)(Vr,{label:"F",value:Math.round(i.fontSize*10)/10,elements:[i],dragInputCallback:fz,icon:sl,appState:r,scene:t,property:o}):null},j5=gz;v();var eM=w(J(),1);var tM=w(P(),1),Lc=10,hz=(e,t,r,o)=>{let i=o.x-e,a=o.y-t,s=o.width*r,c=o.height*r,d=e+i*r,p=t+a*r;return{width:s,height:c,x:d,y:p,...ef(o,s,c,!1),...ge(o)?{fontSize:o.fontSize*r}:{}}},bz=(e,t,r,o,i,a,s,c)=>{let d=hz(e,t,o,a);me(i,d,!1);let p=je(a,c);if(p){let f=p.fontSize*o;ml(i,s,{newSize:{width:d.width,height:d.height}});let u=s.get(p.id);u&&ge(u)&&(me(u,{fontSize:f},!1),Tp(i,s,r==="width"?"e":"s",!0))}},Q5=(e,t,r,o,i,a,s,c,d,p)=>{a==="width"?t=Math.round(e/o*100)/100:e=Math.round(t*o*100)/100;let f=t/r;for(let u=0;u<c.length;u++){let g=c[u],h=s[u];bz(i[0],i[1],a,f,h,g,d,p)}},xz=({accumulatedChange:e,originalElements:t,originalElementsMap:r,originalAppState:o,shouldChangeByStepSize:i,nextValue:a,scene:s,property:c})=>{let d=s.getNonDeletedElementsMap(),p=Mc(t,o);if(a!==void 0){for(let g of p){let h=Ac(g,d,r);if(h.length>1){let x=h.map(Z=>Z.latest),E=h.map(Z=>Z.original),[T,M,I,A]=lt(E),N=I-T,U=A-M,R=N/U,F=Math.max(mo,c==="width"?Math.max(0,a):N),B=Math.max(mo,c==="height"?Math.max(0,a):U);Q5(F,B,U,R,[T,M],c,x,E,d,r)}else{let[x]=h,E=x?.latest,T=x?.original;if(E&&T&&yo(E,c)){let M=c==="width"?Math.max(0,a):E.width;c==="width"&&(i?M=Yt(M,Lc):M=Math.round(M));let I=c==="height"?Math.max(0,a):E.height;c==="height"&&(i?I=Yt(I,Lc):I=Math.round(I)),M=Math.max(mo,M),I=Math.max(mo,I),kc(M,I,!1,T,d,!1)}}}s.triggerUpdate();return}let f=c==="width"?e:0,u=c==="height"?e:0;for(let g of p){let h=Ac(g,d,r);if(h.length>1){let x=h.map(Z=>Z.latest),E=h.map(Z=>Z.original),[T,M,I,A]=lt(E),N=I-T,U=A-M,R=N/U,F=Math.max(0,N+f);c==="width"&&(i?F=Yt(F,Lc):F=Math.round(F));let B=Math.max(0,U+u);c==="height"&&(i?B=Yt(B,Lc):B=Math.round(B)),F=Math.max(mo,F),B=Math.max(mo,B),Q5(F,B,U,R,[T,M],c,x,E,d,r)}else{let[x]=h,E=x?.latest,T=x?.original;if(E&&T&&yo(E,c)){let M=Math.max(0,T.width+f);c==="width"&&(i?M=Yt(M,Lc):M=Math.round(M));let I=Math.max(0,T.height+u);c==="height"&&(i?I=Yt(I,Lc):I=Math.round(I)),M=Math.max(mo,M),I=Math.max(mo,I),kc(M,I,!1,T,d)}}}s.triggerUpdate()},vz=({property:e,elements:t,elementsMap:r,atomicUnits:o,scene:i,appState:a})=>{let s=(0,eM.useMemo)(()=>o.map(p=>{let f=Ac(p,r);if(f.length>1){let[g,h,x,E]=lt(f.map(T=>T.latest));return Math.round((e==="width"?x-g:E-h)*100)/100}let[u]=f;return Math.round((e==="width"?u.latest.width:u.latest.height)*100)/100}),[r,o,e]),c=new Set(s).size===1?Math.round(s[0]*100)/100:"Mixed",d=s.length>0;return(0,tM.jsx)(Vr,{label:e==="width"?"W":"H",elements:t,dragInputCallback:xz,value:c,editable:d,appState:a,property:e,scene:i})},OE=vz;v();var oM=w(P(),1),yz=15,Ez=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,property:i,scene:a})=>{let s=a.getNonDeletedElementsMap(),c=t.map(p=>s.get(p.id)).filter(p=>p&&!ua(p)&&yo(p,i)),d=t.filter(p=>!ua(p)&&yo(p,i));if(o!==void 0){let p=fs(o);for(let f of c){if(!f)continue;me(f,{angle:p},!1);let u=je(f,s);u&&!Br(f)&&me(u,{angle:p},!1)}a.triggerUpdate();return}for(let p=0;p<c.length;p++){let f=c[p];if(!f)continue;let u=d[p],g=Math.round(ps(u.angle)*100)/100,h=Math.round(e),x=(g+h)%360;r&&(x=Yt(x,yz)),x=x<0?x+360:x;let E=fs(x);me(f,{angle:E},!1);let T=je(f,s);T&&!Br(f)&&me(T,{angle:E},!1)}a.triggerUpdate()},wz=({elements:e,scene:t,appState:r,property:o})=>{let i=e.filter(d=>!ua(d)&&yo(d,"angle")),a=i.map(d=>Math.round(ps(d.angle)%360*100)/100),s=new Set(a).size===1?a[0]:"Mixed",c=i.some(d=>yo(d,"angle"));return(0,oM.jsx)(Vr,{label:"A",icon:cp,value:s,elements:e,dragInputCallback:Ez,editable:c,appState:r,scene:t,property:o})},rM=wz;v();var aM=w(P(),1),nM=4,Sz=4,Tz=(e,t)=>e.reduce((r,o)=>{if(!o||ua(o))return r;if(ge(o))return r.push(o),r;if(po(o)){let i=je(o,t);if(i)return r.push(i),r}return r},[]),Cz=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,scene:i})=>{let a=i.getNonDeletedElementsMap(),s=t.map(d=>a.get(d.id)),c;if(o){c=Math.max(Math.round(o),nM);for(let d of s)me(d,{fontSize:c},!1),er(d,i.getContainerElement(d),a,!1);i.triggerUpdate()}else{let d=t;for(let p=0;p<s.length;p++){let f=s[p],u=d[p],g=Math.round(u.fontSize),h=Math.round(e),x=Math.max(g+h,nM);r&&(x=Yt(x,Sz)),me(f,{fontSize:x},!1),er(f,i.getContainerElement(f),a,!1)}i.triggerUpdate()}},Iz=({elements:e,scene:t,appState:r,property:o,elementsMap:i})=>{let a=Tz(e,i);if(!a.length)return null;let s=a.map(p=>Math.round(p.fontSize*10)/10),c=new Set(s).size===1?s[0]:"Mixed",d=s.length>0;return(0,aM.jsx)(Vr,{label:"F",icon:sl,elements:a,dragInputCallback:Cz,value:c,editable:d,scene:t,property:o,appState:r})},iM=Iz;v();var sM=w(P(),1),lM=10,_z=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldChangeByStepSize:o,nextValue:i,property:a,scene:s})=>{let c=s.getNonDeletedElementsMap(),d=t[0],[p,f]=[d.x+d.width/2,d.y+d.height/2],[u,g]=Tn(d.x,d.y,p,f,d.angle);if(i!==void 0){Ul(a==="x"?i:u,a==="y"?i:g,d,c,r);return}let h=a==="x"?e:0,x=a==="y"?e:0,E=a==="x"?Math.round(o?Yt(d.x+h,lM):u+h):u,T=a==="y"?Math.round(o?Yt(d.y+x,lM):g+x):g;Ul(E,T,d,c,r)},Az=({property:e,element:t,elementsMap:r,scene:o,appState:i})=>{let[a,s]=Tn(t.x,t.y,t.x+t.width/2,t.y+t.height/2,t.angle),c=Math.round((e==="x"?a:s)*100)/100;return(0,sM.jsx)(Vr,{label:e==="x"?"X":"Y",elements:[t],dragInputCallback:_z,value:c,property:e,scene:o,appState:i})},FE=Az;v();var cM=w(J(),1);var dM=w(P(),1),kz=10,Mz=(e,t,r,o,i,a,s)=>{for(let c=0;c<o.length;c++){let d=i[c],[p,f]=[d.x+d.width/2,d.y+d.height/2],[u,g]=Tn(d.x,d.y,p,f,d.angle),h=e==="x"?Math.round(u+t):u,x=e==="y"?Math.round(g+r):g;Ul(h,x,d,a,s,!1)}},Pz=(e,t,r,o,i,a)=>{let[s,c,,]=lt(r),d=e-s,p=t-c;for(let f=0;f<r.length;f++){let u=r[f],g=o.get(u.id);if(g&&(!ge(g)||!g.containerId)){let[h,x]=[g.x+g.width/2,g.y+g.height/2],[E,T]=Tn(g.x,g.y,h,x,g.angle);Ul(E+d,T+p,u,o,i,!1)}}},Lz=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldChangeByStepSize:o,nextValue:i,property:a,scene:s,originalAppState:c})=>{let d=s.getNonDeletedElementsMap();if(i!==void 0){for(let g of Mc(t,c)){let h=Ac(g,d,r);if(h.length>1){let[x,E,,]=lt(h.map(I=>I.latest));Pz(a==="x"?i:x,a==="y"?i:E,h.map(I=>I.original),d,r,s)}else{let x=h[0]?.original,E=h[0]?.latest;if(x&&E&&yo(E,a)){let[T,M]=[x.x+x.width/2,x.y+x.height/2],[I,A]=Tn(x.x,x.y,T,M,x.angle);Ul(a==="x"?i:I,a==="y"?i:A,x,d,r,!1)}}}s.triggerUpdate();return}let p=o?Yt(e,kz):e;Mz(a,a==="x"?p:0,a==="y"?p:0,t,t,d,r),s.triggerUpdate()},Rz=({property:e,elements:t,elementsMap:r,atomicUnits:o,scene:i,appState:a})=>{let s=(0,cM.useMemo)(()=>o.map(d=>{let p=Object.keys(d).map(E=>r.get(E)).filter(E=>E!==void 0);if(p.length>1){let[E,T]=lt(p);return Math.round((e==="x"?E:T)*100)/100}let[f]=p,[u,g]=[f.x+f.width/2,f.y+f.height/2],[h,x]=Tn(f.x,f.y,u,g,f.angle);return Math.round((e==="x"?h:x)*100)/100}),[o,r,e]),c=new Set(s).size===1?s[0]:"Mixed";return(0,dM.jsx)(Vr,{label:e==="x"?"X":"Y",elements:t,dragInputCallback:Lz,value:c,property:e,scene:i,appState:a})},BE=Rz;v();var Gi=w(P(),1),Dz=({label:e,open:t,openTrigger:r,children:o})=>(0,Gi.jsxs)(Gi.Fragment,{children:[(0,Gi.jsxs)("div",{style:{cursor:"pointer",display:"flex",justifyContent:"space-between",alignItems:"center"},onClick:r,children:[e,(0,Gi.jsx)(an,{icon:t?TC:SC})]}),t&&(0,Gi.jsx)(Gi.Fragment,{children:o})]}),zE=Dz;var De=w(P(),1),Nz=50,uM=e=>{let t=Aa(),r=e.scene.getSceneNonce()||1,o=e.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1});return(0,De.jsx)(Oz,{...e,appState:t,sceneNonce:r,selectedElements:o})},Oz=(0,oi.memo)(({scene:e,onClose:t,renderCustomStats:r,selectedElements:o,appState:i,sceneNonce:a})=>{let s=e.getNonDeletedElements(),c=e.getNonDeletedElementsMap(),d=nt(),p=o.length===1?o[0]:null,f=o.length>1?o:null,[u,g]=(0,oi.useState)({width:0,height:0}),h=(0,oi.useMemo)(()=>(0,mM.throttle)(E=>{let T=lt(E);g({width:Math.round(T[2])-Math.round(T[0]),height:Math.round(T[3])-Math.round(T[1])})},Nz),[]);(0,oi.useEffect)(()=>{h(s)},[a,s,h]),(0,oi.useEffect)(()=>()=>h.cancel(),[h]);let x=(0,oi.useMemo)(()=>Mc(o,i),[o,i]);return(0,De.jsx)("div",{className:"Stats",children:(0,De.jsxs)(Lr,{padding:3,children:[(0,De.jsxs)("div",{className:"title",children:[(0,De.jsx)("h2",{children:y("stats.title")}),(0,De.jsx)("div",{className:"close",onClick:t,children:Vo})]}),(0,De.jsx)(zE,{label:(0,De.jsx)("h3",{children:y("stats.generalStats")}),open:!!(i.stats.panels&ad.generalStats),openTrigger:()=>d(E=>({...E,stats:{open:!0,panels:E.stats.panels^ad.generalStats}})),children:(0,De.jsx)("table",{children:(0,De.jsxs)("tbody",{children:[(0,De.jsx)("tr",{children:(0,De.jsx)("th",{colSpan:2,children:y("stats.scene")})}),(0,De.jsxs)("tr",{children:[(0,De.jsx)("td",{children:y("stats.elements")}),(0,De.jsx)("td",{children:s.length})]}),(0,De.jsxs)("tr",{children:[(0,De.jsx)("td",{children:y("stats.width")}),(0,De.jsx)("td",{children:u.width})]}),(0,De.jsxs)("tr",{children:[(0,De.jsx)("td",{children:y("stats.height")}),(0,De.jsx)("td",{children:u.height})]}),r?.(s,i)]})})}),o.length>0&&(0,De.jsx)("div",{id:"elementStats",style:{marginTop:12},children:(0,De.jsxs)(zE,{label:(0,De.jsx)("h3",{children:y("stats.elementProperties")}),open:!!(i.stats.panels&ad.elementProperties),openTrigger:()=>d(E=>({...E,stats:{open:!0,panels:E.stats.panels^ad.elementProperties}})),children:[p&&(0,De.jsxs)("div",{className:"sectionContent",children:[(0,De.jsx)("div",{className:"elementType",children:y(`element.${p.type}`)}),(0,De.jsxs)("div",{className:"statsItem",children:[(0,De.jsx)(FE,{element:p,property:"x",elementsMap:c,scene:e,appState:i}),(0,De.jsx)(FE,{element:p,property:"y",elementsMap:c,scene:e,appState:i}),(0,De.jsx)(NE,{property:"width",element:p,scene:e,appState:i}),(0,De.jsx)(NE,{property:"height",element:p,scene:e,appState:i}),(0,De.jsx)(X5,{property:"angle",element:p,scene:e,appState:i}),(0,De.jsx)(j5,{property:"fontSize",element:p,scene:e,appState:i})]})]}),f&&(0,De.jsxs)("div",{className:"sectionContent",children:[jC(f)&&(0,De.jsx)("div",{className:"elementType",children:y("element.group")}),(0,De.jsxs)("div",{className:"elementsCount",children:[(0,De.jsx)("div",{children:y("stats.elements")}),(0,De.jsx)("div",{children:o.length})]}),(0,De.jsxs)("div",{className:"statsItem",children:[(0,De.jsx)(BE,{property:"x",elements:f,elementsMap:c,atomicUnits:x,scene:e,appState:i}),(0,De.jsx)(BE,{property:"y",elements:f,elementsMap:c,atomicUnits:x,scene:e,appState:i}),(0,De.jsx)(OE,{property:"width",elements:f,elementsMap:c,atomicUnits:x,scene:e,appState:i}),(0,De.jsx)(OE,{property:"height",elements:f,elementsMap:c,atomicUnits:x,scene:e,appState:i}),(0,De.jsx)(rM,{property:"angle",elements:f,scene:e,appState:i}),(0,De.jsx)(iM,{property:"fontSize",elements:f,scene:e,appState:i,elementsMap:c})]})]})]})})]})})},(e,t)=>e.sceneNonce===t.sceneNonce&&e.selectedElements===t.selectedElements&&e.appState.stats.panels===t.appState.stats.panels);var he=w(P(),1),Fz=({UIOptions:e})=>(0,he.jsxs)(io,{__fallback:!0,children:[(0,he.jsx)(io.DefaultItems.LoadScene,{}),(0,he.jsx)(io.DefaultItems.SaveToActiveFile,{}),e.canvasActions.export&&(0,he.jsx)(io.DefaultItems.Export,{}),e.canvasActions.saveAsImage&&(0,he.jsx)(io.DefaultItems.SaveAsImage,{}),(0,he.jsx)(io.DefaultItems.Help,{}),(0,he.jsx)(io.DefaultItems.ClearCanvas,{}),(0,he.jsx)(io.Separator,{}),(0,he.jsx)(io.Group,{title:"Excalidraw links",children:(0,he.jsx)(io.DefaultItems.Socials,{})}),(0,he.jsx)(io.Separator,{}),(0,he.jsx)(io.DefaultItems.ToggleTheme,{}),(0,he.jsx)(io.DefaultItems.ChangeCanvasBackground,{})]}),Bz=()=>(0,he.jsxs)(jg,{__fallback:!0,children:[(0,he.jsx)(jg.Actions.SaveToDisk,{}),(0,he.jsx)(jg.Actions.ExportToImage,{})]}),zz=({actionManager:e,appState:t,files:r,setAppState:o,elements:i,canvas:a,onLockToggle:s,onHandToolToggle:c,onPenModeToggle:d,showExitZenModeBtn:p,renderTopRightUI:f,renderCustomStats:u,UIOptions:g,onExportImage:h,renderWelcomeScreen:x,children:E,app:T,isCollaborating:M,openAIKey:I,isOpenAIKeyPersisted:A,onOpenAIAPIKeyChange:N,onMagicSettingsConfirm:U})=>{let R=ot(),F=g3(),[B,Z]=Ve(Sa,dt),G=()=>g.canvasActions.export?(0,he.jsx)(X3,{elements:i,appState:t,files:r,actionManager:e,exportOpts:g.canvasActions.export,canvas:a,setAppState:o}):null,te=()=>!g.canvasActions.saveAsImage||t.openDialog?.name!=="imageExport"?null:(0,he.jsx)(N3,{elements:i,appState:t,files:r,actionManager:e,onExportImage:h,onCloseRequest:()=>o({openDialog:null}),name:T.getName()}),de=()=>(0,he.jsxs)("div",{style:{position:"relative"},children:[(0,he.jsx)(F.MainMenuTunnel.Out,{}),x&&(0,he.jsx)(F.WelcomeScreenMenuHintTunnel.Out,{})]}),W=()=>(0,he.jsx)(La,{heading:"selectedShapeActions",className:j("selected-shape-actions zen-mode-transition",{"transition-left":t.zenModeEnabled}),children:(0,he.jsx)(Lr,{className:Nu.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${t.height-166}px`},children:(0,he.jsx)(Ag,{appState:t,elementsMap:T.scene.getNonDeletedElementsMap(),renderAction:e.renderAction})})}),se=()=>{let Ee=Ds(t,i),ue=t.stats.open&&!t.zenModeEnabled&&!t.viewModeEnabled;return(0,he.jsx)(Fg,{side:"top",children:(0,he.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,he.jsxs)(Sr.Col,{gap:6,className:j("App-menu_top__left"),children:[de(),Ee&&W()]}),!t.viewModeEnabled&&(0,he.jsx)(La,{heading:"shapes",className:"shapes-section",children:H=>(0,he.jsxs)("div",{style:{position:"relative"},children:[x&&(0,he.jsx)(F.WelcomeScreenToolbarHintTunnel.Out,{}),(0,he.jsx)(Sr.Col,{gap:4,align:"start",children:(0,he.jsxs)(Sr.Row,{gap:1,className:j("App-toolbar-container",{"zen-mode":t.zenModeEnabled}),children:[(0,he.jsxs)(Lr,{padding:1,className:j("App-toolbar",{"zen-mode":t.zenModeEnabled}),children:[(0,he.jsx)(Bg,{appState:t,isMobile:R.editor.isMobile,device:R,app:T}),H,(0,he.jsxs)(Sr.Row,{gap:1,children:[(0,he.jsx)($g,{zenModeEnabled:t.zenModeEnabled,checked:t.penMode,onChange:()=>d(null),title:y("toolBar.penMode"),penDetected:t.penDetected}),(0,he.jsx)(zg,{checked:t.activeTool.locked,onChange:s,title:y("toolBar.lock")}),(0,he.jsx)("div",{className:"App-toolbar__divider"}),(0,he.jsx)(Hg,{checked:Si(t),onChange:()=>c(),title:y("toolBar.hand"),isMobile:!0}),(0,he.jsx)(kg,{appState:t,activeTool:t.activeTool,UIOptions:g,app:T})]})]}),M&&(0,he.jsx)(Lr,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,he.jsx)(R5,{title:y("toolBar.laser"),checked:t.activeTool.type===Xt.laser,onChange:()=>T.setActiveTool({type:Xt.laser}),isMobile:!0})})]})})]})}),(0,he.jsxs)("div",{className:j("layer-ui__wrapper__top-right zen-mode-transition",{"transition-right":t.zenModeEnabled}),children:[t.collaborators.size>0&&(0,he.jsx)(Ug,{collaborators:t.collaborators,userToFollow:t.userToFollow?.socketId||null}),f?.(R.editor.isMobile,t),!t.viewModeEnabled&&(!Se||t.openSidebar?.name!==Sn.name)&&(0,he.jsx)(F.DefaultSidebarTriggerTunnel.Out,{}),ue&&(0,he.jsx)(uM,{scene:T.scene,onClose:()=>{e.executeAction(dc)},renderCustomStats:u})]})]})})},xe=()=>(0,he.jsx)(Jg,{__fallback:!0,onDock:Ee=>{Fe("sidebar",`toggleDock (${Ee?"dock":"undock"})`,`(${R.editor.isMobile?"mobile":"desktop"})`)}}),Se=zd(ym,dt),Je=(0,he.jsxs)(he.Fragment,{children:[E,(0,he.jsx)(Fz,{UIOptions:g}),(0,he.jsx)(Jg.Trigger,{__fallback:!0,icon:rp,title:ia(y("toolBar.library")),onToggle:Ee=>{Ee&&Fe("sidebar",`${Sn.name} (open)`,`button (${R.editor.isMobile?"mobile":"desktop"})`)},tab:Sn.defaultTab,children:y("toolBar.library")}),(0,he.jsx)(Bz,{}),t.openDialog?.name==="ttd"&&(0,he.jsx)(DE,{__fallback:!0}),t.isLoading&&(0,he.jsx)(ff,{delay:250}),t.errorMessage&&(0,he.jsx)(D3,{onClose:()=>o({errorMessage:null}),children:t.errorMessage}),B&&!R.editor.isMobile&&(0,he.jsx)(hA,{colorPickerType:B.colorPickerType,onCancel:()=>{Z(null)},onChange:(Ee,ue,H,{altKey:Y})=>{if(!(Ee!=="elementBackground"&&Ee!=="elementStroke"))if(H.length){for(let le of H)me(le,{[Y&&B.swapPreviewOnAlt?Ee==="elementBackground"?"strokeColor":"backgroundColor":Ee==="elementBackground"?"backgroundColor":"strokeColor"]:ue},!1),An.delete(le);Yo.getScene(H[0])?.triggerUpdate()}else o(Ee==="elementBackground"?{currentItemBackgroundColor:ue}:{currentItemStrokeColor:ue})},onSelect:(Ee,ue)=>{Z(H=>H?.keepOpenOnAlt&&ue.altKey?H:null),B?.onSelect?.(Ee,ue)}}),t.openDialog?.name==="help"&&(0,he.jsx)(K3,{onClose:()=>{o({openDialog:null})}}),t.openDialog?.name==="settings"&&(0,he.jsx)(B5,{openAIKey:I,isPersisted:A,onChange:N,onConfirm:(Ee,ue)=>{let H=t.openDialog?.name==="settings"?t.openDialog?.source:"settings";o({openDialog:null},()=>{U(Ee,ue,H)})},onClose:()=>{o({openDialog:null})}}),(0,he.jsx)(w3,{}),(0,he.jsx)(F.OverwriteConfirmDialogTunnel.Out,{}),te(),G(),t.pasteDialog.shown&&(0,he.jsx)(G3,{setAppState:o,appState:t,onClose:()=>o({pasteDialog:{shown:!1,data:null}})}),R.editor.isMobile&&(0,he.jsx)(H3,{app:T,appState:t,elements:i,actionManager:e,renderJSONExportDialog:G,renderImageExportDialog:te,setAppState:o,onLockToggle:s,onHandToolToggle:c,onPenModeToggle:d,renderTopRightUI:f,renderCustomStats:u,renderSidebars:xe,device:R,renderWelcomeScreen:x,UIOptions:g}),!R.editor.isMobile&&(0,he.jsxs)(he.Fragment,{children:[(0,he.jsxs)("div",{className:"layer-ui__wrapper",style:t.openSidebar&&Se&&R.editor.canFitSidebar?{width:`calc(100% - ${vS}px)`}:{},children:[x&&(0,he.jsx)(F.WelcomeScreenCenterTunnel.Out,{}),se(),(0,he.jsx)(J3,{appState:t,actionManager:e,showExitZenModeBtn:p,renderWelcomeScreen:x}),t.scrolledOutside&&(0,he.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{o(Ee=>({...hl(i,Ee)}))},children:y("buttons.scrollBackToContent")})]}),xe()]})]});return(0,he.jsx)(iy.Provider,{value:t,children:(0,he.jsx)(sf,{scope:F.jotaiScope,children:(0,he.jsx)(Zy.Provider,{value:F,children:Je})})})},pM=e=>{let{suggestedBindings:t,startBoundElement:r,cursorButton:o,scrollX:i,scrollY:a,...s}=e;return s},$z=(e,t)=>{if(e.children!==t.children)return!1;let{canvas:r,appState:o,...i}=e,{canvas:a,appState:s,...c}=t;return fr(pM(o),pM(s),{selectedElementIds:fr,selectedGroupIds:fr})&&fr(i,c)},gM=fM.default.memo(zz,$z);v();var Rc=w(J(),1);var _m=w(P(),1),Hz=5e3,hM=({message:e,onClose:t,closable:r=!1,duration:o=Hz,style:i})=>{let a=(0,Rc.useRef)(0),s=o!==1/0,c=(0,Rc.useCallback)(()=>{s&&(a.current=window.setTimeout(()=>t(),o))},[t,o,s]);return(0,Rc.useEffect)(()=>{if(s)return c(),()=>clearTimeout(a.current)},[c,e,o,s]),(0,_m.jsxs)("div",{className:"Toast",onMouseEnter:s?()=>clearTimeout(a?.current):void 0,onMouseLeave:s?c:void 0,style:i,children:[(0,_m.jsx)("p",{className:"Toast__message",children:e}),r&&(0,_m.jsx)(Ie,{icon:Vo,"aria-label":"close",type:"icon",onClick:t,className:"close"})]})};v();var $E=re({name:"viewMode",label:"labels.viewMode",paletteName:"Toggle view mode",icon:Ss,viewMode:!0,trackEvent:{category:"canvas",predicate:e=>!e.viewModeEnabled},perform(e,t){return{appState:{...t,viewModeEnabled:!this.checked(t)},storeAction:K.NONE}},checked:e=>e.viewModeEnabled,predicate:(e,t,r)=>typeof r.viewModeEnabled>"u",keyTest:e=>!e[L.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.R});var nP=w(Ky(),1);v();var Am=class e{scene;constructor({scene:t}){this.scene=t}static loadedFontFaces=new Set;onFontsLoaded=t=>{if(t.every(i=>{let a=`${i.family}-${i.style}-${i.weight}`;return e.loadedFontFaces.has(a)?!0:(e.loadedFontFaces.add(a),!1)}))return!1;let r=!1,o=this.scene.getNonDeletedElementsMap();for(let i of this.scene.getNonDeletedElements())if(ge(i)){r=!0,An.delete(i);let a=Ei(i,o);a&&An.delete(a)}r&&this.scene.triggerUpdate()};loadFontsForElements=async t=>{let r=await Promise.all([...new Set(t.filter(o=>ge(o)).map(o=>o.fontFamily))].map(o=>{let i=_r({fontFamily:o,fontSize:16});if(!document.fonts?.check?.(i))return document.fonts?.load?.(i)}));this.onFontsLoaded(r.flat().filter(Boolean))}};v();var bM=(e,t)=>{let r=t.scene.getSelectedElements(e);return r.length===1&&He(r[0])},xM=re({name:"selectAllElementsInFrame",label:"labels.selectAllElementsInFrame",trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t).at(0)||null;if(He(i)){let a=ga(We(e),i.id).filter(s=>!(s.type==="text"&&s.containerId));return{elements:e,appState:{...t,selectedElementIds:a.reduce((s,c)=>(s[c.id]=!0,s),{})},storeAction:K.CAPTURE}}return{elements:e,appState:t,storeAction:K.NONE}},predicate:(e,t,r,o)=>bM(t,o)}),vM=re({name:"removeAllElementsFromFrame",label:"labels.removeAllElementsFromFrame",trackEvent:{category:"history"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t).at(0)||null;return He(i)?{elements:F2(e,i),appState:{...t,selectedElementIds:{[i.id]:!0}},storeAction:K.CAPTURE}:{elements:e,appState:t,storeAction:K.NONE}},predicate:(e,t,r,o)=>bM(t,o)}),tEe=re({name:"updateFrameRendering",label:"labels.updateFrameRendering",viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t)=>({elements:e,appState:{...t,frameRendering:{...t.frameRendering,enabled:!t.frameRendering.enabled}},storeAction:K.NONE}),checked:e=>e.frameRendering.enabled}),rEe=re({name:"setFrameAsActiveTool",label:"toolBar.frame",trackEvent:{category:"toolbar"},icon:up,viewMode:!1,perform:(e,t,r,o)=>{let i=Ut(t,{type:"frame"});return _n(o.interactiveCanvas,{...t,activeTool:i}),{elements:e,appState:{...t,activeTool:Ut(t,{type:"frame"})},storeAction:K.NONE}},keyTest:e=>!e[L.CTRL_OR_CMD]&&!e.shiftKey&&!e.altKey&&e.key.toLocaleLowerCase()===L.F});v();var Uz=8,yM=99999,lh=e=>Uz/e,dn=class e{static referenceSnapPoints=null;static visibleGaps=null;static setReferenceSnapPoints=t=>{e.referenceSnapPoints=t};static getReferenceSnapPoints=()=>e.referenceSnapPoints;static setVisibleGaps=t=>{e.visibleGaps=t};static getVisibleGaps=()=>e.visibleGaps;static destroy=()=>{e.referenceSnapPoints=null,e.visibleGaps=null}},Wi=({event:e,appState:t,selectedElements:r})=>e?t.objectsSnapModeEnabled&&!e[L.CTRL_OR_CMD]||!t.objectsSnapModeEnabled&&e[L.CTRL_OR_CMD]&&t.gridSize===null:r.length===1&&r[0].type==="arrow"?!1:t.objectsSnapModeEnabled,Gz=(e,t,r=.01)=>Math.abs(e-t)<=r,km=(e,t,{omitCenter:r,boundingBoxCorners:o,dragOffset:i}={omitCenter:!1,boundingBoxCorners:!1})=>{let a=[];if(e.length===1){let s=e[0],[c,d,p,f,u,g]=fo(s,t);i&&(c+=i.x,p+=i.x,u+=i.x,d+=i.y,f+=i.y,g+=i.y);let h=(p-c)/2,x=(f-d)/2;if((s.type==="diamond"||s.type==="ellipse")&&!o){let E=xi([c,d+x],[u,g],s.angle),T=xi([c+h,d],[u,g],s.angle),M=xi([p,d+x],[u,g],s.angle),I=xi([c+h,f],[u,g],s.angle);a=r?[E,T,M,I]:[E,T,M,I,[u,g]]}else{let E=xi([c,d],[u,g],s.angle),T=xi([p,d],[u,g],s.angle),M=xi([c,f],[u,g],s.angle),I=xi([p,f],[u,g],s.angle);a=r?[E,T,M,I]:[E,T,M,I,[u,g]]}}else if(e.length>1){let[s,c,d,p]=Mp(e,i??{x:0,y:0}),f=d-s,u=p-c,g=[s,c],h=[d,c],x=[s,p],E=[d,p],T=[s+f/2,c+u/2];a=r?[g,h,x,E]:[g,h,x,E,T]}return a.map(s=>[$t(s[0]),$t(s[1])])},SM=(e,t,r,o)=>{let i=t.filter(a=>He(a)).map(a=>a.id);return cv(e,t,r,o).filter(a=>!(a.frameId&&i.includes(a.frameId)))},TM=(e,t,r,o)=>{let i=SM(e,t,r,o),a=ul(i,o).filter(u=>!(u.length===1&&yr(u[0]))).map(u=>lt(u).map(g=>$t(g))),s=a.sort((u,g)=>u[0]-g[0]),c=[],d=0;e:for(let u=0;u<s.length;u++){let g=s[u];for(let h=u+1;h<s.length;h++){if(++d>yM)break e;let x=s[h],[,E,T,M]=g,[I,A,,N]=x;T<I&&hd([E,M],[A,N])&&c.push({startBounds:g,endBounds:x,startSide:[[T,E],[T,M]],endSide:[[I,A],[I,N]],length:I-T,overlap:bd([E,M],[A,N])})}}let p=a.sort((u,g)=>u[1]-g[1]),f=[];d=0;e:for(let u=0;u<p.length;u++){let g=p[u];for(let h=u+1;h<p.length;h++){if(++d>yM)break e;let x=p[h],[E,,T,M]=g,[I,A,N]=x;M<A&&hd([E,T],[I,N])&&f.push({startBounds:g,endBounds:x,startSide:[[E,M],[T,M]],endSide:[[I,A],[N,A]],length:A-M,overlap:bd([E,T],[I,N])})}}return{horizontalGaps:c,verticalGaps:f}},EM=(e,t,r,o,i,a,s)=>{if(!Wi({appState:r,event:o,selectedElements:e}))return[];if(e.length===0)return[];let c=dn.getVisibleGaps();if(c){let{horizontalGaps:d,verticalGaps:p}=c,[f,u,g,h]=Mp(e,t).map(T=>$t(T)),x=(f+g)/2,E=(u+h)/2;for(let T of d){if(!hd([u,h],T.overlap))continue;let M=T.startSide[0][0]+T.length/2,I=$t(M-x);if(T.length>g-f&&Math.abs(I)<=s.x){Math.abs(I)<s.x&&(i.length=0),s.x=Math.abs(I);let G={type:"gap",direction:"center_horizontal",gap:T,offset:I};i.push(G);continue}let[,,N]=T.endBounds,U=f-N,R=$t(T.length-U);if(Math.abs(R)<=s.x){Math.abs(R)<s.x&&(i.length=0),s.x=Math.abs(R);let G={type:"gap",direction:"side_right",gap:T,offset:R};i.push(G);continue}let[F,,,]=T.startBounds,B=F-g,Z=$t(B-T.length);if(Math.abs(Z)<=s.x){Math.abs(Z)<s.x&&(i.length=0),s.x=Math.abs(Z);let G={type:"gap",direction:"side_left",gap:T,offset:Z};i.push(G);continue}}for(let T of p){if(!hd([f,g],T.overlap))continue;let M=T.startSide[0][1]+T.length/2,I=$t(M-E);if(T.length>h-u&&Math.abs(I)<=s.y){Math.abs(I)<s.y&&(a.length=0),s.y=Math.abs(I);let G={type:"gap",direction:"center_vertical",gap:T,offset:I};a.push(G);continue}let[,N,,]=T.startBounds,U=N-h,R=$t(U-T.length);if(Math.abs(R)<=s.y){Math.abs(R)<s.y&&(a.length=0),s.y=Math.abs(R);let G={type:"gap",direction:"side_top",gap:T,offset:R};a.push(G);continue}let[,,,F]=T.endBounds,B=$t(u-F),Z=T.length-B;if(Math.abs(Z)<=s.y){Math.abs(Z)<s.y&&(a.length=0),s.y=Math.abs(Z);let G={type:"gap",direction:"side_bottom",gap:T,offset:Z};a.push(G);continue}}}},CM=(e,t,r,o)=>{let i=SM(e,t,r,o);return ul(i,o).filter(a=>!(a.length===1&&yr(a[0]))).flatMap(a=>km(a,o))},Dc=(e,t,r,o,i,a,s)=>{if(!Wi({appState:r,event:o,selectedElements:e})||e.length===0&&t.length===0)return[];let c=dn.getReferenceSnapPoints();if(c)for(let d of t)for(let p of c){let f=p[0]-d[0],u=p[1]-d[1];Math.abs(f)<=s.x&&(Math.abs(f)<s.x&&(i.length=0),i.push({type:"point",points:[d,p],offset:f}),s.x=Math.abs(f)),Math.abs(u)<=s.y&&(Math.abs(u)<s.y&&(a.length=0),a.push({type:"point",points:[d,p],offset:u}),s.y=Math.abs(u))}},IM=(e,t,r,o,i)=>{let a=ze(e,r);if(!Wi({appState:r,event:o,selectedElements:a})||a.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};t.x=$t(t.x),t.y=$t(t.y);let s=[],c=[],d=lh(r.zoom.value),p={x:d,y:d},f=km(a,i,{dragOffset:t});Dc(a,f,r,o,s,c,p),EM(a,t,r,o,s,c,p);let u={x:s[0]?.offset??0,y:c[0]?.offset??0};p.x=0,p.y=0,s.length=0,c.length=0;let g={x:$t(t.x+u.x),y:$t(t.y+u.y)};Dc(a,km(a,i,{dragOffset:g}),r,o,s,c,p),EM(a,g,r,o,s,c,p);let h=HE(s,c),x=Kz(a,g,[...s,...c].filter(E=>E.type==="gap"));return{snapOffset:u,snapLines:[...h,...x]}},$t=e=>Math.round(e*10**6)/10**6,wM=e=>{let t=new Map;for(let r of e){let o=r.join(",");t.has(o)||t.set(o,r)}return Array.from(t.values())},HE=(e,t)=>{let r={},o={};if(e.length>0){for(let i of e)if(i.type==="point"){let a=$t(i.points[0][0]);r[a]||(r[a]=[]),r[a].push(...i.points.map(s=>[$t(s[0]),$t(s[1])]))}}if(t.length>0){for(let i of t)if(i.type==="point"){let a=$t(i.points[0][1]);o[a]||(o[a]=[]),o[a].push(...i.points.map(s=>[$t(s[0]),$t(s[1])]))}}return Object.entries(r).map(([i,a])=>({type:"points",points:wM(a.map(s=>[Number(i),s[1]]).sort((s,c)=>s[1]-c[1]))})).concat(Object.entries(o).map(([i,a])=>({type:"points",points:wM(a.map(s=>[s[0],Number(i)]).sort((s,c)=>s[0]-c[0]))})))},Wz=e=>{let t=new Map;for(let r of e){let o=r.points.flat().map(i=>[$t(i)]).join(",");t.has(o)||t.set(o,r)}return Array.from(t.values())},Kz=(e,t,r)=>{let[o,i,a,s]=Mp(e,t),c=[];for(let d of r){let[p,f,u,g]=d.gap.startBounds,[h,x,E,T]=d.gap.endBounds,M=bd([i,s],d.gap.overlap),I=bd([o,a],d.gap.overlap);switch(d.direction){case"center_horizontal":{if(M){let A=(M[0]+M[1])/2;c.push({type:"gap",direction:"horizontal",points:[[d.gap.startSide[0][0],A],[o,A]]},{type:"gap",direction:"horizontal",points:[[a,A],[d.gap.endSide[0][0],A]]})}break}case"center_vertical":{if(I){let A=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[A,d.gap.startSide[0][1]],[A,i]]},{type:"gap",direction:"vertical",points:[[A,s],[A,d.gap.endSide[0][1]]]})}break}case"side_right":{if(M){let A=(M[0]+M[1])/2;c.push({type:"gap",direction:"horizontal",points:[[u,A],[h,A]]},{type:"gap",direction:"horizontal",points:[[E,A],[o,A]]})}break}case"side_left":{if(M){let A=(M[0]+M[1])/2;c.push({type:"gap",direction:"horizontal",points:[[a,A],[p,A]]},{type:"gap",direction:"horizontal",points:[[u,A],[h,A]]})}break}case"side_top":{if(I){let A=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[A,s],[A,f]]},{type:"gap",direction:"vertical",points:[[A,g],[A,x]]})}break}case"side_bottom":{if(I){let A=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[A,g],[A,x]]},{type:"gap",direction:"vertical",points:[[A,T],[A,i]]})}break}}}return Wz(c.map(d=>({...d,points:d.points.map(p=>[$t(p[0]),$t(p[1])])})))},_M=(e,t,r,o,i,a)=>{if(!Wi({event:o,selectedElements:e,appState:r})||e.length===0||e.length===1&&!Gz(e[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[s,c,d,p]=lt(t);a&&(a.includes("e")?d+=i.x:a.includes("w")&&(s+=i.x),a.includes("n")?c+=i.y:a.includes("s")&&(p+=i.y));let f=[];if(a)switch(a){case"e":{f.push([d,c],[d,p]);break}case"w":{f.push([s,c],[s,p]);break}case"n":{f.push([s,c],[d,c]);break}case"s":{f.push([s,p],[d,p]);break}case"ne":{f.push([d,c]);break}case"nw":{f.push([s,c]);break}case"se":{f.push([d,p]);break}case"sw":{f.push([s,p]);break}}let u=lh(r.zoom.value),g={x:u,y:u},h=[],x=[];Dc(t,f,r,o,h,x,g);let E={x:h[0]?.offset??0,y:x[0]?.offset??0};g.x=0,g.y=0,h.length=0,x.length=0;let[T,M,I,A]=lt(e).map(R=>$t(R));Dc(e,[[T,M],[T,A],[I,M],[I,A]],r,o,h,x,g);let U=HE(h,x);return{snapOffset:E,snapLines:U}},AM=(e,t,r,o,i,a)=>{if(!Wi({event:r,selectedElements:[e],appState:t}))return{snapOffset:{x:0,y:0},snapLines:[]};let s=[[o.x+i.x,o.y+i.y]],c=lh(t.zoom.value),d={x:c,y:c},p=[],f=[];Dc([e],s,t,r,p,f,d);let u={x:p[0]?.offset??0,y:f[0]?.offset??0};d.x=0,d.y=0,p.length=0,f.length=0;let g=km([e],a,{boundingBoxCorners:!0,omitCenter:!0});Dc([e],g,t,r,p,f,d);let h=HE(p,f);return{snapOffset:u,snapLines:h}},kM=(e,t,r,o,i)=>{if(!Wi({event:o,selectedElements:[],appState:t}))return{originOffset:{x:0,y:0},snapLines:[]};let a=cv(e,[],t,i),s=lh(t.zoom.value),c={x:s,y:s},d=[],p=[];for(let f of a){let u=km([f],i);for(let g of u){let h=g[0]-r.x;Math.abs(h)<=Math.abs(c.x)&&(Math.abs(h)<Math.abs(c.x)&&(p.length=0),p.push({type:"pointer",points:[g,[g[0],r.y]],direction:"vertical"}),c.x=h);let x=g[1]-r.y;Math.abs(x)<=Math.abs(c.y)&&(Math.abs(x)<Math.abs(c.y)&&(d.length=0),d.push({type:"pointer",points:[g,[r.x,g[1]]],direction:"horizontal"}),c.y=x)}}return{originOffset:{x:p.length>0?p[0].points[0][0]-r.x:0,y:d.length>0?d[0].points[0][1]-r.y:0},snapLines:[...p,...d]}},MM=e=>e===Xt.rectangle||e===Xt.ellipse||e===Xt.diamond||e===Xt.frame||e===Xt.magicframe||e===Xt.image||e===Xt.text;v();var Xr=w(P(),1),Yz=()=>(0,Xr.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,Xr.jsx)("p",{children:(0,Xr.jsx)(oo,{i18nKey:"errors.brave_measure_text_error.line1",bold:e=>(0,Xr.jsx)("span",{style:{fontWeight:600},children:e})})}),(0,Xr.jsx)("p",{children:(0,Xr.jsx)(oo,{i18nKey:"errors.brave_measure_text_error.line2",bold:e=>(0,Xr.jsx)("span",{style:{fontWeight:600},children:e})})}),(0,Xr.jsx)("p",{children:(0,Xr.jsx)(oo,{i18nKey:"errors.brave_measure_text_error.line3",link:e=>(0,Xr.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:e})})}),(0,Xr.jsx)("p",{children:(0,Xr.jsx)(oo,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:e=>(0,Xr.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:e}),discordLink:e=>(0,Xr.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[e,"."]})})})]}),PM=Yz;v();var sh={width:100,height:0},Ba=100,Vz=(e,t,r)=>{let o=fa({x:0,y:0,textAlign:id.CENTER,verticalAlign:Uo.MIDDLE,...t,containerId:e.id,strokeColor:t.strokeColor||e.strokeColor});return Object.assign(e,{boundElements:(e.boundElements||[]).concat({type:"text",id:o.id})}),er(o,e,r),[e,o]},LM=(e,t,r,o,i)=>{let a,s;if(Object.assign(e,{startBinding:e?.startBinding||null,endBinding:e.endBinding||null}),t){let f=t?.width??Ba,u=t?.height??Ba,g;t.id&&(g=o.getElement(t.id),g||console.error(`No element for start binding with id ${t.id} found`));let h=t.x||e.x-f,x=t.y||e.y-u/2,E=g?g.type:t.type;if(E){if(E==="text"){let T="";g&&g.type==="text"?T=g.text:t.type==="text"&&(T=t.text),T||console.error(`No text found for start binding text element for ${e.id}`),a=fa({x:h,y:x,type:"text",...g,...t,text:T}),Object.assign(a,{x:t.x||e.x-a.width,y:t.y||e.y-a.height/2})}else switch(E){case"rectangle":case"ellipse":case"diamond":{a=pa({x:h,y:x,width:f,height:u,...g,...t,type:E});break}default:ju(e,`Unhandled element start type "${t.type}"`,!0)}Ox(e,a,"start",i)}}if(r){let f=r?.height??Ba,u=r?.width??Ba,g;r.id&&(g=o.getElement(r.id),g||console.error(`No element for end binding with id ${r.id} found`));let h=r.x||e.x+e.width,x=r.y||e.y-f/2,E=g?g.type:r.type;if(E){if(E==="text"){let T="";g&&g.type==="text"?T=g.text:r.type==="text"&&(T=r.text),T||console.error(`No text found for end binding text element for ${e.id}`),s=fa({x:h,y:x,type:"text",...g,...r,text:T}),Object.assign(s,{y:r.y||e.y-s.height/2})}else switch(E){case"rectangle":case"ellipse":case"diamond":{s=pa({x:h,y:x,width:u,height:f,...g,...r,type:E});break}default:ju(e,`Unhandled element end type "${E}"`,!0)}Ox(e,s,"end",i)}}if(e.points.length<2)return{linearElement:e,startBoundElement:a,endBoundElement:s};let c=e.points.length-1,d=.5,p=uo(e.points);return e.points[c][0]>e.points[c-1][0]&&(p[0][0]=d,p[c][0]-=d),e.points[c][0]<e.points[c-1][0]&&(p[0][0]=-d,p[c][0]+=d),e.points[c][1]>e.points[c-1][1]&&(p[0][1]=d,p[c][1]-=d),e.points[c][1]<e.points[c-1][1]&&(p[0][1]=-d,p[c][1]+=d),Object.assign(e,{points:p}),{linearElement:e,startBoundElement:a,endBoundElement:s}},UE=class{excalidrawElements=new Map;add=t=>{t&&this.excalidrawElements.set(t.id,t)};getElements=()=>ca(Array.from(this.excalidrawElements.values()));getElementsMap=()=>Qu(Pe(this.getElements()));getElement=t=>this.excalidrawElements.get(t)},Tc=(e,t)=>{if(!e)return[];let r=uo(e),o=new UE,i=new Map,a=new Map;for(let c of r){let d,p=c.id;switch(t?.regenerateIds!==!1&&Object.assign(c,{id:sa()}),c.type){case"rectangle":case"ellipse":case"diamond":{let u=c?.label?.text&&c.width===void 0?0:c?.width||Ba,g=c?.label?.text&&c.height===void 0?0:c?.height||Ba;d=pa({...c,width:u,height:g});break}case"line":{let u=c.width||sh.width,g=c.height||sh.height;d=Md({width:u,height:g,points:[[0,0],[u,g]],...c});break}case"arrow":{let u=c.width||sh.width,g=c.height||sh.height;d=Md({width:u,height:g,endArrowhead:"arrow",points:[[0,0],[u,g]],...c}),Object.assign(d,VS(d.points));break}case"text":{let u=c?.fontFamily||ls,g=c?.fontSize||wn,h=c?.lineHeight||wi(u),x=c.text??"",E=_d(x),T=yi(E,_r({fontFamily:u,fontSize:g}),h);d=fa({width:T.width,height:T.height,fontFamily:u,fontSize:g,...c});break}case"image":{d=Dp({width:c?.width||Ba,height:c?.height||Ba,...c});break}case"frame":{d=Rp({x:0,y:0,...c});break}case"magicframe":{d=kd({x:0,y:0,...c});break}case"freedraw":case"iframe":case"embeddable":{d=c;break}default:d=c,ju(c,`Unhandled element type "${c.type}"`,!0)}o.getElement(d.id)?console.error(`Duplicate id found for ${d.id}`):(o.add(d),i.set(d.id,c),p&&a.set(p,d.id))}let s=o.getElementsMap();for(let[c,d]of i){let p=o.getElement(c);switch(d.type){case"rectangle":case"ellipse":case"diamond":case"arrow":{if(d.label?.text){let[f,u]=Vz(p,d?.label,s);if(o.add(f),o.add(u),f.type==="arrow"){let g=d.type==="arrow"?d?.start:void 0,h=d.type==="arrow"?d?.end:void 0;if(g&&g.id){let M=a.get(g.id);M&&Object.assign(g,{id:M})}if(h&&h.id){let M=a.get(h.id);M&&Object.assign(h,{id:M})}let{linearElement:x,startBoundElement:E,endBoundElement:T}=LM(f,g,h,o,s);f=x,o.add(x),o.add(E),o.add(T)}}else switch(d.type){case"arrow":{let{start:f,end:u}=d;if(f&&f.id){let E=a.get(f.id);Object.assign(f,{id:E})}if(u&&u.id){let E=a.get(u.id);Object.assign(u,{id:E})}let{linearElement:g,startBoundElement:h,endBoundElement:x}=LM(p,f,u,o,s);o.add(g),o.add(h),o.add(x);break}}break}}}for(let[c,d]of i){if(d.type!=="frame"&&d.type!=="magicframe")continue;let p=o.getElement(c);if(!p)throw new Error(`Excalidraw element with id ${c} doesn't exist`);let f=[];d.children.forEach(I=>{let A=a.get(I);if(!A)throw new Error(`Element with ${I} wasn't mapped correctly`);let N=o.getElement(A);if(!N)throw new Error(`Frame element with id ${A} doesn't exist`);Object.assign(N,{frameId:p.id}),N?.boundElements?.forEach(U=>{let R=o.getElement(U.id);if(!R)throw new Error(`Bound element with id ${U.id} doesn't exist`);Object.assign(R,{frameId:p.id}),f.push(R)}),f.push(N)});let[u,g,h,x]=lt(f),E=10;u=u-E,g=g-E,h=h+E,x=x+E;let T=Math.max(p?.width,h-u),M=Math.max(p?.height,x-g);Object.assign(p,{x:u,y:g,width:T,height:M})}return o.getElements()};v();v();var Nc=w(J(),1);v();var GE=w(Yn(),1),RM=w(J(),1);var Nt=e=>t=>{(0,GE.unstable_batchedUpdates)(e,t)},ch=e=>Vu(t=>{(0,GE.unstable_batchedUpdates)(e,t)}),dh=(()=>{let e;try{let r=RM.version.split(".");e=Number(r[0])>17}catch{e=!1}let t=!1;return()=>window.EXCALIDRAW_THROTTLE_RENDER===!0?e?!0:(t||(t=!0,console.warn("Excalidraw: render throttling is disabled on React versions < 18.")),!1):!1})();v();v();var Xz="#ff6b6b",Zz="#ff0000",DM=1,NM=2,OM=(e,t)=>{if(!t.snapLines.length)return;let r=t.theme===$e.LIGHT||t.zenModeEnabled?Xz:Zz,o=(t.zenModeEnabled?DM*1.5:DM)/t.zoom.value;e.save(),e.translate(t.scrollX,t.scrollY);for(let i of t.snapLines)i.type==="pointer"?(e.lineWidth=o,e.strokeStyle=r,jz(i,e,t)):i.type==="gap"?(e.lineWidth=o,e.strokeStyle=r,Jz(i.points[0],i.points[1],i.direction,t,e)):i.type==="points"&&(e.lineWidth=o,e.strokeStyle=r,qz(i,e,t));e.restore()},qz=(e,t,r)=>{if(!r.zenModeEnabled){let o=e.points[0],i=e.points[e.points.length-1];mn(o,i,t)}for(let o of e.points)FM(o,r,t)},jz=(e,t,r)=>{FM(e.points[0],r,t),r.zenModeEnabled||mn(e.points[0],e.points[1],t)},FM=([e,t],r,o)=>{o.save();let i=(r.zenModeEnabled?NM*1.5:NM)/r.zoom.value;o.beginPath(),o.moveTo(e-i,t-i),o.lineTo(e+i,t+i),o.moveTo(e+i,t-i),o.lineTo(e-i,t+i),o.stroke(),o.restore()},mn=(e,t,r)=>{r.beginPath(),r.lineTo(...e),r.lineTo(...t),r.stroke()},Jz=(e,t,r,o,i)=>{let a=8/o.zoom.value,s=a/2,c=a/4;if(r==="horizontal"){let d=[(e[0]+t[0])/2,e[1]];o.zenModeEnabled||mn([e[0],e[1]-a],[e[0],e[1]+a],i),mn([d[0]-c,d[1]-s],[d[0]-c,d[1]+s],i),mn([d[0]+c,d[1]-s],[d[0]+c,d[1]+s],i),o.zenModeEnabled||(mn([t[0],t[1]-a],[t[0],t[1]+a],i),mn(e,t,i))}else{let d=[e[0],(e[1]+t[1])/2];o.zenModeEnabled||mn([e[0]-a,e[1]],[e[0]+a,e[1]],i),mn([d[0]-s,d[1]-c],[d[0]+s,d[1]-c],i),mn([d[0]-s,d[1]+c],[d[0]+s,d[1]+c],i),o.zenModeEnabled||(mn([t[0]-a,t[1]],[t[0]+a,t[1]],i),mn(e,t,i))}};var Qz=(e,t,r)=>{let{elementId:o,hoverPointIndex:i}=t.selectedLinearElement;if(t.editingLinearElement?.selectedPointsIndices?.includes(i))return;let a=Le.getElement(o,r);if(!a)return;let s=Le.getPointAtIndexGlobalCoordinates(a,i,r);e.save(),e.translate(t.scrollX,t.scrollY),KE(s,e,t),e.restore()},KE=(e,t,r)=>{t.fillStyle="rgba(105, 101, 219, 0.4)",Rd(t,e[0],e[1],Le.POINT_HANDLE_SIZE/r.zoom.value,!1)},Mm=(e,t,r,o,i,a,s,c,d=!1,p=0)=>{e.save(),e.translate(a,s),e.rotate(c),d&&e.fillRect(t-a,r-s,o,i),p&&e.roundRect?(e.beginPath(),e.roundRect(t-a,r-s,o,i,p),e.stroke(),e.closePath()):e.strokeRect(t-a,r-s,o,i),e.restore()},e$=(e,t,r,o,i,a)=>{e.save(),e.translate(o,i),e.rotate(a),e.beginPath(),e.moveTo(0,r/2),e.lineTo(t/2,0),e.lineTo(0,-r/2),e.lineTo(-t/2,0),e.closePath(),e.stroke(),e.restore()},mh=(e,t,r,o,i,a=!1)=>{e.strokeStyle="#5e5ad8",e.setLineDash([]),e.fillStyle="rgba(255, 255, 255, 0.9)",i?e.fillStyle="rgba(134, 131, 226, 0.9)":a&&(e.fillStyle="rgba(177, 151, 252, 0.7)"),Rd(e,r[0],r[1],o/t.zoom.value,!a)},t$=(e,t,r,o,i,a)=>{e.beginPath(),e.ellipse(o,i,t/2,r/2,a,0,Math.PI*2),e.stroke()},r$=(e,t,r)=>{let[o,i,a,s]=fo(t,r),c=a-o,d=s-i,p=Fx(t,c,d),f=4;e.strokeStyle="rgba(0,0,0,.05)",e.lineWidth=p-f;let u=f/2+p/2;switch(t.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":Mm(e,o-u,i-u,c+u*2,d+u*2,o+c/2,i+d/2,t.angle);break;case"diamond":let g=Math.hypot(c,d),h=u*g/d,x=u*g/c;e$(e,c+h*2,d+x*2,o+c/2,i+d/2,t.angle);break;case"ellipse":t$(e,c+u*2,d+u*2,o+c/2,i+d/2,t.angle);break}},o$=(e,t,r)=>{let[o,i,a]=t,s=Fx(a,a.width,a.height);e.strokeStyle="rgba(0,0,0,0)",e.fillStyle="rgba(0,0,0,.05)",(i==="both"?[0,-1]:i==="start"?[0]:[-1]).forEach(d=>{let[p,f]=Le.getPointAtIndexGlobalCoordinates(o,d,r);Rd(e,p,f,s)})},zM=(e,t,r)=>{let{angle:o,elementX1:i,elementY1:a,elementX2:s,elementY2:c,selectionColors:d,cx:p,cy:f,dashed:u,activeEmbeddable:g}=r,h=s-i,x=c-a,T=Fu*2/t.zoom.value,M=8/t.zoom.value,I=4/t.zoom.value;e.save(),e.translate(t.scrollX,t.scrollY),e.lineWidth=(g?4:1)/t.zoom.value;let A=d.length;for(let N=0;N<A;++N)e.strokeStyle=d[N],u&&e.setLineDash([M,I+(M+I)*(A-1)]),e.lineDashOffset=(M+I)*N,Mm(e,i-T,a-T,h+T*2,x+T*2,p,f,o);e.restore()},n$=(e,t,r,o)=>{let i=Array.isArray(r)?o$:r$;e.save(),e.translate(t.scrollX,t.scrollY),i(e,r,o),e.restore()},i$=(e,t,r,o)=>{let[i,a,s,c]=fo(r,o),d=s-i,p=c-a;e.strokeStyle="rgb(0,118,255)",e.lineWidth=En.strokeWidth/t.zoom.value,e.save(),e.translate(t.scrollX,t.scrollY),Mm(e,i,a,d,p,i+d/2,a+p/2,r.angle,!1,En.radius/t.zoom.value),e.restore()},a$=(e,t,r)=>{let o=r.filter(c=>c.groupIds.length===0),i=r.filter(c=>c.groupIds.length>0),a=c=>{let[d,p,f,u]=lt(c);return{angle:0,elementX1:d,elementX2:f,elementY1:p,elementY2:u,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:d+(f-d)/2,cy:p+(u-p)/2,activeEmbeddable:!1}},s=c=>{let d=Wt(r,c);return a(d)};Object.entries(YC(i,t)).filter(([c,d])=>d).map(([c,d])=>c).map(c=>s(c)).concat(o.map(c=>a([c]))).forEach(c=>zM(e,t,c))},WE=(e,t,r,o)=>{if(!t.selectedLinearElement)return;e.save(),e.translate(t.scrollX,t.scrollY),e.lineWidth=1/t.zoom.value;let i=Le.getPointsGlobalCoordinates(r,o),{POINT_HANDLE_SIZE:a}=Le,s=t.editingLinearElement?a:a/2;i.forEach((d,p)=>{let f=!!t.editingLinearElement?.selectedPointsIndices?.includes(p);mh(e,t,d,s,f)}),Le.getEditorMidPoints(r,o,t).filter(d=>d!==null).forEach(d=>{t?.selectedLinearElement?.segmentMidPointHoveredCoords&&Le.arePointsEqual(d,t.selectedLinearElement.segmentMidPointHoveredCoords)?t.editingLinearElement?(mh(e,t,d,s,!1),KE(d,e,t)):(KE(d,e,t),mh(e,t,d,s,!1)):(t.editingLinearElement||i.length===2)&&mh(e,t,d,a/2,!1,!0)}),e.restore()},BM=(e,t,r,o,i)=>{Object.keys(o).forEach(a=>{let s=o[a];if(s!==void 0){let[c,d,p,f]=s;e.save(),e.lineWidth=1/r.zoom.value,t.selectionColor&&(e.strokeStyle=t.selectionColor),a==="rotation"?Rd(e,c+p/2,d+f/2,p/2):e.roundRect?(e.beginPath(),e.roundRect(c,d,p,f,2/r.zoom.value),e.fill(),e.stroke()):Mm(e,c,d,p,f,c+p/2,d+f/2,i,!0),e.restore()}})},l$=(e,t,r,o)=>{t.save();let i=Fu*2/r.zoom.value,a=e.width+i*2,s=e.height+i*2,c=e.x+a/2,d=e.y+s/2,p=-(a/2+i),f=-(s/2+i);t.translate(c+r.scrollX,d+r.scrollY),t.rotate(e.angle),t.lineWidth=1/r.zoom.value,t.strokeStyle=o,t.strokeRect(p,f,a,s),t.restore()},$M=({canvas:e,elementsMap:t,visibleElements:r,selectedElements:o,allElementsMap:i,scale:a,appState:s,renderConfig:c,device:d})=>{if(e===null)return{atLeastOneVisibleElement:!1,elementsMap:t};let[p,f]=E2(e,a),u=w2({canvas:e,scale:a,normalizedWidth:p,normalizedHeight:f});u.save(),u.scale(s.zoom.value,s.zoom.value);let g;if(r.forEach(E=>{s.editingLinearElement?.elementId===E.id&&E&&(g=E)}),g&&WE(u,s,g,t),s.selectionElement)try{$2(s.selectionElement,u,s,c.selectionColor)}catch(E){console.error(E)}if(s.editingElement&&ge(s.editingElement)){let E=i.get(s.editingElement.id);E&&!E.autoResize&&l$(E,u,s,c.selectionColor)}s.isBindingEnabled&&s.suggestedBindings.filter(E=>E!=null).forEach(E=>{n$(u,s,E,t)}),s.frameToHighlight&&i$(u,s,s.frameToHighlight,t),s.elementsToHighlight&&a$(u,s,s.elementsToHighlight);let h=o.some(E=>He(E));if(o.length===1&&s.editingLinearElement?.elementId===o[0].id&&WE(u,s,o[0],t),s.selectedLinearElement&&s.selectedLinearElement.hoverPointIndex>=0&&Qz(u,s,t),!s.multiElement&&!s.editingLinearElement){let E=Qp(o,s);o.length===1&&et(o[0])&&s.selectedLinearElement?.elementId===o[0].id&&!o[0].locked&&WE(u,s,o[0],t);let M=c.selectionColor||Or.black;if(E){let I=Pe(o),A=[];for(let U of t.values()){let R=[];I.has(U.id)&&!Pp(s,U)&&R.push(M);let F=c.remoteSelectedElementIds.get(U.id);if(F&&R.push(...F.map(B=>Ml(B,s.collaborators.get(B)))),R.length){let[B,Z,G,te,de,W]=fo(U,t,!0);A.push({angle:U.angle,elementX1:B,elementY1:Z,elementX2:G,elementY2:te,selectionColors:R,dashed:!!F,cx:de,cy:W,activeEmbeddable:s.activeEmbeddable?.element===U&&s.activeEmbeddable.state==="active"})}}let N=U=>{let R=Wt(t,U),[F,B,Z,G]=lt(R);A.push({angle:0,elementX1:F,elementX2:Z,elementY1:B,elementY2:G,selectionColors:[Or.black],dashed:!0,cx:F+(Z-F)/2,cy:B+(G-B)/2,activeEmbeddable:!1})};for(let U of In(s))N(U);s.editingGroupId&&N(s.editingGroupId),A.forEach(U=>zM(u,s,U))}if(u.save(),u.translate(s.scrollX,s.scrollY),o.length===1){u.fillStyle=Or.white;let I=G2(o[0],s.zoom,t,"mouse",Jp(d));!s.viewModeEnabled&&E&&!ge(s.editingElement)&&BM(u,c,s,I,o[0].angle)}else if(o.length>1&&!s.isRotating){let I=Fu*2/s.zoom.value;u.fillStyle=Or.white;let[A,N,U,R]=lt(o),F=u.getLineDash();u.setLineDash([2/s.zoom.value]);let B=u.lineWidth;u.lineWidth=1/s.zoom.value,u.strokeStyle=M,Mm(u,A-I,N-I,U-A+I*2,R-N+I*2,(A+U)/2,(N+R)/2,0),u.lineWidth=B,u.setLineDash(F);let Z=U2([A,N,U,R,(A+U)/2,(N+R)/2],0,s.zoom,"mouse",h?{...Jp(d),rotation:!0}:Jp(d));o.some(G=>!G.locked)&&BM(u,c,s,Z,0)}u.restore()}OM(u,s),u.restore(),HA({context:u,renderConfig:c,appState:s,normalizedWidth:p,normalizedHeight:f});let x;return c.renderScrollbars&&(x=z3(r,p,f,s),u.save(),u.fillStyle=B3,u.strokeStyle="rgba(255,255,255,0.8)",[x.horizontal,x.vertical].forEach(E=>{E&&qf(u,E.x,E.y,E.width,E.height,ei/2)}),u.restore()),{scrollBars:x,atLeastOneVisibleElement:r.length>0,elementsMap:t}},YE=Vu(e=>{let t=$M(e);e.callback?.(t)},{trailing:!0}),HM=(e,t)=>{if(t){YE(e);return}let r=$M(e);return e.callback(r),r};var GM=w(P(),1),s$=e=>{let t=(0,Nc.useRef)(!1);return(0,Nc.useEffect)(()=>{if(!t.current){t.current=!0;return}let r=new Map,o=new Map,i=new Map,a=new Map,s=new Map;e.appState.collaborators.forEach((d,p)=>{if(d.selectedElementIds)for(let f of Object.keys(d.selectedElementIds))i.has(f)||i.set(f,[]),i.get(f).push(p);!d.pointer||d.pointer.renderCursor===!1||(d.username&&a.set(p,d.username),d.userState&&s.set(p,d.userState),o.set(p,Qr({sceneX:d.pointer.x,sceneY:d.pointer.y},e.appState)),r.set(p,d.button))});let c=e.containerRef?.current&&getComputedStyle(e.containerRef.current).getPropertyValue("--color-selection")||"#6965db";HM({canvas:e.canvas,elementsMap:e.elementsMap,visibleElements:e.visibleElements,selectedElements:e.selectedElements,allElementsMap:e.allElementsMap,scale:window.devicePixelRatio,appState:e.appState,renderConfig:{remotePointerViewportCoords:o,remotePointerButton:r,remoteSelectedElementIds:i,remotePointerUsernames:a,remotePointerUserStates:s,selectionColor:c,renderScrollbars:!1},device:e.device,callback:e.renderInteractiveSceneCallback},dh())}),(0,GM.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:e.appState.width,height:e.appState.height,cursor:e.appState.viewModeEnabled?ut.GRAB:ut.AUTO},width:e.appState.width*e.scale,height:e.appState.height*e.scale,ref:e.handleCanvasRef,onContextMenu:e.onContextMenu,onPointerMove:e.onPointerMove,onPointerUp:e.onPointerUp,onPointerCancel:e.onPointerCancel,onTouchMove:e.onTouchMove,onPointerDown:e.onPointerDown,onDoubleClick:e.appState.viewModeEnabled?void 0:e.onDoubleClick,children:y("labels.drawingCanvas")})},UM=e=>({zoom:e.zoom,scrollX:e.scrollX,scrollY:e.scrollY,width:e.width,height:e.height,viewModeEnabled:e.viewModeEnabled,editingGroupId:e.editingGroupId,editingLinearElement:e.editingLinearElement,selectedElementIds:e.selectedElementIds,frameToHighlight:e.frameToHighlight,offsetLeft:e.offsetLeft,offsetTop:e.offsetTop,theme:e.theme,pendingImageElementId:e.pendingImageElementId,selectionElement:e.selectionElement,selectedGroupIds:e.selectedGroupIds,selectedLinearElement:e.selectedLinearElement,multiElement:e.multiElement,isBindingEnabled:e.isBindingEnabled,suggestedBindings:e.suggestedBindings,isRotating:e.isRotating,elementsToHighlight:e.elementsToHighlight,collaborators:e.collaborators,activeEmbeddable:e.activeEmbeddable,snapLines:e.snapLines,zenModeEnabled:e.zenModeEnabled,editingElement:e.editingElement}),c$=(e,t)=>e.selectionNonce!==t.selectionNonce||e.sceneNonce!==t.sceneNonce||e.scale!==t.scale||e.elementsMap!==t.elementsMap||e.visibleElements!==t.visibleElements||e.selectedElements!==t.selectedElements?!1:fr(UM(e.appState),UM(t.appState)),VE=Nc.default.memo(s$,c$);v();var Gl=w(J(),1);var KM=w(P(),1),d$=e=>{let t=(0,Gl.useRef)(null),r=(0,Gl.useRef)(!1);return(0,Gl.useEffect)(()=>{let o=t.current;if(!o)return;let i=e.canvas;r.current||(r.current=!0,o.replaceChildren(i),i.classList.add("excalidraw__canvas","static"));let a=`${e.appState.width}px`,s=`${e.appState.height}px`;i.style.width!==a&&(i.style.width=a),i.style.height!==s&&(i.style.height=s);let c=e.appState.width*e.scale,d=e.appState.height*e.scale;i.width!==c&&(i.width=c),i.height!==d&&(i.height=d),T2({canvas:i,rc:e.rc,scale:e.scale,elementsMap:e.elementsMap,allElementsMap:e.allElementsMap,visibleElements:e.visibleElements,appState:e.appState,renderConfig:e.renderConfig},dh())}),(0,KM.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:t})},WM=e=>({zoom:e.zoom,scrollX:e.scrollX,scrollY:e.scrollY,width:e.width,height:e.height,viewModeEnabled:e.viewModeEnabled,offsetLeft:e.offsetLeft,offsetTop:e.offsetTop,theme:e.theme,pendingImageElementId:e.pendingImageElementId,shouldCacheIgnoreZoom:e.shouldCacheIgnoreZoom,viewBackgroundColor:e.viewBackgroundColor,exportScale:e.exportScale,selectedElementsAreBeingDragged:e.selectedElementsAreBeingDragged,gridSize:e.gridSize,frameRendering:e.frameRendering,selectedElementIds:e.selectedElementIds,frameToHighlight:e.frameToHighlight,editingGroupId:e.editingGroupId}),m$=(e,t)=>e.sceneNonce!==t.sceneNonce||e.scale!==t.scale||e.elementsMap!==t.elementsMap||e.visibleElements!==t.visibleElements?!1:fr(WM(e.appState),WM(t.appState))&&fr(e.renderConfig,t.renderConfig),XE=Gl.default.memo(d$,m$);v();var Pm=class{scene;constructor(t){this.scene=t}getRenderableElements=(()=>{let t=({elementsMap:o,zoom:i,offsetLeft:a,offsetTop:s,scrollX:c,scrollY:d,height:p,width:f})=>{let u=[];for(let g of o.values())Nd(g,f,p,{zoom:i,offsetLeft:a,offsetTop:s,scrollX:c,scrollY:d},o)&&u.push(g);return u},r=({elements:o,editingElement:i,pendingImageElementId:a})=>{let s=Qu(new Map);for(let c of o)la(c)&&a===c.id||(!i||i.type!=="text"||c.id!==i.id)&&s.set(c.id,c);return s};return OS(({zoom:o,offsetLeft:i,offsetTop:a,scrollX:s,scrollY:c,height:d,width:p,editingElement:f,pendingImageElementId:u,sceneNonce:g})=>{let h=this.scene.getNonDeletedElements(),x=r({elements:h,editingElement:f,pendingImageElementId:u}),E=t({elementsMap:x,zoom:o,offsetLeft:i,offsetTop:a,scrollX:s,scrollY:c,height:d,width:p});return{elementsMap:x,visibleElements:E}})})();destroy(){YE.cancel(),S2.cancel(),this.getRenderableElements.clear()}};v();var uh=w(J(),1);var ZE=w(P(),1),YM=({trails:e})=>{let t=(0,uh.useRef)(null);return(0,uh.useEffect)(()=>{if(t.current)for(let r of e)r.start(t.current);return()=>{for(let r of e)r.stop()}},e),(0,ZE.jsx)("div",{className:"SVGLayer",children:(0,ZE.jsx)("svg",{ref:t})})};v();var VM=w(P(),1),u$=5,p$=(e,t,r)=>{let[o,i]=fo(e,r),{x:a,y:s}=Qr({sceneX:o+e.width,sceneY:i},t),c=a-t.offsetLeft+10,d=s-t.offsetTop;return{x:c,y:d}},qE=({children:e,element:t,elementsMap:r})=>{let o=Aa();if(o.contextMenu||o.draggingElement||o.resizingElement||o.isRotating||o.openMenu||o.viewModeEnabled)return null;let{x:i,y:a}=p$(t,o,r);return(0,VM.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${a}px`,left:`${i}px`,padding:u$},children:e})};v();var f$=`You are a skilled front-end developer who builds interactive prototypes from wireframes, and is an expert at CSS Grid and Flex design.
52
71
  Your role is to transform low-fidelity wireframes into working front-end HTML code.
53
72
 
54
73
  YOU MUST FOLLOW FOLLOWING RULES:
@@ -68,13 +87,13 @@ If the wireframes, diagrams, or text is unclear or unreadable, refer to provided
68
87
 
69
88
  Your goal is a production-ready prototype that brings the wireframes to life.
70
89
 
71
- Please output JUST THE HTML file containing your best attempt at implementing the provided wireframes.`;async function t6({image:t,apiKey:e,text:o,theme:r=be.LIGHT}){let n={model:"gpt-4-vision-preview",max_tokens:4096,temperature:.1,messages:[{role:"system",content:yI},{role:"user",content:[{type:"image_url",image_url:{url:t,detail:"high"}},{type:"text",text:`Above is the reference wireframe. Please make a new website based on these and return just the HTML file. Also, please make it for the ${r} theme. What follows are the wireframe's text annotations (if any)...`},{type:"text",text:o}]}]},i,a=await fetch("https://api.openai.com/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(n)});return a.ok?i={...await a.json(),ok:!0}:i={...await a.json(),ok:!1},i}h();var Os=v(k(),1),wI="small",wp=t=>(0,Os.jsxs)("label",{className:$("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${wI}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Os.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,Os.jsx)("div",{className:"ToolIcon__icon",children:t.icon})]});h();var Li=v(k(),1),CI=({height:t,width:e,userToFollow:o,onDisconnect:r})=>(0,Li.jsx)("div",{className:"follow-mode",style:{width:e,height:t},children:(0,Li.jsxs)("div",{className:"follow-mode__badge",children:[(0,Li.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,Li.jsx)("span",{className:"follow-mode__badge__username",title:o.username,children:o.username})]}),(0,Li.jsx)("button",{onClick:r,className:"follow-mode__disconnect-btn",children:Ro})]})}),o6=CI;h();var Cp=class{targets=new WeakMap;rafIds=new WeakMap;register(e,o){this.targets.set(e,{callback:o,stopped:!0})}start(e){let o=this.targets.get(e);o&&(this.rafIds.has(e)||(this.targets.set(e,{...o,stopped:!1}),this.scheduleFrame(e)))}stop(e){let o=this.targets.get(e);o&&!o.stopped&&this.targets.set(e,{...o,stopped:!0}),this.cancelFrame(e)}constructFrame(e){return o=>{let r=this.targets.get(e);if(!r)return;let n=this.onFrame(r,o);!r.stopped&&!n?this.scheduleFrame(e):this.cancelFrame(e)}}scheduleFrame(e){let o=requestAnimationFrame(this.constructFrame(e));this.rafIds.set(e,o)}cancelFrame(e){if(this.rafIds.has(e)){let o=this.rafIds.get(e);cancelAnimationFrame(o)}this.rafIds.delete(e)}onFrame(e,o){return e.callback(o)??!1}};h();h();function SI(t,e,o,r){Object.defineProperty(t,e,{get:o,set:r,enumerable:!0,configurable:!0})}var TI={};SI(TI,"LaserPointer",()=>Bs);function pt([t,e,o],[r,n,i]){return[t+r,e+n,o+i]}function Fs([t,e,o],[r,n,i]){return[t-r,e-n,o-i]}function St([t,e,o],r){return[t*r,e*r,o*r]}function rl([t,e,o]){return[t/Math.sqrt(t**2+e**2),e/Math.sqrt(t**2+e**2),o]}function qt([t,e,o],r){return[Math.cos(r)*t-Math.sin(r)*e,Math.sin(r)*t+Math.cos(r)*e,o]}function kI(t,e,o){return pt(t,St(Fs(e,t),o))}function r6(t,e,o){return Math.atan2(o[1]-t[1],o[0]-t[0])-Math.atan2(e[1]-t[1],e[0]-t[0])}function n6(t){return Math.atan2(Math.sin(t),Math.cos(t))}function i6([t,e]){return Math.sqrt(t**2+e**2)}function nl([t,e],[o,r]){return Math.sqrt((o-t)**2+(r-e)**2)}function II(t){if(t.length<2)return 0;let e=0;for(let o=1;o<=t.length-1;o++)e+=nl(t[o-1],t[o]);return e+=nl(t[t.length-2],t[t.length-1]),e}var AI=(t,e,o)=>Math.max(e,Math.min(o,t));function MI(t,e,o){let r=nl(e,o);if(r===0)return nl(t,e);let n=AI(((t[0]-e[0])*(o[0]-e[0])+(t[1]-e[1])*(o[1]-e[1]))/r**2,0,1),i=[e[0]+n*(o[0]-e[0]),e[1]+n*(o[1]-e[1]),t[2]];return nl(i,t)}function Sp(t,e){if(e===0||t.length<=2)return t;let o=t[0],r=t[t.length-1],[n,i]=t.reduce(([a,l],s,d)=>{let c=MI(s,o,r);return c>a?[c,d]:[a,l]},[0,-1]);if(n>=e){let a=t[i];return[...Sp([o,...t.slice(1,i),a],e).slice(0,-1),a,...Sp([a,...t.slice(i,-1),r],e).slice(1)]}else return[o,r]}var Bs=class t{static{this.defaults={size:2,streamline:.45,simplify:.1,simplifyPhase:"output",keepHead:!1,sizeMapping:()=>1}}static{this.constants={cornerDetectionMaxAngle:75,cornerDetectionVariance:e=>e>35?.5:1,maxTailLength:50}}constructor(e){this.originalPoints=[],this.stablePoints=[],this.tailPoints=[],this.isFresh=!0,this.options=Object.assign({},t.defaults,e)}get lastPoint(){return this.tailPoints[this.tailPoints.length-1]??this.stablePoints[this.stablePoints.length-1]}addPoint(e){let o=this.originalPoints[this.originalPoints.length-1];if(!(o&&o[0]===e[0]&&o[1]===e[1])){if(this.originalPoints.push(e),this.isFresh){this.isFresh=!1,this.stablePoints.push(e);return}this.options.streamline>0&&(e=kI(this.lastPoint,e,1-this.options.streamline)),this.tailPoints.push(e),II(this.tailPoints)>t.constants.maxTailLength&&this.stabilizeTail()}}close(){this.stabilizeTail()}stabilizeTail(){if(this.options.simplify>0&&this.options.simplifyPhase=="tail")throw new Error("Not implemented yet");this.stablePoints.push(...this.tailPoints),this.tailPoints=[]}getSize(e,o,r,n,i){return(e??this.options.size)*this.options.sizeMapping({pressure:o,runningLength:i,currentIndex:r,totalLength:n})}getStrokeOutline(e){if(this.isFresh)return[];let o=[...this.stablePoints,...this.tailPoints];this.options.simplify>0&&this.options.simplifyPhase==="input"&&(o=Sp(o,this.options.simplify));let r=o.length;if(r===0)return[];if(r===1){let M=o[0],_=this.getSize(e,M[2],0,r,0);if(_<.5)return[];let U=[];for(let D=0;D<=Math.PI*2;D+=Math.PI/16)U.push(pt(M,St(qt([1,0,0],D),_)));return U.push(pt(M,St([1,0,0],this.getSize(e,M[2],0,r,0)))),U}if(r===2){let M=o[0],_=o[1],U=this.getSize(e,M[2],0,r,0),D=this.getSize(e,_[2],0,r,0);if(U<.5||D<.5)return[];let G=[],O=r6(M,[M[0],M[1]-100,M[2]],_);for(let B=O;B<=Math.PI+O;B+=Math.PI/16)G.push(pt(M,St(qt([1,0,0],B),U)));for(let B=Math.PI+O;B<=Math.PI*2+O;B+=Math.PI/16)G.push(pt(_,St(qt([1,0,0],B),D)));return G.push(G[0]),G}let n=[],i=[],a=0,l=0,s=0,d=0;for(let M=1;M<r-1;M++){let _=o[M-1],U=o[M],D=o[M+1],G=U[2],O=nl(_,U);d+=O,a=l+(O-l)*.2;let B=this.getSize(e,G,M,r,d);if(B===0){s=M+1;continue}let te=rl(Fs(_,U)),oe=rl(Fs(D,U)),ve=qt(te,Math.PI/2),Ie=qt(te,-Math.PI/2),me=qt(oe,Math.PI/2),j=qt(oe,-Math.PI/2),R=pt(U,St(ve,B)),N=pt(U,St(Ie,B)),K=pt(U,St(me,B)),Y=pt(U,St(j,B)),Z=pt(ve,j),X=pt(Ie,me),ee=pt(U,St(i6(Z)===0?te:rl(Z),B)),ne=pt(U,St(i6(X)===0?oe:rl(X),B)),rt=n6(r6(U,_,D)),nt=t.constants.cornerDetectionMaxAngle/180*Math.PI*t.constants.cornerDetectionVariance(a);if(Math.abs(rt)<nt){let st=Math.abs(n6(Math.PI-rt));if(st===0)continue;if(rt<0){i.push(N,ne);for(let Ue=0;Ue<=st;Ue+=st/4)n.push(pt(U,qt(St(ve,B),Ue)));for(let Ue=st;Ue>=0;Ue-=st/4)i.push(pt(U,qt(St(ve,B),Ue)));i.push(ne,K)}else{n.push(R,ee);for(let Ue=0;Ue<=st;Ue+=st/4)i.push(pt(U,qt(St(ve,-B),-Ue)));for(let Ue=st;Ue>=0;Ue-=st/4)n.push(pt(U,qt(St(ve,-B),-Ue)));n.push(ee,Y)}}else n.push(ee),i.push(ne);l=a}if(s>=r-2)if(this.options.keepHead){let M=o[r-1],_=[];for(let U=0;U<=Math.PI*2;U+=Math.PI/16)_.push(pt(M,St(qt([1,0,0],U),this.options.size)));return _.push(pt(M,St([1,0,0],this.options.size))),_}else return[];let c=o[s],m=o[s+1],u=o[r-2],f=o[r-1],b=rl(Fs(m,c)),x=rl(Fs(u,f)),E=qt(b,-Math.PI/2),T=qt(x,Math.PI/2),C=this.getSize(e,c[2],0,r,0),w=[],A=this.options.keepHead?this.options.size:this.getSize(e,u[2],r-2,r,d),z=[];if(C>1){for(let M=0;M<=Math.PI;M+=Math.PI/16)w.unshift(pt(c,qt(St(E,C),-M)));w.unshift(pt(c,St(E,-C)))}else w.push(c);for(let M=0;M<=Math.PI*3;M+=Math.PI/16)z.push(pt(f,qt(St(T,-A),-M)));let I=[...w,...n,...z.reverse(),...i.reverse()];return w.length>0&&I.push(w[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?Sp(I,this.options.simplify):I}};var Pi=class{constructor(e,o,r){this.animationFrameHandler=e;this.app=o;this.options=r;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.trailElement=document.createElementNS(R1,"path")}currentTrail;pastTrails=[];container;trailElement;get hasCurrentTrail(){return!!this.currentTrail}hasLastPoint(e,o){if(this.currentTrail){let r=this.currentTrail.originalPoints.length;return this.currentTrail.originalPoints[r-1][0]===e&&this.currentTrail.originalPoints[r-1][1]===o}return!1}start(e){e&&(this.container=e),this.trailElement.parentNode!==this.container&&this.container&&this.container.appendChild(this.trailElement),this.animationFrameHandler.start(this)}stop(){this.animationFrameHandler.stop(this),this.trailElement.parentNode===this.container&&this.container?.removeChild(this.trailElement)}startPath(e,o){this.currentTrail=new Bs(this.options),this.currentTrail.addPoint([e,o,performance.now()]),this.update()}addPointToPath(e,o){this.currentTrail&&(this.currentTrail.addPoint([e,o,performance.now()]),this.update())}endPath(){this.currentTrail&&(this.currentTrail.close(),this.currentTrail.options.keepHead=!1,this.pastTrails.push(this.currentTrail),this.currentTrail=void 0,this.update())}update(){this.start()}onFrame(){let e=[];for(let r of this.pastTrails)e.push(this.drawTrail(r,this.app.state));if(this.currentTrail){let r=this.drawTrail(this.currentTrail,this.app.state);e.push(r)}this.pastTrails=this.pastTrails.filter(r=>r.getStrokeOutline().length!==0),e.length===0&&this.stop();let o=e.join(" ").trim();this.trailElement.setAttribute("d",o),this.trailElement.setAttribute("fill",(this.options.fill??(()=>"black"))(this))}drawTrail(e,o){let r=e.getStrokeOutline(e.options.size/o.zoom.value).map(([n,i])=>{let a=Qt({sceneX:n,sceneY:i},o);return[a.x,a.y]});return j1(r,!0)}};h();var Tp=class{constructor(e,o){this.animationFrameHandler=e;this.app=o;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new Pi(e,o,{...this.getTrailOptions(),fill:()=>Fp})}localTrail;collabTrails=new Map;container;getTrailOptions(){return{simplify:0,streamline:.4,sizeMapping:e=>{let n=Math.max(0,1-(performance.now()-e.pressure)/1e3),i=(50-Math.min(50,e.totalLength-e.currentIndex))/50;return Math.min(Yn(i),Yn(n))}}}startPath(e,o){this.localTrail.startPath(e,o)}addPointToPath(e,o){this.localTrail.addPointToPath(e,o)}endPath(){this.localTrail.endPath()}start(e){this.container=e,this.animationFrameHandler.start(this),this.localTrail.start(e)}stop(){this.animationFrameHandler.stop(this),this.localTrail.stop()}onFrame(){this.updateCollabTrails()}updateCollabTrails(){if(!(!this.container||this.app.state.collaborators.size===0)){for(let[e,o]of this.app.state.collaborators.entries()){let r;this.collabTrails.has(e)?r=this.collabTrails.get(e):(r=new Pi(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>o.pointer?.laserColor||xi(e,o)}),r.start(this.container),this.collabTrails.set(e,r)),o.pointer&&o.pointer.tool==="laser"&&(o.button==="down"&&!r.hasCurrentTrail&&r.startPath(o.pointer.x,o.pointer.y),o.button==="down"&&r.hasCurrentTrail&&!r.hasLastPoint(o.pointer.x,o.pointer.y)&&r.addPointToPath(o.pointer.x,o.pointer.y),o.button==="up"&&r.hasCurrentTrail&&(r.addPointToPath(o.pointer.x,o.pointer.y),r.endPath()))}for(let e of this.collabTrails.keys())this.app.state.collaborators.has(e)||(this.collabTrails.get(e).stop(),this.collabTrails.delete(e))}}};h();var _I=(t,e,o,r,n,i)=>{let{zoom:a}=r,l=180*o/Math.PI,s=t*(a.value-1)/2,d=e*(a.value-1)/2;return t>n&&a.value!==1&&(s=n*(a.value-1)/2),e>i&&a.value!==1&&(d=i*(a.value-1)/2),`translate(${s}px, ${d}px) scale(${a.value}) rotate(${l}deg)`},a6=({id:t,onChange:e,onSubmit:o,getViewportCoords:r,element:n,canvas:i,excalidrawContainer:a,app:l})=>{let s=(O,B)=>{if(!B.style.fontFamily||!B.style.fontSize)return!1;let te=B.style.fontFamily.replace(/"/g,"");return Kp({fontFamily:O.fontFamily})!==te||`${O.fontSize}px`!==B.style.fontSize},d=()=>{let O=l.state,B=ko.getScene(n)?.getElement(t);if(!B)return;let{textAlign:te,verticalAlign:oe}=B,ve=l.scene.getNonDeletedElementsMap();if(B&&se(B)){let Ie=B.x,me=B.y,j=Nr(B,l.scene.getNonDeletedElementsMap()),R=B.width,N=B.height,K=B.width,Y=B.height;if(j&&B.containerId){if(ur(j)){let Jt=ue.getBoundTextElementPosition(j,B,ve);Ie=Jt.x,me=Jt.y}let st=s(B,c),Ue;if(st?Ue=Il(j.id,j.height):(Ue=mb[j.id],Ue||(Ue=Il(j.id,j.height))),R=nu(j,B),N=Sb(j,B),!ur(j)&&Y>N){let Jt=Vi(Y,j.type);re(j,{height:Jt});return}else if(!ur(j)&&j.height>Ue.height&&Y<N){let Jt=Vi(Y,j.type);re(j,{height:Jt})}else{let{y:Jt}=yc(j,B,ve);me=Jt}}let[Z,X]=r(Ie,me),ee=c.selectionStart,ne=c.selectionEnd,rt=c.value.length;if(ee===ne&&ne!==rt){let st=rt-ne;c.selectionStart=c.value.length-st,c.selectionEnd=c.value.length-st}j||(R=(O.width-8-Z)/O.zoom.value,K=Math.min(K,R));let nt=(O.height-X)/O.zoom.value;Object.assign(c.style,{font:Xo(B),lineHeight:B.lineHeight,width:`${K}px`,height:`${Y}px`,left:`${Z}px`,top:`${X}px`,transform:_I(K,Y,Eb(B,j),O,R,nt),textAlign:te,verticalAlign:oe,color:B.strokeColor,opacity:B.opacity/100,filter:"var(--theme-filter)",maxHeight:`${nt}px`}),c.scrollTop=0,dc()&&(c.style.fontFamily=Kp(B)),re(B,{x:Ie,y:me})}},c=document.createElement("textarea");c.dir="auto",c.tabIndex=0,c.dataset.type="wysiwyg",c.wrap="off",c.classList.add("excalidraw-wysiwyg");let m="pre",u="normal";xt(n)&&(m="pre-wrap",u="break-word"),Object.assign(c.style,{position:"absolute",display:"inline-block",minHeight:"1em",backfaceVisibility:"hidden",margin:0,padding:0,border:0,outline:0,resize:"none",background:"transparent",overflow:"hidden",zIndex:"var(--zIndex-wysiwyg)",wordBreak:u,whiteSpace:m,overflowWrap:"break-word",boxSizing:"content-box"}),c.value=n.originalText,d(),e&&(c.onpaste=async O=>{let B=await $c(O,!0);if(!B.text)return;let te=Al(B.text);if(!te)return;let oe=Nr(n,l.scene.getNonDeletedElementsMap()),ve=Xo({fontSize:l.state.currentItemFontSize,fontFamily:l.state.currentItemFontFamily});if(oe){let Ie=ct(oe,l.scene.getNonDeletedElementsMap()),me=bb(`${c.value}${te}`,ve,nu(oe,Ie)),j=gb(me,ve);c.style.width=`${j}px`}},c.oninput=()=>{e(Al(c.value))}),c.onkeydown=O=>{if(!O.shiftKey&&Qd.keyTest(O))O.preventDefault(),l.actionManager.executeAction(Qd),d();else if(!O.shiftKey&&em.keyTest(O))O.preventDefault(),l.actionManager.executeAction(em),d();else if(Jf.keyTest(O))l.actionManager.executeAction(Jf);else if(Qf.keyTest(O))l.actionManager.executeAction(Qf);else if(O.key===S.ESCAPE)O.preventDefault(),A=!0,z();else if(O.key===S.ENTER&&O[S.CTRL_OR_CMD]){if(O.preventDefault(),O.isComposing||O.keyCode===229)return;A=!0,z()}else if(O.key===S.TAB||O[S.CTRL_OR_CMD]&&(O.code===fe.BRACKET_LEFT||O.code===fe.BRACKET_RIGHT)){if(O.preventDefault(),O.isComposing)return;O.shiftKey||O.code===fe.BRACKET_LEFT?T():E(),c.dispatchEvent(new Event("input"))}};let f=4,b=" ".repeat(f),x=new RegExp(`^ {1,${f}}`),E=()=>{let{selectionStart:O,selectionEnd:B}=c,te=C(),oe=c.value;te.forEach(ve=>{let Ie=oe.slice(0,ve),me=oe.slice(ve);oe=`${Ie}${b}${me}`}),c.value=oe,c.selectionStart=O+f,c.selectionEnd=B+f*te.length},T=()=>{let{selectionStart:O,selectionEnd:B}=c,te=C(),oe=[],ve=c.value;te.forEach(Ie=>{let me=ve.slice(Ie,Ie+f).match(x);if(me){let j=ve.slice(0,Ie),R=ve.slice(Ie+me[0].length);ve=`${j}${R}`,oe.push(Ie)}}),c.value=ve,oe.length&&(O>oe[oe.length-1]?c.selectionStart=Math.max(O-f,oe[oe.length-1]):c.selectionStart=O,c.selectionEnd=Math.max(c.selectionStart,B-f*oe.length))},C=()=>{let{selectionStart:O,selectionEnd:B,value:te}=c,oe=te.slice(0,O).match(/[^\n]*$/)[0].length;return O=O-oe,te.slice(O,B).split(`
72
- `).reduce((Ie,me,j,R)=>Ie.concat(j?Ie[j-1]+R[j-1].length+1:O),[]).reverse()},w=O=>{O.preventDefault(),O.stopPropagation()},A=!1,z=()=>{I();let O=ko.getScene(n)?.getElement(n.id);if(!O)return;let B=c.value,te=Nr(O,l.scene.getNonDeletedElementsMap());if(te){if(B=O.text,c.value.trim()){let oe=vb(te);!oe||oe!==n.id?re(te,{boundElements:(te.boundElements||[]).concat({type:"text",id:n.id})}):ur(te)&&yu(te)}else re(te,{boundElements:te.boundElements?.filter(oe=>!se(oe))});Ut(O,te,l.scene.getNonDeletedElementsMap())}o({text:B,viaKeyboard:A,originalText:c.value})},I=()=>{D||(D=!0,c.onblur=null,c.oninput=null,c.onkeydown=null,G&&G.disconnect(),window.removeEventListener("resize",d),window.removeEventListener("wheel",w,!0),window.removeEventListener("pointerdown",_),window.removeEventListener("pointerup",M),window.removeEventListener("blur",z),window.removeEventListener("beforeunload",z),U(),c.remove())},M=O=>{window.removeEventListener("pointerup",M);let B=O?.target,te=B instanceof HTMLElement&&B.classList.contains("active-color");setTimeout(()=>{if(c.onblur=z,te){let oe=(Ie,me)=>{Ie.find(R=>R.removedNodes.length>0&&R.removedNodes[0].dataset?.radixPopperContentWrapper!==void 0)&&(setTimeout(()=>{c.focus()}),me.disconnect())};new MutationObserver(oe).observe(document.querySelector(".excalidraw-container"),{childList:!0})}te||c.focus()})},_=O=>{let B=O.target instanceof HTMLElement&&O.target.classList.contains("active-color");((O.target instanceof HTMLElement||O.target instanceof SVGElement)&&O.target.closest(`.${qs.SHAPE_ACTIONS_MENU}`)&&!To(O.target)||B)&&(c.onblur=null,window.addEventListener("pointerup",M),window.addEventListener("blur",z))},U=ko.getScene(n).addCallback(()=>{d(),!!document.activeElement?.closest(".color-picker-content")||c.focus()}),D=!1;c.select(),M();let G=null;i&&"ResizeObserver"in window?(G=new window.ResizeObserver(()=>{d()}),G.observe(i)):window.addEventListener("resize",d),window.addEventListener("pointerdown",_),window.addEventListener("wheel",w,{passive:!1,capture:!0}),window.addEventListener("beforeunload",z),a?.querySelector(".excalidraw-textEditorContainer").appendChild(c)};var ke=v(k(),1),d6=Tt.default.createContext(null),m6=Tt.default.createContext(null),p6={viewport:{isMobile:!1,isLandscape:!1},editor:{isMobile:!1,canFitSidebar:!1},isTouchScreen:!1},Hg=Tt.default.createContext(p6);Hg.displayName="DeviceContext";var Ug=Tt.default.createContext({container:null,id:null});Ug.displayName="ExcalidrawContainerContext";var Wg=Tt.default.createContext([]);Wg.displayName="ExcalidrawElementsContext";var Gg=Tt.default.createContext({...Ki(),width:0,height:0,offsetLeft:0,offsetTop:0});Gg.displayName="ExcalidrawAppStateContext";var Vg=Tt.default.createContext(()=>{console.warn("Uninitialized ExcalidrawSetAppStateContext context!")});Vg.displayName="ExcalidrawSetAppStateContext";var Kg=Tt.default.createContext(null);Kg.displayName="ExcalidrawActionManagerContext";var mo=()=>(0,Tt.useContext)(d6),_n=()=>(0,Tt.useContext)(m6),Me=()=>(0,Tt.useContext)(Hg),_t=()=>(0,Tt.useContext)(Ug),kn=()=>(0,Tt.useContext)(Wg),Ba=()=>(0,Tt.useContext)(Gg),Le=()=>(0,Tt.useContext)(Vg),It=()=>(0,Tt.useContext)(Kg),zs=!1,Og=0,Ri=!1,$s=!1,Fg=!1,Bg={horizontal:null,vertical:null},Un=0,Hs=!1,zg=new Map,kp=!1,l6=0,s6=!1,Us=null,Pe={pointers:new Map,lastCenter:null,initialDistance:null,initialScale:null},$g=class t extends Tt.default.Component{canvas;interactiveCanvas=null;rc;unmounted=!1;actionManager;device=p6;excalidrawContainerRef=Tt.default.createRef();scene;renderer;fonts;resizeObserver;nearestScrollableContainer;library;libraryItemsFromStorage;id;store;history;excalidrawContainerValue;files={};imageCache=new Map;iFrameRefs=new Map;embedsValidationStatus=new Map;initializedEmbeds=new Set;elementsPendingErasure=new Set;hitLinkElement;lastPointerDownEvent=null;lastPointerUpEvent=null;lastPointerMoveEvent=null;lastViewportPosition={x:0,y:0};animationFrameHandler=new Cp;laserTrails=new Tp(this.animationFrameHandler,this);eraserTrail=new Pi(this.animationFrameHandler,this,{streamline:.2,size:5,keepHead:!0,sizeMapping:e=>{let n=Math.max(0,1-(performance.now()-e.pressure)/200),i=(10-Math.min(10,e.totalLength-e.currentIndex))/10;return Math.min(Yn(i),Yn(n))},fill:()=>this.state.theme===be.LIGHT?"rgba(0, 0, 0, 0.2)":"rgba(255, 255, 255, 0.2)"});onChangeEmitter=new _o;onPointerDownEmitter=new _o;onPointerUpEmitter=new _o;onUserFollowEmitter=new _o;onScrollChangeEmitter=new _o;missingPointerEventCleanupEmitter=new _o;onRemoveEventListenersEmitter=new _o;constructor(e){super(e);let o=Ki(),{excalidrawAPI:r,viewModeEnabled:n=!1,zenModeEnabled:i=!1,gridModeEnabled:a=!1,objectsSnapModeEnabled:l=!1,theme:s=o.theme,name:d=`${g("labels.untitled")}-${Vp()}`}=e;if(this.state={...o,theme:s,isLoading:!0,...this.getCanvasOffsets(),viewModeEnabled:n,zenModeEnabled:i,objectsSnapModeEnabled:l,gridSize:a?Lr:null,name:d,width:window.innerWidth,height:window.innerHeight},this.id=O1(),this.library=new Gy(this),this.actionManager=new $m(this.syncActionResult,()=>this.state,()=>this.scene.getElementsIncludingDeleted(),this),this.scene=new ko,this.canvas=document.createElement("canvas"),this.rc=N1.canvas(this.canvas),this.renderer=new Ns(this.scene),this.store=new $b,this.history=new vs,r){let c={updateScene:this.updateScene,updateLibrary:this.library.updateLibrary,addFiles:this.addFiles,resetScene:this.resetScene,getSceneElementsIncludingDeleted:this.getSceneElementsIncludingDeleted,history:{clear:this.resetHistory},scrollToContent:this.scrollToContent,getSceneElements:this.getSceneElements,getAppState:()=>this.state,getFiles:()=>this.files,getName:this.getName,registerAction:m=>{this.actionManager.registerAction(m)},refresh:this.refresh,setToast:this.setToast,id:this.id,setActiveTool:this.setActiveTool,setCursor:this.setCursor,resetCursor:this.resetCursor,updateFrameRendering:this.updateFrameRendering,toggleSidebar:this.toggleSidebar,onChange:m=>this.onChangeEmitter.on(m),onPointerDown:m=>this.onPointerDownEmitter.on(m),onPointerUp:m=>this.onPointerUpEmitter.on(m),onScrollChange:m=>this.onScrollChangeEmitter.on(m),onUserFollow:m=>this.onUserFollowEmitter.on(m)};typeof r=="function"?r(c):console.error("excalidrawAPI should be a function!")}this.excalidrawContainerValue={container:this.excalidrawContainerRef.current,id:this.id},this.fonts=new hp({scene:this.scene,onSceneUpdated:this.onSceneUpdated}),this.history=new vs,this.actionManager.registerAll(Db),this.actionManager.registerAction(n3(this.history,this.store)),this.actionManager.registerAction(i3(this.history,this.store))}onWindowMessage(e){if(e.origin!=="https://player.vimeo.com"&&e.origin!=="https://www.youtube.com")return;let o=null;try{o=JSON.parse(e.data)}catch{}if(o)switch(e.origin){case"https://player.vimeo.com":if(o.method==="paused"){let r=null,n=document.body.querySelectorAll("iframe.excalidraw__embeddable");if(!n)break;for(let i of n)i.contentWindow===e.source&&(r=i.contentWindow);r?.postMessage(JSON.stringify({method:o.value?"play":"pause",value:!0}),"*")}break;case"https://www.youtube.com":if(o.event==="infoDelivery"&&o.info&&o.id&&typeof o.info.playerState=="number"){let r=o.id,n=o.info.playerState;Object.values(sl).includes(n)&&zg.set(r,n)}break}}cacheEmbeddableRef(e,o){o&&this.iFrameRefs.set(e.id,o)}getHTMLIFrameElement(e){return this.iFrameRefs.get(e.id)}handleEmbeddableCenterClick(e){if(this.state.activeEmbeddable?.element===e&&this.state.activeEmbeddable?.state==="active"||(setTimeout(()=>{this.setState({activeEmbeddable:{element:e,state:"active"},selectedElementIds:{[e.id]:!0},draggingElement:null,selectionElement:null})},100),Xn(e)))return;let o=this.getHTMLIFrameElement(e);if(o?.contentWindow){if(o.src.includes("youtube")){let r=zg.get(e.id);switch(r||(zg.set(e.id,sl.UNSTARTED),o.contentWindow.postMessage(JSON.stringify({event:"listening",id:e.id}),"*")),r){case sl.PLAYING:case sl.BUFFERING:o.contentWindow?.postMessage(JSON.stringify({event:"command",func:"pauseVideo",args:""}),"*");break;default:o.contentWindow?.postMessage(JSON.stringify({event:"command",func:"playVideo",args:""}),"*")}}o.src.includes("player.vimeo.com")&&o.contentWindow.postMessage(JSON.stringify({method:"paused"}),"*")}}isIframeLikeElementCenter(e,o,r,n){return e&&!o.altKey&&!o.shiftKey&&!o.metaKey&&!o.ctrlKey&&(this.state.activeEmbeddable?.element!==e||this.state.activeEmbeddable?.state==="hover"||!this.state.activeEmbeddable)&&r>=e.x+e.width/3&&r<=e.x+2*e.width/3&&n>=e.y+e.height/3&&n<=e.y+2*e.height/3}updateEmbedValidationStatus=(e,o)=>{this.embedsValidationStatus.set(e.id,o),Lo.delete(e)};updateEmbeddables=()=>{let e=new Set,o=!1;this.scene.getNonDeletedElements().filter(r=>{if(Ht(r)){if(e.add(r.id),!this.embedsValidationStatus.has(r.id)){o=!0;let n=Zi(r.link,this.props.validateEmbeddable);this.updateEmbedValidationStatus(r,n)}}else Xn(r)&&e.add(r.id);return!1}),o&&this.scene.informMutation(),this.iFrameRefs.forEach((r,n)=>{e.has(n)||this.iFrameRefs.delete(n)})};renderEmbeddables(){let e=this.state.zoom.value,o=this.state.width,r=this.state.height,n=this.scene.getNonDeletedElements().filter(i=>Ht(i)&&this.embedsValidationStatus.get(i.id)===!0||Xn(i));return(0,ke.jsx)(ke.Fragment,{children:n.map(i=>{let{x:a,y:l}=Qt({sceneX:i.x,sceneY:i.y},this.state),s=Nl(i,o,r,this.state,this.scene.getNonDeletedElementsMap()),d=this.initializedEmbeds.has(i.id);if(s&&!d&&this.initializedEmbeds.add(i.id),!(s||d))return null;let m;if(Xn(i)){m=null;let b=(i.customData?.generationData??this.magicGenerations.get(i.id))||{status:"error",message:"No generation data",code:"ERR_NO_GENERATION_DATA"};if(b.status==="done"){let x=b.html;m={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>x}}else if(b.status==="pending")m={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>au(`
90
+ Please output JUST THE HTML file containing your best attempt at implementing the provided wireframes.`;async function XM({image:e,apiKey:t,text:r,theme:o=$e.LIGHT}){let i={model:"gpt-4-vision-preview",max_tokens:4096,temperature:.1,messages:[{role:"system",content:f$},{role:"user",content:[{type:"image_url",image_url:{url:e,detail:"high"}},{type:"text",text:`Above is the reference wireframe. Please make a new website based on these and return just the HTML file. Also, please make it for the ${o} theme. What follows are the wireframe's text annotations (if any)...`},{type:"text",text:r}]}]},a,s=await fetch("https://api.openai.com/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:JSON.stringify(i)});return s.ok?a={...await s.json(),ok:!0}:a={...await s.json(),ok:!1},a}v();var Lm=w(P(),1),g$="small",ph=e=>(0,Lm.jsxs)("label",{className:j("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${g$}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,Lm.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title}),(0,Lm.jsx)("div",{className:"ToolIcon__icon",children:e.icon})]});v();var Wl=w(P(),1),h$=({height:e,width:t,userToFollow:r,onDisconnect:o})=>(0,Wl.jsx)("div",{className:"follow-mode",style:{width:t,height:e},children:(0,Wl.jsxs)("div",{className:"follow-mode__badge",children:[(0,Wl.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,Wl.jsx)("span",{className:"follow-mode__badge__username",title:r.username,children:r.username})]}),(0,Wl.jsx)("button",{type:"button",onClick:o,className:"follow-mode__disconnect-btn",children:Vo})]})}),ZM=h$;v();var fh=class{targets=new WeakMap;rafIds=new WeakMap;register(t,r){this.targets.set(t,{callback:r,stopped:!0})}start(t){let r=this.targets.get(t);r&&(this.rafIds.has(t)||(this.targets.set(t,{...r,stopped:!1}),this.scheduleFrame(t)))}stop(t){let r=this.targets.get(t);r&&!r.stopped&&this.targets.set(t,{...r,stopped:!0}),this.cancelFrame(t)}constructFrame(t){return r=>{let o=this.targets.get(t);if(!o)return;let i=this.onFrame(o,r);!o.stopped&&!i?this.scheduleFrame(t):this.cancelFrame(t)}}scheduleFrame(t){let r=requestAnimationFrame(this.constructFrame(t));this.rafIds.set(t,r)}cancelFrame(t){if(this.rafIds.has(t)){let r=this.rafIds.get(t);cancelAnimationFrame(r)}this.rafIds.delete(t)}onFrame(t,r){return t.callback(r)??!1}};v();v();function b$(e,t,r,o){Object.defineProperty(e,t,{get:r,set:o,enumerable:!0,configurable:!0})}var x$={};b$(x$,"LaserPointer",()=>Dm);function jt([e,t,r],[o,i,a]){return[e+o,t+i,r+a]}function Rm([e,t,r],[o,i,a]){return[e-o,t-i,r-a]}function cr([e,t,r],o){return[e*o,t*o,r*o]}function Oc([e,t,r]){return[e/Math.sqrt(e**2+t**2),t/Math.sqrt(e**2+t**2),r]}function Zr([e,t,r],o){return[Math.cos(o)*e-Math.sin(o)*t,Math.sin(o)*e+Math.cos(o)*t,r]}function v$(e,t,r){return jt(e,cr(Rm(t,e),r))}function qM(e,t,r){return Math.atan2(r[1]-e[1],r[0]-e[0])-Math.atan2(t[1]-e[1],t[0]-e[0])}function jM(e){return Math.atan2(Math.sin(e),Math.cos(e))}function JM([e,t]){return Math.sqrt(e**2+t**2)}function Fc([e,t],[r,o]){return Math.sqrt((r-e)**2+(o-t)**2)}function y$(e){if(e.length<2)return 0;let t=0;for(let r=1;r<=e.length-1;r++)t+=Fc(e[r-1],e[r]);return t+=Fc(e[e.length-2],e[e.length-1]),t}var E$=(e,t,r)=>Math.max(t,Math.min(r,e));function w$(e,t,r){let o=Fc(t,r);if(o===0)return Fc(e,t);let i=E$(((e[0]-t[0])*(r[0]-t[0])+(e[1]-t[1])*(r[1]-t[1]))/o**2,0,1),a=[t[0]+i*(r[0]-t[0]),t[1]+i*(r[1]-t[1]),e[2]];return Fc(a,e)}function gh(e,t){if(t===0||e.length<=2)return e;let r=e[0],o=e[e.length-1],[i,a]=e.reduce(([s,c],d,p)=>{let f=w$(d,r,o);return f>s?[f,p]:[s,c]},[0,-1]);if(i>=t){let s=e[a];return[...gh([r,...e.slice(1,a),s],t).slice(0,-1),s,...gh([s,...e.slice(a,-1),o],t).slice(1)]}else return[r,o]}var Dm=class e{static{this.defaults={size:2,streamline:.45,simplify:.1,simplifyPhase:"output",keepHead:!1,sizeMapping:()=>1}}static{this.constants={cornerDetectionMaxAngle:75,cornerDetectionVariance:t=>t>35?.5:1,maxTailLength:50}}constructor(t){this.originalPoints=[],this.stablePoints=[],this.tailPoints=[],this.isFresh=!0,this.options=Object.assign({},e.defaults,t)}get lastPoint(){return this.tailPoints[this.tailPoints.length-1]??this.stablePoints[this.stablePoints.length-1]}addPoint(t){let r=this.originalPoints[this.originalPoints.length-1];if(!(r&&r[0]===t[0]&&r[1]===t[1])){if(this.originalPoints.push(t),this.isFresh){this.isFresh=!1,this.stablePoints.push(t);return}this.options.streamline>0&&(t=v$(this.lastPoint,t,1-this.options.streamline)),this.tailPoints.push(t),y$(this.tailPoints)>e.constants.maxTailLength&&this.stabilizeTail()}}close(){this.stabilizeTail()}stabilizeTail(){if(this.options.simplify>0&&this.options.simplifyPhase=="tail")throw new Error("Not implemented yet");this.stablePoints.push(...this.tailPoints),this.tailPoints=[]}getSize(t,r,o,i,a){return(t??this.options.size)*this.options.sizeMapping({pressure:r,runningLength:a,currentIndex:o,totalLength:i})}getStrokeOutline(t){if(this.isFresh)return[];let r=[...this.stablePoints,...this.tailPoints];this.options.simplify>0&&this.options.simplifyPhase==="input"&&(r=gh(r,this.options.simplify));let o=r.length;if(o===0)return[];if(o===1){let F=r[0],B=this.getSize(t,F[2],0,o,0);if(B<.5)return[];let Z=[];for(let G=0;G<=Math.PI*2;G+=Math.PI/16)Z.push(jt(F,cr(Zr([1,0,0],G),B)));return Z.push(jt(F,cr([1,0,0],this.getSize(t,F[2],0,o,0)))),Z}if(o===2){let F=r[0],B=r[1],Z=this.getSize(t,F[2],0,o,0),G=this.getSize(t,B[2],0,o,0);if(Z<.5||G<.5)return[];let te=[],de=qM(F,[F[0],F[1]-100,F[2]],B);for(let W=de;W<=Math.PI+de;W+=Math.PI/16)te.push(jt(F,cr(Zr([1,0,0],W),Z)));for(let W=Math.PI+de;W<=Math.PI*2+de;W+=Math.PI/16)te.push(jt(B,cr(Zr([1,0,0],W),G)));return te.push(te[0]),te}let i=[],a=[],s=0,c=0,d=0,p=0;for(let F=1;F<o-1;F++){let B=r[F-1],Z=r[F],G=r[F+1],te=Z[2],de=Fc(B,Z);p+=de,s=c+(de-c)*.2;let W=this.getSize(t,te,F,o,p);if(W===0){d=F+1;continue}let se=Oc(Rm(B,Z)),xe=Oc(Rm(G,Z)),Se=Zr(se,Math.PI/2),Je=Zr(se,-Math.PI/2),Ee=Zr(xe,Math.PI/2),ue=Zr(xe,-Math.PI/2),H=jt(Z,cr(Se,W)),Y=jt(Z,cr(Je,W)),le=jt(Z,cr(Ee,W)),oe=jt(Z,cr(ue,W)),ne=jt(Se,ue),ce=jt(Je,Ee),pe=jt(Z,cr(JM(ne)===0?se:Oc(ne),W)),ye=jt(Z,cr(JM(ce)===0?xe:Oc(ce),W)),Tt=jM(qM(Z,B,G)),vt=e.constants.cornerDetectionMaxAngle/180*Math.PI*e.constants.cornerDetectionVariance(s);if(Math.abs(Tt)<vt){let At=Math.abs(jM(Math.PI-Tt));if(At===0)continue;if(Tt<0){a.push(Y,ye);for(let ht=0;ht<=At;ht+=At/4)i.push(jt(Z,Zr(cr(Se,W),ht)));for(let ht=At;ht>=0;ht-=At/4)a.push(jt(Z,Zr(cr(Se,W),ht)));a.push(ye,le)}else{i.push(H,pe);for(let ht=0;ht<=At;ht+=At/4)a.push(jt(Z,Zr(cr(Se,-W),-ht)));for(let ht=At;ht>=0;ht-=At/4)i.push(jt(Z,Zr(cr(Se,-W),-ht)));i.push(pe,oe)}}else i.push(pe),a.push(ye);c=s}if(d>=o-2)if(this.options.keepHead){let F=r[o-1],B=[];for(let Z=0;Z<=Math.PI*2;Z+=Math.PI/16)B.push(jt(F,cr(Zr([1,0,0],Z),this.options.size)));return B.push(jt(F,cr([1,0,0],this.options.size))),B}else return[];let f=r[d],u=r[d+1],g=r[o-2],h=r[o-1],x=Oc(Rm(u,f)),E=Oc(Rm(g,h)),T=Zr(x,-Math.PI/2),M=Zr(E,Math.PI/2),I=this.getSize(t,f[2],0,o,0),A=[],N=this.options.keepHead?this.options.size:this.getSize(t,g[2],o-2,o,p),U=[];if(I>1){for(let F=0;F<=Math.PI;F+=Math.PI/16)A.unshift(jt(f,Zr(cr(T,I),-F)));A.unshift(jt(f,cr(T,-I)))}else A.push(f);for(let F=0;F<=Math.PI*3;F+=Math.PI/16)U.push(jt(h,Zr(cr(M,-N),-F)));let R=[...A,...i,...U.reverse(),...a.reverse()];return A.length>0&&R.push(A[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?gh(R,this.options.simplify):R}};var Kl=class{constructor(t,r,o){this.animationFrameHandler=t;this.app=r;this.options=o;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.trailElement=document.createElementNS(ES,"path")}currentTrail;pastTrails=[];container;trailElement;get hasCurrentTrail(){return!!this.currentTrail}hasLastPoint(t,r){if(this.currentTrail){let o=this.currentTrail.originalPoints.length;return this.currentTrail.originalPoints[o-1][0]===t&&this.currentTrail.originalPoints[o-1][1]===r}return!1}start(t){t&&(this.container=t),this.trailElement.parentNode!==this.container&&this.container&&this.container.appendChild(this.trailElement),this.animationFrameHandler.start(this)}stop(){this.animationFrameHandler.stop(this),this.trailElement.parentNode===this.container&&this.container?.removeChild(this.trailElement)}startPath(t,r){this.currentTrail=new Dm(this.options),this.currentTrail.addPoint([t,r,performance.now()]),this.update()}addPointToPath(t,r){this.currentTrail&&(this.currentTrail.addPoint([t,r,performance.now()]),this.update())}endPath(){this.currentTrail&&(this.currentTrail.close(),this.currentTrail.options.keepHead=!1,this.pastTrails.push(this.currentTrail),this.currentTrail=void 0,this.update())}update(){this.start()}onFrame(){let t=[];for(let o of this.pastTrails)t.push(this.drawTrail(o,this.app.state));if(this.currentTrail){let o=this.drawTrail(this.currentTrail,this.app.state);t.push(o)}this.pastTrails=this.pastTrails.filter(o=>o.getStrokeOutline().length!==0),t.length===0&&this.stop();let r=t.join(" ").trim();this.trailElement.setAttribute("d",r),this.trailElement.setAttribute("fill",(this.options.fill??(()=>"black"))(this))}drawTrail(t,r){let o=t.getStrokeOutline(t.options.size/r.zoom.value).map(([i,a])=>{let s=Qr({sceneX:i,sceneY:a},r);return[s.x,s.y]});return FS(o,!0)}};v();var hh=class{constructor(t,r){this.animationFrameHandler=t;this.app=r;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new Kl(t,r,{...this.getTrailOptions(),fill:()=>Jb})}localTrail;collabTrails=new Map;container;getTrailOptions(){return{simplify:0,streamline:.4,sizeMapping:t=>{let i=Math.max(0,1-(performance.now()-t.pressure)/1e3),a=(50-Math.min(50,t.totalLength-t.currentIndex))/50;return Math.min(rl(a),rl(i))}}}startPath(t,r){this.localTrail.startPath(t,r)}addPointToPath(t,r){this.localTrail.addPointToPath(t,r)}endPath(){this.localTrail.endPath()}start(t){this.container=t,this.animationFrameHandler.start(this),this.localTrail.start(t)}stop(){this.animationFrameHandler.stop(this),this.localTrail.stop()}onFrame(){this.updateCollabTrails()}updateCollabTrails(){if(!(!this.container||this.app.state.collaborators.size===0)){for(let[t,r]of this.app.state.collaborators.entries()){let o;this.collabTrails.has(t)?o=this.collabTrails.get(t):(o=new Kl(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>r.pointer?.laserColor||Ml(t,r)}),o.start(this.container),this.collabTrails.set(t,o)),r.pointer&&r.pointer.tool==="laser"&&(r.button==="down"&&!o.hasCurrentTrail&&o.startPath(r.pointer.x,r.pointer.y),r.button==="down"&&o.hasCurrentTrail&&!o.hasLastPoint(r.pointer.x,r.pointer.y)&&o.addPointToPath(r.pointer.x,r.pointer.y),r.button==="up"&&o.hasCurrentTrail&&(o.addPointToPath(r.pointer.x,r.pointer.y),o.endPath()))}for(let t of this.collabTrails.keys())this.app.state.collaborators.has(t)||(this.collabTrails.get(t).stop(),this.collabTrails.delete(t))}}};v();var S$=(e,t,r,o,i,a)=>{let{zoom:s}=o,c=180*r/Math.PI,d=e*(s.value-1)/2,p=t*(s.value-1)/2;return e>i&&s.value!==1&&(d=i*(s.value-1)/2),t>a&&s.value!==1&&(p=a*(s.value-1)/2),`translate(${d}px, ${p}px) scale(${s.value}) rotate(${c}deg)`},QM=({id:e,onChange:t,onSubmit:r,getViewportCoords:o,element:i,canvas:a,excalidrawContainer:s,app:c,autoSelect:d=!0})=>{let p=(W,se)=>{if(!se.style.fontFamily||!se.style.fontSize)return!1;let xe=se.style.fontFamily.replace(/"/g,"");return ax({fontFamily:W.fontFamily})!==xe||`${W.fontSize}px`!==se.style.fontSize},f=()=>{let W=c.state,se=Yo.getScene(i)?.getElement(e);if(!se)return;let{textAlign:xe,verticalAlign:Se}=se,Je=c.scene.getNonDeletedElementsMap();if(se&&ge(se)){let Ee=se.x,ue=se.y,H=Ei(se,c.scene.getNonDeletedElementsMap()),Y=se.width,le=se.height,oe=se.width,ne=se.height;if(H&&se.containerId){if(Br(H)){let mr=Le.getBoundTextElementPosition(H,se,Je);Ee=mr.x,ue=mr.y}let ht=p(se,u),Ot;if(ht?Ot=Id(H.id,H.height):(Ot=PC[H.id],Ot||(Ot=Id(H.id,H.height))),Y=Ad(H,se),le=HC(H,se),!Br(H)&&ne>le){let mr=Cs(ne,H.type);me(H,{height:mr});return}else if(!Br(H)&&H.height>Ot.height&&ne<le){let mr=Cs(ne,H.type);me(H,{height:mr})}else{let{y:mr}=Cp(H,se,Je);ue=mr}}let[ce,pe]=o(Ee,ue),ye=u.selectionStart,Tt=u.selectionEnd,vt=u.value.length;if(ye===Tt&&Tt!==vt){let ht=vt-Tt;u.selectionStart=u.value.length-ht,u.selectionEnd=u.value.length-ht}H?oe+=.5:(Y=(W.width-8-ce)/W.zoom.value,oe=Math.min(oe,Y));let At=(W.height-pe)/W.zoom.value;Object.assign(u.style,{font:_r(se),lineHeight:se.lineHeight,width:`${oe}px`,height:`${ne}px`,left:`${ce}px`,top:`${pe}px`,transform:S$(oe,ne,FC(se,H),W,Y,At),textAlign:xe,verticalAlign:Se,color:se.strokeColor,opacity:se.opacity/100,filter:"var(--theme-filter)",maxHeight:`${At}px`}),u.scrollTop=0,dd()&&(u.style.fontFamily=ax(se)),me(se,{x:Ee,y:ue})}},u=document.createElement("textarea");u.dir="auto",u.tabIndex=0,u.dataset.type="wysiwyg",u.wrap="off",u.classList.add("excalidraw-wysiwyg");let g="pre",h="normal";(yr(i)||!i.autoResize)&&(g="pre-wrap",h="break-word"),Object.assign(u.style,{position:"absolute",display:"inline-block",minHeight:"1em",backfaceVisibility:"hidden",margin:0,padding:0,border:0,outline:0,resize:"none",background:"transparent",overflow:"hidden",zIndex:"var(--zIndex-wysiwyg)",wordBreak:h,whiteSpace:g,overflowWrap:"break-word",boxSizing:"content-box"}),u.value=i.originalText,f(),t&&(u.onpaste=async W=>{let se=await Kp(W,!0);if(!se.text)return;let xe=_d(se.text);if(!xe)return;let Se=Ei(i,c.scene.getNonDeletedElementsMap()),Je=_r({fontSize:c.state.currentItemFontSize,fontFamily:c.state.currentItemFontFamily});if(Se){let Ee=je(Se,c.scene.getNonDeletedElementsMap()),ue=_p(`${u.value}${xe}`,Je,Ad(Se,Ee)),H=NC(ue,Je);u.style.width=`${H}px`}},u.oninput=()=>{t(_d(u.value))}),u.onkeydown=W=>{if(!W.shiftKey&&Yf.keyTest(W))W.preventDefault(),c.actionManager.executeAction(Yf),f();else if(!W.shiftKey&&Vf.keyTest(W))W.preventDefault(),c.actionManager.executeAction(Vf),f();else if(sy.keyTest(W))c.actionManager.executeAction(sy);else if(cy.keyTest(W))c.actionManager.executeAction(cy);else if(W.key===L.ESCAPE)W.preventDefault(),U=!0,R();else if(W.key===L.ENTER&&W[L.CTRL_OR_CMD]){if(W.preventDefault(),W.isComposing||W.keyCode===229)return;U=!0,R()}else if(W.key===L.TAB||W[L.CTRL_OR_CMD]&&(W.code===Ne.BRACKET_LEFT||W.code===Ne.BRACKET_RIGHT)){if(W.preventDefault(),W.isComposing)return;W.shiftKey||W.code===Ne.BRACKET_LEFT?I():M(),u.dispatchEvent(new Event("input"))}};let x=4,E=" ".repeat(x),T=new RegExp(`^ {1,${x}}`),M=()=>{let{selectionStart:W,selectionEnd:se}=u,xe=A(),Se=u.value;xe.forEach(Je=>{let Ee=Se.slice(0,Je),ue=Se.slice(Je);Se=`${Ee}${E}${ue}`}),u.value=Se,u.selectionStart=W+x,u.selectionEnd=se+x*xe.length},I=()=>{let{selectionStart:W,selectionEnd:se}=u,xe=A(),Se=[],Je=u.value;xe.forEach(Ee=>{let ue=Je.slice(Ee,Ee+x).match(T);if(ue){let H=Je.slice(0,Ee),Y=Je.slice(Ee+ue[0].length);Je=`${H}${Y}`,Se.push(Ee)}}),u.value=Je,Se.length&&(W>Se[Se.length-1]?u.selectionStart=Math.max(W-x,Se[Se.length-1]):u.selectionStart=W,u.selectionEnd=Math.max(u.selectionStart,se-x*Se.length))},A=()=>{let{selectionStart:W,selectionEnd:se,value:xe}=u,Se=xe.slice(0,W).match(/[^\n]*$/)[0].length;return W=W-Se,xe.slice(W,se).split(`
91
+ `).reduce((Ee,ue,H,Y)=>Ee.concat(H?Ee[H-1]+Y[H-1].length+1:W),[]).reverse()},N=W=>{W.preventDefault(),W.stopPropagation()},U=!1,R=()=>{if(te)return;te=!0,F();let W=Yo.getScene(i)?.getElement(i.id);if(!W)return;let se=Ei(W,c.scene.getNonDeletedElementsMap());if(se){if(u.value.trim()){let xe=OC(se);!xe||xe!==i.id?me(se,{boundElements:(se.boundElements||[]).concat({type:"text",id:i.id})}):Br(se)&&ev(se)}else me(se,{boundElements:se.boundElements?.filter(xe=>!ge(xe))});er(W,se,c.scene.getNonDeletedElementsMap())}r({viaKeyboard:U,nextOriginalText:u.value})},F=()=>{u.onblur=null,u.oninput=null,u.onkeydown=null,de&&de.disconnect(),window.removeEventListener("resize",f),window.removeEventListener("wheel",N,!0),window.removeEventListener("pointerdown",Z),window.removeEventListener("pointerup",B),window.removeEventListener("blur",R),window.removeEventListener("beforeunload",R),G(),u.remove()},B=W=>{window.removeEventListener("pointerup",B);let se=W?.target,xe=se instanceof HTMLElement&&se.classList.contains("active-color");setTimeout(()=>{if(u.onblur=R,xe){let Se=(Ee,ue)=>{Ee.find(Y=>Y.removedNodes.length>0&&Y.removedNodes[0].dataset?.radixPopperContentWrapper!==void 0)&&(setTimeout(()=>{u.focus()}),ue.disconnect())};new MutationObserver(Se).observe(document.querySelector(".excalidraw-container"),{childList:!0})}xe||u.focus()})},Z=W=>{let se=W.target instanceof HTMLElement&&W.target.classList.contains("active-color");(W.target instanceof HTMLElement||W.target instanceof SVGElement)&&W.target.closest(`.${Nu.SHAPE_ACTIONS_MENU}`)&&!Ko(W.target)||se?(u.onblur=null,window.addEventListener("pointerup",B),window.addEventListener("blur",R)):W.target instanceof HTMLElement&&!W.target.contains(u)&&!dd()&&requestAnimationFrame(()=>{R()})},G=Yo.getScene(i).onUpdate(()=>{f(),!!document.activeElement?.closest(".color-picker-content")||u.focus()}),te=!1;d&&u.select(),B();let de=null;a&&"ResizeObserver"in window?(de=new window.ResizeObserver(()=>{f()}),de.observe(a)):window.addEventListener("resize",f),u.onpointerdown=W=>W.stopPropagation(),requestAnimationFrame(()=>{window.addEventListener("pointerdown",Z,{capture:!0})}),window.addEventListener("wheel",N,{passive:!1,capture:!0}),window.addEventListener("beforeunload",R),s?.querySelector(".excalidraw-textEditorContainer").appendChild(u)};v();var eP=re({name:"autoResize",label:"labels.autoResize",icon:null,trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=ze(e,t);return i.length===1&&ge(i[0])&&!i[0].autoResize},perform:(e,t,r,o)=>{let i=ze(e,t);return{appState:t,elements:e.map(a=>{if(a.id===i[0].id&&ge(a)){let s=yi(a.originalText,_r(a),a.lineHeight);return Re(a,{autoResize:!0,width:s.width,height:s.height,text:a.originalText})}return a}),storeAction:K.CAPTURE}}});v();var tP=e=>{let t=["flowchart","sequenceDiagram","classDiagram","stateDiagram","stateDiagram-v2","erDiagram","journey","gantt","pie","quadrantChart","requirementDiagram","gitGraph","C4Context","mindmap","timeline","zenuml","sankey","xychart","block"];return new RegExp(`^(?:%%{.*?}%%[\\s\\n]*)?\\b${t.map(o=>`${o}(-beta)?`).join("|")}\\b`).test(e.trim())};var Ze=w(P(),1),iP=dr.default.createContext(null),aP=dr.default.createContext(null),lP={viewport:{isMobile:!1,isLandscape:!1},editor:{isMobile:!1,canFitSidebar:!1},isTouchScreen:!1},r0=dr.default.createContext(lP);r0.displayName="DeviceContext";var o0=dr.default.createContext({container:null,id:null});o0.displayName="ExcalidrawContainerContext";var n0=dr.default.createContext([]);n0.displayName="ExcalidrawElementsContext";var i0=dr.default.createContext({...Is(),width:0,height:0,offsetLeft:0,offsetTop:0});i0.displayName="ExcalidrawAppStateContext";var a0=dr.default.createContext(()=>{console.warn("Uninitialized ExcalidrawSetAppStateContext context!")});a0.displayName="ExcalidrawSetAppStateContext";var l0=dr.default.createContext(null);l0.displayName="ExcalidrawActionManagerContext";var Ur=()=>(0,dr.useContext)(iP),_a=()=>(0,dr.useContext)(aP),ot=()=>(0,dr.useContext)(r0),Er=()=>(0,dr.useContext)(o0),Ta=()=>(0,dr.useContext)(n0),Aa=()=>(0,dr.useContext)(i0),nt=()=>(0,dr.useContext)(a0),gr=()=>(0,dr.useContext)(l0),Nm=!1,jE=0,Yl=!1,Om=!1,JE=!1,QE={horizontal:null,vertical:null},za=0,Fm=!1,e0=new Map,bh=!1,rP=0,oP=!1,Bm=null,at={pointers:new Map,lastCenter:null,initialDistance:null,initialScale:null},t0=class e extends dr.default.Component{canvas;interactiveCanvas=null;rc;unmounted=!1;actionManager;device=lP;excalidrawContainerRef=dr.default.createRef();scene;renderer;fonts;resizeObserver;nearestScrollableContainer;library;libraryItemsFromStorage;id;store;history;excalidrawContainerValue;files={};imageCache=new Map;iFrameRefs=new Map;embedsValidationStatus=new Map;initializedEmbeds=new Set;elementsPendingErasure=new Set;hitLinkElement;lastPointerDownEvent=null;lastPointerUpEvent=null;lastPointerMoveEvent=null;lastViewportPosition={x:0,y:0};animationFrameHandler=new fh;laserTrails=new hh(this.animationFrameHandler,this);eraserTrail=new Kl(this.animationFrameHandler,this,{streamline:.2,size:5,keepHead:!0,sizeMapping:t=>{let i=Math.max(0,1-(performance.now()-t.pressure)/200),a=(10-Math.min(10,t.totalLength-t.currentIndex))/10;return Math.min(rl(a),rl(i))},fill:()=>this.state.theme===$e.LIGHT?"rgba(0, 0, 0, 0.2)":"rgba(255, 255, 255, 0.2)"});onChangeEmitter=new jo;onPointerDownEmitter=new jo;onPointerUpEmitter=new jo;onUserFollowEmitter=new jo;onScrollChangeEmitter=new jo;missingPointerEventCleanupEmitter=new jo;onRemoveEventListenersEmitter=new jo;constructor(t){super(t);let r=Is(),{excalidrawAPI:o,viewModeEnabled:i=!1,zenModeEnabled:a=!1,gridModeEnabled:s=!1,objectsSnapModeEnabled:c=!1,theme:d=r.theme,name:p=`${y("labels.untitled")}-${ix()}`}=t;if(this.state={...r,theme:d,isLoading:!0,...this.getCanvasOffsets(),viewModeEnabled:i,zenModeEnabled:a,objectsSnapModeEnabled:c,gridSize:s?gi:null,name:p,width:window.innerWidth,height:window.innerHeight},this.id=TS(),this.library=new fk(this),this.actionManager=new Rg(this.syncActionResult,()=>this.state,()=>this.scene.getElementsIncludingDeleted(),this),this.scene=new Yo,this.canvas=document.createElement("canvas"),this.rc=SS.canvas(this.canvas),this.renderer=new Pm(this.scene),this.store=new n2,this.history=new pm,o){let f={updateScene:this.updateScene,updateLibrary:this.library.updateLibrary,addFiles:this.addFiles,resetScene:this.resetScene,getSceneElementsIncludingDeleted:this.getSceneElementsIncludingDeleted,history:{clear:this.resetHistory},scrollToContent:this.scrollToContent,getSceneElements:this.getSceneElements,getAppState:()=>this.state,getFiles:()=>this.files,getName:this.getName,registerAction:u=>{this.actionManager.registerAction(u)},refresh:this.refresh,setToast:this.setToast,id:this.id,setActiveTool:this.setActiveTool,setCursor:this.setCursor,resetCursor:this.resetCursor,updateFrameRendering:this.updateFrameRendering,toggleSidebar:this.toggleSidebar,onChange:u=>this.onChangeEmitter.on(u),onPointerDown:u=>this.onPointerDownEmitter.on(u),onPointerUp:u=>this.onPointerUpEmitter.on(u),onScrollChange:u=>this.onScrollChangeEmitter.on(u),onUserFollow:u=>this.onUserFollowEmitter.on(u)};typeof o=="function"?o(f):console.error("excalidrawAPI should be a function!")}this.excalidrawContainerValue={container:this.excalidrawContainerRef.current,id:this.id},this.fonts=new Am({scene:this.scene}),this.history=new pm,this.actionManager.registerAll(QC),this.actionManager.registerAction(A3(this.history,this.store)),this.actionManager.registerAction(k3(this.history,this.store))}onWindowMessage(t){if(t.origin!=="https://player.vimeo.com"&&t.origin!=="https://www.youtube.com")return;let r=null;try{r=JSON.parse(t.data)}catch{}if(r)switch(t.origin){case"https://player.vimeo.com":if(r.method==="paused"){let o=null,i=document.body.querySelectorAll("iframe.excalidraw__embeddable");if(!i)break;for(let a of i)a.contentWindow===t.source&&(o=a.contentWindow);o?.postMessage(JSON.stringify({method:r.value?"play":"pause",value:!0}),"*")}break;case"https://www.youtube.com":if(r.event==="infoDelivery"&&r.info&&r.id&&typeof r.info.playerState=="number"){let o=r.id,i=r.info.playerState;Object.values(rd).includes(i)&&e0.set(o,i)}break}}cacheEmbeddableRef(t,r){r&&this.iFrameRefs.set(t.id,r)}getHTMLIFrameElement(t){return this.iFrameRefs.get(t.id)}handleEmbeddableCenterClick(t){if(this.state.activeEmbeddable?.element===t&&this.state.activeEmbeddable?.state==="active"||(setTimeout(()=>{this.setState({activeEmbeddable:{element:t,state:"active"},selectedElementIds:{[t.id]:!0},draggingElement:null,selectionElement:null})},100),il(t)))return;let r=this.getHTMLIFrameElement(t);if(r?.contentWindow){if(r.src.includes("youtube")){let o=e0.get(t.id);switch(o||(e0.set(t.id,rd.UNSTARTED),r.contentWindow.postMessage(JSON.stringify({event:"listening",id:t.id}),"*")),o){case rd.PLAYING:case rd.BUFFERING:r.contentWindow?.postMessage(JSON.stringify({event:"command",func:"pauseVideo",args:""}),"*");break;default:r.contentWindow?.postMessage(JSON.stringify({event:"command",func:"playVideo",args:""}),"*")}}r.src.includes("player.vimeo.com")&&r.contentWindow.postMessage(JSON.stringify({method:"paused"}),"*")}}isIframeLikeElementCenter(t,r,o,i){return t&&!r.altKey&&!r.shiftKey&&!r.metaKey&&!r.ctrlKey&&(this.state.activeEmbeddable?.element!==t||this.state.activeEmbeddable?.state==="hover"||!this.state.activeEmbeddable)&&o>=t.x+t.width/3&&o<=t.x+2*t.width/3&&i>=t.y+t.height/3&&i<=t.y+2*t.height/3}updateEmbedValidationStatus=(t,r)=>{this.embedsValidationStatus.set(t.id,r),An.delete(t)};updateEmbeddables=()=>{let t=new Set,r=!1;this.scene.getNonDeletedElements().filter(o=>{if(Fr(o)){if(t.add(o.id),!this.embedsValidationStatus.has(o.id)){r=!0;let i=ks(o.link,this.props.validateEmbeddable);this.updateEmbedValidationStatus(o,i)}}else il(o)&&t.add(o.id);return!1}),r&&this.scene.triggerUpdate(),this.iFrameRefs.forEach((o,i)=>{t.has(i)||this.iFrameRefs.delete(i)})};renderEmbeddables(){let t=this.state.zoom.value,r=this.state.width,o=this.state.height,i=this.scene.getNonDeletedElements().filter(a=>Fr(a)&&this.embedsValidationStatus.get(a.id)===!0||il(a));return(0,Ze.jsx)(Ze.Fragment,{children:i.map(a=>{let{x:s,y:c}=Qr({sceneX:a.x,sceneY:a.y},this.state),d=Nd(a,r,o,this.state,this.scene.getNonDeletedElementsMap()),p=this.initializedEmbeds.has(a.id);if(d&&!p&&this.initializedEmbeds.add(a.id),!(d||p))return null;let u;if(il(a)){u=null;let x=(a.customData?.generationData??this.magicGenerations.get(a.id))||{status:"error",message:"No generation data",code:"ERR_NO_GENERATION_DATA"};if(x.status==="done"){let E=x.html;u={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>E}}else if(x.status==="pending")u={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>$x(`
73
92
  <style>
74
93
  html, body {
75
94
  width: 100%;
76
95
  height: 100%;
77
- color: ${this.state.theme===be.DARK?"white":"black"};
96
+ color: ${this.state.theme===$e.DARK?"white":"black"};
78
97
  }
79
98
  body {
80
99
  display: flex;
@@ -141,7 +160,7 @@ Please output JUST THE HTML file containing your best attempt at implementing th
141
160
  </svg>
142
161
  </div>
143
162
  <div>Generating...</div>
144
- `)};else{let x;b.code==="ERR_GENERATION_INTERRUPTED"?x="Generation was interrupted...":x=b.message||"Generation failed",m={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>au(`
163
+ `)};else{let E;x.code==="ERR_GENERATION_INTERRUPTED"?E="Generation was interrupted...":E=x.message||"Generation failed",u={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>$x(`
145
164
  <style>
146
165
  html, body {
147
166
  height: 100%;
@@ -151,7 +170,7 @@ Please output JUST THE HTML file containing your best attempt at implementing th
151
170
  flex-direction: column;
152
171
  align-items: center;
153
172
  justify-content: center;
154
- color: ${Ar.red[3]};
173
+ color: ${pi.red[3]};
155
174
  }
156
175
  h1, h3 {
157
176
  margin-top: 0;
@@ -159,26 +178,15 @@ Please output JUST THE HTML file containing your best attempt at implementing th
159
178
  }
160
179
  </style>
161
180
  <h1>Error!</h1>
162
- <h3>${x}</h3>
163
- `)}}}else m=Qn(Rb(i.link||""));let u=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="active",f=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="hover";return(0,ke.jsx)("div",{className:$("excalidraw__embeddable-container",{"is-hovered":f}),style:{transform:s?`translate(${a-this.state.offsetLeft}px, ${l-this.state.offsetTop}px) scale(${e})`:"none",display:s?"block":"none",opacity:_0(i,Uc(i,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${ab(Math.min(i.width,i.height),i)}px`},children:(0,ke.jsxs)("div",{className:"excalidraw__embeddable-container__inner",style:{width:s?`${i.width}px`:0,height:s?`${i.height}px`:0,transform:s?`rotate(${i.angle}rad)`:"none",pointerEvents:u?Vn.enabled:Vn.disabled},children:[f&&(0,ke.jsx)("div",{className:"excalidraw__embeddable-hint",children:g("buttons.embeddableInteractionButton")}),(0,ke.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${i.strokeWidth}px`},children:(Ht(i)?this.props.renderEmbeddable?.(i,this.state):null)??(0,ke.jsx)("iframe",{ref:b=>this.cacheEmbeddableRef(i,b),className:"excalidraw__embeddable",srcDoc:m?.type==="document"?m.srcdoc(this.state.theme):void 0,src:m?.type!=="document"?m?.link??"":void 0,scrolling:"no",referrerPolicy:"no-referrer-when-downgrade",title:"Excalidraw Embedded Content",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,sandbox:`${m?.sandbox?.allowSameOrigin?"allow-same-origin":""} allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation allow-downloads`})})]})},i.id)})})}getFrameNameDOMId=e=>`${this.id}-frame-name-${e.id}`;frameNameBoundsCache={get:e=>{let o=this.frameNameBoundsCache._cache.get(e.id);if(!o||o.zoom!==this.state.zoom.value||o.versionNonce!==e.versionNonce){let r=document.getElementById(this.getFrameNameDOMId(e));if(r){let n=r.getBoundingClientRect(),i=Ye({clientX:n.x,clientY:n.y},this.state),a=Ye({clientX:n.right,clientY:n.bottom},this.state);return o={x:i.x,y:i.y,width:a.x-i.x,height:a.y-i.y,angle:0,zoom:this.state.zoom.value,versionNonce:e.versionNonce},this.frameNameBoundsCache._cache.set(e.id,o),o}return null}return o},_cache:new Map};renderFrameNames=()=>{if(!this.state.frameRendering.enabled||!this.state.frameRendering.name)return null;let e=this.state.theme===be.DARK,o=0,r=0;return this.scene.getNonDeletedFramesLikes().map(n=>{if(qp(n)?o++:r++,!Nl(n,this.canvas.width/window.devicePixelRatio,this.canvas.height/window.devicePixelRatio,{offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,zoom:this.state.zoom},this.scene.getNonDeletedElementsMap()))return null;let{x:i,y:a}=Qt({sceneX:n.x,sceneY:n.y},this.state),l=6,s=()=>{re(n,{name:n.name?.trim()||null}),this.setState({editingFrame:null})},d,c=M0(n,qp(n)?o:r);if(n.id===this.state.editingFrame){let m=c;d=(0,ke.jsx)("input",{autoFocus:!0,value:m,onChange:u=>{re(n,{name:u.target.value})},onFocus:u=>u.target.select(),onBlur:()=>s(),onKeyDown:u=>{(u.key===S.ESCAPE||u.key===S.ENTER)&&s()},style:{background:this.state.viewBackgroundColor,filter:e?k1:"none",zIndex:2,border:"none",display:"block",padding:`${l}px`,borderRadius:4,boxShadow:"inset 0 0 0 1px var(--color-primary)",fontFamily:"Assistant",fontSize:"14px",transform:`translate(-${l}px, ${l}px)`,color:"var(--color-gray-80)",overflow:"hidden",maxWidth:`${document.body.clientWidth-i-l}px`},size:m.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else d=c;return(0,ke.jsx)("div",{id:this.getFrameNameDOMId(n),style:{position:"absolute",bottom:`${this.state.height+Zo.nameOffsetY-a+this.state.offsetTop}px`,left:`${i-this.state.offsetLeft}px`,zIndex:2,fontSize:Zo.nameFontSize,color:e?Zo.nameColorDarkTheme:Zo.nameColorLightTheme,lineHeight:Zo.nameLineHeight,width:"max-content",maxWidth:`${n.width}px`,overflow:n.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:Ne.MOVE,pointerEvents:this.state.viewModeEnabled?Vn.disabled:Vn.enabled},onPointerDown:m=>this.handleCanvasPointerDown(m),onWheel:m=>this.handleWheel(m),onContextMenu:this.handleCanvasContextMenu,onDoubleClick:()=>{this.setState({editingFrame:n.id})},children:d},n.id)})};toggleOverscrollBehavior(e){document.documentElement.style.overscrollBehaviorX=e.type==="pointerenter"?"none":"auto"}render(){let e=this.scene.getSelectedElements(this.state),{renderTopRightUI:o,renderCustomStats:r}=this.props,n=this.scene.getVersionNonce(),{elementsMap:i,visibleElements:a}=this.renderer.getRenderableElements({versionNonce:n,zoom:this.state.zoom,offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,height:this.state.height,width:this.state.width,editingElement:this.state.editingElement,pendingImageElementId:this.state.pendingImageElementId}),l=this.scene.getNonDeletedElementsMap(),s=!(this.state.editingElement&&$e(this.state.editingElement))&&(this.state.selectionElement||this.state.draggingElement||this.state.resizingElement||this.state.activeTool.type==="laser"&&this.state.cursorButton==="down"||this.state.editingElement&&!se(this.state.editingElement)),d=e[0];return(0,ke.jsx)("div",{className:$("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":s?Vn.disabled:Vn.enabled},ref:this.excalidrawContainerRef,onDrop:this.handleAppOnDrop,tabIndex:0,onKeyDown:this.props.handleKeyboardGlobally?void 0:this.onKeyDown,onPointerEnter:this.toggleOverscrollBehavior,onPointerLeave:this.toggleOverscrollBehavior,children:(0,ke.jsx)(d6.Provider,{value:this,children:(0,ke.jsx)(m6.Provider,{value:this.props,children:(0,ke.jsx)(Ug.Provider,{value:this.excalidrawContainerValue,children:(0,ke.jsx)(Hg.Provider,{value:this.device,children:(0,ke.jsx)(Vg.Provider,{value:this.setAppState,children:(0,ke.jsx)(Gg.Provider,{value:this.state,children:(0,ke.jsxs)(Wg.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,ke.jsxs)(Kg.Provider,{value:this.actionManager,children:[(0,ke.jsx)(w5,{canvas:this.canvas,appState:this.state,files:this.files,setAppState:this.setAppState,actionManager:this.actionManager,elements:this.scene.getNonDeletedElements(),onLockToggle:this.toggleLock,onPenModeToggle:this.togglePenMode,onHandToolToggle:this.onHandToolToggle,langCode:Gr().code,renderTopRightUI:o,renderCustomStats:r,showExitZenModeBtn:typeof this.props?.zenModeEnabled>"u"&&this.state.zenModeEnabled,UIOptions:this.props.UIOptions,onExportImage:this.onExportImage,renderWelcomeScreen:!this.state.isLoading&&this.state.showWelcomeScreen&&this.state.activeTool.type==="selection"&&!this.state.zenModeEnabled&&!this.scene.getElementsIncludingDeleted().length,app:this,isCollaborating:this.props.isCollaborating,openAIKey:this.OPENAI_KEY,isOpenAIKeyPersisted:this.OPENAI_KEY_IS_PERSISTED,onOpenAIAPIKeyChange:this.onOpenAIKeyChange,onMagicSettingsConfirm:this.onMagicSettingsConfirm,children:this.props.children}),(0,ke.jsx)("div",{className:"excalidraw-textEditorContainer"}),(0,ke.jsx)("div",{className:"excalidraw-contextMenuContainer"}),(0,ke.jsx)("div",{className:"excalidraw-eye-dropper-container"}),(0,ke.jsx)(Q5,{trails:[this.laserTrails,this.eraserTrail]}),e.length===1&&this.state.showHyperlinkPopup&&(0,ke.jsx)(ky,{element:d,elementsMap:l,setAppState:this.setAppState,onLinkOpen:this.props.onLinkOpen,setToast:this.setToast,updateEmbedValidationStatus:this.updateEmbedValidationStatus},d.id),this.props.aiEnabled!==!1&&e.length===1&&xl(d)&&(0,ke.jsx)(Ng,{element:d,elementsMap:i,children:(0,ke.jsx)(wp,{title:g("labels.convertToCode"),icon:ma,checked:!1,onChange:()=>this.onMagicFrameGenerate(d,"button")})}),e.length===1&&Xn(d)&&d.customData?.generationData?.status==="done"&&(0,ke.jsxs)(Ng,{element:d,elementsMap:i,children:[(0,ke.jsx)(wp,{title:g("labels.copySource"),icon:gd,checked:!1,onChange:()=>this.onIframeSrcCopy(d)}),(0,ke.jsx)(wp,{title:"Enter fullscreen",icon:Cv,checked:!1,onChange:()=>{let c=this.getHTMLIFrameElement(d);if(c)try{c.requestFullscreen(),this.setState({activeEmbeddable:{element:d,state:"active"},selectedElementIds:{[d.id]:!0},draggingElement:null,selectionElement:null})}catch(m){console.warn(m),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,ke.jsx)(C5,{message:this.state.toast.message,onClose:()=>this.setToast(null),duration:this.state.toast.duration,closable:this.state.toast.closable}),this.state.contextMenu&&(0,ke.jsx)(c3,{items:this.state.contextMenu.items,top:this.state.contextMenu.top,left:this.state.contextMenu.left,actionManager:this.actionManager,onClose:c=>{this.setState({contextMenu:null},()=>{this.focusContainer(),c?.()})}}),(0,ke.jsx)(Rg,{canvas:this.canvas,rc:this.rc,elementsMap:i,allElementsMap:l,visibleElements:a,versionNonce:n,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,renderConfig:{imageCache:this.imageCache,isExporting:!1,renderGrid:!0,canvasBackgroundColor:this.state.viewBackgroundColor,embedsValidationStatus:this.embedsValidationStatus,elementsPendingErasure:this.elementsPendingErasure}}),(0,ke.jsx)(Pg,{containerRef:this.excalidrawContainerRef,canvas:this.interactiveCanvas,elementsMap:i,visibleElements:a,selectedElements:e,versionNonce:n,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,device:this.device,renderInteractiveSceneCallback:this.renderInteractiveSceneCallback,handleCanvasRef:this.handleInteractiveCanvasRef,onContextMenu:this.handleCanvasContextMenu,onPointerMove:this.handleCanvasPointerMove,onPointerUp:this.handleCanvasPointerUp,onPointerCancel:this.removePointer,onTouchMove:this.handleTouchMove,onPointerDown:this.handleCanvasPointerDown,onDoubleClick:this.handleCanvasDoubleClick}),this.state.userToFollow&&(0,ke.jsx)(o6,{width:this.state.width,height:this.state.height,userToFollow:this.state.userToFollow,onDisconnect:this.maybeUnfollowRemoteUser}),this.renderFrameNames()]}),this.renderEmbeddables()]})})})})})})})})}focusContainer=()=>{this.excalidrawContainerRef.current?.focus()};getSceneElementsIncludingDeleted=()=>this.scene.getElementsIncludingDeleted();getSceneElements=()=>this.scene.getNonDeletedElements();onInsertElements=e=>{this.addElementsFromPasteOrLibrary({elements:e,position:"center",files:null})};onExportImage=async(e,o,r)=>{xe("export",e,"ui");let n=await fi(e,o,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:r.exportingFrame}).catch(sc).catch(i=>{console.error(i),this.setState({errorMessage:i.message})});this.state.exportEmbedScene&&n&&Rc(n)&&this.setState({fileHandle:n})};magicGenerations=new Map;updateMagicGeneration=({frameElement:e,data:o})=>{o.status==="pending"?re(e,{customData:{generationData:void 0}},!1):re(e,{customData:{generationData:o}},!1),this.magicGenerations.set(e.id,o),this.onSceneUpdated()};getTextFromElements(e){return e.reduce((r,n)=>(se(n)&&r.push(n.text),r),[]).join(`
181
+ <h3>${E}</h3>
182
+ `)}}}else u=pl(JC(a.link||""));let g=this.state.activeEmbeddable?.element===a&&this.state.activeEmbeddable?.state==="active",h=this.state.activeEmbeddable?.element===a&&this.state.activeEmbeddable?.state==="hover";return(0,Ze.jsx)("div",{className:j("excalidraw__embeddable-container",{"is-hovered":h}),style:{transform:d?`translate(${s-this.state.offsetLeft}px, ${c-this.state.offsetTop}px) scale(${t})`:"none",display:d?"block":"none",opacity:z2(a,Vp(a,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${XS(Math.min(a.width,a.height),a)}px`},children:(0,Ze.jsxs)("div",{className:"excalidraw__embeddable-container__inner",style:{width:d?`${a.width}px`:0,height:d?`${a.height}px`:0,transform:d?`rotate(${a.angle}rad)`:"none",pointerEvents:g?el.enabled:el.disabled},children:[h&&(0,Ze.jsx)("div",{className:"excalidraw__embeddable-hint",children:y("buttons.embeddableInteractionButton")}),(0,Ze.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${a.strokeWidth}px`},children:(Fr(a)?this.props.renderEmbeddable?.(a,this.state):null)??(0,Ze.jsx)("iframe",{ref:x=>this.cacheEmbeddableRef(a,x),className:"excalidraw__embeddable",srcDoc:u?.type==="document"?u.srcdoc(this.state.theme):void 0,src:u?.type!=="document"?u?.link??"":void 0,scrolling:"no",referrerPolicy:"no-referrer-when-downgrade",title:"Excalidraw Embedded Content",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,sandbox:`${u?.sandbox?.allowSameOrigin?"allow-same-origin":""} allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation allow-downloads`})})]})},a.id)})})}getFrameNameDOMId=t=>`${this.id}-frame-name-${t.id}`;frameNameBoundsCache={get:t=>{let r=this.frameNameBoundsCache._cache.get(t.id);if(!r||r.zoom!==this.state.zoom.value||r.versionNonce!==t.versionNonce){let o=document.getElementById(this.getFrameNameDOMId(t));if(o){let i=o.getBoundingClientRect(),a=Mt({clientX:i.x,clientY:i.y},this.state),s=Mt({clientX:i.right,clientY:i.bottom},this.state);return r={x:a.x,y:a.y,width:s.x-a.x,height:s.y-a.y,angle:0,zoom:this.state.zoom.value,versionNonce:t.versionNonce},this.frameNameBoundsCache._cache.set(t.id,r),r}return null}return r},_cache:new Map};renderFrameNames=()=>{if(!this.state.frameRendering.enabled||!this.state.frameRendering.name)return null;let t=this.state.theme===$e.DARK,r=0,o=0;return this.scene.getNonDeletedFramesLikes().map(i=>{if(mx(i)?r++:o++,!Nd(i,this.canvas.width/window.devicePixelRatio,this.canvas.height/window.devicePixelRatio,{offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,zoom:this.state.zoom},this.scene.getNonDeletedElementsMap()))return null;let{x:a,y:s}=Qr({sceneX:i.x,sceneY:i.y},this.state),c=6,d=()=>{me(i,{name:i.name?.trim()||null}),this.setState({editingFrame:null})},p,f=B2(i,mx(i)?r:o);if(i.id===this.state.editingFrame){let u=f;p=(0,Ze.jsx)("input",{autoFocus:!0,value:u,onChange:g=>{me(i,{name:g.target.value})},onFocus:g=>g.target.select(),onBlur:()=>d(),onKeyDown:g=>{(g.key===L.ESCAPE||g.key===L.ENTER)&&d()},style:{background:this.state.viewBackgroundColor,filter:t?fS:"none",zIndex:2,border:"none",display:"block",padding:`${c}px`,borderRadius:4,boxShadow:"inset 0 0 0 1px var(--color-primary)",fontFamily:"Assistant",fontSize:"14px",transform:`translate(-${c}px, ${c}px)`,color:"var(--color-gray-80)",overflow:"hidden",maxWidth:`${document.body.clientWidth-a-c}px`},size:u.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else p=f;return(0,Ze.jsx)("div",{id:this.getFrameNameDOMId(i),style:{position:"absolute",bottom:`${this.state.height+En.nameOffsetY-s+this.state.offsetTop}px`,left:`${a-this.state.offsetLeft}px`,zIndex:2,fontSize:En.nameFontSize,color:t?En.nameColorDarkTheme:En.nameColorLightTheme,lineHeight:En.nameLineHeight,width:"max-content",maxWidth:`${i.width}px`,overflow:i.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:ut.MOVE,pointerEvents:this.state.viewModeEnabled?el.disabled:el.enabled},onPointerDown:u=>this.handleCanvasPointerDown(u),onWheel:u=>this.handleWheel(u),onContextMenu:this.handleCanvasContextMenu,onDoubleClick:()=>{this.setState({editingFrame:i.id})},children:p},i.id)})};toggleOverscrollBehavior(t){document.documentElement.style.overscrollBehaviorX=t.type==="pointerenter"?"none":"auto"}render(){let t=this.scene.getSelectedElements(this.state),{renderTopRightUI:r,renderCustomStats:o}=this.props,i=this.scene.getSceneNonce(),{elementsMap:a,visibleElements:s}=this.renderer.getRenderableElements({sceneNonce:i,zoom:this.state.zoom,offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,height:this.state.height,width:this.state.width,editingElement:this.state.editingElement,pendingImageElementId:this.state.pendingImageElementId}),c=this.scene.getNonDeletedElementsMap(),d=!(this.state.editingElement&&et(this.state.editingElement))&&(this.state.selectionElement||this.state.draggingElement||this.state.resizingElement||this.state.activeTool.type==="laser"&&this.state.cursorButton==="down"||this.state.editingElement&&!ge(this.state.editingElement)),p=t[0];return(0,Ze.jsx)("div",{className:j("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":d?el.disabled:el.enabled},ref:this.excalidrawContainerRef,onDrop:this.handleAppOnDrop,tabIndex:0,onKeyDown:this.props.handleKeyboardGlobally?void 0:this.onKeyDown,onPointerEnter:this.toggleOverscrollBehavior,onPointerLeave:this.toggleOverscrollBehavior,children:(0,Ze.jsx)(iP.Provider,{value:this,children:(0,Ze.jsx)(aP.Provider,{value:this.props,children:(0,Ze.jsx)(o0.Provider,{value:this.excalidrawContainerValue,children:(0,Ze.jsx)(r0.Provider,{value:this.device,children:(0,Ze.jsx)(a0.Provider,{value:this.setAppState,children:(0,Ze.jsx)(i0.Provider,{value:this.state,children:(0,Ze.jsxs)(n0.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,Ze.jsxs)(l0.Provider,{value:this.actionManager,children:[(0,Ze.jsx)(gM,{canvas:this.canvas,appState:this.state,files:this.files,setAppState:this.setAppState,actionManager:this.actionManager,elements:this.scene.getNonDeletedElements(),onLockToggle:this.toggleLock,onPenModeToggle:this.togglePenMode,onHandToolToggle:this.onHandToolToggle,langCode:ki().code,renderTopRightUI:r,renderCustomStats:o,showExitZenModeBtn:typeof this.props?.zenModeEnabled>"u"&&this.state.zenModeEnabled,UIOptions:this.props.UIOptions,onExportImage:this.onExportImage,renderWelcomeScreen:!this.state.isLoading&&this.state.showWelcomeScreen&&this.state.activeTool.type==="selection"&&!this.state.zenModeEnabled&&!this.scene.getElementsIncludingDeleted().length,app:this,isCollaborating:this.props.isCollaborating,openAIKey:this.OPENAI_KEY,isOpenAIKeyPersisted:this.OPENAI_KEY_IS_PERSISTED,onOpenAIAPIKeyChange:this.onOpenAIKeyChange,onMagicSettingsConfirm:this.onMagicSettingsConfirm,children:this.props.children}),(0,Ze.jsx)("div",{className:"excalidraw-textEditorContainer"}),(0,Ze.jsx)("div",{className:"excalidraw-contextMenuContainer"}),(0,Ze.jsx)("div",{className:"excalidraw-eye-dropper-container"}),(0,Ze.jsx)(YM,{trails:[this.laserTrails,this.eraserTrail]}),t.length===1&&this.state.showHyperlinkPopup&&(0,Ze.jsx)(qA,{element:p,elementsMap:c,setAppState:this.setAppState,onLinkOpen:this.props.onLinkOpen,setToast:this.setToast,updateEmbedValidationStatus:this.updateEmbedValidationStatus},p.id),this.props.aiEnabled!==!1&&t.length===1&&fd(p)&&(0,Ze.jsx)(qE,{element:p,elementsMap:a,children:(0,Ze.jsx)(ph,{title:y("labels.convertToCode"),icon:ws,checked:!1,onChange:()=>this.onMagicFrameGenerate(p,"button")})}),t.length===1&&il(p)&&p.customData?.generationData?.status==="done"&&(0,Ze.jsxs)(qE,{element:p,elementsMap:a,children:[(0,Ze.jsx)(ph,{title:y("labels.copySource"),icon:mp,checked:!1,onChange:()=>this.onIframeSrcCopy(p)}),(0,Ze.jsx)(ph,{title:"Enter fullscreen",icon:nC,checked:!1,onChange:()=>{let f=this.getHTMLIFrameElement(p);if(f)try{f.requestFullscreen(),this.setState({activeEmbeddable:{element:p,state:"active"},selectedElementIds:{[p.id]:!0},draggingElement:null,selectionElement:null})}catch(u){console.warn(u),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,Ze.jsx)(hM,{message:this.state.toast.message,onClose:()=>this.setToast(null),duration:this.state.toast.duration,closable:this.state.toast.closable}),this.state.contextMenu&&(0,Ze.jsx)(R3,{items:this.state.contextMenu.items,top:this.state.contextMenu.top,left:this.state.contextMenu.left,actionManager:this.actionManager,onClose:f=>{this.setState({contextMenu:null},()=>{this.focusContainer(),f?.()})}}),(0,Ze.jsx)(XE,{canvas:this.canvas,rc:this.rc,elementsMap:a,allElementsMap:c,visibleElements:s,sceneNonce:i,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,renderConfig:{imageCache:this.imageCache,isExporting:!1,renderGrid:!0,canvasBackgroundColor:this.state.viewBackgroundColor,embedsValidationStatus:this.embedsValidationStatus,elementsPendingErasure:this.elementsPendingErasure}}),(0,Ze.jsx)(VE,{containerRef:this.excalidrawContainerRef,canvas:this.interactiveCanvas,elementsMap:a,visibleElements:s,allElementsMap:c,selectedElements:t,sceneNonce:i,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,device:this.device,renderInteractiveSceneCallback:this.renderInteractiveSceneCallback,handleCanvasRef:this.handleInteractiveCanvasRef,onContextMenu:this.handleCanvasContextMenu,onPointerMove:this.handleCanvasPointerMove,onPointerUp:this.handleCanvasPointerUp,onPointerCancel:this.removePointer,onTouchMove:this.handleTouchMove,onPointerDown:this.handleCanvasPointerDown,onDoubleClick:this.handleCanvasDoubleClick}),this.state.userToFollow&&(0,Ze.jsx)(ZM,{width:this.state.width,height:this.state.height,userToFollow:this.state.userToFollow,onDisconnect:this.maybeUnfollowRemoteUser}),this.renderFrameNames()]}),this.renderEmbeddables()]})})})})})})})})}focusContainer=()=>{this.excalidrawContainerRef.current?.focus()};getSceneElementsIncludingDeleted=()=>this.scene.getElementsIncludingDeleted();getSceneElements=()=>this.scene.getNonDeletedElements();onInsertElements=t=>{this.addElementsFromPasteOrLibrary({elements:t,position:"center",files:null})};onExportImage=async(t,r,o)=>{Fe("export",t,"ui");let i=await Il(t,r,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:o.exportingFrame}).catch(Xu).catch(a=>{console.error(a),this.setState({errorMessage:a.message})});this.state.exportEmbedScene&&i&&Bp(i)&&this.setState({fileHandle:i})};magicGenerations=new Map;updateMagicGeneration=({frameElement:t,data:r})=>{r.status==="pending"?me(t,{customData:{generationData:void 0}},!1):me(t,{customData:{generationData:r}},!1),this.magicGenerations.set(t.id,r),this.triggerRender()};getTextFromElements(t){return t.reduce((o,i)=>(ge(i)&&o.push(i.text),o),[]).join(`
164
183
 
165
- `)}async onMagicFrameGenerate(e,o){if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"generation"}}),xe("ai","generate (missing key)","d2c");return}let r=Kc(this.scene.getNonDeletedElements(),e).filter(m=>!xl(m));if(!r.length){o==="button"?(this.setState({errorMessage:"Cannot generate from an empty frame"}),xe("ai","generate (no-children)","d2c")):this.setActiveTool({type:"magicframe"});return}let n=this.insertIframeElement({sceneX:e.x+e.width+30,sceneY:e.y,width:e.width,height:e.height});if(!n)return;this.updateMagicGeneration({frameElement:n,data:{status:"pending"}}),this.setState({selectedElementIds:{[n.id]:!0}});let i=await xu({elements:this.scene.getNonDeletedElements(),appState:{...this.state,exportBackground:!0,viewBackgroundColor:this.state.viewBackgroundColor},exportingFrame:e,files:this.files}),a=await Oc(i),l=this.getTextFromElements(r);xe("ai","generate (start)","d2c");let s=await t6({image:a,apiKey:this.OPENAI_KEY,text:l,theme:this.state.theme});if(!s.ok){xe("ai","generate (failed)","d2c"),console.error(s.error),this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:s.error?.message||"Unknown error during generation"}});return}if(xe("ai","generate (success)","d2c"),s.choices[0].message.content==null){this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:"Nothing genereated :("}});return}let d=s.choices[0].message.content,c=d.slice(d.indexOf("<!DOCTYPE html>"),d.indexOf("</html>")+7);this.updateMagicGeneration({frameElement:n,data:{status:"done",html:c}})}onIframeSrcCopy(e){e.customData?.generationData?.status==="done"&&(Ji(e.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=fo.get(So.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=fo.has(So.OAI_API_KEY)||!1;onOpenAIKeyChange=(e,o)=>{if(this.OPENAI_KEY=e||null,o){let r=fo.set(So.OAI_API_KEY,e);this.OPENAI_KEY_IS_PERSISTED=r}else this.OPENAI_KEY_IS_PERSISTED=!1};onMagicSettingsConfirm=(e,o,r)=>{if(this.OPENAI_KEY=e||null,this.onOpenAIKeyChange(this.OPENAI_KEY,o),r==="settings")return;let n=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});e?n.length?this.onMagicframeToolSelect():this.setActiveTool({type:"magicframe"}):xl(n[0])||this.setActiveTool({type:"magicframe"})};onMagicframeToolSelect=()=>{if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"tool"}}),xe("ai","tool-select (missing key)","d2c");return}let e=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});if(e.length===0)this.setActiveTool({type:ut.magicframe}),xe("ai","tool-select (empty-selection)","d2c");else{let o=e.length===1&&xl(e[0])&&e[0];if(!o&&e.some(n=>Ee(n)||n.frameId)){this.setActiveTool({type:ut.magicframe});return}xe("ai","tool-select (existing selection)","d2c");let r;if(o)r=o;else{let[n,i,a,l]=Ze(e),s=50;r=Ml({...Zo,x:n-s,y:i-s,width:a-n+s*2,height:l-i+s*2,opacity:100,locked:!1}),this.scene.insertElement(r);for(let d of e)re(d,{frameId:r.id});this.setState({selectedElementIds:{[r.id]:!0}})}this.onMagicFrameGenerate(r,"upstream")}};openEyeDropper=({type:e})=>{Gt.set(Tn,{swapPreviewOnAlt:!0,colorPickerType:e==="stroke"?"elementStroke":"elementBackground",onSelect:(o,r)=>{let n=e==="background"&&r.altKey||e==="stroke"&&!r.altKey;!this.scene.getSelectedElements(this.state).length||this.state.activeTool.type!=="selection"?n?this.syncActionResult({appState:{...this.state,currentItemStrokeColor:o},storeAction:P.CAPTURE}):this.syncActionResult({appState:{...this.state,currentItemBackgroundColor:o},storeAction:P.CAPTURE}):this.updateScene({elements:this.scene.getElementsIncludingDeleted().map(a=>this.state.selectedElementIds[a.id]?he(a,{[n?"strokeColor":"backgroundColor"]:o}):a),storeAction:P.CAPTURE})},keepOpenOnAlt:!1})};syncActionResult=Qe(e=>{if(this.unmounted||e===!1)return;let o=null;if(e.elements&&(e.elements.forEach(r=>{this.state.editingElement?.id===r.id&&this.state.editingElement!==r&&Mu(r)&&(o=r)}),e.storeAction===P.UPDATE?this.store.shouldUpdateSnapshot():e.storeAction===P.CAPTURE&&this.store.shouldCaptureIncrement(),this.scene.replaceAllElements(e.elements)),e.files&&(this.files=e.replaceFiles?e.files:{...this.files,...e.files},this.addNewImagesToImageCache()),e.appState||o||this.state.contextMenu){e.storeAction===P.UPDATE?this.store.shouldUpdateSnapshot():e.storeAction===P.CAPTURE&&this.store.shouldCaptureIncrement();let r=e?.appState?.viewModeEnabled||!1,n=e?.appState?.zenModeEnabled||!1,i=e?.appState?.gridSize||null,a=e?.appState?.theme||this.props.theme||be.LIGHT,l=e?.appState?.name??this.state.name,s=e?.appState?.errorMessage??this.state.errorMessage;typeof this.props.viewModeEnabled<"u"&&(r=this.props.viewModeEnabled),typeof this.props.zenModeEnabled<"u"&&(n=this.props.zenModeEnabled),typeof this.props.gridModeEnabled<"u"&&(i=this.props.gridModeEnabled?Lr:null),o=o||e.appState?.editingElement||null,o?.isDeleted&&(o=null),this.setState(d=>Object.assign(e.appState||{},{contextMenu:null,editingElement:o,viewModeEnabled:r,zenModeEnabled:n,gridSize:i,theme:a,name:l,errorMessage:s}))}});onBlur=Qe(()=>{Ri=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=e=>{e.preventDefault()};resetHistory=()=>{this.history.clear()};resetStore=()=>{this.store.clear()};resetScene=Qe(e=>{this.scene.replaceAllElements([]),this.setState(o=>({...Ki(),isLoading:e?.resetLoadingState?!1:o.isLoading,theme:this.state.theme})),this.resetStore(),this.resetHistory()});initializeScene=async()=>{"launchQueue"in window&&"LaunchParams"in window&&window.launchQueue.setConsumer(async r=>{if(!r.files.length)return;let n=r.files[0],i=await n.getFile();this.loadFileToCanvas(new File([i],i.name||"",{type:i.type}),n)}),this.props.theme&&this.setState({theme:this.props.theme}),this.state.isLoading||this.setState({isLoading:!0});let e=null;try{e=await this.props.initialData||null,e?.libraryItems&&this.library.updateLibrary({libraryItems:e.libraryItems,merge:!0}).catch(r=>{console.error(r)})}catch(r){console.error(r),e={appState:{errorMessage:r.message||"Encountered an error during importing or restoring scene data"}}}let o=cu(e,null,null,{repairBindings:!0});o.appState={...o.appState,theme:this.props.theme||o.appState.theme,openSidebar:o.appState?.openSidebar||this.state.openSidebar,activeTool:o.appState.activeTool.type==="image"?{...o.appState.activeTool,type:"selection"}:o.appState.activeTool,isLoading:!1,toast:this.state.toast},e?.scrollToContent&&(o.appState={...o.appState,...oi(o.elements,{...o.appState,width:this.state.width,height:this.state.height,offsetTop:this.state.offsetTop,offsetLeft:this.state.offsetLeft})}),this.fonts.loadFontsForElements(o.elements),this.resetStore(),this.resetHistory(),this.syncActionResult({...o,storeAction:P.UPDATE})};isMobileBreakpoint=(e,o)=>e<I1||o<M1&&e<A1;refreshViewportBreakpoints=()=>{if(!this.excalidrawContainerRef.current)return;let{clientWidth:o,clientHeight:r}=document.body,n=this.device.viewport,i=Fi(n,{isLandscape:o>r,isMobile:this.isMobileBreakpoint(o,r)});return n!==i?(this.device={...this.device,viewport:i},!0):!1};refreshEditorBreakpoints=()=>{let e=this.excalidrawContainerRef.current;if(!e)return;let{width:o,height:r}=e.getBoundingClientRect(),n=this.props.UIOptions.dockedSidebarBreakpoint!=null?this.props.UIOptions.dockedSidebarBreakpoint:_1,i=this.device.editor,a=Fi(i,{isMobile:this.isMobileBreakpoint(o,r),canFitSidebar:o>n});return i!==a?(this.device={...this.device,editor:a},!0):!1};async componentDidMount(){if(this.unmounted=!1,this.excalidrawContainerValue.container=this.excalidrawContainerRef.current,y.MODE===Bp.TEST||y.DEV){let o=this.setState.bind(this);Object.defineProperties(window.h,{state:{configurable:!0,get:()=>this.state},setState:{configurable:!0,value:(...r)=>this.setState(...r)},app:{configurable:!0,value:this},history:{configurable:!0,value:this.history},store:{configurable:!0,value:this.store}})}this.store.onStoreIncrementEmitter.on(o=>{this.history.record(o.elementsChange,o.appStateChange)}),this.scene.addCallback(this.onSceneUpdated),this.addEventListeners(),this.props.autoFocus&&this.excalidrawContainerRef.current&&this.focusContainer(),dc()||(this.refreshViewportBreakpoints(),this.refreshEditorBreakpoints()),al&&this.excalidrawContainerRef.current&&(this.resizeObserver=new ResizeObserver(()=>{this.refreshEditorBreakpoints(),this.updateDOMRect()}),this.resizeObserver?.observe(this.excalidrawContainerRef.current)),new URLSearchParams(window.location.search.slice(1)).has("web-share-target")?this.restoreFileFromShare():this.updateDOMRect(this.initializeScene),m1()&&!Tb()&&this.setState({errorMessage:(0,ke.jsx)(B5,{})})}componentWillUnmount(){this.renderer.destroy(),this.scene=new ko,this.renderer=new Ns(this.scene),this.files={},this.imageCache.clear(),this.resizeObserver?.disconnect(),this.unmounted=!0,this.removeEventListeners(),this.scene.destroy(),this.library.destroy(),this.laserTrails.stop(),this.eraserTrail.stop(),this.onChangeEmitter.clear(),this.store.onStoreIncrementEmitter.clear(),Lo.destroy(),Wo.destroy(),clearTimeout(Un),Fe.clearCache(),Nt.clearCache(),Un=0,document.documentElement.style.overscrollBehaviorX=""}onResize=Qe(()=>{this.scene.getElementsIncludingDeleted().forEach(e=>Lo.delete(e)),this.refreshViewportBreakpoints(),this.updateDOMRect(),al||this.refreshEditorBreakpoints(),this.setState({})});onFullscreenChange=()=>{!document.fullscreenElement&&this.state.activeEmbeddable?.state==="active"&&this.setState({activeEmbeddable:null})};removeEventListeners(){this.onRemoveEventListenersEmitter.trigger()}addEventListeners(){this.removeEventListeners(),this.props.handleKeyboardGlobally&&this.onRemoveEventListenersEmitter.once(at(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(at(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),at(window,"message",this.onWindowMessage,!1),at(document,"pointerup",this.removePointer),at(document,"copy",this.onCopy),at(document,"keyup",this.onKeyUp,{passive:!0}),at(document,"mousemove",this.updateCurrentCursorPosition),at(document.fonts,"loadingdone",e=>{let o=e.fontfaces;this.fonts.onFontsLoaded(o)}),at(document,"gesturestart",this.onGestureStart,!1),at(document,"gesturechange",this.onGestureChange,!1),at(document,"gestureend",this.onGestureEnd,!1),at(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(at(document,"fullscreenchange",this.onFullscreenChange),at(document,"paste",this.pasteFromClipboard),at(document,"cut",this.onCut),at(window,"resize",this.onResize,!1),at(window,"unload",this.onUnload,!1),at(window,"blur",this.onBlur,!1),at(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),at(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(at(U1(this.excalidrawContainerRef.current),"scroll",this.onScroll)))}componentDidUpdate(e,o){this.updateEmbeddables();let r=this.scene.getElementsIncludingDeleted(),n=this.scene.getElementsMapIncludingDeleted(),i=this.scene.getNonDeletedElementsMap();!this.state.showWelcomeScreen&&!r.length&&this.setState({showWelcomeScreen:!0}),e.UIOptions.dockedSidebarBreakpoint!==this.props.UIOptions.dockedSidebarBreakpoint&&this.refreshEditorBreakpoints(),o.userToFollow&&!this.state.collaborators.has(o.userToFollow.socketId)&&this.maybeUnfollowRemoteUser(),(o.zoom.value!==this.state.zoom.value||o.scrollX!==this.state.scrollX||o.scrollY!==this.state.scrollY)&&(this.props?.onScrollChange?.(this.state.scrollX,this.state.scrollY,this.state.zoom),this.onScrollChangeEmitter.trigger(this.state.scrollX,this.state.scrollY,this.state.zoom)),o.userToFollow!==this.state.userToFollow&&(o.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:o.userToFollow,action:"UNFOLLOW"}),this.state.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:this.state.userToFollow,action:"FOLLOW"})),Object.keys(this.state.selectedElementIds).length&&Ao(this.state)&&this.setState({activeTool:it(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&o.theme!==this.state.theme&&Nb(this.interactiveCanvas,this.state.theme),o.activeTool.type==="selection"&&this.state.activeTool.type!=="selection"&&this.state.showHyperlinkPopup&&this.setState({showHyperlinkPopup:!1}),e.langCode!==this.props.langCode&&this.updateLanguage(),Ao(o)&&!Ao(this.state)&&this.eraserTrail.endPath(),e.viewModeEnabled!==this.props.viewModeEnabled&&this.setState({viewModeEnabled:!!this.props.viewModeEnabled}),o.viewModeEnabled!==this.state.viewModeEnabled&&(this.addEventListeners(),this.deselectElements()),e.zenModeEnabled!==this.props.zenModeEnabled&&this.setState({zenModeEnabled:!!this.props.zenModeEnabled}),e.theme!==this.props.theme&&this.props.theme&&this.setState({theme:this.props.theme}),e.gridModeEnabled!==this.props.gridModeEnabled&&this.setState({gridSize:this.props.gridModeEnabled?Lr:null}),this.excalidrawContainerRef.current?.classList.toggle("theme--dark",this.state.theme===be.DARK),this.state.editingLinearElement&&!this.state.selectedElementIds[this.state.editingLinearElement.elementId]&&setTimeout(()=>{this.state.editingLinearElement&&this.actionManager.executeAction(Oo)}),this.state.editingElement?.isDeleted&&this.setState({editingElement:null}),this.state.selectedLinearElement&&!this.state.selectedElementIds[this.state.selectedLinearElement.elementId]&&this.setState({selectedLinearElement:null});let{multiElement:l}=o;o.activeTool!==this.state.activeTool&&l!=null&&qn(this.state)&&Pr(l,!1)&&Sl(l,this.state,fl(ue.getPointAtIndexGlobalCoordinates(l,-1,i)),this),this.store.commit(n,this.state),this.state.isLoading||(this.props.onChange?.(r,this.state,this.files),this.onChangeEmitter.trigger(r,this.state,this.files))}renderInteractiveSceneCallback=({atLeastOneVisibleElement:e,scrollBars:o,elementsMap:r})=>{o&&(Bg=o);let n=se(this.state.editingElement)?!1:!e&&r.size>0;this.state.scrolledOutside!==n&&this.setState({scrolledOutside:n}),this.scheduleImageRefresh()};onScroll=pl(()=>{let{offsetTop:e,offsetLeft:o}=this.getCanvasOffsets();this.setState(r=>r.offsetLeft===o&&r.offsetTop===e?null:{offsetTop:e,offsetLeft:o})},S1);onCut=Qe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||To(e.target)||(this.actionManager.executeAction(nm,"keyboard",e),e.preventDefault(),e.stopPropagation())});onCopy=Qe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||To(e.target)||(this.actionManager.executeAction(Oa,"keyboard",e),e.preventDefault(),e.stopPropagation())});static resetTapTwice(){zs=!1}onTouchStart=e=>{if(d1&&e.preventDefault(),!zs){zs=!0,clearTimeout(Og),Og=window.setTimeout(t.resetTapTwice,w1);return}if(zs&&e.touches.length===1){let o=e.touches[0];this.handleCanvasDoubleClick({clientX:o.clientX,clientY:o.clientY}),zs=!1,clearTimeout(Og)}e.touches.length===2&&this.setState({selectedElementIds:Be({},this.state),activeEmbeddable:null})};onTouchEnd=e=>{this.resetContextMenuTimer(),e.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:Be(this.state.previousSelectedElementIds,this.state)}):Pe.pointers.clear()};pasteFromClipboard=Qe(async e=>{let o=!!kp,r=document.activeElement,n=this.excalidrawContainerRef.current?.contains(r);if(e&&!n)return;let i=document.elementFromPoint(this.lastViewportPosition.x,this.lastViewportPosition.y);if(e&&(!(i instanceof HTMLCanvasElement)||To(r)))return;let{x:a,y:l}=Ye({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),s=e?.clipboardData?.files[0],d=await $c(e,o);if(!s&&!o){if(d.mixedContent)return this.addElementsFromMixedContentPaste(d.mixedContent,{isPlainPaste:o,sceneX:a,sceneY:l});if(d.text){let c=d.text.trim();c.startsWith("<svg")&&c.endsWith("</svg>")&&(s=pu(c))}}if(Dc(s)&&!d.spreadsheet){if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}let c=this.createImageElement({sceneX:a,sceneY:l});this.insertImageElement(c,s),this.initializeImageDimensions(c),this.setState({selectedElementIds:Be({[c.id]:!0},this.state)});return}if(this.props.onPaste)try{if(await this.props.onPaste(d,e)===!1)return}catch(c){console.error(c)}if(d.errorMessage)this.setState({errorMessage:d.errorMessage});else if(d.spreadsheet&&!o)this.setState({pasteDialog:{data:d.spreadsheet,shown:!0}});else if(d.elements){let c=d.programmaticAPI?Ms(d.elements):d.elements;this.addElementsFromPasteOrLibrary({elements:c,files:d.files||null,position:"cursor",retainSeed:o})}else if(d.text){let c=X1(d.text).split(/\n+/).map(u=>u.trim()).filter(Boolean),m=c.map(u=>Hb(u)).filter(u=>Zi(u,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(u)||Qn(u)?.type==="video"));if(!kp&&m.length>0&&m.length===c.length){let u=[];for(let f of m){let b=u[u.length-1],x=this.insertEmbeddableElement({sceneX:b?b.x+b.width+20:a,sceneY:l,link:zr(f)});x&&u.push(x)}u.length&&this.setState({selectedElementIds:Object.fromEntries(u.map(f=>[f.id,!0]))});return}this.addTextFromPaste(d.text,o)}this.setActiveTool({type:"selection"}),e?.preventDefault()});addElementsFromPasteOrLibrary=e=>{let o=su(e.elements,null,void 0),[r,n,i,a]=Ze(o),l=Zn(r,i)/2,s=Zn(n,a)/2,d=typeof e.position=="object"?e.position.clientX:e.position==="cursor"?this.lastViewportPosition.x:this.state.width/2+this.state.offsetLeft,c=typeof e.position=="object"?e.position.clientY:e.position==="cursor"?this.lastViewportPosition.y:this.state.height/2+this.state.offsetTop,{x:m,y:u}=Ye({clientX:d,clientY:c},this.state),f=m-l,b=u-s,[x,E]=eo(f,b,this.state.gridSize),T=Lc(o.map(I=>he(I,{x:I.x+x-r,y:I.y+E-n})),{randomizeSeed:!e.retainSeed}),w=[...this.scene.getElementsIncludingDeleted(),...T];ho(w,pe(T));let A=this.getTopLayerFrameAtSceneCoords({x:m,y:u});if(A){let I=I0(T,A);Wc(w,I,A)}this.scene.replaceAllElements(w),T.forEach(I=>{if(se(I)&&xt(I)){let M=Nr(I,this.scene.getElementsMapIncludingDeleted());Ut(I,M,this.scene.getElementsMapIncludingDeleted())}}),e.files&&(this.files={...this.files,...e.files}),this.store.shouldCaptureIncrement();let z=ta(T);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&Gt.get(ks)?this.state.openSidebar:null,...Nt({editingGroupId:null,selectedElementIds:z.reduce((I,M)=>(xt(M)||(I[M.id]=!0),I),{})},this.scene.getNonDeletedElements(),this.state,this)},()=>{e.files&&this.addNewImagesToImageCache()}),this.setActiveTool({type:"selection"}),e.fitToContent&&this.scrollToContent(T,{fitToContent:!0})};async addElementsFromMixedContentPaste(e,{isPlainPaste:o,sceneX:r,sceneY:n}){if(!o&&e.some(i=>i.type==="imageUrl")&&this.isToolSupported("image")){let i=e.filter(m=>m.type==="imageUrl").map(m=>m.value),a=await Promise.all(i.map(async m=>{try{return{file:await Yb(m)}}catch(u){let f=u.message;return u.cause==="FETCH_ERROR"?f=g("errors.failedToFetchImage"):u.cause==="UNSUPPORTED"&&(f=g("errors.unsupportedFileType")),{errorMessage:f}}})),l=n,s=!1,d={};for(let m of a)if(m.file){let u=this.createImageElement({sceneX:r,sceneY:l}),f=await this.insertImageElement(u,m.file);f&&(s||(s=!0,l-=f.height/2),re(f,{y:l},!1),l=u.y+u.height+25,d[u.id]=!0)}this.setState({selectedElementIds:Be(d,this.state)});let c=a.find(m=>!!m.errorMessage);c&&c.errorMessage&&this.setState({errorMessage:c.errorMessage})}else{let i=e.filter(a=>a.type==="text");i.length&&this.addTextFromPaste(i.map(a=>a.value).join(`
184
+ `)}async onMagicFrameGenerate(t,r){if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"generation"}}),Fe("ai","generate (missing key)","d2c");return}let o=jp(this.scene.getNonDeletedElements(),t).filter(u=>!fd(u));if(!o.length){r==="button"?(this.setState({errorMessage:"Cannot generate from an empty frame"}),Fe("ai","generate (no-children)","d2c")):this.setActiveTool({type:"magicframe"});return}let i=this.insertIframeElement({sceneX:t.x+t.width+30,sceneY:t.y,width:t.width,height:t.height});if(!i)return;this.updateMagicGeneration({frameElement:i,data:{status:"pending"}}),this.setState({selectedElementIds:{[i.id]:!0}});let a=await jx({elements:this.scene.getNonDeletedElements(),appState:{...this.state,exportBackground:!0,viewBackgroundColor:this.state.viewBackgroundColor},exportingFrame:t,files:this.files}),s=await Hp(a),c=this.getTextFromElements(o);Fe("ai","generate (start)","d2c");let d=await XM({image:s,apiKey:this.OPENAI_KEY,text:c,theme:this.state.theme});if(!d.ok){Fe("ai","generate (failed)","d2c"),console.error(d.error),this.updateMagicGeneration({frameElement:i,data:{status:"error",code:"ERR_OAI",message:d.error?.message||"Unknown error during generation"}});return}if(Fe("ai","generate (success)","d2c"),d.choices[0].message.content==null){this.updateMagicGeneration({frameElement:i,data:{status:"error",code:"ERR_OAI",message:"Nothing genereated :("}});return}let p=d.choices[0].message.content,f=p.slice(p.indexOf("<!DOCTYPE html>"),p.indexOf("</html>")+7);this.updateMagicGeneration({frameElement:i,data:{status:"done",html:f}})}onIframeSrcCopy(t){t.customData?.generationData?.status==="done"&&(Ls(t.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=vo.get(Wo.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=vo.has(Wo.OAI_API_KEY)||!1;onOpenAIKeyChange=(t,r)=>{if(this.OPENAI_KEY=t||null,r){let o=vo.set(Wo.OAI_API_KEY,t);this.OPENAI_KEY_IS_PERSISTED=o}else this.OPENAI_KEY_IS_PERSISTED=!1};onMagicSettingsConfirm=(t,r,o)=>{if(this.OPENAI_KEY=t||null,this.onOpenAIKeyChange(this.OPENAI_KEY,r),o==="settings")return;let i=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});t?i.length?this.onMagicframeToolSelect():this.setActiveTool({type:"magicframe"}):fd(i[0])||this.setActiveTool({type:"magicframe"})};onMagicframeToolSelect=()=>{if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"tool"}}),Fe("ai","tool-select (missing key)","d2c");return}let t=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});if(t.length===0)this.setActiveTool({type:Xt.magicframe}),Fe("ai","tool-select (empty-selection)","d2c");else{let r=t.length===1&&fd(t[0])&&t[0];if(!r&&t.some(i=>He(i)||i.frameId)){this.setActiveTool({type:Xt.magicframe});return}Fe("ai","tool-select (existing selection)","d2c");let o;if(r)o=r;else{let[i,a,s,c]=lt(t),d=50;o=kd({...En,x:i-d,y:a-d,width:s-i+d*2,height:c-a+d*2,opacity:100,locked:!1}),this.scene.insertElement(o);for(let p of t)me(p,{frameId:o.id});this.setState({selectedElementIds:{[o.id]:!0}})}this.onMagicFrameGenerate(o,"upstream")}};openEyeDropper=({type:t})=>{zr.set(Sa,{swapPreviewOnAlt:!0,colorPickerType:t==="stroke"?"elementStroke":"elementBackground",onSelect:(r,o)=>{let i=t==="background"&&o.altKey||t==="stroke"&&!o.altKey;!this.scene.getSelectedElements(this.state).length||this.state.activeTool.type!=="selection"?i?this.syncActionResult({appState:{...this.state,currentItemStrokeColor:r},storeAction:K.CAPTURE}):this.syncActionResult({appState:{...this.state,currentItemBackgroundColor:r},storeAction:K.CAPTURE}):this.updateScene({elements:this.scene.getElementsIncludingDeleted().map(s=>this.state.selectedElementIds[s.id]?Re(s,{[i?"strokeColor":"backgroundColor"]:r}):s),storeAction:K.CAPTURE})},keepOpenOnAlt:!1})};syncActionResult=Nt(t=>{if(this.unmounted||t===!1)return;t.storeAction===K.UPDATE?this.store.shouldUpdateSnapshot():t.storeAction===K.CAPTURE&&this.store.shouldCaptureIncrement();let r=!1,o=null;if(t.elements&&(t.elements.forEach(i=>{this.state.editingElement?.id===i.id&&this.state.editingElement!==i&&sv(i)&&(o=i)}),this.scene.replaceAllElements(t.elements),r=!0),t.files&&(this.files=t.replaceFiles?t.files:{...this.files,...t.files},this.addNewImagesToImageCache()),t.appState||o||this.state.contextMenu){let i=t?.appState?.viewModeEnabled||!1,a=t?.appState?.zenModeEnabled||!1,s=t?.appState?.gridSize||null,c=t?.appState?.theme||this.props.theme||$e.LIGHT,d=t?.appState?.name??this.state.name,p=t?.appState?.errorMessage??this.state.errorMessage;typeof this.props.viewModeEnabled<"u"&&(i=this.props.viewModeEnabled),typeof this.props.zenModeEnabled<"u"&&(a=this.props.zenModeEnabled),typeof this.props.gridModeEnabled<"u"&&(s=this.props.gridModeEnabled?gi:null),o=o||t.appState?.editingElement||null,o?.isDeleted&&(o=null),this.setState(f=>Object.assign(t.appState||{},{contextMenu:null,editingElement:o,viewModeEnabled:i,zenModeEnabled:a,gridSize:s,theme:c,name:d,errorMessage:p})),r=!0}!r&&t.storeAction!==K.NONE&&this.scene.triggerUpdate()});onBlur=Nt(()=>{Yl=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=t=>{t.preventDefault()};resetHistory=()=>{this.history.clear()};resetStore=()=>{this.store.clear()};resetScene=Nt(t=>{this.scene.replaceAllElements([]),this.setState(r=>({...Is(),isLoading:t?.resetLoadingState?!1:r.isLoading,theme:this.state.theme})),this.resetStore(),this.resetHistory()});initializeScene=async()=>{"launchQueue"in window&&"LaunchParams"in window&&window.launchQueue.setConsumer(async o=>{if(!o.files.length)return;let i=o.files[0],a=await i.getFile();this.loadFileToCanvas(new File([a],a.name||"",{type:a.type}),i)}),this.props.theme&&this.setState({theme:this.props.theme}),this.state.isLoading||this.setState({isLoading:!0});let t=null;try{typeof this.props.initialData=="function"?t=await this.props.initialData()||null:t=await this.props.initialData||null,t?.libraryItems&&this.library.updateLibrary({libraryItems:t.libraryItems,merge:!0}).catch(o=>{console.error(o)})}catch(o){console.error(o),t={appState:{errorMessage:o.message||"Encountered an error during importing or restoring scene data"}}}let r=Gx(t,null,null,{repairBindings:!0});r.appState={...r.appState,theme:this.props.theme||r.appState.theme,openSidebar:r.appState?.openSidebar||this.state.openSidebar,activeTool:r.appState.activeTool.type==="image"?{...r.appState.activeTool,type:"selection"}:r.appState.activeTool,isLoading:!1,toast:this.state.toast},t?.scrollToContent&&(r.appState={...r.appState,...hl(r.elements,{...r.appState,width:this.state.width,height:this.state.height,offsetTop:this.state.offsetTop,offsetLeft:this.state.offsetLeft})}),this.fonts.loadFontsForElements(r.elements),this.resetStore(),this.resetHistory(),this.syncActionResult({...r,storeAction:K.UPDATE})};isMobileBreakpoint=(t,r)=>t<gS||r<bS&&t<hS;refreshViewportBreakpoints=()=>{if(!this.excalidrawContainerRef.current)return;let{clientWidth:r,clientHeight:o}=document.body,i=this.device.viewport,a=ss(i,{isLandscape:r>o,isMobile:this.isMobileBreakpoint(r,o)});return i!==a?(this.device={...this.device,viewport:a},!0):!1};refreshEditorBreakpoints=()=>{let t=this.excalidrawContainerRef.current;if(!t)return;let{width:r,height:o}=t.getBoundingClientRect(),i=this.props.UIOptions.dockedSidebarBreakpoint!=null?this.props.UIOptions.dockedSidebarBreakpoint:xS,a=this.device.editor,s=ss(a,{isMobile:this.isMobileBreakpoint(r,o),canFitSidebar:r>i});return a!==s?(this.device={...this.device,editor:s},!0):!1};async componentDidMount(){if(this.unmounted=!1,this.excalidrawContainerValue.container=this.excalidrawContainerRef.current,_.MODE===Qb.TEST||_.DEV){let r=this.setState.bind(this);Object.defineProperties(window.h,{state:{configurable:!0,get:()=>this.state},setState:{configurable:!0,value:(...o)=>this.setState(...o)},app:{configurable:!0,value:this},history:{configurable:!0,value:this.history},store:{configurable:!0,value:this.store}})}this.store.onStoreIncrementEmitter.on(r=>{this.history.record(r.elementsChange,r.appStateChange)}),this.scene.onUpdate(this.triggerRender),this.addEventListeners(),this.props.autoFocus&&this.excalidrawContainerRef.current&&this.focusContainer(),dd()||(this.refreshViewportBreakpoints(),this.refreshEditorBreakpoints()),ed&&this.excalidrawContainerRef.current&&(this.resizeObserver=new ResizeObserver(()=>{this.refreshEditorBreakpoints(),this.updateDOMRect()}),this.resizeObserver?.observe(this.excalidrawContainerRef.current)),new URLSearchParams(window.location.search.slice(1)).has("web-share-target")?this.restoreFileFromShare():this.updateDOMRect(this.initializeScene),eS()&&!UC()&&this.setState({errorMessage:(0,Ze.jsx)(PM,{})})}componentWillUnmount(){window.launchQueue?.setConsumer(()=>{}),this.renderer.destroy(),this.scene.destroy(),this.scene=new Yo,this.fonts=new Am({scene:this.scene}),this.renderer=new Pm(this.scene),this.files={},this.imageCache.clear(),this.resizeObserver?.disconnect(),this.unmounted=!0,this.removeEventListeners(),this.library.destroy(),this.laserTrails.stop(),this.eraserTrail.stop(),this.onChangeEmitter.clear(),this.store.onStoreIncrementEmitter.clear(),An.destroy(),dn.destroy(),clearTimeout(za),ft.clearCache(),Ar.clearCache(),za=0,document.documentElement.style.overscrollBehaviorX=""}onResize=Nt(()=>{this.scene.getElementsIncludingDeleted().forEach(t=>An.delete(t)),this.refreshViewportBreakpoints(),this.updateDOMRect(),ed||this.refreshEditorBreakpoints(),this.setState({})});onFullscreenChange=()=>{!document.fullscreenElement&&this.state.activeEmbeddable?.state==="active"&&this.setState({activeEmbeddable:null})};removeEventListeners(){this.onRemoveEventListenersEmitter.trigger()}addEventListeners(){this.removeEventListeners(),this.props.handleKeyboardGlobally&&this.onRemoveEventListenersEmitter.once(Gt(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(Gt(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),Gt(window,"message",this.onWindowMessage,!1),Gt(document,"pointerup",this.removePointer),Gt(document,"copy",this.onCopy),Gt(document,"keyup",this.onKeyUp,{passive:!0}),Gt(document,"pointermove",this.updateCurrentCursorPosition),Gt(document.fonts,"loadingdone",t=>{let r=t.fontfaces;this.fonts.onFontsLoaded(r)}),Gt(document,"gesturestart",this.onGestureStart,!1),Gt(document,"gesturechange",this.onGestureChange,!1),Gt(document,"gestureend",this.onGestureEnd,!1),Gt(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null),this.triggerRender(!0)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(Gt(document,"fullscreenchange",this.onFullscreenChange),Gt(document,"paste",this.pasteFromClipboard),Gt(document,"cut",this.onCut),Gt(window,"resize",this.onResize,!1),Gt(window,"unload",this.onUnload,!1),Gt(window,"blur",this.onBlur,!1),Gt(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),Gt(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(Gt(MS(this.excalidrawContainerRef.current),"scroll",this.onScroll)))}componentDidUpdate(t,r){this.updateEmbeddables();let o=this.scene.getElementsIncludingDeleted(),i=this.scene.getElementsMapIncludingDeleted(),a=this.scene.getNonDeletedElementsMap();!this.state.showWelcomeScreen&&!o.length&&this.setState({showWelcomeScreen:!0}),t.UIOptions.dockedSidebarBreakpoint!==this.props.UIOptions.dockedSidebarBreakpoint&&this.refreshEditorBreakpoints(),r.userToFollow&&!this.state.collaborators.has(r.userToFollow.socketId)&&this.maybeUnfollowRemoteUser(),(r.zoom.value!==this.state.zoom.value||r.scrollX!==this.state.scrollX||r.scrollY!==this.state.scrollY)&&(this.props?.onScrollChange?.(this.state.scrollX,this.state.scrollY,this.state.zoom),this.onScrollChangeEmitter.trigger(this.state.scrollX,this.state.scrollY,this.state.zoom)),r.userToFollow!==this.state.userToFollow&&(r.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:r.userToFollow,action:"UNFOLLOW"}),this.state.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:this.state.userToFollow,action:"FOLLOW"})),Object.keys(this.state.selectedElementIds).length&&Zo(this.state)&&this.setState({activeTool:Ut(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&r.theme!==this.state.theme&&e2(this.interactiveCanvas,this.state.theme),r.activeTool.type==="selection"&&this.state.activeTool.type!=="selection"&&this.state.showHyperlinkPopup&&this.setState({showHyperlinkPopup:!1}),t.langCode!==this.props.langCode&&this.updateLanguage(),Zo(r)&&!Zo(this.state)&&this.eraserTrail.endPath(),t.viewModeEnabled!==this.props.viewModeEnabled&&this.setState({viewModeEnabled:!!this.props.viewModeEnabled}),r.viewModeEnabled!==this.state.viewModeEnabled&&(this.addEventListeners(),this.deselectElements()),t.zenModeEnabled!==this.props.zenModeEnabled&&this.setState({zenModeEnabled:!!this.props.zenModeEnabled}),t.theme!==this.props.theme&&this.props.theme&&this.setState({theme:this.props.theme}),t.gridModeEnabled!==this.props.gridModeEnabled&&this.setState({gridSize:this.props.gridModeEnabled?gi:null}),this.excalidrawContainerRef.current?.classList.toggle("theme--dark",this.state.theme===$e.DARK),this.state.editingLinearElement&&!this.state.selectedElementIds[this.state.editingLinearElement.elementId]&&setTimeout(()=>{this.state.editingLinearElement&&this.actionManager.executeAction(tn)}),this.state.editingElement?.isDeleted&&this.setState({editingElement:null}),this.state.selectedLinearElement&&!this.state.selectedElementIds[this.state.selectedLinearElement.elementId]&&this.setState({selectedLinearElement:null});let{multiElement:c}=r;r.activeTool!==this.state.activeTool&&c!=null&&cl(this.state)&&hi(c,!1)&&Td(c,this.state,cd(Le.getPointAtIndexGlobalCoordinates(c,-1,a)),this.scene.getNonDeletedElementsMap()),this.store.commit(i,this.state),this.state.isLoading||(this.props.onChange?.(o,this.state,this.files),this.onChangeEmitter.trigger(o,this.state,this.files))}renderInteractiveSceneCallback=({atLeastOneVisibleElement:t,scrollBars:r,elementsMap:o})=>{r&&(QE=r);let i=ge(this.state.editingElement)?!1:!t&&o.size>0;this.state.scrolledOutside!==i&&this.setState({scrolledOutside:i}),this.scheduleImageRefresh()};onScroll=ld(()=>{let{offsetTop:t,offsetLeft:r}=this.getCanvasOffsets();this.setState(o=>o.offsetLeft===r&&o.offsetTop===t?null:{offsetTop:t,offsetLeft:r})},uS);onCut=Nt(t=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Ko(t.target)||(this.actionManager.executeAction(jf,"keyboard",t),t.preventDefault(),t.stopPropagation())});onCopy=Nt(t=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Ko(t.target)||(this.actionManager.executeAction(sc,"keyboard",t),t.preventDefault(),t.stopPropagation())});static resetTapTwice(){Nm=!1}onTouchStart=t=>{if(Q1&&t.preventDefault(),!Nm){Nm=!0,clearTimeout(jE),jE=window.setTimeout(e.resetTapTwice,dS);return}if(Nm&&t.touches.length===1){let r=t.touches[0];this.handleCanvasDoubleClick({clientX:r.clientX,clientY:r.clientY}),Nm=!1,clearTimeout(jE)}t.touches.length===2&&this.setState({selectedElementIds:gt({},this.state),activeEmbeddable:null})};onTouchEnd=t=>{this.resetContextMenuTimer(),t.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:gt(this.state.previousSelectedElementIds,this.state)}):at.pointers.clear()};pasteFromClipboard=Nt(async t=>{let r=!!bh,o=document.activeElement,i=this.excalidrawContainerRef.current?.contains(o);if(t&&!i)return;let a=document.elementFromPoint(this.lastViewportPosition.x,this.lastViewportPosition.y);if(t&&(!(a instanceof HTMLCanvasElement)||Ko(o)))return;let{x:s,y:c}=Mt({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),d=t?.clipboardData?.files[0],p=await Kp(t,r);if(!d&&!r){if(p.mixedContent)return this.addElementsFromMixedContentPaste(p.mixedContent,{isPlainPaste:r,sceneX:s,sceneY:c});if(p.text){let f=p.text.trim();f.startsWith("<svg")&&f.endsWith("</svg>")&&(d=Yx(f))}}if(zp(d)&&!p.spreadsheet){if(!this.isToolSupported("image")){this.setState({errorMessage:y("errors.imageToolNotSupported")});return}let f=this.createImageElement({sceneX:s,sceneY:c});this.insertImageElement(f,d),this.initializeImageDimensions(f),this.setState({selectedElementIds:gt({[f.id]:!0},this.state)});return}if(this.props.onPaste)try{if(await this.props.onPaste(p,t)===!1)return}catch(f){console.error(f)}if(p.errorMessage)this.setState({errorMessage:p.errorMessage});else if(p.spreadsheet&&!r)this.setState({pasteDialog:{data:p.spreadsheet,shown:!0}});else if(p.elements){let f=p.programmaticAPI?Tc(p.elements):p.elements;this.addElementsFromPasteOrLibrary({elements:f,files:p.files||null,position:"cursor",retainSeed:r})}else if(p.text){if(p.text&&tP(p.text)){let g=await import("./excalidraw-assets/dist-567JAXHK.js");try{let{elements:h,files:x}=await g.parseMermaidToExcalidraw(p.text,{fontSize:wn}),E=Tc(h,{regenerateIds:!0});this.addElementsFromPasteOrLibrary({elements:E,files:x,position:"cursor"});return}catch(h){console.warn(`parsing pasted text as mermaid definition failed: ${h.message}`)}}let f=BS(p.text).split(/\n+/).map(g=>g.trim()).filter(Boolean),u=f.map(g=>i2(g)).filter(g=>ks(g,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(g)||pl(g)?.type==="video"));if(!bh&&u.length>0&&u.length===f.length){let g=[];for(let h of u){let x=g[g.length-1],E=this.insertEmbeddableElement({sceneX:x?x.x+x.width+20:s,sceneY:c,link:Ti(h)});E&&g.push(E)}g.length&&this.setState({selectedElementIds:Object.fromEntries(g.map(h=>[h.id,!0]))});return}this.addTextFromPaste(p.text,r)}this.setActiveTool({type:"selection"}),t?.preventDefault()});addElementsFromPasteOrLibrary=t=>{let r=Ux(t.elements,null,void 0),[o,i,a,s]=lt(r),c=ol(o,a)/2,d=ol(i,s)/2,p=typeof t.position=="object"?t.position.clientX:t.position==="cursor"?this.lastViewportPosition.x:this.state.width/2+this.state.offsetLeft,f=typeof t.position=="object"?t.position.clientY:t.position==="cursor"?this.lastViewportPosition.y:this.state.height/2+this.state.offsetTop,{x:u,y:g}=Mt({clientX:p,clientY:f},this.state),h=u-c,x=g-d,[E,T]=eo(h,x,this.state.gridSize),M=Op(r.map(R=>Re(R,{x:R.x+E-o,y:R.y+T-i})),{randomizeSeed:!t.retainSeed}),A=[...this.scene.getElementsIncludingDeleted(),...M];_o(A,Pe(M));let N=this.getTopLayerFrameAtSceneCoords({x:u,y:g});if(N){let R=O2(M,N);Xp(A,R,N)}this.scene.replaceAllElements(A),M.forEach(R=>{if(ge(R)&&yr(R)){let F=Ei(R,this.scene.getElementsMapIncludingDeleted());er(R,F,this.scene.getElementsMapIncludingDeleted())}}),t.files&&(this.files={...this.files,...t.files}),this.store.shouldCaptureIncrement();let U=Ns(M);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&zr.get(ym)?this.state.openSidebar:null,...Ar({editingGroupId:null,selectedElementIds:U.reduce((R,F)=>(yr(F)||(R[F.id]=!0),R),{})},this.scene.getNonDeletedElements(),this.state,this)},()=>{t.files&&this.addNewImagesToImageCache()}),this.setActiveTool({type:"selection"}),t.fitToContent&&this.scrollToContent(M,{fitToContent:!0})};async addElementsFromMixedContentPaste(t,{isPlainPaste:r,sceneX:o,sceneY:i}){if(!r&&t.some(a=>a.type==="imageUrl")&&this.isToolSupported("image")){let a=t.filter(u=>u.type==="imageUrl").map(u=>u.value),s=await Promise.all(a.map(async u=>{try{return{file:await m2(u)}}catch(g){let h=g.message;return g.cause==="FETCH_ERROR"?h=y("errors.failedToFetchImage"):g.cause==="UNSUPPORTED"&&(h=y("errors.unsupportedFileType")),{errorMessage:h}}})),c=i,d=!1,p={};for(let u of s)if(u.file){let g=this.createImageElement({sceneX:o,sceneY:c}),h=await this.insertImageElement(g,u.file);h&&(d||(d=!0,c-=h.height/2),me(h,{y:c},!1),c=g.y+g.height+25,p[g.id]=!0)}this.setState({selectedElementIds:gt(p,this.state)});let f=s.find(u=>!!u.errorMessage);f&&f.errorMessage&&this.setState({errorMessage:f.errorMessage})}else{let a=t.filter(s=>s.type==="text");a.length&&this.addTextFromPaste(a.map(s=>s.value).join(`
166
185
 
167
- `),o)}}addTextFromPaste(e,o=!1){let{x:r,y:n}=Ye({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),i={x:r,y:n,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roundness:null,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,text:e,fontSize:this.state.currentItemFontSize,fontFamily:this.state.currentItemFontFamily,textAlign:this.state.currentItemTextAlign,verticalAlign:zp,locked:!1},a=10,l=n,s=o?[e]:e.split(`
168
- `),d=s.reduce((c,m,u)=>{let f=m.trim(),b=Or(i.fontFamily);if(f.length){let x=this.getTopLayerFrameAtSceneCoords({x:r,y:l}),E=gn({...i,x:r,y:l,text:f,lineHeight:b,frameId:x?x.id:null});c.push(E),l+=E.height+a}else s[u-1]?.trim()&&(l+=fb(i.fontSize,b)+a);return c},[]);d.length!==0&&(this.scene.insertElements(d),this.setState({selectedElementIds:Be(Object.fromEntries(d.map(c=>[c.id,!0])),this.state)}),!o&&d.length>1&&s6===!1&&!this.device.editor.isMobile&&(this.setToast({message:g("toast.pasteAsSingleElement",{shortcut:F("CtrlOrCmd+Shift+V")}),duration:5e3}),s6=!0),this.store.shouldCaptureIncrement())}setAppState=(e,o)=>{this.setState(e,o)};removePointer=e=>{Un&&this.resetContextMenuTimer(),Pe.pointers.delete(e.pointerId)};toggleLock=(e="ui")=>{this.state.activeTool.locked||xe("toolbar","toggleLock",`${e} (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setState(o=>({activeTool:{...o.activeTool,...it(this.state,o.activeTool.locked?{type:"selection"}:o.activeTool),locked:!o.activeTool.locked}}))};updateFrameRendering=e=>{this.setState(o=>{let r=typeof e=="function"?e(o.frameRendering):e;return{frameRendering:{enabled:r?.enabled??o.frameRendering.enabled,clip:r?.clip??o.frameRendering.clip,name:r?.name??o.frameRendering.name,outline:r?.outline??o.frameRendering.outline}}})};togglePenMode=e=>{this.setState(o=>({penMode:e??!o.penMode,penDetected:!0}))};onHandToolToggle=()=>{this.actionManager.executeAction(iy)};zoomCanvas=e=>{this.setState({...Ur({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Hr(e)},this.state)})};cancelInProgressAnimation=null;scrollToContent=(e=this.scene.getNonDeletedElements(),o)=>{this.cancelInProgressAnimation?.();let r=Array.isArray(e)?e:[e],n=this.state.zoom,i=this.state.scrollX,a=this.state.scrollY;if(o?.fitToContent||o?.fitToViewport){let{appState:l}=is({targetElements:r,appState:this.state,fitToViewport:!!o?.fitToViewport,viewportZoomFactor:o?.viewportZoomFactor});n=l.zoom,i=l.scrollX,a=l.scrollY}else{let l=oi(r,this.state);i=l.scrollX,a=l.scrollY}if(o?.animate){let l=this.state.scrollX,s=this.state.scrollY,d=this.state.zoom.value,c=$1({fromValues:{scrollX:l,scrollY:s,zoom:d},toValues:{scrollX:i,scrollY:a,zoom:n.value},interpolateValue:(m,u,f,b)=>{if(b==="zoom")return m*Math.pow(u/m,Yn(f))},onStep:({scrollX:m,scrollY:u,zoom:f})=>{this.setState({scrollX:m,scrollY:u,zoom:{value:f}})},onStart:()=>{this.setState({shouldCacheIgnoreZoom:!0})},onEnd:()=>{this.setState({shouldCacheIgnoreZoom:!1})},onCancel:()=>{this.setState({shouldCacheIgnoreZoom:!1})},duration:o?.duration??500});this.cancelInProgressAnimation=()=>{c(),this.cancelInProgressAnimation=null}}else this.setState({scrollX:i,scrollY:a,zoom:n})};maybeUnfollowRemoteUser=()=>{this.state.userToFollow&&this.setState({userToFollow:null})};translateCanvas=e=>{this.cancelInProgressAnimation?.(),this.maybeUnfollowRemoteUser(),this.setState(e)};setToast=e=>{this.setState({toast:e})};restoreFileFromShare=async()=>{try{let e=await caches.open("web-share-target"),o=await e.match("shared-file");if(o){let r=await o.blob(),n=new File([r],r.name||"",{type:r.type});this.loadFileToCanvas(n,null),await e.delete("shared-file"),window.history.replaceState(null,ll,window.location.pathname)}}catch(e){this.setState({errorMessage:e.message})}};addFiles=Qe(e=>{let o=e.reduce((r,n)=>(r.set(n.id,n),r),new Map);this.files={...this.files,...Object.fromEntries(o)},this.scene.getNonDeletedElements().forEach(r=>{bl(r)&&o.has(r.fileId)&&(this.imageCache.delete(r.fileId),Lo.delete(r))}),this.scene.informMutation(),this.addNewImagesToImageCache()});updateScene=Qe(e=>{let o=pn(e.elements??[]);if(e.storeAction&&e.storeAction!==P.NONE){let r=this.store.snapshot.appState,n=this.store.snapshot.elements,i=e.appState?Object.assign({},r,e.appState):r,a=e.elements?this.store.filterUncomittedElements(this.scene.getElementsMapIncludingDeleted(),pe(o)):n;e.storeAction===P.CAPTURE?this.store.captureIncrement(a,i):e.storeAction===P.UPDATE&&this.store.updateSnapshot(a,i)}e.appState&&this.setState(e.appState),e.elements&&this.scene.replaceAllElements(o),e.collaborators&&this.setState({collaborators:e.collaborators})});onSceneUpdated=()=>{this.setState({})};toggleSidebar=({name:e,tab:o,force:r})=>{let n;r===void 0?n=this.state.openSidebar?.name===e&&this.state.openSidebar?.tab===o?null:e:n=r?e:null;let i=n?{name:n}:null;return i&&o&&(i.tab=o),this.setState({openSidebar:i}),!!n};updateCurrentCursorPosition=Qe(e=>{this.lastViewportPosition.x=e.clientX,this.lastViewportPosition.y=e.clientY});onKeyDown=Qe(e=>{if("Proxy"in window&&(!e.shiftKey&&/^[A-Z]$/.test(e.key)||e.shiftKey&&/^[a-z]$/.test(e.key))&&(e=new Proxy(e,{get(i,a){let l=i[a];return typeof l=="function"?l.bind(i):a==="key"?e.shiftKey?i.key.toUpperCase():i.key.toLowerCase():l}})),e[S.CTRL_OR_CMD]&&e.key===S.P&&!e.shiftKey&&!e.altKey){this.setToast({message:g("commandPalette.shortcutHint",{shortcut:wt("commandPalette")})}),e.preventDefault();return}if(e[S.CTRL_OR_CMD]&&e.key.toLowerCase()===S.V&&(kp=e.shiftKey,clearTimeout(l6),l6=window.setTimeout(()=>{kp=!1},100)),e[S.CTRL_OR_CMD]&&To(e.target)&&(e.code===fe.MINUS||e.code===fe.EQUAL)){e.preventDefault();return}if(To(e.target)&&e.key!==S.ESCAPE||Wi(e.key)&&B1(e.target))return;if(e.key===S.QUESTION_MARK){this.setState({openDialog:{name:"help"}});return}else if(e.key.toLowerCase()===S.E&&e.shiftKey&&e[S.CTRL_OR_CMD]){e.preventDefault(),this.setState({openDialog:{name:"imageExport"}});return}if(e.key===S.PAGE_UP||e.key===S.PAGE_DOWN){let i=(e.shiftKey?this.state.width:this.state.height)/this.state.zoom.value;e.key===S.PAGE_DOWN&&(i=-i),e.shiftKey?this.translateCanvas(a=>({scrollX:a.scrollX+i})):this.translateCanvas(a=>({scrollY:a.scrollY+i}))}if(this.actionManager.handleKeyDown(e)||this.state.viewModeEnabled)return;if(e[S.CTRL_OR_CMD]&&this.state.isBindingEnabled&&this.setState({isBindingEnabled:!1}),Wi(e.key)){let i=this.state.gridSize&&(e.shiftKey?Op:this.state.gridSize)||(e.shiftKey?p1:Op),a=0,l=0;e.key===S.ARROW_LEFT?a=-i:e.key===S.ARROW_RIGHT?a=i:e.key===S.ARROW_UP?l=-i:e.key===S.ARROW_DOWN&&(l=i);let s=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});s.forEach(d=>{re(d,{x:d.x+a,y:d.y+l}),ou(d,this.scene.getNonDeletedElementsMap(),{simultaneouslyUpdated:s})}),this.maybeSuggestBindingForAll(s),e.preventDefault()}else if(e.key===S.ENTER){let i=this.scene.getSelectedElements(this.state);if(i.length===1){let a=i[0];if(e[S.CTRL_OR_CMD])$e(a)&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==i[0].id)&&(this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new ue(a)}));else if(se(a)||Cb(a)){let l;se(a)||(l=a);let s=Cc(a,this.state,this.scene.getNonDeletedElementsMap()),d=s.x,c=s.y;this.startTextEditing({sceneX:d,sceneY:c,container:l}),e.preventDefault();return}else Ee(a)&&this.setState({editingFrame:a.id})}}else if(!e.ctrlKey&&!e.altKey&&!e.metaKey&&this.state.draggingElement===null){let i=Iw(e.key);i?(this.state.activeTool.type!==i&&xe("toolbar",i,`keyboard (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setActiveTool({type:i}),e.stopPropagation()):e.key===S.Q&&(this.toggleLock("keyboard"),e.stopPropagation())}if(e.key===S.SPACE&&Pe.pointers.size===0&&(Ri=!0,Oe(this.interactiveCanvas,Ne.GRAB),e.preventDefault()),(e.key===S.G||e.key===S.S)&&!e.altKey&&!e[S.CTRL_OR_CMD]){let i=this.scene.getSelectedElements(this.state);if(this.state.activeTool.type==="selection"&&!i.length)return;e.key===S.G&&(fn(this.state.activeTool.type)||i.some(a=>fn(a.type)))&&(this.setState({openPopup:"elementBackground"}),e.stopPropagation()),e.key===S.S&&(this.setState({openPopup:"elementStroke"}),e.stopPropagation())}if(e.key===S.K&&!e.altKey&&!e[S.CTRL_OR_CMD]){this.state.activeTool.type==="laser"?this.setActiveTool({type:"selection"}):this.setActiveTool({type:"laser"});return}e[S.CTRL_OR_CMD]&&(e.key===S.BACKSPACE||e.key===S.DELETE)&&Gt.set(Ti,"clearCanvas");let o=e.key.toLocaleLowerCase(),r=o===S.S&&e.shiftKey,n=e.key===S.I||o===S.G&&e.shiftKey;(r||n)&&this.openEyeDropper({type:r?"stroke":"background"})});onWheel=Qe(e=>{!(e.target instanceof HTMLCanvasElement)&&e.ctrlKey&&e.preventDefault()});onKeyUp=Qe(e=>{if(e.key===S.SPACE&&(this.state.viewModeEnabled?Oe(this.interactiveCanvas,Ne.GRAB):this.state.activeTool.type==="selection"?Mo(this.interactiveCanvas):(qo(this.interactiveCanvas,this.state),this.setState({selectedElementIds:Be({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),Ri=!1),!e[S.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),Wi(e.key)){let o=this.scene.getSelectedElements(this.state),r=this.scene.getNonDeletedElementsMap();qn(this.state)?Cl(o,this):Tl(o,r),this.setState({suggestedBindings:[]})}});isToolSupported=e=>this.props.UIOptions.tools?.[e]!==!1;setActiveTool=e=>{if(!this.isToolSupported(e.type)){console.warn(`"${e.type}" tool is disabled via "UIOptions.canvasActions.tools.${e.type}"`);return}let o=it(this.state,e);o.type==="hand"?Oe(this.interactiveCanvas,Ne.GRAB):Ri||qo(this.interactiveCanvas,this.state),F1(document.activeElement)&&this.focusContainer(),q1(o.type)||this.setState({suggestedBindings:[]}),o.type==="image"&&this.onImageAction({insertOnCanvasDirectly:(e.type==="image"&&e.insertOnCanvasDirectly)??!1}),this.setState(r=>{let n={snapLines:r.snapLines.length?[]:r.snapLines,originSnapOffset:null,activeEmbeddable:null};return o.type==="freedraw"&&this.store.shouldCaptureIncrement(),o.type!=="selection"?{...r,activeTool:o,selectedElementIds:Be({},r),selectedGroupIds:Be({},r),editingGroupId:null,multiElement:null,...n}:{...r,activeTool:o,...n}})};setOpenDialog=e=>{this.setState({openDialog:e})};setCursor=e=>{Oe(this.interactiveCanvas,e)};resetCursor=()=>{Mo(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>Pe.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${g("labels.untitled")}-${Vp()}`;onGestureStart=Qe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:Be({},this.state),activeEmbeddable:null}),Pe.initialScale=this.state.zoom.value});onGestureChange=Qe(e=>{if(e.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let o=Pe.initialScale;o&&this.setState(r=>({...Ur({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Hr(o*e.scale)},r)}))});onGestureEnd=Qe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:Be(this.state.previousSelectedElementIds,this.state)}),Pe.initialScale=null});handleTextWysiwyg(e,{isExistingElement:o=!1}){let r=this.scene.getElementsMapIncludingDeleted(),n=(i,a,l)=>{this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted().map(s=>s.id===e.id&&se(s)?Bb(s,Nr(s,r),r,{text:i,isDeleted:l,originalText:a}):s)])};a6({id:e.id,canvas:this.canvas,getViewportCoords:(i,a)=>{let{x:l,y:s}=Qt({sceneX:i,sceneY:a},this.state);return[l-this.state.offsetLeft,s-this.state.offsetTop]},onChange:Qe(i=>{n(i,i,!1),Mu(e)&&ou(e,r)}),onSubmit:Qe(({text:i,viaKeyboard:a,originalText:l})=>{let s=!i.trim();if(n(i,l,s),!s&&a){let d=e.containerId?e.containerId:e.id;this.setState(c=>({selectedElementIds:Be({...c.selectedElementIds,[d]:!0},c)}))}s&&vc(this.scene.getNonDeletedElements(),[e]),(!s||o)&&this.store.shouldCaptureIncrement(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&qo(this.interactiveCanvas,this.state),this.focusContainer()}),element:e,excalidrawContainer:this.excalidrawContainerRef.current,app:this}),this.deselectElements(),n(e.text,e.originalText,!1)}deselectElements(){this.setState({selectedElementIds:Be({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})}getTextElementAtPosition(e,o){let r=this.getElementAtPosition(e,o,{includeBoundTextElement:!0});return r&&se(r)&&!r.isDeleted?r:null}getElementShape(e){switch(e.type){case"rectangle":case"diamond":case"frame":case"magicframe":case"embeddable":case"image":case"iframe":case"text":case"selection":return t0(e);case"arrow":case"line":{let o=Lo.get(e)?.[0]??Lo.generateElementShape(e,null)[0],[,,,,r,n]=Wt(e,this.scene.getNonDeletedElementsMap());return gu(e)?a0(e,o,[e.x,e.y],e.angle,[r,n]):n0(o,[e.x,e.y],e.angle,[r,n])}case"ellipse":return r0(e);case"freedraw":{let[,,,,o,r]=Wt(e,this.scene.getNonDeletedElementsMap());return i0(e,[o,r],gu(e))}}}getBoundTextShape(e){let o=ct(e,this.scene.getNonDeletedElementsMap());return o?e.type==="arrow"?this.getElementShape({...o,...ue.getBoundTextElementPosition(e,o,this.scene.getNonDeletedElementsMap())}):this.getElementShape(o):null}getElementAtPosition(e,o,r){let n=this.getElementsAtPosition(e,o,r?.includeBoundTextElement,r?.includeLockedElements);if(n.length>1){if(r?.preferSelected){for(let a=n.length-1;a>-1;a--)if(this.state.selectedElementIds[n[a].id])return n[a]}let i=n[n.length-1];return Xi({x:e,y:o,element:i,shape:this.getElementShape(i),threshold:this.getElementHitThreshold()/2,frameNameBound:Ee(i)?this.frameNameBoundsCache.get(i):null})?i:n[n.length-2]}return n.length===1?n[0]:null}getElementsAtPosition(e,o,r=!1,n=!1){let i=[],a=this.scene.getNonDeletedElementsMap();return(r&&n?this.scene.getNonDeletedElements():this.scene.getNonDeletedElements().filter(s=>(n||!s.locked)&&(r||!(se(s)&&s.containerId)))).filter(s=>this.hitElement(e,o,s)).filter(s=>{let d=Uc(s,a);return d&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?vu({x:e,y:o},d,a):!0}).filter(s=>Xn(s)?(i.push(s),!1):!0).concat(i)}getElementHitThreshold(){return h1/this.state.zoom.value}hitElement(e,o,r,n=!0){if(n&&this.state.selectedElementIds[r.id]&&Zc([r],this.state)){let a=o0(r,this.scene.getNonDeletedElementsMap(),this.getElementHitThreshold());return lb([e,o],a)}return c0(e,o,this.getBoundTextShape(r))?!0:Xi({x:e,y:o,element:r,shape:this.getElementShape(r),threshold:this.getElementHitThreshold(),frameNameBound:Ee(r)?this.frameNameBoundsCache.get(r):null})}getTextBindableContainerAtPosition(e,o){let r=this.scene.getNonDeletedElements(),n=this.scene.getSelectedElements(this.state);if(n.length===1)return Rr(n[0],!1)?n[0]:null;let i=null;for(let a=r.length-1;a>=0;--a){if(r[a].isDeleted)continue;let[l,s,d,c]=Wt(r[a],this.scene.getNonDeletedElementsMap());if(ur(r[a])&&Xi({x:e,y:o,element:r[a],shape:this.getElementShape(r[a]),threshold:this.getElementHitThreshold()})){i=r[a];break}else if(l<e&&e<d&&s<o&&o<c){i=r[a];break}}return Rr(i,!1)?i:null}startTextEditing=({sceneX:e,sceneY:o,insertAtParentCenter:r=!0,container:n})=>{let i=!1,a=r&&this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n);n&&a&&(ct(n,this.scene.getNonDeletedElementsMap())||(i=!0));let l=null,s=this.scene.getSelectedElements(this.state);s.length===1?se(s[0])?l=s[0]:n?l=ct(s[0],this.scene.getNonDeletedElementsMap()):l=this.getTextElementAtPosition(e,o):l=this.getTextElementAtPosition(e,o);let d=l?.fontFamily||this.state.currentItemFontFamily,c=l?.lineHeight||Or(d),m=this.state.currentItemFontSize;if(!l&&i&&n&&!ur(n)){let x=xb(Xo({fontSize:m,fontFamily:d}),c),E=hb(m,c),T=Math.max(n.height,E),C=Math.max(n.width,x);re(n,{height:T,width:C}),e=n.x+C/2,o=n.y+T/2,a&&(a=this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n))}let u=this.getTopLayerFrameAtSceneCoords({x:e,y:o}),f=l||gn({x:a?a.elementCenterX:e,y:a?a.elementCenterY:o,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,text:"",fontSize:m,fontFamily:d,textAlign:a?"center":this.state.currentItemTextAlign,verticalAlign:a?wo.MIDDLE:zp,containerId:i?n?.id:void 0,groupIds:n?.groupIds??[],lineHeight:c,angle:n?.angle??0,frameId:u?u.id:null});if(!l&&i&&n&&re(n,{boundElements:(n.boundElements||[]).concat({type:"text",id:f.id})}),this.setState({editingElement:f}),!l)if(n&&i){let b=this.scene.getElementIndex(n.id);this.scene.insertElementAtIndex(f,b+1)}else this.scene.insertElement(f);this.setState({editingElement:f}),this.handleTextWysiwyg(f,{isExistingElement:!!l})};handleCanvasDoubleClick=e=>{if(this.state.multiElement||this.state.activeTool.type!=="selection")return;let o=this.scene.getSelectedElements(this.state);if(o.length===1&&$e(o[0])&&e[S.CTRL_OR_CMD]&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==o[0].id)){this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new ue(o[0])});return}Mo(this.interactiveCanvas);let{x:r,y:n}=Ye(e,this.state);if(Br(this.state).length>0){let a=this.getElementAtPosition(r,n),l=a&&_b(a,this.state.selectedGroupIds);if(l){this.store.shouldCaptureIncrement(),this.setState(s=>({...s,...Nt({editingGroupId:l,selectedElementIds:{[a.id]:!0}},this.scene.getNonDeletedElements(),s,this)}));return}}if(Mo(this.interactiveCanvas),!e[S.CTRL_OR_CMD]&&!this.state.viewModeEnabled){let a=this.getElementAtPosition(r,n);if(zi(a)){this.setState({activeEmbeddable:{element:a,state:"active"}});return}let l=this.getTextBindableContainerAtPosition(r,n);if(l&&(fr(l)||!jn(l.backgroundColor)||Xi({x:r,y:n,element:l,shape:this.getElementShape(l),threshold:this.getElementHitThreshold()}))){let s=Cc(l,this.state,this.scene.getNonDeletedElementsMap());r=s.x,n=s.y}this.startTextEditing({sceneX:r,sceneY:n,insertAtParentCenter:!e.altKey,container:l})}};getElementLinkAtPosition=(e,o)=>{let r=this.scene.getNonDeletedElements().slice().reverse(),n=1/0;return r.find((i,a)=>(o&&i.id===o.id&&(n=a),i.link&&a<=n&&Bc(i,this.scene.getNonDeletedElementsMap(),this.state,[e.x,e.y],this.device.editor.isMobile)))};redirectToLink=(e,o)=>{let r=un(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||o&&r>Gn||!o&&r!==0)return;let n=Ye(this.lastPointerDownEvent,this.state),i=this.scene.getNonDeletedElementsMap(),a=Bc(this.hitLinkElement,i,this.state,[n.x,n.y],this.device.editor.isMobile),l=Ye(this.lastPointerUpEvent,this.state),s=Bc(this.hitLinkElement,i,this.state,[l.x,l.y],this.device.editor.isMobile);if(a&&s){let d=this.hitLinkElement.link;if(d){d=zr(d);let c;if(this.props.onLinkOpen&&(c=mc("excalidraw-link",e.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:d},c)),!c?.defaultPrevented){let m=kc(d)?"_self":"_blank",u=window.open(void 0,m);u&&(u.opener=null,u.location=d)}}}};getTopLayerFrameAtSceneCoords=e=>{let o=this.scene.getNonDeletedElementsMap(),r=this.scene.getNonDeletedFramesLikes().filter(n=>vu(e,n,o));return r.length?r[r.length-1]:null};handleCanvasPointerMove=e=>{this.savePointer(e.clientX,e.clientY,this.state.cursorButton),this.lastPointerMoveEvent=e.nativeEvent,Pe.pointers.has(e.pointerId)&&Pe.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});let o=Pe.initialScale;if(Pe.pointers.size===2&&Pe.lastCenter&&o&&Pe.initialDistance){let u=jh(Pe.pointers),f=u.x-Pe.lastCenter.x,b=u.y-Pe.lastCenter.y;Pe.lastCenter=u;let x=Xh(Array.from(Pe.pointers.values())),E=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:x/Pe.initialDistance,T=E?Hr(o*E):this.state.zoom.value;this.setState(C=>{let w=Ur({viewportX:u.x,viewportY:u.y,nextZoom:T},C);this.translateCanvas({zoom:w.zoom,scrollX:w.scrollX+f/T,scrollY:w.scrollY+b/T,shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else Pe.lastCenter=Pe.initialDistance=Pe.initialScale=null;if(Ri||$s||Fg||Fr(this.state))return;let n=Qh(Bg,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(n?Mo(this.interactiveCanvas):qo(this.interactiveCanvas,this.state));let i=Ye(e,this.state),{x:a,y:l}=i;if(!this.state.draggingElement&&F5(this.state.activeTool.type)){let{originOffset:u,snapLines:f}=O5(this.scene.getNonDeletedElements(),this.state,{x:a,y:l},e,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x=uc(b.snapLines,f),E=b.originSnapOffset?uc(b.originSnapOffset,u):u;return b.snapLines===x&&b.originSnapOffset===E?null:{snapLines:x,originSnapOffset:E}})}else this.state.draggingElement||this.setState(u=>u.snapLines.length?{snapLines:[]}:null);if(this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging){let u=ue.handlePointerMove(e,a,l,this.state,this.scene.getNonDeletedElementsMap());u&&u!==this.state.editingLinearElement&&(0,Ip.flushSync)(()=>{this.setState({editingLinearElement:u})}),u?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(i):(0,Ip.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if(J1(this.state.activeTool.type)){let{draggingElement:u}=this.state;Pr(u,!1)?this.maybeSuggestBindingsForLinearElementAtCoords(u,[i],this.state.startBoundElement):this.maybeSuggestBindingAtCursor(i)}if(this.state.multiElement){let{multiElement:u}=this.state,{x:f,y:b}=u,{points:x,lastCommittedPoint:E}=u,T=x[x.length-1];if(qo(this.interactiveCanvas,this.state),T===E)un(a-f,l-b,T[0],T[1])>=Xs?re(u,{points:[...x,[a-f,l-b]]}):Oe(this.interactiveCanvas,Ne.POINTER);else if(x.length>2&&E&&un(a-f,l-b,E[0],E[1])<Xs)Oe(this.interactiveCanvas,Ne.POINTER),re(u,{points:x.slice(0,-1)});else{let[C,w]=eo(a,l,e[S.CTRL_OR_CMD]?null:this.state.gridSize),[A,z]=u?.lastCommittedPoint??[0,0],I=C-f-A,M=w-b-z;gc(e)&&({width:I,height:M}=wu(A+f,z+b,C,w)),vl(x,this.state.zoom.value)&&Oe(this.interactiveCanvas,Ne.POINTER),re(u,{points:[...x.slice(0,-1),[A+I,z+M]]})}return}if(!!e.buttons||this.state.activeTool.type!=="selection"&&this.state.activeTool.type!=="text"&&this.state.activeTool.type!=="eraser")return;let d=this.scene.getNonDeletedElements(),c=this.scene.getSelectedElements(this.state);if(c.length===1&&!n&&!this.state.editingLinearElement){if(this.state.selectedLinearElement&&this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,a,l),!this.state.selectedLinearElement||this.state.selectedLinearElement.hoverPointIndex===-1){let u=Cu(d,this.state,a,l,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap(),this.device);if(u&&u.transformHandleType){Oe(this.interactiveCanvas,Tu(u));return}}}else if(c.length>1&&!n){let u=Su(Ze(c),a,l,this.state.zoom,e.pointerType,this.device);if(u){Oe(this.interactiveCanvas,Tu({transformHandleType:u}));return}}let m=this.getElementAtPosition(i.x,i.y);this.hitLinkElement=this.getElementLinkAtPosition(i,m),!Ao(this.state)&&(this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?(Oe(this.interactiveCanvas,Ne.POINTER),Ay(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(My(),m&&(m.link||Ht(m))&&this.state.selectedElementIds[m.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?Oe(this.interactiveCanvas,se(m)?Ne.TEXT:Ne.CROSSHAIR):this.state.viewModeEnabled?Oe(this.interactiveCanvas,Ne.GRAB):n?Oe(this.interactiveCanvas,Ne.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,a,l):e[S.CTRL_OR_CMD]?Oe(this.interactiveCanvas,Ne.AUTO):(m||this.isHittingCommonBoundingBoxOfSelectedElements(i,c))&&!m?.locked&&(m&&zi(m)&&this.isIframeLikeElementCenter(m,e,a,l)?(Oe(this.interactiveCanvas,Ne.POINTER),this.setState({activeEmbeddable:{element:m,state:"hover"}})):(Oe(this.interactiveCanvas,Ne.MOVE),this.state.activeEmbeddable?.state==="hover"&&this.setState({activeEmbeddable:null})))))};handleEraser=(e,o,r)=>{this.eraserTrail.addPointToPath(r.x,r.y);let n=!1,i=new Set,a=this.scene.getNonDeletedElements(),l=u=>{for(let f of u){if(f.locked)return;if(e.altKey?this.elementsPendingErasure.delete(f.id)&&(n=!0):this.elementsPendingErasure.has(f.id)||(n=!0,this.elementsPendingErasure.add(f.id)),n&&f.groupIds?.length){let b=f.groupIds.at(-1);if(!i.has(b)){i.add(b);let x=ft(a,b);for(let E of x)e.altKey?this.elementsPendingErasure.delete(E.id):this.elementsPendingErasure.add(E.id)}}}},s=un(o.lastCoords.x,o.lastCoords.y,r.x,r.y),d=this.getElementHitThreshold(),c={...o.lastCoords},m=0;for(;m<=s;){let u=this.getElementsAtPosition(c.x,c.y);if(l(u),m===s)break;m=Math.min(m+d,s);let f=m/s,b=(1-f)*c.x+f*r.x,x=(1-f)*c.y+f*r.y;c.x=b,c.y=x}if(o.lastCoords.x=r.x,o.lastCoords.y=r.y,n){for(let u of this.scene.getNonDeletedElements())xt(u)&&(this.elementsPendingErasure.has(u.id)||this.elementsPendingErasure.has(u.containerId))&&(e.altKey?(this.elementsPendingErasure.delete(u.id),this.elementsPendingErasure.delete(u.containerId)):(this.elementsPendingErasure.add(u.id),this.elementsPendingErasure.add(u.containerId)));this.elementsPendingErasure=new Set(this.elementsPendingErasure),this.onSceneUpdated()}};handleTouchMove=e=>{Hs=!0};handleHoverSelectedLinearElement(e,o,r){let n=this.scene.getNonDeletedElementsMap(),i=ue.getElement(e.elementId,n);if(i)if(this.state.selectedLinearElement){let a=-1,l=null;Xi({x:o,y:r,element:i,shape:this.getElementShape(i)})?(a=ue.getPointIndexUnderCursor(i,n,this.state.zoom,o,r),l=ue.getSegmentMidpointHitCoords(e,{x:o,y:r},this.state,this.scene.getNonDeletedElementsMap()),a>=0||l?Oe(this.interactiveCanvas,Ne.POINTER):this.hitElement(o,r,i)&&Oe(this.interactiveCanvas,Ne.MOVE)):this.hitElement(o,r,i)&&Oe(this.interactiveCanvas,Ne.MOVE),this.state.selectedLinearElement.hoverPointIndex!==a&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,hoverPointIndex:a}}),ue.arePointsEqual(this.state.selectedLinearElement.segmentMidPointHoveredCoords,l)||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,segmentMidPointHoveredCoords:l}})}else Oe(this.interactiveCanvas,Ne.AUTO)}handleCanvasPointerDown=e=>{if(this.maybeCleanupAfterMissingPointerUp(e.nativeEvent),this.maybeUnfollowRemoteUser(),this.state.contextMenu&&this.setState({contextMenu:null}),this.state.snapLines&&this.setAppState({snapLines:[]}),this.updateGestureOnPointerDown(e),e.pointerType==="touch"&&this.state.draggingElement&&this.state.draggingElement.type==="freedraw"){let d=this.state.draggingElement;this.updateScene({...d.points.length<10?{elements:this.scene.getElementsIncludingDeleted().filter(c=>c.id!==d.id)}:{},appState:{draggingElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:Be(Object.keys(this.state.selectedElementIds).filter(c=>c!==d.id).reduce((c,m)=>(c[m]=this.state.selectedElementIds[m],c),{}),this.state)},storeAction:P.UPDATE});return}let o=document.getSelection();if(o?.anchorNode&&o.removeAllRanges(),this.maybeOpenContextMenuAfterPointerDownOnTouchDevices(e),!this.state.penDetected&&e.pointerType==="pen"&&this.setState(d=>({penMode:!0,penDetected:!0})),!this.device.isTouchScreen&&["pen","touch"].includes(e.pointerType)&&(this.device=Fi(this.device,{isTouchScreen:!0})),$s||(this.lastPointerDownEvent=e,this.handleCanvasPanUsingWheelOrSpaceDrag(e)))return;if(this.setState({lastPointerDownWith:e.pointerType,cursorButton:"down"}),this.savePointer(e.clientX,e.clientY,"down"),e.button===an.ERASER&&this.state.activeTool.type!==ut.eraser){this.setState({activeTool:it(this.state,{type:ut.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(e);let d=()=>{c(),m?.(),Ao(this.state)&&this.setState({activeTool:it(this.state,{...this.state.activeTool.lastActiveTool||{type:ut.selection},lastActiveToolBeforeEraser:null})})},c=at(window,"pointerup",d,{once:!0}),m;requestAnimationFrame(()=>{m=this.missingPointerEventCleanupEmitter.once(d)})});return}if(e.button!==an.MAIN&&e.button!==an.TOUCH&&e.button!==an.ERASER||Pe.pointers.size>1)return;let r=this.initialPointerDownState(e);if(this.setState({selectedElementsAreBeingDragged:!1}),this.handleDraggingScrollBar(e,r)||(this.clearSelectionIfNotUsingSelection(),this.updateBindingEnabledOnPointerMove(e),this.handleSelectionOnPointerDown(e,r))||!(!this.state.penMode||e.pointerType!=="touch"||this.state.activeTool.type==="selection"||this.state.activeTool.type==="text"||this.state.activeTool.type==="image"))return;if(this.state.activeTool.type==="text"){this.handleTextOnPointerDown(e,r);return}else if(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")this.handleLinearElementOnPointerDown(e,this.state.activeTool.type,r);else if(this.state.activeTool.type==="image"){Oe(this.interactiveCanvas,Ne.CROSSHAIR);let d=this.state.pendingImageElementId&&this.scene.getElement(this.state.pendingImageElementId);if(!d)return;this.setState({draggingElement:d,editingElement:d,pendingImageElementId:null,multiElement:null});let{x:c,y:m}=Ye(e,this.state),u=this.getTopLayerFrameAtSceneCoords({x:c,y:m});re(d,{x:c,y:m,frameId:u?u.id:null})}else this.state.activeTool.type==="freedraw"?this.handleFreeDrawElementOnPointerDown(e,this.state.activeTool.type,r):this.state.activeTool.type==="custom"?qo(this.interactiveCanvas,this.state):this.state.activeTool.type===ut.frame||this.state.activeTool.type===ut.magicframe?this.createFrameElementOnPointerDown(r,this.state.activeTool.type):this.state.activeTool.type==="laser"?this.laserTrails.startPath(r.lastCoords.x,r.lastCoords.y):this.state.activeTool.type!=="eraser"&&this.state.activeTool.type!=="hand"&&this.createGenericElementOnPointerDown(this.state.activeTool.type,r);this.props?.onPointerDown?.(this.state.activeTool,r),this.onPointerDownEmitter.trigger(this.state.activeTool,r,e),this.state.activeTool.type==="eraser"&&this.eraserTrail.startPath(r.lastCoords.x,r.lastCoords.y);let i=this.onPointerMoveFromPointerDownHandler(r),a=this.onPointerUpFromPointerDownHandler(r),l=this.onKeyDownFromPointerDownHandler(r),s=this.onKeyUpFromPointerDownHandler(r);this.missingPointerEventCleanupEmitter.once(d=>a(d||e.nativeEvent)),(!this.state.viewModeEnabled||this.state.activeTool.type==="laser")&&(window.addEventListener("pointermove",i),window.addEventListener("pointerup",a),window.addEventListener("keydown",l),window.addEventListener("keyup",s),r.eventListeners.onMove=i,r.eventListeners.onUp=a,r.eventListeners.onKeyUp=s,r.eventListeners.onKeyDown=l)};handleCanvasPointerUp=e=>{this.removePointer(e),this.lastPointerUpEvent=e;let o=Ye({clientX:e.clientX,clientY:e.clientY},this.state),r=e.timeStamp-(this.lastPointerDownEvent?.timeStamp??0);if(this.device.editor.isMobile&&r<300){let n=this.getElementAtPosition(o.x,o.y);if(zi(n)&&this.isIframeLikeElementCenter(n,e,o.x,o.y)){this.handleEmbeddableCenterClick(n);return}}if(this.device.isTouchScreen){let n=this.getElementAtPosition(o.x,o.y);this.hitLinkElement=this.getElementLinkAtPosition(o,n)}this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?r<300&&zi(this.hitLinkElement)&&!m0(this.hitLinkElement,this.scene.getNonDeletedElementsMap(),this.state,[o.x,o.y])?this.handleEmbeddableCenterClick(this.hitLinkElement):this.redirectToLink(e,this.device.isTouchScreen):this.state.viewModeEnabled&&this.setState({activeEmbeddable:null,selectedElementIds:{}})};maybeOpenContextMenuAfterPointerDownOnTouchDevices=e=>{e.pointerType==="touch"&&(Hs=!1,Un?Hs=!0:Un=window.setTimeout(()=>{Un=0,Hs||this.handleCanvasContextMenu(e)},C1))};resetContextMenuTimer=()=>{clearTimeout(Un),Un=0,Hs=!1};maybeCleanupAfterMissingPointerUp=e=>{Us?.(),this.missingPointerEventCleanupEmitter.trigger(e).clear()};handleCanvasPanUsingWheelOrSpaceDrag=e=>{if(!(Pe.pointers.size<=1&&(e.button===an.WHEEL||e.button===an.MAIN&&Ri||Fr(this.state)||this.state.viewModeEnabled))||se(this.state.editingElement))return!1;$s=!0,e.preventDefault();let o=!1,r=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);Oe(this.interactiveCanvas,Ne.GRABBING);let{clientX:n,clientY:i}=e,a=xp(s=>{let d=n-s.clientX,c=i-s.clientY;if(n=s.clientX,i=s.clientY,r&&!o&&(Math.abs(d)>1||Math.abs(c)>1)){o=!0;let m=f=>{document.body.removeEventListener("paste",m),f.stopPropagation()},u=()=>{setTimeout(()=>{document.body.removeEventListener("paste",m),window.removeEventListener("pointerup",u)},100)};document.body.addEventListener("paste",m),window.addEventListener("pointerup",u)}this.translateCanvas({scrollX:this.state.scrollX-d/this.state.zoom.value,scrollY:this.state.scrollY-c/this.state.zoom.value})}),l=Qe(Us=()=>{Us=null,$s=!1,Ri||(this.state.viewModeEnabled?Oe(this.interactiveCanvas,Ne.GRAB):qo(this.interactiveCanvas,this.state)),this.setState({cursorButton:"up"}),this.savePointer(e.clientX,e.clientY,"up"),window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",l),window.removeEventListener("blur",l),a.flush()});return window.addEventListener("blur",l),window.addEventListener("pointermove",a,{passive:!0}),window.addEventListener("pointerup",l),!0};updateGestureOnPointerDown(e){Pe.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),Pe.pointers.size===2&&(Pe.lastCenter=jh(Pe.pointers),Pe.initialScale=this.state.zoom.value,Pe.initialDistance=Xh(Array.from(Pe.pointers.values())))}initialPointerDownState(e){let o=Ye(e,this.state),r=this.scene.getSelectedElements(this.state),[n,i,a,l]=Ze(r);return{origin:o,withCmdOrCtrl:e[S.CTRL_OR_CMD],originInGrid:fl(eo(o.x,o.y,e[S.CTRL_OR_CMD]?null:this.state.gridSize)),scrollbars:Qh(Bg,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop),lastCoords:{...o},originalElements:this.scene.getNonDeletedElements().reduce((s,d)=>(s.set(d.id,Mc(d)),s),new Map),resize:{handleType:!1,isResizing:!1,offset:{x:0,y:0},arrowDirection:"origin",center:{x:(a+n)/2,y:(l+i)/2}},hit:{element:null,allHitElements:[],wasAddedToSelection:!1,hasBeenDuplicated:!1,hasHitCommonBoundingBoxOfSelectedElements:this.isHittingCommonBoundingBoxOfSelectedElements(o,r)},drag:{hasOccurred:!1,offset:null},eventListeners:{onMove:null,onUp:null,onKeyUp:null,onKeyDown:null},boxSelection:{hasOccurred:!1}}}handleDraggingScrollBar(e,o){if(!(o.scrollbars.isOverEither&&!this.state.multiElement))return!1;Fg=!0,o.lastCoords.x=e.clientX,o.lastCoords.y=e.clientY;let r=xp(i=>{i.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(i,o)}),n=Qe(()=>{Us=null,Fg=!1,qo(this.interactiveCanvas,this.state),this.setState({cursorButton:"up"}),this.savePointer(e.clientX,e.clientY,"up"),window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",n),r.flush()});return Us=n,window.addEventListener("pointermove",r),window.addEventListener("pointerup",n),!0}clearSelectionIfNotUsingSelection=()=>{this.state.activeTool.type!=="selection"&&this.setState({selectedElementIds:Be({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})};handleSelectionOnPointerDown=(e,o)=>{if(this.state.activeTool.type==="selection"){let r=this.scene.getNonDeletedElements(),n=this.scene.getNonDeletedElementsMap(),i=this.scene.getSelectedElements(this.state);if(i.length===1&&!this.state.editingLinearElement&&!(this.state.selectedLinearElement&&this.state.selectedLinearElement.hoverPointIndex!==-1)){let a=Cu(r,this.state,o.origin.x,o.origin.y,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap(),this.device);a!=null&&(this.setState({resizingElement:a.element}),o.resize.handleType=a.transformHandleType)}else i.length>1&&(o.resize.handleType=Su(Ze(i),o.origin.x,o.origin.y,this.state.zoom,e.pointerType,this.device));if(o.resize.handleType)o.resize.isResizing=!0,o.resize.offset=fl(F0(o.resize.handleType,i,n,o.origin.x,o.origin.y)),i.length===1&&$e(i[0])&&i[0].points.length===2&&(o.resize.arrowDirection=B0(o.resize.handleType,i[0]));else{if(this.state.selectedLinearElement){let s=this.state.editingLinearElement||this.state.selectedLinearElement,d=ue.handlePointerDown(e,this.state,this.store,o.origin,s,this);if(d.hitElement&&(o.hit.element=d.hitElement),d.linearElementEditor&&(this.setState({selectedLinearElement:d.linearElementEditor}),this.state.editingLinearElement&&this.setState({editingLinearElement:d.linearElementEditor})),d.didAddPoint)return!0}if(o.hit.element=o.hit.element??this.getElementAtPosition(o.origin.x,o.origin.y),o.hit.element&&this.getElementLinkAtPosition({x:o.origin.x,y:o.origin.y},o.hit.element))return!1;o.hit.allHitElements=this.getElementsAtPosition(o.origin.x,o.origin.y);let a=o.hit.element,l=o.hit.allHitElements.some(s=>this.isASelectedElement(s));if((a===null||!l)&&!e.shiftKey&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&this.clearSelection(a),this.state.editingLinearElement)this.setState({selectedElementIds:Be({[this.state.editingLinearElement.elementId]:!0},this.state)});else if(a!=null){if(e[S.CTRL_OR_CMD])return this.state.selectedElementIds[a.id]||(o.hit.wasAddedToSelection=!0),this.setState(s=>({...Mb(s,a),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[a.id]||(this.state.editingGroupId&&!Yi(a,this.state.editingGroupId)&&this.setState({selectedElementIds:Be({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),!l&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&(this.setState(s=>{let d={...s.selectedElementIds,[a.id]:!0},c=[];if(Object.keys(s.selectedElementIds).forEach(m=>{let u=this.scene.getElement(m);u&&c.push(u)}),Ee(a))bn(c,a.id).forEach(m=>{delete d[m.id]});else if(a.frameId)d[a.frameId]&&delete d[a.id];else{let m=a.groupIds,u=new Set(m.flatMap(f=>ft(this.scene.getNonDeletedElements(),f)).filter(f=>Ee(f)).map(f=>f.id));u.size>0&&c.forEach(f=>{f.frameId&&u.has(f.frameId)&&(delete d[f.id],f.groupIds.flatMap(b=>ft(this.scene.getNonDeletedElements(),b)).forEach(b=>{delete d[b.id]}))})}return{...Nt({editingGroupId:s.editingGroupId,selectedElementIds:d},this.scene.getNonDeletedElements(),s,this),showHyperlinkPopup:a.link||Ht(a)?"info":!1}}),o.hit.wasAddedToSelection=!0))}this.setState({previousSelectedElementIds:this.state.selectedElementIds})}}return!1};isASelectedElement(e){return e!=null&&this.state.selectedElementIds[e.id]}isHittingCommonBoundingBoxOfSelectedElements(e,o){if(o.length<2)return!1;let r=this.getElementHitThreshold(),[n,i,a,l]=Ze(o);return e.x>n-r&&e.x<a+r&&e.y>i-r&&e.y<l+r}handleTextOnPointerDown=(e,o)=>{if(se(this.state.editingElement))return;let r=o.origin.x,n=o.origin.y,i=this.getElementAtPosition(r,n,{includeBoundTextElement:!0}),a=this.getTextBindableContainerAtPosition(r,n);fr(i)&&(a=i,r=i.x+i.width/2,n=i.y+i.height/2),this.startTextEditing({sceneX:r,sceneY:n,insertAtParentCenter:!e.altKey,container:a}),Mo(this.interactiveCanvas),this.state.activeTool.locked||this.setState({activeTool:it(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(e,o,r)=>{let[n,i]=eo(r.origin.x,r.origin.y,null),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),l=zb({type:o,x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:null,simulatePressure:e.pressure===.5,locked:!1,frameId:a?a.id:null});this.setState(c=>{let m={...c.selectedElementIds};return delete m[l.id],{selectedElementIds:Be(m,c)}});let s=l.simulatePressure?l.pressures:[...l.pressures,e.pressure];re(l,{points:[[0,0]],pressures:s});let d=kl(r.origin,this);this.scene.insertElement(l),this.setState({draggingElement:l,editingElement:l,startBoundElement:d,suggestedBindings:[]})};insertIframeElement=({sceneX:e,sceneY:o,width:r,height:n})=>{let[i,a]=eo(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),l=Ob({type:"iframe",x:i,y:a,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("iframe"),opacity:this.state.currentItemOpacity,locked:!1,width:r,height:n});return this.scene.insertElement(l),l};insertEmbeddableElement=({sceneX:e,sceneY:o,link:r})=>{let[n,i]=eo(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=Qn(r);if(!a)return;a.error instanceof URIError&&this.setToast({message:g("toast.unrecognizedLinkFormat"),closable:!0});let l=iu({type:"embeddable",x:n,y:i,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("embeddable"),opacity:this.state.currentItemOpacity,locked:!1,width:a.intrinsicSize.w,height:a.intrinsicSize.h,link:r});return this.scene.insertElement(l),l};createImageElement=({sceneX:e,sceneY:o,addToFrameUnderCursor:r=!0})=>{let[n,i]=eo(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=r?this.getTopLayerFrameAtSceneCoords({x:n,y:i}):null;return Ac({type:"image",x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:null,opacity:this.state.currentItemOpacity,locked:!1,frameId:a?a.id:null})};handleLinearElementOnPointerDown=(e,o,r)=>{if(this.state.multiElement){let{multiElement:n}=this.state;if(n.type==="line"&&vl(n.points,this.state.zoom.value)){re(n,{lastCommittedPoint:n.points[n.points.length-1]}),this.actionManager.executeAction(Oo);return}let{x:i,y:a,lastCommittedPoint:l}=n;if(n.points.length>1&&l&&un(r.origin.x-i,r.origin.y-a,l[0],l[1])<Xs){this.actionManager.executeAction(Oo);return}this.setState(s=>({selectedElementIds:Be({...s.selectedElementIds,[n.id]:!0},s)})),re(n,{lastCommittedPoint:n.points[n.points.length-1]}),Oe(this.interactiveCanvas,Ne.POINTER)}else{let[n,i]=eo(r.origin.x,r.origin.y,e[S.CTRL_OR_CMD]?null:this.state.gridSize),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),{currentItemStartArrowhead:l,currentItemEndArrowhead:s}=this.state,[d,c]=o==="arrow"?[l,s]:[null,null],m=_l({type:o,x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.state.currentItemRoundness==="round"?{type:Co.PROPORTIONAL_RADIUS}:null,startArrowhead:d,endArrowhead:c,locked:!1,frameId:a?a.id:null});this.setState(f=>{let b={...f.selectedElementIds};return delete b[m.id],{selectedElementIds:Be(b,f)}}),re(m,{points:[...m.points,[0,0]]});let u=kl(r.origin,this);this.scene.insertElement(m),this.setState({draggingElement:m,editingElement:m,startBoundElement:u,suggestedBindings:[]})}};getCurrentItemRoundness(e){return this.state.currentItemRoundness==="round"?{type:$i(e)?Co.ADAPTIVE_RADIUS:Co.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(e,o)=>{let[r,n]=eo(o.origin.x,o.origin.y,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),i=this.getTopLayerFrameAtSceneCoords({x:r,y:n}),a={x:r,y:n,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.getCurrentItemRoundness(e),locked:!1,frameId:i?i.id:null},l;e==="embeddable"?l=iu({type:"embeddable",...a}):l=hn({type:e,...a}),l.type==="selection"?this.setState({selectionElement:l,draggingElement:l}):(this.scene.insertElement(l),this.setState({multiElement:null,draggingElement:l,editingElement:l}))};createFrameElementOnPointerDown=(e,o)=>{let[r,n]=eo(e.origin.x,e.origin.y,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),i={x:r,y:n,opacity:this.state.currentItemOpacity,locked:!1,...Zo},a=o===ut.magicframe?Ml(i):Ic(i);this.scene.insertElement(a),this.setState({multiElement:null,draggingElement:a,editingElement:a})};maybeCacheReferenceSnapPoints(e,o,r=!1){nn({event:e,appState:this.state,selectedElements:o})&&(r||!Wo.getReferenceSnapPoints())&&Wo.setReferenceSnapPoints(P5(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(e,o,r=!1){nn({event:e,appState:this.state,selectedElements:o})&&(r||!Wo.getVisibleGaps())&&Wo.setVisibleGaps(L5(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}onKeyDownFromPointerDownHandler(e){return Qe(o=>{this.maybeHandleResize(e,o)||this.maybeDragNewGenericElement(e,o)})}onKeyUpFromPointerDownHandler(e){return Qe(o=>{o.key===S.ALT&&o.preventDefault(),!this.maybeHandleResize(e,o)&&this.maybeDragNewGenericElement(e,o)})}onPointerMoveFromPointerDownHandler(e){return xp(o=>{if(e.drag.offset===null&&(e.drag.offset=fl($0(this.scene.getSelectedElements(this.state),e.origin.x,e.origin.y))),!(o.target instanceof HTMLElement)||this.handlePointerMoveOverScrollbars(o,e))return;let n=Ye(o,this.state);if(Ao(this.state)){this.handleEraser(o,e,n);return}this.state.activeTool.type==="laser"&&this.laserTrails.addPointToPath(n.x,n.y);let[i,a]=eo(n.x,n.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize);if(!e.drag.hasOccurred&&(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")&&un(n.x,n.y,e.origin.x,e.origin.y)<Gn)return;if(e.resize.isResizing&&(e.lastCoords.x=n.x,e.lastCoords.y=n.y,this.maybeHandleResize(e,o)))return!0;let l=this.scene.getNonDeletedElementsMap();if(this.state.selectedLinearElement){let m=this.state.editingLinearElement||this.state.selectedLinearElement;if(ue.shouldAddMidpoint(this.state.selectedLinearElement,n,this.state,l)){let f=ue.addMidpoint(this.state.selectedLinearElement,n,this.state,!o[S.CTRL_OR_CMD],l);if(!f)return;(0,Ip.flushSync)(()=>{this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,pointerDownState:f.pointerDownState,selectedPointsIndices:f.selectedPointsIndices}}),this.state.editingLinearElement&&this.setState({editingLinearElement:{...this.state.editingLinearElement,pointerDownState:f.pointerDownState,selectedPointsIndices:f.selectedPointsIndices}})});return}else if(m.pointerDownState.segmentMidpoint.value!==null&&!m.pointerDownState.segmentMidpoint.added)return;if(ue.handlePointDragging(o,this.state,n.x,n.y,(f,b)=>{this.maybeSuggestBindingsForLinearElementAtCoords(f,b)},m,this.scene.getNonDeletedElementsMap())){e.lastCoords.x=n.x,e.lastCoords.y=n.y,e.drag.hasOccurred=!0,this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging&&this.setState({editingLinearElement:{...this.state.editingLinearElement,isDragging:!0}}),this.state.selectedLinearElement.isDragging||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,isDragging:!0}});return}}let s=e.hit.allHitElements.some(m=>this.isASelectedElement(m)),d=this.state.editingLinearElement&&o.shiftKey&&this.state.editingLinearElement.elementId===e.hit.element?.id;if((s||e.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!d){let m=this.scene.getSelectedElements(this.state);if(m.every(b=>b.locked))return;let u=m.find(b=>Ee(b)),f=this.getTopLayerFrameAtSceneCoords(n);if(this.setState({frameToHighlight:f&&!u?f:null}),e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0}),m.length>0&&!e.withCmdOrCtrl&&!this.state.editingElement&&this.state.activeEmbeddable?.state!=="active"){let b={x:n.x-e.origin.x,y:n.y-e.origin.y},x=[...e.originalElements.values()],E=o.shiftKey;if(E){let w=Math.abs(b.x),A=Math.abs(b.y),z=E&&w<A,I=E&&w>A;z&&(b.x=0),I&&(b.y=0)}this.maybeCacheVisibleGaps(o,m),this.maybeCacheReferenceSnapPoints(o,m);let{snapOffset:T,snapLines:C}=R5(x,b,this.state,o,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:C}),!this.state.editingFrame&&z0(e,m,b,this.state,this.scene,T,o[S.CTRL_OR_CMD]?null:this.state.gridSize),this.maybeSuggestBindingForAll(m),o.altKey&&!e.hit.hasBeenDuplicated){e.hit.hasBeenDuplicated=!0;let w=[],A=[],z=new Map,I=new Map,M=e.hit.element,_=new Set(this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}).map(G=>G.id)),U=this.scene.getElementsIncludingDeleted();for(let G of U)if(_.has(G.id)||G.id===M?.id&&e.hit.wasAddedToSelection){let O=_c(this.state.editingGroupId,z,G),B=e.originalElements.get(G.id);re(O,{x:B.x,y:B.y}),e.originalElements.set(O.id,O),w.push(O),A.push(G),I.set(G.id,O.id)}else w.push(G);let D=[...w,...A];ho(D,pe(A)),Ec(w,A,I),xc(D,A,I,"duplicatesServeAsOld"),Hc(D,A,I),this.scene.replaceAllElements(D),this.maybeCacheVisibleGaps(o,m,!0),this.maybeCacheReferenceSnapPoints(o,m,!0)}return}}let c=this.state.draggingElement;if(c){if(c.type==="freedraw"){let m=c.points,u=n.x-c.x,f=n.y-c.y,b=m.length>0&&m[m.length-1];if(!(b&&b[0]===u&&b[1]===f)){let E=c.simulatePressure?c.pressures:[...c.pressures,o.pressure];re(c,{points:[...m,[u,f]],pressures:E})}}else if($e(c)){e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0});let m=c.points,u=i-c.x,f=a-c.y;gc(o)&&m.length===2&&({width:u,height:f}=wu(c.x,c.y,n.x,n.y)),m.length===1?re(c,{points:[...m,[u,f]]}):m.length===2&&re(c,{points:[...m.slice(0,-1),[u,f]]}),Pr(c,!1)&&this.maybeSuggestBindingsForLinearElementAtCoords(c,[n],this.state.startBoundElement)}else e.lastCoords.x=n.x,e.lastCoords.y=n.y,this.maybeDragNewGenericElement(e,o);if(this.state.activeTool.type==="selection"){e.boxSelection.hasOccurred=!0;let m=this.scene.getNonDeletedElements();if(this.state.editingLinearElement)ue.handleBoxSelection(o,this.state,this.setState.bind(this),this.scene.getNonDeletedElementsMap());else{let u=!0;!o.shiftKey&&Fe(m,this.state)&&(e.withCmdOrCtrl&&e.hit.element?this.setState(b=>Nt({...b,selectedElementIds:{[e.hit.element.id]:!0}},this.scene.getNonDeletedElements(),b,this)):u=!1);let f=H0(m,c,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x={...u&&b.selectedElementIds,...f.reduce((E,T)=>(E[T.id]=!0,E),{})};return e.hit.element&&(f.length?delete x[e.hit.element.id]:x[e.hit.element.id]=!0),b=u?b:{...b,selectedGroupIds:{},editingGroupId:null},{...Nt({editingGroupId:b.editingGroupId,selectedElementIds:x},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:f.length===1&&$e(f[0])?new ue(f[0]):null,showHyperlinkPopup:f.length===1&&(f[0].link||Ht(f[0]))?"info":!1}})}}}})}handlePointerMoveOverScrollbars(e,o){if(o.scrollbars.isOverHorizontal){let r=e.clientX,n=r-o.lastCoords.x;return this.translateCanvas({scrollX:this.state.scrollX-n/this.state.zoom.value}),o.lastCoords.x=r,!0}if(o.scrollbars.isOverVertical){let r=e.clientY,n=r-o.lastCoords.y;return this.translateCanvas({scrollY:this.state.scrollY-n/this.state.zoom.value}),o.lastCoords.y=r,!0}return!1}onPointerUpFromPointerDownHandler(e){return Qe(o=>{this.removePointer(o),e.eventListeners.onMove&&e.eventListeners.onMove.flush();let{draggingElement:r,resizingElement:n,multiElement:i,activeTool:a,isResizing:l,isRotating:s}=this.state;this.setState(f=>({isResizing:!1,isRotating:!1,resizingElement:null,selectionElement:null,frameToHighlight:null,elementsToHighlight:null,cursorButton:"up",editingElement:i||se(this.state.editingElement)?this.state.editingElement:null,snapLines:uc(f.snapLines,[]),originSnapOffset:null})),Wo.setReferenceSnapPoints(null),Wo.setVisibleGaps(null),this.savePointer(o.clientX,o.clientY,"up"),this.setState({selectedElementsAreBeingDragged:!1});let d=this.scene.getNonDeletedElementsMap();if(this.state.editingLinearElement)if(!e.boxSelection.hasOccurred&&e.hit?.element?.id!==this.state.editingLinearElement.elementId)this.actionManager.executeAction(Oo);else{let f=ue.handlePointerUp(o,this.state.editingLinearElement,this.state,this);f!==this.state.editingLinearElement&&this.setState({editingLinearElement:f,suggestedBindings:[]})}else if(this.state.selectedLinearElement)if(e.hit?.element?.id!==this.state.selectedLinearElement.elementId)this.scene.getSelectedElements(this.state).length>1&&this.setState({selectedLinearElement:null});else{let f=ue.handlePointerUp(o,this.state.selectedLinearElement,this.state,this),{startBindingElement:b,endBindingElement:x}=f,E=this.scene.getElement(f.elementId);Pr(E)&&bc(E,b,x,d),f!==this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...f,selectedPointsIndices:null},suggestedBindings:[]})}if(this.missingPointerEventCleanupEmitter.clear(),window.removeEventListener("pointermove",e.eventListeners.onMove),window.removeEventListener("pointerup",e.eventListeners.onUp),window.removeEventListener("keydown",e.eventListeners.onKeyDown),window.removeEventListener("keyup",e.eventListeners.onKeyUp),this.state.pendingImageElementId&&this.setState({pendingImageElementId:null}),this.props?.onPointerUp?.(a,e),this.onPointerUpEmitter.trigger(this.state.activeTool,e,o),r?.type==="freedraw"){let f=Ye(o,this.state),b=r.points,x=f.x-r.x,E=f.y-r.y;x===b[0][0]&&E===b[0][1]&&(E+=1e-4,x+=1e-4);let T=r.simulatePressure?[]:[...r.pressures,o.pressure];re(r,{points:[...b,[x,E]],pressures:T,lastCommittedPoint:[x,E]}),this.actionManager.executeAction(Oo);return}if(dn(r)){let f=r;try{this.initializeImageDimensions(f),this.setState({selectedElementIds:Be({[f.id]:!0},this.state)},()=>{this.actionManager.executeAction(Oo)})}catch(b){console.error(b),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(x=>x.id!==f.id)),this.actionManager.executeAction(Oo)}return}if($e(r)){r.points.length>1&&this.store.shouldCaptureIncrement();let f=Ye(o,this.state);!e.drag.hasOccurred&&r&&!i?(re(r,{points:[...r.points,[f.x-r.x,f.y-r.y]]}),this.setState({multiElement:r,editingElement:this.state.draggingElement})):e.drag.hasOccurred&&!i&&(qn(this.state)&&Pr(r,!1)&&Sl(r,this.state,f,this),this.setState({suggestedBindings:[],startBoundElement:null}),a.locked?this.setState(b=>({draggingElement:null})):(Mo(this.interactiveCanvas),this.setState(b=>({draggingElement:null,activeTool:it(this.state,{type:"selection"}),selectedElementIds:Be({...b.selectedElementIds,[r.id]:!0},b),selectedLinearElement:new ue(r)}))));return}if(a.type!=="selection"&&r&&ti(r)){this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==r.id),appState:{draggingElement:null},storeAction:P.UPDATE});return}if(r){if(e.drag.hasOccurred){let f=Ye(o,this.state);if(this.state.selectedLinearElement&&this.state.selectedLinearElement.isDragging){let b=this.scene.getElement(this.state.selectedLinearElement.elementId);if(b?.frameId){let x=Uc(b,d);x&&b&&(C0(b,x,this.scene.getNonDeletedElementsMap())||(re(b,{groupIds:[]}),Gc([b],this.scene.getNonDeletedElementsMap()),this.scene.informMutation()))}}else{let b=this.getTopLayerFrameAtSceneCoords(f),x=this.scene.getSelectedElements(this.state),E=this.scene.getElementsMapIncludingDeleted(),T=C=>{if(C.length>0){for(let w of C){let A=w.groupIds.indexOf(this.state.editingGroupId);re(w,{groupIds:w.groupIds.slice(0,A)},!1)}E.forEach(w=>{w.groupIds.length&&ft(E,w.groupIds[w.groupIds.length-1]).length<2&&re(w,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(b&&!this.state.selectedElementIds[b.id]){let C=x.filter(w=>w.frameId!==b.id&&Eu(w,E,this.state));this.state.editingGroupId&&T(C),E=Wc(E,C,b)}else if(!b&&this.state.editingGroupId){let C=x.filter(w=>w.frameId&&!Eu(w,E,this.state));T(C)}E=hr(E,this.state,this),this.scene.replaceAllElements(E)}}if(Ee(r)){let f=k0(this.scene.getElementsIncludingDeleted(),r,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(Wc(this.scene.getElementsMapIncludingDeleted(),f,r))}re(r,P0(r))}if(n&&this.store.shouldCaptureIncrement(),n&&ti(n)&&this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==n.id),storeAction:P.UPDATE}),e.resize.isResizing){let f=hr(this.scene.getElementsIncludingDeleted(),this.state,this),b=this.scene.getSelectedElements(this.state).filter(x=>Ee(x));for(let x of b)f=Vc(f,Qi(this.scene.getElementsIncludingDeleted(),x,this.state,d),x,this);this.scene.replaceAllElements(f)}let c=e.hit.element;this.state.selectedLinearElement?.elementId!==c?.id&&$e(c)&&this.scene.getSelectedElements(this.state).length===1&&this.setState({selectedLinearElement:new ue(c)});let m=this.lastPointerDownEvent,u=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(Ao(this.state)&&m&&u){if(this.eraserTrail.endPath(),un(m.clientX,m.clientY,u.clientX,u.clientY)===0){let b=Ye({clientX:u.clientX,clientY:u.clientY},this.state);this.getElementsAtPosition(b.x,b.y).forEach(E=>this.elementsPendingErasure.add(E.id))}this.eraseElements();return}else this.elementsPendingErasure.size&&this.restoreReadyToEraseElements();if(c&&!e.drag.hasOccurred&&!e.hit.wasAddedToSelection&&(!this.state.editingLinearElement||!e.boxSelection.hasOccurred)&&(o.shiftKey&&!this.state.editingLinearElement?this.state.selectedElementIds[c.id]?Tc(this.state,c)?this.setState(f=>{let b={...f.selectedElementIds};for(let x of c.groupIds.flatMap(E=>ft(this.scene.getNonDeletedElements(),E)))delete b[x.id];return{selectedGroupIds:{...f.selectedElementIds,...c.groupIds.map(x=>({[x]:!1})).reduce((x,E)=>({...x,...E}),{})},selectedElementIds:Be(b,f)}}):this.state.selectedLinearElement?.isDragging||this.setState(f=>{let b={...f.selectedElementIds};delete b[c.id];let x=we(this.scene.getNonDeletedElements(),{selectedElementIds:b});return{...Nt({editingGroupId:f.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),f,this),selectedLinearElement:x.length===1&&$e(x[0])?new ue(x[0]):f.selectedLinearElement}}):c.frameId&&this.state.selectedElementIds[c.frameId]?this.setState(f=>{let b={...f.selectedElementIds,[c.id]:!0};return delete b[c.frameId],(this.scene.getElement(c.frameId)?.groupIds??[]).flatMap(x=>ft(this.scene.getNonDeletedElements(),x)).forEach(x=>{delete b[x.id]}),{...Nt({editingGroupId:f.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),f,this),showHyperlinkPopup:c.link||Ht(c)?"info":!1}}):this.setState(f=>({selectedElementIds:Be({...f.selectedElementIds,[c.id]:!0},f)})):this.setState(f=>({...Nt({editingGroupId:f.editingGroupId,selectedElementIds:{[c.id]:!0}},this.scene.getNonDeletedElements(),f,this),selectedLinearElement:$e(c)&&f.selectedLinearElement?.elementId!==c.id?new ue(c):f.selectedLinearElement}))),!e.drag.hasOccurred&&!this.state.isResizing&&(c&&s0({x:e.origin.x,y:e.origin.y,element:c,shape:this.getElementShape(c),threshold:this.getElementHitThreshold(),frameNameBound:Ee(c)?this.frameNameBoundsCache.get(c):null},d)||!c&&e.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:Be({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),Oe(this.interactiveCanvas,Ne.AUTO);return}if(!a.locked&&a.type!=="freedraw"&&r&&r.type!=="selection"&&this.setState(f=>({selectedElementIds:Be({...f.selectedElementIds,[r.id]:!0},f),showHyperlinkPopup:Ht(r)&&!r.link?"editor":f.showHyperlinkPopup})),(a.type!=="selection"||Fe(this.scene.getNonDeletedElements(),this.state)||!kt(this.state.previousSelectedElementIds,this.state.selectedElementIds))&&this.store.shouldCaptureIncrement(),(e.drag.hasOccurred||l||s)&&(qn(this.state)?Cl(this.scene.getSelectedElements(this.state),this):Tl(this.scene.getSelectedElements(this.state),d)),a.type==="laser"){this.laserTrails.endPath();return}!a.locked&&a.type!=="freedraw"?(Mo(this.interactiveCanvas),this.setState({draggingElement:null,suggestedBindings:[],activeTool:it(this.state,{type:"selection"})})):this.setState({draggingElement:null,suggestedBindings:[]}),c&&this.lastPointerUpEvent&&this.lastPointerDownEvent&&this.lastPointerUpEvent.timeStamp-this.lastPointerDownEvent.timeStamp<300&&Pe.pointers.size<=1&&zi(c)&&this.isIframeLikeElementCenter(c,this.lastPointerUpEvent,e.origin.x,e.origin.y)&&this.handleEmbeddableCenterClick(c)})}restoreReadyToEraseElements=()=>{this.elementsPendingErasure=new Set,this.onSceneUpdated()};eraseElements=()=>{let e=!1,o=this.scene.getElementsIncludingDeleted().map(r=>this.elementsPendingErasure.has(r.id)||r.frameId&&this.elementsPendingErasure.has(r.frameId)||xt(r)&&this.elementsPendingErasure.has(r.containerId)?(e=!0,he(r,{isDeleted:!0})):r);this.elementsPendingErasure=new Set,e&&(this.store.shouldCaptureIncrement(),this.scene.replaceAllElements(o))};initializeImage=async({imageFile:e,imageElement:o,showCursorImagePreview:r=!1})=>{if(!Dc(e))throw new Error(g("errors.unsupportedFileType"));let n=e.type;if(Oe(this.interactiveCanvas,"wait"),n===Dt.svg)try{e=pu(await e0(await e.text()),e.name)}catch(d){throw console.warn(d),new Error(g("errors.svgImageInsertError"))}let i=await(this.props.generateIdForFile?.(e)||Vb(e));if(!i)throw console.warn("Couldn't generate file id or the supplied `generateIdForFile` didn't resolve to one."),new Error(g("errors.imageInsertError"));if(!this.files[i]?.dataURL){try{e=await Pl(e,{maxWidthOrHeight:P1})}catch(d){console.error("Error trying to resizing image file on insertion",d)}if(e.size>Wp)throw new Error(g("errors.fileTooBig",{maxSize:`${Math.trunc(Wp/1024/1024)}MB`}))}if(r){let d=this.files[i]?.dataURL,c=d&&Kb(d);this.setImagePreviewCursor(c||e)}let l=this.files[i]?.dataURL||await Oc(e),s=re(o,{fileId:i},!1);return new Promise(async(d,c)=>{try{this.files={...this.files,[i]:{mimeType:n,id:i,dataURL:l,created:Date.now(),lastRetrieved:Date.now()}};let m=this.imageCache.get(i);m||(this.addNewImagesToImageCache(),await this.updateImageCache([s])),m?.image instanceof Promise&&await m.image,this.state.pendingImageElementId!==s.id&&this.state.draggingElement?.id!==s.id&&this.initializeImageDimensions(s,!0),d(s)}catch(m){console.error(m),c(new Error(g("errors.imageInsertError")))}finally{r||Mo(this.interactiveCanvas)}})};insertImageElement=async(e,o,r)=>{if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}this.scene.insertElement(e);try{return await this.initializeImage({imageFile:o,imageElement:e,showCursorImagePreview:r})}catch(n){return re(e,{isDeleted:!0}),this.actionManager.executeAction(Oo),this.setState({errorMessage:n.message||g("errors.imageInsertError")}),null}};setImagePreviewCursor=async e=>{let r;try{r=await Pl(e,{maxWidthOrHeight:96})}catch(i){throw i.cause==="UNSUPPORTED"?new Error(g("errors.unsupportedFileType")):i}let n=await Oc(r);if(e.type===Dt.svg){let i=await qb(n),a=Math.min(i.height,96),l=a*(i.width/i.height);l>96&&(l=96,a=l*(i.height/i.width));let s=document.createElement("canvas");s.height=a,s.width=l,s.getContext("2d").drawImage(i,0,0,l,a),n=s.toDataURL(Dt.svg)}this.state.pendingImageElementId&&Oe(this.interactiveCanvas,`url(${n}) 4 4, auto`)};onImageAction=async({insertOnCanvasDirectly:e})=>{try{let o=this.state.width/2+this.state.offsetLeft,r=this.state.height/2+this.state.offsetTop,{x:n,y:i}=Ye({clientX:o,clientY:r},this.state),a=await Pc({description:"Image",extensions:Object.keys(x1)}),l=this.createImageElement({sceneX:n,sceneY:i,addToFrameUnderCursor:!1});e?(this.insertImageElement(l,a),this.initializeImageDimensions(l),this.setState({selectedElementIds:Be({[l.id]:!0},this.state)},()=>{this.actionManager.executeAction(Oo)})):this.setState({pendingImageElementId:l.id},()=>{this.insertImageElement(l,a,!0)})}catch(o){o.name!=="AbortError"?console.error(o):console.warn(o),this.setState({pendingImageElementId:null,editingElement:null,activeTool:it(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(Oo)})}};initializeImageDimensions=(e,o=!1)=>{let r=bl(e)&&this.imageCache.get(e.fileId)?.image;if(!r||r instanceof Promise){if(e.width<Gn/this.state.zoom.value&&e.height<Gn/this.state.zoom.value){let n=100/this.state.zoom.value;re(e,{x:e.x-n/2,y:e.y-n/2,width:n,height:n})}return}if(o||e.width<Gn/this.state.zoom.value&&e.height<Gn/this.state.zoom.value){let n=Math.max(this.state.height-120,160),i=Math.min(n,Math.floor(this.state.height*.5)/this.state.zoom.value),a=Math.min(r.naturalHeight,i),l=a*(r.naturalWidth/r.naturalHeight),s=e.x+e.width/2-l/2,d=e.y+e.height/2-a/2;re(e,{x:s,y:d,width:l,height:a})}};updateImageCache=async(e,o=this.files)=>{let{updatedFiles:r,erroredFiles:n}=await Jb({imageCache:this.imageCache,fileIds:e.map(i=>i.fileId),files:o});if(r.size||n.size)for(let i of e)r.has(i.fileId)&&Lo.delete(i);return n.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(i=>bl(i)&&n.has(i.fileId)?he(i,{status:"error"}):i)),{updatedFiles:r,erroredFiles:n}};addNewImagesToImageCache=async(e=Qb(this.scene.getNonDeletedElements()),o=this.files)=>{let r=e.filter(n=>!n.isDeleted&&!this.imageCache.has(n.fileId));if(r.length){let{updatedFiles:n}=await this.updateImageCache(r,o);n.size&&this.scene.informMutation()}};scheduleImageRefresh=(0,c6.default)(()=>{this.addNewImagesToImageCache()},y1);updateBindingEnabledOnPointerMove=e=>{let o=sb(e);this.state.isBindingEnabled!==o&&this.setState({isBindingEnabled:o})};maybeSuggestBindingAtCursor=e=>{let o=kl(e,this);this.setState({suggestedBindings:o!=null?[o]:[]})};maybeSuggestBindingsForLinearElementAtCoords=(e,o,r)=>{if(!o.length)return;let n=o.reduce((i,a)=>{let l=kl(a,this);return l!=null&&!cb(e,r?.id,l)&&i.push(l),i},[]);this.setState({suggestedBindings:n})};maybeSuggestBindingForAll(e){if(e.length>50)return;let o=db(e,this);this.setState({suggestedBindings:o})}clearSelection(e){this.setState(o=>({selectedElementIds:Be({},o),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:o.editingGroupId&&e!=null&&Yi(e,o.editingGroupId)?o.editingGroupId:null})),this.setState({selectedElementIds:Be({},this.state),activeEmbeddable:null,previousSelectedElementIds:this.state.selectedElementIds})}handleInteractiveCanvasRef=e=>{e!==null?(this.interactiveCanvas=e,this.interactiveCanvas.addEventListener("wheel",this.handleWheel),this.interactiveCanvas.addEventListener("touchstart",this.onTouchStart),this.interactiveCanvas.addEventListener("touchend",this.onTouchEnd)):(this.interactiveCanvas?.removeEventListener("wheel",this.handleWheel),this.interactiveCanvas?.removeEventListener("touchstart",this.onTouchStart),this.interactiveCanvas?.removeEventListener("touchend",this.onTouchEnd))};handleAppOnDrop=async e=>{let{file:o,fileHandle:r}=await Zb(e),{x:n,y:i}=Ye(e,this.state);try{if(Dc(o)&&this.isToolSupported("image")){if(o?.type===Dt.png||o?.type===Dt.svg)try{let s=await Nc(o,this.state,this.scene.getElementsIncludingDeleted(),r);this.syncActionResult({...s,appState:{...s.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:P.CAPTURE});return}catch(s){if(s.name!=="EncodingError")throw new Error(g("alerts.couldNotLoadInvalidFile"))}let l=this.createImageElement({sceneX:n,sceneY:i});this.insertImageElement(l,o),this.initializeImageDimensions(l),this.setState({selectedElementIds:Be({[l.id]:!0},this.state)});return}}catch(l){return this.setState({isLoading:!1,errorMessage:l.message})}let a=e.dataTransfer.getData(Dt.excalidrawlib);if(a&&typeof a=="string"){try{let l=Gb(a);this.addElementsFromPasteOrLibrary({elements:gm(l),position:e,files:null})}catch(l){this.setState({errorMessage:l.message})}return}if(o&&await this.loadFileToCanvas(o,r),e.dataTransfer?.types?.includes("text/plain")){let l=e.dataTransfer?.getData("text");if(l&&Zi(l,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(l)||Qn(l)?.type==="video")){let s=this.insertEmbeddableElement({sceneX:n,sceneY:i,link:zr(l)});s&&this.setState({selectedElementIds:{[s.id]:!0}})}}};loadFileToCanvas=async(e,o)=>{e=await jb(e);try{let r=this.scene.getElementsIncludingDeleted(),n;try{n=await du(e,this.state,r,o)}catch(i){let a=i instanceof rb;if(a&&i.code==="IMAGE_NOT_CONTAINS_SCENE_DATA"&&!this.isToolSupported("image")){this.setState({isLoading:!1,errorMessage:g("errors.imageToolNotSupported")});return}let l=a?g("alerts.cannotRestoreFromImage"):g("alerts.couldNotLoadInvalidFile");this.setState({isLoading:!1,errorMessage:l})}if(!n)return;n.type===Dt.excalidraw?(pn(r.concat(n.data.elements)),this.store.updateSnapshot(pe(r),this.state),this.setState({isLoading:!0}),this.syncActionResult({...n.data,appState:{...n.data.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:P.CAPTURE})):n.type===Dt.excalidrawlib&&await this.library.updateLibrary({libraryItems:e,merge:!0,openLibraryMenu:!0}).catch(i=>{console.error(i),this.setState({errorMessage:g("errors.importLibraryError")})})}catch(r){this.setState({isLoading:!1,errorMessage:r.message})}};handleCanvasContextMenu=e=>{if(e.preventDefault(),("pointerType"in e.nativeEvent&&e.nativeEvent.pointerType==="touch"||"pointerType"in e.nativeEvent&&e.nativeEvent.pointerType==="pen"&&e.button!==an.SECONDARY)&&this.state.activeTool.type!=="selection")return;let{x:o,y:r}=Ye(e,this.state),n=this.getElementAtPosition(o,r,{preferSelected:!0,includeLockedElements:!0}),i=this.scene.getSelectedElements(this.state),a=this.isHittingCommonBoundingBoxOfSelectedElements({x:o,y:r},i),l=n||a?"element":"canvas",s=this.excalidrawContainerRef.current,{top:d,left:c}=s.getBoundingClientRect(),m=e.clientX-c,u=e.clientY-d;xe("contextMenu","openContextMenu",l),this.setState({...n&&!this.state.selectedElementIds[n.id]?{...this.state,...Nt({editingGroupId:this.state.editingGroupId,selectedElementIds:{[n.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:$e(n)?new ue(n):null}:this.state,showHyperlinkPopup:!1},()=>{this.setState({contextMenu:{top:u,left:m,items:this.getContextMenuItems(l)}})})};maybeDragNewGenericElement=(e,o)=>{let r=this.state.draggingElement,n=e.lastCoords;if(r)if(r.type==="selection"&&this.state.activeTool.type!=="eraser")ku(r,this.state.activeTool.type,e.origin.x,e.origin.y,n.x,n.y,Zn(e.origin.x,n.x),Zn(e.origin.y,n.y),Gi(o),hc(o));else{let[i,a]=eo(n.x,n.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),l=bl(r)&&this.imageCache.get(r.fileId)?.image,s=l&&!(l instanceof Promise)?l.width/l.height:null;this.maybeCacheReferenceSnapPoints(o,[r]);let{snapOffset:d,snapLines:c}=N5(r,this.state,o,{x:e.originInGrid.x+(this.state.originSnapOffset?.x??0),y:e.originInGrid.y+(this.state.originSnapOffset?.y??0)},{x:i-e.originInGrid.x,y:a-e.originInGrid.y},this.scene.getNonDeletedElementsMap());i+=d.x,a+=d.y,this.setState({snapLines:c}),ku(r,this.state.activeTool.type,e.originInGrid.x,e.originInGrid.y,i,a,Zn(e.originInGrid.x,i),Zn(e.originInGrid.y,a),dn(r)?!Gi(o):Gi(o),hc(o),s,this.state.originSnapOffset),this.maybeSuggestBindingForAll([r]),(this.state.activeTool.type===ut.frame||this.state.activeTool.type===ut.magicframe)&&this.setState({elementsToHighlight:Qi(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap())})}};maybeHandleResize=(e,o)=>{let r=this.scene.getSelectedElements(this.state),n=r.filter(c=>Ee(c)),i=e.resize.handleType;if(n.length>0&&i==="rotation")return!1;this.setState({isResizing:i&&i!=="rotation",isRotating:i==="rotation",activeEmbeddable:null});let a=e.lastCoords,[l,s]=eo(a.x-e.resize.offset.x,a.y-e.resize.offset.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),d=new Map;if(n.forEach(c=>{bn(this.scene.getNonDeletedElements(),c.id).forEach(u=>{d.set(c.id+u.id,{x:u.x-c.x,y:u.y-c.y})})}),!this.state.selectedElementsAreBeingDragged){let[c,m]=eo(a.x,a.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),u={x:c-e.originInGrid.x,y:m-e.originInGrid.y},f=[...e.originalElements.values()];this.maybeCacheReferenceSnapPoints(o,r);let{snapOffset:b,snapLines:x}=D5(r,we(f,this.state),this.state,o,u,i);l+=b.x,s+=b.y,this.setState({snapLines:x})}if(N0(e.originalElements,i,r,this.scene.getElementsMapIncludingDeleted(),gc(o),hc(o),r.some(c=>dn(c))?!Gi(o):Gi(o),l,s,e.resize.center.x,e.resize.center.y)){this.maybeSuggestBindingForAll(r);let c=new Set;return n.forEach(m=>{Qi(this.scene.getNonDeletedElements(),m,this.state,this.scene.getNonDeletedElementsMap()).forEach(u=>c.add(u))}),this.setState({elementsToHighlight:[...c]}),!0}return!1};getContextMenuItems=e=>{let o=[];return o.push(am,im),e==="canvas"?this.state.viewModeEnabled?[...o,sm,Fa,Tg,Mn]:[fh,io,am,im,lm,io,cf,Ly,io,sm,hh,Fa,Tg,Mn]:(o.push(lm),this.state.viewModeEnabled?[Oa,...o]:[nm,Oa,fh,T5,k5,io,...o,io,rh,nh,io,ah,gh,bh,Sy,lh,io,dh,io,nf,af,lf,sf,io,ph,uh,io,Gh,ds,df,Ch,io,Vl])};handleWheel=Qe(e=>{if(e.preventDefault(),$s)return;let{deltaX:o,deltaY:r}=e;if(e.metaKey||e.ctrlKey){let n=Math.sign(r),i=Kn*100,a=Math.abs(r),l=r;a>i&&(l=i*n);let s=this.state.zoom.value-l/100;s+=Math.log10(Math.max(1,this.state.zoom.value))*-n*Math.min(1,a/20),this.translateCanvas(d=>({...Ur({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Hr(s)},d),shouldCacheIgnoreZoom:!0})),this.resetShouldCacheIgnoreZoomDebounced();return}if(e.shiftKey){this.translateCanvas(({zoom:n,scrollX:i})=>({scrollX:i-(r||o)/n.value}));return}this.translateCanvas(({zoom:n,scrollX:i,scrollY:a})=>({scrollX:i-o/n.value,scrollY:a-r/n.value}))});getTextWysiwygSnappedToCenterPosition(e,o,r,n){if(n){let i=n.x+n.width/2,a=n.y+n.height/2,l=Cc(n,r,this.scene.getNonDeletedElementsMap());if(l&&(i=l.x,a=l.y),Math.hypot(e-i,o-a)<u1){let{x:c,y:m}=Qt({sceneX:i,sceneY:a},r);return{viewportX:c,viewportY:m,elementCenterX:i,elementCenterY:a}}}}savePointer=(e,o,r)=>{if(!e||!o)return;let{x:n,y:i}=Ye({clientX:e,clientY:o},this.state);isNaN(n)||isNaN(i);let a={x:n,y:i,tool:this.state.activeTool.type==="laser"?"laser":"pointer"};this.props.onPointerUpdate?.({pointer:a,button:r,pointersMap:Pe.pointers})};resetShouldCacheIgnoreZoomDebounced=pl(()=>{this.unmounted||this.setState({shouldCacheIgnoreZoom:!1})},300);updateDOMRect=e=>{if(this.excalidrawContainerRef?.current){let o=this.excalidrawContainerRef.current,{width:r,height:n,left:i,top:a}=o.getBoundingClientRect(),{width:l,height:s,offsetTop:d,offsetLeft:c}=this.state;if(r===l&&n===s&&i===c&&a===d){e&&e();return}this.setState({width:r,height:n,offsetLeft:i,offsetTop:a},()=>{e&&e()})}};refresh=()=>{this.setState({...this.getCanvasOffsets()})};getCanvasOffsets(){if(this.excalidrawContainerRef?.current){let e=this.excalidrawContainerRef.current,{left:o,top:r}=e.getBoundingClientRect();return{offsetLeft:o,offsetTop:r}}return{offsetLeft:0,offsetTop:0}}async updateLanguage(){let e=na.find(o=>o.code===this.props.langCode)||gr;await rd(e),this.setAppState({})}},LI=()=>{(y.MODE===Bp.TEST||y.DEV)&&(window.h=window.h||{},Object.defineProperties(window.h,{elements:{configurable:!0,get(){return this.app?.scene.getElementsIncludingDeleted()},set(t){return this.app?.scene.replaceAllElements(pn(t))}}}))};LI();var u6=$g;h();var PI=()=>{Array.prototype.at||Object.defineProperty(Array.prototype,"at",{value:function(t){if(t=Math.trunc(t)||0,t<0&&(t+=this.length),!(t<0||t>=this.length))return this[t]},writable:!0,enumerable:!1,configurable:!0}),Element.prototype.replaceChildren||(Element.prototype.replaceChildren=function(...t){this.innerHTML="",this.append(...t)})},f6=PI;h();var Yg=v(k(),1),h6=({children:t})=>{let{FooterCenterTunnel:e}=Ve(),o=_e();return(0,Yg.jsx)(e.In,{children:(0,Yg.jsx)("div",{className:$("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":o.zenModeEnabled}),children:t})})},RI=h6;h6.displayName="FooterCenter";h();h();h();var Vo=v(k(),1),DI=()=>(0,Vo.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,Vo.jsx)("path",{d:"M39.9 32.889a.326.326 0 0 0-.279-.056c-2.094-3.083-4.774-6-7.343-8.833l-.419-.472a.212.212 0 0 0-.056-.139.586.586 0 0 0-.167-.111l-.084-.083-.056-.056c-.084-.167-.28-.278-.475-.167-.782.39-1.507.973-2.206 1.528-.92.722-1.842 1.445-2.708 2.25a8.405 8.405 0 0 0-.977 1.028c-.14.194-.028.361.14.444-.615.611-1.23 1.223-1.843 1.861a.315.315 0 0 0-.084.223c0 .083.056.166.111.194l1.09.833v.028c1.535 1.528 4.244 3.611 7.12 5.861.418.334.865.667 1.284 1 .195.223.39.473.558.695.084.11.28.139.391.055.056.056.14.111.196.167a.398.398 0 0 0 .167.056.255.255 0 0 0 .224-.111.394.394 0 0 0 .055-.167c.029 0 .028.028.056.028a.318.318 0 0 0 .224-.084l5.082-5.528a.309.309 0 0 0 0-.444Zm-14.63-1.917a.485.485 0 0 0 .111.14c.586.5 1.2 1 1.843 1.555l-2.569-1.945-.251-.166c-.056-.028-.112-.084-.168-.111l-.195-.167.056-.056.055-.055.112-.111c.866-.861 2.346-2.306 3.1-3.028-.81.805-2.43 3.167-2.095 3.944Zm8.767 6.89-2.122-1.612a44.713 44.713 0 0 0-2.625-2.5c1.145.861 2.122 1.611 2.262 1.75 1.117.972 1.06.806 1.815 1.445l.921.666a1.06 1.06 0 0 1-.251.25Zm.558.416-.056-.028c.084-.055.168-.111.252-.194l-.196.222ZM1.089 5.75c.055.361.14.722.195 1.056.335 1.833.67 3.5 1.284 4.75l.252.944c.084.361.223.806.363.917 1.424 1.25 3.602 3.11 5.947 4.889a.295.295 0 0 0 .363 0s0 .027.028.027a.254.254 0 0 0 .196.084.318.318 0 0 0 .223-.084c2.988-3.305 5.221-6.027 6.813-8.305.112-.111.14-.278.14-.417.111-.111.195-.25.307-.333.111-.111.111-.306 0-.39l-.028-.027c0-.055-.028-.139-.084-.167-.698-.666-1.2-1.138-1.731-1.638-.922-.862-1.871-1.75-3.881-3.75l-.028-.028c-.028-.028-.056-.056-.112-.056-.558-.194-1.703-.389-3.127-.639C6.087 2.223 3.21 1.723.614.944c0 0-.168 0-.196.028l-.083.084c-.028.027-.056.055-.224.11h.056-.056c.028.167.028.278.084.473 0 .055.112.5.112.555l.782 3.556Zm15.496 3.278-.335-.334c.084.112.196.195.335.334Zm-3.546 4.666-.056.056c0-.028.028-.056.056-.056Zm-2.038-10c.168.167.866.834 1.033.973-.726-.334-2.54-1.167-3.379-1.445.838.167 1.983.334 2.346.472ZM1.424 2.306c.419.722.754 3.222 1.089 5.666-.196-.778-.335-1.555-.503-2.278-.251-1.277-.503-2.416-.838-3.416.056 0 .14 0 .252.028Zm-.168-.584c-.112 0-.223-.028-.307-.028 0-.027 0-.055-.028-.055.14 0 .223.028.335.083Zm-1.089.222c0-.027 0-.027 0 0ZM39.453 1.333c.028-.11-.558-.61-.363-.639.42-.027.42-.666 0-.666-.558.028-1.144.166-1.675.25-.977.194-1.982.389-2.96.61-2.205.473-4.383.973-6.561 1.557-.67.194-1.424.333-2.066.666-.224.111-.196.333-.084.472-.056.028-.084.028-.14.056-.195.028-.363.056-.558.083-.168.028-.252.167-.224.334 0 .027.028.083.028.11-1.173 1.556-2.485 3.195-3.909 4.945-1.396 1.611-2.876 3.306-4.356 5.056-4.719 5.5-10.052 11.75-15.943 17.25a.268.268 0 0 0 0 .389c.028.027.056.055.084.055-.084.084-.168.14-.252.222-.056.056-.084.111-.084.167a.605.605 0 0 0-.111.139c-.112.111-.112.305.028.389.111.11.307.11.39-.028.029-.028.029-.056.056-.056a.44.44 0 0 1 .615 0c.335.362.67.723.977 1.028l-.698-.583c-.112-.111-.307-.083-.39.028-.113.11-.085.305.027.389l7.427 6.194c.056.056.112.056.196.056s.14-.028.195-.084l.168-.166c.028.027.083.027.111.027.084 0 .14-.027.196-.083 10.052-10.055 18.15-17.639 27.42-24.417.083-.055.111-.166.111-.25.112 0 .196-.083.251-.194 1.704-5.194 2.039-9.806 2.15-12.083v-.028c0-.028.028-.056.028-.083.028-.056.028-.084.028-.084a1.626 1.626 0 0 0-.111-1.028ZM21.472 9.5c.446-.5.893-1.028 1.34-1.5-2.876 3.778-7.65 9.583-14.408 16.5 4.607-5.083 9.242-10.333 13.068-15ZM5.193 35.778h.084-.084Zm3.462 3.194c-.027-.028-.027-.028 0-.028v.028Zm4.16-3.583c.224-.25.448-.472.699-.722 0 0 0 .027.028.027-.252.223-.475.445-.726.695Zm1.146-1.111c.14-.14.279-.334.446-.5l.028-.028c1.648-1.694 3.351-3.389 5.082-5.111l.028-.028c.419-.333.921-.694 1.368-1.028a379.003 379.003 0 0 0-6.952 6.695ZM24.794 6.472c-.921 1.195-1.954 2.778-2.82 4.028-2.736 3.944-11.532 13.583-11.727 13.75a1976.983 1976.983 0 0 1-8.042 7.639l-.167.167c-.14-.167-.14-.417.028-.556C14.49 19.861 22.03 10.167 25.074 5.917c-.084.194-.14.36-.28.555Zm4.83 5.695c-1.116-.64-1.646-1.64-1.34-2.611l.084-.334c.028-.083.084-.194.14-.277.307-.5.754-.917 1.257-1.167.027 0 .055 0 .083-.028-.028-.056-.028-.139-.028-.222.028-.167.14-.278.335-.278.335 0 1.369.306 1.76.639.111.083.223.194.335.305.14.167.363.445.474.667.056.028.112.306.196.445.056.222.111.472.084.694-.028.028 0 .194-.028.194a2.668 2.668 0 0 1-.363 1.028c-.028.028-.028.056-.056.084l-.028.027c-.14.223-.335.417-.53.556-.643.444-1.369.583-2.095.389 0 0-.195-.084-.28-.111Zm8.154-.834a39.098 39.098 0 0 1-.893 3.167c0 .028-.028.083 0 .111-.056 0-.084.028-.14.056-2.206 1.61-4.356 3.305-6.506 5.028 1.843-1.64 3.686-3.306 5.613-4.945.558-.5.949-1.139 1.06-1.861l.28-1.667v-.055c.14-.334.67-.195.586.166Z",fill:"currentColor"})}),NI=()=>(0,Vo.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,Vo.jsx)("path",{d:"M429.27 96.74c2.47-1.39 4.78-3.02 6.83-4.95 1.43-1.35 2.73-2.86 3.81-4.51-.66.9-1.4 1.77-2.23 2.59-2.91 2.84-5.72 5.09-8.42 6.87h.01ZM343.6 69.36c.33 3.13.58 6.27.79 9.4.09 1.37.18 2.75.25 4.12-.12-4.46-.27-8.93-.5-13.39-.11-2.08-.24-4.16-.4-6.24-.06 1.79-.11 3.85-.13 6.11h-.01ZM378.47 98.34c.01-.37.07-1.13.01-6.51-.11 1.9-.22 3.81-.31 5.71-.07 1.42-.22 2.91-.16 4.35.39.03.78.07 1.17.1-.92-.85-.76-2.01-.72-3.66l.01.01ZM344.09 86.12c-.09-2.41-.22-4.83-.39-7.24v12.21c.15-.05.32-.09.47-.14.05-1.61-.03-3.23-.09-4.83h.01ZM440.69 66.79c-.22-.34-.45-.67-.69-.99-3.71-4.87-9.91-7.14-15.65-8.55-1.05-.26-2.12-.49-3.18-.71 2.29.59 4.48 1.26 6.64 2.02 7.19 2.54 10.57 5.41 12.88 8.23ZM305.09 72.46l1.2 3.6c.84 2.53 1.67 5.06 2.46 7.61.24.78.5 1.57.73 2.36.22-.04.44-.08.67-.12a776.9 776.9 0 0 1-5.01-13.57c-.02.04-.03.09-.05.13v-.01ZM345.49 90.25v.31c1.48-.42 3.05-.83 4.66-1.2-1.56.25-3.12.52-4.66.89ZM371.02 90.22c0-.57-.04-1.14-.11-1.71-.06-.02-.12-.04-.19-.05-.21-.05-.43-.08-.65-.11.42.16.74.88.95 1.87ZM398.93 54.23c-.13 0-.27-.01-.4-.02l.03.4c.11-.15.23-.27.37-.38ZM401.57 62.28v-.15c-1.22-.24-2.86-.61-3.23-1.25-.09-.15-.18-.51-.27-.98-.09.37-.2.73-.33 1.09 1.24.56 2.52.98 3.83 1.29ZM421.73 88.68c-2.97 1.65-6.28 3.12-9.69 3.68v.18c4.72-.14 11.63-3.85 16.33-8.38-2.04 1.75-4.33 3.24-6.63 4.53l-.01-.01ZM411.28 80.92c-.05-1.2-.09-2.4-.15-3.6-.21 5.66-.46 11.38-.47 14.51.24-.02.48-.04.71-.07.15-3.61.05-7.23-.09-10.83v-.01Z",transform:"translate(-144.023 -51.76)"}),(0,Vo.jsx)("path",{d:"M425.38 67.41c-3.5-1.45-7.19-2.57-14.06-3.62.09 1.97.06 4.88-.03 8.12.03.04.06.09.06.15.19 1.36.28 2.73.37 4.1.25 3.77.39 7.55.41 11.33 0 1.38-.01 2.76-.07 4.13 1.4-.25 2.78-.65 4.12-1.15 4.07-1.5 7.94-3.78 11.28-6.54 2.33-1.92 5.13-4.49 5.88-7.58.63-3.53-2.45-6.68-7.97-8.96l.01.02ZM411.35 92.53v-.06l-.34.03c.11.01.22.03.34.03ZM314.26 64.06c-.23-.59-.47-1.17-.7-1.75.57 1.62 1.11 3.25 1.6 4.9l.15.54 2.35 6.05c.32.82.66 1.64.98 2.46-1.38-4.1-2.83-8.17-4.39-12.2h.01ZM156.82 103.07c-.18.13-.38.23-.58.33 1.32-.03 2.66-.2 3.93-.34.86-.09 1.72-.22 2.58-.33-2.12.1-4.12.17-5.94.34h.01ZM210.14 68.88s.03.04.05.07c.18-.31.39-.64.58-.96-.21.3-.42.6-.64.89h.01ZM201.65 82.8c-.5.77-1.02 1.56-1.49 2.37 1.11-1.55 2.21-3.1 3.2-4.59-.23.23-.49.51-.75.79-.32.47-.65.95-.96 1.43ZM194.03 98.66c-.33-.4-.65-.84-1.05-1.17-.24-.2-.07-.49.17-.56-.23-.26-.42-.5-.63-.75 1.51-2.55 3.93-5.87 6.4-9.28-.17-.08-.29-.28-.2-.49.04-.09.09-.17.13-.26-1.21 1.78-2.42 3.55-3.61 5.33-.87 1.31-1.74 2.64-2.54 4-.29.5-.63 1.04-.87 1.61.81.65 1.63 1.27 2.47 1.88-.09-.11-.18-.21-.27-.32v.01ZM307.79 82.93c-1-3.17-2.05-6.32-3.1-9.48-1.62 4.08-3.69 9.17-6.16 15.19 3.32-1.04 6.77-1.87 10.27-2.5-.32-1.08-.67-2.15-1.01-3.21ZM149.5 80.7c.05-1.71.04-3.43 0-5.14-.1 2.26-.16 4.51-.22 6.77-.02.73-.03 1.46-.04 2.19.14-1.27.2-2.55.24-3.82h.02ZM228.98 98.3c.39 1.25.91 3.03.94 3.91.06-.03.12-.07.17-.1.08-1.29-.55-2.65-1.11-3.81ZM307.72 53.36c.81.5 1.53 1.04 2.07 1.49-.38-.8-.78-1.58-1.21-2.35-.17.03-.34.06-.51.11-.43.12-.86.26-1.29.41.35-.01.53.1.94.34ZM283.69 96.14c3.91-7.25 6.89-13.35 8.88-18.15l1.1-2.66c-1.27 2.64-2.56 5.27-3.83 7.9-1.53 3.15-3.06 6.31-4.58 9.47-.87 1.81-1.76 3.62-2.54 5.47.04.02.07.04.11.07.05.05.1.09.15.14.05-.73.27-1.48.71-2.24ZM289.92 103.23s-.04.01-.05.03c0-.02.04-.03.05-.04.05-.05.11-.1.16-.15l.21-.21c-.55 0-1.5-.27-2.55-.72.4.26.8.51 1.22.74.24.13.48.26.73.37.05.02.1.03.14.05a.27.27 0 0 1 .08-.07h.01ZM269.23 68.49c-.39-.19-.82-.48-1.33-.87-3.06-1.56-6.31-2.78-9.36-2.35-3.5.49-5.7 1.11-7.74 2.44 5.71-2.6 12.82-2.07 18.44.79l-.01-.01ZM177.87 53.69l1.06.03c-.96-.22-2-.25-2.89-.3-4.95-.26-9.99.33-14.86 1.19-2.44.43-4.88.95-7.28 1.59 9.09-1.76 15.69-2.77 23.97-2.51ZM219.85 55.51c-.18.12-.36.27-.56.45-.45.53-.86 1.11-1.26 1.66-1.91 2.61-3.71 5.31-5.57 7.95l-.12.18 8.05-10.11c-.18-.05-.36-.1-.55-.13h.01ZM510.71 54.1c.12-.15.29-.3.53-.45.69-.4 3.72-.63 5.87-.74-.36-.02-.73-.04-1.09-.05-1.84-.03-3.67.09-5.49.35.05.3.12.59.18.88v.01ZM510.76 86.02c1.37-3.07 2.49-6.27 3.57-9.46.55-1.64 1.12-3.3 1.6-4.97-1.59 4.01-3.67 9.14-6.2 15.3.24-.08.5-.14.74-.22.1-.22.19-.44.29-.65ZM566.95 75.76c.11-.02.23.03.31.11-.05-.13-.09-.26-.14-.39-.05.09-.11.18-.17.28ZM511.33 86.41c3.08-.89 6.24-1.62 9.46-2.14-1.51-3.98-2.98-7.96-4.39-11.87-.05.15-.09.31-.14.46-1.02 3.32-2.15 6.61-3.39 9.85-.48 1.25-.98 2.49-1.53 3.7h-.01ZM578.24 74.45c.11-.44.23-.87.35-1.31-.31.7-.64 1.39-.97 2.08.09.21.19.4.28.61.12-.46.23-.92.35-1.38h-.01ZM520.62 53.11c-.09 0-.18-.01-.28-.02.38.34.29 1.08.93 2.53l6.65 17.15c2.2 5.68 4.69 11.36 7.41 16.87l1.06 2.17c-2.95-7.05-5.92-14.08-8.87-21.13-1.58-3.79-3.16-7.59-4.7-11.4-.78-1.92-1.73-3.89-2.25-5.91-.03-.1 0-.19.04-.26h.01ZM578.78 77.87c1.45-5.77 3.07-10.43 3.58-13.36.05-.34.16-.88.31-1.55-.67 1.79-1.37 3.56-2.08 5.33-.12.43-.23.86-.35 1.29-.65 2.43-1.29 4.86-1.9 7.3.14.33.29.65.43 1l.01-.01ZM545.3 94.66c.02-.44.03-.83.05-1.12.02-1.01.05-2.02.11-3.02.03-6.66-.46-14.33-1.46-22.8-.13-.42-.27-1.24-.56-2.89 0-.02 0-.04-.01-.06.62 6.61.95 13.25 1.32 19.87.17 3.08.33 6.16.52 9.23.02.25.03.52.04.78l-.01.01ZM580.77 102.81c.13.2.27.38.37.49.27-.11.53-.22.8-.32-.43.09-.82.05-1.17-.16v-.01ZM530.48 104.07h.33c-.36-.13-.71-.32-1.04-.56.14.24.3.47.45.7.06-.08.14-.13.26-.13v-.01ZM542.63 58.82c.06.23.11.47.15.71.14-.33.36-.62.7-.86-.28.05-.57.11-.85.15ZM583.81 57.87c.15-.7.29-1.41.42-2.11-.14.45-.28.9-.42 1.34-.46 1.44-.89 2.89-1.31 4.34.44-1.19.88-2.37 1.31-3.57ZM523.62 91.48c-4.66 1.17-9.05 2.89-14.02 5.27 4.65-1.84 9.48-3.29 14.28-4.63-.09-.22-.17-.41-.26-.64ZM460.64 78.3c-.04-2.9-.11-5.81-.28-8.71-.1-1.68-.17-3.43-.5-5.09-.07.02-.14.03-.2.05.3 6.54.45 12.17.51 17.12.17-.07.34-.14.51-.2 0-1.06-.01-2.11-.03-3.17h-.01ZM470.63 63.24c-3.38-.26-6.81.32-10.1 1.1.41 2.01.47 4.14.57 6.18.18 3.55.25 7.11.27 10.67 3.31-1.38 6.5-3.12 9.3-5.35 1.96-1.56 3.86-3.41 5.02-5.66.73-1.41 1.19-3.22.26-4.65-1.09-1.7-3.46-2.14-5.32-2.29ZM460.29 63.68c1-.24 2.01-.46 3.04-.65-1.15.16-2.37.38-3.71.69v.13c.07-.02.15-.04.22-.05.11-.13.3-.18.45-.11v-.01ZM457.24 100.96c.43-.03.86-.07 1.29-.11.14-.49.27-.99.38-1.49-.44.7-1 1.23-1.67 1.6ZM482.88 104.98c-.18.23-.36.38-.55.47.14.09.27.19.4.28a70.76 70.76 0 0 0 4.37-4.63c.76-.89 1.52-1.81 2.19-2.77-.3-.27-.61-.53-.92-.79-.07 1.94-4.62 6.32-5.49 7.45v-.01Z",transform:"translate(-144.023 -51.76)"}),(0,Vo.jsx)("path",{d:"M474.36 63.31c-.4-.16-.84-.27-1.29-.37 1.56.42 3.08 1.22 3.76 2.74.62 1.4.32 2.95-.28 4.32.7-1.22.94-2.34.74-3.47-.24-1.33-1.19-2.54-2.93-3.21v-.01ZM477.34 89.18c-1.2-.81-2.4-1.62-3.6-2.42-.14.1-.26.19-.4.29 1.4.67 2.73 1.39 4 2.13ZM465.88 93.85c.37.25.74.5 1.1.75.46.32.92.65 1.38.97-1.57-1.2-2.01-1.61-2.49-1.72h.01ZM574.92 90.06c-2.28-5.21-4.93-11.13-5.67-12.26-.1-.15-1.57-3.01-1.63-3.08 0 0-.01.02-.02.02.4 1.37 1.09 2.69 1.65 3.99 2.14 4.95 4.36 9.86 6.67 14.73.6 1.26 1.21 2.52 1.83 3.78-.75-2.01-1.64-4.45-2.83-7.18ZM448.73 65.29c.1.2.22.38.34.57.22-.02.43-.06.65-.08v-.08c-.14-.05-.25 0-.99-.41ZM460.16 94.81c-.02.31-.06.59-.1.89-.03 1.71-.33 3.43-.79 5.07.15-.02.3-.03.45-.05.01-.04.02-.08.03-.11.09-.34.15-.69.2-1.03.17-1.07.25-2.16.33-3.24.05-.69.08-1.39.12-2.08-.27.1-.27.26-.24.57v-.02Z",transform:"translate(-144.023 -51.76)"}),(0,Vo.jsx)("path",{d:"m328.67 98.12-3.22-6.58c-1.29-2.63-2.53-5.29-3.72-7.97-.25-.85-.52-1.69-.79-2.53-.81-2.57-1.67-5.12-2.55-7.67-1.92-5.53-3.9-11.08-6.32-16.41-.72-1.58-1.46-3.44-2.63-4.79-.03-.17-.16-.29-.34-.36a.282.282 0 0 0-.23-.04c-.06-.01-.12 0-.18.01-.74.06-1.5.38-2.19.61-2.22.77-4.4 1.64-6.63 2.38-.03-.08-.06-.16-.09-.25-.15-.42-.82-.24-.67.19.03.09.07.19.1.28l-.18.06c-.36.11-.28.6 0 .68.18 1.18.63 2.36.98 3.49.03.09.06.17.08.26-.08.23-.17.46-.24.64-.37.98-.79 1.94-1.21 2.9-1.27 2.89-2.62 5.75-3.98 8.6-3.18 6.67-6.44 13.31-9.64 19.97-1.08 2.25-2.2 4.5-3.15 6.81-.13.32.24.5.5.37 1.34 1.33 2.84 2.5 4.4 3.57.65.44 1.31.87 2.01 1.24.4.22.86.48 1.33.5.24.01.35-.19.33-.37.11-.1.21-.21.28-.28.41-.41.81-.84 1.2-1.26.85-.92 1.69-1.87 2.5-2.84 6.31-2.34 12.6-4.31 18.71-5.84 2.14 5.3 3.43 8.43 3.97 9.58.55 1.05 1.15 1.88 1.82 2.52 1.32.56 6.96-.03 9.23-1.96.87-1.28 1.19-2.67.93-4.15-.09-.5-.22-.95-.4-1.33l-.01-.03Zm-20.09-45.61c.43.77.83 1.56 1.21 2.35-.54-.45-1.27-.99-2.07-1.49-.42-.24-.6-.35-.94-.34.43-.15.85-.29 1.29-.41.17-.05.34-.08.51-.11Zm-25.86 45.66c.78-1.85 1.67-3.66 2.54-5.47 1.51-3.16 3.05-6.31 4.58-9.47 1.28-2.63 2.56-5.26 3.83-7.9l-1.1 2.66c-1.99 4.79-4.97 10.9-8.88 18.15-.43.76-.66 1.51-.71 2.24-.05-.05-.1-.09-.15-.14a.259.259 0 0 0-.11-.07Zm6.24 4.71c-.42-.23-.82-.48-1.22-.74 1.05.45 2 .72 2.55.72l-.21.21c-.05.05-.11.1-.16.15-.01.01-.04.03-.05.04 0-.02.03-.02.05-.03a.27.27 0 0 0-.08.07c-.05-.02-.1-.03-.14-.05-.25-.1-.49-.24-.73-.37h-.01Zm15.73-29.43c1.05 3.15 2.1 6.31 3.1 9.48.34 1.06.69 2.13 1.01 3.21-3.5.63-6.95 1.46-10.27 2.5 2.48-6.03 4.54-11.11 6.16-15.19Zm4.79 12.57c-.23-.79-.49-1.58-.73-2.36-.79-2.54-1.63-5.08-2.46-7.61l-1.2-3.6c.02-.04.04-.09.05-.13 1.6 4.45 3.28 9 5.01 13.57l-.67.12v.01Zm5.83-18.27-.15-.54c-.49-1.64-1.03-3.28-1.6-4.9.23.58.47 1.17.7 1.75 1.56 4.03 3.01 8.1 4.39 12.2-.33-.82-.67-1.64-.98-2.46l-2.35-6.05h-.01ZM390.43 79.37c-.13-10.43-.22-17.5-.24-19.97-.24-1.6.21-2.88-.65-3.65-.14-.13-.32-.23-.52-.32h.03c.45 0 .45-.69 0-.7-1.75-.03-3.5-.04-5.25-.14-1.38-.08-2.76-.21-4.15-.31-.07 0-.12.01-.17.04-.21-.07-.47.03-.45.31l.03.45c-.11.14-.19.3-.22.5-.21 1.26-.32 13.67-.36 23.59-.32 5.79-.67 11.57-.97 17.36-.09 1.73-.29 3.54-.21 5.3-.39.02-.38.64.04.69v.12c.05.44.74.45.7 0v-.06c1.1.09 2.2.21 3.3.3 1.14.19 2.44.2 3.29.17 1.73-.05 2.92-.05 3.8-.37.45-.05.9-.11 1.35-.17.44-.06.25-.73-.19-.67h-.01c.24-.32.45-.72.62-1.25.66-1.84.41-6.36.34-11.33l-.13-9.9.02.01Zm-12.26 18.17c.09-1.91.2-3.81.31-5.71.06 5.38 0 6.14-.01 6.51-.05 1.65-.21 2.81.72 3.66-.39-.04-.78-.07-1.17-.1-.06-1.44.09-2.93.16-4.35l-.01-.01ZM588.97 53.85c-2.06-.25-3.17-.51-3.76-.6a.3.3 0 0 1 .04-.08c.22-.39-.39-.75-.6-.35-.56 1.02-.9 2.19-1.26 3.29-.61 1.88-1.17 3.78-1.72 5.68-.63 2.19-1.24 4.39-1.83 6.59-.81 2.03-1.67 4.05-2.61 6.03-1.7-3.64-3.11-6.04-4.03-7.57-2.26-3.74-2.85-5.48-3.57-6.08l.31-.09c.43-.12.25-.8-.19-.67-1.06.3-2.12.6-3.17.95-.93.32-1.85.69-2.76 1.07-.13.05-.19.16-.22.27-.04.02-.08.05-.11.07-.04-.06-.07-.12-.11-.18a.354.354 0 0 0-.48-.12c-.16.09-.22.32-.13.48l.33.54c0 .09.02.18.06.28.51 1.16.78 1.38.72 1.47-2.42 3.44-5.41 7.86-6.2 9.1-1.27 1.97-2.01 3.14-2.45 3.84l-.91-6.56-.43-4.1c-.19-1.85-.37-3.23-.53-4.13-.19-1.1-.3-2.15-.45-3.16-.2-1.36-.29-2.06-.47-2.42h.04c.45.02.45-.68 0-.7-3.43-.16-6.81.94-10.17 1.48-.24-.22-.73-.04-.58.32.24.59.33 1.25.43 1.87.17 1.06.29 2.13.4 3.2.32 3.09.53 6.2.74 9.3.44 6.75.77 13.51 1.17 20.26.11 1.95.13 3.96.46 5.89.05.3.37.31.55.14.74 1.71 2.87 1.27 6.13 1.27 1.34 0 2.39.04 2.99-.11.02.32.48.53.63.18 3.61-8.26 7.41-16.46 12.05-24.2.03-.05.04-.1.05-.15.3.73.64 1.45.94 2.16.97 2.26 1.97 4.52 2.98 6.76 2.26 5.03 4.54 10.07 7.09 14.96.47.9.94 1.79 1.47 2.65.2.32.4.67.66.96-.18.25 0 .68.34.54.91-.38 1.82-.75 2.76-1.07 1.04-.35 2.11-.65 3.17-.95.39-.11.28-.66-.07-.68.62-.4.95-.96.87-1.91-.3-3.34.72-7.47.86-8.52l2.14-11.43c1.75-10.74 3.13-17.51 3.23-20.86.02-.49.08-2.84.13-3.24.17-1.25.48-1-4.96-1.65l.03-.02Zm-46.19 5.67c-.04-.24-.09-.48-.15-.71l.85-.15c-.34.24-.56.53-.7.86Zm1.95 25.12c-.36-6.63-.7-13.26-1.32-19.87 0 .02 0 .04.01.06.29 1.65.44 2.47.56 2.89 1 8.46 1.5 16.14 1.46 22.8-.06.99-.1 2-.11 3.02-.01.29-.03.68-.05 1.12-.01-.26-.03-.53-.04-.78-.19-3.08-.35-6.16-.52-9.23l.01-.01Zm36.4 18.66c-.11-.11-.24-.29-.37-.49.35.21.74.26 1.17.16-.27.11-.53.22-.8.32v.01Zm-.89-33.72c.12-.43.23-.86.35-1.29.71-1.77 1.41-3.55 2.08-5.33-.15.68-.26 1.22-.31 1.55-.5 2.94-2.13 7.59-3.58 13.36-.15-.35-.29-.66-.43-1 .61-2.44 1.25-4.87 1.9-7.3l-.01.01Zm3.56-12.48c.14-.44.28-.89.42-1.34-.13.7-.27 1.41-.42 2.11-.43 1.19-.86 2.38-1.31 3.57.42-1.45.85-2.9 1.31-4.34Zm-5.22 16.05c-.11.44-.23.87-.35 1.31-.12.46-.23.92-.35 1.38-.1-.22-.19-.4-.28-.61.34-.69.66-1.38.97-2.08h.01Zm-11.64 2.62c.06-.1.12-.19.17-.28.05.13.09.26.14.39a.398.398 0 0 0-.31-.11Zm2.3 2.98c-.56-1.3-1.25-2.63-1.65-3.99 0 0 .01-.02.02-.02.06.08 1.52 2.93 1.63 3.08.73 1.13 3.38 7.04 5.67 12.26 1.2 2.73 2.08 5.17 2.83 7.18-.62-1.25-1.23-2.51-1.83-3.78-2.31-4.87-4.53-9.78-6.67-14.73ZM275.92 87.03c-1.06-2.18-1.13-3.45-2.44-2.93-1.52.57-2.94 1.3-4.5 2.1-1.4.72-2.68 1.44-3.92 2.12.01-.25-.24-.5-.51-.34-4.8 2.93-12.41 4.7-17.28 1.31-1.98-1.77-3.32-4.15-3.97-5.78-.29-.95-.49-1.94-.63-2.93-.14-3.34 1.58-6.53 3.9-9.12.8-.79 1.68-1.51 2.66-2.12 3.7-2.3 8.22-3.07 12.51-2.51 2.71.35 5.32 1.24 7.71 2.55.39.22.75-.39.35-.6-.18-.1-.37-.18-.55-.27.56.27 1.03.33 1.51.19l-.48.39c-.15.11-.23.3-.13.48.09.15.33.24.48.13 1.3-.97 2.46-2.09 3.45-3.37.37-.29.64-.6.65-.97v-.02c.08-.33-.03-.7-.21-1.08-.31-.87-.98-2.01-2.19-3.26-2.43-2.52-3.79-3.45-5.68-4.26-1.14-.49-3.12-1.06-4.42-1.23-3.28-.42-10.64-1.21-18.18 4.11-7.74 5.46-11.94 12.3-12.23 20.61-.08 2.06.04 3.98.34 5.71.74 4.18 2.57 8 5.44 11.34 4.26 4.99 9.76 7.52 16.34 7.52 4.85 0 9.69-1.77 14.89-4.62.23-.12.45-.23.68-.35 2.19-1.1 4.37-2.23 6.46-3.5.49-.3 1.03-.61 1.5-.98 1.47-.87 1.11-1.12.49-2.95-.39-1.14-.76-2.7-2.06-5.36l.02-.01Zm-17.38-21.76c3.05-.42 6.31.79 9.36 2.35.51.39.94.68 1.33.87-5.61-2.86-12.72-3.39-18.44-.79 2.05-1.33 4.24-1.95 7.74-2.44l.01.01ZM443.67 72.67c-.4-2.2-1.15-4.33-2.37-6.22-1.49-2.32-3.58-4.19-5.91-5.64-6.17-3.81-13.75-5.11-20.83-6.01-3.23-.41-6.47-.69-9.72-.92l-1.39-.12c-.85-.07-1.52-.1-2.05-.1-1.08-.06-2.17-.12-3.25-.17-.08 0-.14.02-.19.05-.1.05-.18.14-.16.3.27 2.55-.01 5.12-.92 7.52-.15.38.4.56.62.28 1.32.59 2.68 1.05 4.08 1.37 0 2.78-.14 7.58-.33 12.91 0 0 0 .02-.01.03-.61 3.66-.79 7.42-1 11.12-.23 4.01-.43 8.03-.44 12.05 0 .64 0 1.28.03 1.93.02.31 0 .68.15.96.06.11.14.16.24.17-.2.17-.21.54.11.59 3.83.67 7.78.71 11.68.25 2.3-.19 4.87-.65 7.65-1.56 1.85-.54 3.67-1.18 5.43-1.91 7.2-3.02 14.31-8.07 17.35-15.53.76-1.86 1.17-3.8 1.31-5.75.3-1.93.28-3.82-.09-5.58l.01-.02Zm-19.32-15.42c5.74 1.41 11.94 3.68 15.65 8.55.25.32.47.65.69.99-2.3-2.82-5.68-5.69-12.88-8.23-2.16-.76-4.35-1.43-6.64-2.02 1.06.21 2.13.45 3.18.71Zm-25.82-3.04c.13 0 .27.01.4.02-.14.1-.26.23-.37.38 0-.13-.02-.26-.03-.4Zm34.82 22.17c-.75 3.09-3.55 5.66-5.88 7.58-3.35 2.76-7.21 5.03-11.28 6.54-1.33.49-2.71.9-4.12 1.15.06-1.38.08-2.76.07-4.13-.02-3.78-.16-7.56-.41-11.33-.09-1.37-.18-2.74-.37-4.1 0-.06-.03-.11-.06-.15.09-3.25.12-6.16.03-8.12 6.86 1.05 10.56 2.17 14.06 3.62 5.52 2.28 8.59 5.44 7.97 8.96l-.01-.02Zm-22 16.15c-.12 0-.23-.02-.34-.03l.34-.03v.06Zm-.69-.7c0-3.13.26-8.84.47-14.51.06 1.2.11 2.41.15 3.6.15 3.6.25 7.23.09 10.83-.24.03-.48.05-.71.07v.01Zm-12.33-30.94c.37.63 2.01 1.01 3.23 1.25v.15c-1.31-.31-2.59-.73-3.83-1.29.12-.36.23-.72.33-1.09.08.48.18.84.27.98Zm13.7 31.65v-.18c3.41-.56 6.71-2.02 9.69-3.68 2.31-1.28 4.59-2.78 6.63-4.53-4.69 4.53-11.61 8.24-16.33 8.38l.01.01Zm24.07-.75c-2.05 1.93-4.37 3.56-6.83 4.95 2.7-1.78 5.52-4.03 8.42-6.87.82-.82 1.56-1.69 2.23-2.59-1.08 1.65-2.38 3.16-3.81 4.51h-.01ZM187.16 92.14c-.79-2.47-2.1-7.12-3.1-6.87-.19-.01-2.09.77-4.08 1.54-3.06 1.18-5.91 2.13-10.09 2.82-2.74.42-5.87 1.01-10.61 1.06.04-3.34.05-6.01.05-7.99 7.97-.65 12.33-2.11 16.37-3.55 1.11-.39 2.69-1.01 2.63-1.8-.08-.35-.55-1.39-1.17-2.61-.47-1.16-.98-2.31-1.61-3.38-.42-.71-1.04-1.69-1.86-2.06-.11-.08-.22-.13-.29-.12-.02 0-.04 0-.07.01-.19-.04-.39-.05-.6-.01-.17.03-.24.15-.25.28-.04.02-.09.04-.14.05-4.33 1.48-8.85 2.33-13.24 3.61a499.1 499.1 0 0 0-.31-8.19c4.51-.99 8.88-1.38 13.11-1.82 3.68-.38 6.28.12 7.47.34.59.11.9.16 1.16.18h.1c-.1.37.44.66.62.28.02-.04.03-.08.05-.13.15.2.53.22.62-.1.17-.58.19-1.21.21-1.81v-.36c.03-.15.05-.3.07-.45.52-2.47.33-5.09-.64-7.44-.11-.27-.44-.28-.6-.14-.08-.21-.15-.42-.24-.62-.19-.41-.79-.05-.6.35.03.07.05.15.09.22-.98-.42-2.15-.54-3.17-.63-2.17-.19-4.37-.14-6.54 0-5.7.35-11.4 1.3-16.91 2.79-2.08.56-4.13 1.22-6.14 2-4.54 1.05-3.79 1.51-2.17 6.07.18.51.46 1.68.54 1.94.82 2.47 1.08 2.13 3.1 2.13s0 .05 0 .08h.52c-.48 2.66-.51 5.45-.62 8.13-.15 3.48-.22 6.96-.28 10.45 0 .41-.01.82-.02 1.23-.16.29-.33.57-.51.85-.05.38-.09.77-.14 1.18-.42 3.52-.59 6.48-.52 8.8v.34c.02.47.05.76.06.87.16 1.57-.26 3.47 1.35 3.79 1.61.32 3.5.55 4.85.55.11 0 .22-.02.33-.02 1.79.24 3.67.05 5.45-.12 2.85-.28 5.69-.7 8.51-1.19 3.03-.53 6.05-1.14 9.04-1.86 2.4-.58 4.82-1.19 7.13-2.06.51-.19 1.73-.57 2.46-1.14 1.81-.68 2.18-1 1.57-2.67-.23-.62-.48-1.49-.91-2.78l-.03-.02Zm-11.12-38.71c.89.05 1.93.08 2.89.3-.33 0-.68-.02-1.06-.03-8.28-.26-14.88.75-23.97 2.51 2.41-.64 4.85-1.16 7.28-1.59 4.87-.86 9.91-1.45 14.86-1.19Zm-26.53 22.13c.03 1.71.04 3.43 0 5.14-.04 1.27-.11 2.55-.24 3.82 0-.73.02-1.46.04-2.19.05-2.26.12-4.51.22-6.77h-.02Zm6.73 27.85c.2-.1.4-.21.58-.33 1.82-.17 3.82-.24 5.94-.34-.86.11-1.72.24-2.58.33-1.27.14-2.61.31-3.93.34h-.01ZM534.48 85.44c-3.52-8.38-7.07-16.75-10.5-25.17-.63-1.54-1.25-3.09-1.86-4.65-.31-.8-.65-1.6-.87-2.43-.04-.17-.17-.24-.31-.25.1-.2 0-.51-.29-.53-1.59-.08-3.18-.22-4.78-.25-1.96-.03-3.91.13-5.84.42-.31.05-.31.38-.13.56-.03.06-.05.14-.04.22.23 1.54.63 3.06 1.16 4.53.13.35.27.7.41 1.06l-2.68 6.18c-.11.03-.2.09-.25.22-.67 1.9-1.52 3.73-2.34 5.56a536.85 536.85 0 0 1-3.9 8.45c-2.64 5.64-5.34 11.25-7.91 16.93-.44.97-.88 1.94-1.29 2.93-.2.48-.47 1-.55 1.52v.05c-.02.12.02.26.16.34 1.19.73 2.41 1.41 3.66 2.05 1.2.62 2.45 1.25 3.76 1.61.43.12.62-.55.19-.67-1.13-.31-2.2-.83-3.24-1.36 1.09.36 2.1.69 2.75.93 2.82 1.01 2.38 1.1 4.3-3.75 2.1-1.09 4.34-1.96 6.53-2.79 4.35-1.64 8.8-3.03 13.27-4.29.82 2.01 1.77 3.97 2.72 5.92.35.83.62 1.45.79 1.82.22.42.45.8.69 1.15.17.33.33.67.5 1 .42.8.84 1.63 1.4 2.35.23.29.6 0 .55-.31 1.53-.02 3.06-.07 4.58-.27.92-.12 1.82-.32 2.71-.54 1.39-.27 3.85-1.11 3.74-1.42-.67-1.96-1.55-3.87-2.34-5.78-1.57-3.78-3.16-7.56-4.75-11.33v-.01Zm-11.65-26.16c1.54 3.81 3.12 7.6 4.7 11.4 2.94 7.05 5.91 14.09 8.87 21.13l-1.06-2.17c-2.71-5.51-5.2-11.19-7.41-16.87l-6.65-17.15c-.65-1.45-.55-2.19-.93-2.53.09 0 .18.01.28.02a.29.29 0 0 0-.04.26c.52 2.02 1.47 3.98 2.25 5.91h-.01Zm-6.58 13.58c.05-.15.09-.31.14-.46 1.41 3.92 2.88 7.9 4.39 11.87-3.22.52-6.38 1.25-9.46 2.14.55-1.22 1.05-2.46 1.53-3.7 1.24-3.24 2.37-6.53 3.39-9.85h.01Zm-.23-20c.36 0 .73.03 1.09.05-2.15.1-5.18.33-5.87.74-.24.15-.41.3-.53.45-.06-.29-.13-.58-.18-.88 1.82-.26 3.65-.39 5.49-.35v-.01Zm-.09 18.72c-.49 1.67-1.05 3.33-1.6 4.97-1.07 3.19-2.19 6.38-3.57 9.46-.09.21-.19.43-.29.65-.25.07-.5.14-.74.22 2.53-6.16 4.61-11.29 6.2-15.3Zm-6.34 25.16c4.97-2.38 9.37-4.1 14.02-5.27l.26.64c-4.8 1.35-9.63 2.8-14.28 4.63Zm20.17 6.76c.33.23.68.42 1.04.56h-.33c-.12 0-.21.06-.26.13-.15-.23-.31-.45-.45-.7v.01ZM226.57 91.75c-3.55-4.74-6.68-9.11-9.31-12.99 9.2-15.25 10.05-17.81 10.35-18.38.17-.34 1.09-2.27.64-2.53-1.13-.65-1.03-.65-2.97-1.71-1.19-.65-3.04-1.61-4.53-2.12-1.71-.59-1.24-.36-3 2.77-.06.1-.11.2-.17.3-.75 1.02-1.48 2.05-2.2 3.09-1.88 2.71-3.73 5.45-5.69 8.1-3.68-4.91-6.88-8.76-9.51-11.43-.15-.15-.3-.29-.46-.42-1.27-1.28-7.24 3.53-7.93 5.58-.09.09-.19.16-.28.25-.27.26.03.64.33.58.19.65.5 1.29.94 1.91 3.85 5.06 7.19 9.76 9.94 14-1.23 2.61-3.06 5-4.67 7.38l-2.28 3.33c-.5.66-.93 1.23-1.29 1.69-.67.93-2.09 2.61-2.3 3.87-.51.85-1.16 1.84-1.29 2.83-.06.44.61.63.67.19.01-.08.04-.15.06-.22 1.36 1.08 2.76 2.11 4.19 3.11 1.3.91 2.62 1.85 4.04 2.56.21.1.4 0 .48-.17.24.07.48.14.72.2.44.1.62-.57.19-.67-2.02-.48-3.77-1.57-5.23-3.02-.47-.46-.9-.96-1.32-1.46 1.74 1.35 4.2 2.89 5.89 4.14 1.39 1.03 2.85-2.27 4.22-4.2 1.86-2.64 3.96-5.86 5.52-8.29l10.39 14.51c.67.81 1.14 1.21 1.57 1.36-.05.24.12.51.41.4 1.53-.58 3.05-1.19 4.54-1.87 1.52-.69 3.06-1.45 4.36-2.5a.28.28 0 0 0 .12-.23c1.66-1.1.81-1.74-1.41-4.91-1.13-1.58-1.71-2.36-3.7-5.01l-.03-.02Zm2.41 6.54c.56 1.15 1.19 2.52 1.11 3.81-.06.04-.12.07-.17.1-.03-.88-.55-2.66-.94-3.91Zm-16.51-32.73c1.86-2.65 3.65-5.35 5.57-7.95.4-.55.81-1.13 1.26-1.66.19-.18.38-.33.56-.45.18.03.36.08.55.13l-8.05 10.11.12-.18h-.01ZM192.7 95.48c.79-1.37 1.66-2.69 2.54-4 1.19-1.79 2.4-3.56 3.61-5.33-.04.09-.09.17-.13.26-.1.22.03.41.2.49-2.47 3.42-4.89 6.73-6.4 9.28.21.24.4.48.63.75-.24.07-.4.36-.17.56.4.33.72.77 1.05 1.17.09.11.18.21.27.32-.84-.61-1.66-1.24-2.47-1.88.24-.57.58-1.11.87-1.61v-.01Zm7.46-10.32c.47-.81.98-1.59 1.49-2.37.31-.48.64-.95.96-1.43.26-.29.52-.56.75-.79-.99 1.48-2.09 3.03-3.2 4.59Zm10.03-16.22s-.03-.05-.05-.07c.22-.29.43-.59.64-.89-.2.32-.4.65-.58.96h-.01ZM371.54 87.96c-.01-.08-.01-.16-.03-.23-.06-.38-.58-.29-.66.03-.3-.05-.6-.08-.81-.11-1.14-.15-2.29-.19-3.44-.2 1.04-.09 2.09-.18 3.14-.23.45-.02.45-.72 0-.7-6.57.35-13.14 1.23-19.65 2.11-1.53.21-3.05.42-4.57.68-.01 0-.02.01-.04.01-.04-3.33-.13-6.66-.24-9.99-.19-5.7-.4-11.41-.88-17.1-.13-1.51-.23-3.07-.49-4.58 0-.25 0-.48-.02-.68-.06-1.19-.04-2.61-.68-2.78-.16-.07-.72-.16-1.5-.24.22-.17.16-.62-.2-.63-1.19-.04-2.39.09-3.57.23-1.2.14-2.41.32-3.59.6-.16-.1-.41-.06-.5.12-.06.02-.13.03-.19.05-.35.1-.29.55-.03.66-.26.6-.19 2.27-.21 3-.02.66-.66 33.73-.9 40.3-.03.65.06 1.12.04 1.45-.16 3.05.87 4.96 6.34 3.93 1.09-.08 2.75-.77 5.36-1.43 4.13-1.04 5.78-1.52 6.2-1.65 6.43-1.69 6.78-1.97 11.72-2.43.55-.05 4.8-.38 6.03-.3.64.04 1.19.07 1.65.1.09 0 .16-.03.24-.05.1.27.56.33.66-.02.39-1.32.61-2.71.78-4.08.2-1.61.29-3.24.15-4.86.24.03.52-.23.38-.53-.09-.2-.27-.33-.49-.43v-.02Zm-.63.56c.07.57.11 1.14.11 1.71-.21-.99-.53-1.71-.95-1.87.22.03.44.06.65.11.06.01.12.04.19.05Zm-25.41 1.73c1.54-.36 3.1-.64 4.66-.89-1.61.37-3.18.77-4.66 1.2v-.31Zm-.86-7.37c-.07-1.37-.16-2.75-.25-4.12-.21-3.13-.45-6.27-.79-9.4.02-2.25.08-4.31.13-6.11.16 2.08.29 4.16.4 6.24.23 4.46.38 8.93.5 13.39h.01Zm-.94-4c.16 2.41.29 4.83.39 7.24.06 1.6.14 3.22.09 4.83-.15.05-.32.09-.47.14V78.88h-.01ZM483.72 92.83c-3.05-2.28-6.22-4.4-9.38-6.51 8.86-6.49 13.49-12.95 13.73-19.23.04-.76 0-1.5-.13-2.2-.67-3.82-3.5-6.68-8.39-8.48.13.04.27.08.4.13 3.92 1.39 7.74 4.23 8.5 8.56.34 1.95-.05 3.96-.98 5.69-.21.4.39.75.6.35 1.86-3.46 1.46-7.55-.97-10.63-3.53-4.47-9.76-5.88-15.16-6.16-2.32-.12-4.64-.04-6.95.19-6 .32-12.71 1.68-17.63 3.21-.37.11-.67.23-.92.35-.2-.17-.62.02-.57.37v.03c-.64.68-.18 1.64.48 3.21.38.91.67 1.89 1.15 2.58.32.76.68 1.51 1.13 2.19.14.21.38.19.53.07.19-.02.38-.05.57-.08v1.57c-.06.06-.1.13-.11.23-.27 4.18-.34 8.38-.48 12.57l-.3 9.03c-.24 3.91-.44 6.77-.46 7.26-.05.88-.11 1.95.07 2.81-.01.22-.02.43-.04.65 0 .11-.02.23-.03.35 0 .05-.03.27-.01.16-.05.4.5.59.64.28.05.04.12.08.2.08 1.75.13 3.5.28 5.25.3 1.69.02 3.38-.12 5.06-.32.08.23.36.39.55.15.06-.08.11-.17.16-.26.18-.09.24-.32.18-.48.05-.2.1-.4.13-.6.16-.86.25-1.74.33-2.62.11-1.17.17-2.34.23-3.51.15-.01.32-.03.52-.04.36-.03 1.73-.15 2.06-.15.39 0 .7-.02.95-.04 1.76 1.11 3.45 2.35 5.14 3.55 2.83 2.01 5.64 4.04 8.47 6.04 1.42 1 2.85 2 4.29 2.97.1.06.19.07.27.04.08 0 .17-.02.25-.1 1.61-1.56 3.15-3.18 4.6-4.88.75-.88 1.49-1.78 2.15-2.73.01.01.03.02.04.03.34.3.83-.2.49-.49-2.16-1.9-4.34-3.76-6.64-5.48l.03-.01Zm-6.38-3.65a55.72 55.72 0 0 0-4-2.13c.14-.1.26-.19.4-.29 1.2.81 2.4 1.61 3.6 2.42Zm-20.1 11.78c.67-.37 1.23-.91 1.67-1.6-.11.5-.24 1-.38 1.49-.43.04-.86.08-1.29.11Zm2.38-37.24c1.34-.31 2.56-.52 3.71-.69-1.03.19-2.04.41-3.04.65-.14-.07-.34-.02-.45.11-.07.02-.15.04-.22.05v-.13.01Zm.04.84c.07-.02.14-.03.2-.05.34 1.66.41 3.41.5 5.09.17 2.9.24 5.81.28 8.71l.03 3.17c-.17.07-.34.14-.51.2-.06-4.96-.21-10.58-.51-17.12h.01Zm16.04 5.62c-1.16 2.25-3.06 4.1-5.02 5.66-2.8 2.23-5.99 3.97-9.3 5.35-.01-3.56-.09-7.12-.27-10.67-.1-2.04-.16-4.16-.57-6.18 3.3-.78 6.72-1.36 10.1-1.1 1.85.14 4.23.59 5.32 2.29.92 1.43.46 3.24-.26 4.65Zm.85-.18c.6-1.37.9-2.92.28-4.32-.67-1.52-2.2-2.32-3.76-2.74.46.1.89.21 1.29.37 1.74.67 2.69 1.88 2.93 3.21.2 1.13-.05 2.25-.74 3.47V70Zm-27.47-4.14c-.12-.19-.23-.38-.34-.57.74.42.85.36.99.41v.08c-.22.03-.43.06-.65.08Zm11.21 30.46c-.08 1.08-.16 2.17-.33 3.24-.05.35-.11.69-.2 1.03 0 .04-.02.07-.03.11-.15.02-.3.04-.45.05.45-1.64.76-3.36.79-5.07.03-.29.08-.57.1-.89-.03-.31-.03-.47.24-.57-.04.69-.07 1.39-.12 2.08v.02Zm5.6-2.47c.48.11.92.52 2.49 1.72-.46-.32-.92-.65-1.38-.97-.37-.25-.73-.5-1.1-.75h-.01Zm21.23 7.24a70.76 70.76 0 0 1-4.37 4.63c-.14-.09-.27-.19-.4-.28.19-.09.37-.24.55-.47.87-1.14 5.43-5.51 5.49-7.45.31.26.62.53.92.79-.67.97-1.42 1.88-2.19 2.77v.01Z",fill:"currentColor",transform:"translate(-144.023 -51.76)"})]}),g6=({style:t,size:e="small",withText:o})=>(0,Vo.jsxs)("div",{className:`ExcalidrawLogo is-${e}`,style:t,children:[(0,Vo.jsx)(DI,{}),o&&(0,Vo.jsx)(NI,{})]});var He=v(k(),1),Zg=({icon:t,shortcut:e,children:o})=>{let r=Me();return(0,He.jsxs)(He.Fragment,{children:[(0,He.jsx)("div",{className:"welcome-screen-menu-item__icon",children:t}),(0,He.jsx)("div",{className:"welcome-screen-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,He.jsx)("div",{className:"welcome-screen-menu-item__shortcut",children:e})]})};Zg.displayName="WelcomeScreenMenuItemContent";var Ws=({onSelect:t,children:e,icon:o,shortcut:r,className:n="",...i})=>(0,He.jsx)("button",{...i,type:"button",className:`welcome-screen-menu-item ${n}`,onClick:t,children:(0,He.jsx)(Zg,{icon:o,shortcut:r,children:e})});Ws.displayName="WelcomeScreenMenuItem";var b6=({children:t,href:e,icon:o,shortcut:r,className:n="",...i})=>(0,He.jsx)("a",{...i,className:`welcome-screen-menu-item ${n}`,href:e,target:"_blank",rel:"noreferrer",children:(0,He.jsx)(Zg,{icon:o,shortcut:r,children:t})});b6.displayName="WelcomeScreenMenuItemLink";var Ko=({children:t})=>{let{WelcomeScreenCenterTunnel:e}=Ve();return(0,He.jsx)(e.In,{children:(0,He.jsx)("div",{className:"welcome-screen-center",children:t||(0,He.jsxs)(He.Fragment,{children:[(0,He.jsx)(jg,{}),(0,He.jsx)(Xg,{children:g("welcomeScreen.defaults.center_heading")}),(0,He.jsxs)(qg,{children:[(0,He.jsx)(Qg,{}),(0,He.jsx)(Jg,{})]})]})})})};Ko.displayName="Center";var jg=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor",children:t||(0,He.jsx)(g6,{withText:!0})});jg.displayName="Logo";var Xg=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor virgil",children:t});Xg.displayName="Heading";var qg=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-menu",children:t});qg.displayName="Menu";var Jg=()=>{let t=It();return(0,He.jsx)(Ws,{onSelect:()=>t.executeAction(gi),shortcut:"?",icon:sa,children:g("helpDialog.title")})};Jg.displayName="MenuItemHelp";var Qg=()=>{let t=_e(),e=It();return t.viewModeEnabled?null:(0,He.jsx)(Ws,{onSelect:()=>e.executeAction(Da),shortcut:wt("loadScene"),icon:ca,children:g("buttons.load")})};Qg.displayName="MenuItemLoadScene";var x6=({onSelect:t})=>{let{t:e}=vt();return(0,He.jsx)(Ws,{shortcut:null,onSelect:t,icon:fd,children:e("labels.liveCollaboration")})};x6.displayName="MenuItemLiveCollaborationTrigger";Ko.Logo=jg;Ko.Heading=Xg;Ko.Menu=qg;Ko.MenuItem=Ws;Ko.MenuItemLink=b6;Ko.MenuItemHelp=Jg;Ko.MenuItemLoadScene=Qg;Ko.MenuItemLiveCollaborationTrigger=x6;h();var cr=v(k(),1),Ap=({children:t})=>{let{WelcomeScreenMenuHintTunnel:e}=Ve();return(0,cr.jsx)(e.In,{children:(0,cr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[dx,(0,cr.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.menuHint")})]})})};Ap.displayName="MenuHint";var Mp=({children:t})=>{let{WelcomeScreenToolbarHintTunnel:e}=Ve();return(0,cr.jsx)(e.In,{children:(0,cr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,cr.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.toolbarHint")}),px]})})};Mp.displayName="ToolbarHint";var _p=({children:t})=>{let{WelcomeScreenHelpHintTunnel:e}=Ve();return(0,cr.jsx)(e.In,{children:(0,cr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,cr.jsx)("div",{children:t||g("welcomeScreen.defaults.helpHint")}),mx]})})};_p.displayName="HelpHint";var dr=v(k(),1),Lp=t=>(0,dr.jsx)(dr.Fragment,{children:t.children||(0,dr.jsxs)(dr.Fragment,{children:[(0,dr.jsx)(Ko,{}),(0,dr.jsx)(Ap,{}),(0,dr.jsx)(Mp,{}),(0,dr.jsx)(_p,{})]})});Lp.displayName="WelcomeScreen";Lp.Center=Ko;Lp.Hints={MenuHint:Ap,ToolbarHint:Mp,HelpHint:_p};var OI=Lp;h();var Pp=v(k(),1),v6=({isCollaborating:t,onSelect:e,...o})=>{let r=_e(),n=r.width<830;return(0,Pp.jsxs)(Cr,{...o,className:$("collab-button",{active:t}),type:"button",onSelect:e,style:{position:"relative",width:n?void 0:"auto"},title:g("labels.liveCollaboration"),children:[n?Nx:g("labels.share"),r.collaborators.size>0&&(0,Pp.jsx)("div",{className:"CollabButton-collaborators",children:r.collaborators.size})]})},FI=v6;v6.displayName="LiveCollaborationTrigger";h();var BI=(t,e,o)=>!!(e&&(e.id===t.editingElement?.id||e.id===t.resizingElement?.id||e.id===t.draggingElement?.id||e.version>o.version||e.version===o.version&&e.versionNonce<o.versionNonce)),zI=(t,e,o)=>{let r=pe(t),n=[],i=new Set;for(let l of e)if(!i.has(l.id)){let s=r.get(l.id),d=BI(o,s,l);s&&d?(n.push(s),i.add(s.id)):(n.push(l),i.add(l.id))}for(let l of t)i.has(l.id)||(n.push(l),i.add(l.id));let a=nb(n);return pn(a),a};h();var Gs=v(k(),1),E6=({children:t,icon:e})=>{let{TTDDialogTriggerTunnel:o}=Ve(),r=Le();return(0,Gs.jsx)(o.In,{children:(0,Gs.jsxs)(Re.Item,{onSelect:()=>{xe("ai","dialog open","ttd"),r({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:e??Tv,children:[t??g("labels.textToDiagram"),(0,Gs.jsx)(Re.Item.Badge,{children:"AI"})]})})};E6.displayName="TTDDialogTrigger";var Rp=v(k(),1);f6();var $I=t=>{let{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n=!1,onPointerUpdate:i,renderTopRightUI:a,langCode:l=gr.code,viewModeEnabled:s,zenModeEnabled:d,gridModeEnabled:c,libraryReturnUrl:m,theme:u,name:f,renderCustomStats:b,onPaste:x,detectScroll:E=!0,handleKeyboardGlobally:T=!1,onLibraryChange:C,autoFocus:w=!1,generateIdForFile:A,onLinkOpen:z,onPointerDown:I,onPointerUp:M,onScrollChange:_,children:U,validateEmbeddable:D,renderEmbeddable:G,aiEnabled:O}=t,B=t.UIOptions?.canvasActions,te={...t.UIOptions,canvasActions:{...Up.canvasActions,...B},tools:{image:t.UIOptions?.tools?.image??!0}};return B?.export&&(te.canvasActions.export.saveFileToDisk=B.export?.saveFileToDisk??Up.canvasActions.export.saveFileToDisk),te.canvasActions.toggleTheme===null&&typeof u>"u"&&(te.canvasActions.toggleTheme=!0),(0,Dp.useEffect)(()=>{(async()=>{await import("./excalidraw-assets/roundRect-2ACQK4DA.js")})();let ve=Ie=>{typeof Ie.scale=="number"&&Ie.scale!==1&&Ie.preventDefault()};return document.addEventListener("touchmove",ve,{passive:!1}),()=>{document.removeEventListener("touchmove",ve)}},[]),(0,Rp.jsx)(ed,{unstable_createStore:()=>Gt,scope:De,children:(0,Rp.jsx)(rx,{langCode:l,theme:u,children:(0,Rp.jsx)(u6,{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n,onPointerUpdate:i,renderTopRightUI:a,langCode:l,viewModeEnabled:s,zenModeEnabled:d,gridModeEnabled:c,libraryReturnUrl:m,theme:u,name:f,renderCustomStats:b,UIOptions:te,onPaste:x,detectScroll:E,handleKeyboardGlobally:T,onLibraryChange:C,autoFocus:w,generateIdForFile:A,onLinkOpen:z,onPointerDown:I,onPointerUp:M,onScrollChange:_,validateEmbeddable:D,renderEmbeddable:G,aiEnabled:O!==!1,children:U})})})},HI=(t,e)=>{if(t.children!==e.children)return!1;let{initialData:o,UIOptions:r={},...n}=t,{initialData:i,UIOptions:a={},...l}=e,s=Object.keys(r),d=Object.keys(a);return s.length!==d.length?!1:s.every(m=>m==="canvasActions"?Object.keys(r.canvasActions).every(f=>f==="export"&&r?.canvasActions?.export&&a?.canvasActions?.export?r.canvasActions.export.saveFileToDisk===a.canvasActions.export.saveFileToDisk:r?.canvasActions?.[f]===a?.canvasActions?.[f]):r[m]===a[m])&&kt(n,l)},UI=Dp.default.memo($I,HI);UI.displayName="Excalidraw";export{Cr as Button,Fp as DEFAULT_LASER_COLOR,ap as DefaultSidebar,UI as Excalidraw,cl as FONT_FAMILY,RI as Footer,FI as LiveCollaborationTrigger,Dt as MIME_TYPES,lo as MainMenu,Co as ROUNDNESS,Qr as Sidebar,P as StoreAction,be as THEME,Sg as TTDDialog,E6 as TTDDialogTrigger,OI as WelcomeScreen,yu as bumpVersion,Ms as convertToExcalidrawElements,gr as defaultLang,P6 as elementPartiallyOverlapsWithOrContainsBBox,R6 as elementsOverlappingBBox,xu as exportToBlob,ei as exportToCanvas,_6 as exportToClipboard,Dl as exportToSvg,Ze as getCommonBounds,D6 as getFreeDrawSvgPath,hm as getLibraryItemsHash,ye as getNonDeletedElements,N6 as getSceneVersion,A6 as getVisibleSceneBounds,Iu as hashElementsVersion,Au as hashString,L6 as isElementInsideBBox,ti as isInvisiblySmallElement,$e as isLinearElement,na as languages,Nc as loadFromBlob,mu as loadLibraryFromBlob,du as loadSceneOrLibraryFromBlob,Uy as mergeLibraryItems,re as mutateElement,he as newElementWith,zr as normalizeLink,kh as parseLibraryTokensFromUrl,zI as reconcileElements,cu as restore,M6 as restoreAppState,su as restoreElements,Ll as restoreLibraryItems,Qt as sceneCoordsToViewportCoords,uu as serializeAsJSON,hu as serializeLibraryAsJSON,Me as useDevice,kS as useHandleLibrary,vt as useI18n,Ye as viewportCoordsToSceneCoords,ny as zoomToFitBounds};
186
+ `),r)}}addTextFromPaste(t,r=!1){let{x:o,y:i}=Mt({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),a={x:o,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roundness:null,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,text:t,fontSize:this.state.currentItemFontSize,fontFamily:this.state.currentItemFontFamily,textAlign:Ou,verticalAlign:ex,locked:!1},s=_r({fontSize:a.fontSize,fontFamily:a.fontFamily}),c=wi(a.fontFamily),[d,,p]=Bx(this.state),f=Math.max(Math.min((p-d)*.5,800),200),u=10,g=i,h=r?[t]:t.split(`
187
+ `),x=h.reduce((E,T,M)=>{let I=T.trim();if(I.length){let A=this.getTopLayerFrameAtSceneCoords({x:o,y:g}),N=yi(I,s,c),U=N.width>f,R=U?_p(I,s,f):I;N=U?yi(R,s,c):N;let F=o-N.width/2,B=g-N.height/2,Z=fa({...a,x:F,y:B,text:R,originalText:I,lineHeight:c,autoResize:!U,frameId:A?A.id:null});E.push(Z),g+=Z.height+u}else h[M-1]?.trim()&&(g+=DC(a.fontSize,c)+u);return E},[]);x.length!==0&&(this.scene.insertElements(x),this.setState({selectedElementIds:gt(Object.fromEntries(x.map(E=>[E.id,!0])),this.state)}),!r&&x.length>1&&oP===!1&&!this.device.editor.isMobile&&(this.setToast({message:y("toast.pasteAsSingleElement",{shortcut:V("CtrlOrCmd+Shift+V")}),duration:5e3}),oP=!0),this.store.shouldCaptureIncrement())}setAppState=(t,r)=>{this.setState(t,r)};removePointer=t=>{za&&this.resetContextMenuTimer(),at.pointers.delete(t.pointerId)};toggleLock=(t="ui")=>{this.state.activeTool.locked||Fe("toolbar","toggleLock",`${t} (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setState(r=>({activeTool:{...r.activeTool,...Ut(this.state,r.activeTool.locked?{type:"selection"}:r.activeTool),locked:!r.activeTool.locked}}))};updateFrameRendering=t=>{this.setState(r=>{let o=typeof t=="function"?t(r.frameRendering):t;return{frameRendering:{enabled:o?.enabled??r.frameRendering.enabled,clip:o?.clip??r.frameRendering.clip,name:o?.name??r.frameRendering.name,outline:o?.outline??r.frameRendering.outline}}})};togglePenMode=t=>{this.setState(r=>({penMode:t??!r.penMode,penDetected:!0}))};onHandToolToggle=()=>{this.actionManager.executeAction(kA)};zoomCanvas=t=>{this.setState({..._i({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Ii(t)},this.state)})};cancelInProgressAnimation=null;scrollToContent=(t=this.scene.getNonDeletedElements(),r)=>{this.cancelInProgressAnimation?.();let o=Array.isArray(t)?t:[t],i=this.state.zoom,a=this.state.scrollX,s=this.state.scrollY;if(r?.fitToContent||r?.fitToViewport){let{appState:c}=em({targetElements:o,appState:this.state,fitToViewport:!!r?.fitToViewport,viewportZoomFactor:r?.viewportZoomFactor});i=c.zoom,a=c.scrollX,s=c.scrollY}else{let c=hl(o,this.state);a=c.scrollX,s=c.scrollY}if(r?.animate){let c=this.state.scrollX,d=this.state.scrollY,p=this.state.zoom.value,f=AS({fromValues:{scrollX:c,scrollY:d,zoom:p},toValues:{scrollX:a,scrollY:s,zoom:i.value},interpolateValue:(u,g,h,x)=>{if(x==="zoom")return u*Math.pow(g/u,rl(h))},onStep:({scrollX:u,scrollY:g,zoom:h})=>{this.setState({scrollX:u,scrollY:g,zoom:{value:h}})},onStart:()=>{this.setState({shouldCacheIgnoreZoom:!0})},onEnd:()=>{this.setState({shouldCacheIgnoreZoom:!1})},onCancel:()=>{this.setState({shouldCacheIgnoreZoom:!1})},duration:r?.duration??500});this.cancelInProgressAnimation=()=>{f(),this.cancelInProgressAnimation=null}}else this.setState({scrollX:a,scrollY:s,zoom:i})};maybeUnfollowRemoteUser=()=>{this.state.userToFollow&&this.setState({userToFollow:null})};translateCanvas=t=>{this.cancelInProgressAnimation?.(),this.maybeUnfollowRemoteUser(),this.setState(t)};setToast=t=>{this.setState({toast:t})};restoreFileFromShare=async()=>{try{let t=await caches.open("web-share-target"),r=await t.match("shared-file");if(r){let o=await r.blob(),i=new File([o],o.name||"",{type:o.type});this.loadFileToCanvas(i,null),await t.delete("shared-file"),window.history.replaceState(null,td,window.location.pathname)}}catch(t){this.setState({errorMessage:t.message})}};addFiles=Nt(t=>{let r=t.reduce((o,i)=>(o.set(i.id,i),o),new Map);this.files={...this.files,...Object.fromEntries(r)},this.scene.getNonDeletedElements().forEach(o=>{pd(o)&&r.has(o.fileId)&&(this.imageCache.delete(o.fileId),An.delete(o))}),this.scene.triggerUpdate(),this.addNewImagesToImageCache()});updateScene=Nt(t=>{let r=ca(t.elements??[]);if(t.storeAction&&t.storeAction!==K.NONE){let o=this.store.snapshot.appState,i=this.store.snapshot.elements,a=t.appState?Object.assign({},o,t.appState):o,s=t.elements?this.store.filterUncomittedElements(this.scene.getElementsMapIncludingDeleted(),Pe(r)):i;t.storeAction===K.CAPTURE?this.store.captureIncrement(s,a):t.storeAction===K.UPDATE&&this.store.updateSnapshot(s,a)}t.appState&&this.setState(t.appState),t.elements&&this.scene.replaceAllElements(r),t.collaborators&&this.setState({collaborators:t.collaborators})});triggerRender=t=>{t===!0?this.scene.triggerUpdate():this.setState({})};toggleSidebar=({name:t,tab:r,force:o})=>{let i;o===void 0?i=this.state.openSidebar?.name===t&&this.state.openSidebar?.tab===r?null:t:i=o?t:null;let a=i?{name:i}:null;return a&&r&&(a.tab=r),this.setState({openSidebar:a}),!!i};updateCurrentCursorPosition=Nt(t=>{this.lastViewportPosition.x=t.clientX,this.lastViewportPosition.y=t.clientY});onKeyDown=Nt(t=>{if("Proxy"in window&&(!t.shiftKey&&/^[A-Z]$/.test(t.key)||t.shiftKey&&/^[a-z]$/.test(t.key))&&(t=new Proxy(t,{get(a,s){let c=a[s];return typeof c=="function"?c.bind(a):s==="key"?t.shiftKey?a.key.toUpperCase():a.key.toLowerCase():c}})),t[L.CTRL_OR_CMD]&&t.key===L.P&&!t.shiftKey&&!t.altKey){this.setToast({message:y("commandPalette.shortcutHint",{shortcut:lr("commandPalette")})}),t.preventDefault();return}if(t[L.CTRL_OR_CMD]&&t.key.toLowerCase()===L.V&&(bh=t.shiftKey,clearTimeout(rP),rP=window.setTimeout(()=>{bh=!1},100)),t[L.CTRL_OR_CMD]&&Ko(t.target)&&(t.code===Ne.MINUS||t.code===Ne.EQUAL)){t.preventDefault();return}if(Ko(t.target)&&t.key!==L.ESCAPE||hs(t.key)&&IS(t.target))return;if(t.key===L.QUESTION_MARK){this.setState({openDialog:{name:"help"}});return}else if(t.key.toLowerCase()===L.E&&t.shiftKey&&t[L.CTRL_OR_CMD]){t.preventDefault(),this.setState({openDialog:{name:"imageExport"}});return}if(t.key===L.PAGE_UP||t.key===L.PAGE_DOWN){let a=(t.shiftKey?this.state.width:this.state.height)/this.state.zoom.value;t.key===L.PAGE_DOWN&&(a=-a),t.shiftKey?this.translateCanvas(s=>({scrollX:s.scrollX+a})):this.translateCanvas(s=>({scrollY:s.scrollY+a}))}if(this.actionManager.handleKeyDown(t)||this.state.viewModeEnabled)return;if(t[L.CTRL_OR_CMD]&&this.state.isBindingEnabled&&this.setState({isBindingEnabled:!1}),hs(t.key)){let a=this.state.gridSize&&(t.shiftKey?jb:this.state.gridSize)||(t.shiftKey?tS:jb),s=0,c=0;t.key===L.ARROW_LEFT?s=-a:t.key===L.ARROW_RIGHT?s=a:t.key===L.ARROW_UP?c=-a:t.key===L.ARROW_DOWN&&(c=a);let d=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});d.forEach(p=>{me(p,{x:p.x+s,y:p.y+c}),ml(p,this.scene.getNonDeletedElementsMap(),{simultaneouslyUpdated:d})}),this.setState({suggestedBindings:yp(d,this.scene.getNonDeletedElementsMap())}),t.preventDefault()}else if(t.key===L.ENTER){let a=this.scene.getSelectedElements(this.state);if(a.length===1){let s=a[0];if(t[L.CTRL_OR_CMD])et(s)&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==a[0].id)&&(this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new Le(s)}));else if(ge(s)||$C(s)){let c;ge(s)||(c=s);let d=kp(s,this.state,this.scene.getNonDeletedElementsMap()),p=d.x,f=d.y;this.startTextEditing({sceneX:p,sceneY:f,container:c}),t.preventDefault();return}else He(s)&&this.setState({editingFrame:s.id})}}else if(!t.ctrlKey&&!t.altKey&&!t.metaKey&&this.state.draggingElement===null){let a=AC(t.key);a?(this.state.activeTool.type!==a&&Fe("toolbar",a,`keyboard (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setActiveTool({type:a}),t.stopPropagation()):t.key===L.Q&&(this.toggleLock("keyboard"),t.stopPropagation())}if(t.key===L.SPACE&&at.pointers.size===0&&(Yl=!0,pt(this.interactiveCanvas,ut.GRAB),t.preventDefault()),(t.key===L.G||t.key===L.S)&&!t.altKey&&!t[L.CTRL_OR_CMD]){let a=this.scene.getSelectedElements(this.state);if(this.state.activeTool.type==="selection"&&!a.length)return;t.key===L.G&&(ma(this.state.activeTool.type)||a.some(s=>ma(s.type)))&&(this.setState({openPopup:"elementBackground"}),t.stopPropagation()),t.key===L.S&&(this.setState({openPopup:"elementStroke"}),t.stopPropagation())}if(t.key===L.K&&!t.altKey&&!t[L.CTRL_OR_CMD]){this.state.activeTool.type==="laser"?this.setActiveTool({type:"selection"}):this.setActiveTool({type:"laser"});return}t[L.CTRL_OR_CMD]&&(t.key===L.BACKSPACE||t.key===L.DELETE)&&zr.set(Fl,"clearCanvas");let r=t.key.toLocaleLowerCase(),o=r===L.S&&t.shiftKey,i=t.key===L.I||r===L.G&&t.shiftKey;(o||i)&&this.openEyeDropper({type:o?"stroke":"background"})});onWheel=Nt(t=>{!(t.target instanceof HTMLCanvasElement)&&t.ctrlKey&&t.preventDefault()});onKeyUp=Nt(t=>{t.key===L.SPACE&&(this.state.viewModeEnabled?pt(this.interactiveCanvas,ut.GRAB):this.state.activeTool.type==="selection"?qo(this.interactiveCanvas):(_n(this.interactiveCanvas,this.state),this.setState({selectedElementIds:gt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),Yl=!1),!t[L.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),hs(t.key)&&(dl(this.scene.getSelectedElements(this.state).filter(et),this.scene.getNonDeletedElementsMap(),cl(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[]),this.setState({suggestedBindings:[]}))});isToolSupported=t=>this.props.UIOptions.tools?.[t]!==!1;setActiveTool=t=>{if(!this.isToolSupported(t.type)){console.warn(`"${t.type}" tool is disabled via "UIOptions.canvasActions.tools.${t.type}"`);return}let r=Ut(this.state,t);r.type==="hand"?pt(this.interactiveCanvas,ut.GRAB):Yl||_n(this.interactiveCanvas,this.state),CS(document.activeElement)&&this.focusContainer(),zS(r.type)||this.setState({suggestedBindings:[]}),r.type==="image"&&this.onImageAction({insertOnCanvasDirectly:(t.type==="image"&&t.insertOnCanvasDirectly)??!1}),this.setState(o=>{let i={snapLines:o.snapLines.length?[]:o.snapLines,originSnapOffset:null,activeEmbeddable:null};return r.type==="freedraw"&&this.store.shouldCaptureIncrement(),r.type!=="selection"?{...o,activeTool:r,selectedElementIds:gt({},o),selectedGroupIds:gt({},o),editingGroupId:null,multiElement:null,...i}:{...o,activeTool:r,...i}})};setOpenDialog=t=>{this.setState({openDialog:t})};setCursor=t=>{pt(this.interactiveCanvas,t)};resetCursor=()=>{qo(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>at.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${y("labels.untitled")}-${ix()}`;onGestureStart=Nt(t=>{t.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:gt({},this.state),activeEmbeddable:null}),at.initialScale=this.state.zoom.value});onGestureChange=Nt(t=>{if(t.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let r=at.initialScale;r&&this.setState(o=>({..._i({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Ii(r*t.scale)},o)}))});onGestureEnd=Nt(t=>{t.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:gt(this.state.previousSelectedElementIds,this.state)}),at.initialScale=null});handleTextWysiwyg(t,{isExistingElement:r=!1}){let o=this.scene.getElementsMapIncludingDeleted(),i=(a,s)=>{this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted().map(c=>c.id===t.id&&ge(c)?Re(c,{originalText:a,isDeleted:s??c.isDeleted,...r2(c,Ei(c,o),o,a)}):c)])};QM({id:t.id,canvas:this.canvas,getViewportCoords:(a,s)=>{let{x:c,y:d}=Qr({sceneX:a,sceneY:s},this.state);return[c-this.state.offsetLeft,d-this.state.offsetTop]},onChange:Nt(a=>{i(a,!1),sv(t)&&ml(t,o)}),onSubmit:Nt(({viaKeyboard:a,nextOriginalText:s})=>{let c=!s.trim();if(i(s,c),!c&&a){let d=t.containerId?t.containerId:t.id;this.setState(p=>({selectedElementIds:gt({...p.selectedElementIds,[d]:!0},p)}))}c&&wp(this.scene.getNonDeletedElements(),[t]),(!c||r)&&this.store.shouldCaptureIncrement(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&_n(this.interactiveCanvas,this.state),this.focusContainer()}),element:t,excalidrawContainer:this.excalidrawContainerRef.current,app:this,autoSelect:!this.device.isTouchScreen}),this.deselectElements(),i(t.originalText,!1)}deselectElements(){this.setState({selectedElementIds:gt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})}getTextElementAtPosition(t,r){let o=this.getElementAtPosition(t,r,{includeBoundTextElement:!0});return o&&ge(o)&&!o.isDeleted?o:null}getBoundTextShape(t){let r=je(t,this.scene.getNonDeletedElementsMap());return r?t.type==="arrow"?vi({...r,...Le.getBoundTextElementPosition(t,r,this.scene.getNonDeletedElementsMap())},this.scene.getNonDeletedElementsMap()):vi(r,this.scene.getNonDeletedElementsMap()):null}getElementAtPosition(t,r,o){let i=this.getElementsAtPosition(t,r,o?.includeBoundTextElement,o?.includeLockedElements);if(i.length>1){if(o?.preferSelected){for(let s=i.length-1;s>-1;s--)if(this.state.selectedElementIds[i[s].id])return i[s]}let a=i[i.length-1];return Ts({x:t,y:r,element:a,shape:vi(a,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold()/2,frameNameBound:He(a)?this.frameNameBoundsCache.get(a):null})?a:i[i.length-2]}return i.length===1?i[0]:null}getElementsAtPosition(t,r,o=!1,i=!1){let a=[],s=this.scene.getNonDeletedElementsMap();return(o&&i?this.scene.getNonDeletedElements():this.scene.getNonDeletedElements().filter(d=>(i||!d.locked)&&(o||!(ge(d)&&d.containerId)))).filter(d=>this.hitElement(t,r,d)).filter(d=>{let p=Vp(d,s);return p&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?Jx({x:t,y:r},p,s):!0}).filter(d=>il(d)?(a.push(d),!1):!0).concat(a)}getElementHitThreshold(){return oS/this.state.zoom.value}hitElement(t,r,o,i=!0){if(i&&this.state.selectedElementIds[o.id]&&Qp([o],this.state)){let s=qS(o,this.scene.getNonDeletedElementsMap(),this.getElementHitThreshold());return ZS([t,r],s)}return _C(t,r,this.getBoundTextShape(o))?!0:Ts({x:t,y:r,element:o,shape:vi(o,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold(),frameNameBound:He(o)?this.frameNameBoundsCache.get(o):null})}getTextBindableContainerAtPosition(t,r){let o=this.scene.getNonDeletedElements(),i=this.scene.getSelectedElements(this.state);if(i.length===1)return bi(i[0],!1)?i[0]:null;let a=null;for(let s=o.length-1;s>=0;--s){if(o[s].isDeleted)continue;let[c,d,p,f]=fo(o[s],this.scene.getNonDeletedElementsMap());if(Br(o[s])&&Ts({x:t,y:r,element:o[s],shape:vi(o[s],this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold()})){a=o[s];break}else if(c<t&&t<p&&d<r&&r<f){a=o[s];break}}return bi(a,!1)?a:null}startTextEditing=({sceneX:t,sceneY:r,insertAtParentCenter:o=!0,container:i,autoEdit:a=!0})=>{let s=!1,c=o&&this.getTextWysiwygSnappedToCenterPosition(t,r,this.state,i);i&&c&&(je(i,this.scene.getNonDeletedElementsMap())||(s=!0));let d=null,p=this.scene.getSelectedElements(this.state);p.length===1?ge(p[0])?d=p[0]:i?d=je(p[0],this.scene.getNonDeletedElementsMap()):d=this.getTextElementAtPosition(t,r):d=this.getTextElementAtPosition(t,r);let f=d?.fontFamily||this.state.currentItemFontFamily,u=d?.lineHeight||wi(f),g=this.state.currentItemFontSize;if(!d&&s&&i&&!Br(i)){let T=Ap(_r({fontSize:g,fontFamily:f}),u),M=Ip(g,u),I=Math.max(i.height,M),A=Math.max(i.width,T);me(i,{height:I,width:A}),t=i.x+A/2,r=i.y+I/2,c&&(c=this.getTextWysiwygSnappedToCenterPosition(t,r,this.state,i))}let h=this.getTopLayerFrameAtSceneCoords({x:t,y:r}),x=d||fa({x:c?c.elementCenterX:t,y:c?c.elementCenterY:r,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,text:"",fontSize:g,fontFamily:f,textAlign:c?"center":this.state.currentItemTextAlign,verticalAlign:c?Uo.MIDDLE:ex,containerId:s?i?.id:void 0,groupIds:i?.groupIds??[],lineHeight:u,angle:i?.angle??0,frameId:h?h.id:null});if(!d&&s&&i&&me(i,{boundElements:(i.boundElements||[]).concat({type:"text",id:x.id})}),this.setState({editingElement:x}),!d)if(i&&s){let E=this.scene.getElementIndex(i.id);this.scene.insertElementAtIndex(x,E+1)}else this.scene.insertElement(x);a||d||i?this.handleTextWysiwyg(x,{isExistingElement:!!d}):this.setState({draggingElement:x,multiElement:null})};handleCanvasDoubleClick=t=>{if(this.state.multiElement||this.state.activeTool.type!=="selection")return;let r=this.scene.getSelectedElements(this.state);if(r.length===1&&et(r[0])&&t[L.CTRL_OR_CMD]&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==r[0].id)){this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new Le(r[0])});return}qo(this.interactiveCanvas);let{x:o,y:i}=Mt(t,this.state);if(In(this.state).length>0){let s=this.getElementAtPosition(o,i),c=s&&XC(s,this.state.selectedGroupIds);if(c){this.store.shouldCaptureIncrement(),this.setState(d=>({...d,...Ar({editingGroupId:c,selectedElementIds:{[s.id]:!0}},this.scene.getNonDeletedElements(),d,this)}));return}}if(qo(this.interactiveCanvas),!t[L.CTRL_OR_CMD]&&!this.state.viewModeEnabled){let s=this.getElementAtPosition(o,i);if(ds(s)){this.setState({activeEmbeddable:{element:s,state:"active"}});return}let c=this.getTextBindableContainerAtPosition(o,i);if(c&&(po(c)||!nl(c.backgroundColor)||Ts({x:o,y:i,element:c,shape:vi(c,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold()}))){let d=kp(c,this.state,this.scene.getNonDeletedElementsMap());o=d.x,i=d.y}this.startTextEditing({sceneX:o,sceneY:i,insertAtParentCenter:!t.altKey,container:c})}};getElementLinkAtPosition=(t,r)=>{let o=this.scene.getNonDeletedElements().slice().reverse(),i=1/0;return o.find((a,s)=>(r&&a.id===r.id&&(i=s),a.link&&s<=i&&Gp(a,this.scene.getNonDeletedElementsMap(),this.state,[t.x,t.y],this.device.editor.isMobile)))};redirectToLink=(t,r)=>{let o=da(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||r&&o>Qa||!r&&o!==0)return;let i=Mt(this.lastPointerDownEvent,this.state),a=this.scene.getNonDeletedElementsMap(),s=Gp(this.hitLinkElement,a,this.state,[i.x,i.y],this.device.editor.isMobile),c=Mt(this.lastPointerUpEvent,this.state),d=Gp(this.hitLinkElement,a,this.state,[c.x,c.y],this.device.editor.isMobile);if(s&&d){let p=this.hitLinkElement.link;if(p){p=Ti(p);let f;if(this.props.onLinkOpen&&(f=qu("excalidraw-link",t.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:p},f)),!f?.defaultPrevented){let u=Lp(p)?"_self":"_blank",g=window.open(void 0,u);g&&(g.opener=null,g.location=p)}}}};getTopLayerFrameAtSceneCoords=t=>{let r=this.scene.getNonDeletedElementsMap(),o=this.scene.getNonDeletedFramesLikes().filter(i=>Jx(t,i,r));return o.length?o[o.length-1]:null};handleCanvasPointerMove=t=>{this.savePointer(t.clientX,t.clientY,this.state.cursorButton),this.lastPointerMoveEvent=t.nativeEvent,at.pointers.has(t.pointerId)&&at.pointers.set(t.pointerId,{x:t.clientX,y:t.clientY});let r=at.initialScale;if(at.pointers.size===2&&at.lastCenter&&r&&at.initialDistance){let g=iE(at.pointers),h=g.x-at.lastCenter.x,x=g.y-at.lastCenter.y;at.lastCenter=g;let E=aE(Array.from(at.pointers.values())),T=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:E/at.initialDistance,M=T?Ii(r*T):this.state.zoom.value;this.setState(I=>{let A=_i({viewportX:g.x,viewportY:g.y,nextZoom:M},I);this.translateCanvas({zoom:A.zoom,scrollX:A.scrollX+2*(h/M),scrollY:A.scrollY+2*(x/M),shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else at.lastCenter=at.initialDistance=at.initialScale=null;if(Yl||Om||JE||Si(this.state))return;let i=cE(QE,t.clientX-this.state.offsetLeft,t.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(i?qo(this.interactiveCanvas):_n(this.interactiveCanvas,this.state));let a=Mt(t,this.state),{x:s,y:c}=a;if(!this.state.draggingElement&&MM(this.state.activeTool.type)){let{originOffset:g,snapLines:h}=kM(this.scene.getNonDeletedElements(),this.state,{x:s,y:c},t,this.scene.getNonDeletedElementsMap());this.setState(x=>{let E=Ju(x.snapLines,h),T=x.originSnapOffset?Ju(x.originSnapOffset,g):g;return x.snapLines===E&&x.originSnapOffset===T?null:{snapLines:E,originSnapOffset:T}})}else this.state.draggingElement||this.setState(g=>g.snapLines.length?{snapLines:[]}:null);if(this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging){let g=Le.handlePointerMove(t,s,c,this.state,this.scene.getNonDeletedElementsMap());g&&g!==this.state.editingLinearElement&&(0,xh.flushSync)(()=>{this.setState({editingLinearElement:g})}),g?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(a):(0,xh.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if($S(this.state.activeTool.type)){let{draggingElement:g}=this.state;hi(g,!1)?this.maybeSuggestBindingsForLinearElementAtCoords(g,[a],this.state.startBoundElement):this.maybeSuggestBindingAtCursor(a)}if(this.state.multiElement){let{multiElement:g}=this.state,{x:h,y:x}=g,{points:E,lastCommittedPoint:T}=g,M=E[E.length-1];if(_n(this.interactiveCanvas,this.state),M===T)da(s-h,c-x,M[0],M[1])>=Du?me(g,{points:[...E,[s-h,c-x]]}):pt(this.interactiveCanvas,ut.POINTER);else if(E.length>2&&T&&da(s-h,c-x,T[0],T[1])<Du)pt(this.interactiveCanvas,ut.POINTER),me(g,{points:E.slice(0,-1)});else{let[I,A]=eo(s,c,t[L.CTRL_OR_CMD]?null:this.state.gridSize),[N,U]=g?.lastCommittedPoint??[0,0],R=I-h-N,F=A-x-U;tp(t)&&({width:R,height:F}=tv(N+h,U+x,I,A)),gd(E,this.state.zoom.value)&&pt(this.interactiveCanvas,ut.POINTER),me(g,{points:[...E.slice(0,-1),[N+R,U+F]]})}return}if(!!t.buttons||this.state.activeTool.type!=="selection"&&this.state.activeTool.type!=="text"&&this.state.activeTool.type!=="eraser")return;let p=this.scene.getNonDeletedElements(),f=this.scene.getSelectedElements(this.state);if(f.length===1&&!i&&!this.state.editingLinearElement){if(this.state.selectedLinearElement&&this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,s,c),!this.state.selectedLinearElement||this.state.selectedLinearElement.hoverPointIndex===-1){let g=rv(p,this.state,s,c,this.state.zoom,t.pointerType,this.scene.getNonDeletedElementsMap(),this.device);if(g&&g.transformHandleType){pt(this.interactiveCanvas,nv(g));return}}}else if(f.length>1&&!i){let g=ov(lt(f),s,c,this.state.zoom,t.pointerType,this.device);if(g){pt(this.interactiveCanvas,nv({transformHandleType:g}));return}}let u=this.getElementAtPosition(a.x,a.y);this.hitLinkElement=this.getElementLinkAtPosition(a,u),!Zo(this.state)&&(this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?(pt(this.interactiveCanvas,ut.POINTER),JA(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(QA(),u&&(u.link||Fr(u))&&this.state.selectedElementIds[u.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?pt(this.interactiveCanvas,ge(u)?ut.TEXT:ut.CROSSHAIR):this.state.viewModeEnabled?pt(this.interactiveCanvas,ut.GRAB):i?pt(this.interactiveCanvas,ut.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,s,c):t[L.CTRL_OR_CMD]?pt(this.interactiveCanvas,ut.AUTO):(u||this.isHittingCommonBoundingBoxOfSelectedElements(a,f))&&!u?.locked&&(u&&ds(u)&&this.isIframeLikeElementCenter(u,t,s,c)?(pt(this.interactiveCanvas,ut.POINTER),this.setState({activeEmbeddable:{element:u,state:"hover"}})):(pt(this.interactiveCanvas,ut.MOVE),this.state.activeEmbeddable?.state==="hover"&&this.setState({activeEmbeddable:null})))))};handleEraser=(t,r,o)=>{this.eraserTrail.addPointToPath(o.x,o.y);let i=!1,a=new Set,s=this.scene.getNonDeletedElements(),c=g=>{for(let h of g){if(h.locked)return;if(t.altKey?this.elementsPendingErasure.delete(h.id)&&(i=!0):this.elementsPendingErasure.has(h.id)||(i=!0,this.elementsPendingErasure.add(h.id)),i&&h.groupIds?.length){let x=h.groupIds.at(-1);if(!a.has(x)){a.add(x);let E=Wt(s,x);for(let T of E)t.altKey?this.elementsPendingErasure.delete(T.id):this.elementsPendingErasure.add(T.id)}}}},d=da(r.lastCoords.x,r.lastCoords.y,o.x,o.y),p=this.getElementHitThreshold(),f={...r.lastCoords},u=0;for(;u<=d;){let g=this.getElementsAtPosition(f.x,f.y);if(c(g),u===d)break;u=Math.min(u+p,d);let h=u/d,x=(1-h)*f.x+h*o.x,E=(1-h)*f.y+h*o.y;f.x=x,f.y=E}if(r.lastCoords.x=o.x,r.lastCoords.y=o.y,i){for(let g of this.scene.getNonDeletedElements())yr(g)&&(this.elementsPendingErasure.has(g.id)||this.elementsPendingErasure.has(g.containerId))&&(t.altKey?(this.elementsPendingErasure.delete(g.id),this.elementsPendingErasure.delete(g.containerId)):(this.elementsPendingErasure.add(g.id),this.elementsPendingErasure.add(g.containerId)));this.elementsPendingErasure=new Set(this.elementsPendingErasure),this.triggerRender()}};handleTouchMove=t=>{Fm=!0};handleHoverSelectedLinearElement(t,r,o){let i=this.scene.getNonDeletedElementsMap(),a=Le.getElement(t.elementId,i);if(a)if(this.state.selectedLinearElement){let s=-1,c=null;Ts({x:r,y:o,element:a,shape:vi(a,this.scene.getNonDeletedElementsMap())})?(s=Le.getPointIndexUnderCursor(a,i,this.state.zoom,r,o),c=Le.getSegmentMidpointHitCoords(t,{x:r,y:o},this.state,this.scene.getNonDeletedElementsMap()),s>=0||c?pt(this.interactiveCanvas,ut.POINTER):this.hitElement(r,o,a)&&pt(this.interactiveCanvas,ut.MOVE)):this.hitElement(r,o,a)&&pt(this.interactiveCanvas,ut.MOVE),this.state.selectedLinearElement.hoverPointIndex!==s&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,hoverPointIndex:s}}),Le.arePointsEqual(this.state.selectedLinearElement.segmentMidPointHoveredCoords,c)||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,segmentMidPointHoveredCoords:c}})}else pt(this.interactiveCanvas,ut.AUTO)}handleCanvasPointerDown=t=>{if(this.maybeCleanupAfterMissingPointerUp(t.nativeEvent),this.maybeUnfollowRemoteUser(),this.state.contextMenu&&this.setState({contextMenu:null}),this.state.snapLines&&this.setAppState({snapLines:[]}),this.updateGestureOnPointerDown(t),t.pointerType==="touch"&&this.state.draggingElement&&this.state.draggingElement.type==="freedraw"){let p=this.state.draggingElement;this.updateScene({...p.points.length<10?{elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==p.id)}:{},appState:{draggingElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:gt(Object.keys(this.state.selectedElementIds).filter(f=>f!==p.id).reduce((f,u)=>(f[u]=this.state.selectedElementIds[u],f),{}),this.state)},storeAction:K.UPDATE});return}let r=document.getSelection();if(r?.anchorNode&&r.removeAllRanges(),this.maybeOpenContextMenuAfterPointerDownOnTouchDevices(t),!this.state.penDetected&&t.pointerType==="pen"&&this.setState(p=>({penMode:!0,penDetected:!0})),!this.device.isTouchScreen&&["pen","touch"].includes(t.pointerType)&&(this.device=ss(this.device,{isTouchScreen:!0})),Om||(this.lastPointerDownEvent=t,this.handleCanvasPanUsingWheelOrSpaceDrag(t)))return;if(this.setState({lastPointerDownWith:t.pointerType,cursorButton:"down"}),this.savePointer(t.clientX,t.clientY,"down"),t.button===oa.ERASER&&this.state.activeTool.type!==Xt.eraser){this.setState({activeTool:Ut(this.state,{type:Xt.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(t);let p=()=>{f(),u?.(),Zo(this.state)&&this.setState({activeTool:Ut(this.state,{...this.state.activeTool.lastActiveTool||{type:Xt.selection},lastActiveToolBeforeEraser:null})})},f=Gt(window,"pointerup",p,{once:!0}),u;requestAnimationFrame(()=>{u=this.missingPointerEventCleanupEmitter.once(p)})});return}if(t.button!==oa.MAIN&&t.button!==oa.TOUCH&&t.button!==oa.ERASER||at.pointers.size>1)return;let o=this.initialPointerDownState(t);if(this.setState({selectedElementsAreBeingDragged:!1}),this.handleDraggingScrollBar(t,o)||(this.clearSelectionIfNotUsingSelection(),this.updateBindingEnabledOnPointerMove(t),this.handleSelectionOnPointerDown(t,o))||!(!this.state.penMode||t.pointerType!=="touch"||this.state.activeTool.type==="selection"||this.state.activeTool.type==="text"||this.state.activeTool.type==="image"))return;if(this.state.activeTool.type==="text")this.handleTextOnPointerDown(t,o);else if(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")this.handleLinearElementOnPointerDown(t,this.state.activeTool.type,o);else if(this.state.activeTool.type==="image"){pt(this.interactiveCanvas,ut.CROSSHAIR);let p=this.state.pendingImageElementId&&this.scene.getElement(this.state.pendingImageElementId);if(!p)return;this.setState({draggingElement:p,editingElement:p,pendingImageElementId:null,multiElement:null});let{x:f,y:u}=Mt(t,this.state),g=this.getTopLayerFrameAtSceneCoords({x:f,y:u});me(p,{x:f,y:u,frameId:g?g.id:null})}else this.state.activeTool.type==="freedraw"?this.handleFreeDrawElementOnPointerDown(t,this.state.activeTool.type,o):this.state.activeTool.type==="custom"?_n(this.interactiveCanvas,this.state):this.state.activeTool.type===Xt.frame||this.state.activeTool.type===Xt.magicframe?this.createFrameElementOnPointerDown(o,this.state.activeTool.type):this.state.activeTool.type==="laser"?this.laserTrails.startPath(o.lastCoords.x,o.lastCoords.y):this.state.activeTool.type!=="eraser"&&this.state.activeTool.type!=="hand"&&this.createGenericElementOnPointerDown(this.state.activeTool.type,o);this.props?.onPointerDown?.(this.state.activeTool,o),this.onPointerDownEmitter.trigger(this.state.activeTool,o,t),this.state.activeTool.type==="eraser"&&this.eraserTrail.startPath(o.lastCoords.x,o.lastCoords.y);let a=this.onPointerMoveFromPointerDownHandler(o),s=this.onPointerUpFromPointerDownHandler(o),c=this.onKeyDownFromPointerDownHandler(o),d=this.onKeyUpFromPointerDownHandler(o);this.missingPointerEventCleanupEmitter.once(p=>s(p||t.nativeEvent)),(!this.state.viewModeEnabled||this.state.activeTool.type==="laser")&&(window.addEventListener("pointermove",a),window.addEventListener("pointerup",s),window.addEventListener("keydown",c),window.addEventListener("keyup",d),o.eventListeners.onMove=a,o.eventListeners.onUp=s,o.eventListeners.onKeyUp=d,o.eventListeners.onKeyDown=c)};handleCanvasPointerUp=t=>{this.removePointer(t),this.lastPointerUpEvent=t;let r=Mt({clientX:t.clientX,clientY:t.clientY},this.state),o=t.timeStamp-(this.lastPointerDownEvent?.timeStamp??0);if(this.device.editor.isMobile&&o<300){let i=this.getElementAtPosition(r.x,r.y);if(ds(i)&&this.isIframeLikeElementCenter(i,t,r.x,r.y)){this.handleEmbeddableCenterClick(i);return}}if(this.device.isTouchScreen){let i=this.getElementAtPosition(r.x,r.y);this.hitLinkElement=this.getElementLinkAtPosition(r,i)}this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?o<300&&ds(this.hitLinkElement)&&!y2(this.hitLinkElement,this.scene.getNonDeletedElementsMap(),this.state,[r.x,r.y])?this.handleEmbeddableCenterClick(this.hitLinkElement):this.redirectToLink(t,this.device.isTouchScreen):this.state.viewModeEnabled&&this.setState({activeEmbeddable:null,selectedElementIds:{}})};maybeOpenContextMenuAfterPointerDownOnTouchDevices=t=>{t.pointerType==="touch"&&(Fm=!1,za?Fm=!0:za=window.setTimeout(()=>{za=0,Fm||this.handleCanvasContextMenu(t)},mS))};resetContextMenuTimer=()=>{clearTimeout(za),za=0,Fm=!1};maybeCleanupAfterMissingPointerUp=t=>{Bm?.(),this.missingPointerEventCleanupEmitter.trigger(t).clear()};handleCanvasPanUsingWheelOrSpaceDrag=t=>{if(!(at.pointers.size<=1&&(t.button===oa.WHEEL||t.button===oa.MAIN&&Yl||Si(this.state)||this.state.viewModeEnabled))||ge(this.state.editingElement))return!1;Om=!0,t.preventDefault();let r=!1,o=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);pt(this.interactiveCanvas,ut.GRABBING);let{clientX:i,clientY:a}=t,s=ch(d=>{let p=i-d.clientX,f=a-d.clientY;if(i=d.clientX,a=d.clientY,o&&!r&&(Math.abs(p)>1||Math.abs(f)>1)){r=!0;let u=h=>{document.body.removeEventListener("paste",u),h.stopPropagation()},g=()=>{setTimeout(()=>{document.body.removeEventListener("paste",u),window.removeEventListener("pointerup",g)},100)};document.body.addEventListener("paste",u),window.addEventListener("pointerup",g)}this.translateCanvas({scrollX:this.state.scrollX-p/this.state.zoom.value,scrollY:this.state.scrollY-f/this.state.zoom.value})}),c=Nt(Bm=()=>{Bm=null,Om=!1,Yl||(this.state.viewModeEnabled?pt(this.interactiveCanvas,ut.GRAB):_n(this.interactiveCanvas,this.state)),this.setState({cursorButton:"up"}),this.savePointer(t.clientX,t.clientY,"up"),window.removeEventListener("pointermove",s),window.removeEventListener("pointerup",c),window.removeEventListener("blur",c),s.flush()});return window.addEventListener("blur",c),window.addEventListener("pointermove",s,{passive:!0}),window.addEventListener("pointerup",c),!0};updateGestureOnPointerDown(t){at.pointers.set(t.pointerId,{x:t.clientX,y:t.clientY}),at.pointers.size===2&&(at.lastCenter=iE(at.pointers),at.initialScale=this.state.zoom.value,at.initialDistance=aE(Array.from(at.pointers.values())))}initialPointerDownState(t){let r=Mt(t,this.state),o=this.scene.getSelectedElements(this.state),[i,a,s,c]=lt(o);return{origin:r,withCmdOrCtrl:t[L.CTRL_OR_CMD],originInGrid:cd(eo(r.x,r.y,t[L.CTRL_OR_CMD]?null:this.state.gridSize)),scrollbars:cE(QE,t.clientX-this.state.offsetLeft,t.clientY-this.state.offsetTop),lastCoords:{...r},originalElements:this.scene.getNonDeletedElements().reduce((d,p)=>(d.set(p.id,As(p)),d),new Map),resize:{handleType:!1,isResizing:!1,offset:{x:0,y:0},arrowDirection:"origin",center:{x:(s+i)/2,y:(c+a)/2}},hit:{element:null,allHitElements:[],wasAddedToSelection:!1,hasBeenDuplicated:!1,hasHitCommonBoundingBoxOfSelectedElements:this.isHittingCommonBoundingBoxOfSelectedElements(r,o)},drag:{hasOccurred:!1,offset:null},eventListeners:{onMove:null,onUp:null,onKeyUp:null,onKeyDown:null},boxSelection:{hasOccurred:!1}}}handleDraggingScrollBar(t,r){if(!(r.scrollbars.isOverEither&&!this.state.multiElement))return!1;JE=!0,r.lastCoords.x=t.clientX,r.lastCoords.y=t.clientY;let o=ch(a=>{a.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(a,r)}),i=Nt(()=>{Bm=null,JE=!1,_n(this.interactiveCanvas,this.state),this.setState({cursorButton:"up"}),this.savePointer(t.clientX,t.clientY,"up"),window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",i),o.flush()});return Bm=i,window.addEventListener("pointermove",o),window.addEventListener("pointerup",i),!0}clearSelectionIfNotUsingSelection=()=>{this.state.activeTool.type!=="selection"&&this.setState({selectedElementIds:gt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})};handleSelectionOnPointerDown=(t,r)=>{if(this.state.activeTool.type==="selection"){let o=this.scene.getNonDeletedElements(),i=this.scene.getNonDeletedElementsMap(),a=this.scene.getSelectedElements(this.state);if(a.length===1&&!this.state.editingLinearElement&&!(this.state.selectedLinearElement&&this.state.selectedLinearElement.hoverPointIndex!==-1)){let s=rv(o,this.state,r.origin.x,r.origin.y,this.state.zoom,t.pointerType,this.scene.getNonDeletedElementsMap(),this.device);s!=null&&(this.setState({resizingElement:s.element}),r.resize.handleType=s.transformHandleType)}else a.length>1&&(r.resize.handleType=ov(lt(a),r.origin.x,r.origin.y,this.state.zoom,t.pointerType,this.device));if(r.resize.handleType)r.resize.isResizing=!0,r.resize.offset=cd(V2(r.resize.handleType,a,i,r.origin.x,r.origin.y)),a.length===1&&et(a[0])&&a[0].points.length===2&&(r.resize.arrowDirection=X2(r.resize.handleType,a[0]));else{if(this.state.selectedLinearElement){let d=this.state.editingLinearElement||this.state.selectedLinearElement,p=Le.handlePointerDown(t,this.state,this.store,r.origin,d,this);if(p.hitElement&&(r.hit.element=p.hitElement),p.linearElementEditor&&(this.setState({selectedLinearElement:p.linearElementEditor}),this.state.editingLinearElement&&this.setState({editingLinearElement:p.linearElementEditor})),p.didAddPoint)return!0}if(r.hit.element=r.hit.element??this.getElementAtPosition(r.origin.x,r.origin.y),r.hit.element&&this.getElementLinkAtPosition({x:r.origin.x,y:r.origin.y},r.hit.element))return!1;r.hit.allHitElements=this.getElementsAtPosition(r.origin.x,r.origin.y);let s=r.hit.element,c=r.hit.allHitElements.some(d=>this.isASelectedElement(d));if((s===null||!c)&&!t.shiftKey&&!r.hit.hasHitCommonBoundingBoxOfSelectedElements&&this.clearSelection(s),this.state.editingLinearElement)this.setState({selectedElementIds:gt({[this.state.editingLinearElement.elementId]:!0},this.state)});else if(s!=null){if(t[L.CTRL_OR_CMD])return this.state.selectedElementIds[s.id]||(r.hit.wasAddedToSelection=!0),this.setState(d=>({...VC(d,s),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[s.id]||(this.state.editingGroupId&&!_s(s,this.state.editingGroupId)&&this.setState({selectedElementIds:gt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),!c&&!r.hit.hasHitCommonBoundingBoxOfSelectedElements&&(this.setState(d=>{let p={...d.selectedElementIds,[s.id]:!0},f=[];if(Object.keys(d.selectedElementIds).forEach(u=>{let g=this.scene.getElement(u);g&&f.push(g)}),He(s))ga(f,s.id).forEach(u=>{delete p[u.id]});else if(s.frameId)p[s.frameId]&&delete p[s.id];else{let u=s.groupIds,g=new Set(u.flatMap(h=>Wt(this.scene.getNonDeletedElements(),h)).filter(h=>He(h)).map(h=>h.id));g.size>0&&f.forEach(h=>{h.frameId&&g.has(h.frameId)&&(delete p[h.id],h.groupIds.flatMap(x=>Wt(this.scene.getNonDeletedElements(),x)).forEach(x=>{delete p[x.id]}))})}return{...Ar({editingGroupId:d.editingGroupId,selectedElementIds:p},this.scene.getNonDeletedElements(),d,this),showHyperlinkPopup:s.link||Fr(s)?"info":!1}}),r.hit.wasAddedToSelection=!0))}this.setState({previousSelectedElementIds:this.state.selectedElementIds})}}return!1};isASelectedElement(t){return t!=null&&this.state.selectedElementIds[t.id]}isHittingCommonBoundingBoxOfSelectedElements(t,r){if(r.length<2)return!1;let o=this.getElementHitThreshold(),[i,a,s,c]=lt(r);return t.x>i-o&&t.x<s+o&&t.y>a-o&&t.y<c+o}handleTextOnPointerDown=(t,r)=>{if(ge(this.state.editingElement))return;let o=r.origin.x,i=r.origin.y,a=this.getElementAtPosition(o,i,{includeBoundTextElement:!0}),s=this.getTextBindableContainerAtPosition(o,i);po(a)&&(s=a,o=a.x+a.width/2,i=a.y+a.height/2),this.startTextEditing({sceneX:o,sceneY:i,insertAtParentCenter:!t.altKey,container:s,autoEdit:!1}),qo(this.interactiveCanvas),this.state.activeTool.locked||this.setState({activeTool:Ut(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(t,r,o)=>{let[i,a]=eo(o.origin.x,o.origin.y,null),s=this.getTopLayerFrameAtSceneCoords({x:i,y:a}),c=o2({type:r,x:i,y:a,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:null,simulatePressure:t.pressure===.5,locked:!1,frameId:s?s.id:null});this.setState(f=>{let u={...f.selectedElementIds};return delete u[c.id],{selectedElementIds:gt(u,f)}});let d=c.simulatePressure?c.pressures:[...c.pressures,t.pressure];me(c,{points:[[0,0]],pressures:d});let p=Cd(o.origin,this.scene.getNonDeletedElementsMap());this.scene.insertElement(c),this.setState({draggingElement:c,editingElement:c,startBoundElement:p,suggestedBindings:[]})};insertIframeElement=({sceneX:t,sceneY:r,width:o,height:i})=>{let[a,s]=eo(t,r,this.lastPointerDownEvent?.[L.CTRL_OR_CMD]?null:this.state.gridSize),c=t2({type:"iframe",x:a,y:s,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("iframe"),opacity:this.state.currentItemOpacity,locked:!1,width:o,height:i});return this.scene.insertElement(c),c};insertEmbeddableElement=({sceneX:t,sceneY:r,link:o})=>{let[i,a]=eo(t,r,this.lastPointerDownEvent?.[L.CTRL_OR_CMD]?null:this.state.gridSize),s=pl(o);if(!s)return;s.error instanceof URIError&&this.setToast({message:y("toast.unrecognizedLinkFormat"),closable:!0});let c=zx({type:"embeddable",x:i,y:a,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("embeddable"),opacity:this.state.currentItemOpacity,locked:!1,width:s.intrinsicSize.w,height:s.intrinsicSize.h,link:o});return this.scene.insertElement(c),c};createImageElement=({sceneX:t,sceneY:r,addToFrameUnderCursor:o=!0})=>{let[i,a]=eo(t,r,this.lastPointerDownEvent?.[L.CTRL_OR_CMD]?null:this.state.gridSize),s=o?this.getTopLayerFrameAtSceneCoords({x:i,y:a}):null;return Dp({type:"image",x:i,y:a,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:null,opacity:this.state.currentItemOpacity,locked:!1,frameId:s?s.id:null})};handleLinearElementOnPointerDown=(t,r,o)=>{if(this.state.multiElement){let{multiElement:i}=this.state;if(i.type==="line"&&gd(i.points,this.state.zoom.value)){me(i,{lastCommittedPoint:i.points[i.points.length-1]}),this.actionManager.executeAction(tn);return}let{x:a,y:s,lastCommittedPoint:c}=i;if(i.points.length>1&&c&&da(o.origin.x-a,o.origin.y-s,c[0],c[1])<Du){this.actionManager.executeAction(tn);return}this.setState(d=>({selectedElementIds:gt({...d.selectedElementIds,[i.id]:!0},d)})),me(i,{lastCommittedPoint:i.points[i.points.length-1]}),pt(this.interactiveCanvas,ut.POINTER)}else{let[i,a]=eo(o.origin.x,o.origin.y,t[L.CTRL_OR_CMD]?null:this.state.gridSize),s=this.getTopLayerFrameAtSceneCoords({x:i,y:a}),{currentItemStartArrowhead:c,currentItemEndArrowhead:d}=this.state,[p,f]=r==="arrow"?[c,d]:[null,null],u=Md({type:r,x:i,y:a,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.state.currentItemRoundness==="round"?{type:Go.PROPORTIONAL_RADIUS}:null,startArrowhead:p,endArrowhead:f,locked:!1,frameId:s?s.id:null});this.setState(h=>{let x={...h.selectedElementIds};return delete x[u.id],{selectedElementIds:gt(x,h)}}),me(u,{points:[...u.points,[0,0]]});let g=Cd(o.origin,this.scene.getNonDeletedElementsMap());this.scene.insertElement(u),this.setState({draggingElement:u,editingElement:u,startBoundElement:g,suggestedBindings:[]})}};getCurrentItemRoundness(t){return this.state.currentItemRoundness==="round"?{type:ms(t)?Go.ADAPTIVE_RADIUS:Go.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(t,r)=>{let[o,i]=eo(r.origin.x,r.origin.y,this.lastPointerDownEvent?.[L.CTRL_OR_CMD]?null:this.state.gridSize),a=this.getTopLayerFrameAtSceneCoords({x:o,y:i}),s={x:o,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.getCurrentItemRoundness(t),locked:!1,frameId:a?a.id:null},c;t==="embeddable"?c=zx({type:"embeddable",...s}):c=pa({type:t,...s}),c.type==="selection"?this.setState({selectionElement:c,draggingElement:c}):(this.scene.insertElement(c),this.setState({multiElement:null,draggingElement:c,editingElement:c}))};createFrameElementOnPointerDown=(t,r)=>{let[o,i]=eo(t.origin.x,t.origin.y,this.lastPointerDownEvent?.[L.CTRL_OR_CMD]?null:this.state.gridSize),a={x:o,y:i,opacity:this.state.currentItemOpacity,locked:!1,...En},s=r===Xt.magicframe?kd(a):Rp(a);this.scene.insertElement(s),this.setState({multiElement:null,draggingElement:s,editingElement:s})};maybeCacheReferenceSnapPoints(t,r,o=!1){Wi({event:t,appState:this.state,selectedElements:r})&&(o||!dn.getReferenceSnapPoints())&&dn.setReferenceSnapPoints(CM(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(t,r,o=!1){Wi({event:t,appState:this.state,selectedElements:r})&&(o||!dn.getVisibleGaps())&&dn.setVisibleGaps(TM(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap()))}onKeyDownFromPointerDownHandler(t){return Nt(r=>{this.maybeHandleResize(t,r)||this.maybeDragNewGenericElement(t,r)})}onKeyUpFromPointerDownHandler(t){return Nt(r=>{r.key===L.ALT&&r.preventDefault(),!this.maybeHandleResize(t,r)&&this.maybeDragNewGenericElement(t,r)})}onPointerMoveFromPointerDownHandler(t){return ch(r=>{if(t.drag.offset===null&&(t.drag.offset=cd(q2(this.scene.getSelectedElements(this.state),t.origin.x,t.origin.y))),!(r.target instanceof HTMLElement)||this.handlePointerMoveOverScrollbars(r,t))return;let i=Mt(r,this.state);if(Zo(this.state)){this.handleEraser(r,t,i);return}this.state.activeTool.type==="laser"&&this.laserTrails.addPointToPath(i.x,i.y);let[a,s]=eo(i.x,i.y,r[L.CTRL_OR_CMD]?null:this.state.gridSize);if(!t.drag.hasOccurred&&(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")&&da(i.x,i.y,t.origin.x,t.origin.y)<Qa)return;if(t.resize.isResizing&&(t.lastCoords.x=i.x,t.lastCoords.y=i.y,this.maybeHandleResize(t,r)))return!0;let c=this.scene.getNonDeletedElementsMap();if(this.state.selectedLinearElement){let u=this.state.editingLinearElement||this.state.selectedLinearElement;if(Le.shouldAddMidpoint(this.state.selectedLinearElement,i,this.state,c)){let h=Le.addMidpoint(this.state.selectedLinearElement,i,this.state,!r[L.CTRL_OR_CMD],c);if(!h)return;(0,xh.flushSync)(()=>{this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,pointerDownState:h.pointerDownState,selectedPointsIndices:h.selectedPointsIndices}}),this.state.editingLinearElement&&this.setState({editingLinearElement:{...this.state.editingLinearElement,pointerDownState:h.pointerDownState,selectedPointsIndices:h.selectedPointsIndices}})});return}else if(u.pointerDownState.segmentMidpoint.value!==null&&!u.pointerDownState.segmentMidpoint.added)return;if(Le.handlePointDragging(r,this.state,i.x,i.y,(h,x)=>{this.maybeSuggestBindingsForLinearElementAtCoords(h,x)},u,this.scene.getNonDeletedElementsMap())){t.lastCoords.x=i.x,t.lastCoords.y=i.y,t.drag.hasOccurred=!0,this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging&&this.setState({editingLinearElement:{...this.state.editingLinearElement,isDragging:!0}}),this.state.selectedLinearElement.isDragging||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,isDragging:!0}});return}}let d=t.hit.allHitElements.some(u=>this.isASelectedElement(u)),p=this.state.editingLinearElement&&r.shiftKey&&this.state.editingLinearElement.elementId===t.hit.element?.id;if((d||t.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!p){let u=this.scene.getSelectedElements(this.state);if(u.every(x=>x.locked))return;let g=u.find(x=>He(x)),h=this.getTopLayerFrameAtSceneCoords(i);if(this.setState({frameToHighlight:h&&!g?h:null}),t.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0}),u.length>0&&!t.withCmdOrCtrl&&!this.state.editingElement&&this.state.activeEmbeddable?.state!=="active"){let x={x:i.x-t.origin.x,y:i.y-t.origin.y},E=[...t.originalElements.values()],T=r.shiftKey;if(T){let A=Math.abs(x.x),N=Math.abs(x.y),U=T&&A<N,R=T&&A>N;U&&(x.x=0),R&&(x.y=0)}this.maybeCacheVisibleGaps(r,u),this.maybeCacheReferenceSnapPoints(r,u);let{snapOffset:M,snapLines:I}=IM(E,x,this.state,r,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:I}),!this.state.editingFrame&&Z2(t,u,x,this.state,this.scene,M,r[L.CTRL_OR_CMD]?null:this.state.gridSize),this.setState({suggestedBindings:yp(u,this.scene.getNonDeletedElementsMap())}),r.altKey&&!t.hit.hasBeenDuplicated){t.hit.hasBeenDuplicated=!0;let A=[],N=[],U=new Map,R=new Map,F=t.hit.element,B=new Set(this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}).map(te=>te.id)),Z=this.scene.getElementsIncludingDeleted();for(let te of Z)if(B.has(te.id)||te.id===F?.id&&t.hit.wasAddedToSelection){let de=Np(this.state.editingGroupId,U,te),W=t.originalElements.get(te.id);me(de,{x:W.x,y:W.y}),t.originalElements.set(de.id,de),A.push(de),N.push(te),R.set(te.id,de.id)}else A.push(te);let G=[...A,...N];_o(G,Pe(N)),Sp(A,N,R),Ep(G,N,R,"duplicatesServeAsOld"),Yp(G,N,R),this.scene.replaceAllElements(G),this.maybeCacheVisibleGaps(r,u,!0),this.maybeCacheReferenceSnapPoints(r,u,!0)}return}}let f=this.state.draggingElement;if(f){if(f.type==="freedraw"){let u=f.points,g=i.x-f.x,h=i.y-f.y,x=u.length>0&&u[u.length-1];if(!(x&&x[0]===g&&x[1]===h)){let T=f.simulatePressure?f.pressures:[...f.pressures,r.pressure];me(f,{points:[...u,[g,h]],pressures:T})}}else if(et(f)){t.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0});let u=f.points,g=a-f.x,h=s-f.y;tp(r)&&u.length===2&&({width:g,height:h}=tv(f.x,f.y,i.x,i.y)),u.length===1?me(f,{points:[...u,[g,h]]}):u.length===2&&me(f,{points:[...u.slice(0,-1),[g,h]]}),hi(f,!1)&&this.maybeSuggestBindingsForLinearElementAtCoords(f,[i],this.state.startBoundElement)}else t.lastCoords.x=i.x,t.lastCoords.y=i.y,this.maybeDragNewGenericElement(t,r);if(this.state.activeTool.type==="selection"){t.boxSelection.hasOccurred=!0;let u=this.scene.getNonDeletedElements();if(this.state.editingLinearElement)Le.handleBoxSelection(r,this.state,this.setState.bind(this),this.scene.getNonDeletedElementsMap());else{let g=!0;!r.shiftKey&&ft(u,this.state)&&(t.withCmdOrCtrl&&t.hit.element?this.setState(x=>Ar({...x,selectedElementIds:{[t.hit.element.id]:!0}},this.scene.getNonDeletedElements(),x,this)):g=!1);let h=j2(u,f,this.scene.getNonDeletedElementsMap());this.setState(x=>{let E={...g&&x.selectedElementIds,...h.reduce((T,M)=>(T[M.id]=!0,T),{})};return t.hit.element&&(h.length?delete E[t.hit.element.id]:E[t.hit.element.id]=!0),x=g?x:{...x,selectedGroupIds:{},editingGroupId:null},{...Ar({editingGroupId:x.editingGroupId,selectedElementIds:E},this.scene.getNonDeletedElements(),x,this),selectedLinearElement:h.length===1&&et(h[0])?new Le(h[0]):null,showHyperlinkPopup:h.length===1&&(h[0].link||Fr(h[0]))?"info":!1}})}}}})}handlePointerMoveOverScrollbars(t,r){if(r.scrollbars.isOverHorizontal){let o=t.clientX,i=o-r.lastCoords.x;return this.translateCanvas({scrollX:this.state.scrollX-i/this.state.zoom.value}),r.lastCoords.x=o,!0}if(r.scrollbars.isOverVertical){let o=t.clientY,i=o-r.lastCoords.y;return this.translateCanvas({scrollY:this.state.scrollY-i/this.state.zoom.value}),r.lastCoords.y=o,!0}return!1}onPointerUpFromPointerDownHandler(t){return Nt(r=>{this.removePointer(r),t.eventListeners.onMove&&t.eventListeners.onMove.flush();let{draggingElement:o,resizingElement:i,multiElement:a,activeTool:s,isResizing:c,isRotating:d}=this.state;this.setState(h=>({isResizing:!1,isRotating:!1,resizingElement:null,selectionElement:null,frameToHighlight:null,elementsToHighlight:null,cursorButton:"up",editingElement:a||ge(this.state.editingElement)?this.state.editingElement:null,snapLines:Ju(h.snapLines,[]),originSnapOffset:null})),dn.setReferenceSnapPoints(null),dn.setVisibleGaps(null),this.savePointer(r.clientX,r.clientY,"up"),this.setState({selectedElementsAreBeingDragged:!1});let p=this.scene.getNonDeletedElementsMap();if(this.state.editingLinearElement)if(!t.boxSelection.hasOccurred&&t.hit?.element?.id!==this.state.editingLinearElement.elementId)this.actionManager.executeAction(tn);else{let h=Le.handlePointerUp(r,this.state.editingLinearElement,this.state,this);h!==this.state.editingLinearElement&&this.setState({editingLinearElement:h,suggestedBindings:[]})}else if(this.state.selectedLinearElement)if(t.hit?.element?.id!==this.state.selectedLinearElement.elementId)this.scene.getSelectedElements(this.state).length>1&&this.setState({selectedLinearElement:null});else{let h=Le.handlePointerUp(r,this.state.selectedLinearElement,this.state,this),{startBindingElement:x,endBindingElement:E}=h,T=this.scene.getElement(h.elementId);hi(T)&&vp(T,x,E,p),h!==this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...h,selectedPointsIndices:null},suggestedBindings:[]})}if(this.missingPointerEventCleanupEmitter.clear(),window.removeEventListener("pointermove",t.eventListeners.onMove),window.removeEventListener("pointerup",t.eventListeners.onUp),window.removeEventListener("keydown",t.eventListeners.onKeyDown),window.removeEventListener("keyup",t.eventListeners.onKeyUp),this.state.pendingImageElementId&&this.setState({pendingImageElementId:null}),this.props?.onPointerUp?.(s,t),this.onPointerUpEmitter.trigger(this.state.activeTool,t,r),o?.type==="freedraw"){let h=Mt(r,this.state),x=o.points,E=h.x-o.x,T=h.y-o.y;E===x[0][0]&&T===x[0][1]&&(T+=1e-4,E+=1e-4);let M=o.simulatePressure?[]:[...o.pressures,r.pressure];me(o,{points:[...x,[E,T]],pressures:M,lastCommittedPoint:[E,T]}),this.actionManager.executeAction(tn);return}if(la(o)){let h=o;try{this.initializeImageDimensions(h),this.setState({selectedElementIds:gt({[h.id]:!0},this.state)},()=>{this.actionManager.executeAction(tn)})}catch(x){console.error(x),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(E=>E.id!==h.id)),this.actionManager.executeAction(tn)}return}if(et(o)){o.points.length>1&&this.store.shouldCaptureIncrement();let h=Mt(r,this.state);!t.drag.hasOccurred&&o&&!a?(me(o,{points:[...o.points,[h.x-o.x,h.y-o.y]]}),this.setState({multiElement:o,editingElement:this.state.draggingElement})):t.drag.hasOccurred&&!a&&(cl(this.state)&&hi(o,!1)&&Td(o,this.state,h,this.scene.getNonDeletedElementsMap()),this.setState({suggestedBindings:[],startBoundElement:null}),s.locked?this.setState(x=>({draggingElement:null})):(qo(this.interactiveCanvas),this.setState(x=>({draggingElement:null,activeTool:Ut(this.state,{type:"selection"}),selectedElementIds:gt({...x.selectedElementIds,[o.id]:!0},x),selectedLinearElement:new Le(o)}))));return}if(ge(o)){let h=GC(_r({fontSize:o.fontSize,fontFamily:o.fontFamily}),o.lineHeight);o.width<h&&me(o,{autoResize:!0}),this.resetCursor(),this.handleTextWysiwyg(o,{isExistingElement:!0})}if(s.type!=="selection"&&o&&gl(o)){this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(h=>h.id!==o.id),appState:{draggingElement:null},storeAction:K.UPDATE});return}if(o){if(t.drag.hasOccurred){let h=Mt(r,this.state);if(this.state.selectedLinearElement&&this.state.selectedLinearElement.isDragging){let x=this.scene.getElement(this.state.selectedLinearElement.elementId);if(x?.frameId){let E=Vp(x,p);E&&x&&(L2(x,E,this.scene.getNonDeletedElementsMap())||(me(x,{groupIds:[]}),Zp([x],this.scene.getNonDeletedElementsMap()),this.scene.triggerUpdate()))}}else{let x=this.getTopLayerFrameAtSceneCoords(h),E=this.scene.getSelectedElements(this.state),T=this.scene.getElementsMapIncludingDeleted(),M=I=>{if(I.length>0){for(let A of I){let N=A.groupIds.indexOf(this.state.editingGroupId);me(A,{groupIds:A.groupIds.slice(0,N)},!1)}T.forEach(A=>{A.groupIds.length&&Wt(T,A.groupIds[A.groupIds.length-1]).length<2&&me(A,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(x&&!this.state.selectedElementIds[x.id]){let I=E.filter(A=>A.frameId!==x.id&&Qx(A,T,this.state));this.state.editingGroupId&&M(I),T=Xp(T,I,x)}else if(!x&&this.state.editingGroupId){let I=E.filter(A=>A.frameId&&!Qx(A,T,this.state));M(I)}T=Wn(T,this.state,this),this.scene.replaceAllElements(T)}}if(He(o)){let h=N2(this.scene.getElementsIncludingDeleted(),o,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(Xp(this.scene.getElementsMapIncludingDeleted(),h,o))}me(o,H2(o))}if(i&&this.store.shouldCaptureIncrement(),i&&gl(i)&&this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(h=>h.id!==i.id),storeAction:K.UPDATE}),t.resize.isResizing){let h=Wn(this.scene.getElementsIncludingDeleted(),this.state,this),x=this.scene.getSelectedElements(this.state).filter(E=>He(E));for(let E of x)h=qp(h,Rs(this.scene.getElementsIncludingDeleted(),E,this.state,p),E,this);this.scene.replaceAllElements(h)}let f=t.hit.element;this.state.selectedLinearElement?.elementId!==f?.id&&et(f)&&this.scene.getSelectedElements(this.state).length===1&&this.setState({selectedLinearElement:new Le(f)});let u=this.lastPointerDownEvent,g=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(Zo(this.state)&&u&&g){if(this.eraserTrail.endPath(),da(u.clientX,u.clientY,g.clientX,g.clientY)===0){let x=Mt({clientX:g.clientX,clientY:g.clientY},this.state);this.getElementsAtPosition(x.x,x.y).forEach(T=>this.elementsPendingErasure.add(T.id))}this.eraseElements();return}else this.elementsPendingErasure.size&&this.restoreReadyToEraseElements();if(f&&!t.drag.hasOccurred&&!t.hit.wasAddedToSelection&&(!this.state.editingLinearElement||!t.boxSelection.hasOccurred)&&(r.shiftKey&&!this.state.editingLinearElement?this.state.selectedElementIds[f.id]?Pp(this.state,f)?this.setState(h=>{let x={...h.selectedElementIds};for(let E of f.groupIds.flatMap(T=>Wt(this.scene.getNonDeletedElements(),T)))delete x[E.id];return{selectedGroupIds:{...h.selectedElementIds,...f.groupIds.map(E=>({[E]:!1})).reduce((E,T)=>({...E,...T}),{})},selectedElementIds:gt(x,h)}}):this.state.selectedLinearElement?.isDragging||this.setState(h=>{let x={...h.selectedElementIds};delete x[f.id];let E=ze(this.scene.getNonDeletedElements(),{selectedElementIds:x});return{...Ar({editingGroupId:h.editingGroupId,selectedElementIds:x},this.scene.getNonDeletedElements(),h,this),selectedLinearElement:E.length===1&&et(E[0])?new Le(E[0]):h.selectedLinearElement}}):f.frameId&&this.state.selectedElementIds[f.frameId]?this.setState(h=>{let x={...h.selectedElementIds,[f.id]:!0};return delete x[f.frameId],(this.scene.getElement(f.frameId)?.groupIds??[]).flatMap(E=>Wt(this.scene.getNonDeletedElements(),E)).forEach(E=>{delete x[E.id]}),{...Ar({editingGroupId:h.editingGroupId,selectedElementIds:x},this.scene.getNonDeletedElements(),h,this),showHyperlinkPopup:f.link||Fr(f)?"info":!1}}):this.setState(h=>({selectedElementIds:gt({...h.selectedElementIds,[f.id]:!0},h)})):this.setState(h=>({...Ar({editingGroupId:h.editingGroupId,selectedElementIds:{[f.id]:!0}},this.scene.getNonDeletedElements(),h,this),selectedLinearElement:et(f)&&h.selectedLinearElement?.elementId!==f.id?new Le(f):h.selectedLinearElement}))),!t.drag.hasOccurred&&!this.state.isResizing&&(f&&IC({x:t.origin.x,y:t.origin.y,element:f,shape:vi(f,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold(),frameNameBound:He(f)?this.frameNameBoundsCache.get(f):null},p)||!f&&t.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:gt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),pt(this.interactiveCanvas,ut.AUTO);return}if(!s.locked&&s.type!=="freedraw"&&o&&o.type!=="selection"&&this.setState(h=>({selectedElementIds:gt({...h.selectedElementIds,[o.id]:!0},h),showHyperlinkPopup:Fr(o)&&!o.link?"editor":h.showHyperlinkPopup})),(s.type!=="selection"||ft(this.scene.getNonDeletedElements(),this.state)||!fr(this.state.previousSelectedElementIds,this.state.selectedElementIds))&&this.store.shouldCaptureIncrement(),t.drag.hasOccurred||c||d){let h=this.scene.getSelectedElements(this.state).filter(et);dl(h,this.scene.getNonDeletedElementsMap(),cl(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[])}if(s.type==="laser"){this.laserTrails.endPath();return}!s.locked&&s.type!=="freedraw"?(qo(this.interactiveCanvas),this.setState({draggingElement:null,suggestedBindings:[],activeTool:Ut(this.state,{type:"selection"})})):this.setState({draggingElement:null,suggestedBindings:[]}),f&&this.lastPointerUpEvent&&this.lastPointerDownEvent&&this.lastPointerUpEvent.timeStamp-this.lastPointerDownEvent.timeStamp<300&&at.pointers.size<=1&&ds(f)&&this.isIframeLikeElementCenter(f,this.lastPointerUpEvent,t.origin.x,t.origin.y)&&this.handleEmbeddableCenterClick(f)})}restoreReadyToEraseElements=()=>{this.elementsPendingErasure=new Set,this.triggerRender()};eraseElements=()=>{let t=!1,r=this.scene.getElementsIncludingDeleted().map(o=>this.elementsPendingErasure.has(o.id)||o.frameId&&this.elementsPendingErasure.has(o.frameId)||yr(o)&&this.elementsPendingErasure.has(o.containerId)?(t=!0,Re(o,{isDeleted:!0})):o);this.elementsPendingErasure=new Set,t&&(this.store.shouldCaptureIncrement(),this.scene.replaceAllElements(r))};initializeImage=async({imageFile:t,imageElement:r,showCursorImagePreview:o=!1})=>{if(!zp(t))throw new Error(y("errors.unsupportedFileType"));let i=t.type;if(pt(this.interactiveCanvas,"wait"),i===Ir.svg)try{t=Yx(await x2(await t.text()),t.name)}catch(p){throw console.warn(p),new Error(y("errors.svgImageInsertError"))}let a=await(this.props.generateIdForFile?.(t)||c2(t));if(!a)throw console.warn("Couldn't generate file id or the supplied `generateIdForFile` didn't resolve to one."),new Error(y("errors.imageInsertError"));if(!this.files[a]?.dataURL){try{t=await Ld(t,{maxWidthOrHeight:yS})}catch(p){console.error("Error trying to resizing image file on insertion",p)}if(t.size>ox)throw new Error(y("errors.fileTooBig",{maxSize:`${Math.trunc(ox/1024/1024)}MB`}))}if(o){let p=this.files[a]?.dataURL,f=p&&d2(p);this.setImagePreviewCursor(f||t)}let c=this.files[a]?.dataURL||await Hp(t),d=me(r,{fileId:a},!1);return new Promise(async(p,f)=>{try{this.files={...this.files,[a]:{mimeType:i,id:a,dataURL:c,created:Date.now(),lastRetrieved:Date.now()}};let u=this.imageCache.get(a);u||(this.addNewImagesToImageCache(),await this.updateImageCache([d])),u?.image instanceof Promise&&await u.image,this.state.pendingImageElementId!==d.id&&this.state.draggingElement?.id!==d.id&&this.initializeImageDimensions(d,!0),p(d)}catch(u){console.error(u),f(new Error(y("errors.imageInsertError")))}finally{o||qo(this.interactiveCanvas)}})};insertImageElement=async(t,r,o)=>{if(!this.isToolSupported("image")){this.setState({errorMessage:y("errors.imageToolNotSupported")});return}this.scene.insertElement(t);try{return await this.initializeImage({imageFile:r,imageElement:t,showCursorImagePreview:o})}catch(i){return me(t,{isDeleted:!0}),this.actionManager.executeAction(tn),this.setState({errorMessage:i.message||y("errors.imageInsertError")}),null}};setImagePreviewCursor=async t=>{let o;try{o=await Ld(t,{maxWidthOrHeight:96})}catch(a){throw a.cause==="UNSUPPORTED"?new Error(y("errors.unsupportedFileType")):a}let i=await Hp(o);if(t.type===Ir.svg){let a=await g2(i),s=Math.min(a.height,96),c=s*(a.width/a.height);c>96&&(c=96,s=c*(a.height/a.width));let d=document.createElement("canvas");d.height=s,d.width=c,d.getContext("2d").drawImage(a,0,0,c,s),i=d.toDataURL(Ir.svg)}this.state.pendingImageElementId&&pt(this.interactiveCanvas,`url(${i}) 4 4, auto`)};onImageAction=async({insertOnCanvasDirectly:t})=>{try{let r=this.state.width/2+this.state.offsetLeft,o=this.state.height/2+this.state.offsetTop,{x:i,y:a}=Mt({clientX:r,clientY:o},this.state),s=await Fp({description:"Image",extensions:Object.keys(aS)}),c=this.createImageElement({sceneX:i,sceneY:a,addToFrameUnderCursor:!1});t?(this.insertImageElement(c,s),this.initializeImageDimensions(c),this.setState({selectedElementIds:gt({[c.id]:!0},this.state)},()=>{this.actionManager.executeAction(tn)})):this.setState({pendingImageElementId:c.id},()=>{this.insertImageElement(c,s,!0)})}catch(r){r.name!=="AbortError"?console.error(r):console.warn(r),this.setState({pendingImageElementId:null,editingElement:null,activeTool:Ut(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(tn)})}};initializeImageDimensions=(t,r=!1)=>{let o=pd(t)&&this.imageCache.get(t.fileId)?.image;if(!o||o instanceof Promise){if(t.width<Qa/this.state.zoom.value&&t.height<Qa/this.state.zoom.value){let i=100/this.state.zoom.value;me(t,{x:t.x-i/2,y:t.y-i/2,width:i,height:i})}return}if(r||t.width<Qa/this.state.zoom.value&&t.height<Qa/this.state.zoom.value){let i=Math.max(this.state.height-120,160),a=Math.min(i,Math.floor(this.state.height*.5)/this.state.zoom.value),s=Math.min(o.naturalHeight,a),c=s*(o.naturalWidth/o.naturalHeight),d=t.x+t.width/2-c/2,p=t.y+t.height/2-s/2;me(t,{x:d,y:p,width:c,height:s})}};updateImageCache=async(t,r=this.files)=>{let{updatedFiles:o,erroredFiles:i}=await h2({imageCache:this.imageCache,fileIds:t.map(a=>a.fileId),files:r});if(o.size||i.size)for(let a of t)o.has(a.fileId)&&An.delete(a);return i.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(a=>pd(a)&&i.has(a.fileId)?Re(a,{status:"error"}):a)),{updatedFiles:o,erroredFiles:i}};addNewImagesToImageCache=async(t=b2(this.scene.getNonDeletedElements()),r=this.files)=>{let o=t.filter(i=>!i.isDeleted&&!this.imageCache.has(i.fileId));if(o.length){let{updatedFiles:i}=await this.updateImageCache(o,r);i.size&&this.scene.triggerUpdate()}};scheduleImageRefresh=(0,nP.default)(()=>{this.addNewImagesToImageCache()},cS);updateBindingEnabledOnPointerMove=t=>{let r=kC(t);this.state.isBindingEnabled!==r&&this.setState({isBindingEnabled:r})};maybeSuggestBindingAtCursor=t=>{let r=Cd(t,this.scene.getNonDeletedElementsMap());this.setState({suggestedBindings:r!=null?[r]:[]})};maybeSuggestBindingsForLinearElementAtCoords=(t,r,o)=>{if(!r.length)return;let i=r.reduce((a,s)=>{let c=Cd(s,this.scene.getNonDeletedElementsMap());return c!=null&&!MC(t,o?.id,c)&&a.push(c),a},[]);this.setState({suggestedBindings:i})};clearSelection(t){this.setState(r=>({selectedElementIds:gt({},r),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:r.editingGroupId&&t!=null&&_s(t,r.editingGroupId)?r.editingGroupId:null})),this.setState({selectedElementIds:gt({},this.state),activeEmbeddable:null,previousSelectedElementIds:this.state.selectedElementIds})}handleInteractiveCanvasRef=t=>{t!==null?(this.interactiveCanvas=t,this.interactiveCanvas.addEventListener("wheel",this.handleWheel),this.interactiveCanvas.addEventListener("touchstart",this.onTouchStart),this.interactiveCanvas.addEventListener("touchend",this.onTouchEnd)):(this.interactiveCanvas?.removeEventListener("wheel",this.handleWheel),this.interactiveCanvas?.removeEventListener("touchstart",this.onTouchStart),this.interactiveCanvas?.removeEventListener("touchend",this.onTouchEnd))};handleAppOnDrop=async t=>{let{file:r,fileHandle:o}=await u2(t),{x:i,y:a}=Mt(t,this.state);try{if(zp(r)&&this.isToolSupported("image")){if(r?.type===Ir.png||r?.type===Ir.svg)try{let d=await $p(r,this.state,this.scene.getElementsIncludingDeleted(),o);this.syncActionResult({...d,appState:{...d.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:K.CAPTURE});return}catch(d){if(d.name!=="EncodingError")throw new Error(y("alerts.couldNotLoadInvalidFile"))}let c=this.createImageElement({sceneX:i,sceneY:a});this.insertImageElement(c,r),this.initializeImageDimensions(c),this.setState({selectedElementIds:gt({[c.id]:!0},this.state)});return}}catch(c){return this.setState({isLoading:!1,errorMessage:c.message})}let s=t.dataTransfer.getData(Ir.excalidrawlib);if(s&&typeof s=="string"){try{let c=s2(s);this.addElementsFromPasteOrLibrary({elements:cg(c),position:t,files:null})}catch(c){this.setState({errorMessage:c.message})}return}if(r&&await this.loadFileToCanvas(r,o),t.dataTransfer?.types?.includes("text/plain")){let c=t.dataTransfer?.getData("text");if(c&&ks(c,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(c)||pl(c)?.type==="video")){let d=this.insertEmbeddableElement({sceneX:i,sceneY:a,link:Ti(c)});d&&this.setState({selectedElementIds:{[d.id]:!0}})}}};loadFileToCanvas=async(t,r)=>{t=await p2(t);try{let o=this.scene.getElementsIncludingDeleted(),i;try{i=await Wx(t,this.state,o,r)}catch(a){let s=a instanceof KS;if(s&&a.code==="IMAGE_NOT_CONTAINS_SCENE_DATA"&&!this.isToolSupported("image")){this.setState({isLoading:!1,errorMessage:y("errors.imageToolNotSupported")});return}let c=s?y("alerts.cannotRestoreFromImage"):y("alerts.couldNotLoadInvalidFile");this.setState({isLoading:!1,errorMessage:c})}if(!i)return;i.type===Ir.excalidraw?(ca(o.concat(i.data.elements)),this.store.updateSnapshot(Pe(o),this.state),this.setState({isLoading:!0}),this.syncActionResult({...i.data,appState:{...i.data.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:K.CAPTURE})):i.type===Ir.excalidrawlib&&await this.library.updateLibrary({libraryItems:t,merge:!0,openLibraryMenu:!0}).catch(a=>{console.error(a),this.setState({errorMessage:y("errors.importLibraryError")})})}catch(o){this.setState({isLoading:!1,errorMessage:o.message})}};handleCanvasContextMenu=t=>{if(t.preventDefault(),("pointerType"in t.nativeEvent&&t.nativeEvent.pointerType==="touch"||"pointerType"in t.nativeEvent&&t.nativeEvent.pointerType==="pen"&&t.button!==oa.SECONDARY)&&this.state.activeTool.type!=="selection")return;let{x:r,y:o}=Mt(t,this.state),i=this.getElementAtPosition(r,o,{preferSelected:!0,includeLockedElements:!0}),a=this.scene.getSelectedElements(this.state),s=this.isHittingCommonBoundingBoxOfSelectedElements({x:r,y:o},a),c=i||s?"element":"canvas",d=this.excalidrawContainerRef.current,{top:p,left:f}=d.getBoundingClientRect(),u=t.clientX-f,g=t.clientY-p;Fe("contextMenu","openContextMenu",c),this.setState({...i&&!this.state.selectedElementIds[i.id]?{...this.state,...Ar({editingGroupId:this.state.editingGroupId,selectedElementIds:{[i.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:et(i)?new Le(i):null}:this.state,showHyperlinkPopup:!1},()=>{this.setState({contextMenu:{top:g,left:u,items:this.getContextMenuItems(c)}})})};maybeDragNewGenericElement=(t,r)=>{let o=this.state.draggingElement,i=t.lastCoords;if(o)if(o.type==="selection"&&this.state.activeTool.type!=="eraser")iv(o,this.state.activeTool.type,t.origin.x,t.origin.y,i.x,i.y,ol(t.origin.x,i.x),ol(t.origin.y,i.y),bs(r),ep(r),this.state.zoom.value);else{let[a,s]=eo(i.x,i.y,r[L.CTRL_OR_CMD]?null:this.state.gridSize),c=pd(o)&&this.imageCache.get(o.fileId)?.image,d=c&&!(c instanceof Promise)?c.width/c.height:null;this.maybeCacheReferenceSnapPoints(r,[o]);let{snapOffset:p,snapLines:f}=AM(o,this.state,r,{x:t.originInGrid.x+(this.state.originSnapOffset?.x??0),y:t.originInGrid.y+(this.state.originSnapOffset?.y??0)},{x:a-t.originInGrid.x,y:s-t.originInGrid.y},this.scene.getNonDeletedElementsMap());a+=p.x,s+=p.y,this.setState({snapLines:f}),iv(o,this.state.activeTool.type,t.originInGrid.x,t.originInGrid.y,a,s,ol(t.originInGrid.x,a),ol(t.originInGrid.y,s),la(o)?!bs(r):bs(r),ep(r),this.state.zoom.value,d,this.state.originSnapOffset),(this.state.activeTool.type===Xt.frame||this.state.activeTool.type===Xt.magicframe)&&this.setState({elementsToHighlight:Rs(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap())})}};maybeHandleResize=(t,r)=>{let o=this.scene.getSelectedElements(this.state),i=o.filter(f=>He(f)),a=t.resize.handleType;if(i.length>0&&a==="rotation")return!1;this.setState({isResizing:a&&a!=="rotation",isRotating:a==="rotation",activeEmbeddable:null});let s=t.lastCoords,[c,d]=eo(s.x-t.resize.offset.x,s.y-t.resize.offset.y,r[L.CTRL_OR_CMD]?null:this.state.gridSize),p=new Map;if(i.forEach(f=>{ga(this.scene.getNonDeletedElements(),f.id).forEach(g=>{p.set(f.id+g.id,{x:g.x-f.x,y:g.y-f.y})})}),!this.state.selectedElementsAreBeingDragged){let[f,u]=eo(s.x,s.y,r[L.CTRL_OR_CMD]?null:this.state.gridSize),g={x:f-t.originInGrid.x,y:u-t.originInGrid.y},h=[...t.originalElements.values()];this.maybeCacheReferenceSnapPoints(r,o);let{snapOffset:x,snapLines:E}=_M(o,ze(h,this.state),this.state,r,g,a);c+=x.x,d+=x.y,this.setState({snapLines:E})}if(W2(t.originalElements,a,o,this.scene.getElementsMapIncludingDeleted(),tp(r),ep(r),o.some(f=>la(f))?!bs(r):bs(r),c,d,t.resize.center.x,t.resize.center.y)){let f=yp(o,this.scene.getNonDeletedElementsMap()),u=new Set;return i.forEach(g=>{Rs(this.scene.getNonDeletedElements(),g,this.state,this.scene.getNonDeletedElementsMap()).forEach(h=>u.add(h))}),this.setState({elementsToHighlight:[...u],suggestedBindings:f}),!0}return!1};getContextMenuItems=t=>{let r=[];return r.push(Qf,Jf),t==="canvas"?this.state.viewModeEnabled?[...r,tg,cc,$E,dc]:[Ty,Kr,Qf,Jf,eg,Kr,vv,tk,Kr,tg,Cy,cc,$E,dc]:(r.push(eg),this.state.viewModeEnabled?[sc,...r]:[Kr,jf,sc,Ty,xM,vM,Kr,...r,Kr,py,fy,Kr,hy,eP,Iy,_y,XA,by,Kr,yy,Kr,gv,hv,bv,xv,Kr,wy,Sy,Kr,eE,im,yv,Ry,Kr,$d])};handleWheel=Nt(t=>{if(t.preventDefault(),Om)return;let{deltaX:r,deltaY:o}=t;if(t.metaKey||t.ctrlKey){let i=Math.sign(o),a=tl*100,s=Math.abs(o),c=o;s>a&&(c=a*i);let d=this.state.zoom.value-c/100;d+=Math.log10(Math.max(1,this.state.zoom.value))*-i*Math.min(1,s/20),this.translateCanvas(p=>({..._i({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Ii(d)},p),shouldCacheIgnoreZoom:!0})),this.resetShouldCacheIgnoreZoomDebounced();return}if(t.shiftKey){this.translateCanvas(({zoom:i,scrollX:a})=>({scrollX:a-(o||r)/i.value}));return}this.translateCanvas(({zoom:i,scrollX:a,scrollY:s})=>({scrollX:a-r/i.value,scrollY:s-o/i.value}))});getTextWysiwygSnappedToCenterPosition(t,r,o,i){if(i){let a=i.x+i.width/2,s=i.y+i.height/2,c=kp(i,o,this.scene.getNonDeletedElementsMap());if(c&&(a=c.x,s=c.y),Math.hypot(t-a,r-s)<rS){let{x:f,y:u}=Qr({sceneX:a,sceneY:s},o);return{viewportX:f,viewportY:u,elementCenterX:a,elementCenterY:s}}}}savePointer=(t,r,o)=>{if(!t||!r)return;let{x:i,y:a}=Mt({clientX:t,clientY:r},this.state);isNaN(i)||isNaN(a);let s={x:i,y:a,tool:this.state.activeTool.type==="laser"?"laser":"pointer"};this.props.onPointerUpdate?.({pointer:s,button:o,pointersMap:at.pointers})};resetShouldCacheIgnoreZoomDebounced=ld(()=>{this.unmounted||this.setState({shouldCacheIgnoreZoom:!1})},300);updateDOMRect=t=>{if(this.excalidrawContainerRef?.current){let r=this.excalidrawContainerRef.current,{width:o,height:i,left:a,top:s}=r.getBoundingClientRect(),{width:c,height:d,offsetTop:p,offsetLeft:f}=this.state;if(o===c&&i===d&&a===f&&s===p){t&&t();return}this.setState({width:o,height:i,offsetLeft:a,offsetTop:s},()=>{t&&t()})}};refresh=()=>{this.setState({...this.getCanvasOffsets()})};getCanvasOffsets(){if(this.excalidrawContainerRef?.current){let t=this.excalidrawContainerRef.current,{left:r,top:o}=t.getBoundingClientRect();return{offsetLeft:r,offsetTop:o}}return{offsetLeft:0,offsetTop:0}}async updateLanguage(){let t=Fs.find(r=>r.code===this.props.langCode)||Kn;await mf(t),this.setAppState({})}},T$=()=>{(_.MODE===Qb.TEST||_.DEV)&&(window.h=window.h||{},Object.defineProperties(window.h,{elements:{configurable:!0,get(){return this.app?.scene.getElementsIncludingDeleted()},set(e){return this.app?.scene.replaceAllElements(ca(e))}}}))};T$();var sP=t0;v();var C$=()=>{Array.prototype.at||Object.defineProperty(Array.prototype,"at",{value:function(e){if(e=Math.trunc(e)||0,e<0&&(e+=this.length),!(e<0||e>=this.length))return this[e]},writable:!0,enumerable:!1,configurable:!0}),Element.prototype.replaceChildren||(Element.prototype.replaceChildren=function(...e){this.innerHTML="",this.append(...e)})},cP=C$;v();var s0=w(P(),1),dP=({children:e})=>{let{FooterCenterTunnel:t}=It(),r=it();return(0,s0.jsx)(t.In,{children:(0,s0.jsx)("div",{className:j("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":r.zenModeEnabled}),children:e})})},I$=dP;dP.displayName="FooterCenter";v();v();v();var un=w(P(),1),_$=()=>(0,un.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,un.jsx)("path",{d:"M39.9 32.889a.326.326 0 0 0-.279-.056c-2.094-3.083-4.774-6-7.343-8.833l-.419-.472a.212.212 0 0 0-.056-.139.586.586 0 0 0-.167-.111l-.084-.083-.056-.056c-.084-.167-.28-.278-.475-.167-.782.39-1.507.973-2.206 1.528-.92.722-1.842 1.445-2.708 2.25a8.405 8.405 0 0 0-.977 1.028c-.14.194-.028.361.14.444-.615.611-1.23 1.223-1.843 1.861a.315.315 0 0 0-.084.223c0 .083.056.166.111.194l1.09.833v.028c1.535 1.528 4.244 3.611 7.12 5.861.418.334.865.667 1.284 1 .195.223.39.473.558.695.084.11.28.139.391.055.056.056.14.111.196.167a.398.398 0 0 0 .167.056.255.255 0 0 0 .224-.111.394.394 0 0 0 .055-.167c.029 0 .028.028.056.028a.318.318 0 0 0 .224-.084l5.082-5.528a.309.309 0 0 0 0-.444Zm-14.63-1.917a.485.485 0 0 0 .111.14c.586.5 1.2 1 1.843 1.555l-2.569-1.945-.251-.166c-.056-.028-.112-.084-.168-.111l-.195-.167.056-.056.055-.055.112-.111c.866-.861 2.346-2.306 3.1-3.028-.81.805-2.43 3.167-2.095 3.944Zm8.767 6.89-2.122-1.612a44.713 44.713 0 0 0-2.625-2.5c1.145.861 2.122 1.611 2.262 1.75 1.117.972 1.06.806 1.815 1.445l.921.666a1.06 1.06 0 0 1-.251.25Zm.558.416-.056-.028c.084-.055.168-.111.252-.194l-.196.222ZM1.089 5.75c.055.361.14.722.195 1.056.335 1.833.67 3.5 1.284 4.75l.252.944c.084.361.223.806.363.917 1.424 1.25 3.602 3.11 5.947 4.889a.295.295 0 0 0 .363 0s0 .027.028.027a.254.254 0 0 0 .196.084.318.318 0 0 0 .223-.084c2.988-3.305 5.221-6.027 6.813-8.305.112-.111.14-.278.14-.417.111-.111.195-.25.307-.333.111-.111.111-.306 0-.39l-.028-.027c0-.055-.028-.139-.084-.167-.698-.666-1.2-1.138-1.731-1.638-.922-.862-1.871-1.75-3.881-3.75l-.028-.028c-.028-.028-.056-.056-.112-.056-.558-.194-1.703-.389-3.127-.639C6.087 2.223 3.21 1.723.614.944c0 0-.168 0-.196.028l-.083.084c-.028.027-.056.055-.224.11h.056-.056c.028.167.028.278.084.473 0 .055.112.5.112.555l.782 3.556Zm15.496 3.278-.335-.334c.084.112.196.195.335.334Zm-3.546 4.666-.056.056c0-.028.028-.056.056-.056Zm-2.038-10c.168.167.866.834 1.033.973-.726-.334-2.54-1.167-3.379-1.445.838.167 1.983.334 2.346.472ZM1.424 2.306c.419.722.754 3.222 1.089 5.666-.196-.778-.335-1.555-.503-2.278-.251-1.277-.503-2.416-.838-3.416.056 0 .14 0 .252.028Zm-.168-.584c-.112 0-.223-.028-.307-.028 0-.027 0-.055-.028-.055.14 0 .223.028.335.083Zm-1.089.222c0-.027 0-.027 0 0ZM39.453 1.333c.028-.11-.558-.61-.363-.639.42-.027.42-.666 0-.666-.558.028-1.144.166-1.675.25-.977.194-1.982.389-2.96.61-2.205.473-4.383.973-6.561 1.557-.67.194-1.424.333-2.066.666-.224.111-.196.333-.084.472-.056.028-.084.028-.14.056-.195.028-.363.056-.558.083-.168.028-.252.167-.224.334 0 .027.028.083.028.11-1.173 1.556-2.485 3.195-3.909 4.945-1.396 1.611-2.876 3.306-4.356 5.056-4.719 5.5-10.052 11.75-15.943 17.25a.268.268 0 0 0 0 .389c.028.027.056.055.084.055-.084.084-.168.14-.252.222-.056.056-.084.111-.084.167a.605.605 0 0 0-.111.139c-.112.111-.112.305.028.389.111.11.307.11.39-.028.029-.028.029-.056.056-.056a.44.44 0 0 1 .615 0c.335.362.67.723.977 1.028l-.698-.583c-.112-.111-.307-.083-.39.028-.113.11-.085.305.027.389l7.427 6.194c.056.056.112.056.196.056s.14-.028.195-.084l.168-.166c.028.027.083.027.111.027.084 0 .14-.027.196-.083 10.052-10.055 18.15-17.639 27.42-24.417.083-.055.111-.166.111-.25.112 0 .196-.083.251-.194 1.704-5.194 2.039-9.806 2.15-12.083v-.028c0-.028.028-.056.028-.083.028-.056.028-.084.028-.084a1.626 1.626 0 0 0-.111-1.028ZM21.472 9.5c.446-.5.893-1.028 1.34-1.5-2.876 3.778-7.65 9.583-14.408 16.5 4.607-5.083 9.242-10.333 13.068-15ZM5.193 35.778h.084-.084Zm3.462 3.194c-.027-.028-.027-.028 0-.028v.028Zm4.16-3.583c.224-.25.448-.472.699-.722 0 0 0 .027.028.027-.252.223-.475.445-.726.695Zm1.146-1.111c.14-.14.279-.334.446-.5l.028-.028c1.648-1.694 3.351-3.389 5.082-5.111l.028-.028c.419-.333.921-.694 1.368-1.028a379.003 379.003 0 0 0-6.952 6.695ZM24.794 6.472c-.921 1.195-1.954 2.778-2.82 4.028-2.736 3.944-11.532 13.583-11.727 13.75a1976.983 1976.983 0 0 1-8.042 7.639l-.167.167c-.14-.167-.14-.417.028-.556C14.49 19.861 22.03 10.167 25.074 5.917c-.084.194-.14.36-.28.555Zm4.83 5.695c-1.116-.64-1.646-1.64-1.34-2.611l.084-.334c.028-.083.084-.194.14-.277.307-.5.754-.917 1.257-1.167.027 0 .055 0 .083-.028-.028-.056-.028-.139-.028-.222.028-.167.14-.278.335-.278.335 0 1.369.306 1.76.639.111.083.223.194.335.305.14.167.363.445.474.667.056.028.112.306.196.445.056.222.111.472.084.694-.028.028 0 .194-.028.194a2.668 2.668 0 0 1-.363 1.028c-.028.028-.028.056-.056.084l-.028.027c-.14.223-.335.417-.53.556-.643.444-1.369.583-2.095.389 0 0-.195-.084-.28-.111Zm8.154-.834a39.098 39.098 0 0 1-.893 3.167c0 .028-.028.083 0 .111-.056 0-.084.028-.14.056-2.206 1.61-4.356 3.305-6.506 5.028 1.843-1.64 3.686-3.306 5.613-4.945.558-.5.949-1.139 1.06-1.861l.28-1.667v-.055c.14-.334.67-.195.586.166Z",fill:"currentColor"})}),A$=()=>(0,un.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,un.jsx)("path",{d:"M429.27 96.74c2.47-1.39 4.78-3.02 6.83-4.95 1.43-1.35 2.73-2.86 3.81-4.51-.66.9-1.4 1.77-2.23 2.59-2.91 2.84-5.72 5.09-8.42 6.87h.01ZM343.6 69.36c.33 3.13.58 6.27.79 9.4.09 1.37.18 2.75.25 4.12-.12-4.46-.27-8.93-.5-13.39-.11-2.08-.24-4.16-.4-6.24-.06 1.79-.11 3.85-.13 6.11h-.01ZM378.47 98.34c.01-.37.07-1.13.01-6.51-.11 1.9-.22 3.81-.31 5.71-.07 1.42-.22 2.91-.16 4.35.39.03.78.07 1.17.1-.92-.85-.76-2.01-.72-3.66l.01.01ZM344.09 86.12c-.09-2.41-.22-4.83-.39-7.24v12.21c.15-.05.32-.09.47-.14.05-1.61-.03-3.23-.09-4.83h.01ZM440.69 66.79c-.22-.34-.45-.67-.69-.99-3.71-4.87-9.91-7.14-15.65-8.55-1.05-.26-2.12-.49-3.18-.71 2.29.59 4.48 1.26 6.64 2.02 7.19 2.54 10.57 5.41 12.88 8.23ZM305.09 72.46l1.2 3.6c.84 2.53 1.67 5.06 2.46 7.61.24.78.5 1.57.73 2.36.22-.04.44-.08.67-.12a776.9 776.9 0 0 1-5.01-13.57c-.02.04-.03.09-.05.13v-.01ZM345.49 90.25v.31c1.48-.42 3.05-.83 4.66-1.2-1.56.25-3.12.52-4.66.89ZM371.02 90.22c0-.57-.04-1.14-.11-1.71-.06-.02-.12-.04-.19-.05-.21-.05-.43-.08-.65-.11.42.16.74.88.95 1.87ZM398.93 54.23c-.13 0-.27-.01-.4-.02l.03.4c.11-.15.23-.27.37-.38ZM401.57 62.28v-.15c-1.22-.24-2.86-.61-3.23-1.25-.09-.15-.18-.51-.27-.98-.09.37-.2.73-.33 1.09 1.24.56 2.52.98 3.83 1.29ZM421.73 88.68c-2.97 1.65-6.28 3.12-9.69 3.68v.18c4.72-.14 11.63-3.85 16.33-8.38-2.04 1.75-4.33 3.24-6.63 4.53l-.01-.01ZM411.28 80.92c-.05-1.2-.09-2.4-.15-3.6-.21 5.66-.46 11.38-.47 14.51.24-.02.48-.04.71-.07.15-3.61.05-7.23-.09-10.83v-.01Z",transform:"translate(-144.023 -51.76)"}),(0,un.jsx)("path",{d:"M425.38 67.41c-3.5-1.45-7.19-2.57-14.06-3.62.09 1.97.06 4.88-.03 8.12.03.04.06.09.06.15.19 1.36.28 2.73.37 4.1.25 3.77.39 7.55.41 11.33 0 1.38-.01 2.76-.07 4.13 1.4-.25 2.78-.65 4.12-1.15 4.07-1.5 7.94-3.78 11.28-6.54 2.33-1.92 5.13-4.49 5.88-7.58.63-3.53-2.45-6.68-7.97-8.96l.01.02ZM411.35 92.53v-.06l-.34.03c.11.01.22.03.34.03ZM314.26 64.06c-.23-.59-.47-1.17-.7-1.75.57 1.62 1.11 3.25 1.6 4.9l.15.54 2.35 6.05c.32.82.66 1.64.98 2.46-1.38-4.1-2.83-8.17-4.39-12.2h.01ZM156.82 103.07c-.18.13-.38.23-.58.33 1.32-.03 2.66-.2 3.93-.34.86-.09 1.72-.22 2.58-.33-2.12.1-4.12.17-5.94.34h.01ZM210.14 68.88s.03.04.05.07c.18-.31.39-.64.58-.96-.21.3-.42.6-.64.89h.01ZM201.65 82.8c-.5.77-1.02 1.56-1.49 2.37 1.11-1.55 2.21-3.1 3.2-4.59-.23.23-.49.51-.75.79-.32.47-.65.95-.96 1.43ZM194.03 98.66c-.33-.4-.65-.84-1.05-1.17-.24-.2-.07-.49.17-.56-.23-.26-.42-.5-.63-.75 1.51-2.55 3.93-5.87 6.4-9.28-.17-.08-.29-.28-.2-.49.04-.09.09-.17.13-.26-1.21 1.78-2.42 3.55-3.61 5.33-.87 1.31-1.74 2.64-2.54 4-.29.5-.63 1.04-.87 1.61.81.65 1.63 1.27 2.47 1.88-.09-.11-.18-.21-.27-.32v.01ZM307.79 82.93c-1-3.17-2.05-6.32-3.1-9.48-1.62 4.08-3.69 9.17-6.16 15.19 3.32-1.04 6.77-1.87 10.27-2.5-.32-1.08-.67-2.15-1.01-3.21ZM149.5 80.7c.05-1.71.04-3.43 0-5.14-.1 2.26-.16 4.51-.22 6.77-.02.73-.03 1.46-.04 2.19.14-1.27.2-2.55.24-3.82h.02ZM228.98 98.3c.39 1.25.91 3.03.94 3.91.06-.03.12-.07.17-.1.08-1.29-.55-2.65-1.11-3.81ZM307.72 53.36c.81.5 1.53 1.04 2.07 1.49-.38-.8-.78-1.58-1.21-2.35-.17.03-.34.06-.51.11-.43.12-.86.26-1.29.41.35-.01.53.1.94.34ZM283.69 96.14c3.91-7.25 6.89-13.35 8.88-18.15l1.1-2.66c-1.27 2.64-2.56 5.27-3.83 7.9-1.53 3.15-3.06 6.31-4.58 9.47-.87 1.81-1.76 3.62-2.54 5.47.04.02.07.04.11.07.05.05.1.09.15.14.05-.73.27-1.48.71-2.24ZM289.92 103.23s-.04.01-.05.03c0-.02.04-.03.05-.04.05-.05.11-.1.16-.15l.21-.21c-.55 0-1.5-.27-2.55-.72.4.26.8.51 1.22.74.24.13.48.26.73.37.05.02.1.03.14.05a.27.27 0 0 1 .08-.07h.01ZM269.23 68.49c-.39-.19-.82-.48-1.33-.87-3.06-1.56-6.31-2.78-9.36-2.35-3.5.49-5.7 1.11-7.74 2.44 5.71-2.6 12.82-2.07 18.44.79l-.01-.01ZM177.87 53.69l1.06.03c-.96-.22-2-.25-2.89-.3-4.95-.26-9.99.33-14.86 1.19-2.44.43-4.88.95-7.28 1.59 9.09-1.76 15.69-2.77 23.97-2.51ZM219.85 55.51c-.18.12-.36.27-.56.45-.45.53-.86 1.11-1.26 1.66-1.91 2.61-3.71 5.31-5.57 7.95l-.12.18 8.05-10.11c-.18-.05-.36-.1-.55-.13h.01ZM510.71 54.1c.12-.15.29-.3.53-.45.69-.4 3.72-.63 5.87-.74-.36-.02-.73-.04-1.09-.05-1.84-.03-3.67.09-5.49.35.05.3.12.59.18.88v.01ZM510.76 86.02c1.37-3.07 2.49-6.27 3.57-9.46.55-1.64 1.12-3.3 1.6-4.97-1.59 4.01-3.67 9.14-6.2 15.3.24-.08.5-.14.74-.22.1-.22.19-.44.29-.65ZM566.95 75.76c.11-.02.23.03.31.11-.05-.13-.09-.26-.14-.39-.05.09-.11.18-.17.28ZM511.33 86.41c3.08-.89 6.24-1.62 9.46-2.14-1.51-3.98-2.98-7.96-4.39-11.87-.05.15-.09.31-.14.46-1.02 3.32-2.15 6.61-3.39 9.85-.48 1.25-.98 2.49-1.53 3.7h-.01ZM578.24 74.45c.11-.44.23-.87.35-1.31-.31.7-.64 1.39-.97 2.08.09.21.19.4.28.61.12-.46.23-.92.35-1.38h-.01ZM520.62 53.11c-.09 0-.18-.01-.28-.02.38.34.29 1.08.93 2.53l6.65 17.15c2.2 5.68 4.69 11.36 7.41 16.87l1.06 2.17c-2.95-7.05-5.92-14.08-8.87-21.13-1.58-3.79-3.16-7.59-4.7-11.4-.78-1.92-1.73-3.89-2.25-5.91-.03-.1 0-.19.04-.26h.01ZM578.78 77.87c1.45-5.77 3.07-10.43 3.58-13.36.05-.34.16-.88.31-1.55-.67 1.79-1.37 3.56-2.08 5.33-.12.43-.23.86-.35 1.29-.65 2.43-1.29 4.86-1.9 7.3.14.33.29.65.43 1l.01-.01ZM545.3 94.66c.02-.44.03-.83.05-1.12.02-1.01.05-2.02.11-3.02.03-6.66-.46-14.33-1.46-22.8-.13-.42-.27-1.24-.56-2.89 0-.02 0-.04-.01-.06.62 6.61.95 13.25 1.32 19.87.17 3.08.33 6.16.52 9.23.02.25.03.52.04.78l-.01.01ZM580.77 102.81c.13.2.27.38.37.49.27-.11.53-.22.8-.32-.43.09-.82.05-1.17-.16v-.01ZM530.48 104.07h.33c-.36-.13-.71-.32-1.04-.56.14.24.3.47.45.7.06-.08.14-.13.26-.13v-.01ZM542.63 58.82c.06.23.11.47.15.71.14-.33.36-.62.7-.86-.28.05-.57.11-.85.15ZM583.81 57.87c.15-.7.29-1.41.42-2.11-.14.45-.28.9-.42 1.34-.46 1.44-.89 2.89-1.31 4.34.44-1.19.88-2.37 1.31-3.57ZM523.62 91.48c-4.66 1.17-9.05 2.89-14.02 5.27 4.65-1.84 9.48-3.29 14.28-4.63-.09-.22-.17-.41-.26-.64ZM460.64 78.3c-.04-2.9-.11-5.81-.28-8.71-.1-1.68-.17-3.43-.5-5.09-.07.02-.14.03-.2.05.3 6.54.45 12.17.51 17.12.17-.07.34-.14.51-.2 0-1.06-.01-2.11-.03-3.17h-.01ZM470.63 63.24c-3.38-.26-6.81.32-10.1 1.1.41 2.01.47 4.14.57 6.18.18 3.55.25 7.11.27 10.67 3.31-1.38 6.5-3.12 9.3-5.35 1.96-1.56 3.86-3.41 5.02-5.66.73-1.41 1.19-3.22.26-4.65-1.09-1.7-3.46-2.14-5.32-2.29ZM460.29 63.68c1-.24 2.01-.46 3.04-.65-1.15.16-2.37.38-3.71.69v.13c.07-.02.15-.04.22-.05.11-.13.3-.18.45-.11v-.01ZM457.24 100.96c.43-.03.86-.07 1.29-.11.14-.49.27-.99.38-1.49-.44.7-1 1.23-1.67 1.6ZM482.88 104.98c-.18.23-.36.38-.55.47.14.09.27.19.4.28a70.76 70.76 0 0 0 4.37-4.63c.76-.89 1.52-1.81 2.19-2.77-.3-.27-.61-.53-.92-.79-.07 1.94-4.62 6.32-5.49 7.45v-.01Z",transform:"translate(-144.023 -51.76)"}),(0,un.jsx)("path",{d:"M474.36 63.31c-.4-.16-.84-.27-1.29-.37 1.56.42 3.08 1.22 3.76 2.74.62 1.4.32 2.95-.28 4.32.7-1.22.94-2.34.74-3.47-.24-1.33-1.19-2.54-2.93-3.21v-.01ZM477.34 89.18c-1.2-.81-2.4-1.62-3.6-2.42-.14.1-.26.19-.4.29 1.4.67 2.73 1.39 4 2.13ZM465.88 93.85c.37.25.74.5 1.1.75.46.32.92.65 1.38.97-1.57-1.2-2.01-1.61-2.49-1.72h.01ZM574.92 90.06c-2.28-5.21-4.93-11.13-5.67-12.26-.1-.15-1.57-3.01-1.63-3.08 0 0-.01.02-.02.02.4 1.37 1.09 2.69 1.65 3.99 2.14 4.95 4.36 9.86 6.67 14.73.6 1.26 1.21 2.52 1.83 3.78-.75-2.01-1.64-4.45-2.83-7.18ZM448.73 65.29c.1.2.22.38.34.57.22-.02.43-.06.65-.08v-.08c-.14-.05-.25 0-.99-.41ZM460.16 94.81c-.02.31-.06.59-.1.89-.03 1.71-.33 3.43-.79 5.07.15-.02.3-.03.45-.05.01-.04.02-.08.03-.11.09-.34.15-.69.2-1.03.17-1.07.25-2.16.33-3.24.05-.69.08-1.39.12-2.08-.27.1-.27.26-.24.57v-.02Z",transform:"translate(-144.023 -51.76)"}),(0,un.jsx)("path",{d:"m328.67 98.12-3.22-6.58c-1.29-2.63-2.53-5.29-3.72-7.97-.25-.85-.52-1.69-.79-2.53-.81-2.57-1.67-5.12-2.55-7.67-1.92-5.53-3.9-11.08-6.32-16.41-.72-1.58-1.46-3.44-2.63-4.79-.03-.17-.16-.29-.34-.36a.282.282 0 0 0-.23-.04c-.06-.01-.12 0-.18.01-.74.06-1.5.38-2.19.61-2.22.77-4.4 1.64-6.63 2.38-.03-.08-.06-.16-.09-.25-.15-.42-.82-.24-.67.19.03.09.07.19.1.28l-.18.06c-.36.11-.28.6 0 .68.18 1.18.63 2.36.98 3.49.03.09.06.17.08.26-.08.23-.17.46-.24.64-.37.98-.79 1.94-1.21 2.9-1.27 2.89-2.62 5.75-3.98 8.6-3.18 6.67-6.44 13.31-9.64 19.97-1.08 2.25-2.2 4.5-3.15 6.81-.13.32.24.5.5.37 1.34 1.33 2.84 2.5 4.4 3.57.65.44 1.31.87 2.01 1.24.4.22.86.48 1.33.5.24.01.35-.19.33-.37.11-.1.21-.21.28-.28.41-.41.81-.84 1.2-1.26.85-.92 1.69-1.87 2.5-2.84 6.31-2.34 12.6-4.31 18.71-5.84 2.14 5.3 3.43 8.43 3.97 9.58.55 1.05 1.15 1.88 1.82 2.52 1.32.56 6.96-.03 9.23-1.96.87-1.28 1.19-2.67.93-4.15-.09-.5-.22-.95-.4-1.33l-.01-.03Zm-20.09-45.61c.43.77.83 1.56 1.21 2.35-.54-.45-1.27-.99-2.07-1.49-.42-.24-.6-.35-.94-.34.43-.15.85-.29 1.29-.41.17-.05.34-.08.51-.11Zm-25.86 45.66c.78-1.85 1.67-3.66 2.54-5.47 1.51-3.16 3.05-6.31 4.58-9.47 1.28-2.63 2.56-5.26 3.83-7.9l-1.1 2.66c-1.99 4.79-4.97 10.9-8.88 18.15-.43.76-.66 1.51-.71 2.24-.05-.05-.1-.09-.15-.14a.259.259 0 0 0-.11-.07Zm6.24 4.71c-.42-.23-.82-.48-1.22-.74 1.05.45 2 .72 2.55.72l-.21.21c-.05.05-.11.1-.16.15-.01.01-.04.03-.05.04 0-.02.03-.02.05-.03a.27.27 0 0 0-.08.07c-.05-.02-.1-.03-.14-.05-.25-.1-.49-.24-.73-.37h-.01Zm15.73-29.43c1.05 3.15 2.1 6.31 3.1 9.48.34 1.06.69 2.13 1.01 3.21-3.5.63-6.95 1.46-10.27 2.5 2.48-6.03 4.54-11.11 6.16-15.19Zm4.79 12.57c-.23-.79-.49-1.58-.73-2.36-.79-2.54-1.63-5.08-2.46-7.61l-1.2-3.6c.02-.04.04-.09.05-.13 1.6 4.45 3.28 9 5.01 13.57l-.67.12v.01Zm5.83-18.27-.15-.54c-.49-1.64-1.03-3.28-1.6-4.9.23.58.47 1.17.7 1.75 1.56 4.03 3.01 8.1 4.39 12.2-.33-.82-.67-1.64-.98-2.46l-2.35-6.05h-.01ZM390.43 79.37c-.13-10.43-.22-17.5-.24-19.97-.24-1.6.21-2.88-.65-3.65-.14-.13-.32-.23-.52-.32h.03c.45 0 .45-.69 0-.7-1.75-.03-3.5-.04-5.25-.14-1.38-.08-2.76-.21-4.15-.31-.07 0-.12.01-.17.04-.21-.07-.47.03-.45.31l.03.45c-.11.14-.19.3-.22.5-.21 1.26-.32 13.67-.36 23.59-.32 5.79-.67 11.57-.97 17.36-.09 1.73-.29 3.54-.21 5.3-.39.02-.38.64.04.69v.12c.05.44.74.45.7 0v-.06c1.1.09 2.2.21 3.3.3 1.14.19 2.44.2 3.29.17 1.73-.05 2.92-.05 3.8-.37.45-.05.9-.11 1.35-.17.44-.06.25-.73-.19-.67h-.01c.24-.32.45-.72.62-1.25.66-1.84.41-6.36.34-11.33l-.13-9.9.02.01Zm-12.26 18.17c.09-1.91.2-3.81.31-5.71.06 5.38 0 6.14-.01 6.51-.05 1.65-.21 2.81.72 3.66-.39-.04-.78-.07-1.17-.1-.06-1.44.09-2.93.16-4.35l-.01-.01ZM588.97 53.85c-2.06-.25-3.17-.51-3.76-.6a.3.3 0 0 1 .04-.08c.22-.39-.39-.75-.6-.35-.56 1.02-.9 2.19-1.26 3.29-.61 1.88-1.17 3.78-1.72 5.68-.63 2.19-1.24 4.39-1.83 6.59-.81 2.03-1.67 4.05-2.61 6.03-1.7-3.64-3.11-6.04-4.03-7.57-2.26-3.74-2.85-5.48-3.57-6.08l.31-.09c.43-.12.25-.8-.19-.67-1.06.3-2.12.6-3.17.95-.93.32-1.85.69-2.76 1.07-.13.05-.19.16-.22.27-.04.02-.08.05-.11.07-.04-.06-.07-.12-.11-.18a.354.354 0 0 0-.48-.12c-.16.09-.22.32-.13.48l.33.54c0 .09.02.18.06.28.51 1.16.78 1.38.72 1.47-2.42 3.44-5.41 7.86-6.2 9.1-1.27 1.97-2.01 3.14-2.45 3.84l-.91-6.56-.43-4.1c-.19-1.85-.37-3.23-.53-4.13-.19-1.1-.3-2.15-.45-3.16-.2-1.36-.29-2.06-.47-2.42h.04c.45.02.45-.68 0-.7-3.43-.16-6.81.94-10.17 1.48-.24-.22-.73-.04-.58.32.24.59.33 1.25.43 1.87.17 1.06.29 2.13.4 3.2.32 3.09.53 6.2.74 9.3.44 6.75.77 13.51 1.17 20.26.11 1.95.13 3.96.46 5.89.05.3.37.31.55.14.74 1.71 2.87 1.27 6.13 1.27 1.34 0 2.39.04 2.99-.11.02.32.48.53.63.18 3.61-8.26 7.41-16.46 12.05-24.2.03-.05.04-.1.05-.15.3.73.64 1.45.94 2.16.97 2.26 1.97 4.52 2.98 6.76 2.26 5.03 4.54 10.07 7.09 14.96.47.9.94 1.79 1.47 2.65.2.32.4.67.66.96-.18.25 0 .68.34.54.91-.38 1.82-.75 2.76-1.07 1.04-.35 2.11-.65 3.17-.95.39-.11.28-.66-.07-.68.62-.4.95-.96.87-1.91-.3-3.34.72-7.47.86-8.52l2.14-11.43c1.75-10.74 3.13-17.51 3.23-20.86.02-.49.08-2.84.13-3.24.17-1.25.48-1-4.96-1.65l.03-.02Zm-46.19 5.67c-.04-.24-.09-.48-.15-.71l.85-.15c-.34.24-.56.53-.7.86Zm1.95 25.12c-.36-6.63-.7-13.26-1.32-19.87 0 .02 0 .04.01.06.29 1.65.44 2.47.56 2.89 1 8.46 1.5 16.14 1.46 22.8-.06.99-.1 2-.11 3.02-.01.29-.03.68-.05 1.12-.01-.26-.03-.53-.04-.78-.19-3.08-.35-6.16-.52-9.23l.01-.01Zm36.4 18.66c-.11-.11-.24-.29-.37-.49.35.21.74.26 1.17.16-.27.11-.53.22-.8.32v.01Zm-.89-33.72c.12-.43.23-.86.35-1.29.71-1.77 1.41-3.55 2.08-5.33-.15.68-.26 1.22-.31 1.55-.5 2.94-2.13 7.59-3.58 13.36-.15-.35-.29-.66-.43-1 .61-2.44 1.25-4.87 1.9-7.3l-.01.01Zm3.56-12.48c.14-.44.28-.89.42-1.34-.13.7-.27 1.41-.42 2.11-.43 1.19-.86 2.38-1.31 3.57.42-1.45.85-2.9 1.31-4.34Zm-5.22 16.05c-.11.44-.23.87-.35 1.31-.12.46-.23.92-.35 1.38-.1-.22-.19-.4-.28-.61.34-.69.66-1.38.97-2.08h.01Zm-11.64 2.62c.06-.1.12-.19.17-.28.05.13.09.26.14.39a.398.398 0 0 0-.31-.11Zm2.3 2.98c-.56-1.3-1.25-2.63-1.65-3.99 0 0 .01-.02.02-.02.06.08 1.52 2.93 1.63 3.08.73 1.13 3.38 7.04 5.67 12.26 1.2 2.73 2.08 5.17 2.83 7.18-.62-1.25-1.23-2.51-1.83-3.78-2.31-4.87-4.53-9.78-6.67-14.73ZM275.92 87.03c-1.06-2.18-1.13-3.45-2.44-2.93-1.52.57-2.94 1.3-4.5 2.1-1.4.72-2.68 1.44-3.92 2.12.01-.25-.24-.5-.51-.34-4.8 2.93-12.41 4.7-17.28 1.31-1.98-1.77-3.32-4.15-3.97-5.78-.29-.95-.49-1.94-.63-2.93-.14-3.34 1.58-6.53 3.9-9.12.8-.79 1.68-1.51 2.66-2.12 3.7-2.3 8.22-3.07 12.51-2.51 2.71.35 5.32 1.24 7.71 2.55.39.22.75-.39.35-.6-.18-.1-.37-.18-.55-.27.56.27 1.03.33 1.51.19l-.48.39c-.15.11-.23.3-.13.48.09.15.33.24.48.13 1.3-.97 2.46-2.09 3.45-3.37.37-.29.64-.6.65-.97v-.02c.08-.33-.03-.7-.21-1.08-.31-.87-.98-2.01-2.19-3.26-2.43-2.52-3.79-3.45-5.68-4.26-1.14-.49-3.12-1.06-4.42-1.23-3.28-.42-10.64-1.21-18.18 4.11-7.74 5.46-11.94 12.3-12.23 20.61-.08 2.06.04 3.98.34 5.71.74 4.18 2.57 8 5.44 11.34 4.26 4.99 9.76 7.52 16.34 7.52 4.85 0 9.69-1.77 14.89-4.62.23-.12.45-.23.68-.35 2.19-1.1 4.37-2.23 6.46-3.5.49-.3 1.03-.61 1.5-.98 1.47-.87 1.11-1.12.49-2.95-.39-1.14-.76-2.7-2.06-5.36l.02-.01Zm-17.38-21.76c3.05-.42 6.31.79 9.36 2.35.51.39.94.68 1.33.87-5.61-2.86-12.72-3.39-18.44-.79 2.05-1.33 4.24-1.95 7.74-2.44l.01.01ZM443.67 72.67c-.4-2.2-1.15-4.33-2.37-6.22-1.49-2.32-3.58-4.19-5.91-5.64-6.17-3.81-13.75-5.11-20.83-6.01-3.23-.41-6.47-.69-9.72-.92l-1.39-.12c-.85-.07-1.52-.1-2.05-.1-1.08-.06-2.17-.12-3.25-.17-.08 0-.14.02-.19.05-.1.05-.18.14-.16.3.27 2.55-.01 5.12-.92 7.52-.15.38.4.56.62.28 1.32.59 2.68 1.05 4.08 1.37 0 2.78-.14 7.58-.33 12.91 0 0 0 .02-.01.03-.61 3.66-.79 7.42-1 11.12-.23 4.01-.43 8.03-.44 12.05 0 .64 0 1.28.03 1.93.02.31 0 .68.15.96.06.11.14.16.24.17-.2.17-.21.54.11.59 3.83.67 7.78.71 11.68.25 2.3-.19 4.87-.65 7.65-1.56 1.85-.54 3.67-1.18 5.43-1.91 7.2-3.02 14.31-8.07 17.35-15.53.76-1.86 1.17-3.8 1.31-5.75.3-1.93.28-3.82-.09-5.58l.01-.02Zm-19.32-15.42c5.74 1.41 11.94 3.68 15.65 8.55.25.32.47.65.69.99-2.3-2.82-5.68-5.69-12.88-8.23-2.16-.76-4.35-1.43-6.64-2.02 1.06.21 2.13.45 3.18.71Zm-25.82-3.04c.13 0 .27.01.4.02-.14.1-.26.23-.37.38 0-.13-.02-.26-.03-.4Zm34.82 22.17c-.75 3.09-3.55 5.66-5.88 7.58-3.35 2.76-7.21 5.03-11.28 6.54-1.33.49-2.71.9-4.12 1.15.06-1.38.08-2.76.07-4.13-.02-3.78-.16-7.56-.41-11.33-.09-1.37-.18-2.74-.37-4.1 0-.06-.03-.11-.06-.15.09-3.25.12-6.16.03-8.12 6.86 1.05 10.56 2.17 14.06 3.62 5.52 2.28 8.59 5.44 7.97 8.96l-.01-.02Zm-22 16.15c-.12 0-.23-.02-.34-.03l.34-.03v.06Zm-.69-.7c0-3.13.26-8.84.47-14.51.06 1.2.11 2.41.15 3.6.15 3.6.25 7.23.09 10.83-.24.03-.48.05-.71.07v.01Zm-12.33-30.94c.37.63 2.01 1.01 3.23 1.25v.15c-1.31-.31-2.59-.73-3.83-1.29.12-.36.23-.72.33-1.09.08.48.18.84.27.98Zm13.7 31.65v-.18c3.41-.56 6.71-2.02 9.69-3.68 2.31-1.28 4.59-2.78 6.63-4.53-4.69 4.53-11.61 8.24-16.33 8.38l.01.01Zm24.07-.75c-2.05 1.93-4.37 3.56-6.83 4.95 2.7-1.78 5.52-4.03 8.42-6.87.82-.82 1.56-1.69 2.23-2.59-1.08 1.65-2.38 3.16-3.81 4.51h-.01ZM187.16 92.14c-.79-2.47-2.1-7.12-3.1-6.87-.19-.01-2.09.77-4.08 1.54-3.06 1.18-5.91 2.13-10.09 2.82-2.74.42-5.87 1.01-10.61 1.06.04-3.34.05-6.01.05-7.99 7.97-.65 12.33-2.11 16.37-3.55 1.11-.39 2.69-1.01 2.63-1.8-.08-.35-.55-1.39-1.17-2.61-.47-1.16-.98-2.31-1.61-3.38-.42-.71-1.04-1.69-1.86-2.06-.11-.08-.22-.13-.29-.12-.02 0-.04 0-.07.01-.19-.04-.39-.05-.6-.01-.17.03-.24.15-.25.28-.04.02-.09.04-.14.05-4.33 1.48-8.85 2.33-13.24 3.61a499.1 499.1 0 0 0-.31-8.19c4.51-.99 8.88-1.38 13.11-1.82 3.68-.38 6.28.12 7.47.34.59.11.9.16 1.16.18h.1c-.1.37.44.66.62.28.02-.04.03-.08.05-.13.15.2.53.22.62-.1.17-.58.19-1.21.21-1.81v-.36c.03-.15.05-.3.07-.45.52-2.47.33-5.09-.64-7.44-.11-.27-.44-.28-.6-.14-.08-.21-.15-.42-.24-.62-.19-.41-.79-.05-.6.35.03.07.05.15.09.22-.98-.42-2.15-.54-3.17-.63-2.17-.19-4.37-.14-6.54 0-5.7.35-11.4 1.3-16.91 2.79-2.08.56-4.13 1.22-6.14 2-4.54 1.05-3.79 1.51-2.17 6.07.18.51.46 1.68.54 1.94.82 2.47 1.08 2.13 3.1 2.13s0 .05 0 .08h.52c-.48 2.66-.51 5.45-.62 8.13-.15 3.48-.22 6.96-.28 10.45 0 .41-.01.82-.02 1.23-.16.29-.33.57-.51.85-.05.38-.09.77-.14 1.18-.42 3.52-.59 6.48-.52 8.8v.34c.02.47.05.76.06.87.16 1.57-.26 3.47 1.35 3.79 1.61.32 3.5.55 4.85.55.11 0 .22-.02.33-.02 1.79.24 3.67.05 5.45-.12 2.85-.28 5.69-.7 8.51-1.19 3.03-.53 6.05-1.14 9.04-1.86 2.4-.58 4.82-1.19 7.13-2.06.51-.19 1.73-.57 2.46-1.14 1.81-.68 2.18-1 1.57-2.67-.23-.62-.48-1.49-.91-2.78l-.03-.02Zm-11.12-38.71c.89.05 1.93.08 2.89.3-.33 0-.68-.02-1.06-.03-8.28-.26-14.88.75-23.97 2.51 2.41-.64 4.85-1.16 7.28-1.59 4.87-.86 9.91-1.45 14.86-1.19Zm-26.53 22.13c.03 1.71.04 3.43 0 5.14-.04 1.27-.11 2.55-.24 3.82 0-.73.02-1.46.04-2.19.05-2.26.12-4.51.22-6.77h-.02Zm6.73 27.85c.2-.1.4-.21.58-.33 1.82-.17 3.82-.24 5.94-.34-.86.11-1.72.24-2.58.33-1.27.14-2.61.31-3.93.34h-.01ZM534.48 85.44c-3.52-8.38-7.07-16.75-10.5-25.17-.63-1.54-1.25-3.09-1.86-4.65-.31-.8-.65-1.6-.87-2.43-.04-.17-.17-.24-.31-.25.1-.2 0-.51-.29-.53-1.59-.08-3.18-.22-4.78-.25-1.96-.03-3.91.13-5.84.42-.31.05-.31.38-.13.56-.03.06-.05.14-.04.22.23 1.54.63 3.06 1.16 4.53.13.35.27.7.41 1.06l-2.68 6.18c-.11.03-.2.09-.25.22-.67 1.9-1.52 3.73-2.34 5.56a536.85 536.85 0 0 1-3.9 8.45c-2.64 5.64-5.34 11.25-7.91 16.93-.44.97-.88 1.94-1.29 2.93-.2.48-.47 1-.55 1.52v.05c-.02.12.02.26.16.34 1.19.73 2.41 1.41 3.66 2.05 1.2.62 2.45 1.25 3.76 1.61.43.12.62-.55.19-.67-1.13-.31-2.2-.83-3.24-1.36 1.09.36 2.1.69 2.75.93 2.82 1.01 2.38 1.1 4.3-3.75 2.1-1.09 4.34-1.96 6.53-2.79 4.35-1.64 8.8-3.03 13.27-4.29.82 2.01 1.77 3.97 2.72 5.92.35.83.62 1.45.79 1.82.22.42.45.8.69 1.15.17.33.33.67.5 1 .42.8.84 1.63 1.4 2.35.23.29.6 0 .55-.31 1.53-.02 3.06-.07 4.58-.27.92-.12 1.82-.32 2.71-.54 1.39-.27 3.85-1.11 3.74-1.42-.67-1.96-1.55-3.87-2.34-5.78-1.57-3.78-3.16-7.56-4.75-11.33v-.01Zm-11.65-26.16c1.54 3.81 3.12 7.6 4.7 11.4 2.94 7.05 5.91 14.09 8.87 21.13l-1.06-2.17c-2.71-5.51-5.2-11.19-7.41-16.87l-6.65-17.15c-.65-1.45-.55-2.19-.93-2.53.09 0 .18.01.28.02a.29.29 0 0 0-.04.26c.52 2.02 1.47 3.98 2.25 5.91h-.01Zm-6.58 13.58c.05-.15.09-.31.14-.46 1.41 3.92 2.88 7.9 4.39 11.87-3.22.52-6.38 1.25-9.46 2.14.55-1.22 1.05-2.46 1.53-3.7 1.24-3.24 2.37-6.53 3.39-9.85h.01Zm-.23-20c.36 0 .73.03 1.09.05-2.15.1-5.18.33-5.87.74-.24.15-.41.3-.53.45-.06-.29-.13-.58-.18-.88 1.82-.26 3.65-.39 5.49-.35v-.01Zm-.09 18.72c-.49 1.67-1.05 3.33-1.6 4.97-1.07 3.19-2.19 6.38-3.57 9.46-.09.21-.19.43-.29.65-.25.07-.5.14-.74.22 2.53-6.16 4.61-11.29 6.2-15.3Zm-6.34 25.16c4.97-2.38 9.37-4.1 14.02-5.27l.26.64c-4.8 1.35-9.63 2.8-14.28 4.63Zm20.17 6.76c.33.23.68.42 1.04.56h-.33c-.12 0-.21.06-.26.13-.15-.23-.31-.45-.45-.7v.01ZM226.57 91.75c-3.55-4.74-6.68-9.11-9.31-12.99 9.2-15.25 10.05-17.81 10.35-18.38.17-.34 1.09-2.27.64-2.53-1.13-.65-1.03-.65-2.97-1.71-1.19-.65-3.04-1.61-4.53-2.12-1.71-.59-1.24-.36-3 2.77-.06.1-.11.2-.17.3-.75 1.02-1.48 2.05-2.2 3.09-1.88 2.71-3.73 5.45-5.69 8.1-3.68-4.91-6.88-8.76-9.51-11.43-.15-.15-.3-.29-.46-.42-1.27-1.28-7.24 3.53-7.93 5.58-.09.09-.19.16-.28.25-.27.26.03.64.33.58.19.65.5 1.29.94 1.91 3.85 5.06 7.19 9.76 9.94 14-1.23 2.61-3.06 5-4.67 7.38l-2.28 3.33c-.5.66-.93 1.23-1.29 1.69-.67.93-2.09 2.61-2.3 3.87-.51.85-1.16 1.84-1.29 2.83-.06.44.61.63.67.19.01-.08.04-.15.06-.22 1.36 1.08 2.76 2.11 4.19 3.11 1.3.91 2.62 1.85 4.04 2.56.21.1.4 0 .48-.17.24.07.48.14.72.2.44.1.62-.57.19-.67-2.02-.48-3.77-1.57-5.23-3.02-.47-.46-.9-.96-1.32-1.46 1.74 1.35 4.2 2.89 5.89 4.14 1.39 1.03 2.85-2.27 4.22-4.2 1.86-2.64 3.96-5.86 5.52-8.29l10.39 14.51c.67.81 1.14 1.21 1.57 1.36-.05.24.12.51.41.4 1.53-.58 3.05-1.19 4.54-1.87 1.52-.69 3.06-1.45 4.36-2.5a.28.28 0 0 0 .12-.23c1.66-1.1.81-1.74-1.41-4.91-1.13-1.58-1.71-2.36-3.7-5.01l-.03-.02Zm2.41 6.54c.56 1.15 1.19 2.52 1.11 3.81-.06.04-.12.07-.17.1-.03-.88-.55-2.66-.94-3.91Zm-16.51-32.73c1.86-2.65 3.65-5.35 5.57-7.95.4-.55.81-1.13 1.26-1.66.19-.18.38-.33.56-.45.18.03.36.08.55.13l-8.05 10.11.12-.18h-.01ZM192.7 95.48c.79-1.37 1.66-2.69 2.54-4 1.19-1.79 2.4-3.56 3.61-5.33-.04.09-.09.17-.13.26-.1.22.03.41.2.49-2.47 3.42-4.89 6.73-6.4 9.28.21.24.4.48.63.75-.24.07-.4.36-.17.56.4.33.72.77 1.05 1.17.09.11.18.21.27.32-.84-.61-1.66-1.24-2.47-1.88.24-.57.58-1.11.87-1.61v-.01Zm7.46-10.32c.47-.81.98-1.59 1.49-2.37.31-.48.64-.95.96-1.43.26-.29.52-.56.75-.79-.99 1.48-2.09 3.03-3.2 4.59Zm10.03-16.22s-.03-.05-.05-.07c.22-.29.43-.59.64-.89-.2.32-.4.65-.58.96h-.01ZM371.54 87.96c-.01-.08-.01-.16-.03-.23-.06-.38-.58-.29-.66.03-.3-.05-.6-.08-.81-.11-1.14-.15-2.29-.19-3.44-.2 1.04-.09 2.09-.18 3.14-.23.45-.02.45-.72 0-.7-6.57.35-13.14 1.23-19.65 2.11-1.53.21-3.05.42-4.57.68-.01 0-.02.01-.04.01-.04-3.33-.13-6.66-.24-9.99-.19-5.7-.4-11.41-.88-17.1-.13-1.51-.23-3.07-.49-4.58 0-.25 0-.48-.02-.68-.06-1.19-.04-2.61-.68-2.78-.16-.07-.72-.16-1.5-.24.22-.17.16-.62-.2-.63-1.19-.04-2.39.09-3.57.23-1.2.14-2.41.32-3.59.6-.16-.1-.41-.06-.5.12-.06.02-.13.03-.19.05-.35.1-.29.55-.03.66-.26.6-.19 2.27-.21 3-.02.66-.66 33.73-.9 40.3-.03.65.06 1.12.04 1.45-.16 3.05.87 4.96 6.34 3.93 1.09-.08 2.75-.77 5.36-1.43 4.13-1.04 5.78-1.52 6.2-1.65 6.43-1.69 6.78-1.97 11.72-2.43.55-.05 4.8-.38 6.03-.3.64.04 1.19.07 1.65.1.09 0 .16-.03.24-.05.1.27.56.33.66-.02.39-1.32.61-2.71.78-4.08.2-1.61.29-3.24.15-4.86.24.03.52-.23.38-.53-.09-.2-.27-.33-.49-.43v-.02Zm-.63.56c.07.57.11 1.14.11 1.71-.21-.99-.53-1.71-.95-1.87.22.03.44.06.65.11.06.01.12.04.19.05Zm-25.41 1.73c1.54-.36 3.1-.64 4.66-.89-1.61.37-3.18.77-4.66 1.2v-.31Zm-.86-7.37c-.07-1.37-.16-2.75-.25-4.12-.21-3.13-.45-6.27-.79-9.4.02-2.25.08-4.31.13-6.11.16 2.08.29 4.16.4 6.24.23 4.46.38 8.93.5 13.39h.01Zm-.94-4c.16 2.41.29 4.83.39 7.24.06 1.6.14 3.22.09 4.83-.15.05-.32.09-.47.14V78.88h-.01ZM483.72 92.83c-3.05-2.28-6.22-4.4-9.38-6.51 8.86-6.49 13.49-12.95 13.73-19.23.04-.76 0-1.5-.13-2.2-.67-3.82-3.5-6.68-8.39-8.48.13.04.27.08.4.13 3.92 1.39 7.74 4.23 8.5 8.56.34 1.95-.05 3.96-.98 5.69-.21.4.39.75.6.35 1.86-3.46 1.46-7.55-.97-10.63-3.53-4.47-9.76-5.88-15.16-6.16-2.32-.12-4.64-.04-6.95.19-6 .32-12.71 1.68-17.63 3.21-.37.11-.67.23-.92.35-.2-.17-.62.02-.57.37v.03c-.64.68-.18 1.64.48 3.21.38.91.67 1.89 1.15 2.58.32.76.68 1.51 1.13 2.19.14.21.38.19.53.07.19-.02.38-.05.57-.08v1.57c-.06.06-.1.13-.11.23-.27 4.18-.34 8.38-.48 12.57l-.3 9.03c-.24 3.91-.44 6.77-.46 7.26-.05.88-.11 1.95.07 2.81-.01.22-.02.43-.04.65 0 .11-.02.23-.03.35 0 .05-.03.27-.01.16-.05.4.5.59.64.28.05.04.12.08.2.08 1.75.13 3.5.28 5.25.3 1.69.02 3.38-.12 5.06-.32.08.23.36.39.55.15.06-.08.11-.17.16-.26.18-.09.24-.32.18-.48.05-.2.1-.4.13-.6.16-.86.25-1.74.33-2.62.11-1.17.17-2.34.23-3.51.15-.01.32-.03.52-.04.36-.03 1.73-.15 2.06-.15.39 0 .7-.02.95-.04 1.76 1.11 3.45 2.35 5.14 3.55 2.83 2.01 5.64 4.04 8.47 6.04 1.42 1 2.85 2 4.29 2.97.1.06.19.07.27.04.08 0 .17-.02.25-.1 1.61-1.56 3.15-3.18 4.6-4.88.75-.88 1.49-1.78 2.15-2.73.01.01.03.02.04.03.34.3.83-.2.49-.49-2.16-1.9-4.34-3.76-6.64-5.48l.03-.01Zm-6.38-3.65a55.72 55.72 0 0 0-4-2.13c.14-.1.26-.19.4-.29 1.2.81 2.4 1.61 3.6 2.42Zm-20.1 11.78c.67-.37 1.23-.91 1.67-1.6-.11.5-.24 1-.38 1.49-.43.04-.86.08-1.29.11Zm2.38-37.24c1.34-.31 2.56-.52 3.71-.69-1.03.19-2.04.41-3.04.65-.14-.07-.34-.02-.45.11-.07.02-.15.04-.22.05v-.13.01Zm.04.84c.07-.02.14-.03.2-.05.34 1.66.41 3.41.5 5.09.17 2.9.24 5.81.28 8.71l.03 3.17c-.17.07-.34.14-.51.2-.06-4.96-.21-10.58-.51-17.12h.01Zm16.04 5.62c-1.16 2.25-3.06 4.1-5.02 5.66-2.8 2.23-5.99 3.97-9.3 5.35-.01-3.56-.09-7.12-.27-10.67-.1-2.04-.16-4.16-.57-6.18 3.3-.78 6.72-1.36 10.1-1.1 1.85.14 4.23.59 5.32 2.29.92 1.43.46 3.24-.26 4.65Zm.85-.18c.6-1.37.9-2.92.28-4.32-.67-1.52-2.2-2.32-3.76-2.74.46.1.89.21 1.29.37 1.74.67 2.69 1.88 2.93 3.21.2 1.13-.05 2.25-.74 3.47V70Zm-27.47-4.14c-.12-.19-.23-.38-.34-.57.74.42.85.36.99.41v.08c-.22.03-.43.06-.65.08Zm11.21 30.46c-.08 1.08-.16 2.17-.33 3.24-.05.35-.11.69-.2 1.03 0 .04-.02.07-.03.11-.15.02-.3.04-.45.05.45-1.64.76-3.36.79-5.07.03-.29.08-.57.1-.89-.03-.31-.03-.47.24-.57-.04.69-.07 1.39-.12 2.08v.02Zm5.6-2.47c.48.11.92.52 2.49 1.72-.46-.32-.92-.65-1.38-.97-.37-.25-.73-.5-1.1-.75h-.01Zm21.23 7.24a70.76 70.76 0 0 1-4.37 4.63c-.14-.09-.27-.19-.4-.28.19-.09.37-.24.55-.47.87-1.14 5.43-5.51 5.49-7.45.31.26.62.53.92.79-.67.97-1.42 1.88-2.19 2.77v.01Z",fill:"currentColor",transform:"translate(-144.023 -51.76)"})]}),mP=({style:e,size:t="small",withText:r})=>(0,un.jsxs)("div",{className:`ExcalidrawLogo is-${t}`,style:e,children:[(0,un.jsx)(_$,{}),r&&(0,un.jsx)(A$,{})]});var yt=w(P(),1),c0=({icon:e,shortcut:t,children:r})=>{let o=ot();return(0,yt.jsxs)(yt.Fragment,{children:[(0,yt.jsx)("div",{className:"welcome-screen-menu-item__icon",children:e}),(0,yt.jsx)("div",{className:"welcome-screen-menu-item__text",children:r}),t&&!o.editor.isMobile&&(0,yt.jsx)("div",{className:"welcome-screen-menu-item__shortcut",children:t})]})};c0.displayName="WelcomeScreenMenuItemContent";var zm=({onSelect:e,children:t,icon:r,shortcut:o,className:i="",...a})=>(0,yt.jsx)("button",{...a,type:"button",className:`welcome-screen-menu-item ${i}`,onClick:e,children:(0,yt.jsx)(c0,{icon:r,shortcut:o,children:t})});zm.displayName="WelcomeScreenMenuItem";var uP=({children:e,href:t,icon:r,shortcut:o,className:i="",...a})=>(0,yt.jsx)("a",{...a,className:`welcome-screen-menu-item ${i}`,href:t,target:"_blank",rel:"noreferrer",children:(0,yt.jsx)(c0,{icon:r,shortcut:o,children:e})});uP.displayName="WelcomeScreenMenuItemLink";var pn=({children:e})=>{let{WelcomeScreenCenterTunnel:t}=It();return(0,yt.jsx)(t.In,{children:(0,yt.jsx)("div",{className:"welcome-screen-center",children:e||(0,yt.jsxs)(yt.Fragment,{children:[(0,yt.jsx)(d0,{}),(0,yt.jsx)(m0,{children:y("welcomeScreen.defaults.center_heading")}),(0,yt.jsxs)(u0,{children:[(0,yt.jsx)(f0,{}),(0,yt.jsx)(p0,{})]})]})})})};pn.displayName="Center";var d0=({children:e})=>(0,yt.jsx)("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor",children:e||(0,yt.jsx)(mP,{withText:!0})});d0.displayName="Logo";var m0=({children:e})=>(0,yt.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor virgil",children:e});m0.displayName="Heading";var u0=({children:e})=>(0,yt.jsx)("div",{className:"welcome-screen-menu",children:e});u0.displayName="Menu";var p0=()=>{let e=gr();return(0,yt.jsx)(zm,{onSelect:()=>e.executeAction(Al),shortcut:"?",icon:vs,children:y("helpDialog.title")})};p0.displayName="MenuItemHelp";var f0=()=>{let e=it(),t=gr();return e.viewModeEnabled?null:(0,yt.jsx)(zm,{onSelect:()=>t.executeAction(ac),shortcut:lr("loadScene"),icon:ys,children:y("buttons.load")})};f0.displayName="MenuItemLoadScene";var pP=({onSelect:e})=>{let{t}=nr();return(0,yt.jsx)(zm,{shortcut:null,onSelect:e,icon:sp,children:t("labels.liveCollaboration")})};pP.displayName="MenuItemLiveCollaborationTrigger";pn.Logo=d0;pn.Heading=m0;pn.Menu=u0;pn.MenuItem=zm;pn.MenuItemLink=uP;pn.MenuItemHelp=p0;pn.MenuItemLoadScene=f0;pn.MenuItemLiveCollaborationTrigger=pP;v();var zn=w(P(),1),vh=({children:e})=>{let{WelcomeScreenMenuHintTunnel:t}=It();return(0,zn.jsx)(t.In,{children:(0,zn.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[eT,(0,zn.jsx)("div",{className:"welcome-screen-decor-hint__label",children:e||y("welcomeScreen.defaults.menuHint")})]})})};vh.displayName="MenuHint";var yh=({children:e})=>{let{WelcomeScreenToolbarHintTunnel:t}=It();return(0,zn.jsx)(t.In,{children:(0,zn.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,zn.jsx)("div",{className:"welcome-screen-decor-hint__label",children:e||y("welcomeScreen.defaults.toolbarHint")}),rT]})})};yh.displayName="ToolbarHint";var Eh=({children:e})=>{let{WelcomeScreenHelpHintTunnel:t}=It();return(0,zn.jsx)(t.In,{children:(0,zn.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,zn.jsx)("div",{children:e||y("welcomeScreen.defaults.helpHint")}),tT]})})};Eh.displayName="HelpHint";var $n=w(P(),1),wh=e=>(0,$n.jsx)($n.Fragment,{children:e.children||(0,$n.jsxs)($n.Fragment,{children:[(0,$n.jsx)(pn,{}),(0,$n.jsx)(vh,{}),(0,$n.jsx)(yh,{}),(0,$n.jsx)(Eh,{})]})});wh.displayName="WelcomeScreen";wh.Center=pn;wh.Hints={MenuHint:vh,ToolbarHint:yh,HelpHint:Eh};var k$=wh;v();var Sh=w(P(),1),fP=({isCollaborating:e,onSelect:t,...r})=>{let o=it(),i=o.width<830;return(0,Sh.jsxs)(jn,{...r,className:j("collab-button",{active:e}),type:"button",onSelect:t,style:{position:"relative",width:i?void 0:"auto"},title:y("labels.liveCollaboration"),children:[i?hT:y("labels.share"),o.collaborators.size>0&&(0,Sh.jsx)("div",{className:"CollabButton-collaborators",children:o.collaborators.size})]})},M$=fP;fP.displayName="LiveCollaborationTrigger";v();var P$=(e,t,r)=>!!(t&&(t.id===e.editingElement?.id||t.id===e.resizingElement?.id||t.id===e.draggingElement?.id||t.version>r.version||t.version===r.version&&t.versionNonce<r.versionNonce)),L$=(e,t,r)=>{let o=Pe(e),i=[],a=new Set;for(let c of t)if(!a.has(c.id)){let d=o.get(c.id),p=P$(r,d,c);d&&p?(i.push(d),a.add(d.id)):(i.push(c),a.add(c.id))}for(let c of e)a.has(c.id)||(i.push(c),a.add(c.id));let s=YS(i);return ca(s),s};v();var $m=w(P(),1),gP=({children:e,icon:t})=>{let{TTDDialogTriggerTunnel:r}=It(),o=nt();return(0,$m.jsx)(r.In,{children:(0,$m.jsxs)(st.Item,{onSelect:()=>{Fe("ai","dialog open","ttd"),o({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:t??aC,children:[e??y("labels.textToDiagram"),(0,$m.jsx)(st.Item.Badge,{children:"AI"})]})})};gP.displayName="TTDDialogTrigger";var Th=w(P(),1);cP();var R$=e=>{let{onChange:t,initialData:r,excalidrawAPI:o,isCollaborating:i=!1,onPointerUpdate:a,renderTopRightUI:s,langCode:c=Kn.code,viewModeEnabled:d,zenModeEnabled:p,gridModeEnabled:f,libraryReturnUrl:u,theme:g,name:h,renderCustomStats:x,onPaste:E,detectScroll:T=!0,handleKeyboardGlobally:M=!1,onLibraryChange:I,autoFocus:A=!1,generateIdForFile:N,onLinkOpen:U,onPointerDown:R,onPointerUp:F,onScrollChange:B,children:Z,validateEmbeddable:G,renderEmbeddable:te,aiEnabled:de}=e,W=e.UIOptions?.canvasActions,se={...e.UIOptions,canvasActions:{...rx.canvasActions,...W},tools:{image:e.UIOptions?.tools?.image??!0}};return W?.export&&(se.canvasActions.export.saveFileToDisk=W.export?.saveFileToDisk??rx.canvasActions.export.saveFileToDisk),se.canvasActions.toggleTheme===null&&typeof g>"u"&&(se.canvasActions.toggleTheme=!0),(0,Ch.useEffect)(()=>{(async()=>{await import("./excalidraw-assets/roundRect-2ACQK4DA.js")})();let Se=Je=>{typeof Je.scale=="number"&&Je.scale!==1&&Je.preventDefault()};return document.addEventListener("touchmove",Se,{passive:!1}),()=>{document.removeEventListener("touchmove",Se)}},[]),(0,Th.jsx)(sf,{unstable_createStore:()=>zr,scope:dt,children:(0,Th.jsx)(sI,{langCode:c,theme:g,children:(0,Th.jsx)(sP,{onChange:t,initialData:r,excalidrawAPI:o,isCollaborating:i,onPointerUpdate:a,renderTopRightUI:s,langCode:c,viewModeEnabled:d,zenModeEnabled:p,gridModeEnabled:f,libraryReturnUrl:u,theme:g,name:h,renderCustomStats:x,UIOptions:se,onPaste:E,detectScroll:T,handleKeyboardGlobally:M,onLibraryChange:I,autoFocus:A,generateIdForFile:N,onLinkOpen:U,onPointerDown:R,onPointerUp:F,onScrollChange:B,validateEmbeddable:G,renderEmbeddable:te,aiEnabled:de!==!1,children:Z})})})},D$=(e,t)=>{if(e.children!==t.children)return!1;let{initialData:r,UIOptions:o={},...i}=e,{initialData:a,UIOptions:s={},...c}=t,d=Object.keys(o),p=Object.keys(s);return d.length!==p.length?!1:d.every(u=>u==="canvasActions"?Object.keys(o.canvasActions).every(h=>h==="export"&&o?.canvasActions?.export&&s?.canvasActions?.export?o.canvasActions.export.saveFileToDisk===s.canvasActions.export.saveFileToDisk:o?.canvasActions?.[h]===s?.canvasActions?.[h]):o[u]===s[u])&&fr(i,c)},N$=Ch.default.memo(R$,D$);N$.displayName="Excalidraw";export{jn as Button,Jb as DEFAULT_LASER_COLOR,Jg as DefaultSidebar,N$ as Excalidraw,od as FONT_FAMILY,I$ as Footer,M$ as LiveCollaborationTrigger,Ir as MIME_TYPES,io as MainMenu,Go as ROUNDNESS,Bi as Sidebar,K as StoreAction,$e as THEME,DE as TTDDialog,gP as TTDDialogTrigger,k$ as WelcomeScreen,ev as bumpVersion,Tc as convertToExcalidrawElements,Kn as defaultLang,J8 as elementPartiallyOverlapsWithOrContainsBBox,Q8 as elementsOverlappingBBox,jx as exportToBlob,fl as exportToCanvas,q8 as exportToClipboard,Dd as exportToSvg,lt as getCommonBounds,eO as getFreeDrawSvgPath,sg as getLibraryItemsHash,We as getNonDeletedElements,tO as getSceneVersion,Bx as getVisibleSceneBounds,av as hashElementsVersion,lv as hashString,j8 as isElementInsideBBox,gl as isInvisiblySmallElement,et as isLinearElement,Fs as languages,$p as loadFromBlob,Kx as loadLibraryFromBlob,Wx as loadSceneOrLibraryFromBlob,uk as mergeLibraryItems,me as mutateElement,Re as newElementWith,Ti as normalizeLink,Oy as parseLibraryTokensFromUrl,L$ as reconcileElements,Gx as restore,Z8 as restoreAppState,Ux as restoreElements,Pd as restoreLibraryItems,Qr as sceneCoordsToViewportCoords,Vx as serializeAsJSON,Zx as serializeLibraryAsJSON,ot as useDevice,$9 as useHandleLibrary,nr as useI18n,Mt as viewportCoordsToSceneCoords,AA as zoomToFitBounds};
169
188
  /*! Bundled license information:
170
189
 
171
- react/cjs/react-jsx-runtime.production.min.js:
172
- (**
173
- * @license React
174
- * react-jsx-runtime.production.min.js
175
- *
176
- * Copyright (c) Facebook, Inc. and its affiliates.
177
- *
178
- * This source code is licensed under the MIT license found in the
179
- * LICENSE file in the root directory of this source tree.
180
- *)
181
-
182
190
  use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js:
183
191
  (**
184
192
  * @license React
@@ -200,4 +208,14 @@ use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.productio
200
208
  * This source code is licensed under the MIT license found in the
201
209
  * LICENSE file in the root directory of this source tree.
202
210
  *)
211
+
212
+ lodash/lodash.js:
213
+ (**
214
+ * @license
215
+ * Lodash <https://lodash.com/>
216
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
217
+ * Released under MIT license <https://lodash.com/license>
218
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
219
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
220
+ *)
203
221
  */